·上一文章:基于FPGA的数据采集控制模块设计
·下一文章:基于光电对射管的健身器心率测量系统设计
如何确定数字字符是属于A子集,B子集或者C子集。EAN一13码左侧数据符由A,B子集确定,取决于前置符,右侧数据符属于C子集。前置码和左侧数据符商品条码字符集的选用规则如表2所示。
2 条码识别
在条码识别的整个过程中,都是基于以下假设:所处理的图像正中肯定是包含条码部分的,这样可以很好地减少计算量。条码识别系统分为三个模块:图像预处理、图像提取、译码。如图2所示。
图像预处理是利用一维条码的特征对条码执行灰度化,二值化,滤波和边缘检测操作。它为后续的图像提取做好准备,图像预处理做得越好,图像提取效果将更加明显。
图像提取是对预处理的图像进行分割,分为上下分割和左右分割,在各种背景中分割出条码区域,图像提取的取决于是否能精确地分割出条码区域。由于一维条码是并行长条的,每一条行扫描线都包行了条码的所有信息,最简单的方法是只要在条码图上确定一根行扫描线,逐个像素判断,黑的为1,白的为0,计入数组,然后计算宽度就能解码,这是针对完全干净的条码图的。实际应用的条码图像会有很多噪声,同时条码区域也不可能完全干净,因此需要尽量分割出条码的大部分区域给后续的解码提供更多的信息,上下分割中把沿条码方向的部分条码分割出来,左右分割需把条码的编码区全部包含在内。
译码是对提取后的条码区进行处理,计算出条码中各个条空的宽度,根据一维码的编码规则,解出条码所含的信息。
2.1 图像预处理
2.1.1 灰度化二值化
灰度处理,为实现数字图像的阈值变换提供前提条件,要将256色位图转变为灰度图,灰度与RGB值之间的关系为:Y=0.299R+0.587G+O.114B。