一种基于图像采样线灰度信息分析的一维条码识别方法

文档序号:8412840阅读:1533来源:国知局
一种基于图像采样线灰度信息分析的一维条码识别方法
【技术领域】
[0001]本发明涉及一种基于图像采样线灰度信息分析的一维条码识别方法。
【背景技术】
[0002]一个完整的一维条码由两侧静止区、起始符、数据符、校验符、终止符组成,其结构图如图1所示。它将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息。
[0003]常用的条码扫描设备通常由光源(比如激光)、光学透镜、感光器件(例如(XD,CMOS等)、解码逻辑电路和I/O接口等组件构成。简单来讲,所述光源投射光至条码上,从条码处反射的光透过所述光学透镜进入感光器件表面,经过光电转换、模数转换等一系列处理后形成条码的数字图像,然后解码逻辑电路对摄取的图像进行分析和解码。
[0004]现有的基于图像(影像)的一维条码识别方法:通过图像采集装置得到包含条码的图像,利用图像分割计算定位到条码的精确位置;根据条码方向布置采样直线,确定采样直线上的条空边界点,由此计算各条空宽度,获得条码类型和符号字符,按照各条码相应的编码规则进行解码,最终得到条码所包含的信息。
[0005]目前对采样直线上条空边界点的计算主要有两种方法:
方法一:对条码图像进行滤波、二值化等预处理,将整个图像灰度值转换为只有黑白两种像素的二值化图,条为深色像素0,空为浅色像素255,对处理后的二值化图进行扫描,条码图像黑白边界即为条空边界。然而当环境存在光照不均,划痕干扰等因素,图像二值化处理的难度会增加,处理过程中将像素值偏大的条黑点误判为白点,像素偏小的空白点误判为黑点等情况增加使结果误差变大,影响了一维条码识别的准确率。
[0006]方法二:为应对复杂工况的环境,提出了获取条空边界的新方法,将条码按水平方向投影,得到灰度投影曲线,再对灰度投影曲线进行二值化。具体介绍如下:
1、对条码图像进行相关预处理:变形的条码进行几何畸变校正处理,为提高对比度进行直方图均衡化,用高斯平滑滤波去除噪点等;
2、将条码按水平方向进行投影,获得它的灰度投影曲线。条区域投影为峰值部分,空区域投影为谷值部分;
3、确定自适应阀值,将投影曲线二值化为二值脉冲曲线。脉冲曲线的高低转折点即为条空边界点。
[0007]这种方法当条码存在变形或条码方向非水平(垂直)需要进行几何校正,在加上投影曲线的计算,增加了额外的处理步骤。最主要是这种方法对几何校正存在严重的依赖,如何条码存在一点点倾斜或变形都将影响投影曲线分布,造成条码条空信息的错误。方法二一般在需要图像校正的二维条码(PDF417)识别中使用,在一维条码识别中较少使用。

【发明内容】

[0008]本发明提供了一种提高了解码速度、提高了译码精确度、提高了译码识别度的基于图像采样线灰度信息分析的一维条码识别方法。
[0009]本发明采用的技术方案是:
一种基于图像采样线灰度信息分析的一维条码识别方法,其步骤如下:(I)根据图像分割计算找到一维条码的精确区域,构成采样区间ABCD ;
(2 )根据图像的放置位置或者其它接近方向布置一通过一维条码所有黑白条空的采样曲线b2 ;
(3)得到采样曲线b2上从采样区间AB⑶上点b21开始到点b22结束各位置上的灰度值,形成一条像素值高高低低的灰度曲线,灰度曲线波峰部分对应一维条码的白条,波谷部分对应的一维条码的黑条;
(4)对采样到的灰度曲线进行相应的处理得到黑白对应的二值脉冲曲线;当图像质量比较好,取它的平均灰度值A形成的平均灰度线,A为整条灰度曲线中所有波峰中最小灰度值和所有波谷中最大灰度值的平均值,波峰部分在平均灰度线的上部,波谷部分在平均灰度线的下部,利用平均灰度线就可把采样灰度曲线处理成二值脉冲曲线;当图像存在模糊或者光照不均的情况下采样曲线呈现a、b、c、d段的情况,b点为曲线的波谷,为一维条码的黑条区域,但灰度值偏亮,在平均灰度线的上部,而d点为曲线的波峰,对应于一维条码的白条区域,但灰度值偏低,在平均灰度线的下部,此时对灰度数据进行归一化处理,使黑条或白条灰度值均匀一些,其包括:
(a)根据条码采样曲线特性计算采样的灰度曲线的每个波峰波谷,准确的定位出条码每个条空中心位置;
(b)找整个灰度曲线中波峰灰度最大的值和波峰灰度最小值的平均值F,同理波谷灰度最小值和波谷灰度最大值的平均值E,然后将起始第一个波谷到第一个波峰段灰度映射到[E,F]区间,将第二个波谷到第二个波峰灰度映射到[E,F]区间,依次类推,得到条和空灰度均匀一致的采样灰度曲线,每个像素灰度拉伸公式为:X=(X-e)/(f-e)*(F-E)+E;X指需要灰度拉伸的像素点原来的灰度值,X为X灰度值拉伸后的像素点;
(c)对灰度变化大的段做一些处理,当波谷大于平均灰度线,此波峰波谷段往暗的部分拉伸过度,则灰度区间[E,F]改为[(E+A)/2, F],每个像素拉伸公式为X=F-(F-X)/(f-e)*(F-E'),E' = (E+A)/2 ;当波峰低于平均灰度线的情况,此波峰波谷段往灰度亮的区域过度拉伸,则将灰度区间[E,F]改为[E,(F+A)/2],此段每个像素灰度拉伸公式为:X= (x-e) / (f-e) * (F' _E) +E,F,= (F+A) /2 ;
(d)最后设平均灰度线的灰度值A为阀值将曲线处理为二值脉冲曲线;
(5)从采样的灰度曲线转化的二值脉冲曲线得到条码条空边界点,然后计算出条码条空序列的宽度,转化为条码条空单元模块宽度,查找相应一维条码的编码字符集,即可获得相应的码字。如有校验进行校验,最后解码成功。
[0010]进一步,当采样曲线b2上存在污点致使该条采样曲线获取条空宽度失败时,可继续重新对条码图像布置其它采样线,如al、a2、b I,重复步骤(2 )-步骤(5 )直至获得一条完整的一维条码。当条码某处存在污点,只要它不覆盖整个长度的条空单元,也不影响条码的识别。
[0011]进一步,当一维条码的多条采样曲线上均存在污点时,将各采样曲线上解码成功的部分相互组合形成一条完整的一维条码。
[0012]本发明有以下优点:
1、根据采集图像的原始灰度信息,得到采样直线灰度曲线,分析曲线波形得到条空宽度,获得条码相应的符号字符,进行解码。流程简单高效,能大大提高解码速度。
[0013]2、对一维条码采样灰度曲线的处理方法是通过分析大量采样灰度曲线数据而得出的,实用性和适应性好,提高了译码的精确度。
[0014]3、还充分考虑不同采样直线的信息,防止条码某处污染而引起错误,提高了译码识别率。
【附图说明】
[0015]图1是一维条码的结构图。
[0016]图2是待识别条码的采样线布置图。
[0017]图3是图2中采样曲线b2的灰度曲线图。
[0018]图4是经过本发明的方法处理后的采样曲线b2的灰度曲线图。
[0019]图5是灰度曲线二值化后与原图的对比图。
【具体实施方式】
[0020]下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些【具体实施方式】。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。
[0021]实施例一
参照2-5,一种基于图像采样线灰度信息分析的一维条码识别方法,其步骤如下:(I)根据图像分割计算找到一维条码
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1