MATLAB能对彩色图像做傅立叶变换吗如题.如果能做,另外,是不是只能对2值图像和灰度图像做变换?麻烦请给出代码,B是不是对A做傅立叶变换以后的实部?我想画power spectrum,用imshow(abs(B));但是出来

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 02:33:50

MATLAB能对彩色图像做傅立叶变换吗如题.如果能做,另外,是不是只能对2值图像和灰度图像做变换?麻烦请给出代码,B是不是对A做傅立叶变换以后的实部?我想画power spectrum,用imshow(abs(B));但是出来
MATLAB能对彩色图像做傅立叶变换吗
如题.如果能做,
另外,是不是只能对2值图像和灰度图像做变换?
麻烦请给出代码,
B是不是对A做傅立叶变换以后的实部?我想画power spectrum,用imshow(abs(B));但是出来的图像是一片空白,为什么呢?怎么才能画功率频谱?怎么画相位?还有,为什么不用fftshift?

MATLAB能对彩色图像做傅立叶变换吗如题.如果能做,另外,是不是只能对2值图像和灰度图像做变换?麻烦请给出代码,B是不是对A做傅立叶变换以后的实部?我想画power spectrum,用imshow(abs(B));但是出来
可以单独对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,[])