为什么FFT的实部将图像转换为旋转+原始图像?


16

我已经看过这张图片:

在此处输入图片说明

进行FFT(2D),然后进行逆FFT,以获取准确的图像。提供代码以供参考:

imfft = fft2(photographer);
im = uint8(ifft2(imfft));

imshow(im); %Output is same image

但是当我改变傅立叶而只占真实部分时,

imfft = real(fft2(photographer));
im = uint8(ifft2(imfft));
imshow(im);

我得到这样的图像(请注意,大小更改是无关紧要的,仅是由于从Matlab图形处理程序中保存了它):

在此处输入图片说明

有人可以向我解释其背后的理论(数学)吗?谢谢

Answers:


16

假设您的图片由。然后通过给出其傅立叶变换 一世Xÿ

一世FωXωÿ=Xÿ一世XÿËĴωXXËĴωÿÿdXdÿ

现在,您可以发挥真正的作用并执行相反的操作:

一世αβ=ωXωÿ{一世FωXωÿ}ËĴωXαËĴωÿβdωXdωÿ=ωXωÿ{Xÿ一世XÿËĴωXXËĴωÿÿdXdÿ}ËĴωXαËĴωÿβdωXdωÿ=Xÿ一世XÿωXωÿ{ËĴωXXËĴωÿÿ}ËĴωXαËĴωÿβdωXdωÿdXdÿ

您可以清楚地看到,内部积分是的2D傅里叶变换 ,即

cosωXXcosωÿÿ+ωXXωÿÿ
12[δX-αδÿ-β+δX+αδÿ+β]

将结果替换为得到 一世

一世Xÿ=12[一世Xÿ+一世-X-ÿ]

当然,你的情况的,然而,离散傅立叶变换假设你的信号是为周期,你会得到 ,其中是图像的尺寸。我认为您现在可以看到为什么获得该结果。Xÿ>0ñ

一世Xÿ=12[一世Xÿ+一世ñ-X中号-ÿ]
ñ中号

好答案!+1
彼得·K。

3
I think you can see now why got that result.是。但是,由于这个问题已成为HNQ的清单,您也许会考虑为那些数学上不太倾向于斜面的人添加最后一步。
桅杆

9

提供的结果ThP也可以用非常简单的术语表示:如果您有一个纯实数据集,则其(逆)傅立叶变换将具有厄米对称性:如果在位置找到值,则您将在原点附近的点反射位置处找到复共轭值。注意这里的原点将是傅立叶空间的中心。当然,如果DC分量不在FFT实施的中心,则可以重新设定。这就是您在图像中看到的结果:点反射版本覆盖了真实图像-因为您强迫一个空间成为真实值。žXÿž-X-ÿ

在某些情况下,此属性实际上已用于加速磁共振成像(MRI):MRI直接在傅立叶空间中获取数据。由于理想的MR图像只能用实数值描述(所有激发的磁化矢量的相位均为0),因此您只需要获取一半的数据空间,就可以节省一半的成像时间。当然,由于现实的局限性,MR图像并不是完全真实的价值……但是通过一些技巧,您仍然可以有利地使用此技术。


2
我喜欢陈述ThP提供的相同答案的简单方法。并感谢您提供有关MRI的信息。对此一无所知。
失败的科学家
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.