1、matlab图像处理word版中北大学课 程 设 计 说 明 书学生姓名: 关健 学 号: 1105064143 学生姓名: 李丹青 学 号: 1105064106 学生姓名: 钟宏强 学 号: 1105064122 学生姓名: 王岩岩 学 号: 1105064123 学 院: 信息与通信工程学院 专 业: 电子信息工程 题 目: 图像滤波算法研究 指导教师: 杨风暴 陈平 职称: 2015 年 1 月 5 日 中北大学课程设计任务书 14/15 学年第 一 学期学 院: 信息与通信工程学院 专 业: 电子信息工程 学 生 姓 名: 李丹青 学 号: 1105064106 课程设计题目: 图像
2、滤波算法比较研究 起 迄 日 期: 2015年 1月5 日2015年1月 16 日 课程设计地点: 指 导 教 师: 杨风暴 陈平 系 主 任: 下达任务书日期: 2015 年1 月 5 日课 程 设 计 任 务 书1设计目的:综合运用图像处理的知识,通过理论推导得出相应结论,利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等): 针对现有的常见的图像滤波算法(中值滤波、均值滤波、高斯滤波、K近邻均值滤波、高通空域滤波、低通空域滤波等),利用Matlab进行仿真实验,运用所学图像处理知识,实现对图像滤波算法
3、优缺点的比较和分析。3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:(1)查阅文献资料,了解相关知识;(2)确定设计方法;(3)编写MATLAB程序,并上机调试;(4)撰写课程设计说明书。课 程 设 计 任 务 书4主要参考文献:1 宁媛,李皖;图像去噪的几种方法分析比较J;贵州工业大学学报(自然科学版);2005年04期2 邢藏菊,曲延锋,徐健,王守觉;一种用于抑制椒盐噪声的多窗口中值滤波器J;电子与信息学报;2002年12期3 宁媛,李皖;图像去噪的几种方法分析比较J;贵州工业大学学报(自然科学版);2005年04期4 周大鹏;王礼平;基于邻域统计的图像消噪方
4、法J;现代电子技术;2006年02期5 周杰;应用于图像处理的中值滤波改进算法D;北京邮电大学;2007年5设计成果形式及要求:提供课程设计说明书一份;MATLAB程序;6工作计划及进度:2015年1月5日 1 月 7 日:查阅资料;1月7日 1 月 10 日:确定设计方案;1月 10 日 1月12日:编写程序,上机调试;1月 12 日 1 月15 日:完成课程设计说明书;1月 16 日:答辩。系主任审查意见: 签字: 年 月 日第一章 引言1第二章 设计方案及图像处理结果2 2.1均值滤波2 2.2中值滤波5 2.2.1 中值滤波器5 2.2.2 自适应中值滤波器7 2.3 高斯滤波12 2
5、.4 锐化滤波13 2.4.1 线性锐化滤波14 2.4.2 非线性锐化滤波15 2.5 均值滤波、中值滤波以及高斯滤波的对比分析22 第三章 心得及体会25参考文献25第一章 引言图像滤波的目的在于抑制噪声改善图像质量,它是正确识别图像信息的必要保证,也是对图像作进一步处理的可靠保证。如果对一幅含有噪声的图像进行特征提取,配准或者图像融合等处理其结果肯定不能令人满意,所以图像去噪声是必须的。图像去噪具体采用的方法从不同处理域的角度可以划分为空域和频域两种处理方法,空间域的线性滤波算法理论发展较为成熟,数字分析简单,对滤除与信号不相关的随机噪声效果显著,到那时它本身存在着明显的缺陷,如需要随机
6、噪声的先验统计知识,对图像边缘细节保护能力较差等,特别是后者,使得线性滤波无法很好的适应于图像的噪声滤除处理。与线性滤波相对应的非线性滤波的功能更为强大,可以广泛的应用到医学遥感等领域的图像处理。本文将详细探讨各种图像滤波算法的比较研究。第二章 设计方案及图像处理结果主要基于matlab对图像进行各类滤波仿真,对比分析滤波前后图像的清晰度从而判断滤波效果。滤波器分两类,空域和频域。本次课程设计主要是对基于空域的滤波器进行比较处理。空域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某
7、个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。空域滤波一般分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。结合这两种分类方法,可将空间滤波增强分为四类:1.线性平滑滤波器(低通)2.非线性平滑滤波器(低通)3.线性锐化滤波器(高通)4.非
8、线性锐化滤波器(高通)空间滤波器都是基于模板卷积,其主要工作步骤是:(1)将模板在图中移动,并将模板中心与图中某个像素位置重合;(2)将模板上的系数与模板下对应的像素相乘;(3)将所有乘积相加;(4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。2.1均值滤波线性低通平滑滤波器也称为均值滤波器,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择 一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y), 即个g(x,y)=1/m f
9、(x,y) m为该模板中包含当前像素在内的像素总个数。matlab提供了fspecial函数生成滤波时所用的模板,并提供filter2函数用指定的滤波器模板对图像进行运算。函数fspecial的语法格式为:h=fspecial(type)h=fspecial(type,parameters)其中参数type指定的滤波器的种类,parameters是与滤波器种类有关的具体参数。这两个参数的种类及含义见表2-1。matlab提供了一个函数imnoise来给图像增添噪声,其语法格式为:J=imnoise(I,type)J=imnoise(I,type,parameters)参数type指定噪声的种类
10、,parameters是与噪声种类有关的具体参数。参数的种类见表2-2。表2-1typeparameters说明averagehsize均值滤波,如果领域为方阵,则hsize为标量,否则由两元素向量hsize指定领域的行数和列数。diskradius有(raidus*2+1)个边的圆形均值滤波器gaussianHsize,sigma标准差为sigma,大小为hsize的高斯低通滤波器laplacianalpha系数由(0.01.0)决定的二维拉普拉斯滤波loghsize,sigma标准偏差为sigma,大小为hsize的高斯滤波旋转对称拉氏算子motionLen,theta按角度theta移动
11、len个像素的运动滤波器prewitt无近似计算垂直梯度的水平边缘强调算子sobel无近似计算垂直梯度光滑效应的水平边缘强调算子unsharpalpha根据alpha决定的拉氏算子创建的掩膜滤波器表2-2typeparameters说明gaussianm,v均值为m,方差为v的高斯噪声localvarv均值为0,方差为v的高斯白噪声passion无泊松噪声salt&pepper无椒盐噪声specklev均值为0,方差为v的均匀分布随机噪声图像噪声,是图像在摄取时或是传输时所受到的随机干扰信号。本次课程设计我们主要给图像加入高斯噪声和椒盐噪声。高斯噪声的特征:出现位置是一定的(每一点上),但噪声
12、的幅值是随机的。椒盐噪声的特征:出现位置是随机的,但是噪声的幅值是基本相同的。均值滤波器的特点是,会使图像变的模糊,原因是它对所有的点都是同等对待,在等噪声点分摊的同时,将图像的边界点也分摊了。下面我们用均值滤波对加入噪声的图像进行滤波分析。程序代码如下:clear all;close all;I=imread(girl.jpg);I=rgb2gray(I);%加入高斯噪声J1=imnoise(I,gaussian,0,0.005);%加入椒盐噪声J2=imnoise(I,salt & pepper,0.02);%进行均值滤波h=fspecial(average,3);K1=uint8(rou
13、nd(filter2(h,J1);K2=uint8(round(filter2(h,J2);figure(NumberTitle,off,Name,原始图像);subplot(1,1,1),imshow(I),title(原始图像)figure(NumberTitle,off,Name,加噪和去噪图像对比);subplot(2,2,1),imshow(J1),title(加入高斯噪声的图像)subplot(2,2,2),imshow(J2),title(加入椒盐噪声图像)subplot(2,2,3),imshow(K1),title(对加入高斯噪声图像进行均值滤波)subplot(2,2,4)
14、,imshow(K2),title(对加入椒盐噪声图像进行均值滤波)经过处理后各个图像如图2.1.1,图2.1.2:图2.1.1 原始图像图2.1.2 均值滤波处理后图像对比分析图2.1.2均值滤波对两种噪声的处理结果可以看出,均值滤波对高斯噪声的处理效果比对椒盐噪声的处理效果要好。平滑滤波器的基本概念非常直观。它使用滤波器模板确定的邻域内像素的平均灰度值代替图像中每个像素的值,这种处理的结果降低了图像灰度的尖锐变化。由于典型的随即噪声由灰度级的急剧变化组成,因此,常见的平滑处理应用就是降低噪声。然而,由于图像边缘(几乎总是一幅图像希望有的特性)也是由图像灰度尖锐变化带来的特征。2.2中值滤波
15、2.2.1 中值滤波器中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波器方法类似,但计算的不是加权求和,而是把领域中的图像的象素按灰度级进行排序,然后选择该组的中间值作为输出象素值。matlab提供了medfilt2函数来实现中值滤波,其语法格式为:B=medfilt2(A,m,n)B=medfilt2(A)其中,A是原始图像,B是中值滤波后输出图像m,n指定滤波模板的大小,默认模板是3*3。下面我们用中值滤波对加噪后的图像进行处理,并与均值滤波处理的图像进行对比分析,中值滤波的程序代码如下:clear all;close all;I=imread(girl.jpg);I=rgb2
16、gray(I);%加入高斯噪声J1=imnoise(I,gaussian,0,0.005);%加入椒盐噪声J2=imnoise(I,salt & pepper,0.02);%进行中值滤波L1=medfilt2(J1,3,3);L2=medfilt2(J1,5,5);L3=medfilt2(J2,3,3);L4=medfilt2(J2,5,5);figure(NumberTitle,off,Name,加噪及去噪图像);subplot(3,2,1),imshow(J1),title(加入高斯噪声的图像)subplot(3,2,2),imshow(J2),title(加入椒盐噪声图像)subplot
17、(3,2,3),imshow(L1),title(高斯噪声图像3*3中值滤波后图像)subplot(3,2,4),imshow(L2),title(高斯噪声图像5*5中值滤波后图像)subplot(3,2,5),imshow(L1),title(椒盐噪声图像3*3中值滤波后图像)subplot(3,2,6),imshow(L2),title(椒盐噪声图像5*5中值滤波后图像)滤波后图像如图2.2.1:图2.2.1 中值滤波后图像从图2.2.1中可以看出,中值滤波对椒盐噪声的抑制效果比对高斯噪声的抑制效果好,且模板值越小,效果越明显。2.2.2 自适应中值滤波自适应中值滤波器是中值滤波器的改进算
18、法,自适应中值滤波器的原理:图像在形成、传输的过程中,常因外界噪声干扰而导致其质量退化,为减小噪声的影响,可采取各种滤波方法对图像进行去噪处理,其中,中值滤波时当前应用最广的滤波方法之一,然而,中值滤波的去噪效果依赖于滤波窗口的大小及参与中值计算的像素点数目。自适应中值滤波算法是对中值滤波的一种改进,相对于中值滤波而言,它能够处理空间密度更大的冲激噪声,并且平滑非冲激噪声时,还可保存更多的图像细节,基本原理如下:设表示中心像素点(x,y)在滤波时所对应的掩模窗口,令为中灰度最小值,为中的灰度最大值,为的灰度中值,为在坐标(x,y)上的灰度,为允许的最大尺寸,自适应中值滤波器算法工作在两个层次,
19、可定义为A层和B层。A层:0,且0,则转到B层,否则,增大窗口尺寸,如果窗口尺寸小于,则重复A层,否则,输出。B层:,如果0,且0,则输出,否则,输出,A层用来判断是否为一脉冲,B层用来判断是否为一脉冲,如果和都不是脉冲,则算法就利用输出一个不变的像素值来代替领域中值作为输出,以避免不必要的细节损失,为了改进标准中值滤波算法处理空间密度较大的冲激噪声能力不足的问题,自适应中值滤波算法采用了通过扩大窗口来相对地减少冲激噪声空间密度的这一策略。下面以自适应中值滤波算法为例,添加新的库函数-adpmedian,介绍如何对图像处理工具箱进行扩展,以实现数字图像自适应中值滤波。1.打开matlab的M文
20、件编辑器,编写如下内容:程序主体如下:function f=adpmedian(g,Smax)if (Smax1)endM,N=size(g);f=g;f(:)=0;alreadyProcessed=false(size(g);for k=3:2:Smax zmin=ordfilt2(g,1,ones(k,k),symmetric); zmax=ordfilt2(g,k*k,ones(k,k),symmetric); zmed=medfilt2(g,k,k,symmetric); processUsingLevelB=(zmedzmin)&(zmaxzmed)&alreadyProcessed
21、; zB=(gzmin)&(zmaxg); outputZxy=processUsingLevelB&zB; outputZmed=processUsingLevelB&zB; f(outputZxy)=g(outputZxy); f(outputZmed)=zmed(outputZmed); alreadyProcessed=alreadyProcessed|processUsingLevelB; if all(alreadyProcessed(:) break; endend这个函数中调用了ordfilt2和medfilt2这两个函数,这样方便了编程,简化了变成过程,其中ordfilt2(
22、x,n,s)和medfilt2(x,m,n)都是matlab图像工具箱中的函数,前者作用是对图像矩阵x的每一元素做如下处理:按由小到大的顺序取领域S张的底n个元素进行替换,后者是用指定大小为m*n的窗口对图像c进行中值滤波。2.选择File|Save命令,将所有文件保存在磁盘中,并命名为adpmedian.m,将他保存在默认目录下,并注意文件命名和函数名尽量保持一致,以便后面调用。3.调用时,只需直接调用工具箱自带的函数和编写的扩展函数,下面距离对加噪图像进行自适应中值滤波:clear all;close all;I=imread(girl.jpg);I=rgb2gray(I);%加入椒盐噪声
23、J1=imnoise(I,salt & pepper,0.25);M1=adpmedian(J1,7);M2=medfilt2(J1,7,7);subplot(2,2,1),imshow(I),title(原始图像);subplot(2,2,2),imshow(J1),title(加入椒盐噪声的图像);subplot(2,2,3),imshow(M1),title(对图像进行自适应中值滤波);subplot(2,2,4),imshow(M2),title(对图像进行中值滤波);结果如图2.2.1.图2.2.1 中值滤波与自适应中值滤波图2.2.2 程序执行时间 原图像被椒盐噪声污染,该噪声的概
24、率为0.25,在这里噪声的水平非常高,能够模糊图像的大部分细节,作为比较的基础,可以看出中值滤波可以消除大部分课件的脉冲噪声痕迹,虽然噪声被有效消除了,但是滤波器在图像上也引起了明显的细节损失,通过自适应中值滤波的噪声消除水平同中值滤波器相似,但是,自适应滤波器保持了点的尖锐性和其细节,可以看出,其改进是很明显的。 从图2.2.2程序运行时间来看,自适应中值滤波器要花费中值滤波器3倍的时间,对于不是很大的图像这还是可以接受的,随着计算机速度的日益提高,这个问题也会迎刃而解。因为这种噪声是以黑白点的形式叠加在图像上的,且模板值越小,效果越明显。中值滤波的使用非常普遍,这是因为对于一定类型的随机噪
25、声,它提供了一种优秀的去噪能力,而且比相同尺寸的线性平滑滤波器的模糊程度明显要低。2.3 高斯滤波高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。下面我们用高斯滤波对加噪图像进行处理,程序代码如下:clear all;close all;I=imread(girl.jpg);I=rgb2gray(I);%加入高
26、斯噪声J1=imnoise(I,gaussian,0,0.005);%加入椒盐噪声J2=imnoise(I,salt & pepper,0.02);%进行高斯滤波sigma=0.8;%滤波器标准差gausFilter=fspecial(gaussian,5,5,sigma);G1=imfilter(J1,gausFilter,replicate);G2=imfilter(J2,gausFilter,replicate);figure(NumberTitle,off,Name,加噪和去噪图像对比);subplot(2,2,1),imshow(J1),title(加入高斯噪声的图像)subplot
27、(2,2,2),imshow(J2),title(加入椒盐噪声图像)subplot(2,2,3),imshow(G1),title(对加入高斯噪声图像进行高斯滤波)subplot(2,2,4),imshow(G2),title(对加入椒盐噪声图像进行高斯滤波)结果如下图2.3.1:图2.3.1 高斯滤波后图像从图中可以看出,加入高斯噪声的图像经过高斯滤波后图像有明显的改善,但对于椒盐噪声来说,尽管经过了滤波,但还是存在明显的噪声点。2.4 锐化滤波锐化滤波是一种空域高通滤波器,数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的变的清晰起来,这种模糊不是由于错误操作,就是特殊图像获
28、取方法的固有影响。而是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。通过图像的锐化,使得图像的质量有所改变,产生更适合人观察和识别的图像。如果输出像素是输入像素领域像素的线性组合则称为线性滤波,否则称为非线性滤波。2.4.1 线性锐化滤波器线性高通滤波器是最常用的线性锐化滤波器。这种滤波器必须满足滤波器的中心系数为正数,其他系数为负数。线性锐化滤波的程序代码如下:clear all;close all;I=imread(girl.jpg);I=rgb2gray(I);%线性锐化滤波w8=-1,-1,-1,-1,8,-1,-1,-1,-1;h=double(I);J=conv2(h,w8,same);subplot(1,2,1),imshow(I),title(原始图像);subplot(1,2,2),imshow(J),title(滤波后图像);滤波后图像如图2.4.1.1图2.4.1.1 线性锐化滤波后图像2.4.2 非线性锐化滤波非线性锐化滤波就是使用微分对图像进行处理,以此来锐化由于领域平均导致的模糊图像。无方向一阶微分算子有:1.Roberts算子图像处理中最常用的微分是利用图像沿某个方向的灰度变化率,即原图像函数的梯度。Roberts算子的特点是算法简单。2.Prewitt锐化算子 Prewitt锐化算子计算公式: 其模板: , 用
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1