APP下载

基于脉冲噪声点检测的中值滤波改进算法

2012-07-24聂真真

关键词:中值像素点灰度

聂真真

(长江水利委员会汉江水文资源勘测局,湖北丹江口442700)

图像在形成、传输、接收和处理过程中,存在一些噪声干扰使图像质量下降,为减少噪声的影响,可采取各种滤波方法对图像进行去噪处理。从本质上来说,经典的图像去噪方法是低通滤波的方法,其中中值滤波法得到了广泛的应用。由于该方法对去除脉冲噪声具有较好的性能,因此最早被用于去除脉冲噪声[1]。然而,在标准中值滤波中,噪声的去除是以图像分辨率的降低为代价的,因而得到的图像都比较模糊。近年来,出现了多种基于中值滤波的改进型算法,如自适应中值滤波[2-4]、加权中值滤波算法等[5],这些算法在改善中值滤波器的性能方面做了有益的探索,但都有其局限性,主要表现在对所有像素进行统一处理,在滤除噪声的同时也改变了非噪声点像素的灰度值,从而造成图像模糊。显然,理想的滤波算法应该区别对待噪声点和信号点,只对噪声污染像素进行中值代替,而保持信号像素的灰度值不变。

基于此,笔者提出一种带有噪声检测步骤的中值滤波改进算法,通过设定阈值标记出可能的噪声点,再根据相邻像素的相关信息对可能的噪声点进一步判断,精确确定噪声点。最后只对噪声点进行中值滤波,而对信号点不进行处理。这样就可以减少图像模糊,提高图像质量。实验结果表明,该算法能较好地去除噪声,同时可保留图像的细节,是一种有效的图像噪声滤波算法。

1 传统中值滤波算法

传统中值滤波算法的具体步骤[6]如下:

(1)将模板在图像中漫游,并将模板中心与图像中心某个像素的位置重合;

(2)读取模板下各对应像素的灰度值;

(3)将这些灰度值从小到大排成一列;

(4)找出排在中间的一个值;

(5)将这个中间值赋给对应模板中心位置的像素。

中值滤波的输出像素是由模板上的各像素点的中间值决定的[7],因而中值滤波对图像有较好的平滑作用,可以有效消除一些孤立的脉冲点。对图像逐点进行一次性的中值替代,在噪声密度较低时,该算法的效果很好,但是随着噪声密度逐渐增大,图像将越来越模糊。因此,可通过逻辑判断的方法对噪声点进行标识,仅对被标识的噪声点进行修复。

2 中值滤波改进算法

2.1 初步脉冲噪声点检测

脉冲噪声点的检测在整个中值滤波算法中是十分重要的一环,它关系到图像中像素的正确分类,将脉冲噪声从图像中准确无误地检测出来才有利于中值滤波后图像的质量。

脉冲噪声是由于某些原因在图像中产生的一些灰度值很小(接近黑色)或灰度值很大(接近白色)的污染点,也就是集中在极值0或极值255附近的点[8],值一般远远大于或远远小于邻近像素的灰度值,因此,可以将图像像素点分为可疑噪声点和信号点。设脉冲噪声的灰度范围为[0,∂]和[255-∂,255],若图像某一像素点灰度值在这两个范围内,则该像素为可疑噪声点,反之为信号点。但并不是所有的可疑噪声点都是脉冲噪声点,可疑噪声点可能是噪声点也可能是图像窄的边缘、细线和部分平坦灰度区域,因此这只是初步判定,仅靠简单地根据脉冲噪声点的一些特性来判断还无法显示像素的真正性质。

2.2 噪声标识矩阵

为了标识脉冲噪声点的位置,建立与含噪图像维数大小相同的布尔矩阵,称之为噪声标识矩阵,表示为C,矩阵中每个元素都与待处理的含噪图像中每个像素相对应,用C(i,j)表示,即:

其中,M和N分别为以像素点数表示的图像长度及宽度,C(i,j)为0表示该元素所对应的图像像素为脉冲噪声,为1表示原图像像素。C初始化为全1矩阵,在进行噪声检测的过程中,根据初步脉冲噪声检测的结果将矩阵中的元素赋值为0或保持原值1。这里先将可疑噪声点的位置标识为0,信号点仍保持原值。

2.3 邻域信息检测噪声点

图像相邻像素点之间存在很大的相关性,某一点灰度值与其周围点灰度值很接近。为了区分脉冲噪声点和图像窄的边缘、细线和部分平坦灰度区域,可利用邻域信息来检测脉冲噪声点,方法是将5×5窗口中的25个像素点划分成8组不同方向的窗口来进行检测,它们分别是沿水平、垂直和与水平方向成 22.5°,45.0°,67.5°,112.5°,135.0°及 157.5°的一维窗口,每个窗口都是将可疑噪声点的灰度值乘以窗口内其他像素点的个数,再将其与窗口内其他像素点的灰度值做差分,这样得到了8组分别代表8个窗口的差分灰度值,然后进一步对差分灰度值进行分析,来准确无误、没有遗漏地定位脉冲噪声点。

以可疑的噪声点xi,j为中心的5×5窗口的24邻域像素点标记如图1所示。

图1 5×5窗口像素点标记图

令 β 为 λ1、λ2、λ3、λ4、λ5、λ6、λ7、λ8绝对值的最小值,接着根据β的值来分析判断像素点xi,j是否为脉冲噪声点。如果当前中心像素点为平坦区域像素点,则8个窗口像素点灰度值绝大部分与它很接近,β值很小;如果当前中心像素点为图像边缘点,则8个窗口中至少有一个窗口像素点灰度值绝大部分与它很接近,β值也很小;如果当前中心像素点为噪声点,那么它周围的绝大多数像素灰度值与它差距很大,因此8个窗口的β值都很大,β值也会很大。可以设定一个阈值T,若β>T,该中心像素点为噪声点,若β<T,该中心像素点为信号点。阈值T的选择是在实验中经过比较而确定的最恰当的值。当确定某点是噪声点后,噪声标志矩阵C相对应该元素的点则会置为0,其他像素点均置为1,即:

Ci,j取1或0代表原图像当前像素点是否为脉冲噪声点。

2.4 脉冲噪声的滤除

基于噪声特点和邻域信息的噪声检测中值滤波方法,首先根据脉冲噪声的特点,将图像像素点粗略地划分为可疑噪声点和信号点,对于可疑噪声点,进一步进行判别,根据邻域信息将可疑噪声点划分为噪声点和信号点,对噪声点采用中值滤波法进行滤波,对信号点不进行处理。噪声点进行中值滤波后,就在其相应的噪声标识矩阵中将其值由0变成1,一直进行到噪声标识矩阵全为1,表示全部噪声点都已滤除,滤波完成。与传统的中值滤波相比,该方法对图像的像素点进行两级判别,避免错判和漏判,并且仅对噪声点进行处理,因此具有较好的去噪和保留细节的能力。该中值滤波方法在保护图像细节与去除脉冲噪声之间可以找到一个良好的平衡点。

3 实验结果及分析

为了验证滤波算法的效果,对512×512的Lena图像添加不同密度的脉冲噪声,分别通过3×3、5×5、7×7的中值滤波和笔者的算法进行滤波比较,笔者的算法采用5×5的滤波窗口,在经过反复的实验比较后,当两个阈值∂取10,T选择15时,滤波效果最好。仿真软件采用VC++6.0[9-10]开发。

为了定量地衡量算法结果的好坏,以输出图像的峰值信噪比(peak signal to noise ratio,PSNR)为标准来评价滤波算法的性能,PSNR的定义为:

式中:x(i,j),x'(i,j)分别为含噪图像、去噪后的输出图像的中点(i,j)的灰度值;M和N分别为以像素点数表示的图像的长度及宽度;L为数字图像的灰度级数。PSNR越大,去噪图像的质量越好。

图2 不同算法用Lena含脉冲噪声图像的去噪效果图

图2 为不同算法用于Lena图像含脉冲噪声30%的去噪效果图,从图2中可以看出,无论3×3、5×5还是7×7的中值滤波,都存在图像视觉模糊、边缘细节丢失、噪声点仍然存在且有不少的情况。而笔者所采用的基于邻域信息的噪声点检测的中值滤波算法对图像滤波的效果明显增强,边缘变得清晰,较好地保留了细节,图像上也没有明显的噪声点。

表1为各种算法用于含不同强度脉冲噪声的Lena图像去噪的实验结果,由表1可看出,当输入图像的信噪比较高时,3×3的滤波窗口效果较好,滤波后的图像信噪比较高。随着输入图像信噪比的降低,滤波窗口为5×5的滤波器滤波效果超过了滤波窗口为3×3的滤波器,滤波后图像信噪比较高,这是因为对中值滤波而言,滤波窗口越大,去噪效果越好,而对图像造成的模糊也越强。而笔者采用的算法由于只处理噪声点,保持信号点不变,且选择5×5的滤波窗口适中,因此无论输入图像的信噪比是高还是低,处理后的信噪比都是最高的,图像最清晰,噪声点误判、漏检极少,表现出了极佳的滤波性能。

表1 各种算法用于含不同强度脉冲噪声的Lena图像去噪的实验结果(PSNR)

4 结论

在分析了中值滤波算法及噪声特点的基础上,给出了一种基于邻域信息的脉冲噪声点检测的中值滤波算法,通过对不同强度噪声污染图像的实验结果表明:笔者提出的算法在噪声去除和边缘保持上都优于传统的不同窗口大小的中值滤波算法,客观实验数据也验证了该算法的优越性,因此是一种有效的脉冲噪声图像滤波算法。

[1]贾永红.数字图像处理[M].武汉:武汉大学出版社,2003:77-79.

[2]KO S J,LEE Y H.Center weighted median filters and their applications to image enhancement[J].IEEE Transactions on Circuits and Systems,1991,38(9):984-993.

[3]JEONG B,LEE Y H.Design of weighted order statistic filter using the perception algorithm[J].IEEE Transactions on Signal Processing,1994,42(11):3264-3269.

[4]林其伟.基于剩余噪声检测的自适应中值滤波算法[J].武汉理工大学学报:信息与管理工程版,2008,30(5):704-707.

[5]张宇,王希勤,彭应宁.自适应中心加权的改进均值滤波算法[J].清华大学学报:自然科学版,1999,39(9):76-78.

[6]章毓晋.图像处理和分析基础[M].北京:高等教育出版社,2002:1-60.

[7]闫敬文.数字图像处理(MATLAB版)[M].北京:国防工业出版社,2007:54-112.

[8]何东健.数字图像处理[M].西安:西安电子科技大学出版社,2003:21-78.

[9]何斌,马天予,王运坚,等.Visual C++数字图像处理[M].北京:人民邮电出版社,2002:1-300.

[10]求是科技.Visual C++数字图像处理典型算法及实现[M].北京:人民邮电出版社,2006:1-125.

猜你喜欢

中值像素点灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于局部相似性的特征匹配筛选算法
基于5×5邻域像素点相关性的划痕修复算法
Lagrange中值定理的巧妙应用
基于canvas的前端数据加密
高等数学中拉格朗日中值定理的教学处理
基于最大加权投影求解的彩色图像灰度化对比度保留算法
微分中值定理教法研讨
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割