模板匹配里的一些数学原理
模板匹配里的一些数学原理
我们知道,在openCV里,模板匹配中匹配度的计算公式有三类。SQDIFF、CCORR、CCOEFF。下面我们来简单介绍一下这三类计算方法,并比较其不同之处。
SQDIFF
SQDIFF全称Sum of Squared Difference (SSD),即差的平方和。其离散形式为:
我们将模板图像与待匹配图像均展开成一维向量,即一维离散信号:
则E可以表示为:
这样就很好理解了,就是两个图像中每个像素之差的平方和,类似于线性回归中的MSE(Mean-Square Error)损失函数。
我们再写成向量形式:
这样可以发现,SQDIFF其实就是用来度量模板图片与待匹配图片的欧式距离。
在 (*) 式中,我们将模板图片与待匹配图片均展成了一维向量,而这也充分表明了模板匹配的局限性:无法包含空间信息,如旋转、伸缩等
SQDIFF_NORMED就是对SQDIFF进行归一化,这里不多赘述。
CCORR
CCORR 的全称为 Cross Correlation,意即互相关,其离散形式为:
反映了待匹配图像与模板图像的相似性。
为什么这个式子可以反应两个图像的相似性呢?
我们还是将图像展成一维离散信号进行分析:
则E可以表示为:
当模板图像与待匹配图像的相关性越好时,\(I\)与\(T\)之间的夹角越小,也就是两个向量靠得越近,此时\(cos\theta\)越大,\(E\)也就越大
其归一化形式:
其全称为Normalized Cross Correlation (NCC),意即归一化互相关.
我们还是将图像展成一维离散信号,则E可以表示为:
也就是两个向量之间的夹角,范围为\([0,1]\),越接近1则相关性越好。
CCOEFF
CCOEFF 的全称为 Correlation Coefficient, 意即相关系数,也就是零均值互相关 (Zero-mean Cross Correlation; ZCC)
其离散形式:
可以发现,CCOEFF的计算相当于CCORR中的像素值替换成了(像素值-图像像素均值),这样做的好处就是减弱了光照对于图像匹配的影响,鲁棒性更强💪
其归一化形式又叫做 ZNCC(Zero-normalized cross-correlation),感兴趣可以自行查阅资料
三种方法比较
一般来说,我们使用CCOEFF/NORMED,其鲁棒性比会比CCORR更强;SQDIFF的算法较为简朴,缺点很多,较少使用。

浙公网安备 33010602011771号