关于matlab 中的一个unit8的图像(三维数组)该如何转换成为二维数组图像并且用image 画出

如题
我想使用matlab将一个unit8的三维数组图像通过傅里叶变换得到频谱,然后画出其频谱,但是却没有办法实现,请教各位帮帮我吧!
谢谢。
以下为程序,但是无法实现,总是提示
“??? Undefined function or method 'imageshow' for input arguments of type 'double'.

Error in ==> fft_signal9 at 3
imageshow(abs(fft(p)))”

下面是程序
clear
p=imread('p2.bmp');
imageshow(abs(fft(p)))
colormap('gray')

恳请各位大侠帮帮我!鞠躬啦

第1个回答  推荐于2016-01-31
应该采用二维傅立叶变换:
pp=fft2(p)
imageshow(abs(pp))本回答被提问者采纳
第2个回答  2008-11-03
如果你要的是灰度图的频谱,

clear
p = double(imread('p2.bmp'));
p = rgb2gray(p);
p = abs(fft2(p));
surf(p);