收稿日期:2006-11-24.基于贝叶斯算法的二值化算法白 洁1,杨耀权1,陈余梅2(1.华北电力大学控制科学与工程学院,河北保定071003;2.广东省湛江电力有限公司,广东湛江524000)
摘要:针对在图像二值化过程中动态选取阈值难的问题,在分析了全局阈值法和局部阈值法各自优缺点的基础上,提出了一种基于贝叶斯算法的全局阈值法和局部阈值法相结合的二值化方法。经实验证明,该方法既能够有效地消除光照不均匀对图像的影响,较好地保留目标图像的细节,又能够有效地消除伪影,提高处理速度。关键词:二值化;全局阈值法;局部阈值法;贝叶斯算法中图分类号:TP391.41 文献标识码:A 文章编号:1007-2691(2007)03-0065-03
ApplicationofbinarizationbasedonBayesalgorithm
BAIJie1,YANGYao-quan1,CHENYu-mei2(1.SchoolofControlScienceandEngineering,NorthChinaElectricPowerUniversity,Baoding071003,China;2.ZhanjiangElectricPowerCo.Ltd.,Zhanjiang524000,China)
Abstract:Aimingatthedifficultiesofselectingthresholdvaluedynamicallyintheprocessofimagebinarization,abi-narizationmethodbasedonBayesalgorithmisderived,thismethodisacombinationofglobalthresholdmethodandlo-calthresholdmethod.Experimentsprovethatthismethodisabletoeliminatetheeffectsofunequalilluminationandartifacts,retaintargetimage'sdetailsandraisetheprocessingspeed.Keywords:binarization;globalthreshold;localthreshold;Bayesalgorithm
0 引 言图像的二值化在计算机图像处理技术中广泛应用于目标识别、字符识别、牌照识别等领域。而图像阈值自动选取方法的研究长期以来吸引着众多学者,寻找简单实用、自适应强的阈值自动选取方法是这些研究者们的共同目标。常用的二值化方法有各自的优缺点,如全局阈值算法简单,对于目标和背景明显分离、直方图分布呈双峰的图像效果良好,但对噪声较大和阴影明显的图像二值化效果不佳。局部阈值法可以克服上述不足,但要比较图像中所有点,所以速度慢。本文在分析了全局阈值法和局部阈值法各自优缺点的基础上,提出了一种全局阈值法和局部阈值法相结合的二值化方法。经实验证明,
该方法抗噪能力强、并能较好的保留图像细节。1 基于灰度图的二值化假设用f(x,y)(0≤xx,y都为整数)来表示一幅M行N列的灰度图像中的一个像素。那么二值化处理可以表示为
f(x,y)=1 f(x,y)≥T0 otherwise式中:T为阈值。经过二值化处理后,图像中的目标和背景就由黑白两种颜色分开,选择不同的阈值会得到不同的划分结果。常用的二值化方法主要可以分为全局法和局部法两种。1.1 全局动态二值化和局部自适应二值化全局阈值法根据图像的直方图或灰度空间分布确定一个阈值,以此实现灰度图像到二值图像的转化。典型的全局阈值方法包括Ostu方法[1]、
第34卷第3期2007年5月 华北电力大学学报JournalofNorthChinaElectricPowerUniversity Vol.34,No.3May,2007最大熵方法等。全局阈值算法简单,对于目标和背景明显分离、直方图分布呈双峰的图像效果良好,但其对于由于光照不均匀、噪声干扰较大等原因使直方图分布不呈双峰的图像,二值化效果明显变差。局部阈值算法通过定义考察点的邻域,并由邻域计算模板,实现考察点灰度与邻域点的比较。非均匀光照条件等情况虽然影响整体图像的灰度分布却不影响局部的图像性质,从而使局部阈值算法比全局阈值算法有更广泛的应用,Bemsen[2]算法是一种典型的局部阈值算法。但局部阈值算法也存在以下问题和缺点:如实现速度比全局阈值算法慢;不能保证字符笔划的连通性;容易出现伪影(ghost)现象(背景区域受到噪声干扰出现笔划)等。动态阈值法是一种自适应得二值化算法,它利用了像素自身及其邻域灰度变化特征,充分考虑了每个像素邻域的特征,能够更好的突出背景和目标的边界,使得相距很近的两条线不会产生粘连现象,效果较好。1.2 常用方法简介(1)双峰法首先,根据输入的数字图像按某一灰度级内的像素频数做出该图像的直方图。大量统计表明,对于某一类图像(如目标和背景有较强的对比)直方图中出现两个峰值,其中一个处于背景灰度区中,另一个处于目标灰度区。在这样的前提下,在两个峰值的中间波谷处取阈值。(2)微分直方图法此算法利用灰度变化率即微分直方图来确定阈值。如果图像中的目标和背景的边界处于灰度值急剧变化的部分,不直接利用其灰度值,而是利用其微分值作为阈值。微分值是灰度的变化率,可以有多种定义,比如某一像素和其周围邻域各像素的灰度差的最大值,或是各个差的绝对平均值,由此求出微分直方图。微分直方图中的峰值就是所求的阈值。此方法适用于图像的目标与背景的边界位于灰度值急剧发生变化的情况,它的微分直方图会有一个峰值。但对于边界附近灰度变化复杂的图像,此方法是不太奏效的。(3)最大方差法在图像的灰度直方图中,把图像的灰度值集合用阈值分为两组,通过基于两组的最佳分离来确定阈值,即根据两组的组间方差和组内方差之比为最大来确定阈值。使组间方差与组内方差之比达到最大的即为阈值[3]。此方法在直方图不存在峰值时也可以使用,但是不能反映图像的几何结构,有时判断标准与人的视觉不一致。
2 基于贝叶斯公式的全局法和局部法相结合的二值化算法
在分析了各种全局阈值法和局部阈值法各自优缺点的基础上,提出一种全局阈值法和局部阈值法相结合的二值化方法,该方法抗噪能力强、并能较好的保留图像细节。2.1 全局阈值选取这里采用一种基于贝叶斯公式和最大熵法则求全局最佳阈值的方法,该方法能较好的保持视觉效果,适当保留细节[4]。
设G为输入图像的灰度图,则其有L层灰度的直方图H={h0,h1,……,hL-1},灰度概率密度为P(i)=h(i)/N,i=0,1…,L-1,N为G像素总数。G被最优阈值T分为Gb(背景)和Gf
(前景)两部分,Gb=∪L-1i=0Gbi,Gf=∪L-1
i=0GbiGfi(2)
所以由全概率公式得:
P(Gb)=∑L-1i=0pipb│i(1)P(Gf)=∑L-1i=0pipf│i(2)式中:pb│i=P(Gbi)P(Gi),……,pf│i=P(Gfi)P(Gi)(3)
因为:pb│i=1-pf│i,则P(Gb)=1-P(Gf)(4)采用香农最大熵原理作为判别准则,则熵函数E为E=-P(Gb)lgP(Gb)-P(Gf)lgP(Gf)(5)把式(4)代入,则式(5)可改写为E=-P(Gf)lgP(Gf)-(1-P(Gf))lg(1-P(Gf))(6)
当P(Gf)=0.5时熵函数E取最大。然而在实际应用中,由于直方图离散,P(Gf)很少能完全等于0.5,可以转而求最小误差:Emin:= P(Gf)-0.5)
=L-1i=0PiPf│i-0.5(7)
条件概率函数Pf i应满足式(7)的性质,选用非线性凸抛物线形式。
66华北电力大学学报 2007年Pf i(i,a,c)=10≤i≤a-i2+2ai+c(c-2a)(a-c)2a00(8)该函数含两个参数a、c,其中a为抛物线顶点,全
局最佳阈值T=2-12(c-a)+a。图形如图1所示。
图1 凸函数Fig.1 Convexfunction2.2 局部阈值法定义设窗口大小为(2w+1)×(2w+1),对于灰度图像G上任一点(i,j),计算以之为中心各相邻点的灰度值W(i,j)(w),并求取最小灰度值min(i,j),最大灰度值max(i,j):min(i,j)=min{W(i,j)(w)}
max(i,j)=max{W(i,j)(w)}(9)
然后比较G(i,j)-min(i,j)与max(i,j)
-G(i,j),其中G(i,j)为点(i,,j)的灰度值,如果前者大,表明G(i,j)靠近高灰度的点,而高灰度
一般表示背景,二值化时可以把(i,j)认为是背景。反之,如果后者大,可把(i,j)当作是前景点。对于边缘点的阈值计算可以通过边界延拓实现。该方法的缺点是容易出现伪影、速度慢,以及如何选择窗口的大小等。为了消除这些缺点,需要将全局阈值法同局部阈值法结合起来。2.3 结合原则全局阈值法对噪声较大和阴影明显的图像二值化效果不佳。局部阈值法可以克服上述不足,但要比较图像中所有点,所以速度慢,所以应找出两种方法的有机结合点。主要原则就是:先用全局法得到一个全局阈值,然后对距离此阈值较远的像素以全局阈值二值化;对距离全局阈值较近的像素用局部法考察其邻域以得到局部阈值,再对其按局部阈值二值化。两种方法结合的原则具体为(1)使用全局法考察整幅图像,计算出全局阈值T。对那些远离全局阈值T的点按此阈值二值化,因为这些点以全局阈值为参照很明显是属于前
景或背景。(2)用局部阈值法二值化那些离T稍近的点。与此同时,伪影也能被消除。(3)距离远近判断是该点灰度与全局阈值T的差值,可取10~50,实验表明距离取20较好。(4)窗口选择对全局阈值法和局部阈值法相结合使用时影响不大,考虑到计算速度和二值化效果,窗口可取w=1~8,实验表明w=3较好。
3 实验结果及分析图2所示为两幅灰度图像用各种二值化方法得到的二值图像。图2(a)和(e)为原灰度图像,图2(b)和(f)是用Ostu方法得到的结果,图2(c)
图2 各种二值化方法结果比较Fig.2 Comparisonofeachmethod(下转第71页)
67第3期 白 洁等:基于贝叶斯算法的二值化算法