模板匹配
模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配部分的技术。模板匹配不是基于直方图的,而是通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配的一种匹配方法。
opencv提供的匹配函数:matchTemplate
void matchTemplate(InputArray image, InputArray templ, OutputArray result, int method)
image: 搜索对象图像 It must be 8-bit or 32-bit floating-point.
templ:模板图像,小于image,并且和image有相同的数据类型
result:比较结果 必须是单通单32位浮点数
method:比较算法
opencv提供了6中比较算法:
1. 平方差匹配法 method=CV_TM_SQDIFF
这类方法利用平方差来进行匹配,最好匹配为0,而匹配越差,匹配值越大。方法公式如下:
2.归一化平方差匹配法 method=CV_TM_SQDIFF_NORMED
3.相关匹配法 method =CV_TM_SQDIFF_NORRMED
这类方法采用模板和图像间的乘法操作,所以较大的数表示匹配程度较高,0表示最坏的匹配效果,公式如下:
4.归一化相关匹配法 method = TM_CCORR_NORMED
5.系数匹配方法 method = TM_CCOEFF
这类方法将模板对其均值的相对值与图像对其均值的相关值进行匹配,1表示完美匹配,-1表示最坏匹配,0表示没有任何相关性。公式如下:
6.归一化相关系数匹配法 method = TM_CCOEFF_NORMED
从简单的测量(平方差)到复杂的测量(相关系数),可以获得越来越精准的匹配,但同时也会来带计算复杂度的提高。需要根据实际需求,在计算速度和匹配精度之间寻找最佳方案。