Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 什么';负NCC系数w.r.t.图像模板匹配的意义是什么?_Matlab_Image Processing_Correlation_Template Matching_Cross Correlation - Fatal编程技术网

Matlab 什么';负NCC系数w.r.t.图像模板匹配的意义是什么?

Matlab 什么';负NCC系数w.r.t.图像模板匹配的意义是什么?,matlab,image-processing,correlation,template-matching,cross-correlation,Matlab,Image Processing,Correlation,Template Matching,Cross Correlation,我一直在使用Matlab的normxcorr2函数,通过执行归一化互相关,对图像进行模板匹配。要查找模板和图像之间的最大对应关系,只需运行normxcorr2,然后查找normxcorr2返回的所有值的最大绝对值(该函数返回的值介于-1.0和1.0之间) 通过快速的谷歌搜索,我发现负相关系数意味着两个变量之间的反向关系(例如,随着x的增加,y的减少),而正相关系数意味着相反的关系(例如,随着x的增加,y的增加)这如何应用于图像模板匹配?也就是说,normxcorr2的负值在模板匹配的概念上意味着

我一直在使用Matlab的normxcorr2函数,通过执行归一化互相关,对图像进行模板匹配。要查找模板和图像之间的最大对应关系,只需运行normxcorr2,然后查找normxcorr2返回的所有值的最大绝对值(该函数返回的值介于-1.0和1.0之间)


通过快速的谷歌搜索,我发现负相关系数意味着两个变量之间的反向关系(例如,随着x的增加,y的减少),而正相关系数意味着相反的关系(例如,随着x的增加,y的增加)这如何应用于图像模板匹配?也就是说,normxcorr2的负值在模板匹配的概念上意味着什么?

将标准化互相关视为标准化向量点积。如果两个向量之间的角度为零,则它们的点积为1;如果它们朝向相反的方向,则它们的点积为负1。如果您使用数组并将列端到端地堆叠,那么这个想法实际上是直接的。结果基本上是两个向量之间的点积


还有一件个人轶事:最初让我困惑的是模板匹配,直觉上我认为两幅图像的元素相减是一个很好的图像相似性度量。当我第一次看到互相关时,我想知道为什么它使用元素级乘法。然后我意识到后面的操作与向量点积是一样的。如前所述,向量点积表示两个向量指向同一方向的时间。在您的例子中,两个向量首先被规格化;因此,范围从-1到1。如果您想了解更多有关实现的信息,J.P.Lewis的“快速归一化互相关”是一篇关于该主题的经典论文。

将归一化互相关视为归一化向量点积。如果两个向量之间的角度为零,则它们的点积为1;如果它们朝向相反的方向,则它们的点积为负1。如果您使用数组并将列端到端地堆叠,那么这个想法实际上是直接的。结果基本上是两个向量之间的点积

还有一件个人轶事:最初让我困惑的是模板匹配,直觉上我认为两幅图像的元素相减是一个很好的图像相似性度量。当我第一次看到互相关时,我想知道为什么它使用元素级乘法。然后我意识到后面的操作与向量点积是一样的。如前所述,向量点积表示两个向量指向同一方向的时间。在您的例子中,两个向量首先被规格化;因此,范围从-1到1。如果您想了解更多关于实现的信息,J.P.Lewis的“快速归一化互相关”是一篇关于该主题的经典论文。

检查公式

f(x,y)-平均值(f)
t(x,y)-平均值(t)
具有不同的符号时,附录的结果将为负值(标准始终为正值)。如果有很多这样的(x,y),那么整个总和也将是负数。您可能认为如果
1.0
意味着一个图像等于另一个图像
-1.0
表示一个图像是另一个图像的负片(尝试查找
normxcorr2(x,-x)

检查公式


f(x,y)-平均值(f)
t(x,y)-平均值(t)
具有不同的符号时,附录的结果将为负值(标准始终为正值)。如果有很多这样的(x,y),那么整个总和也将是负数。您可能认为如果
1.0
意味着一个图像等于另一个图像
-1.0
表示一个图像是另一个图像的负片(尝试查找
normxcorr2(x,-x)

normxcorr2(x,-x)在x是图像时给出了一个满是0的矩阵;但是,当我做了一个样本x矩阵,那么是的,它在返回矩阵的中间给出了一个-1。它可能返回0,因为结果是无符号int,而不是double。不幸的是,我现在无法检查是的,你是对的,这是因为未签名的int。在把它们变成双倍之后,我又在中间得到了-1。当X是图像时,OnnxCurr2(x,-x)给出了一个满0的矩阵;但是,当我做了一个样本x矩阵,那么是的,它在返回矩阵的中间给出了一个-1。它可能返回0,因为结果是无符号int,而不是double。不幸的是,我现在无法检查是的,你是对的,这是因为未签名的int。在把它们变成加倍之后,我又在中间得到了-1。两个向量后面的直觉是相反的,就像把模板和相应的图像贴图看作是彼此的否定一样(正如德米特里在他的回答中提到的)。我觉得这里可能有更多的人可以说,除了只指点产品和图像是彼此的负片。但也许这是我们能从中得出的最深刻的见解…回想一下什么是基本的互相关。它是元素乘法,然后是求和运算。这与两个向量的内积(或点积)的运算完全相同。此外,如果在两个数组上执行此操作,同样的情况仍然成立。这是因为,如果要将数组重塑为单个列,则操作完全是点积。在我看来,这是查看阵列互相关的最好方法——简单地说是向量的点积。最高相关系数表示两个向量指向同一方向。此外,Dmitry减去平均值,这使得相关系数对值的标量偏移保持不变。如果模板已规格化,则会使系数对缩放保持不变