Mat frame, subFrame, result;
MatchTemplate(frame, subFrame, result, CV_TM_CCORR_NORMED);
double minVal; double maxVal; Point minLoc; Point maxLoc;
Point matchLoc;
minMaxLoc( result, &minVal, &maxVal, &minLoc, &maxLoc);
if (maxVal < 0.5)
{
// No match
return;
}
1 回答
模板匹配是一种检查两个图像彼此相似的程度的方法 .
图像比较的过程是通过相关方法完成的,为了更好地理解你必须要理解equations
最常见的方法(我相信)是Normalize Cross Correlation
该方法计算输入图像之间每个位移的所有相关系数 .
模板匹配后,可以过滤通过体面的阈值的结果,可以说0.5,以检查图像是相似的(此阈值取决于你的输入图像,如闪电,不同类型的传感器等 . ),比找最大值移位 .
这意味着,如果您将subFrame移动minLoc,则maxLoc像素会向每个方向移动,以获得与subFrame匹配Frame最相似的位移 .