模板匹配(matlab实现)
基于像素匹配算法
模板匹配算法一般是通过滑窗的方式在待匹配的图像上滑动,通过比较模板与子图的相似度,找到相似度最大的子图。这种算法最核心部分在于如何设计一个相似性函数。
最容易想到的一个相似性函数便是欧式距离:
将这个相似性函数展开,可以得:
可以看出,只有第二项是有意义的,因为第一项和第三项的值在选定模板后是固定的。对于欧式距离相似函数,值越大表示越不相似,也就是说,第二项的值越小则越不相似。 再将第二项归一化:
如果就仅仅匹配大小不变角度不变的模板,到此为止就够了。
为了解决旋转不变性,我用很简单的很丑陋的方法————旋转模板再重新匹配。
代码
化简后的欧氏距离matlab实现方法。
1 | for i=1:m-m0+1 |
结果图:
具体源码 可以见github.