MATLAB能对彩色图像做傅立叶变换吗

来源:百度知道 编辑:UC知道 时间:2024/09/22 20:24:45
如题。如果能做,怎么做?
另外,是不是只能对2值图像和灰度图像做变换?
麻烦请给出代码,谢谢!
谢谢回答。
B是不是对A做傅立叶变换以后的实部?我想画power spectrum,用imshow(abs(B));但是出来的图像是一片空白,为什么呢?怎么才能画功率频谱?怎么画相位?还有,为什么不用fftshift?
希望大家多多帮忙。

可以单独对RGB图像的三个分量做傅里叶变换。
设a.jpg为RGB类型图像

rgb = imread('a.jpg');
x1 = rgb(:,:,1);
x2 = rgb(:,:,2);
x3 = rgb(:,:,3);%R,G,B三个分量

对某个分量或灰度图像矩阵x做傅里叶变换
X = fftshift(fft2(x));
X2 = abs(X.^2); %计算功率谱
imshow(X2,[])
Y = angle(X);
figure;imshow(X,[])