基于模糊逻辑的图像自适应去噪
数字图像处理技术是上世纪六七十年代发展起来的一门新兴学科。随着计算机技术的飞速发展,数字图像处理技术获得了飞速的发展,形成了许多分支,其中图像去噪就是图像处理中的一个重要分支。对于 图 像 去噪而言,传统的线性滤波方法存在着固有的缺陷,因此,最近几十年来,世界上又逐渐发展起来了一类非线性滤波器结构。这类滤波器在图像信号处理中具有独特的优势,目前它己成为图像去噪领域的研究热点。本文主要针对图像的噪声问题,对传统的非线性滤波器做了一些研究工作,提出了一种新的非线性滤波器算法。
为克服单一使用中值滤波方法去除脉冲噪声会造成图像细节信息丢失,使图像变模糊的缺陷,提出一种新的基于模糊逻辑的图像自适应去噪算法。新算法通过分析像素不同方向邻域像素灰度值分布情况来检测脉冲噪声点, 另外为更好地保持图像边缘等细节特征, 使用MMEM (Minimum-maximum exclusive mean) 算法对噪声像素点的灰度值进行估计。最后,新算法通过引入模糊逻辑规则,更加合理地进行噪声污染像素点的灰度值复原。仿真结果表明,与其他改进中值滤波算法相比新算法在去除脉冲噪声时能取得更好的效果。
此算法首先对加噪图像进行脉冲噪声点的检测,对其检测值引入模糊规则和隶属度函数,判断其是否为噪声点,属于噪声点的程度是多少,然后再根据隶属度函数对噪声点像素值进行恢复,在此之前还要进行脉冲噪声点灰度值的估计。此算法流程如下:
1、图像中噪声点的检测是利用图像的局域特性,脉冲噪声的最大特点是其灰度值与其邻域像素点的灰度值差别较大,而且由于脉冲噪声的上冲与下冲特性,其灰度值往往接近于图像中最大或最小的灰度值,正是基于脉冲噪声的这种特性,为了更加有效地从图像中检测出噪声点,提出了一种通过分析像素点不同方向邻域像素灰度值分布情况来检测脉冲噪声点的算法,算法描述如下:
设当前像素点的坐标为(x,y),灰度值为f(x,y),其邻域取大小为5×5的矩形窗口,分别与式(1)~(4)所示模板进行卷积运算。
f1=4f(x,y)-f(x-2,y)-f(x-1,y)-f(x+1,y)-f(x+2,y),(1)
f2=4f(x,y)-f(x,y-2)-f(x,y-1)–f(x,y+1)-f(x,y+2),(2)
f3=4f(x,y)-f(x-2,y-2)-f(x-1,y-1)-f(x+1,y+1)-f(x+2,y+2),(3)
f4=4f(x,y)-f(x-2,y+2)-f(x-1,y+1)-f(x+1,y-1)-f(x+2,y-2)·(4)
卷积运算结果为wi(x,y),i=1,2,3,4·定义wi(x,y)绝对值的最小值为像素点(x,y)的脉冲噪声检测值w(x,y),即:
w(x,y)=min{abs[wi(x,y)];
若像素点(x,y)为孤立的脉冲噪声点时,w(x,y)的值较大。若像素点(x,y)为非脉冲噪声点或图像边缘点时,w(x,y)的值较小。设置一阈值wT,若w(x,y)>wT,则可判定此点为脉冲噪声点。
2、模糊规则
设脉冲噪声检测值w(x,y)为一模糊事件,其隶属函数为μ[w(x,y)]∈[0,1],定义如下模糊规则:
(1)检测值较大时其为噪声点的可能性也较大;
(2)检测值较小时其为噪声点的可能性也较小;
3、隶属度函数
根据上面的模糊规则,选择S函数为隶属函数:
其中,变量w(x,y)为相应像素点在空域中的脉冲噪声检测值;a,b,c为S函数的参数,将决定S函数的形状,[a,c]为模糊区域,b通常取a,c的中点,若b取a,c的中点,则S函数称为标准S函数。
4、用MMEM算法对噪声图像像素点的灰度值进行估计
(1)在输入图像灰度值矩阵中任取一个中心在(x,y),大小为3×3的窗口,找出灰度最大Imax和最小值Imin,若I(x,y)=Imax或I(x,y)=Imin,则令I(x,y)=0,去除它们,即去除那些受噪声严重污染的像素点,如剩下的像素个数大于0,取其平均值AVG,如剩下的像素的个数等于零,执行步骤(2);
(2)取一个大小为5×5的窗口,找出灰度最大值Imax和最小值Imin,若I(x,y)=Imax或I (x,y)=Imin,则令I(x,y)=0,如剩下的像素个数大于0,取其平均值AVG,如剩下的像素的个数等于零则用相邻4个滤波器输出值的平均作为AVG。
(3)如果|AVG—I(x,y)|>30则output=AVG,否则:Output=I(x,y)。
5、像素点灰度值复原
若隶属度μ[w(x,y)]=0,则表明此像素点为非脉冲噪声点,滤波器输出应为原输入点灰度值。
若隶属度μ[w(x,y)]=1,则表明此像素点一定为脉冲噪声点,滤波器输
出应为用改进MMEM算法对噪声像素点的估计灰度值。
若隶属度0<μ[w(x,y)]<1,则表明此像素点可能为脉冲噪声点,μ[w(x,y)]值决定了其可能的程度,滤波器输出应以μ[w(x,y)]为权重,同时考虑原输入点灰输出公式:
O(x,y)=μ[w(x,y)]×E(x,y)+{1-μ[w(x,y)]}×I(x,y)
其中,O(x,y)为像素点(x,y)的复原灰度值,μ[w(x,y)]为像素点(x,y)脉冲噪声检测值在模糊域中的隶属度,E(x,y)为像素点(x,y)的估计灰度值,I(x,y)为像素点(x,y)的原输入灰度值。
新算法检测脉冲噪声点是通过分析像素不同方向邻域像素灰度值分布情况作为判定该点是否为脉冲噪声点的依据,而在滤除脉冲噪声时,采用的是先使用MMEM 算法对脉冲噪声像素点的灰度值进行估计,然后再通过引入模糊逻辑规则,更加合理地进行脉冲噪声污染像素点的灰度值复原,经过实验可以看到,与中值滤波算法及其他改进的中值滤波算法相比,本文算法在去除脉冲噪声时能获得较好的效果。
参考文献:
[1]刘卫国,Matlab程序设计教程。中国水利水电出版社。2005.
[2]章毓晋.数字图像处理[M].清华大学出版社,2006.
[3]吴晓莉,林哲辉. Matlab辅助模糊系统设计.西安电子科技大学出版社,2002.
[4]赖志国,Matlab图像处理与应用。国防工业出版社。2007.
[5]Arce G R,McLoughlin M P. Theoretical analysis of the MAX median filter[J]. I EEE Trans Acoust S peech Signal Processi ng , 1987 ,35 (1) :60 - 69.
因篇幅问题不能全部显示,请点此查看更多更全内容