一、什么是模版匹配?
- 描述:模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。
- 局限性:模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。
- 定义: 模板就是一副已知的小图像,而模板匹配就是在一副大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置。
二、模版匹配实现原理(了解即可):
- 相关法
以8位灰度图像为例,模板T(m,n)叠放在被搜索图S(W,H)上平移,模板覆盖被搜索图的那块区域叫子图 ,i,j为子图左下角在被搜索图S上的坐标。可以用下式衡量T和 的相似性:
将其归一化,得模板匹配的相关系数:
当模板和子图一样时,相关系数R(i,j)=1,在被搜索图S中完成全部搜索后,找出R的最大值 ,其对应的子图 即为匹配目标。显然,用这种公式做图像匹配运算量最大、速度最慢。 [1] - 误差法
误差法即衡量T和 的误差,其公式为:
其中E(i,j)为最小值处即为匹配目标。为提高计算速度,取一误差阈值 ,当E(i,j)> 时便停止该点的计算,继续计算下一点。
模板越大,匹配速度越慢;模板越小,匹配速度越快。 - 二次匹配误差算法
二次匹配误差算法中匹配分两次进行。
- 在应用模板匹配法进行图像匹配时,应注意以下几点:
- 归一化互相关注进行匹配,模板应在(M-P+1)×(N-Q+1)个参考位置上进行相关计算,计算量非常大,必要时可以采用序贯相似检验算法、幅度排序相关算法、FFT相关算法、分层搜索序贯判决等方法对其进行改进,以提高运算速度。
- 模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。
- 若原图像中要匹配的目标只有部分可见,也无法完全完成匹配。
三、OpenCV实现:
1、基本模版匹配实现:
result = cv2.matchTemplate(image, templ, method, result=None, mask=None)
- result是一个结果矩阵&#