离散傅里叶变换,并进行中心点平移

离散傅里叶变换,并进行中心点平移。在进行中心平移后,以直流分流所在中心为原点,分别获取不同大小的正方形频率子带进行逆傅里叶变换,分析不同大小的正方形频率子带对空域图像。
算法思想:
将图像进行快速傅里叶变换并将中心点平移,进行中心点平移后,F(0,0)移到了图像的中心,求出中心化F(0,0)的位置,根据尺寸获取相应的正方形频率子带,后将正方形频率子带进行反中心化和转换到空域中。

i=imread('lena.bmp');
subplot(1,2,1);imshow(i);title('原图');
f=double(i);    %将矩阵转换为double型
F=fft2(f);          %快速傅里叶变换
Fs=fftshift(F);      %进行中心点平移
S=log(abs(Fs)+1);    %取模并进行缩放
subplot(1,2,2);imshow(S,[]);title('中心化后的频谱图');
[h,w]=size(i);%求出原图的大小
Fs1=Fs(h/2-12:h/2+12,w/2-12:w/2+12);
fr1=real(ifft2(ifftshift(Fs1)));  %频率域反变换到空间域,并取实部
ret1=mat2gray(fr1);    %更改图像类型
subplot(2,2,1);imshow(ret1),title('25*25逆傅里叶变换');
Fs2=Fs(h/2-25:h/2+25-1,w/2-25:w/2+25-1);
fr2=real(ifft2(ifftshift(Fs2)));  %频率域反变换到空间域,并取实部
ret2=mat2gray(fr2);    %更改图像类型
subplot(2,2,2);imshow(ret2),title('50*50逆傅里叶变换')
Fs3=Fs(h/2-50:h/2+50-1,w/2-50:w/2+50-1);
fr3=real(ifft2(ifftshift(Fs3)));  %频率域反变换到空间域,并取实部
ret3=mat2gray(fr3);    %更改图像类型
subplot(2,2,3);imshow(ret3),title('100*100逆傅里叶变换')

在这里插入图片描述
总结:
傅里叶变换是将时域信号分解为不同频率的正弦信号或余弦函数叠加之和。图像的的边缘或噪声是突变部分,在频域中是高频分量,图像的平缓则为低频分量,图像的大部分信息存储在低频域中。将中心点平移后,低频信息移到频域图像的中间,可根据傅里叶系数来压缩数据。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值