• 大小: 9.88MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-19
  • 语言: C/C++
  • 标签: opencv  图像处理  

资源简介

运用了opencv2.4.9版本在VS2012中进行两张图像的相关系数匹配,程序可以自动匹配和手动匹配,人性化

资源截图

代码片段和文件信息

// Rmatch.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
using namespace std;
using namespace cv;

Mat imgleft;Mat imgright;Point selectobjp;
Rect roiRectselectRect;Point startpendpoint;
bool downflag=falseupflag=falseeventflag=false;
int _tmain(int argc _TCHAR* argv[])
{
Mat left=imread(“Left50.jpg“);
if(left.empty())
return -1;
Mat right=imread(“Right49.jpg“);
if(right.empty())
return -1;
//转化为灰度图像
cvtColor(leftimgleftCV_BGR2GRAY);
cvtColor(rightimgrightCV_BGR2GRAY);
imwrite(“Right49_.jpg“imgright);
Mat imgleft1=imgleft.clone();Mat imgright1=imgright.clone();//克隆一份,不直接用原始图像

//简单粗暴的Morevec 角点检测试验
/*Mat MorevecCorners(Mat srcimgint ksizeint threshold);
Mat resMorMatL=MorevecCorners(imgleft1515000);
Mat resMorMatR=MorevecCorners(imgright1515000);
imshow(“resMorMatL“resMorMatL);
imshow(“resMorMatR“resMorMatR);
waitKey(0);*/

//改进Harris算法的Shi-Tomasi算法角点检测试验
Mat Shi_TomasiCorners(Mat srcimgvector &vec);
vector vecCornersL;vector vecCornersR;
Mat resShi_TomasiL=Shi_TomasiCorners(imgleft1vecCornersL);
Mat resShi_TomasiR=Shi_TomasiCorners(imgright1vecCornersR);
void savecorners(bool lorrvector & vec);
bool isleft=trueisright=false;
savecorners(isleftvecCornersL);savecorners(isrightvecCornersR);//将算出的点保存,可用于自动输入目标点代替肉眼寻找角点
//imshow(“resShi_TomasiL“resShi_TomasiL);
//imshow(“resShi_TomasiR“resShi_TomasiR);
waitKey(0);

void trymatch();//函数说明
void trymatch1(vector &vec);
/*Point Rmatchp(Mat imgobjMat imgscenePoint objpPoint topleftPoint downrightint winsizedouble &maxR);*/
char autoorhand;
cout<<“自动用计算所得角点匹配(y)或手动选择角点匹配(n)?“;cin>>autoorhand;
if(autoorhand==‘y‘||autoorhand==‘Y‘)
trymatch1(vecCornersL);
else
{
char choice;
while(1)
{
system(“cls“);
trymatch();
cin>>choice;
if(choice==‘n‘||choice==‘n‘)
break;
if(choice!=‘y‘ && choice!=‘Y‘ &&choice!=‘n‘ &&choice!=‘N‘)
cout<<“\n输入错误请重新输入“;
}
}

system(“pause“);
return 0;
}

void trymatch()//手动输入目标点匹配
{
cout<<“下面进行匹配试验试验结束后试验结果会保存在与cpp同级的savetry.txt文件中:“< int row0=0col0=0;
int winsize;
cout<<“请输入计算窗口大小,奇数,如7×7输入7(建议不小于7):“;cin>>winsize;
while(1)
{
cout<<“下面输入目标点像素坐标,鼠标点击选择(y)或手动输入(n)?“< char sele=‘y‘;cin>>sele;
if(sele==‘n‘)
{
cout<<“请输入目标点的像素坐标(行,列):“<>row0;
    cout<<“列(不大于270):“;cin>>col0;cout< }
else
{
cout<<“下面进行鼠标点选按下鼠标左键选择,选好后请按键盘任意键“< namedWindow(“select object point“);
void MouseEvent(int eventint xint yint flagsvoid *data);
setMouseCallback(“select object point“MouseEvent0);
imshow(“select object point“imgleft);waitKey(0);/*destroyWindow(“select object point“);*/
row0=selectobjp.x;col0=selectobjp.y;
}

    if(col0>270||col0(imgleft.rows-winsize/2-1)||col0>(imgleft.cols-winsize/2-1))
   cout<<“输入目标点不符合要求请重新输入:“;
el

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     113664  2018-05-06 14:10  Rmatch\Debug\Rmatch.exe

     文件     664252  2018-05-06 14:10  Rmatch\Debug\Rmatch.ilk

     文件    2714624  2018-05-06 14:10  Rmatch\Debug\Rmatch.pdb

     文件    3734016  2014-04-15 17:05  Rmatch\opencv库\opencv_core249d.dll

     文件     470952  2014-04-15 17:05  Rmatch\opencv库\opencv_core249d.lib

     文件    3823616  2014-04-15 17:05  Rmatch\opencv库\opencv_highgui249d.dll

     文件     142680  2014-04-15 17:05  Rmatch\opencv库\opencv_highgui249d.lib

     文件    3436032  2014-04-15 17:05  Rmatch\opencv库\opencv_imgproc249d.dll

     文件     192618  2014-04-15 17:05  Rmatch\opencv库\opencv_imgproc249d.lib

     文件        696  2018-05-06 14:37  Rmatch\Rmatch\Cornersleft.txt

     文件        699  2018-05-06 14:37  Rmatch\Rmatch\Cornersright.txt

     文件       3074  2018-05-06 14:10  Rmatch\Rmatch\Debug\cl.command.1.tlog

     文件      11542  2018-05-06 14:10  Rmatch\Rmatch\Debug\CL.read.1.tlog

     文件        846  2018-05-06 14:10  Rmatch\Rmatch\Debug\CL.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link-cvtres.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link-cvtres.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link-rc.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link-rc.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.1524-cvtres.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.1524-cvtres.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.1524-rc.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.1524-rc.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.1524.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.1524.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.15460-cvtres.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.15460-cvtres.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.15460-rc.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.15460-rc.write.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.15460.read.1.tlog

     文件          2  2018-05-06 14:10  Rmatch\Rmatch\Debug\link.15460.write.1.tlog

............此处省略117个文件信息

评论

共有 条评论