1
工业机器视觉:基于灵闪平台的开发及应用
1.10.1.1 8.1.1 一维码
8.1.1 一维码

(1)一维码概念

一维码是由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分,“空”指对光线反射率较高的部分,这些条和空组成的数据可以表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。通常对于每一种物品,它的编码是唯一的,对于普通的一维条码来说,需要数据库建立条码与商品信息的对应关系,当条码的数据传到计算机中时,由计算机中的应用程序对数据进行操作和处理。

如图8-1所示,一个完整条码的组成次序依次为:静区(前)、起始符、数据符、(中间分隔符,主要用于EAN码)、(校验符)、终止符、静区(后)。下面为条码各个区域所表达的信息。

静区:条码左右两端外侧,与空的反射率相同的限定区域,它能使阅读器进入准备阅读的状态,当两个条码的距离较近时,静区则有助于对它们加以区分,静区的宽度通常应不小于6 mm(或10倍模块宽度)。

起始/终止符:位于条码开始和结束处的若干条与空,标志着条码的开始和结束,同时提供了码制识别信息和阅读方向的信息。

数据符:位于条码中间的条、空结构,它包含条码所表达的特定信息。

图8-1 一维码区域图

因此,普通的一维条形码在使用过程中仅作为识别信息,它的具体意义是通过在计算机系统的数据库中提取相应的信息而获得。但一维条形码几乎不可能表示汉字和图像信息,并且一维条形码编码码制较容易被不法分子获得并伪造。

一维码主要包括以下码制:

①EAN码:国际通用的符号体系,是一种长度固定、无含义的条码,所表达的信息全部为数字,主要应用于商品标识。

②39码:目前国内企业内部自定义的码制,可以根据需要确定条码的长度和信息。它编码的信息可以是数字也可以包含字母,主要应用于工业生产线、图书管理等领域。39码是目前用途广泛的一种条形码,可表示数字、英文字母以及“-”“.”“/”“+”“%”“$”等其他符号,其中“*”仅作为起始符和终止符。

③93码:一种类似于39码的条码,密度较高,能够替代39码。

④25码:主要应用于包装、运输以及国际航空系统的机票顺序编号等。

⑤Codabar码:主要应用于血库、图书馆、包裹等的跟踪管理。

⑥ISBN:主要用于图书管理。

(2)识别原理

条码的黑色条表示二进制的1,白色条代表0,宽度一般为0.33 mm的黑色条或白色条为一个基本的二进制位,一个模块宽的条(条形码黑色部分)表示二进制“1”,两个模块宽的条(黑)表示二进制“11”,一个模块宽的空(条形码白色部分)表示二进制“0”。这样,便可以用二进制的“0、1”表示信息。

在EAN码上,每一个字符(如数字1),由两个条(黑色条)和两个空(白色条)组成,条和空又分别由1—4个同宽、同颜色的模块组成。每个字符总共有7个模块宽,且每个字符从外观上都包含两个条、两个空。EAN-13码是EAN码中的一种,用13个字符表示信息,主要包含商品的名称、型号、生产厂商和所有国家地区信息等。以图8-2中的一维码为例,其下面的一行数字分别代表了不同的意义:501表示制造码,2345表示制造商代码,67890表示商品标识代码,0表示校验码。

值得注意的是,在EAN-13码中,以图形标识符表示时,第1位(如图8-2中的数字“5”)以隐式表示,即不用条和空表示,而用第二位至第七位(总共六位)的奇偶性来隐式表示。若第一位用隐式表示,那么只需要表示12(13-1=12)个字符,将12个字符分成两半,左侧6个字符,右侧6个字符。左侧字符有奇偶性,右侧字符全是偶数。左侧的奇偶性取决于隐式表示的第一位字符(前置符,即EAN-13码格式中的F1)。具体奇偶性见表8-1,E代表偶数位,O代表奇数位,如前置符0的表示——左侧6个字符都是奇数位。

图8-2 EAN-13码例图

表8-1 左侧数据符的排列结合方式

表8-2 EAN-13编码

EAN-13码最后一个字符是校验码,用来保证条形码识别的正确性。EAN-13码校验算法如下:

①从右至左,将13个字符按顺序排序。

②将第2、4、6、8、10、12等偶数位数据相加,结果乘以3,得到P。

③将3、5、7、9、11、13等奇数位数据相加,得到N。

④N 加上P 得到M。

⑤用M 除以10,取余数,再求余数以10为模的补数C。

⑥若C与校验码数值相等,则译码正确。