[数图] 实验三 傅里叶变换及其应用

一、 实验目的
1
掌握二维 DFT 变换及其物理意义
2
掌握二维 DFT 变换的 MATLAB 程序
3
空间滤波及频域滤波
二、 实验内容
学习使用函数 fft2, ifft2, abs, angle, fftshift, imfilter, fspecial, freqz2
对数形式显示方法;实现正反傅里叶变换、 Gaussian 低通滤波和 laplacian
高通滤波。
三、 实验步骤
1、利用 MATLAB 实现数字图像的傅里叶变换
读入并显示图 Fig0316(3)(third_from_top).tif ,作该图的二维 FFT 变换 F ,将其直流分量移到频谱中心 F1 ,计算其实部 RR 、虚部 II、相角Angle, 用两种方法计算及幅值 A1=abs(F1) A2=sqrt(RR.^2+II.^2),分别显示 A1 A2 ,并加以比较。

 2、近似冲击函数二维傅里叶变换

A=zeros(99,99);
A(49:51,49:51)=1;
作 A 的二维傅里叶变换 B,将 B 直流分量移到频谱中心 B1,分别用函数 imshow mesh 显示 A B1 模的对数( log(1+abs(B1))

 3、空间滤波与频域滤波

将图 Fig0504(a)(gaussian-noise).tif(f )分别进行空间与频域滤波。
空间滤波:
fspecial 产生 9*9 ,标准差为 2 的高斯滤波器 w ,用函数imfilter对 f 进行空间滤波,得到滤波后的图像 fi1
频域滤波:
将上述高斯滤波器 w 用函数 freqz2 获得其 256*256 频域形式 W, 用 W 在频域滤波图像 f (注意 W 的直流分量在频谱中心),得到 Ff ,求其傅里叶逆变换(ifft2),得到滤波后的图像 fi2。
用函数 imshow 显示 w ,用函数 mesh 显示 W ,用 imshow 显示 f fi1, Ff 的模的对数, fi2 。比较 fi1 fi2
四、实验结果&代码

%(1)利用 MATLAB 实现数字图像的傅里叶变换

%(1)利用 MATLAB 实现数字图像的傅里叶变换
clear all; 
f=imread('C:\PICTURE_YUWEI\Fig0316(3)(third_from_top).tif'); 
figure(1);imshow(f);title('原图'); 
F=fft2(f); %做快速傅里叶变换
F1=fftshift(F); %居中操作
A0=abs(F1);%居中的傅里叶谱
figure(2);imshow(A0, [])%显示图像
title('居中的频谱幅值A0'); 
%计算其实部RR、虚部II、相角Angle。
RR=real(F1); %取实数
II=imag(F1); %取虚数
A1=abs(F1); %取相角
figure(3);imshow(log(1+A1),[]);
title('频谱幅值A1'); 
A2=sqrt(RR.^2+II.^2); 
figure(4); imshow(log(1+A2),[]);
title('频谱幅值A2');

 %2近似冲击函数二维傅里叶变换

%(2)近似冲击函数二维傅里叶变换
clear all; 
A=zeros(99,99); %生成一个99*99像素的黑色图像
A(49:51,49:51)=1; %居中的像素的值为1
B=fft2(A); %二维傅里叶变换
B1=fftshift(B);%居中操作
figure(1);
subplot(2,2,1);
imshow(A);
title('空域图像(用imshow显示)'); 
subplot(2,2,2); 
imshow(log(1+abs(B1)));
title('频域图像(用imshow显示)'); 
subplot(2,2,3);
mesh(A);title('原图的空域图形(用mesh显示)');
subplot(2,2,4);
mesh(log(1+abs(B1)));
title('B1频域图形(用mesh显示)');

%(3)空间滤波与频域滤波

 

%(3)空间滤波与频域滤波
clear all; 
w=fspecial('gaussian',[9 9],2);%生成滤波器w 
figure; 
subplot(3,2,1);
imshow(w);title('图3.1 9*9,标准差为2的高斯滤波器w');
W=freqz2(w,256,256); 
W1=ifftshift(W); %居中显示
subplot(3,2,2);mesh(W);
title(' 图3.2 滤波器的频域图形W(用mesh显示)'); 
f=imread('C:\PICTURE_YUWEI\Fig0504(a)(gaussian-noise).tif');
F=fft2(f); %傅里叶变换
subplot(3,2,3);
imshow(f);
title(' 图3.3 频域滤波图像f(用imshow显示)'); 
fi1=imfilter(f,w);%空间滤波
subplot(3,2,4);
imshow(fi1);title(' 图3.4 空间滤波后的图形fi1(用imshow显示)'); 
Ff=W1.*F; %进行滤波
subplot(3,2,5);
imshow(log(abs(Ff)),[]);%取模的对数
title(' 图3.5 频域滤波Ff模的对数(用imshow显示)'); 
fi20=ifft2(Ff);%傅里叶逆变换
fi2=real(fi20); 
fi2=fi2(1:256,1:256); 
subplot(3,2,6);imshow(fi2,[]);
title(' 图3.6 频域滤波后的图形fi2(用imshow显示)');

五、Conclusions:tell me what you learned.

(1)在“利用 MATLAB 实现数字图像的傅里叶变换”实验中,通过比较用两种计算方法得到的幅值A1和A2,观察到以下信息:

① 二者布局基本相同,说明不同方法计算出来的各个频谱分量的比例基本相同。

② 通过平方再开方获得的A2,从直观上来说,颜色稍微深一些。说明计算出来的频谱中各个频率的强度稍低。

(2)在“近似冲击函数二维傅里叶变换”的实验中,通过纵向比较,可得出以下结论:

① 在xy维度上的形状来看(俯视图),生成的原始空域图像和它的空域图形、原始空域图像生成的频域图像,都是一一对应的。

② 直观来看,图像越黑,对应的强度就越低,在图形z轴上的值就越小。图像中,强度变化越快,在图形中对应的z轴变化就越快。

(3)空间滤波与频域滤波,比较fi1和fi2:

fi1是空间滤波的结果,fi2是频率域滤波的结果。从图中可看出,在频率域滤波的结果中,低频分量的强度和高频分量的强度都要高;在空间滤波的结果中,频率处于中间值的强度更高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值