我一直在使用Matlab的normxcorr2函数通过执行归一化互相关来与图像进行模板匹配。要找到模板和图像之间的最大对应关系,可以简单地运行normxcorr2,然后找到normxcorr2返回的所有值的最大绝对值(该函数返回介于-1.0和1.0之间的值)。
通过快速谷歌搜索,我发现负相关系数意味着两个变量之间的反比关系(例如,随着x增加,y减小),并且正相关系数意味着相反(例如,随着x增加,y增加)。 这对图像模板匹配有何影响?也就是说,normxcorr2的负值在模板匹配方面概念是什么意思?
答案 0 :(得分:1)
将归一化互相关视为标准化矢量点积。如果两个向量之间的角度为零,则它们的点积为1;如果他们面向相反的方向,那么他们的点积为负1.这个想法实际上是直接的,如果你采用数组并将列端对端堆叠。结果基本上是两个向量之间的点积。
同样正如个人轶事:最初让我对模板匹配感到困惑的是,直觉上我认为两个图像的元素减法将是图像相似性的一个很好的度量。当我第一次看到互相关时,我想知道为什么它使用了元素乘法。然后我意识到后面的操作与矢量点积相同。如前所述,矢量点积表示两个矢量指向同一方向的时间。在您的情况下,首先将两个向量标准化;因此,为什么范围从-1到1.如果你想了解更多关于实现的内容,J.P。Lewis的“快速归一化交叉相关”是关于这个主题的经典论文。
答案 1 :(得分:0)
检查公式 on wikipedia
当f(x, y) - mean(f)
和t(x,y) - mean(t)
具有不同的符号时,附录的结果将为负数(标准始终为正数)。如果有很多这样的(x,y)那么整个总和也将是负数。如果1.0
表示一个图像与另一个图像相等,您可能会认为。 -1.0
表示一张图片是另一张图片的负片(尝试查找normxcorr2(x, -x)
)