#include "highgui.h"
#include "cv.h"
#include "cxcore.h"
int main(int argc, char* argv[])
{
IplImage* src, *templat, *result,*show;
src = cvLoadImage("./images/src.jpg");
show = cvLoadImage("./images/src.jpg");
templat = cvLoadImage("./images/templat.jpg");
int srcH, srcW, temH, temW, resultH, resultW;
srcH = src->width;
srcW = src->width;
temH = templat->height;
temW = templat->width;
resultW = srcW - temW + 1;
resultH = srcH - temW + 1;
result = cvCreateImage(cvSize(resultW, resultH), 32, 1);
cvMatchTemplate(src,templat,result,CV_TM_SQDIFF);
// 目标匹配函数,第一个参数是待搜素图像,第二个参数是模板图像,第三个参数是存放结果,第四个参数是匹配程度的方法,
// 关于匹配的方法,使用不同的方法产生的结果的意义可能不太一样,有些返回的值越大表示匹配程度越好,有些相反。
double minVal, maxVal;
CvPoint minLoc, maxLoc;
cvMinMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc); // 将最小值最大值的坐标填充到这个坐标里边去,
cvRectangle(show, minLoc, cvPoint(minLoc.x + temW, minLoc.y + temH), CV_RGB(0, 255, 0));
cvNamedWindow("show");
cvShowImage("show", show);
cvWaitKey(0);
cvReleaseImage(&show);
cvDestroyWindow("show");
return 0;
}
目标模板匹配
最新推荐文章于 2024-04-04 16:28:09 发布