专业综合课程设计任务书学生姓名:陈德松专业班级:电信 0901班指导教师:黄朝兵工作单位:信息工程学院题目:图像频率域低通滤波处理程序设计初始条件:(1)提供实验机房及其matlab软件;(2)数字图像处理的基本理论学习。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)掌握频率域处理的基本原理,利用matlab设计程序完成以下功能;(2)选择一幅256级的灰度图像;(3)对该图像作Fourier变换,得到其频谱图像;(4)按照二阶Butterworth低通滤波器的表达式设计传递函数,对该频谱图像进行低通滤波,对滤波后的频谱图像作逆Fourier变换得到滤波结果,显示结果图;(5)按照高斯低通滤波器的表达式设计传递函数,对该频谱图像进行低通滤波,对滤波后的频谱图像作逆Fourier变换得到滤波结果,显示结果图;(6)对二种滤波器的滤波结果进行分析比较;(7)要求阅读相关参考文献不少于5篇;(8)根据课程设计有关规范,按时、独立完成课程设计说明书。
时间安排:(1) 布置课程设计任务,查阅资料,确定方案四天;(2) 进行编程设计一周;(3) 完成课程设计报告书三天;指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)1 MATLAB的简介 (1)2 原理与实现 (2)2.1频率域增强基本理论 (2)2.2 傅立叶变换 (3)2.3频率域巴特沃兹(Butterworth)低通滤波器 (4)2.4频率域高斯(Gaussian)低通滤波器 (6)3 程序设计 (7)3.1算法设计(程序设计流程图) (7)3.2 对灰度图像进行Fourier变换的程序 (7)3.3 二阶巴特沃斯(Butterworth)低通滤波程序 (8)3.4 高斯(Gaussian)低通滤波程序 (9)4结果与分析 (11)4.1选择一幅256级的灰度图像 (11)4.2 对灰度图像进行Fourier变换后的频谱图 (13)4.3 二阶巴特沃斯(Butterworth)低通滤波结果与分析 (14)4.4 高斯(Gaussian)低通滤波结果与分析 (17)4.5两种滤波器的滤波结果的比较 (20)5 心得体会 (21)参考文献 (22)摘要数字图像处理的目的之一是改善图像的视觉效果, 以便人眼或机器对图像进一步理解。
而图像增强技术通过采用某种技术手段可以改善图像的视觉效果。
其中一种技术是频率域增强技术,它是增强技术的重要组成部分。
本设计重点介绍了用Matlab对一幅256级的灰度图像作Fourier变换,然后对变换后得到的频谱图像进行分别进行二阶Butterworth 低通滤波和高斯低通滤波,然后对滤波后的频谱图像作逆Fourier变换得到滤波结果,显示结果图。
本程序的设计很简洁,加上注释显得通俗易懂,而且本程序中很多地方都有输入提示,有一定的人机交互。
关键词:Matlab ,Fourier变换,Butterworth,高斯(Gaussian),低通滤波1MATLAB的简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
2 原理与实现2.1频率域增强基本理论 不对Fourier 变换(FT )和图像的频率域处理技术有所了解,就不可能完全理解图像增强这个最基本的图像处理任务。
频域增强指在图像的频率域内,对图像的变换系数(频率成分)直接进行运算,然后通过Fourier 逆变换以获得图像的增强效果。
一般来说,图像的边缘和噪声对应Fourier 变换中的高频部分,所以低通滤波能够平滑图像、去除噪声。
图像灰度发生聚变的部分与频谱的高频分量对应,所以采用高频滤波器衰减或抑制低频分量,能够对图像进行锐化处理。
卷积理论是频域技术的基础,设函数f (x, y)与算子h(x, y)的卷积结果是g(x, y),即g(x, y) = h(x, y) * f (x, y),那么根据卷积定理在频域有:),(),(),(v u F v u H v u G =其中G(u, v),H(u, v),F(u, v)分别是g(x, y),h(x, y),f (x, y)的傅立叶(或其它)变换,H(u, v)是转移函数。
在具体增强应用中,f (x, y)是给定的(所以F(u, v)可利用变换得到),需要确定的是H(u, v),这样具有所需特性的 g(x, y) 就可算出 G(u, v) 而得到:[]{} ] ),( [ ),(H 1y x f T E T y x g -=2.2 傅立叶变换傅里叶变换是将时域信号分解为不同频率的正弦信号或余弦函数叠加之和。
傅立叶变换是数字图像处理技术的基础,其通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析,简化了计算工作量,被喻为描述图像信息的第二种语言,广泛应用于图像变换,图像编码与压缩,图像分割,图像重建等。
因此,对涉及数字图像处理的工作者,深入研究和掌握傅立叶变换及其扩展形式的特性,是很有价值得。
把傅立叶变换的理论通其物理解释相结合,将有助于解决大多数图像处理问题。
傅里叶变换可分为连续傅里叶变换、离散傅里叶变换、快速傅里叶变换。
快速傅里叶变换(FFT)是计算离散傅里叶变换(DFT)的快速算法。
离散傅里叶变换运算量巨大,计算时间长,即运算时间很长。
而快速傅里叶变换的提出将傅里叶变换的复杂度由降到了,很大程度上减少了计算量。
∑-==1202)(21)(M x ux M W x f Mu F ∑∑-=+-=++=10)12(210)2(2})12(1)2(1{21M x x u M M x x u M W x f M W x f M令∑-==10)2(1)(M x ux M e W x f Mu F ,∑-=+=10)12(1)(M x ux M o W x f M u F ,u=0,1,2,…,M-1 则[]u M o e W u F u F u F 2)()(21)(+=,[]u M o e W u F u F M u F 2)()(21)(-=+2.3频率域巴特沃兹(Butterworth)低通滤波器物理上可实现(理想低通滤波器在数学上定义得很清楚,在计算机模拟中也可实现,但在截断频率处直上直下的理想低通滤波器是不能用实际的电子器件实现的)减少振铃效应,高低频率间的过渡比较光滑n 阶Butterworth 低通滤波器的传递函数为:[]n D v u D v u H 20/),(11),(+=式中,D0为截止频率。
0/),(D v u D =1时,),(v u H =0.5,它的特性是传递函数比较平滑,连续衰减,而不像理想滤波器那样陡峭变化,即明显的不连续。
因此采用该滤波器滤波在抑制噪声的同时,图像边缘的模糊程度大大减小,没有振铃效应产生,如图2.1所示。
图2.1 Butterworth 低通滤波效果阶数对振铃现象的影响:阶数越高,越明显,如图2.2所示图2.2 阶数对振铃现象的影响2.4频率域高斯(Gaussian)低通滤波器高斯(Gaussian)低通滤波器的传递函数为:其中,σ为标准偏差。
通过令σ=D 0,我们可以根据截止参数D 0得到表达式:当D (u,v )= D 0时,滤波器H(u, v)由最大值1下降为0.607。
GLPF 没有振铃现象,但与阶数为2的BLPF 相比,其通带要宽些,这样对应的空间滤波器的灰度级轮廓更窄些,因而平滑效果要差些。
以上两种滤波器,振铃现象从严重到无,但平滑效果从好到差,BLPF 可以看成ILPF 和GLPF 的过渡,阶为1时与GLPF 差不多,阶越高越接近BPLG.图2.3 高斯(Gaussian)低通滤波器对于不同的D 0值的滤波效果22(,)/2(,)D u v H u v e σ-=220(,)/2(,)D u v D H u v e -=3程序设计程序除了有题目中要求的对该图像作Fourier变换,得到其频谱图像外,还扩展了调用了函数colorbar给一个坐标轴对象添加加一条色带,该色带可以指示出该图像中不同颜色的数据值,以显示出图像的灰度级,功能较多。
程序中很多地方都有输入提示,有一定的人机交互。
3.1算法设计(程序设计流程图)算法流程图如图3.1所示:图3.1程序设计流程图3.2 对灰度图像进行Fourier变换的程序I=imread('Test picture.jpg');f=double(I); % 数据类型转换,MATLAB不支持图像的无符号整型的计算g=fft2(f);figure,imshow(log(1 + abs(fftshift(g))),[ ])%将频谱显示为一幅图像title('原图Fourier变换后频谱图');3.3二阶巴特沃斯(Butterworth)低通滤波程序此函数的功能为:使用巴特沃斯低通滤波原理实现图像柔和平滑,为便比较,通过设置不同的d0值运行程序,如果对各个d0一起运行,运行速度奇慢,所以对各个d0单独运行。
I=imread('Test picture.jpg');imshow(I);title('原图');s=fftshift(fft2(I));[M,N]=size(s); %分别返回s的行数到M中,列数到N中n=2; %对n赋初值%BLPF滤波,d0=15,30,80d0=input('请输入d0值:'); %初始化d0,d0依次取15,30,80n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离h=1/(1+(d/d0)^(2*n)); %BLPF滤波函数s(i,j)=h*s(i,j); %BLPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));figure; %创建图形图像对象imshow(s); %显示BLPF滤波处理后的图像title('BLPF滤波(d0=15)');3.4高斯(Gaussian)低通滤波程序此函数的功能为:使用高斯低通滤波原理实现图像越柔和平滑,为便比较,通过设置不同的d0值运行程序,如果对各个d0一起运行,运行速度奇慢,所以对各个d0单独运行。