对一张图片傅里叶变换后的频谱和相角,并分别用频谱和相角以及频谱+相角利用逆傅里叶变换图像重建

Phedra ·
更新时间:2024-11-14
· 580 次阅读

matlab关于傅里叶变换后的频谱和相角的图像重建

题目:求出一张图片的傅里叶变换后的频谱和相角,并分别用频谱、相角、频谱+相角进行图形重构。

流程
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(‘用相角重建的图像’);

实验结果:
分别利用频谱、相角、频谱+相角分别进行图形重构


作者:俯察君



图片 傅里叶变换

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章