APP下载

基于数字图像处理技术的条码图像二值化处理

2022-02-16芶小珊

无线互联科技 2022年23期
关键词:条码像素点光照

芶小珊

(成都大学 计算机学院,四川 成都 610000)

0 引言

对图像进行二值化处理实际上就是将数字图像转化为二值黑白像素的矩阵,并将图像从背景中分离,方便后期的图像边缘提取,为接下来的其他图像处理打下基础。大多数情况下,图像上的像素点灰度值设置为0或255,而二值化处理的关键是需要通过合适的阈值实现背景的分割,对图像完成二值化处理后,数据量减少则图像的轮廓逐渐显现,更加方便后期的图像处理。

1 二值化理论

图像的二值化处理最常用的算法是图像阈值分割算法。该算法处理方法简单,通过阈值分割后的图形清晰,在所待处理的图像中,将图像中的关键部分进行目标区域划分,将冗余的部分设定为背景区域。二值化处理的核心是选择一个最佳阈值,对比像素点与阈值,根据结果对图像进行划分,将其划分为目标与背景区域。二值化处理的目的是保证图像在不失真的前提下舍弃冗余信息,其关键点就在于阈值的选择。阈值分割实际上就是将图像上所有的像素点进行比较,在像素点上选取一个阈值T,根据阈值T判断图像信息,并将图像进行区域划分[1],公式为:

(1)

f(i,j)表示原图像像素;b(i,j)表示二值化算法处理后的图像;T表示阈值。

当前,图像阈值选取的算法上百种,以最常用的阈值法——Ostu算法为例进行条码图像的二值化处理。

使用手持设备采集到的图像容易出现光照不均的情况,如光线较暗影响整体灰度值;光照不足影响局部灰度值;遮挡容易出现阴影。此类现象均属于光照不均,影响图像进行目标和背景区域的划分,影响阈值的选取,一旦选取阈值容易导致分割后出现大量阴影,影响识别过程。一种方法是可以采用直方图均衡化、线性对比度拉伸等方法增加图像的亮度,但是此方法需要调节比例系数;另一种方法就是采用Ostu阈值选取,不需要调节参数,缺陷是算法运行时间长容易出现边界效应。

1.1 Ostu算法

Ostu算法又名最大类间方差法[2],其原理为:根据图像的灰度特性对图像进行目标与背景分割,如果类间方差越大说明分割的背景差别越大;如果背景被划分为前背景,类间方差变小。因此,类间方差越大说明错分概率越小。取最佳阈值为T,类间方差值为g,得到图像总的平均灰度值:

μ=ω0μ0+ω1μ1

(2)

ω0表示像素占比;μ0表示平均灰度;ω1表示背景占比;μ1表示平均灰度值。

类间方差公式为:

g=ω0(μ0-μ)2+ω1(μ1-μ)2

g=ω0×ω1×(μ0-μ1)2

(3)

当g越大,说明目标与背景之间的像素越大,划分错误的概率越低;g最大时选取的T值为最佳分割阈值。

1.2 图像定位

图像定位即在图像中找到目标图像位置并进行提取,在数字图像处理过程中,定位的准确性关系到图像的识别[3]。Canny算子边缘检测与Sobel算子、Roberts算子相比适用范围更广,主要检测图像周围的灰度像素是否存在屋顶变化,将特征的边缘连接成完整的像素边界。利用Canny算子进行多级边缘检测,检测条码的边缘特征。处理步骤为:

首先,计算梯度幅值和方向,利用一阶偏导数的有限差分,表示滤波器的两个一阶偏导,用x和y表示图像的像素点,得到图像的幅度与方向,公式为:

(4)

θ(x,y)=arctan(Gx(x,y)/Gy(x,y))

(5)

Gx(x,y)和Gy(x,y)表示一阶偏导;M(x,y)表示边缘强度;θ(x,y)表示边缘方向角。

其次,采用非极大值抑制算法对梯度幅度进行处理,因为图像的边缘需要通过全局梯度获取,需要采取梯度最大的点取得。

最后,利用双阈值法检测并连接边缘。

条码图像在采集过程中由于人为因素难免会发生变化,如倾斜、变形等,得到的条码图像会发生一定角度的倾斜,增加后期条码图像的识别难度。因此,对条码进行倾斜校正与定位极为重要。图像局部特性出现灰度值突变、颜色突变以及纹理突变等,都属于图像边缘的正常特征,图像的边缘可以显示出图像的大体轮廓,图像作为多个像素点组成的个体,用矩阵表示像素点的位置,就是图像的像素矩阵。图像的边缘信息获取在图像处理过程中极为重要,二值化处理条码图像时,光照的影响极大,而图像的边缘不易受到光照的影响,二者之间有本质区别。因此,进行二值化处理图像时,光照往往影响图像的获取效果。在进行图像分析时,图像的边缘检测是获取图像信息的重要基础。因此,边缘检测对于条码的解码十分重要[4]。

1.3 图像校正

Hough变换通过全局特性将边缘像素连接为封闭区域,将原始图像中的曲线转换为参数空间中的峰值,原始图像中的坐标需要满足方程式:y=mx+n,其中,m表示直线斜率,n表示截距。

根据公式可得,图像空间的点对应参数空间的直线,如果图像空间中多出一条直线,则参数空间中的多条直线相交于一点,如图1所示,XY表示图像空间,MN表示参数空间。

图1 图像空间与参数空间点线对偶

利用Hough变换中的4条直线,得到图像的倾斜角度,完成旋转图像,根据图像的旋转,以图像中心为原点,顺时针方向进行旋转得到最终图像,如图2所示。坐标经过旋转得到,l表示距离,θ表示夹角。

图2 图像旋转

2 实验设计

2.1 设计思路

在数字图像处理技术的基础上,对二值化算法进行改进,使用改进后的二值化算法进行条码图像处理,并针对校正提出更好的处理算法。预处理作为图像识别系统中的重要一环,预处理的过程要遵守如下程序:(1)对条码图像进行灰度化处理;(2)对灰度化处理后的图像进行自适应滤波处理;(3)随后对图像进行二值化处理,利用改进后的算法进行背景区域分离;(4)对图像进行边缘检测;(5)最后进行透视变换,识别图像信息。整个识别流程如图3所示。

图3 条码图像识别流程

2.2 实验条件

实验条件的好坏对条码的识别过程有很大的影响,采集图像的设备越好,则图像处理的效果越好。常见的实验条件中,硬件设备有:计算机(Intel Core i5-3230M CPU、Win7系统)、华为手机、打印机(HP 300),软件环境是Visual Studio(2012版本,C语言)、Matlab(R2014a),另外还需要采集二维码图像、打印样张(A4纸)。

2.3 实验设计

2.3.1 去噪

首先对条码图像进行灰度化处理,将采集的图像带入公式(6),使用加权平均法对图像进行灰度化处理[5],根据人眼对光线的敏感度,对分量(红绿蓝)进行加权平均值处理,得到稳定的灰度图像。

Gray=0.30R+0.59G+0.11B

(6)

然后对图像进行自适应滤波噪声处理,将经过灰度化处理的图像设为P,选取窗口fxy=3使用滤波窗口进行处理,对灰度图像P的像素进行排序,判断最大值、中间值以及最小值之间的关系是否满足条件,并判断当前窗口中获取的中间值是否噪声点,如果是,增大窗口,直到找到非噪声点的值;判断中间值是否噪声点,如果是,根据判断的结果,输出非噪声点的中间值。

最后判断图像中的噪声点是否通过自适应中值滤波算法得到的灰度值,经过处理后得到去噪效果更好的条码图像。

2.3.2 光照不均

对图像进行自适应滤波去噪后,对图像进行二值化处理,因为采集到的图像容易受到光照环境影响,造成光照不均,影响二维码的识别,传统的Ostu在获取阈值时会出现边界效应,而且获取的时间较久。基于此,针对传统的Ostu算法提出一种基于形态学的改进Ostu算法,该方法结合形态运算进行分子块的Ostu处理。

首先对图像进行灰度化处理,再进行自适应中值滤波去噪处理,利用改进的方法,对条码进行分块处理;将划分的各个区域进行Ostu阈值分割处理,并根据图像的原分割位置对图像进行组合处理;经过组合的图像在数字形态学闭运算方法下完成边缘细化,消除边界效应,得到最终的图像。

改进后的Ostu不会因为分块导致像素出现不连续性,也不会发生边界效应,减少了图像重新组合的时间,改进后的Ostu阈值分割,仍然存在边界效应,需要通过形态学闭运算,对光照不均图像进行处理,对图像进行闭运算处理,得到最终的处理图像,改进后的Ostu算法会在边界产生干扰点,与形态学闭运算相结合,可以很好地消除边界效应。

2.3.3 畸变图像

完成光照不均的二值化处理后,需要对畸变图像进行校正,通过Canny算法,对条码图像进行边缘轮廓的提取,再利用Hough检测边缘直线,获取点的位置和坐标。畸变图像定位校正步骤为:(1)对经过二值化处理的图像进行Canny算法检测;(2)对二值化处理的图像进行Hough变换,通过图像数组的坐标获取变换的角度与半径的值;(3)利用Hough变换,在参数空间中找到相交的点,检测图像空间的最长直线;(4)检测4条线后获取图像的角点,得到畸变校正后的图像;(5)通过双线性插值运算对校正图像的点做双线性插值运算,得到最终图像。

3 结果分析

使用手机端拍摄图像样本进行对去噪、光照不均、畸变图像等测试,并对图片进行实验结果分析,传统算法与改进后的算法在译码个数与准确率方面的比较结果如表1所示。

表1 图像识别结果

根据图像的识别结果,当去噪的污染较大时,利用改进后的算法对二维码进行解码可以得到的图片识别准确率为90%;对于光照不均的图像,利用改进后的算法可以提高识别率,当分辨率较低时,如果背景较为复杂将会影响译码率,因此译码率为90%;当图像发生畸变时,改进后的算法准确率达到87.5%,如果采集到的图像失真严重,无法准确获取图像位置时,容易造成原图无法识别的情况。从识别的结果可以得到,经过改进后的Ostu算法可以在一定程度上提高条码的识别率,具有一定的使用价值。

4 结语

综上所述,在结合去噪污染、光照不均以及畸变图像等图像背景下,基于数字图像处理技术和条码编码技术,对二维码的图像识别问题进行了讨论,其主要目的就是提高条码的识别有效率。针对去噪问题,利用加权平均法对图像进行灰度化处理,利用自适应中值滤波解决噪声;由于图像受到光照不均的影响,当图像在进行阈值分割后,容易出现黑块,影响图像的准确定位,利用改进后的Ostu算法,将图像分割为4子块,结合形态学闭运算,消除边界效应;当图像发生畸变时,利用Canny算子与Hough变换对图像进行定位处理。最后,对识别的结果进行比较,完成了条码图像的识别。

猜你喜欢

条码像素点光照
中国条码技术与应用协会
条码微站
节能环保 光照万家(公益宣传)
热线互动
节能环保光照万家(公益宣传)
春光照瑶乡
基于5×5邻域像素点相关性的划痕修复算法
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于固定条码与电子标签比对设备的设计
服装CAD系统中的光照面向对象分析