傅里叶变换的实现及应用报告
- 格式:doc
- 大小:1.60 MB
- 文档页数:6
辽宁工程技术大学上机实验报告
实验名称 傅里叶变换的实现及应用
院系 测绘学院 专业 遥感专业 班级 遥感12-2
姓名 刘杰 学号 1204090215 日期 2015-7-1
实验
目的 1.掌握怎样利用傅立叶变换进行频域滤波
2.掌握频域滤波的概念及方法
3.熟练掌握频域空间的各类滤波器
4.利用MATLAB程序进行频域滤波
实验
准备 阅读上机指导书,查阅相关资料,了解傅里叶变换的相关程序,频域滤波的概念及方法,频域空间的各类滤波器,以及利用MATLAB程序进行频域滤波的相关步骤,并在此基础上试写MATLAB程序语句。
实验
进度 本次共有 2 个练习,完成 2 个。
实验
总结 实验原理:
频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想:
G(u,v)=F(u,v)H(u,v)
F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。
理想地通滤波器(ILPF)具有传递函数:
001(,)(,)0(,)ifDuvDHuvifDuvD
其中,0D为指定的非负数,(,)Duv为(u,v)到滤波器的中心的距离。0(,)DuvD的点的轨迹为一个圆。
n阶巴特沃兹低通滤波器(BLPF)(在距离原点0D处出现截至频率)的传递函数为201(,)1[(,)]nHuvDuvD
与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在0D处突然不连续。
高斯低通滤波器(GLPF)的传递函数为 成绩
222),(),(vuDevuH
其中,为标准差。
相应的高通滤波器也包括:理想高通滤波器、n阶巴特沃兹高通滤波器、高斯高通滤波器。给定一个低通滤波器的传递函数(,)lpHuv,通过使用如下的简单关系,可以获得相应高通滤波器的传递函数:1(,)hplpHHuv
利用MATLAB实现频域滤波的程序
图像的图像进行二维DFT使用函数fft2()实现,fft2()的语法为
F=fft2(x);
I=fft2(x,m,n);
x为输入图像;m和n分别用于将x的第一和第二维规整到指定的长度。
当m和n均为2的整数次幂时算法的执行速度要比m和n均为素数时快。
为了显示频谱的实部使用
S=abs(F); 计算I的幅度谱
I2=angle(I);%计算I的相位谱
figure,imshow(S,[ ]);
为了将频谱居中显示,使用函数fftshift()搬移,fftshift()的语法为
Fc=fftshift(F); %频谱平移
figure,imshow(Fc,[ ]);
I=ifft2(x);%快速傅里叶逆变换
I=ifft2(x,m,n);
为了使频谱的对比度增强,采用对数增强法
S2=log(1+abs(Fc));
figure,imshow(S2,[ ])
将图像进行IDFT之前,使用函数ifftshift()将频谱反向搬移,然后使用函数ifft2()进行IDFT
生成低通滤波使用函数lpfilter(),生成高通滤波使用函数hpfilter(),(分别参考lpfilter.m, hpfilter.m)
H1=lpfilter(‘ideal’,M,N,D0);
H2=hpfilter(‘ideal’,M,N,D0);
对图像进行频域滤波使用函数dftfilt(),(参考dftfilt.m)
G1=dftfilt(f,H1);
G2=dftfilt(f,H2);
figure,imshow(G1,[ ]);
figure,imshow(G2,[ ]);
对图像进行高频强调增强,是在保持图像特征的基础上,对高频部分进行一定提升
H3=0.5+2*H2;
G3=dftfilt(f,H3);
figure,imshow(G3,[ ]);
傅立叶变换实例
I=imread('cameraman.tif'); %读入原图像文件
I=double(I);
imshow(I); %注意和imshow(I,[0 255])的显示的区别对于double图像imshow(I)显示%出来的为白色
figure;
imshow(I,[0 255]); %显示原图像
fftI=fft2(I); %二维离散傅立叶变换
S=fftshift(log(1+abs(fftI))); %直流分量移到频谱中心
RR=real(fftI); %取傅立叶变换的实部
II=imag(fftI); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化
figure; %设定窗口
imshow(A); %显示原图像的频谱
实验步骤:
1.调入并显示所需的图片;
2.利用MATLAB提供的低通滤波器实现图像信号的滤波运算,并与空间滤 波进行比较。
3.利用MATLAB提供的高通滤波器对图像进行处理。
4.记录和整理实验报告。
练习1:
练习2:
ERDAS中进行傅立叶变换应用实验步骤
A.erdas imaging,打开傅里叶分析工具(fourier analysis),选择fourier transform,input file内选择需要处理的图像(TM_1.img),输出图像为tm.1.fft
B.开fourier transform editor,在fourier editor窗口内,打开tm_1.fft,并对其进行处理,这里主要是利用了楔形掩膜,低通滤波对图像进行编辑处理
C. 对处理后的频率域图像保存,另存为editor.fft
D.打开inverse fourier transform,input file输入editor.fft,output file命名为tm_12.img,输出数据类型选择unsigned 8 bit,输出数据统计时忽略零值。再点击OK
打开一个viewer,打开tm_12.img,处理后的图像
实验体会:
1.在进行实验之前,我安装了MATLAB并将其破解,而且熟悉了MATLAB的运行与简单操作。
2.试验中每一步操作都环环相扣,需要特别谨慎细心,一旦忽略其中一步,都有可能得不到最后的结果,会使之前的努力都前功尽弃。
3.本次实验主要是学会低通和高通滤波器的使用,它能够滤除不想要的噪声,还能够将图像的噪声控制在想要的范围内。熟练掌握后,发现将书本知识付诸实践会有更多的收获。
教师
评语