题目:求出一张图片的傅里叶变换后的频谱和相角,并分别用频谱、相角、频谱+相角进行图形重构。
流程:
1、对原灰度图像进行傅里叶变换
2、求出原灰度图像的频谱和相角
3、对频谱和相角进行重建
4、分别用频谱+相角、频谱 、相角重建图像
提示:
求频谱:abs()
求相角可以用phi = atan2(I,R),也可以直接用 phi = angle()得出相角大小
原图:
实验代码:
f = imread(‘C:\Users\ASUS\Desktop\数字图像处理\IMG_4846.JPG’); %读取原图像
x = rgb2gray(f);%得到灰度值图像
subplot(2,3,1);imshow(x);title(‘原图像’);
F = fft2(x); %原灰度图像进行傅里叶变换
s = abs(F); subplot(2,3,2);imshow(s);title(‘原图像频谱’); %求原灰度图像的频谱
ph = angle(F);subplot(2,3,3);imshow(ph);title(‘原图像相角’); %求原灰度图像的相角
Fr = s.*cos(ph)+s.*sin(ph).*i; %利用相角和频谱重建图像
fr = abs(ifft2(Fr));
f = uint8(fr);subplot(2,3,4);imshow(f);title(‘用频谱和相角重建的图像’);
magif=ifft2(s); %用频谱重建图像
Fa = magif.*cos(ph)+s.*sin(ph).*i;
fa = abs(ifft2(Fa));
faa = uint8(fa);subplot(2,3,5);imshow(faa);title(‘用频谱重建的图像’);
phaif=ifft2(exp(j*ph)); %用相角重建图像
Fb = s.*cos(phaif)+s.*sin(phaif).*i;
fb = abs(ifft2(Fb));
fbb = uint8(fb);subplot(2,3,6);imshow(fbb);title(‘用相角重建的图像’);
实验结果: