2

如何在 MATLAB 中绘制二维图像的傅里叶变换的相位和幅度?我正在使用angleabs然后使用imshow,但我得到一个黑色图像。这个绘图有什么
用?fftshift

4

2 回答 2

1

根据您的评论,您需要删除 DC 偏移。就像是:

imagesc(abs(fftshift(fft2(I - mean(I(:))))));
于 2014-03-07T13:33:52.637 回答
1
F = fft2(I); where I is the input
F = fftshift(F); % Center FFT

F = abs(F); % Get the magnitude
F = log(F+1); % Use log, for perceptual scaling, and +1 since log(0) is undefined
F = mat2gray(F); % Use mat2gray to scale the image between 0 and 1

imshow(F,[]); % Display the result

尝试这个。代码取自:如何在 Matlab 中绘制 2D FFT?

于 2014-03-06T20:36:58.613 回答