基于EPS的一维条形码检测算法的研究与实现

一维条形码在我们的日常生活中随手可触,无处不在。从商品的包装袋上到我们使用的书本,从平时的快递货单到高科技电子产品,一维条形码已经成为不可或缺的一部分。不可否认,一维条形码给我们的生活带来了巨大的便利,而这一切正得益于条码技术的不断发展。当今条码技术迅速发展,为了跟上条码技术发展的步伐,我们就得开发出一种新的条码识别方法。在本文中,将以一维条形码为载体,开发识别算法。
因为一维条码在识别过程中,容易受黑墨分布不均匀等因素造成条与空比例不相符、没有办法进行正确识别及识别率偏低等问题。本文着重研究了基于EPS格式的一维条码检测算法,此算法可以在一定程度上减少点扩展函数对条码造成的影响,减少了硬件设备检测时造成的误差,条码识别的准确度得到了明显的提高。
关键词:数字图像处理  EPS  MATLAB  条码 M00049
Abstract:Bar code in our daily lives readily palpable everywhere. From the bags of goods to the books we use,  from the courier waybill to the high-tech electronic products ,bar code have been an indispensable part of life. Admittedly, the bar code has brought great convenience to our lives , and all this being due to the continuous development of bar code technology.Now,  the bar code technology make a fast development. In order to follow the expand of bar code technology, we have to develope a new bar code recognition. In this paper,we will use unidimensional bar code as an object, study new bar code recognition.
Because of the unidimensional bar code in the recognition process, vulnerable to the nonuniform distribution of black ink and other factors do not match the proportion of empty,have no way to identify and correct the low recognition rate and other issues.This paper focuses on the error based on the one-dimensional bar code detection algorithms EPS format, this algorithm can reduce the impact of the point spread function of the bar to some extent, reduce the hardware detection and make the precent of accuracy of bar code recognition has been significantly ameliorated .
Key words:Digital Figure Processing;EPS;MATLAB;Bar code
目  录    查看完整请+Q:351916072获取
1. 引言    1
1.1 一维条形码研究背景及意义    1
1.2 条形码识别技术国内外研究现状    1
1.3 数字图像处理技术的研究现状    1
1.4本课题的主要内容    2
2. 一维码图像的预处理    3
2.1图像分割概念    3
2.2图像的二值化    3
2.2.1二值化    3
2.2.2数学形态学的基本运算    4
2.3 图像的分割    5
2.3.1 MATLAB实现膨胀处理    5
2.3.2 MATLAB实现腐蚀处理    5
2.4图像的边缘检测    6
2.4.1边缘检测的基本原理    6
2.4.2常用的边缘检测算子    7
2.4.3 MATLAB实现边缘检测    7
3. 一维条形码的生成    9
3.1 EAN-13码的编码规则    9
3.2 校验码的计算与加入    11
3.3处理绘图生成一维码    12
4. 一维条形码的识别    13
4.1 一维条形码识别的基本原理    13
4.2 EPS文件格式简介    16
4.3 EPS格式条码译码算法研究    16
结束语    21
参考文献    22
致谢    23
附录    24
1.3 数字图像处理技术的研究现状
数字图像处理技术可以将图片信息变成计算机能够读懂的数字信息,因为有个这个有点,数字图像处理技术被运用到许多领域,比如:测控,遥感,人工智能等。数字图像处理技术有很多的无法比拟的优势,比如:再现性好,可以在计算机上再现真实的图像;处理精度极高,足以满足人们的需求;比较灵活,可以进行线性处理,也可以实现非线性处理;信息存储量大,可以尽量压缩图像的信息[4]。
在上世纪60年代因计算机技术和大规模集成电路的得到了长足发展,数字图像处理技术应运而生,理论基础不断完善起来,变成技术领域一颗耀眼的明星[5]。数字图像处理技术已经取得了巨大成就和进步,在理论和实践上都吸引全世界的目光。到了70年代中后期,计算机技术得到了迅速发展,人们开始考虑怎样利用计算机来描述、解释图像。本世纪以来,得益于计算机技术的飞速发展和计算机基础理论的不断完善,图像处理技术在图像通信、GIS、卫星图片传输及分析和人工智能等领域应用越来越多[6]。
2.2图像的二值化
2.2.1二值化
用“0”和“1”表示二值化图像信息[8]。这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。经过二值化处理过的图像,我们便可轻易识别出图像自身结构的特征,二值化可以将图呈现出明显的“黑”、“白”效果[9]。我们可以规定某一值,当大于这一值归为一类像素群,像素值可定为黑色(或者白色)小于这一值归为另一类像素群,像素值定为白色(或者黑色)。二值化是我们在进行图像处理时,不可缺少的步骤。其应用十分广泛[10]。
通过调用MATLAB提供的im2bw()来将其他类型的图像处理转换为二进制的图像格式,方法如下:
A=imread('C:\Users\TOSHIBA\Desktop\1.png');
figure,imshow(A)
J=im2bw(A);
figure,imshow(A)
title('二值化处理')
原图和二值化的结果分别如图2-1和图2-2所示
2.3 图像的分割
2.3.1 MATLAB实现膨胀处理
膨胀的算符为,B膨胀A写作AB,这里先将A和B看作是所有取值为1的像素点的集合[11]。其定义为:AB=}。
    MATLAB的代码:
I=imread('C:\Users\TOSHIBA\Desktop\1.png');
J=im2bw(I);
BW1=bwmorph(J,'dilate');
subplot(1,2,1);
subimage(J);
title('二值处理的图像');
subplot(1,2,2);
subimage(BW1);
title('膨胀处理') 查看完整请+Q:351916072获取

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/gdxx/505.html

好棒文