模板匹配就是拿模板去遍历图像,在遍历的每个位置计算结果,即匹配程度,opencv中 提供了 6 种计算方法:
- 差值平方和匹配 CV_TM_SQDIFF
- 标准化差值平方和匹配 CV_TM_SQDIFF_NORMED
- 相关匹配 CV_TM_CCORR
- 标准相关匹配 CV_TM_CCORR_NORMED
- 相关匹配 CV_TM_CCOEFF
- 标准相关匹配 CV_TM_CCOEFF_NORMED
平方和匹配是模板与模板覆盖下的原图像之间的像素差平方和,值越小代表匹匹配,所以前两种要找最小值的位置;
相关匹配是模板与模板覆盖下的原图像之间的像素乘积,标准相关匹配其实是先将两幅图像像素各转换成一列向量,通过计算两幅图像向量之间的夹角cos() = A*B/|A||B|来确定匹配程度,夹角越小,说明越相似,cos(
) 值就越大,所以后四种要找最大值的位置。
在 OpenCV 中,提供了相应的函数完成这个操作。
matchTemplate 函数:在模板和输入图像之间寻找匹配,获得匹配结果图像
minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置
#i