增强低频和高频 matlab,实验名称高斯低频滤波及高频增强滤波

a7f4a3f590493a1e451dd952a488fd7c.gif 实验名称高斯低频滤波及高频增强滤波

(12页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.9 积分

实验名称高斯低频滤波及高频增强滤波实验代号N0.3课程名称数字冬像处理学生姓名王琰完成时间2008年10月11日递交时间2008 年 10 月 15 H-00八年十月十一日实验背景一、实验目的和要求1、 了解傅立叶变换和频率域在图像处理中的基木应用知识;2、 通过MATLAB编程,掌握高斯低频滤波和高频增强滤波的原理和方法。二、实验内容和原理实验内容:1、 运用教材中4. 3-7式编写程序实现高斯型低通滤波器,通过低通滤波将图4.18(a)转换 为图 4. 18(c)。2、 重复教材中的例4.9,对所给图像进行高频增强滤波;实验原理:?傅立叶变换及频率域滤波傅立叶变换理论是指,任何周期函数都可以表示为不同频率的正弦和/或余弦和的形式, 每个正弦和/或余弦乘以不同的系数,即傅立叶级数。在本次实验中,用到了傅立叶二维变换。 MATLAB提供的快速傅立叶变换函数有:(1) fft2fft2函数用于计算二维快速傅立叶变换,其语法格式为:B = fft2(Image);函数返回图象Image的二维fft变换矩阵,输入图象Image和输出图象B大小相同。(2) ifft2ifft2函数用于计算图象的二维傅立叶反变换,其语法格式为:B = ifft2(Image);函数返回图象Image的二维傅立叶反变换矩阵,输入图象Image和输出图彖B大小相同。刚获得的图像一般会带有很多噪音,所以要针对所关注的图像内容进行滤波。而采用频 率域滤波,是将傅立叶变换的频率与图像变化模式联系起来。当从变换的原点移开时,低频 对应着图像的慢变化分量,在进一步移开原点时较高的频率开始对应图像中变化加快的灰度 级。这些是物体边缘和由灰度级的突发改变标志的图像成分。在频率域中进行滤波用到了 H(u,v)滤波器传递函数。它在变换屮抑制某些频率但其他频率不受影响。在等式的形式下,用f(x,y)代表输入图像,而用F(u,v)表示其傅立叶变换,其输出图像的 傅立叶变换为:G(u,v) = H(u,v)F(u,v);频域滤波的步骤一般是:1、 用(-1)A(x+y)乘以输入图像进行屮心变换;2、 有(1)计算图像的DFT,即F(u,v);3、 用滤波函数H(u, v)乘以F(u, v);4、 计算(3)中结果的反DFT;5、 得到(4)中结果的实部;6、 用(-1)A(x+y)乘以⑸屮的结果。在进行频域滤波前是要进行傅立叶变换的,在频域内对图像进行操作。?高斯型低通滤波高斯低通滤波器,用来帮助寻找空间域与频率域之间的重要联系,对高频区域的值进行 过滤,保留低频的细节信号。其二维形式如下式:H(u,v)D(u, v)是距傅立叶变换原点的距离。高斯低通滤波器的傅立叶反变换也是高斯的,因此高斯函数能构成一个在频域具有平滑 性能的低通滤波器,可以通过在频域做乘积来实现高斯滤波。同吋,通过上式的傅立叶反变 换而得到的空间高斯滤波器将没有振铃。高斯滤波器可用均值滤波器多次逼近,一般情况下, 大于或等于三次逼近就可近似于高斯滤波器,所以,在设计高斯滤波器时,可以用设计均值滤 波器逼近代替高斯滤波器。?高频增强滤波本实验中,要进行高频增强滤波的图像是一个宰灰度级的X射线胸透图。目的是能够突 出高频成分,锐化图像。高频增强滤波的步骤主要分为,巴特沃斯高通滤波,高频增强滤波, 和直方图均衡。。巴特沃斯高通滤波将高频分量和低频分量分离,再通过高频增强滤波加强高 频成分,最后再综合灰度级直方图均衡混合方法达到高频部分的增强。我们采用二阶、DO等于垂肓方向值的5%的巴特沃斯型滤波器进行高通滤波。只要滤波器 的半径不太大,频率接近变换后的原点,高通滤波就不会对参数过度敏感在一幅图像中。而 图像高频分量对应于图像的细节信息,全局的直方图均衡使直方图在整个灰度级上的分布趋 于均匀,取得一定的增强效果,但忽略了细节的信息甚至出现细节信息的丢失,局部直方图 均衡则可以较好地解决这一问题,突岀细节信息。而用高频加强和直方图均衡混合的方法得 到的结果比单独采用其中任一种方法产牛的效果要好。三、 主要应用软件MATLAB7. 1编程软件,Windows编程环境四、 MATLAB程序设计步骤1、GUI界面的设计,如图1所示:图1 GUI界面Open Image Button控件:用来打开需要进行滤波操作的图像;GLPF Button控件:对所选择的图像进行高斯低通滤波;BHPF Button控件:对所选择的图像进行巴特沃斯高通滤波,图像高频增强第一步;Enhance Button控件:对巴特沃斯高通滤波后的图像进行图像高频增强;Histogram Button控件:进行图像直方图均衡;Figure axesimage:显示原始图像及增强后的处理结果; Return控件:关闭界面,返回。2、生成相应的Callback函数进行编辑:(1) BtnOpenlmage_Callback函数: 浏览文件夹,打并图像;定义结构image,包含读入的图像句柄,图像像素大小。(2) BtnGLPF_Callback函数:根据高斯低貓滤波传递函数公式,对图像矩阵进行运算,得到滤波后的结果。其滤波传 递函数可以表示为:H1 = exp(-(du.A2+dv.A2)/(2*(15A2))); %du, dv,为点到二维坐标轴的距离。(3) BtnBHPF_Callback函数:利用巴特沃斯高通滤波传递函数公式,对图像进行滤波。N阶且截止频率距原点的距离 为DO巴特沃斯型高通滤波器(BHPF)的传递函数为:= 1 + 严表示成M ATLAB算式为:DO = DO A 2;d = du.A2+dv.A2; image.H2 = 1./(1+(D0A2)./(d.A2));(4) BtnEnhance_Callback函如:对(3)中所得图像结果进行高频增强。高频增强就是在高通滤波器函数前简单地乘以一 个常数,再增加一个偏移以便使零频率不被滤波器除掉。传递函数可以表示为:H血(Lt,砂)=a + bH 叶(u tv)此处我们采用吐0.5, b=2,则传递函数H3 = image.H2 * 2 + 0.5;(5) BtnHistogram_Callback函数histeqjm = histeq(image.enh」mage); %对图像进行直方图均衡(6) btReturn_Callback函数close(gcf); %关闭界面(7) 自定义函数:function [du,dv] = dist(M,N):利用meshgrid函数,构造以鹵像长宽中点为中心的网状结构,计算点到傅立叶变换中 心的距离。(8) 傅立叶变换及其反变换:主要利用fft2函数和ifft2函数。F = fft2(image.a);image.result= uint8(real(ifft2(F.*image.H2,U,V))); 结果讨论1>选择图像,通过Open Image控件的回调函数打开文件夹,如图2所示:图2打开图像将图像显示在axes坐标控件指定范围内,作为原始图像显示:图3图像显示2、GLPF 高斯彳氐通滤波操作:利用高斯 1氐通滤矗,过滤掉高频部分,突岀图像的低频区域。低频影响着图像的整体感 觉效果,虽然GLPF不能达到有相同截止频率的二阶BLPF的平滑效果,它的剖面线没有二阶 BLPF的剖面线紧凑。但在总体上比较结果,GLPF没有振铃。这是实际中的一个重要特性,尤 其在人工图像不太能接受的情况下。高斯低通滤波后,图像结果如图4所示:??? UBHPFEnhanceHistogram图4高斯低通滤波结果此处所用的半径值为15。3、图像高频增强滤波:(1) BHPF巴特沃斯高通滤波:巴特沃斯滤波器比理想高通滤波器更平滑,其响应能够最大化滤波器的通带平坦度。并 且滤波后图像边缘失真较小,甚至对于最小的截止频率也是如此。通过高频滤波,将变化大的边缘部分凸显出来。图像过滤后的结果毫无特征,但能够显 示岀微弱的主要图像边缘。图5给出了滤波前的原始图像,这是一副窄灰度级的X射线胸透图。X射线不能用透镜 聚焦的方式聚焦,而且产生的图像通常容易有轻微的模糊,图像的灰度偏向灰度级较暗的一 端。GLPFEnhanceHistogram图5原始图像巴特沃斯高通滤波后的结果如图6所示,能够略显示岀边缘轮廓:EnhaneeHistogram图6巴特沃斯高通滤波(2) 高频增强滤波高频增强的结果如图7所示。虽然图像仍然很暗,但是灰度色调由于低频分量的保持没 有丢失。在图像边缘,由于灰度级的值会发生突变或是较大的变化,所以在频率域上具有高频特 性。对于这幅X射线的人体骨骼图,目的就是能够突出黑色背景下的人体骨骼轮廓,能够将 频域上具有较高频率的边缘部分突出出来。于是在巴特沃斯高通滤波的基础上,再次进行高 频加强滤波,使高频成分在滤波所得图像屮具有更明显的效果。从图上可以看岀,骨骼轮廓明显清晰。 BHPFEnhanceHistogram图7高频增强滤波(3)直方图均衡:以灰度为特征的图像在很窄的灰度范围内对于直方图均衡是理想选择,可以进一步对图像进行增强。经过直方图均衡的图像结果如图8所示:IsBHPFEnhanceHistogram图8综合滤波增强结果最后所得的增强图像仍然存在一些噪声,但是这也是在灰度范围扩大时射线图像的典型 现象。由上图可以看出,骨骼结构的清晰度有了明显的提高,而且显示出了前三幅图中未能 显现的细节。高频对应的是图像屮的细节部分,所以,在我们需要关注图像细节时(特别是 医学领域的图像分析),就需要对高频进行滤波增强。 附录程序主要代码:(1) BtnOpenlmage_Callback函数:global image; %定义成全局变量,便于控件冋调函数之间传递[filename, pathname] = uigetfile; %浏览文件夹image.a = imread(filename); % 将图像读入imshow(image.a); %显示图像定义的image是结构,其中包含读入的图像句柄,图像像素大小和需要缩放的像素大小。(2) BtnGLPF_Callback函数:global image;[U,V] = size(image.a); %读取图像的大小像素[du5dv] = dist(U,V); %获取点到水平和垂宜方向坐标的距离H1 = exp(-(du.A2+dv/2)/(2*(15A2))); %高斯低通滤波传递函数F = fft2(image.a); %对图像进行二阶傅立叶变换image.gljmage = uint8(real(ifft2(F.*H1))); %与传递函数相乘再进行傅立叶反变换 imshow(image.gl_image); %输出上式得到的图像滤波结果(3) BtnBHFP_Callback函数:global image; %全局变量[U,V] = size(image.a); %获取点到水平和垂直方向坐标的距离%计算巴特沃斯高通滤波传递函数,定义为全局便于后面的增强传递函数DO = 0.05*V;[du,dv] = dist(U,V);DO = DO A 2;d = du.A2+dv.A2;image.H2 = 1./(1+(D0A2)./(d.A2));F = fft2(image.a); %对图像进行二阶傅立叶变换%输入图像的傅立叶变化与传递函数乘积进行傅立叶反变换image.bh _image= uint8(real(ifft2(F.*image.H2,U,V)));imshow(image.bhjmage);(4) BtnEnhance_Callback函数:global image;H3 = image.H2 * 2 + 0.5; %根据(3)屮的传递函数得出高频增强滤波传递函数F = fft2(image.a);image.enh_image= uint8(real(ifft2(F.*H3,U,V)));imshow(image.e nh」mage);(5) BtnHistogram_Callback函数%对图像进行直方图均衡global image;histeq_im = histeq(image.e nhj mage); imshow(histeq」m);(6) BtnReturn_Callback函数close(gcf);%关闭界面(7) dist(M,N)函数%获取点到傅立叶变换中心的距离 function [du,dv] = dist(M,N)u=0:(M-1); v=0:(N-1); x=find(u>M/2); u(x)=u(x)-M;y =find(v>N/2); v(y)=v(y)-N;%水平方向像素范围%垂宜方向像素范围%找到所有大于傅立叶变换中心的水平像素子矩阵%进行图像像素的偏移%找到所有大于傅立叶变换中心的垂直像素子矩阵%进行图像像素的偏移 关 键 词: 实验 名称 低频 滤波 高频 增强

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

你可能感兴趣的:(增强低频和高频,matlab)