//matchTemplate匹配有五六种方式,如果采用CV_TM_SQDIFF_NORMED方式,下面是我之前写的一部分代码,你可以参考下。
matchTemplate(srcImage,templateImage,result,CV_TM_SQDIFF_NORMED); //最好匹配为0,值越大匹配越差
double minVal = -1;
double maxVal;
Point minLoc;
Point maxLoc;
Point matchLoc;
minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc, Mat());
//取小值,这个大概是模板的起点坐标
matchLoc = minLoc;
//取小值,值越小表示越匹配,(1 - minVal)表示的就是相似度,范围是0-1,你可以设置这个值来控制精确度
QString str = "Similarity:" + QString::number((1 - minVal) * 100, 'f', 2) + "%";
其它方式的话,具体看用什么方式,根据情况,取最大值还是最小值。 |