Matlab 为什么fft的实部将图像转换为旋转+;起初的
我看过这幅图: 对其进行FFT(2D),然后进行逆FFT,以准确获取图像:Matlab 为什么fft的实部将图像转换为旋转+;起初的,matlab,image-processing,fft,Matlab,Image Processing,Fft,我看过这幅图: 对其进行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); 我得到了这样一幅图像(注意,尺寸变化是不相关的,只是因为从Ma
imfft = fft2(photographer);
im = uint8(ifft2(imfft));
imshow(im); %Output is same image
但当我改变傅里叶变换,只取实部时
imfft = real(fft2(photographer));
im = uint8(ifft2(imfft));
imshow(im);
我得到了这样一幅图像(注意,尺寸变化是不相关的,只是因为从Matlab figure handler保存了它):
为什么会发生这种情况
更新
如前所述,该问题已发布在DSP StackExchange上,并得到了答案。实部仅表示对称基向量(围绕FFT孔径中心对称的余弦波)。因此,任何仅使用实部(所有虚部==0)的IFFT重建只能(重新)生成围绕中心对称的图像(例如,根据您的示例对其进行扭曲)。您提供的代码没有采用2d-fft的实部。是的,这是正确的期望,因为傅里叶变换是如何工作的——如果你想知道它背后的数学原理,你可以把它贴在堆栈交换信号程序上。这有什么参考资料吗?谷歌搜索FFT奇偶对称会发现很多东西,比如:谢谢!!我只是想看看它背后的数学,所以我很怀疑