零填充前后图像的自相关功能

时间:2018-11-08 18:11:36

标签: matlab math signals

我想问你一个问题,也许很琐碎,但实际上,我有点困惑。

鉴于黑白的想象,我的目标是评估自相关函数。 通过遵循this example中描述的方法:

I=double(I); %convert to double
I=I-mean(I(:)); %subtract mean
I=I/sqrt(sum(I(:).^2)); %normalize magnitude
fft_I=fft2(I); %compute fft2
A=real(fftshift(ifft2(fft_I.*conj(fft_I)))); %compute autocorrelation

我获得一个函数,该函数给出与图像的半域相关的自相关值(沿着x以及沿着y)

经过一些研究,如果我正确理解,为了获得与整个域相关的自相关函数,通过遵循上述过程,我必须通过添加零对图像进行零填充。我已经做到了,获得的自相关函数与使用Matlab命令xcorr2获得的自相关函数相同(这应该是我没有犯错误的信号)。

但是,通过链接中的过程获得的相关函数(无零填充)和用零填充获得的相关函数在同一域中是不同的。

我希望这两个相关函数相同...应该相同还是不同? 我没有得到什么?

1 个答案:

答案 0 :(得分:1)

请注意,当您通过傅立叶域中的乘法计算互相关时,图像被认为是周期性的。对于给定的班次,图像中与图像域不重叠的部分会被包裹起来,并在另一侧重新回到图像域中。

当填充零时,图像域变大。如果应用了足够的填充,则原始图像不会发生缠绕并返回另一侧的原始图像域。

因此,可以预期,即使在相同的域中,结果也会有所不同。您离原点越远,这两个自相关函数的差异就越大。