摘 要:针对全局阈值法和局部阈值法的不足,提出一种基于LoG算子的边缘零交叉二值化方法,并通过实验分析各算法的二值化效果及运算速度。
关键词:二值化 LoG算子 边缘零交叉 连通区域标记
1 现有的图像二值化算法
二值化是图像处理、图像分析及模式识别中的一个重要问题,是许多识别应用系统中不可缺少的重要环节。二值化效果的好坏直接影响到系统的性能。因此学者们对此进行了重点研究,目前提出了许多算法[1]。这些算法大体上可以划分为2类,即全局阈值法和局部阈值法。全局阈值法是指对整幅图选取单一的阈值来进行二值化,典型的算法有直方图、直方图变换法、大津(Otsu)法[2]和熵法等。如果图像的灰度直方图呈现双峰,或者图像中背景灰度与目标灰度呈明显分离状,则全局阈值法分割图像效果良好且速度快。但是图像常常要受到噪声、光照不均匀、污染等影响,致使背景象素灰度和目标象素灰度互相交错重叠在一起,图像直方图呈现单峰或多峰,全局阈值法无法获得满意的二值化效果,这时必须要考虑图像的空间局部特性。局部阈值法根据局部信息确定局部阈值来二值化图像。典型的局部阈值法有Kamel-Zhao算法[3]和Bernsen算法[4]等。它们能克服光照不均匀等干扰,自适应地根据局部灰度特性选取阈值。由于Kamel-Zhao算法要选择阈值,使其使用受到限制;Bernsen算法则没有该限制,实验结果普遍表明其效果要比Kamel-Zhao算法好,但是却会产生诸如目标部分缺失、伪影(ghost)等缺点和问题。基于局部极值的快速二值化方法(Local Extreme Value Based Binarization,LEVBB)[5]是对Bernsen算法进行的改进,但是仍然有一些不足,如文本笔划粘连等。
针对以上讨论,本文提出了一种基于拉普拉斯高斯(Laplacian of Gaussian,LoG)算子的边缘零交叉二值化方法。利用LoG算子的优良特性检测出图像的边缘零交叉,确定出边缘零交叉点二侧的象素为目标或是背景,对图像中均一区域(背景或者目标)根据邻域属性确定其归属。实验结果表明该方法能克服局部阈值法的目标部分缺失和伪影现象,也克服了全局阈值法易受噪声和光照不均匀的影响,而且二值化效果比LEVBB算法要好。
2 边缘零交叉二值化方法概述
虽然图像常常会受到光照不均匀等因素的影响,图像的整体直方图呈现单峰或者多峰,其目标象素和背景象素灰度互相重叠,但是目标的边缘仍然存在。根据这一特点可以实现这类降质图像的正确二值化。分析局部阈值法产生的目标缺失和伪影现象,发现当局部不存在目标点时,背景灰度的非均匀性将影响局部阈值的变化。当考察的局部区域均为目标或背景时,局部阈值法会强行将其二值化为背景和目标二部分,从而产生目标区域断裂和伪影现象。边缘零交叉二值化方法可以克服这些缺陷。开始只对边缘象素作处理,通过LoG算子检测出边缘并将二侧的局部象素划分为背景和目标2类;当局部均为目标或者背景(这时不存在边缘)时,先将其确定为待定区域,然后进行连通区域标记,最后根据标记后连通区域周围象素的属性判断归属将其正确地进行二值化。
2.1 LoG算子边缘检测
在Marr的视觉理论中,视觉的第一阶段很大程度上是由零交叉检测器完成的。然而利用图像强度二阶导数的零交叉点求边缘的算法对噪声十分敏感,所以希望在边缘增强前滤除噪声。为此,Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG算法,也称为拉普拉斯高斯算法。这种方法的特点是图像先与高斯滤波器G(x,y)进行卷积,这一步既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。然后利用无方向性的拉普拉斯算子实现边缘检测。
设原图像为f(x,y),利用下式通过卷积运算得到LoG算子的输出h(x,y):
LoG算子为一个倒立的墨西哥草帽形。取δ=1.0时的LoG算法图形如图1所示。神经心理学研究证实它是对视网膜神经细胞感受域组织的一个良好近似,可看作由一个兴奋中心区和一个抑制周边区组成。
于是对于离散数字图像f(x,y),公式(2)的LoG算子的输出h(x,y)可以用下式近似计算:
h(x,y)=m(x,y)*f(x,y) (4)
2.2 边缘零交叉二值化方法
LoG算子边缘零交叉算法在图像处理中常用于边缘检测。这里利用其确定边缘二侧运算后产生的结果正负性,并结合连通区域标记进行二值化。
LoG算子对图像边缘的影响如图3所示。由图易知,对图像的边缘二侧的象素经过LoG算子计算后,低灰度值侧的h(x,y)>0,高灰度值侧的h(x,y)<0。于是可以利用h(x,y)来对图像进行边缘二值化,即h(x,y)>0的象素为背景,h(x,y)<0的象素为目标。
如果使用LoG算子计算后对图像的边缘零交叉结果h(x,y)直接进行二值化,则会产生一些假边缘。这时可以借助局部区域图像象素灰度的极大值和极小值的差值来判断该区域属于均一区域还是真正的边缘,并利用边缘零交叉将图像分为3类(如图3(b)所示),方法如下:
(1)当该极大与极小差值大于某个阈值且h(x,y)>0时,令该象素为背景‘B’。
(2)当该极大与极小差值大于某个阈值且h(x,y)<0时,令该象素为目标‘A’。
(3)当前二者条件都不满足时,令该象素为待定区域‘0’。
为了确定待定区域象素的最后归属,对每个待定区域象素进行4连通区域标记,并分别统计每个标记区域周围的8连接目标象素个数numA与8连接背景象素的个数numB。利用numA和numB进行二值化,规则如下:
(1)当该区域的8连接目标象素个数numA大于8连接的背景象素个数numB时,令该区域象素为目标‘A’。
(2)当该区域的8连接目标象素个数numA小于等于8连接的背景象素个数numB时,令该区域象素为背景‘B’。
经过以上步骤得到背景和目标分开的二值图像。
3 边缘零交叉图像二值化方法实现
设一幅待处理图像为f(x,y),边缘零交叉图像二值化方法实现算法的详细步骤描述如下:
(1)为了消除个别奇异点和白噪声的影响,首先采用n×n的均值滤波器平滑原图像f(x,y),得到平滑后图像f ′(x,y)。这里取n=5。
(2)为了判断象素是否属于均一区域,引进该象素周围局部区域的极大值与极小值的差值a(x,y)。它由下式给出:
示以考察象素点(x,y)为中心的大小为(2u+1)×(2u+1)窗宽区域中象素灰度的极大值和极小值。为了提高算法的快速性,采用二维图像局部窗口内极值快速算法[5]求取极值。
(3)选定LoG算子的参数w和δ,根据公式(4)计算f ′(x,y)的LoG算子的输出h(x,y)。此时,LoG算子的高斯滤波器将进一步对局部的噪声点引起的灰度突变消除影响。本文实验结果选取的参数为w=5,δ=0.7。
(4)将图像f ′(x,y)的象素三类化,得到L(x,y)。三类化规则如下:
Ts阈值为一个很小的数,这里取Ts=5。‘B’代表背景;‘0’为均一待定区域;‘A’代表目标。
(5)对L(x,y)中标记为‘0’象素进行4连通区域标记,得到一系列4连通标记区域LR。对每个4连通标记区域LR分别计算其周围8连接的‘A’的数目numA和‘B’的数目numB。当numA>numB时,用‘A’标记该LR。
(6)对步骤(5)处理过的L(x,y)进行二值化处理。即将L(x,y)中为‘A’的点标记为目标,而将其他点标记为背景。
(7)经过步骤(6)后的二值图L(x,y)可能仍然会存在一些小块的区域为假目标区。为了剔除这些因局部干扰而误分的小区域,可以设定一阈值Ta。Ta的选取要依赖于目标的大小,一般选取估计目标区域点数最小值的10%。当L(x,y)中8连接目标区域AR点数小于Ta时,令该AR区域为背景。处理后得到最终的二值化结果输出图像为B(x,y)。
4 实验结果
为了验证本文算法的有效性,选取4幅实际采集的图像(相对原图有缩放)进行实验。原始灰度图像及其对应的直方图分别如图4和图5所示。其中图4(a)为一幅左暗右亮光照不均车牌图像,其直方图(图5(a)所示)呈现多峰;图4(b)为一幅由于阳光照射而造成的上下光照不均车牌图像,其直方图(图5(b)所示)也呈现多峰;图4(c)为一幅左亮右暗且存在大量噪声的横幅,其直方图(图5(c)所示)呈现单峰;图4(d)为一幅点光源下采集的指纹图像,其直方图(图5(d)所示)呈现三峰。4幅图像的目标象素和背景象素灰度均互相重叠。
在VC++6.0开发环境下实现了Otsu法、Bernsen算法、LEVBB算法及本文算法,对图4的4幅图像进行了对比实验,其二值化结果图像分别如图6~9所示。
由以上结果看出,Otsu法对直方图为单峰或者多峰等目标与背景象素灰度值交错的图像会产生二值化错误;Bernsen算法能够正确二值化,但是会产生大量伪影现象,且对噪声敏感;LEVBB算法结果较好,能有效地消除Bernsen算法产生的伪影现象,对噪声不敏感,但是当光照变化强烈时,仍然有部分结果二值化不正确;本文算法能抗拒光照的剧烈变化和噪声干扰,二值化结果能够很好地保持目标本来形态,获得更好的效果。在CPU为Pentium4、主频1.7GHz、内存512MB的PC机上各算法计算速度及效果比较如表1所示。从表中可以看出,本文的算法要比Bernsen算法速度快,但是比LEVBB算法慢,不过其计算速度在车牌识别等实用过程中是可以接受的。
5 结束语
本文针对常用的整体阈值法和局部阈值法二类方法的局限性提出了一种边缘零交叉二值化方法。该方法利用LoG算子的优良特性检测出图像的边缘零交叉,然后根据局部极大与极小差值,将图像三类化,最后通过连通区域标记,根据标记后连通区域周围象素的性质完成最终的二值化处理。大量的实验对比(本文仅给出4个典型图片结果)表明,本文算法较Otsu法、Bernsen算法及其改进的LEVBB算法二值化效果好,能够适应光照不均和噪声等干扰,同时能够保持目标的本来形态。虽然本文采用了二维图像局部窗口内极值快速算法,但是由于要进行连通区域标记及计算标记后连通区域周围目标象素个数和背景象素个数,导致本文算法速度较慢,但是其速度在实用中仍可以接受。进一步的研究是如何提高本文算法的计算速度。
参考文献
1 Pal N R,Pal S K.A Review of Image Segmentation Techniques.Pattern Recognition,1993;26(9)
2 Otsu N.A Threshold Selection Method from Gray-level Histograms.IEEE on Trans.Systems,Man,and Cybernetics,1979;9(1)
3 Kamel M,Zhao A.Extraction of Binary Character/Graphics Images From Grayscale Document Images.Graphical Models and Image Processing,1993;55(3)
4 Bernsen J.Dynamic Thresholding of Gray-level Images.In:Proc of the 8th Int Conf on Pattern Recognition,Paris,France,1986
5 叶芗芸,戚飞虎.文本图像的快速二值化方法.红外与毫米波学报,1997;16(5)