对图像进行二维离散Fourier变换

      用函数fft2对图像进行二维离散Fourier变换。用图像的形式分别显示清晰的频谱幅度和相位。对图像用窗函数加权,观察其Fourier变换,解释加窗前后的变化。对图像作Fourier变换和反变换。将图像频谱的幅度和相位部分分离。分别对幅度部分和相位部分求Fourier反变换,观察得到的空域结果并解释所观察到的现象。

close all;clear all
%-------------------------------------------------------------------------%
%实验要求:用函数fft2对图像进行二维离散Fourier变换。用图像的形式分别显示清晰的
%频谱幅度和相位。对图像用窗函数加权,观察其Fourier变换,解释加窗前后的变化。
%对图像作Fourier变换和反变换。将图像频谱的幅度和相位部分分离。分别对幅度部分和
%相位部分求Fourier反变换,观察得到的空域结果并解释所观察到的现象。
%-------------------------------------------------------------------------%
f=imread('test.jpg');
imshow(f);
title('原始图像');
f=double(f);
F=fft2(f);
fd=abs(fftshift(F));
fdf=ifft2(fd);%对幅度傅里叶反变换
xw=angle(F);
xwf=ifft2(exp(j*xw));
figure;
subplot(2,2,1);
imshow(log(abs(fftshift(F))),[])%显示频谱幅度
title('图像频谱幅度');
subplot(2,2,2);
imshow(angle(fftshift(F)),[])
title('图像相位');
%---------------------------
subplot(2,2,3);
imshow(log(1+abs(fdf)),[]);
title('图像频谱幅度的逆变换');
subplot(2,2,4);
imshow(xwf,[]);
title('图像相位的逆变换');
%-----------------------------------
[M,N]=size(f); 
H1=hamming(M);
H2=hamming(N);
HH=H1*H2';
figure,
subplot(2,2,1);
imshow(HH,[]);
title('生成一个圆形的汉明窗');
g=f.*HH;
subplot(2,2,2);
imshow(uint8(g));
title('加汉明窗后的图像');
G=fft2(g);
subplot(2,2,3);
imshow(log(abs(fftshift(G))),[])%显示加窗后的频谱幅度
title('加窗后的频谱幅度');
subplot(2,2,4);
imshow(angle(fftshift(G)),[])%显示频谱幅度
title('加窗后的图像相位');
%----------------------------------------------------


 

D172 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值