傅里叶变换的实现及应用报告

  • 格式: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.本次实验主要是学会低通和高通滤波器的使用,它能够滤除不想要的噪声,还能够将图像的噪声控制在想要的范围内。熟练掌握后,发现将书本知识付诸实践会有更多的收获。

教师

评语