两幅图像之间的相关性

时间:2012-11-18 22:59:33

标签: matlab image-processing matrix correlation

我试图在图像大小为PXP的两个图像f1和f2之间找到以下相关性。

我已经编写了一个for循环程序,但我认为内置函数会更快。

enter image description here

matlab中的哪个函数可以帮我计算这个?

此外,如果两个图像的大小都是M X N,有人可以告诉我这个公式将如何改变,或者该功能是否能够处理它。

编辑:

是否有比 xcorr2 更快的功能,这可以帮助我看到当我只需要具有未相关图像的相关值时花费太多时间....

3 个答案:

答案 0 :(得分:7)

这是用于在两个图像(矩阵)之间进行相关(系数)的函数:

r = corr2(A,B) 计算A和B之间的相关系数,其中A和B是相同大小的矩阵或向量。

而xcorr2(A,B)解决了CROSS相关性。

答案 1 :(得分:6)

使用xcorr2功能。例如:

 C=xcorr2(A,B)

答案 2 :(得分:6)

MATLAB仅为此目的xcorr2。我想你的代码看起来像是:

r = xcorr2(f1, f2) / (P .^ 2)

其中f1f2是两张图片。得到的矩阵r是( 2P-1 )×(2P-1)矩阵,其每个元素反映f1和f2之间相似性的度量,当两个图像是移动了一个偏移量,该偏移量对应于该元素偏离中心的位置。

请注意,如果您只对两个未移位图像之间的相关性感兴趣,那么您应该节省执行时间并使用corr2,就像@TheByzantine在他的回答中所建议的那样。