基于Zbar的条形码图像识别算法制造技术

技术编号:17249195 阅读:44 留言:0更新日期:2018-02-11 07:32
本发明专利技术涉及一种基于Zbar的条形码图像识别算法,包括以下步骤:101、将源图进行图像压缩得到缩略图,根据直接识别法识别缩略图条形码;若识别成功则转到结束流程,否则执行下一程序;102、将源图进行图像增强得到增强图,根据直接识别法识别增强图条形码;若识别成功则转到结束流程,否则执行下一程序;103、将源图进行图像压缩得到压缩图,根据条码区域识别法检测压缩图的倾斜角度,然后,使用该倾斜角矫正源图和/或压缩图得到目标图,在目标图中定位矩形区域并检测条形码;若识别成功则转到结束流程,否则显示错误信息并转到结束流程;104、结束流程。本发明专利技术的递进式的条形码压缩识别算法,在速度和识别率上都优于直接识别法和条码区域识别法。

【技术实现步骤摘要】
基于Zbar的条形码图像识别算法
本专利技术涉及条形码识别
,特别是涉及一种基于Zbar的条形码图像识别算法。
技术介绍
条形码是将宽度不等的多个黑条和空白,按一定的编码规则排列,用以表达一组信息的图形标识符。随着科技的迅速发展,条形码技术日趋成熟,在商品流通的各个领域皆有应用。条形码上承载着商品的各种信息,是供应链管理的基础技术,是管理现代化的重要手段之一。对条形码的精确识别大大加快商品流通,增强企业竞争力。当前图像式条形码识别主要采取基于软件编程技术和硬件技术两种方案。与硬件识别系统相比,基于软件编程技术的识别方案具有非接触性、效率高以及成本低廉等优点,识别系统具有较好的灵活性和较低的成本,发展潜力更大。其识别方式主要有两种:其一是根据条形码编码规则,利用编码原理识别。其二是使用开源工具包识别。由于每种条形码对应一种识别算法,所以方式一的编程像中的条形码信息。当前开源工具包主要有Zbar和ZXing,都可用于多种格式条形码。ZBar工具包基于C语言编写,解码效率高,作为windows平台首选。基于Zbar工具包的识别方法有直接识别法和条形码区域识别法。直接识别法算法简单,流程可分为图片读取、灰度化以及调用Zbar识别三步,在识别较小图像时表现很好,但对于复杂图像,识别速度和准确度不佳。条形码区域识别法识别流程由图像校正、条码区域截取以及调用Zbar识别三个模块组成。条码区域法适用于所有图像,但由于流程复杂以及矫正无倾斜图像导致耗时较长。
技术实现思路
本专利技术的目的在于提供一种基于Zbar的条形码图像识别算法,可以很好地解决xx的问题。为了实现上述目的,本专利技术提供了以下技术方案:本专利技术提供一种基于Zbar的条形码图像识别算法,包括以下步骤:101、将源图进行图像压缩得到缩略图,根据直接识别法识别缩略图条形码;若识别成功则转到结束流程,否则执行下一程序;和/或102、将源图进行图像增强得到增强图,根据直接识别法识别增强图条形码;若识别成功则转到结束流程,否则执行下一程序;和103、将源图进行图像压缩得到压缩图,根据条码区域识别法检测压缩图的倾斜角度,然后,使用该倾斜角矫正源图和/或压缩图得到目标图,在目标图中定位矩形区域并检测条形码;若识别成功则转到结束流程,否则显示错误信息并转到结束流程;和104、结束流程:显示识别信息,算法结束。与现有技术相比,本专利技术具有以下优点:本专利技术的基于Zbar的条形码图像识别算法,利用直接识别法和条码区域识别法结合成一种递进式的条形码压缩识别算法,在速度和识别率上都优于直接识别法和条码区域识别法,能够在较短时间内完成条码识别,达到较高识别率。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明图1为本专利技术的实施例的流程框图;图2为本专利技术的识别法实施例流程图;图3为本专利技术的识别法实施例所采用的直接识别法流程图;图4为本专利技术的识别法实施例所采用的条码区域识别法流程图;图5为本专利技术的实施例的识别图像测试用编码图;图6为本专利技术的实施例的识别图像测试时间图。具体实施方式以下结合附图对本专利技术的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。实施例1如图1-6所示,本实施例提供一种基于Zbar的条形码图像识别算法,包括以下步骤:步骤101、按比例(第一比例值)将源图进行图像压缩得到缩略图,根据直接识别法识别缩略图条形码;若识别成功则转到结束流程,否则执行下一程序;和/或步骤102、将源图进行图像增强得到增强图,凸显源图细节,根据直接识别法识别增强图条形码;若识别成功则转到结束流程,否则执行下一程序;和步骤103、按大比例(第二比例值)将源图进行图像压缩得到压缩图,根据条码区域识别法检测压缩图的倾斜角度,然后,使用该倾斜角矫正源图和/或压缩图得到目标图,在目标图中定位矩形区域并检测条形码;若识别成功则转到结束流程,否则显示错误信息并转到结束流程;和步骤104、结束流程:显示识别信息,算法结束。本实施例中,直接识别法主要使用图像压缩和图像增强处理,分别解决耗时长以及图像模糊问题,参见图3。在进行直接识别法识别条码时,根据参数使用opencv对源图进行压缩,算法识别缩略图,减少识别耗时;算法使用拉普拉斯算子对源图进行增强,解决图像模糊。拉普拉斯算子可以很好的处理拍摄的模糊图像。拉普拉斯算子是一种二阶微分算子,一个连续的二元函数f(x,y),其拉普拉斯运算定义为:对于数字图像,拉夫拉斯算子可以简化为:g(i,j)=5f(i,j)-f(i+1,j)-f(i-1,j)-f(i,J+1)-f(i,j-1),也可以表示为卷积的形式,即式中,i,j=0,1,2,…,N-1;k=1,l=1,H(r,s)取样如下式:本实施例中,条码区域识别法首先对源图大比例压缩,检测压缩图倾斜度并矫正源图和/或压缩图得到目标图,再根据目标图定位矩形区域,使用小比例压缩图来完成条形码区域的截取,加快运行速度,参见图4。针对倾斜图像,先进行矫正得到目标图dstG。检测图像倾斜度则是矫正关键,倾斜度检测Hough变换实现。条码区域识别法的矫正源图的具体流程如下:1)为减少计算量,压缩源图得到压缩图srcC;2)为加快DFT变换速度,扩展压缩图srcC为DFT变换最佳尺寸;3)将单通道的实部和虚部mat融合成多通道的mat,存储变换结果;4)进行DFT变换并拆分其结果为实部和虚部;5)对源图进行二值化并进行Hough变换;6)获取倾斜角度矫正源图srcG和/或压缩图srcC得到目标图dstG。其中,Hough变换是从图像中识别几何形状的基本方法之一,其原理在于利用点与线的对偶性。将原始图像中曲线检测问题转化为寻找参数空间中的峰值问题。点-线对偶原理如图一所示,标准霍夫变换如等式:ρ=xcosθ+ysinθ,ρ≥0,0≤θ<2π,其中,(x,y)表示笛卡尔坐标系中的一点,(ρ,θ)表示霍夫变换参数空间中的参数,图像空间中共线的点在参数空间中相交于一点。校正后,需要从目标图dstG中定位条码所在矩形区域,对矩形区域进行识别。本实施例的定位条形码区域的处理流程如下:1)滤波降噪,对目标图进行高斯平滑滤波抑制服从正态分布的噪声;2)水平垂直梯度差,使用Sobel算子求得灰度图像梯度差;3)均值滤波,消除高频噪声;4)二值化,根据阈值进行二值化,为闭运算做准备;5)闭运算,填充条码间隙;6)腐蚀,去除背景中的孤立点;7)膨胀,填充腐蚀造成的空隙;8)区域定位,通过findContours定位条形码区域的矩形边界。其中,通过对灰度图像二值化处理,能够凸现出感兴趣目标的轮廓。为得到理想二值图像,本实施例采用改进的OTSU算法进行二值化:先求出图像每个不连续局部的最佳阈值,并求出此时最大类间方差,然后比较局部最大类间方差,找出其中最大局部类间方差所对应的阈值,即全局最优阈值。二值化的具体流程如下:1)计算图像的直方图;2)计算灰度级个数为0的灰度级L,存储在数组a[m]中,其中min(image)<L<max(image),min(image)最小灰度值,max(image)为最大灰度值;3)初始变量:初始最优目标值g=0;初始最优阈值T=min(im本文档来自技高网...
基于Zbar的条形码图像识别算法

【技术保护点】
一种基于Zbar的条形码图像识别算法,其特征在于,包括以下步骤:101、将源图进行图像压缩得到缩略图,根据直接识别法识别缩略图条形码;若识别成功则转到结束流程,否则执行下一程序;和/或102、将源图进行图像增强得到增强图,根据直接识别法识别增强图条形码;若识别成功则转到结束流程,否则执行下一程序;和103、将源图进行图像压缩得到压缩图,根据条码区域识别法检测压缩图的倾斜角度,然后,使用该倾斜角矫正源图和/或压缩图得到目标图,在目标图中定位矩形区域并检测条形码;若识别成功则转到结束流程,否则显示错误信息并转到结束流程;和104、结束流程:显示识别信息,算法结束。

【技术特征摘要】
1.一种基于Zbar的条形码图像识别算法,其特征在于,包括以下步骤:101、将源图进行图像压缩得到缩略图,根据直接识别法识别缩略图条形码;若识别成功则转到结束流程,否则执行下一程序;和/或102、将源图进行图像增强得到增强图,根据直接识别法识别增强图条形码;若识别成功则转到结束流程,否则执行下一程序;和103、将源图进行图像压缩得到压缩图,根据条码区域识别法检测压缩图的倾斜角度,然后,使用该倾斜角矫正源图和/或压缩图得到目标图,在目标图中定位矩形区域并检测条形码;若识别成功则转到结束流程,否则显示错误信息并转到结束流程;和104、结束流程:显示识别信息,算法结束。2.根据权利要求1所述基于Zbar的条形码图像识别算法,其特征在于,所述步骤101中,使用opencv对源图进行图像压缩。3.根据权利要求1所述基于Zbar的条形码图像识别算法,其特征在于,所述步骤102中,使用拉普拉斯算子对源图进行图像增强。4.根据权利要求3所述基于Zbar的条形码图像识别算法,其特征在于,所述拉普拉斯运算定义为:简化为:式中,i,j=0,1,2,…,N-1;k=1,l=1,H(r,s)取样如下式:5.根据权利要求1所述基于Zbar的条形码图像识别算法,其特征在于,所述步骤103中,矫正源图的具体流程如下:1)将源图压缩得到压缩图;和/或2)将压缩图扩展为DFT变换的最佳尺寸;和3)将单通道的实部和虚部mat融合成多通道的mat,存储变换结果;和4)进行DFT变换并拆分其结果为实部和虚部;和5)对源图进行二值化并进行Hough变换;和6)获取倾斜角度矫正源图或压缩图得到目标图。6.根据权利要求1所述基于Zbar的条形码图像识别算法,其特征在...

【专利技术属性】
技术研发人员:郑德生
申请(专利权)人:四川元匠科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1