解释 openCV 匹配模板的互相关和归一化

Explaing Cross Correlation and Normalization for openCV's Match Template

我和我的老板不同意 matchTemplate() 的 CV_TM_CCORR_NORMED 方法是怎么回事;在开放式简历中。

你能解释一下这里发生了什么,尤其是这个等式的平方根方面吗?

相关性是两个信号、向量等的相似性。假设你有向量

 template=[0 1 0 0 1 0 ]   A=[0 1 1 1 0 0] B =[ 1 0 0 0 0 1]  

如果你执行向量和模板之间的关联来得到哪个更相似,你会看到 AB 更类似于 template 因为 1 被放置在相应的位置indexes.This表示对应的非零元素越多,向量之间的相关性就越大。

在灰度图像中,值在 0-255.Let 的范围内:

template=[10 250 36 30] A=[10 250 36 30] B=[220 251 240 210] .

这里很明显 Atemplate 相同,但 Btemplate 之间的相关性大于 Atemplate.在公式的归一化互相关分母部分正在解决这个问题。如果您检查下面的公式,您会发现 B(x)template 的分母比 A(x)template.

大得多

opencv 文档中所述的公式:

在实践中,如果你使用互相关,如果图像的一部分有亮度,如果你使用归一化互相关,那部分和你的模板之间的相关性将是 larger.But你会得到更好的结果。

认为公式是这样的:

在逐个元素相乘之前,您正在对两个 matrixes.By 除以矩阵中所有元素的平方和的根进行归一化,您正在去除增益;如果所有元素都很大,则除数也很大。

认为您正在除以 matrix.If 中所有元素的总和,一个像素值位于更亮的区域,那么它的邻居像素值将 high.By 除以您正在移除照明的其邻域的总和 effect.This 用于图像处理,其中像素值始终为 positive.But 对于 2D 矩阵可能有一些负值,因此平方忽略符号。