条码检测系统——基于MATLAB的一维条码识别
摘 要:条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。由我国目前发展现状来看,条码的正常使用受到条形码印刷质量和商品运输过程的影响,并且传统的条码识读方式是采用光电识读器,条码图像对光的不同反射效果也必然会对条码的识读产生影响,而一般条码在搬运过程中条码会不可避免的破损,所以对质量较差的条码的条码的识别尤为重要。
不同的条码有着不同的识读过程。本设计研究一种基于图像处理方式的识读方法,通过计算机辨识来解决条码印刷质量不佳和条码变形等问题。该方法是采用摄像头采集条码图像,通过照相采集条码图像的方法避免了线性扫描器逐行扫描所产生的问题,同时简化了扫描条码图像的操作。然后通过一定的数字图像处理算法处理进行译码。译码算法主要分为两部分:第一部分首先对采集的条码图像进行预处理,图像的预处理包括图像分割,图像滤波等,良好的图像处理将对后面实现正确译码有重大贡献;第二部分就是对预处理后的条码图像进行译码,我们根据相似边距离来判别条码字符,再通过译码、校验、纠错处理来识读条码,得到条码所表示的文本信息。与用条码识读器硬件进行译码相比,软件译码具有更大的灵活性和较低的成本,所以具有很大的市场空间。借助于matlab软件的功能我们完成这次译码工作。
关键词:图像处理 图像分割 条形码识别 EAN-13 相似边距识别 图像滤波Matlab
The System Of Bar-Code Examination
—— 1D Bar-Code recognition based on MATLAB
Abstract: Nowadays Bar-Code is a very popular technique ofidentification and input. It has been taken serious because of it’s large information and low error rate. It develops very quickly and has already been applied in industry,忽略merce,publishing,medical sanitation and so on. It can be seen from the actualities in our country that the use of Bar-Code is influenced by the printing quality and goods transportation, and besides, the traditional mode of recognition is using optical scanner so that the recognitinon will be consequentially affected by the different reflection of code image by the light. The general course of the removal barcode bar code will inevitably damage, so poor quality bar code bar code identification is particularly important.
Different Bar-Code has different recognition process. This paper researches into a method based on digital image processing mode to resolve the problems of poor printing quality and code distortion, which uses the vidicon to take pictures of code images so as to avoid the traditional questions brought by the line-by-line scanning. And then applies the digital image processing algorithms to recognize the code, which includes two steps: the first is image pretreatments, the second is using statistic method and the distance of edge to similar edge method to recognize the code character. 忽略paring with decoding with special Bar-Code identification hardware, decoding with software is more flexible, and the cost is also 忽略paratively low. Hence, Bar-Code has a very clear future of development. This research is realized by Matlab.
Key word: image processing, Bar-Code recognition, EAN-13, the distance of edge to similar edge, image filters, Matlab
目 录
第1章 引言................................................................01
1.1 条码技术概述.........................................................01
1.2 Matlab应用图像处理...................................................02
1.3本文的研究意义及内容..................................................03
1.3.1 研究意义.................................................03
1.3.2 研究内容及本文的组织安排.................................04
第2章 一维条码技术........................................................05
2.1 一维条码的简介.......................................................05
2.2 一维条码符号的结构...................................................05
2.3 EAN码简述............................................................06
2.4 EAN-13码符号的特征..................................................07
2.4.1 EAN-13码字符集...........................................08
2.4.2 EAN-13码符号结构.........................................09
2.5 EAN-13码的校验纠错..................................................11
第3章 条码图像的预处理............................. ......................12
3.1 图像分割理论.........................................................12
3.1.1 图像分割的定义...........................................12
3.1.2 图像分割的算法类.........................................13
3.1.3 图像分割结果.............................................14
3.2 图像灰度及二值化...............................................15 3.3 图像加噪仿真...........................................................16
3.3 图像的滤波. ....................................................16
3.3.1 图像的平滑滤波...........................................16
3.3.2 形态学滤波...............................................17
第4章 条码的译码方法......................................................20
4.1 译码方案的选择..................................................20
4.2 相似边距法介绍..................................................21
4.3. 条码字符的判别.................................................22
第5章 条码译码的基本原理..................................................25
5.1 EAN_13的译码原理分析............................................25
5.2译码结果分析.....................................................26 第6章 结论................................................................28
参考文献...................................................................30
附录.......................................................................36
第1章 引 言
1.1 条码技术概述
在信息时代的今天,计算机的应用己和我们的生活紧密地联系在一起。计算机快速准确的信息处理速度,给工农业生产、经营管理以及人们的日常生活等方面都带来了巨大的效益。可以说计算机的出现、普及和应用加速了社会发展进程。然而,在运用计算机进行信息处理时,面临的一个重要问题是如何提高信息输入速度问题,使之与计算机的高速运算能力相匹配。只有解决这个问题,才能发挥计算机高速处理信息的能力。因此,要求有一种简单、易行、廉价、高速的输入技术,条形码技术正是具备这一特征,因而它为世界各国所重视,并获得极大的发展。
条码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,条码应用技术就是应用条码系统进行的信息处理技术。条码技术的研究始于20世纪中期,是继计算机技术应用和发展应运而生的。随着70年代微处理器的问世,标志着“信息化社会”的到来,它要求人们对社会上各个领域的信息、数据实施正确、有效、及时的采集、传递和管理。因此如何代替人的视觉、人的手工操作、或者在复杂的环境中正确、迅速地获取信息并加以识别,成为人们普遍关心和有关人员精心研究的课题。
通俗的说条形码是指在浅色衬底上印有深色矩形的线条(也称条码)排列而成的编码,其码条和空白条的数量和宽度按一定的规则(标准)排列。条形码是由一组规则排列的条、空、相应的数字组成。这种用条、空组成的数据编码可以供机器识读,而且很容易译成二进制数和十进制数。这些条和空可以有各种不同的组合方法,构成不同的图形符号,即各种符号体系,适用于不同的应用场合。条码系统是由条码符号设计、制作及扫描阅读组成的自动识别系统。微电子技术和激光技术的发展使得条码识别系统越来越受到人们的关注。条码是迄今为止最经济、实用的一种自动识别技术。条码技术具有以下几个方面的优点:
1、可靠准确。有资料可查键盘输入平均每300个字符一个错误,而条码输入平均每15000个字符一个错误。如果加上校验位出错率是千万分之一。
2、数据输入速度快。 与键盘输入相比较,用条形码扫描读入电脑的速度大约是键盘输入的100倍,并且能够实现“即时数据输入”,一个每分钟打90个字的打字员1.6秒可输入12个字符或字符串,而使用条码,做同样的工作只需0.3秒,速度提高了5倍。
3、经济便宜。与其它自动化识别技术相比较,推广应用条码技术,所需费用较低。
4、灵活、实用。条码符号作为一种识别手段可以单独使用,也可以和有关设备组成识别系统实现自动化识别,还可和其他控制设备联系起来实现整个系统的自动化管理。同时,在没有自动识别设备时,也可实现手工键盘输入。
5、自由度大。识别装置与条码标签相对位置的自由度要比OCR大得多。条码通常只在一维方向上表达信息,而同一条码上所表示的信息完全相同并且连续,这样即使是标签有部分缺欠,仍可以从正常部分输入正确的信息。
6、设备简单。条码符号识别设备的结构简单,操作容易,无需专门训练。
7、易于制作,可印刷,称作为“可印刷的计算机语言”。条码标签易于制作,对印刷技术设备和材料无特殊要求。
证因为条码具有上述迅速,准确,廉价,使用方便,适应性强等优点,克服了其他输入方法的不足,所以他在各个行业中的发展可谓突飞猛进,最初应用于物流管理,最引人注目的是pos系统,它使商店的定货管理,盘点,库存管理,库存查询,验货管理,收款等各项工作得到极大地提高。目前已经应用到计算机自动化的各个领域,包括质量跟踪,仓储管理,物资管理,票证管理,人流物流管理,图书文献检索,医疗卫生,邮电系统,安全检查等领域。
1.2 Matlab应用图像处理
Matlab图像处理工具是由Math Works公司推出的用于数值计算的有力工具,它具有相当强大的矩阵运算和操作功能,力求人们摆脱繁杂的程序代码。Matlab图像处理工具箱提供了丰富的图像处理函数,灵活运用这些函数可以完成大部分图像处理工作。可以分为图像处理概述、图像显示、图像运算、图像滤波、和二值形态学等方面。应用部分包括图像空间变换、图像增强、图像复原、图像编码、图像分析等。
图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。主要包括下面几方面:
(1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp,tif、tiff、pcx 、jpg 、gpeg 、hdf、xwd等格式图像文;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。
(2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性算。例如,conv2(I,J)实现了I,J两幅图像的卷积。
(3) 图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换(FFT) 、离散余弦变换 (DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。
(4) 图像的分析和增强。针对图像的统计计算MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。
(5) 图像的数学形态学处理。针对二值图像,MATLAB 提供了数学形态学运算函数;蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等丰富的数学形态学运算。
1.3 本文的研究意义及内容
1.3.1 研究意义
条形码技术主要研究如何用条码标识信息、并将条形码表示的信息转换成计算机可识读的语言,以实现自动输入、自动识读、自动统计.在先进的工业国家里,条码技术作为一种信息处理技术己成为社会化产物,不仅应用于生产过程,而且也应用于管理过程。在我国条码技术起步比较晚,但它的发展非常迅速,己被广泛用于工业、商业、图书出版、医疗卫生等各行各业。随着全球经济贸易体系的形成,将被更广泛用于其它领域。现在,它已变成商品进入国际市场的通行证.但是,由我国目前发展现状来看,主要有两种因素影响条码正常使用。首先条形码在印刷中存在许多质量问题,据1998年4月桂林条码工作会议公布的数字表明,我国商品条码不合格率达20%--30%,使大量名牌产品、优质产品不能进入超级市场(POS商店)。条码印刷质量对其能否正常使用是至关重要的,质量低劣出现扫描误读,不仅造成不必要的经济损失,而且将大大影响了工作效率。其次,运输过程中造成的条码磨损、断裂和脏污是影响条码正确误读的另一个重要的因素。
目前,市场上普遍采用的条形码识读装置是光电识读器。由一般条码识读器的原理可知:条形码的宽窄和颜色的对比度都会对光的反射产生影响,不可避免的会影响到条码正确识读;此外,由于光电识读器采用线扫描方式,斑点、脏污和纸面断裂也会造成反射光的差异,相应的对条码识读也必然会产生影响。因此,一方面条码标准化工作需要大力加强;另一方面研制有一定的辨识能力的条码阅读装置具有十分重要的现实意义。条码图像辨识在一些特殊情况下将发挥着极大的优势。图像处理识读方法是首先对条码图像进行处理,然后利用统计方法,根据相似边距离来判别条码字符,再通过译码、校验、纠错处理来识读条码,这样将大大降低条码印刷质量以及条码污染等各种因素的干扰,从而有效地提高条码的识读率。
1.3.2 研究内容及本文的组织安排
自从20世纪70年代以来,由于数字计算机技术迅猛发展给图像处理技术提供了技术手段,图像处理技术被广泛应用于国民经济的各个部门,并逐步深入人们生活。到目前为止,通过各种信息检索,有关图像处理技术用于一维条形码识读方面的技术成果及参考资料还没有发现。尽管以前关于条码识读的设备很多,但都是针对光电处理而言的。因此,通过图像处理识别条码是一种新的尝试,而条码图像识读算法的研究正是在该情况下的理论探索,本文所研究的是基于图像处理方式的条码的识别工作,具体工作如下:
1 研究印刷质量对条码的影响,通过辨别解决条码印刷质量不佳的问题。
2 针对条码图像特点,确立相应的图像处理算法,对采集的条码图像进行预处理,该部分的算法包括对条码图像进行定位 分割,对图像除噪滤波等以有效提取条码图像信息,为后面实现正确译码做准备。
3 通过计算机仿真的方法加入噪声,生成干扰图像,用此对图像预处理算法进行检索。
4 对预处理的条码的图像进行译码,利用统计方法,归一化理论,根据相似边距来判别字符。
第二章 一维条码技术
2.1 一维条码简介
条码由一组规则排列的条,空及相应的字符组成。条码的信息靠条和空的不同宽度不同位置来传递的,信息量的大小事由条码的宽度和印刷的精度来决定的,条码越宽,包容的条和空越多,传递的信息量也越大,条码印刷的精度越高单位长度内可以容纳的条空也越多,传递的信息量也越大。这种用条空组成的数据编码很容易供机器识读,而且很容易已成二进制和十进制的数。
<