【发布时间】:2015-04-14 21:53:19
【问题描述】:
我的老板和我不同意 matchTemplate(); 的 CV_TM_CCORR_NORMED 方法发生了什么;在openCV中。
你能解释一下这里发生了什么,尤其是这个方程的平方根方面。
【问题讨论】:
标签: opencv normalization cross-correlation matchtemplate
我的老板和我不同意 matchTemplate(); 的 CV_TM_CCORR_NORMED 方法发生了什么;在openCV中。
你能解释一下这里发生了什么,尤其是这个方程的平方根方面。
【问题讨论】:
标签: opencv normalization cross-correlation matchtemplate
相关性是两个信号、向量等的相似性。假设你有向量
template=[0 1 0 0 1 0 ] A=[0 1 1 1 0 0] B =[ 1 0 0 0 0 1]
如果你在向量和模板之间进行相关来得到哪个更相似,你会看到A 与template 的相似程度高于B,因为1 被放置在相应的索引中。这意味着更多的非零元素对应向量之间的相关性越大。
在灰度图像中,值在 0-255 的范围内。让我们这样做:
template=[10 250 36 30] A=[10 250 36 30] B=[220 251 240 210].
这里很明显A 与template 相同,但B 和template 之间的相关性大于A 和template。在归一化互相关分母部分的公式中解决了这个问题问题。如果您检查下面的公式,您会发现B(x)template 的分子将比A(x)template 大得多。
opencv 文档中所述的公式:
在实践中,如果你使用互相关,如果图像的一部分有亮度,那部分和你的模板之间的相关性会更大。但是如果你使用归一化的互相关,你会得到更好的结果。
认为公式是这样的:
在逐个元素相乘之前,您正在对两个矩阵进行归一化。通过将矩阵中所有元素的平方和除以消除增益;如果所有元素都很大,则除数很大。
认为您正在划分矩阵中所有元素的总和。如果一个像素值位于较亮的区域,则其相邻像素值将很高。通过划分其邻域的总和,您正在消除照明效果。这是用于图像处理其中像素值始终为正。但对于 2D 矩阵,可能会有一些负值,因此平方忽略符号。
【讨论】: