// 公众号:OpenCV与AI深度学习
// 作 者:Color Space
#include "pch.h"
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace std;
using namespace cv;
void main()
{
///单模板匹配
Mat img = imread("A2.png");
Mat temp = img(Rect(420, 20, 90, 90)).clone();
imshow("ROI", temp);
waitKey();
Mat src = img(Rect(0, 0, 400, img.rows)); //待搜索图像
imshow("temp", temp);
imshow("src", src);
Mat mask;
cvtColor(temp, mask, COLOR_BGR2GRAY);
threshold(mask, mask, 10, 255, THRESH_BINARY);
imshow("mask", mask);
Mat dst = src.clone(); //原图备份
int width = src.cols - temp.cols +1; //result 宽度
int height = src.rows - temp.rows +1; //result 高度
Mat result(height, width, CV_32FC1); //创建结果映射图像
matchTemplate(src, temp, result, TM_CCOEFF_NORMED, mask); //化相关系数匹配最佳值 1
imshow("result", result);
//normalize(result, result, 0, 1, NORM_MINMAX, -1); //归一化到0--1范围
double minValue, maxValue;
Point minLoc, maxLoc;
minMaxLoc(result, &minValue, &maxValue, &minLoc, &maxLoc);
cout<<"minValue="<<minValue<<endl;
cout<<"maxValue="<<maxValue<<endl;
rectangle(dst, maxLoc, Point(maxLoc.x+temp.cols, maxLoc.y+temp.rows), Scalar(0, 255, 0), 2, 8);
imshow("dst", dst);
waitKey(0);
}