APP下载

一种改进的自适应加权中值滤波算法研究

2018-12-20屈正庚牛少清

计算机技术与发展 2018年12期
关键词:中心点像素点灰度

屈正庚,牛少清

(1.商洛学院 数学与计算机应用学院,陕西 商洛 726000;2.西安交大捷普网络科技有限公司,陕西 西安 710075)

0 引 言

目前在很多领域里,获取信息的一个主要手段是数字图像技术,但是数字图像在采集、传输、变换、处理过程中不可避免地会引入不同程度的噪声,降低图像的质量。因此,噪声去除是图像处理的一个关键环节。目前较为常见的数字图像去噪技术有线性滤波和非线性滤波,线性滤波技术在一定程度上造成图像边缘模糊,导致信息丢失;非线性滤波技术可以克服线性滤波的缺点,在实际中应用广泛,而中值滤波就是其中之一[1]。

中值滤波对长尾概率分布噪声有比较好的平滑性能且能很好地保留图像细节,但是滤波性能与窗口大小有很大关系,而且该算法在噪声抑制和细节保留之间存在矛盾。

为了解决该问题,文中提出了一种新的自适应加权中值滤波算法(WAMF),继承了中值滤波的优点,解决了中值滤波的缺点,从而更好地提高噪声处理能力和图像细节保持能力[2]。

1 常见数字图像噪声模型

数字图像在采集和传输过程中受到环境条件的影响产生了噪声,典型的噪声有如下几种:

(1)均匀分布噪声:等概率对图像中每个像素点产生噪声,其概率密度如式1所示,方差和期望值如式2所示:

(1)

(2)

(2)高斯噪声:又叫正态噪声,概率密度的描述如下:

(3)

其中,z表示图像灰度值;μ表示z的期望值;σ表示z的标准差。

高斯噪声处理起来简单容易,应用广泛。

(3)椒盐噪声:又称脉冲噪声,是一种最典型的噪声,对图像质量具有极大的影响。一般持续时间小于0.5 s,间隔时间大于1 s,概率密度描述如下:

(4)

如果b>a,则b将以点概率成为图像中一个亮点,a成为一个暗点。

(4)伽马噪声:被称为爱尔兰噪声,其概率密度函数如下:

(5)

其中,a>0,b为正整数。如果b=1时,就成了指数分布概率密度函数,即指数分布噪声是伽马噪声的一个特例。

2 常见中值滤波去噪算法

2.1 标准中值滤波算法(standard median filter,SMF)

基本思想:选择当前图像窗口中心点像素作为噪声滤波的对象,图像窗口大小根据实际情况随机调整,一般采取3×3正方形窗口。像素点按照灰度值进行排序,选取平均值作为当前像素点的灰度值[3]。

此算法简单、高效,处理椒盐噪声特别好,但是缺乏判断图像中所有像素点是否存在噪声,因此对图像中所有像素点都要进行滤波,容易破坏图像边缘和细节信息[4]。

2.2 带权值的中值滤波算法(weighted median filter,WMF)

带权值的中值滤波算法的思想基本和标准中值滤波算法一样,不同之处在于对图像窗口所有像素点设置权重值,然后对像素点按照权重值出现次数的多少进行排序。

以一维图像滤波窗口Win为例,选取中心点X(4,0),以这个中心点左右各取一个像素点进行滤波,得到中心点像素Y为:

Y(0,0)=median{X(3,0),X(3,0),X(4,0),

X(4,0),X(4,0),X(5,0),X(5,0)}

(6)

通过给图像窗口每个像素点设置权重值,加强滤波像素点与其他像素点的联系,发现WMF滤波算法和SMF滤波算法相比,更好地保护了图像边缘和细节信息,较好地去除了噪声[5]。

2.3 自适应中值滤波算法(adaptive median filter,AMF)

为了克服SMF和WMF的不足,Chang等提出了一种改进的自适应中值滤波方法。滤波原理如式7所示:

(7)

其中,ws表示窗口大小;Ri表示第i个像素点值;rank(X)表示像素点X在序列中的位置;(i,j)表示中心像素点,对像素点(i,j)进行AM滤波后的值是AMij。

3 自适应加权中值滤波算法(weighted adaptive median filter,WAMF)

AMF、WMF算法虽然对图像细节信息、去噪性能具有非常大的优势,但是对高密度噪声去噪效果不好,多细节图像的边缘处理能力不佳。因此提出了一种改进的自适应加权中值滤波算法(WAMF)[6]。

3.1 基本原理

利用动态改变窗口滤波、中心加权中值滤波的技术。首先在图像上移动3×3的窗口来进行噪声检测,并把像素点划分为噪声点与非噪声点两种类型;然后根据噪声点的数量自适应调整滤波窗口的大小,并且基于相似性按照一定的规则,合理地对所有像素点进行自适应分组,并且对每组像素点赋予权重值;最后对图像中的噪声点进行加权中值滤波。该算法可以解决噪声抑制与细节保留的矛盾,通过自适应调整滤波窗口和每个像素点的分组并给予每组像素点以相应的权值,从而有效提高了自适应图像处理和细节保持能力[7-8]。

3.2 基本步骤

该算法分为三个步骤:首先对图像窗口像素点进行噪声检测;其次根据图像窗口噪声像素点的数量自适应调整滤波窗口大小;最后确定滤波窗口中每个像素点权重值,并利用加权中值滤波算法去除噪声[9]。

3.2.1 图像噪声检测

3.2.2 滤波窗口尺寸的确定

该滤波窗口的大小Li,j被自适应确定为Num(Si,j),依赖于3×3窗口中噪声像素的数量。计算公式为:

(8)

3.2.3 噪声像素滤波

滤波窗口大小和噪声像素点确定以后,图像像素点分为噪声像素点和非噪声像素点两种类型,其中非噪声像素点保持原来的灰度值,噪声像素点采取新的加权中值滤波算法处理噪声。一般在一个相邻区域内,中心像素点和其周围像素点存在一定的关联性,则计算滤波窗口中特定像素点(i+k,j+r)的灰度值f(i+k,j+r)和中心点像素灰度值f(i,j)的相似度是S(i+k,j+r)=φ(|f(i+k,j+r)-f(i,j)|)。其中φ是相似函数,|f(i+k,j+r)-f(i,j)|是独立变量,需要满足以下条件:

(1)φ(x)在区间[0,]内必须是单调递减的函数;

(3)相似度的值在[0,1]范围内。如果滤波窗口中特定像素点的灰度值与中心点像素灰度值越接近,则相似度越大,反之越小[10-11]。

利用相似度函数计算滤波窗口中所有像素点相似值并从小到大排序,根据相似值进行像素点分组并赋予相应权重值,采取加权中值滤波算法处理噪声[12]。

假设噪声点像素灰度值为f(i,j),滤波窗口大小为Li,j=(2n+1)×(2n+1),n∈{1,2,3},然后进行自适应操作,该滤波过程如下:

(1)计算滤波窗口中每个像素点(i+k,j+r)的相似值:

simila(i+k,j+r)=

(9)

(2)对滤波窗口中所有像素点(i+k,j+r)的相似值(2n+1)×(2n+1),n∈{1,2,3}从小到大排序,然后进行分组,分成2n+1个。每个组都有u个像素点(u=2n+2),对每组像素点排序号为(w-1)u+1到wu(w=1,2,…,2n),组号w=2n+1时,只有一个像素点(即最大相似度点)。组号w中像素点(i+k,j+r)的灰度值f(i+k,j+r)能赋予一个对应的权重值w(w=1,2,…,2n+1)[13]。

(3)对滤波窗口中心点像素(i,j)进行加权中值滤波,噪声点滤波以后的灰度值为:

g(i,j)=weighted_Med{f(i-n,j-n),f(i-n,j-n+1),…,f(i+n,j+n)}

(10)

4 仿真实验与结果分析

4.1 仿真环境

为了验证该算法滤波的效果,与SMF、AMF算法进行比较。在Matlab 7.0平台上对大小为256×256×8的Lena图像进行去噪处理,添加不同程度的噪声5%、10%、30%、40%和60%的脉冲,分别采用3×3窗口、5×5窗口进行测试,应用SMF、AMF算法和提出的新算法(WAMF)进行噪声去除[14]。

4.2 结果分析

为了客观评价算法的滤波性能,分别选取图像峰值信噪比(PSNR)和归一均方误差(NMSE)作为评价指标,得到的噪声滤波结果如表1所示,图像滤波结果如图1所示。

表1 噪声滤波结果

WAMF算法与3×3或5×5滤波窗口的SMF算法和AMF算法相比,可以获得更高的PSNR,具有低的NMSE。WAMF算法中,干扰噪声越多,PSNR和NMSE的差距就越大。这表明,WAMF算法在噪声抑制和细节保留方面优于AMF算法和MF算法。

图1 原始图像、噪声图像和滤波图像

图1中(b)~(f)分别是Lena图像含60%噪声干扰时和采用不同滤波算法的滤波输出图像。从滤波效果来看,SMF算法无法很好地消除噪声,AMF算法仅能以不完全的方式消除噪声,WAMF算法既可以完全去除噪声,又能最大程度地保留图像细节[15]。

从图1的滤波结果和表1的客观评价值可看出,WAMF算法将小窗口中值滤波能很好保留图像细节的性能和大窗口中值滤波能很好去除噪声的能力进行了结合,在滤波效果和客观评价结果上具有明显优势。

5 结束语

文中提出一种应用于图像处理的新的加权中值滤波算法,不仅可以根据图像噪声点的数量自适应调整滤波窗口大小,还可以根据滤波窗口像素点相似度值对像素点进行自动分组,并赋予每组所有像素点权重值。该算法对滤波窗口中心像素点以及周围相似度接近的像素点赋予较大的权重值,所以较好地保护了图像的细节,解决了噪声去除和图像细节保留之间的矛盾,是一种性能良好、效率高的图像处理技术。

猜你喜欢

中心点像素点灰度
采用改进导重法的拓扑结构灰度单元过滤技术
图像二值化处理硬件加速引擎的设计
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于局部相似性的特征匹配筛选算法
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
Arduino小车巡线程序的灰度阈值优化方案
如何设置造型中心点?
基于像素点筛选的舰船湍流尾迹检测算法