APP下载

一种改进的QR码图像二值化算法

2014-04-18张继荣王利军

现代电子技术 2014年7期
关键词:插值法插值光照

张继荣+王利军

摘 要: 对光照不均的QR码图像进行全局二值化处理后,会出现全白或全黑的误差区域,在局部二值化过程中会出现伪边界情况,并且计算时间也会变长。针对光照不均的QR码图像提出了一种改进的基于背景灰度的二值化算法。首先,根据二维码源图像大小进行分块处理,使用灰度估算公式对分块的灰度值进行计算。其次,使用联合插值算法产生背景灰度水平图像,然后用背景灰度水平图像替代源图像得到校正图像。最后,采用Ostu算法对校正图像进行二值化。实验结果表明,该算法能有效的校正光照不均的QR图像,并得到一个良好的二值化图像。

关键字: QR码; 二值化; 图像处理; 灰度值

中图分类号: TN911.73?34 文献标识码: A 文章编号: 1004?373X(2014)07?0056?03

Improved binaryzation algorithm of modified QR code image

ZHANG Ji?rong, WANG Li?jun

(School of Conmmunication and Information Engineering, Xian University of Posts and Telecommunications, Xian 710061, China)

Abstract: All white or all black error areas would occur to QR code image with uneven illumination after global binarization processing. Pseudo?boundary would appear in the processing of local binarization, and the calculation time would be long. Aiming at the nonuniform illumination QR code image, an improved binarization algorithm is proposed, which is based on background gray?level. Firstly, doing sub?block according to the size of the Qrcode image, and gray?level estimation formula is used for computing the gray?level value of each block. Secondly, joint interpolation algorithm is adopted to create the background gray?level image which is used to take the place of original image to get the corrected image. Finally, the Ostu algorithm is used for the corrected image binarization. Experiment result shows that the algorithm can effectively correct the uneven illumination QR code image and obtain a good binary image.

Keywords:QR code;binarization;image processing; gray level

0 引 言

QR码是目前使用最广泛的矩阵二维码,由于其信息容量大、可靠性高、超高速识读,高效汉字表示等优点被广泛用于如报纸和电视媒体、产品标识、安全、电子名片、电子商务、电子指南和流水线生产等众多领域。QR码图像识别的一个关键步骤是图像二值化。由于复杂光照的影响导致QR码图像质量下降,实际应用中的二值化效果不是很好,同时也会影响后续的识别过程。为了解决上述问题,如文献[1]采用的是Ostu算法、文献[2]采用直方图双峰发部二值化、其他文献中采用自适应阈值二值化、背景灰度二值化等算法。其中背景灰度二值化算法对QR码图像二值化的改善效果最好。然而,它的计算量非常大,可操作性也不是很好。为了确保算法的有效性且提高算法的运行速度。本文主要旨在优化背景灰度矩阵扩展,同时针对光照不均的QR码图像提出了改进型基于背景灰度的二值化算法。该算法不仅能保证二值化的质量,同时也能减少计算量。

1 基于背景灰度二值化算法概述

1.1 算法介绍

全局阈值法是一种常见的相对简单、消耗时间短的识别QR码过程方法,如Otsu算法,使用直方图双峰等算法。然而,这些方法只能生成一个全局阈值,当对图像进行全局二值化后,它可能会产生全黑或全白图像,该方法对上述问题不能进行调整。基于背景灰度的二值化算法[3]能很好的解决以上问题。算法步骤如下:

(1) 根据二维码图像大小进行分块处理;

(2) 使用灰度估算公式对分块的灰度值进行计算;

(3) 采用双三次图像插值法生成可调整的背景灰度图像,其所生成的图像应该和源图尺寸一样;

(4) 用可调整的背景灰度图像代替源图像。这主要是为了抑制噪音,同时增强鲁棒性,能克服在二值化阈值选取时引起的不均匀照明;

(5) 采用Ostu算法对校正图像进行二值化。

1.2 计算背景灰度

将图像的灰度矩阵分为[m×n]矩阵块,得到灰度矩阵的分块矩阵[B,]公式如下:

[B=b11…b1l???bi1…bij, i=Mm, j=Nn, l=i×j]

块的大小既要能够保存细节又要能够抑制噪声。根据实验一般选取[l=116,]其中,[M]和[N]是源图像的宽和高,[l]是子块的数量。

按照以下公式计算每块的背景灰度估算值[t:]

[t=u-u+kσ]

式中:[u]为源图像的平均值,[u]和[σ]分别为每个图像块的灰度平均值和标准差;[k]是取值在0~1之间的调整因子,通过实验分析,[k=0.3]最合适[1?2]。

最后大小为[i×j]的灰度估计矩阵[R]由各个分块的背景灰度估算值求得:

[R=t11…t1f???ti1…tij]

如果区块为弱光照或者背景区,则[u]值或[σ]值较小,背景估算值[t]较小;相反,若区块强光照或者处于光照与背景的过渡区,则[u]或[σ]值较大,背景估算值[t]较大。

1.3 背景灰度矩阵扩展

对于上一步得到的灰度估计矩阵[R,]其中,每个元素的值为对应的分块估算值,并对其进行灰度扩展,扩展后的灰度矩阵与源图像的灰度矩阵大小相同,并以扩展后的矩阵作为源图像的背景估计矩阵。在灰度矩阵扩展的过程中采用双三次插值法。

1.4 调整源图像灰度并且二值化

利用源图像的灰度矩阵[Is]减去上一步得到的背景灰度扩展矩阵[Ig,]得到矫正的QR码图像灰度矩阵[Ir,]然后调整图像灰度,校正由于图像减运算引起的图像整体过暗现象。最后用Ostu对校正后图像[Ir]进行二值化:

[Ir=Is-Ig]

2 改进算法

2.1 算法介绍

基于背景灰度二值化算法对非均匀照明图像处理效果良好。然而,背景灰度矩阵扩展需要很大的计算量,与此同时也削弱了二值化算法的效率。针对它的不足,本文在原算法基础上对其进行了改进,改进算法步骤如下:

(1) 根据原图像尺寸进行分块处理;

(2) 利用灰度估算公式计算每一块的灰度值;

(3) 采用联合图像插值法生成可调整的背景灰度图像,其所生成的图像应该和源图尺寸一样;

(4) 用可调整的背景灰度图像代替源图像。这主要是为了抑制噪音,同时增强鲁棒性,还能克服在二值化阈值选择时引起的不均匀照明;

(5) 最后,用Ostu算法对校正图像进行二值化。

2.2 背景灰度的联合插值扩展

源图像被分成不同的区域,为了在减少计算量的同时,保持扩展后的图像质量,不同的区域要使用不同的插值算法。区域的一般分割算法需要图像分割。考虑到图像分割是更复杂,对于所有的图像没有统一的算法。本文避免了第一次图像分割,但在原图像中,要对插值点相应邻居的像素值方差进行第一次计算。如果方差小于阈值[T,]那么直接使用四个像素值[E]的平均值作为插值计算的像素值。反之,用三次插值法。方差值Var的公式如下:

[Var=(E-f11)2+(E-f12)2+(E-f21)2+(E-f22)2]

式中:[f11,][f12,][f21,][f22]是原图像当前插值点的相应邻居点的像素值。[E]是[(f11,][f12,][f21,][f22)]四个点像素值的平均值。计算[E]需要5次乘法、3次除法。计算方差需要4次乘法、7次除法。总共需要9次乘法和10次除法,相比双三次插值法中需要70次乘法和45次除法,它的总运算量要少很多。因此,尽管图像的每一点都要进行一次方差计算,相比双三次插值法的计算量,它的计算量还是少很多。对于更多的图像平滑区域来说,计算量的减少更加明显,以下实验结果证明了该算法的有效性。

选择阈值[T]是该算法关键的一步。选择阈值越小,较少的像素就避免了双三次插值,图像质量就接近双三次插值结果,但是计算量依然很大。相反,选择的阈值越大,较多的像素避免了双三次插值,会减少大量计算,但是图像会变得更加模糊。

方差Var反映了邻居像素值的平滑程度。对于不同的图像,定义一个统一的阈值标准是困难的,并且在不同的环境中,需要调整阈值来满足实际应用的需要。根据实验经验,选择阈值[T=20,]计算复杂度减少并且图像质量保持的相对比较合理。具体应用可能需要调整阈值,幅度在20上下波动,这样主要是为了得到最合理的图像。本文在实验中选择[T=20。]算法流程如图1所示。

图1 联合算法流程图

3 实验结果分析

为了证明提出算法的有效性,本文使用手机搜集了80幅QR码图。采样分辨率为640×480,分别在不同光照条件下进行采集实验,包括:普通光照、弱光照、强光照、不均匀光照条件下的图片各20幅作为实验的样本。二值化算法恢复图像如图2所示,二值化比较见表1。

表1 二值化比较表

[算法\&二值化质量 /%\&时间 /ms\&OSTU算法\&75\&86\&基于背景灰度算法\&96\&207\&本文算法\&96\&102\&]

4 结 语

本文主要研究了在QR码图像识别过程中的二值化。对于非均匀照明QR码图像,首先获取图像的背景灰度矩阵。然后根据背景灰度矩阵调整非均匀照明。最后用Ostu算法对图像进行二值化,为QR码图像预处理做准备。实验证明,在实际应用中该算法对改善二维码识别率是有用的。

图2 二值化算法恢复图像

参考文献

[1] 闫三虎,胡卫东,罗小平.改进二值化算法在QR码识别中的应用[J].计算机系统应用,2011(6):165?168.

[2] 张理想,詹小四,张修如.基于信息熵的指纹图像二值化算法[J].计算机系统应用,2010(6):148?152.

[3] ZHU K H, QI F H, JIANG R J, et al. Automatic character detection and segmentation in natural scene images [J]. Journal of Zhejiang University Science A, 2007, 8(1): 63?71.

[4] 中国物品编码中心.GB/T 18284?2000快速响应矩阵码[S].北京:中国标准出版社,2000.

[5] 郝颖明,朱枫.二维Ostu自适应阈值的快速算法[J].中国图象图形学报,2005(4):484?488.

[6] 黄婷婷.QR码识别方法研究[D].长沙:中南大学,2008.

块的大小既要能够保存细节又要能够抑制噪声。根据实验一般选取[l=116,]其中,[M]和[N]是源图像的宽和高,[l]是子块的数量。

按照以下公式计算每块的背景灰度估算值[t:]

[t=u-u+kσ]

式中:[u]为源图像的平均值,[u]和[σ]分别为每个图像块的灰度平均值和标准差;[k]是取值在0~1之间的调整因子,通过实验分析,[k=0.3]最合适[1?2]。

最后大小为[i×j]的灰度估计矩阵[R]由各个分块的背景灰度估算值求得:

[R=t11…t1f???ti1…tij]

如果区块为弱光照或者背景区,则[u]值或[σ]值较小,背景估算值[t]较小;相反,若区块强光照或者处于光照与背景的过渡区,则[u]或[σ]值较大,背景估算值[t]较大。

1.3 背景灰度矩阵扩展

对于上一步得到的灰度估计矩阵[R,]其中,每个元素的值为对应的分块估算值,并对其进行灰度扩展,扩展后的灰度矩阵与源图像的灰度矩阵大小相同,并以扩展后的矩阵作为源图像的背景估计矩阵。在灰度矩阵扩展的过程中采用双三次插值法。

1.4 调整源图像灰度并且二值化

利用源图像的灰度矩阵[Is]减去上一步得到的背景灰度扩展矩阵[Ig,]得到矫正的QR码图像灰度矩阵[Ir,]然后调整图像灰度,校正由于图像减运算引起的图像整体过暗现象。最后用Ostu对校正后图像[Ir]进行二值化:

[Ir=Is-Ig]

2 改进算法

2.1 算法介绍

基于背景灰度二值化算法对非均匀照明图像处理效果良好。然而,背景灰度矩阵扩展需要很大的计算量,与此同时也削弱了二值化算法的效率。针对它的不足,本文在原算法基础上对其进行了改进,改进算法步骤如下:

(1) 根据原图像尺寸进行分块处理;

(2) 利用灰度估算公式计算每一块的灰度值;

(3) 采用联合图像插值法生成可调整的背景灰度图像,其所生成的图像应该和源图尺寸一样;

(4) 用可调整的背景灰度图像代替源图像。这主要是为了抑制噪音,同时增强鲁棒性,还能克服在二值化阈值选择时引起的不均匀照明;

(5) 最后,用Ostu算法对校正图像进行二值化。

2.2 背景灰度的联合插值扩展

源图像被分成不同的区域,为了在减少计算量的同时,保持扩展后的图像质量,不同的区域要使用不同的插值算法。区域的一般分割算法需要图像分割。考虑到图像分割是更复杂,对于所有的图像没有统一的算法。本文避免了第一次图像分割,但在原图像中,要对插值点相应邻居的像素值方差进行第一次计算。如果方差小于阈值[T,]那么直接使用四个像素值[E]的平均值作为插值计算的像素值。反之,用三次插值法。方差值Var的公式如下:

[Var=(E-f11)2+(E-f12)2+(E-f21)2+(E-f22)2]

式中:[f11,][f12,][f21,][f22]是原图像当前插值点的相应邻居点的像素值。[E]是[(f11,][f12,][f21,][f22)]四个点像素值的平均值。计算[E]需要5次乘法、3次除法。计算方差需要4次乘法、7次除法。总共需要9次乘法和10次除法,相比双三次插值法中需要70次乘法和45次除法,它的总运算量要少很多。因此,尽管图像的每一点都要进行一次方差计算,相比双三次插值法的计算量,它的计算量还是少很多。对于更多的图像平滑区域来说,计算量的减少更加明显,以下实验结果证明了该算法的有效性。

选择阈值[T]是该算法关键的一步。选择阈值越小,较少的像素就避免了双三次插值,图像质量就接近双三次插值结果,但是计算量依然很大。相反,选择的阈值越大,较多的像素避免了双三次插值,会减少大量计算,但是图像会变得更加模糊。

方差Var反映了邻居像素值的平滑程度。对于不同的图像,定义一个统一的阈值标准是困难的,并且在不同的环境中,需要调整阈值来满足实际应用的需要。根据实验经验,选择阈值[T=20,]计算复杂度减少并且图像质量保持的相对比较合理。具体应用可能需要调整阈值,幅度在20上下波动,这样主要是为了得到最合理的图像。本文在实验中选择[T=20。]算法流程如图1所示。

图1 联合算法流程图

3 实验结果分析

为了证明提出算法的有效性,本文使用手机搜集了80幅QR码图。采样分辨率为640×480,分别在不同光照条件下进行采集实验,包括:普通光照、弱光照、强光照、不均匀光照条件下的图片各20幅作为实验的样本。二值化算法恢复图像如图2所示,二值化比较见表1。

表1 二值化比较表

[算法\&二值化质量 /%\&时间 /ms\&OSTU算法\&75\&86\&基于背景灰度算法\&96\&207\&本文算法\&96\&102\&]

4 结 语

本文主要研究了在QR码图像识别过程中的二值化。对于非均匀照明QR码图像,首先获取图像的背景灰度矩阵。然后根据背景灰度矩阵调整非均匀照明。最后用Ostu算法对图像进行二值化,为QR码图像预处理做准备。实验证明,在实际应用中该算法对改善二维码识别率是有用的。

图2 二值化算法恢复图像

参考文献

[1] 闫三虎,胡卫东,罗小平.改进二值化算法在QR码识别中的应用[J].计算机系统应用,2011(6):165?168.

[2] 张理想,詹小四,张修如.基于信息熵的指纹图像二值化算法[J].计算机系统应用,2010(6):148?152.

[3] ZHU K H, QI F H, JIANG R J, et al. Automatic character detection and segmentation in natural scene images [J]. Journal of Zhejiang University Science A, 2007, 8(1): 63?71.

[4] 中国物品编码中心.GB/T 18284?2000快速响应矩阵码[S].北京:中国标准出版社,2000.

[5] 郝颖明,朱枫.二维Ostu自适应阈值的快速算法[J].中国图象图形学报,2005(4):484?488.

[6] 黄婷婷.QR码识别方法研究[D].长沙:中南大学,2008.

块的大小既要能够保存细节又要能够抑制噪声。根据实验一般选取[l=116,]其中,[M]和[N]是源图像的宽和高,[l]是子块的数量。

按照以下公式计算每块的背景灰度估算值[t:]

[t=u-u+kσ]

式中:[u]为源图像的平均值,[u]和[σ]分别为每个图像块的灰度平均值和标准差;[k]是取值在0~1之间的调整因子,通过实验分析,[k=0.3]最合适[1?2]。

最后大小为[i×j]的灰度估计矩阵[R]由各个分块的背景灰度估算值求得:

[R=t11…t1f???ti1…tij]

如果区块为弱光照或者背景区,则[u]值或[σ]值较小,背景估算值[t]较小;相反,若区块强光照或者处于光照与背景的过渡区,则[u]或[σ]值较大,背景估算值[t]较大。

1.3 背景灰度矩阵扩展

对于上一步得到的灰度估计矩阵[R,]其中,每个元素的值为对应的分块估算值,并对其进行灰度扩展,扩展后的灰度矩阵与源图像的灰度矩阵大小相同,并以扩展后的矩阵作为源图像的背景估计矩阵。在灰度矩阵扩展的过程中采用双三次插值法。

1.4 调整源图像灰度并且二值化

利用源图像的灰度矩阵[Is]减去上一步得到的背景灰度扩展矩阵[Ig,]得到矫正的QR码图像灰度矩阵[Ir,]然后调整图像灰度,校正由于图像减运算引起的图像整体过暗现象。最后用Ostu对校正后图像[Ir]进行二值化:

[Ir=Is-Ig]

2 改进算法

2.1 算法介绍

基于背景灰度二值化算法对非均匀照明图像处理效果良好。然而,背景灰度矩阵扩展需要很大的计算量,与此同时也削弱了二值化算法的效率。针对它的不足,本文在原算法基础上对其进行了改进,改进算法步骤如下:

(1) 根据原图像尺寸进行分块处理;

(2) 利用灰度估算公式计算每一块的灰度值;

(3) 采用联合图像插值法生成可调整的背景灰度图像,其所生成的图像应该和源图尺寸一样;

(4) 用可调整的背景灰度图像代替源图像。这主要是为了抑制噪音,同时增强鲁棒性,还能克服在二值化阈值选择时引起的不均匀照明;

(5) 最后,用Ostu算法对校正图像进行二值化。

2.2 背景灰度的联合插值扩展

源图像被分成不同的区域,为了在减少计算量的同时,保持扩展后的图像质量,不同的区域要使用不同的插值算法。区域的一般分割算法需要图像分割。考虑到图像分割是更复杂,对于所有的图像没有统一的算法。本文避免了第一次图像分割,但在原图像中,要对插值点相应邻居的像素值方差进行第一次计算。如果方差小于阈值[T,]那么直接使用四个像素值[E]的平均值作为插值计算的像素值。反之,用三次插值法。方差值Var的公式如下:

[Var=(E-f11)2+(E-f12)2+(E-f21)2+(E-f22)2]

式中:[f11,][f12,][f21,][f22]是原图像当前插值点的相应邻居点的像素值。[E]是[(f11,][f12,][f21,][f22)]四个点像素值的平均值。计算[E]需要5次乘法、3次除法。计算方差需要4次乘法、7次除法。总共需要9次乘法和10次除法,相比双三次插值法中需要70次乘法和45次除法,它的总运算量要少很多。因此,尽管图像的每一点都要进行一次方差计算,相比双三次插值法的计算量,它的计算量还是少很多。对于更多的图像平滑区域来说,计算量的减少更加明显,以下实验结果证明了该算法的有效性。

选择阈值[T]是该算法关键的一步。选择阈值越小,较少的像素就避免了双三次插值,图像质量就接近双三次插值结果,但是计算量依然很大。相反,选择的阈值越大,较多的像素避免了双三次插值,会减少大量计算,但是图像会变得更加模糊。

方差Var反映了邻居像素值的平滑程度。对于不同的图像,定义一个统一的阈值标准是困难的,并且在不同的环境中,需要调整阈值来满足实际应用的需要。根据实验经验,选择阈值[T=20,]计算复杂度减少并且图像质量保持的相对比较合理。具体应用可能需要调整阈值,幅度在20上下波动,这样主要是为了得到最合理的图像。本文在实验中选择[T=20。]算法流程如图1所示。

图1 联合算法流程图

3 实验结果分析

为了证明提出算法的有效性,本文使用手机搜集了80幅QR码图。采样分辨率为640×480,分别在不同光照条件下进行采集实验,包括:普通光照、弱光照、强光照、不均匀光照条件下的图片各20幅作为实验的样本。二值化算法恢复图像如图2所示,二值化比较见表1。

表1 二值化比较表

[算法\&二值化质量 /%\&时间 /ms\&OSTU算法\&75\&86\&基于背景灰度算法\&96\&207\&本文算法\&96\&102\&]

4 结 语

本文主要研究了在QR码图像识别过程中的二值化。对于非均匀照明QR码图像,首先获取图像的背景灰度矩阵。然后根据背景灰度矩阵调整非均匀照明。最后用Ostu算法对图像进行二值化,为QR码图像预处理做准备。实验证明,在实际应用中该算法对改善二维码识别率是有用的。

图2 二值化算法恢复图像

参考文献

[1] 闫三虎,胡卫东,罗小平.改进二值化算法在QR码识别中的应用[J].计算机系统应用,2011(6):165?168.

[2] 张理想,詹小四,张修如.基于信息熵的指纹图像二值化算法[J].计算机系统应用,2010(6):148?152.

[3] ZHU K H, QI F H, JIANG R J, et al. Automatic character detection and segmentation in natural scene images [J]. Journal of Zhejiang University Science A, 2007, 8(1): 63?71.

[4] 中国物品编码中心.GB/T 18284?2000快速响应矩阵码[S].北京:中国标准出版社,2000.

[5] 郝颖明,朱枫.二维Ostu自适应阈值的快速算法[J].中国图象图形学报,2005(4):484?488.

[6] 黄婷婷.QR码识别方法研究[D].长沙:中南大学,2008.

猜你喜欢

插值法插值光照
节能环保 光照万家(公益宣传)
节能环保光照万家(公益宣传)
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
春光照瑶乡
基于Sinc插值与相关谱的纵横波速度比扫描方法
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
基于二次插值法的布谷鸟搜索算法研究
Newton插值法在光伏发电最大功率跟踪中的应用