模板匹配 - 互相关与方差 - 当选择一个而不是另一个?

时间:2018-01-31 13:10:50

标签: opencv image-processing template-matching

TL; DR

何时以及为什么互相关有利于方差(当使用模板匹配时)?

详细

根据OpenCV的documentation模板匹配(你需要向下滚动一下),方差被定义为:

enter image description here

和互相关:

enter image description here

(其中 T 是模板, 是图片)

如果我没有弄错的话,方差是唯一的方法(也与互相关系数相比),保证在每张图像中找到最佳匹配(在数字意义上)。

如果我们看一下互相关,我们会注意到乘法会为图像中较亮的部分产生更高的结果(因为明亮像素的数值高于暗像素)。这意味着,如果我们在明亮的图像上使用暗模板进行模板匹配,那么在使用互相关时,我们很可能会得到一个糟糕的结果。

例如,如果我们拍摄此图片:

source image

和perfrom模板匹配此模板:

template

我们得到这些结果(红色是互相关,绿色是方差):

result

显然,square diff是更好的选择,因为互相关会产生非常糟糕的结果。我在使用正方差的互相关时可以看到的唯一优势是计算复杂度,因为互相关应该快一点,因为它只需要计算乘积(而不是和和方)。

我的问题是:我没有看到任何好处吗?我什么时候应该选择一种方法而不是另一种?

2 个答案:

答案 0 :(得分:1)

Rosa Gronchi是对的,你应该使用归一化的互相关。 归一化互相关测量是归一化矢量的互相关,使得所有矢量具有长度1和平均值0 这种方式更明亮的补丁不会比较暗的补丁有“优势”。

关于复杂性,square diff还必须计算产品,因为它扩展到:

enter image description here

使用快速傅里叶变换算法计算产品。

答案 1 :(得分:0)

方形距离和相关性都是用于确定相似性的统计系数。

它们之间的主要区别在于它们用于描述的数据类型。这两个系数之间的关系在这里有很好的描述:

https://stats.stackexchange.com/a/34066

简而言之:两个因素之间的差异依赖于探针的标准偏差。

如果您提供,相关匹配的结果让我想知道您是否使用范围(0,255)或(0,1)中的像素值。处理范围(0,255)中的值时,经典相关可以使您的对象与图像的或多或少最亮的区域匹配。

如果您有任何其他问题,请发表评论。

玩得开心!