新浪博客

模板匹配算法(图像)

2013-08-27 20:55阅读:
VisionWare中的理论,自己编写的代码。
1.基本术语
特征:图像中的特定灰度值或边缘模式。特征是实际图像中的一部分。
模式:特征的抽象表示,包括:灰度值或边缘组,模式尺寸,对比度等。
定位核:也称为模板图像,其中包含搜索模式。
实时图像:也称为搜索图像,在其中定位和定位核相同的模式。
分数:实时图像中,当前模式和定位核的相似性度量。分数量化到0.0和1.0之间;分数越高,匹配更为接近。
掩模:将定位核中每个像素设定为相关或无关像素。
2.相似性度量(归一化相关系数和分数)
数学上,定位核和实时图像偏移(u,v)处的相关系数r定义为

模板匹配算法(图像)

其中I为实时图像;M为定位核;m和n分别为定位核的宽度和长度;N=m×n。实时图像和定位核的空间关系如下图所示。

模板匹配算法(图像)
r的值域范围在[-1,1]。值为1.0表示实时图像和定位核区域完全匹配。特别的,如果r=1.0,则存在a和b,对所有位置处i,有
模板匹配算法(图像)

值为-1.0表示完全误匹配,其中a<0,发现的模式和定位核极性相反。
我们可以直接用相关系数作为相似性度量。但我们倾向于用r^2的形式,其基于以下两点理由:(1)在相关系数计算中,对分子取平方较对分母开平方根运算速度更快;(2)对r取平方,其拓宽高端的动态范围,并压缩低端的动态范围,正好我们关注高端,而不关注低端。
对r^2形式的相似性度量,我们称为分数,其有以下两种形式

模板匹配算法(图像)
3.代码
先把公式中各分量的计算公式写成函数,总共有5个
模板匹配算法(图像)
模板匹配算法(图像)
模板匹配算法(图像)
模板匹配算法(图像)
模板匹配算法(图像)
根据上面5个公式,直接写匹配函数,该函数遍历了待匹配图像的所有的可能偏移位置,最后找到一个相似度最高的
模板匹配算法(图像)
模板匹配算法(图像)
模板匹配算法(图像)
直接利用openCV里的函数读取模板和待匹配图像,利用match函数即可,其最佳匹配结果保存在类私有变量temp中,该成员是一个结构,在match中可以看到其内部结构,x,y即为定位位置,val为相似度。
模板匹配算法(图像)
以上所有函数均通过本人测试,由于算法遍历了所有情况,故运行速度比较慢,可利用搜索策略进行优化。

我的更多文章

下载客户端阅读体验更佳

APP专享