边缘零交叉二值化设计与实现

时间:2011-06-27

  摘  要: 针对全局阈值法和局部阈值法的不足,提出一种基于LoG算子的边缘零交叉二值化方法,并通过实验分析各算法的二值化效果及运算速度。

  1  现有的图像二值化算法

  二值化是一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的特殊的方法,一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个全局的阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。将大于T的像素群的像素值设定为白色(或者黑色),小于T的像素群的像素值设定为黑色(或者白色)。全局二值化,在表现图像细节方面存在很大缺陷。为了弥补这个缺陷,出现了局部二值化方法。局部二值化的方法就是按照一定的规则将整幅图像划分为N个窗口,对这N个窗口中的每一个窗口再按照一个统一的阈值T将该窗口内的像素划分为两部分,进行二值化处理……如果图像的灰度直方图呈现双峰,或者图像中背景灰度与目标灰度呈明显分离状,则全局阈值法分割图像效果良好且速度快。但是图像常常要受到噪声、光照不均匀、污染等影响,致使背景象素灰度和目标象素灰度互相交错重叠在一起,图像直方图呈现单峰或多峰,全局阈值法无法获得满意的二值化效果,这时必须要考虑图像的空间局部特性。局部阈值法根据局部信息确定局部阈值来二值化图像。由于Kamel-Zhao算法要选择阈值,使其使用受到限制;Bernsen算法则没有该限制,实验结果普遍表明其效果要比Kamel-Zhao算法好,但是却会产生诸如目标部分缺失、伪影等缺点和问题。基于局部极值的快速二值化方法是对Bernsen算法进行的改进,但是仍然有一些不足,如文本笔划粘连等。

  针对以上讨论,本文提出了一种基于拉普拉斯高斯算子的边缘零交叉二值化方法。利用LoG算子的优良特性检测出图像的边缘零交叉,确定出边缘零交叉点二侧的象素为目标或是背景,对图像中均一区域(背景或者目标)根据邻域属性确定其归属。实验结果表明该方法能克服局部阈值法的目标部分缺失和伪影现象,也克服了全局阈值法易受噪声和光照不均匀的影响,而且二值化效果比LEVBB算法要好。

  2  边缘零交叉二值化方法概述

  虽然图像常常会受到光照不均匀等因素的影响,图像的整体直方图呈现单峰或者多峰,其目标象素和背景象素灰度互相重叠,但是目标的边缘仍然存在。根据这一特点可以实现这类降质图像的正确二值化。分析局部阈值法产生的目标缺失和伪影现象,发现当局部不存在目标点时,背景灰度的非均匀性将影响局部阈值的变化。当考察的局部区域均为目标或背景时,局部阈值法会强行将其二值化为背景和目标二部分,从而产生目标区域断裂和伪影现象。边缘零交叉二值化方法可以克服这些缺陷。开始只对边缘象素作处理,通过LoG算子检测出边缘并将二侧的局部象素划分为背景和目标2类;当局部均为目标或者背景(这时不存在边缘)时,先将其确定为待定区域,然后进行连通区域标记,根据标记后连通区域周围象素的属性判断归属将其正确地进行二值化。

  2.1 LoG算子边缘检测

  由于噪声点(灰度与周围点相差很大的象素点)对边缘检测有一定的影响,所以效果更好的边缘检测器是LOG算子,也就是Laplacian-Gauss算子。它把的Gauss平滑滤波器和Laplacian锐化滤波器结合了起来,先平滑掉噪声,再进行边缘检测,所以效果会更好。常用的LOG算子是5×5的模板到中心的距离与位置加权系数的关系曲线象墨西哥草帽的剖面,所以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算子对图像边缘的影响如图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所示。

  5  结束语

  本文针对常用的整体阈值法和局部阈值法二类方法的局限性提出了一种边缘零交叉二值化方法。该方法利用LoG算子的优良特性检测出图像的边缘零交叉,然后根据局部极大与极小差值,将图像三类化,通过连通区域标记,根据标记后连通区域周围象素的性质完成终的二值化处理。虽然本文采用了二维图像局部窗口内极值快速算法,但是由于要进行连通区域标记及计算标记后连通区域周围目标象素个数和背景象素个数,导致本文算法速度较慢,但是其速度在实用中仍可以接受。进一步的研究是如何提高本文算法的计算速度。


  
上一篇:利用EPROM 引导 Linux
下一篇:一种无线通信模块在掌上电脑中的实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料