0 引 言
自动化数据采集技术是信息采集和处理的关键技术,条码技术在自动化数据采集中占重要地位,得到了广泛的应用。但是普遍的条码阅读器是基于激光扫描或者CCD摄像头的,在生活中不是很常见。如果条码识读能用普通的摄像头(如:手机摄像头或网络摄像头),条码将会给人们的日常生活带来更多的方便。近来手机和机器人的应用得到很大发展,手机的一维码识别、机器人的一维码识别、自动分拣物品等都有着很好的应用前景。为了拓宽一维码的应用,基于图像处理的一维条码研究有着重要意义。
在最近几年关于一维码图像识别的识别文章中,都是针对比较理想的条码进行识别的,或者只是讲解一维条码图像识别的某一个步骤,或者是人为地加上部分噪声进行处理,很少有从一幅真正拍摄的图像来识读的。这里完成了整个条码识别系统的设计和图像处理的算法设计,实现了图像的录入到译出条码的整个过程,并通过实验详细阐述了识别流程和效果。
1 EAN—13码特征
EAN一13是标准商品条码,它是一种(7,2)码,即每个字符的总宽度为7个模块,由两个条和两个空交替组成,而每个条空的宽度不超过4个模块。EAN一13商品条码由左侧空白区,起始符、左侧数据符、中间分隔符、右侧数据符、、终止符、校验符、右侧空白区组成,如图1所示。EAN一13码包含13个字符,但只对12个字符进行编码,其第13位(从右向左排序)不进行编码,数值隐含在左侧数据符的奇偶排列中,称为前置符。奇偶性指的是每个字符所含条的模块数为奇数或者偶数,左侧数据符为奇、偶排列,右侧数据符为偶排列,左边的码字组成方式是“空条空条”,右边的码字组成方式是“条空条空”。
由EAN一13条码的结构知:左侧空白区为11个模块,起始符为3个模块(3个条空),左侧数据符为42个模块(24个条空),中间分隔符为5个模块(5个条空),右侧数据符为35个模块(20个条空),检校符为7个模块(4个条空),终止符为3个模块(3个条空),右侧空白区为7个模块,整个编码区的模块数为3+42+5+35+7+3=95个,条空数为3+24+5+20+4+3=59个。若将黑色模块(条)用二进制的“1”表示,白色模块(空)用二进制的“0”表示,则数据字符的编码图案有30种,如表1所示。且有如下编码:起始符:101中间分隔符010110,终止符101。