Matlab中的二维快速傅里叶变换三维图

时间:2014-06-12 14:27:41

标签: matlab

我们想在Matlab中使用网格函数绘制图像的FFT2(我们已应用fftshiftabslog)。

那我们该怎么做?

imageB=imread('pic2', 'jpg');

figure, imshow(imageB)

fftB=fft2(double(imageB));

F1=fftshift(fftB);

F2=abs(F1);

F3=log(F2+1);

mesh(F3)

我们需要FFT的三维图。

1 个答案:

答案 0 :(得分:3)

使用surf的选项:

imageB=rgb2gray(imread('http://upload.wikimedia.org/wikipedia/commons/d/db/Patern_test.jpg'));

请注意,原始图像是RGB图像,因此FFT也是3通道阵列。转换为灰度或使用F1(:,:,1)

访问一个频道
fftB=fft2(double(imageB));
F1=log(abs(fftshift(fftB)));

surf(F1), shading flat;

结果:

enter image description here