模板匹配算法
VS下与python下的常见模板算法
-
C++代码块
-
(1)读取原图和读取模板图
-
Mat orimage = imread("G:\\VS\\24模板的匹配\\2.bmp"); Mat test = imread("G:\\VS\\24模板的匹配\\1.png");
模板图片
原始图片 -
定义输出图像:
-
Mat dst = Mat(orimage.rows - test.rows + 1, orimage.cols - test.cols + 1, CV_32FC1);
-
调取opencv当中的API
-
//调用匹配算法
matchTemplate(orimage, test, dst, CV_TM_SQDIFF_NORMED, Mat());
//进行归一化
normalize(dst, dst, 0, 255,NORM_MINMAX);
//找到最大值位置和最大值
Point minloc;
Point maxloc;
double min;
double max;
//调用最大值最小值
minMaxLoc(dst, &min, &max, &minloc, &maxloc, Mat());
//绘制矩形
Mat result;
orimage.copyTo(result);
rectangle(result, Rect(minloc.x, minloc.y, test.rows, test.cols), Scalar(0, 0, 255), 2, 8, 0);` -
结果:
-