matlab中的振幅逆傅里叶变换

matlab中的振幅逆傅里叶变换,matlab,Matlab,我有一个图像,它是傅里叶变换的振幅。我尝试了ifft,但它不起作用(我有一个黑色图像)。那我该怎么做呢 我得到这个信息: Warning: Displaying real part of complex input. 这是我的一段代码: F=fft2(img); F = fftshift(F); F = abs(F); F = log(F+1); F = mat2gray(F); F=ifft2(F); imshow(F) 这个想法是给我拍张照片,然后对它进行傅里叶变换。接下来,我切

我有一个图像,它是傅里叶变换的振幅。我尝试了
ifft
,但它不起作用(我有一个黑色图像)。那我该怎么做呢

我得到这个信息:

Warning: Displaying real part of complex input.    
这是我的一段代码:

F=fft2(img);
F = fftshift(F);
F = abs(F);
F = log(F+1);
F = mat2gray(F);
F=ifft2(F);
imshow(F)

这个想法是给我拍张照片,然后对它进行傅里叶变换。接下来,我切下傅里叶变换的中心。我想看看我的图片是什么样子。

您可以尝试通过real命令查看复杂的值。你能添加一段代码吗?什么函数会给你这个警告?很抱歉迟到了,我没有看到你的评论(我在这个网站和matlab中都是新手)事实上,我想做的是给我拍张照片,然后做傅里叶变换,然后我切下傅里叶变换的中心,我想看看我的照片是什么样子,这就是代码和平的想法:B=fft2(img);>>F=FFT换档(F);F=abs(F);F=对数(F+1);F=mat2gray(F);ifft2(F);和imshow(F)@user2539972你应该有一些矩阵操作,因为你提到你需要切割图像的中心。你在哪里做的?你犯了一些错误。首先,您应该为代码中的每个步骤选择不同的变量,这样您就可以跟踪和捕获在过程中发生的事情。其次,您可以通过
F=abs(fftshift(fft2(img))保存行和变量,等等。但有意义的错误是您没有将其作为输入输入到任何变量的行
ifft2(F)
(因此它可能存在于“ans”中),如果您对空间域感兴趣,mat2gray在频域中的含义是什么?你应该在ifft2之后做,但我认为根本没有必要。