MATLAB图像处理实验——IFFT2、图像灰度变换频谱图

  1. FFT2与IFFT2

通过FFT2(二维快速傅里叶变换)可将图像信号转换到频域观察其频谱,
同理,通过IFFT2也可将变换后的数据还原为图像。

clc,clear,close all
img=imread('ff1.png');
subplot(2,2,1);imshow(img);title('原图');
f=rgb2gray(img);    %对于RGB图像必须做的一步,也可以用im2double函数
F=fft2(f);          %傅里叶变换
F1=log(abs(F)+1);   %取模并进行缩放
subplot(2,2,2);imshow(F1,[]);title('傅里叶变换频谱图');
Fs=fftshift(F);      %FFT频谱中心化,将频谱图中零频率成分移动至频谱图中心
S=log(abs(Fs)+1);    %取模并进行缩放
subplot(2,2,3);imshow(S,[]);title('频移后的频谱图');
fr=real(ifft2(ifftshift(Fs)));  %频率域反变换到空间域,并取实部
ret=im2uint8(mat2gray(fr));    %更改图像类型
subplot(2,2,4);imshow(ret),title('逆傅里叶变换');

效果:
在这里插入图片描述
如果尝试自行编写相关算法,能将正变换生成后的数据还原图像说明算法正确。

  1. 频谱图的像素值是由FFT结果数据的实部值生成吗?

为了回答这个问题,先将代码简化为关键几步:

clc,clear,close all
I=imread('ff1.png'); %读入图像
I=rgb2gray(I); %灰度转换
F=fft2(im2double(I)); %FFT
F=fftshift(F); %FFT频谱中心化
F=real(F);
T=log(F+1); %频谱对数变换
subplot(1,2,1),imshow(I),title('原始图像');
subplot(1,2,2),imshow(T,[]),title('原始图像其频谱图');

可以看到频谱图的数据来源主要是FFT后取实部(用abs()求模运算更好)并进行对数转换;

Tips:
1.用abs()求傅里叶变换的模,我们都知道傅里叶变换后的结果为复数,包含real实部和imag虚部,而abs就是求复数的模,经过这一步,F的类型由复数的double变成了实数的double,如果没有这一步, matlab会给出提示,Warning: Displaying real part of complex input.
2.对数转换的目的:经过log(X)变换后会变成负数,而log(X+1)则将所有的x值,映射成正数,数值范围也更小一些。

效果:
在这里插入图片描述
若未进行频谱中心化,效果为:

clc,clear,close all
I=imread('ff1.png'); %读入图像
I=rgb2gray(I); %灰度转换
F=fft2(im2double(I)); %FFT
F2=F;
F=fftshift(F); %FFT频谱中心化
F=abs(F);
T=log(F+1); %频谱对数变换
%%
F2=abs(F2);
T2=log(F2+1); %频谱对数变换
%%
subplot(2,2,1),imshow(I),title('原始图像');
subplot(2,2,2),imshow(T,[]),title('原始图像其频谱图');
subplot(2,2,3),imshow(I),title('原始图像');
subplot(2,2,4),imshow(T2,[]),title('未中心化频谱图');

注意这里是用的abs()求模运算,与直接取real()实部的效果有些差异。

效果:
在这里插入图片描述

参考文档:
如何理解 图像傅里叶变换的频谱图
使用matlab对图像进行傅里叶变换(FFTSHIFT)
Matlab对图像进行傅里叶变换实例

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wayne_Fine

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

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

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

打赏作者

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

抵扣说明:

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

余额充值