【问题标题】:Zero padding fourier of image图像的零填充傅里叶
【发布时间】:2019-03-05 15:59:24
【问题描述】:

我正在尝试解决一个问题, 给定大小为 N,M 的图像 f(x,y),傅立叶变换 F。 我们定义函数g,它的傅里叶变换G定义如下:

G(x,y)=F(x,y) 如果 x

这意味着我们用零填充图像。 我尝试使用带有此代码的 matlab 进行检查:

i1 = imread('1.bmp');
i1 = im2double(i1);
k=fft2(i1);
newmat = padarray(k,[84,84],0,'post');
mat2=ifft2(newmat);
imshow(mat2);

由于某种原因,我得到了一个复杂的矩阵,我无法真正说出有趣的事情, 我错过了什么? (澄清一下,我尝试的图像尺寸为 84x84)。

谢谢!

【问题讨论】:

  • 您似乎正在用实数对复杂矩阵k 进行零填充。然后在执行 ifft 时,我怀疑这些实数会变得复杂。尝试用复数“0+i0”填充您的复数矩阵k。我不知道这是否真的能解决你的问题,但值得一试。
  • 感谢它有效。请添加它作为答案并投票...另一件事,结果的解释是什么?(相同的图像但更暗...)
  • 我已将其添加为答案。我不知道为什么你的图像变暗了。尝试在它的末尾填充等量的零,看看它是否有影响。同样,只是推测。
  • WilliamW,您的图像变暗是正常的,因为在进行傅立叶变换之前进行零填充的结果是幅度减小。如果您对原因感兴趣,请参阅数字信号处理堆栈交换上的this topic,那里有一个很好的解释。如果您将图像尺寸翻倍,亮度应该会降低两倍。
  • @FlorisSA 你搞错了,我把它带到傅里叶域后填充了

标签: image matlab image-processing fft


【解决方案1】:

你 填充必须添加高频,这不是你正在做的。对于一维 FFT,FF(2)F(end) 对应于相同的频率 — 在 2D 中,对于沿每个图像维度的每条图像线,这完全相同。通过扩展数组来填充零,您将创建一个新的F(end)。该值不再与F(2) 中的值匹配。为了使逆变换成为实值,这两个值应该是彼此的复共轭。

解决方案是在数组的中间添加填充,这里的频率最高。最简单的方法是首先使用fftshift 将零频率移动到阵列的中心,然后在阵列周围填充,然后移回:

k = fft2(i1);
k = fftshift(k);
k = padarray(k,[84,84]/2,'both');
k = ifftshift(k);
mat2 = ifft2(k);

通过这种方式,您可以保留实值图像的傅里叶变换所期望的共轭对称性。


似乎 OP 对在傅里叶谱的不同部分填充零时会发生什么感到困惑。这是一个小实验:

% Create a test image, a simple Gaussian, purely real-valued
x = linspace(-3,3,84);
img = exp(-0.5*x.^2);
img = img.' * img;
imshow(img)

% OP's method
k = fft2(img);
k = padarray(k,[84,84],0,'post');
k = complex(k); % This line does nothing
out = ifft2(k) * 4;
subplot(1,2,1); imshow(real(out)); title('real part')
subplot(1,2,2); imshow(imag(out)); title('imaginary part')

% Correct method
k = fft2(img);
k = fftshift(k);
k = padarray(k,[84,84]/2,'both');
k = ifftshift(k);
out = ifft2(k) * 4;
subplot(1,2,1); imshow(real(out)); title('real part')
subplot(1,2,2); imshow(imag(out)); title('imaginary part')

如您所见,在填充“post”时,您会在傅立叶域中引入不对称性,从而转化为空间域中的非真实图像。相比之下,我在这个答案中指示的填充会导致保持共轭对称性,从而保持实值输出(虚部全为黑色)。

(对不起,图像周围的所有空白)

【讨论】:

  • 感谢指正。当您的答案被接受时,我会删除我的答案以避免进一步混淆。 :)
猜你喜欢
  • 2017-02-02
  • 2012-10-08
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多