机械与电子工程学院信号分析与处理课程设计报告题目:图像信号的中值滤波题号:1-14小组成员:赵鑫、陈超、尹庆宇班级:15电科1班字数:4040完成日期:2018年6月29日目录1引言 (1)1.1设计目的 (1)1.2章节组织 (1)2设计原理 (1)2.1中值滤波的基本原理 (1)2.2中值滤波的特点 (2)2.2.1对某些输入信号中值滤波的不变性 (2)2.2.2中值滤波去噪声性能 (2)2.2.3中值滤波的频谱特性 (2)3设计内容 (2)3.1中值滤波算法分析 (2)3.2中值滤波在图像处理中的MATLAB实现 (3)4设计结果分析 (5)4.1中值滤波与均值滤波的比较 (5)4.2中值滤波与均值滤波的进一步讨论 (6)4.2.1中值滤波输出方差 (6)4.2.2均值滤波输出方差 (8)4.3结果分析 (8)5总结 (8)6参考文献 (9)1引言1.1设计目的1.熟悉MA TLAB的使用方法包括函数、原理和方法的应用。
2.增强在通信系统设计方面的动手能力与自学能力。
3.进一步熟悉图像中值滤波的原理和方法。
4.比较中值滤波同其它滤波的实现效果1.2章节组织报告共分六章。
第一章为引言,主要介绍本课程的设计目的;第二章为设计原理,给出了图像的中值滤波的基本原理;第三章为设计内容,给出了中值滤波的算法实现;第四章为设计结果分析,比较中值滤波同其它滤波的实现效果;第五章为总结,对报告的要点进行了总结;第六章为参考文献,给出了报告的主要参考资料。
2设计原理2.1中值滤波的基本原理中值滤波是一种比较常见的非线性信号处理技术,它以排序理论为基础,能够有效地抑制噪声。
这种领域运算和卷积类似,它主要是排序领域中的像素,接下来再选择排序后的数据组中的中间值作为最终输出的像素值。
其基本原理为:首先针对以一个像素为中心点的具体领域进行研究,领域也被称为窗口,可以是方形,十字形,圆形或其他类似的形状,然后对领域中的每个像素值按照灰度值的大小进行排序,最后再将这组数的中值作为中心点像素灰度的真值进行输出。
序列中值的具体定义如下:若x1,x2,…,xn为一组序列,先把这组序列按大小排序为xi1≤xi2≤xi3…≤xin,则该序列的中值y为实现时一般取一长度为L=2n+1的滤波窗口,n为正整数。
将窗口在数据上滑动,中值滤波输出就是窗口正中所对的像素值用窗口内各像素的中值代替,即:}xxmed{x=y n+iin-iiΛΛ从上述定义中可以看出,由于叠加原理已不再成立,故中值滤波器是一种非线性滤波器,且中值滤波可以保持信号边缘,使其不被模糊,当窗口的宽度为2n+1时,信号序列中宽度不大于n的脉冲便会被中值滤波清除。
2.2中值滤波的特点2.2.1对某些输入信号中值滤波的不变性对某些特定的输入信号,如在窗口2n + 1 内单调增加或单调减少的序列,中值滤波输出信号仍保持输入信号不变,利用这个特点,可以使中值滤波既能去除图像中的噪声,又能保持图像中一些物体的边缘。
2.2.2中值滤波去噪声性能中值滤波是非线性运算,因此对于随机性质的噪声输入,数学分析是相当复杂的。
由大量实验可得,对于零均值正态分布的噪声输入,中值滤波输出与输入噪声的密度分布有关,输出噪声方差与输入噪声密度函数的平方成反比。
对随机噪声的抑制能力,中值滤波性能要比平均值滤波差些。
但对于脉冲干扰来讲,特别是脉冲宽度小于m/2,相距较远的窄脉冲,中值滤波是很有效的。
2.2.3中值滤波的频谱特性由于中值滤波是非线性运算,输入和输出之间在频率上不存在一一对应关系。
故不能用一般线性滤波器频率特性的研究方法。
为了能够直观地定性地看出中值滤波输入和输出频谱变化情况,我们采用总体试验观察方法。
设G 为输入信号频谱,F 为输出信号频谱,定义:H = |G/F|实验表明,H 是与G 有关的,呈不规则波动不大的曲线。
因此,中值滤波频谱特性H 起伏不大,其均值比较平坦,可以认为信号经中值滤波后,频谱基本不变,这点认识对从事设计和使用中植滤波器的工作是很有意义的。
3设计内容3.1中值滤波算法分析中值滤波算法的核心是排序,排序算法的优劣直接决定求中值的效率,从而决定中值滤波器的整体性能。
若中值滤波算法中排序模块使用软件思想中的冒泡排序算法,对滤波窗口中的相邻像素作二值比较排序,则n×n滤波窗口的算法复杂度为n2×(n2-1)/2,算法复杂度为O(n4),常用的3×3滤波窗口需要排序次数36次,一张分辨率为256×256的图片,需要处理65536个像素,每个像素经过3×3滤波窗口都要进行36次排序,总共需要的排序次数为2359296次。
针对冒泡排序算法排序数量大的缺点,文献[2]中在冒泡排序的基础上提出了一种改进的中值滤波算法,能大幅降低滤波窗口求中值的排序次数。
以滤波窗口为例,分析说明这种改进的中值滤波算法求取中值的过程。
对于3×3滤波窗口,假设滤波前的窗口数据为W,每列升序排序后的窗口为W',每行升序排序后的窗口为W''。
滤波前的窗口W,对每列按升序排序,第一列的最大值w'11=Max1=Max{w11,w21,w31},第一列的中值为w'21=Med1=Med{w11,w21,w31},第一列的最小值为w'31=Min1=Min{w11,w21,w31};依此类推第二列的最大值为w'12=Max2=Max{w12,w22,w32};第二列中值为w'22=Med2=Med{w12,w22,w32};第二列最小值为w'32=Min2=Min{w12,w22,w32};第三列的最大值为w'13=Max3=Max{w13,w23,w33};第三列中值为w'23=Med3=Med{w13,w23,w33};第三列最小值为w'33=Min3=Min{w13,w23,w33}。
同理,对W'的窗口元素每行按升序排序后得到W'',则最后的滤波结果result=Med{w''13,w''23,w''33}。
每列排序需要3次,每行排序需要3次,3行3列排序次数为3×3×2=18次,最后求窗口对角线元素中值也需要3次排序,所以总共需要的排序次数为21次,与采用冒泡排序的中值滤波算法相比,改进的中值滤波算法排序次数降低了42%。
3.2中值滤波在图像处理中的MATLAB实现源程序如下:I=imread('D:\myimages\chost.jpg');%从D 盘名为myimages 的文件夹中读取。
格式为jpg 的图像文件chostJ=imnoise(I,'salt & pepper',0.02);%给图像加入均值为0,方差为0.02 的淑盐噪声subplot(2,4,1);imshow(I);title('原始图像');subplot(2,4,2);imshow(J);title('加入椒盐噪声之后的图像');%h=ones(3,3)/9; %产生3 × 3 的全1 数组%B=conv2(J,h); %卷积运算%采用MATLAB 中的函数对噪声干扰的图像进行滤波Q=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波P=filter2(fspecial('average',3),J)/255; %均值滤波模板尺寸为3 K1=medfilt2(J,[3 3]); %进行3 × 3 模板的中值滤波K2= medfilt2(J,[5 5]); %进行5 × 5 模板的中值滤波K3= medfilt2(J,[7 7]); %进行7 × 7 模板的中值滤波K4= medfilt2(J,[9 9]); %进行9 × 9 模板的中值滤波%显示滤波后的图像及标题subplot(2,4,3);imshow(Q);title('3 × 3 模板维纳滤波后的图像');subplot(2,4,4);imshow(P);title('3 × 3 模板均值滤波后的图像');subplot(2,4,5);imshow(K1);title('3 × 3 模板的中值滤波的图像');subplot(2,4,6);imshow(K2);title('5 × 5 模板的中值滤波的图像');subplot(2,4, 7);imshow(K3);title('7 × 7 模板的中值滤波的图像');subplot(2,4,8);imshow(K4);title('9 × 9 模板的中值滤波的图像');得到图像结果如图1 所示图 1. 滤波效果对比图4设计结果分析4.1中值滤波与均值滤波的比较均值滤波可归结为矩形窗加权的有限冲激响应线性滤波器, 它的幅度特性的“主瓣”对应频率范围为(-2π, 2π)的区域(其中N 为矩形窗的窗口长度, 也即滤波窗口内的象素数目),第一个“旁瓣”比主峰低13 分贝.因此, 均值滤波相当于低通滤波器, 截止频率与N 成反比〔4〕.但不管N 怎么选取, 均值滤波的这种低通性能在平滑噪声的同时, 必定也会模糊信号的细节和边缘.中值滤波正是在这方面有着优越性能.中值滤波的定义在很多文献里都可找到〔1 , 2〕.这里不加证明给出中值滤波的主要性能.1)非线性滤波.由于叠加原理此时不再成立, 因此中值滤波是一种非线性滤波.2)保边缘性.设输入信号的某个区域可分为两个连续的小区域, 每个小区域的灰度值各为一常数.两个小区域的分界点称为边缘.即边缘是那么一些点的集合, 它的任何邻域包含这两个小区域的象素.中值滤波在边缘点上的输出不变.3)消除脉冲噪声.设在一常数邻域里有脉冲噪声, 脉冲噪声的面积定义为滤滤窗口内被噪声污染的象素的个数, 则当脉冲噪声的面积小于N/2 时, 中值滤波将消除这种脉冲型干扰,输出值为窗口内原图像邻域的常数值.4)当窗口内各象素值经过排序后成为一单调递增序列时, 中值滤波的输出值不会是这个序列的最小值和最大值.5)均值滤波平滑高斯白噪声的能力优于中值滤波6)根据次序统计量有关分布函数和分布密度的结论 , 设母体 X 的密度函数为fX(x),分布函数为 FX (x), 窗口内各象素的值从小到大排序为(X(1), X (2)… X(N))=Y 1 , Y 2 , …Y N), 则中值 Y 的密度函数为[][])()(1)()!21(!)(21212y f y F y F N N y f X N X N X Y ---⎥⎦⎤⎢⎣⎡-=(4) 4.2中值滤波与均值滤波的进一步讨论4.2.1中值滤波输出方差根据式(3), 对于上述的噪声模型, 样本母体 X 的概率密度函数为)(π222x exp 2)()1()(σσδ-+-=Pe x Pe x f X(5) 则由式(4), N 点中值输出Y 的概率密度函数为[])(y 1)()!21(!)(212y f F y F N N y f X N X X Y --⎥⎦⎤⎢⎣⎡-=)(((6) 其中 ⎰∞y-X )(=(y)F dx x f X输出方差 ⎰∞∞-=dy y f y Y )(2med 2σ(7) 4.2.2 均值滤波输出方差由于窗口内样本独立, 则噪声的 N 维概率密度函数为∏=⎥⎦⎤⎢⎣⎡-+-=⋅⋅⋅Ni i e i e N N x P x P x x x f 1222exp 2)()1(),2,1()(πσσδ(8)令⎪⎪⎪⎩⎪⎪⎪⎨⎧==+⋅⋅⋅+=NN N x y x y N x x x y 22211 即⎪⎪⎩⎪⎪⎨⎧==-⋅⋅⋅--=NN N y x y x y y Ny x 22211 则随机变量 Y 1 , Y 2 , …Y N 的联合分布密度变函数为 ),,,(),,,(2121N N N N x x x f J y y y f =其中 |J| 为雅可比行列式, N y y y x x x J N =∂∂=),,,(,,,(21N 21 ) 所以∏=⎥⎦⎤⎢⎣⎡-+-=⋅⋅⋅N i i e i e N N x P x P N y y y f 1222exp 2)()1(),2,1()(πσσδ =⎥⎥⎦⎤⎢⎢⎣⎡+--------221221e e 21σσδ)(π)()(N y y Ny e N P y y Ny P N [])(π)()(22i2i e i e 2y exp 21σσδ-+-∏=N P y P Y 1 的概率密度函数 ⎰⎰∞∞-∞∞-=),,,()(21211N N N Y y y y f dy dy y f 并由此可推导出∑=---+-=N k k y N kN e k e k N N e Y e k N P P C y P y f 12112222)1()()1()(σσδπ (9) ⎰∞∞-==NP dy y f y e Y )(1mean 22σ\ (10) 取б=1 , N =5 , 当输入噪声为前述的噪声模型时, 根据式(7),(8), (9), 利用数值积分, 得到输出方差与Pe 的关系曲线如图1.可以看出, 均值滤波输出方差随着 Pe 的增大而线性增长.当 Pe =1 即输入为高斯分布的白噪声时, 均值滤波输出方差为0 .2(即1/ N).中值滤波输出方差在 Pe 较小时增长很慢, 去噪声能力优于均值滤波.当 Pe >0 .5 以后, 方差增长速度加快.至Pe =0 .79 时, 两条曲线相交, 两者的去噪能力相当.当 Pe >0 .79 以后, 中值滤波输出方差大于均值滤波输出方差, 即均值滤波去噪能力优于中值滤波.4.3结果分析以LENNA 图像为例, 噪声 n 为均值为0 方差为672 的高斯分布的白噪声.当 Pe =0 .1 , 0 .2 , 0 .4 , 0 .6 , 0 .8 , 1 .0 时中值滤波与均值滤波的输出图像信噪比示于附表(斜线后的值为信噪比改善).部分输入和输出图像见图2.(a) LEN NA 原图像 (b) 噪声图像Pe =0.2 (c) 噪声图像Pe =0.8 (c) 噪声图像Pe =1.0 (e) (b)的中值滤波输出(f) (b)的均值滤波输出 (g) (c)的中值滤波输出 (h)(c)均值滤波输出 (i)(d)中值滤波输出 (j) (d)的均值滤波输出图 2 部分实验图像从表中可以看出, 当 Pe 值较小时, 中值滤波输出信噪比明显高于均值滤波输出;当 Pe 逐渐增大时, 噪声图像信噪比下降, 两者输出图像信噪比的改善值也逐渐增大, 但均值滤波输出信噪比的改善值增长幅度大.当 Pe =0 .8 时, 均值滤波输出信噪比略大于中值滤波输出信噪比, 平滑噪声的能力接近.而当 Pe =1 即噪声污染是高斯分布的白噪声时, 均值滤波输出信噪比明显高于中值滤波输出信噪比.实验结果与前面的理论分析结果是吻合的 5总结本文在对经典中值滤波原理研究的基础上,利用MATLAB 软件进行仿真实践,并将中值滤波与均值滤波进行实验对比,更确切的了解到了中值滤波在图像降噪应用上的优缺点。