我们想在Matlab中使用网格函数绘制图像的FFT2(我们已应用fftshift
,abs
和log
)。
那我们该怎么做?
imageB=imread('pic2', 'jpg');
figure, imshow(imageB)
fftB=fft2(double(imageB));
F1=fftshift(fftB);
F2=abs(F1);
F3=log(F2+1);
mesh(F3)
我们需要FFT的三维图。
答案 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;
结果: