条形码的识别图像处理报告解析
EAN-13条形码图像的识别

后再 对 图像 进行 腐蚀 和均值 滤波操 作 , 这样 可 以进一 步消 除 图像 中一 些 非条 形 码 背景 的干扰 和 影 响 , 使 其 易 于之 后 进行 的译 码识别 ; 第二 , 对预 处理后 的 图像进行 译码 识别 , 其思 想是 利 用相 似 边距 离 来 判别 条 形码 字 符 的相 似 度 , 再 通 过 译码 并 最终得 到条形 码 图像 所代 表 的数字信 息 。实验结 果表 明 : 该E A N - 1 3条 形码 识 别方 法 可 以有 效 地解 决 条码 印刷模 糊 、
第2 5卷 第 6期 2 0 来自 5年 6月 计 算 机 技 术 与 发 展
COMP U I ER T ECHNOL OGY AND DEVEL OPME NT
Vo 1 . 2 5 No . 6
J u n e 2 0 1 5
E A N一 1 3条 形 码 图像 的 识 别
o p e r a t i o n re a a d o p t e d t o ma k e s u r e he t l i n e i ma g e i s c o n i t n u o u s . Th e n, e os r i o n o p e r a i t o n nd a me n a i f l t e in r g a l e u s e d t O c l e r a c l u t t e r b a c k — g r o u n d s . he T s e c o n d s t e p i s O t d e c o de t h e n o t a i t o n o f p r e p r o c e s s e d ba r c de o i ma g e . Fi r s t l y, l o c a t e he t b r a c o d e b y c o mp u i t n g d i s t a n c e o f
条形码识别图像处理报告

数字图像处理课程设计报告题目:基于数字图像处理的条形码识别目录一、设计任务及要求 (3)二、设计原理及设计方案 (3)2.1、条码译码原理 (3)2.2条码译码方案 (4)三、设计步骤与结果 (10)3.1设计步骤 (10)3.2结果分析 (11)四、课程设计总结 (15)五、心得体会 (15)六、参考文献 (16)附录一、源程序 (17)一、设计任务及要求本课程设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB 实现。
其中图像处理部分是条码识别重要的前期工作,利用MATLAB 强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。
条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。
二、设计原理及设计方案2.1、条码译码原理:如图1-1所示是EAN-13条码的一个字符。
条、空宽度的定义如下:图中1C 、2C 、3C 、4C 表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度。
图1-1 EAN-13条码宽度的定义设一个字符中单位模块的宽度为n ,则单位模块的宽度:n=T /7T=1C +2C +3C +4C由于条码条、空宽度1C 、2C 、3C 、4C 已知,设条码条、空分别占单位模块的个数为i m ,则:i m =i C /n(其中i 取1、2、3、4)因此,由mi 可知道条码的编码。
例如:(1)若1m =2、2m =2、3m =2、4m =1;条码的排列为条-空-条-空,则可知条码编码为1100110,是右侧偶性字符1;(2)若1m =1、2m =2、3m =1、4m =3;条码的排列为空-条-空-条,则可知条码编码为0110111,是右侧奇性字符8。
2.2条码译码方案:方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。
基于图像处理的嵌入式一维条形码识别系统研究

基于图像处理的嵌入式一维条形码识别系统研究伴随着我国信息技术的不断发展,条形码作为一种快捷,简单,方便的信息保存以及传输技术,在全球各地都得到了广泛的应用和发展。
当前条形码已经成为商品进入到国际市场当中,条形码技术的发展在一定程度上促进了设备制造业的发展,条形码识别已经从红外线技术,激光技术进入到了图像识别的时代,并且条形码拥有着非常多的优势。
本文主要分析了基于图像处理的嵌入式一维条形码识别系统的相关研究。
标签:图像处理;嵌入式;一维条形码;识别系统0 前言21世纪是一个信息化时代,信息主要指的是现代化信息技术,基于信息知识和智力的一种新型时代。
条形码技术就是信息化时代的主要产物,其在人们的日常生活当中随处可见,条形码在商品中的使用较为广泛,其能够在一定程度上给人们带来快捷,方便的购物方式,让人们在享受生活的同时还能更加的便利。
1 图像条形码识读器基于图像处理嵌入式一维条形码识读器首先就必须要研究条形码图像的采集,这方面主要涉及到了图像采集的相关知识分析。
现目前,图像传感器的元件主要包含了CMOS与CCD这两种。
其中CMOS图像传感器图像采集系統的硬件组成相对较为复杂,其开发难度相对较大,费用较为昂贵等问题。
现目前,基于CMOS传感器已经成为一种极具发展潜力的传感器。
CMOS和CCD技术是一样的其都是可以记录光线变化的半导体,这二者不同的主要是CMOS能够将图像采集信息处理单元进行集成,其在一定程度上简化了硬件的结构,并且CMOS 的制造生产工艺相对简单,造价相对低廉。
在市面上摄像头采集图像成品市场主导产品大多都是基于CMOS技术所研发的,其主要是将A/D转换成数字信号,这样在某种程度上大大的简化的其技术的开发流程,让开发人员能够更为容易的获取到完整的图像数据。
CCD图像传感器和以往的摄像管相比,其具有低耗能,仿震性能强以及相对便携等特点,其在一定程度上以最大的优点去输出图像信号这样能够便于连接上CPU进行图像信息的处理。
条码识别器原理

条码识别器原理
条码识别器是一种通过光学扫描和模式匹配算法来识别和解码条形码的设备。
它可以读取和解析条码上的信息,并将其转化为计算机可以识别和处理的数据。
条码识别器的工作原理如下:
1. 捕捉图像:条码识别器使用光学传感器或激光扫描器来捕捉条码的图像。
光学传感器会发出一束光,并接收条码上反射回来的光信号。
激光扫描器则通过激光束在条码上进行快速扫描。
2. 图像处理:捕捉到的条码图像会经过图像处理算法进行优化和增强。
这些算法可以去除图像中的噪声、调整亮度和对比度,并对图像进行模糊修复,以提高后续的条码解码准确性。
3. 条码解码:经过图像处理后,条码识别器会通过模式匹配算法来解码条码。
模式匹配算法会将图像与一个事先存储在设备内部的条码模板进行比对,以确定条码的类型和位置。
4. 数据解析:一旦条码解码成功,条码识别器会将解码出的数据转化为计算机可识别的格式,例如ASCII码或二进制码。
这样,计算机就能够读取和处理条码上的数据。
5. 输出数据:条码识别器将解码后的数据通过接口(例如USB、RS-232等)传输给计算机或其他外部设备,以供后续
处理和应用。
总之,条码识别器通过捕捉、处理和解码条码图像,将条码上的信息转化为计算机可以识别和处理的数据,实现了条码数据的自动化读取和处理。
条码识别技术实验报告(3篇)

第1篇一、实验目的1. 了解条码识别技术的基本原理和应用。
2. 掌握条码识别系统的组成和功能。
3. 熟悉条码识别软件的使用方法。
4. 提高对条码识别技术的实际操作能力。
二、实验原理条码识别技术是一种自动识别技术,通过扫描条码符号,将条码信息转换为数字信息,从而实现信息的高效采集和传输。
条码识别技术广泛应用于商品流通、工业生产、图书管理、仓储标证管理、信息服务等领域。
实验原理主要包括以下三个方面:1. 条码符号的编码规则:条码符号由黑白相间的条形和空隙组成,按照一定的编码规则编制而成。
常见的编码规则有EAN-13、UPC、Code 39、Code 128等。
2. 条码识别系统:条码识别系统主要由条码扫描器、条码识别软件和计算机组成。
条码扫描器负责采集条码图像,条码识别软件负责对条码图像进行处理和识别,计算机负责存储和管理条码信息。
3. 条码识别算法:条码识别算法是条码识别系统的核心,主要包括图像预处理、特征提取、模式识别等步骤。
三、实验设备与材料1. 实验设备:条码扫描器、计算机、条码识别软件。
2. 实验材料:各种条码标签、商品、图书等。
四、实验步骤1. 熟悉条码识别软件的操作界面和功能。
2. 将条码标签粘贴在商品或图书上。
3. 使用条码扫描器对条码标签进行扫描,采集条码图像。
4. 将采集到的条码图像导入条码识别软件。
5. 对条码图像进行预处理,包括去噪、二值化、滤波等。
6. 提取条码特征,如条码的起始符、终止符、数据符等。
7. 使用模式识别算法对条码特征进行匹配,识别条码信息。
8. 将识别结果与商品或图书的标签信息进行比对,验证识别结果。
五、实验结果与分析1. 实验结果:本次实验成功识别了多种条码标签,包括EAN-13、UPC、Code 39、Code 128等。
识别准确率达到100%。
2. 分析:(1)条码识别系统的组成和功能:本次实验使用的条码识别系统由条码扫描器、条码识别软件和计算机组成,能够满足实际应用需求。
计算机图像分析算法的探究——基于条形码的图像识别算法的研究

2
0 0 0 1 1 0 1 ( 3 2 1 1 ) 0 1 0 0 1 1 1 ( 1 1 2 3) 1 1 1 0 0 1 0 ( 3 2 1 1) 0 0 1 1 0 0 1 ( 2 2 2 1 ) O 1 1 0 0 1 1 ( 1 2 2 2) 1 1 0 0 1 1 0 ( 2 2 2 1 )
_
5 5 , 小于 改值 , 则为 0 。此 时, 可 以设置 一个 1 ~ 4之 间 ,分 为 2个 条 和 2个 空 [ 1 1 。在 编码 的时候 , 其像素值 设 为 2 将 黑色存 为 1 , 白色存 为 0 。 E AN 一 1 3商 品条码 的起 始符 、 终 止符 均 为 “ 1 O 1 ” , 中间 分 图像 的地 图数组 , 2 . 2 滤 波 因 为图像 受 到光 照 、 角度 等 各 方面 的影 Ⅱ 向, 隔符 为“ O 1 0 1 0 ” 。其他 的数据 字符 的编码 的二进制表 示 有 所 以二值 化后 的 图像 存在 一定 的毛 躁点 。中值 滤波 可 以有 三个子 集 , 如表 1 , 而括 号 中表 示 1和 0的个数 效地 去掉 毛躁 点 , 让误 差缩减 到 最低 。由于 条码 的特 殊性 , 表 1 E A N 一 1 3商品条形码编码规则 因为 它的 图像 是 竖直 方 向上一 致 , 所 以可 以采 取取 每 一列 数 字 字 符 A 子 集 B 子 集 C 子 集
3 4
0 1 1 1 1 0 1 ( 1 4 1 1 ) 0 1 0 0 0 0 1 ( 1 1 4 1 ) 1 0 0 0 0 1 0 ( 1 4 1 1) 0 t 0 0 0 1 1( 1 1 3 2 ) 0 0 1 1 1 0 1 ( 2 3 1 1 ) 1 0 1 1 1 0 0 ( 1 1 3 2)
条形码检测分析解析
分类——CCD阅读器
CCD阅读器使用一个或多个LED,发出的光线能够覆盖整个条码, 它能阅读每一个“条”或“空”,并转换成可以译码的电信号。 • 优点:与其它阅读器相比,CCD阅读器的价格较便宜,而且不象 光笔一样只能接触阅读。 • 缺点:CCD阅读器的局限在于它的阅读景深和阅读宽度,在需要 阅读印在弧型表面的条码(如饮料罐)时候会有困难;CCD的防摔性 能较差。 •
二维条形码
二维条形码/二维码是用某种 特定的几何图形按一定规律在平 面(二维方向上)分布的黑白相 间的图形。 二维码在代码编制上巧妙地 利用构成计算机内部逻辑基础的 “0”、“1”比特流的概念,使 用若干个与二进制相对应的几何 形体来表示文字数值信息,通过 图象输入设备或光电扫描设备自 动识读以实现信息自动处理。
一维/二维条形码
一维条形码(barcode)是将宽 度不等的多个黑条和空白,按照 一定的编码规则排列,用以表达 一组信息的图形标识符。 二维条码/二维码是用某种特 定的几何图形按一定规律在平面 (二维方向上)分布的黑白相间 的图形。
条形码扫描器
工作原理
分类
常用接口
光源 ↓ 光电转换接收器 ↓ 放大、整形与计数 ↓ 译码
工作原理
译码 条码扫描器根据量化后的条空宽度值进行译码,由译码单元译出其中 所含信息。各种条码符号的标准译码算法来自于各个条码符号的标准。
分类——光笔
光笔是最先出现的一种手持接触式条码阅读器,它也是最为经济 的一种条码阅读器。 • 使用时,操作者需将光笔接触到条码表面,通过光笔的镜头发出 一个很小的光点,当这个光点从左到右划过条码时,在“空”部分, 光线被反射,“条”的部分,光线将被吸收,因此在光笔内部产生一 个变化的电压,这个电压通过放大、整形后用于译码。 • 优点:与条码接触阅读,阅读条码的长度可以不受限制;成本相 对较低,内部没有移动部件,比较坚固;体积小,重量轻。 • 缺点:只有在比较平坦的表面上阅读指定密度的、打印质量较好 的条码时,光笔才能发挥它的作用;而且操作人员需要经过一定的训 练才能使用,当条码在因保存不当而产生损坏,或者上面有一层保护 膜时,光笔都不能使用;光笔的首读成功率低及误码率较高。 •
条形码的识别图像处理报告
华侨大学工学院图像通信课程设计报告题目:基于数字图像处理的条形码识别专业、班级:学生:学号:指导教师:分数:目录一、设计任务及要求 (3)二、设计原理及设计方案 (3)2.1、条码译码原理 (3)2.2条码译码方案 (4)三、设计步骤与结果 (10)3.1设计步骤 (10)3.2结果分析 (11)四、课程设计总结 (15)五、心得体会 (15)六、参考文献 (16)附录一、源程序 (17)附录二、成绩评定表 (25)一、设计任务及要求本课程设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB 实现。
其中图像处理部分是条码识别重要的前期工作,利用MATLAB 强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。
条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。
二、设计原理及设计方案2.1、条码译码原理:如图1-1所示是EAN-13条码的一个字符。
条、空宽度的定义如下:图中1C 、2C 、3C 、4C 表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度。
图1-1 EAN-13条码宽度的定义设一个字符中单位模块的宽度为n ,则单位模块的宽度:n=T /7T=1C +2C +3C +4C由于条码条、空宽度1C 、2C 、3C 、4C 已知,设条码条、空分别占单位模块的个数为i m ,则:i m =i C /n(其中i 取1、2、3、4)因此,由mi 可知道条码的编码。
例如:(1)若1m =2、2m =2、3m =2、4m =1;条码的排列为条-空-条-空,则可知条码编码为1100110,是右侧偶性字符1;(2)若1m =1、2m =2、3m =1、4m =3;条码的排列为空-条-空-条,则可知条码编码为0110111,是右侧奇性字符8。
2.2条码译码方案: 方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。
条码图像的特征提取与识别算法研究
条码图像的特征提取与识别算法研究条码是现代商品流通中最重要的标识方式之一。
条形码、二维码等不同类型的条码已经广泛应用于物流、零售等领域,并且随着物联网技术的不断发展,条码已经成为实现物品追溯、实时监控等功能的重要工具。
而对于条码图像的特征提取与识别算法研究则是实现条码自动识别的基础。
一、条码图像的特征提取方法条码图像的特征提取是条码识别领域中最关键的环节之一。
目前,常用的条码图像特征提取方法主要有以下几种:1、边缘检测边缘检测是指在条码图像中提取边缘信息,找到条码边缘的像素点。
边缘检测可通过Canny算法等多种方法实现,该方法能够有效提取出条码图像中的条形或二维码的边缘信息,从而便于后续的识别。
2、灰度共生矩阵灰度共生矩阵是一种常用的图像特征提取方法,它描述了图像中像素灰度值的频率分布情况。
通过灰度共生矩阵的计算,可以提取出条码图像中的纹理信息,应用于条形码的定位和识别。
3、Zernike矩Zernike矩是一种特征描述符,能够对图像进行全局的分析和描述。
Zernike矩在条码图像中的应用主要是为了提取条码的旋转不变性特征,能够将条形码的信息进行归一化,应用于条码的定位和识别。
二、条码图像的识别算法目前,条码图像的识别算法主要包括:1、模板匹配算法模板匹配算法是指将参考模板投影到待识别图像中,在相似度最大处定位出条码位置。
该算法的特点是简单易懂,但存在对光照变化、噪声等干扰较为敏感的缺点。
2、图像识别算法图像识别算法是指通过建模、特征提取、分类等步骤,自动识别出条码图像中的编码信息。
该算法通常需要结合机器学习、神经网络等技术,并通过不断迭代优化模型,提高识别精度。
三、条码图像的识别算法性能评价针对条码图像的识别算法,通常采用精度、召回率、F1值等指标进行性能评价。
其中,精度是指正确识别出条码数量与实际数量的比率;召回率是指正确识别出条码数量与待识别条码数量的比率;F1值是精度与召回率的加权平均值,是综合考虑两者表现的一个指标。
基于图像处理的条码识别系统-Read
基于图像处理的二维条码识别系统方案摘要 针对目前二维条码识读器仍处于发展阶段的局限性,本文设计出了一个基于图像处理的二维条码识别方案,用于实现对那些获得普遍应用的矩阵式二维条码的定位、分割和解码。
首先主要介绍了条码的定位,利用它们各自得定位图形来区分不同类型的条码;其次对分割和解码部分作了概述。
该方案通过了软件仿真实现。
关键词 二维条码; 定位; 分割; 解码; 定位图形1 概述目前好多技术已经趋于完善的光学仪器能够识读的条码都是一维条码[]1,但是一维条码在信息密度和纠错能力上有一定的局限性。
例如给定一正方形区域,把它划分成2n 模块能够存储2n 位信息,如果同样的情况下被用于一维条码,能够存储的信息量将只是n 的线性函数,其最优解是:()()⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛--=21n ,1n C log n B 2 (1) 其中()m ,n C 是从n 个条或空模块中抽取m 个的组合数目,其值远小于2n 。
(如:在n=7 时,值是()20log 2或者4.32,远小于7*7=49)[]2。
而且一维条码本身所固有的鲁棒性不是很高,因为好多一维条码都没有校验能力仅有一部分条码使用校验位,但这并不会减少误读率[]3。
为了克服这些局限性好多二维条码应运而生了,其中可以识读的信息都被存储在整个二维符号所占据的区域内。
2 二维条码简介2.1 二维条码的特点二维条码在水平和垂直方向上都包含信息,和一维条码相比有其自身优点[]4:(1)信息容量大 能够容纳数千的机器可读字符,因此被称之为完备的便携式数据文件。
并且几乎包含了自动识别技术所需要的全部信息,真正实现了对物品的描述。
(2)体积小 如果仅需要很少的信息,就可以储存在很小的面积内(如:这一方面很适合于硅晶片、电子元器件、药物标签等这些小物件)。
(3)具有检错和纠错能力 这就增强了识别的可靠性和鲁棒性。
(4)编码范围广 可以将照片、指纹、掌纹、签字、声音、文字等凡可数字化的信息进行编码(如:QR-code 可高效地表示汉字其专有的汉字模式比较适合我国应用,在我国具有良好的应用前景)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华侨大学厦门工学院图像通信课程设计报告题目:基于数字图像处理的条形码识别专业、班级:学生姓名:学号:指导教师:分数:目录一、设计任务及要求 (3)二、设计原理及设计方案 (3)2.1、条码译码原理 (3)2.2条码译码方案 (4)三、设计步骤与结果 (10)3.1设计步骤 (10)3.2结果分析 (11)四、课程设计总结 (15)五、心得体会 (15)六、参考文献 (16)附录一、源程序 (17)附录二、成绩评定表 (25)一、设计任务及要求本课程设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB 实现。
其中图像处理部分是条码识别重要的前期工作,利用MATLAB 强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。
条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。
二、设计原理及设计方案2.1、条码译码原理:如图1-1所示是EAN-13条码的一个字符。
条、空宽度的定义如下:图中1C 、2C 、3C 、4C 表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度。
图1-1 EAN-13条码宽度的定义设一个字符中单位模块的宽度为n ,则单位模块的宽度:n=T /7T=1C +2C +3C +4C由于条码条、空宽度1C 、2C 、3C 、4C 已知,设条码条、空分别占单位模块的个数为i m ,则:i m =i C /n(其中i 取1、2、3、4)因此,由mi 可知道条码的编码。
例如:(1)若1m =2、2m =2、3m =2、4m =1;条码的排列为条-空-条-空,则可知条码编码为1100110,是右侧偶性字符1;(2)若1m =1、2m =2、3m =1、4m =3;条码的排列为空-条-空-条,则可知条码编码为0110111,是右侧奇性字符8。
2.2条码译码方案: 方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。
方案二:平均值法对条码符号图像中从起始符到终止符整个宽度进行测量,然后除以95(标准宽度),求出单位模块所含的像素列宽,再分别测量各个条空的实际宽度(此宽度以单位宽度为单位计算)。
方案三:相似边距离的测量方法这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素宽度的实际测量值来判别。
前两种方案对条码图像的要求非常高,因为它们都是测量各元素符号的实际宽度,然后根据查表法得到所代表的码值。
如果实际测量值与标准值存在一点偏差,就不能实现正确译码。
而第三种方案正是有效的解决了这一问题,因此本文采用相似边距离测量的方法来实现译码功能。
下面就简要说明一下这一方法。
由原理知,要想辨识一个条码,必须先测量条码条、空宽度1C 、2C 、3C 、4C 以及一个字符的宽度T 。
条码图像经过预处理后得到的是二值图像,该点的颜色信息在阈值变换时已经定义,用255和0表示白和黑色。
我们从条码的左边开始取点,若遇到点的灰度值由255变到0即由点的颜色由白色变为黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色,则表示检测到空,记录下该点的坐标值。
这样经过扫描后得到各个颜色变化点的坐标,然后将相邻两点的横坐标相减得到各个条、空的宽度.由前面所述EAN-13条码的组成知:一个由占3个条空的起始符、3个条空的终止符、4个条空的左侧数据符、5个条空的中间分隔符、20个条空的右侧数据符、4个条空的校验符组成。
所以,整个条码字符占的条空总数为59,若条码字符没有发生几何畸变,一行扫描应记录的坐标数为60个。
而对于有几何畸变的条码图像,例如条码污染、条码断裂、条码瑕疵等,该扫描行的坐标数将肯定大于60或小于60,这时将不记录该扫描行,对此行不处理。
这样利用图像统计方法,逐行扫描图像,获取条码图像信息,比起只由一行获取信息的方式可靠性更高,这样即使个别噪声点存在并不影响图像信息的获取。
(1)条码宽度的计算:设条码字符颜色由黑变为白或由白变为黑(由“0”变为“1”或由“1”变为“0”)的各点坐标为1x 、2x 、 ……、60x 。
则一行扫描的条空宽度(像素)分别为:1c =2x -1x 、2c =3x -2x 、……、59c =60x -59x 。
由上述图像条码译码理论可总结出条码条空宽度计算步骤,如图1-2所示:图1-2 条码条空宽度计算在MATLAB 中采用读取像素的方法实现。
经过二值化后得到一个二值化图象矩阵bw 。
简单起见,可以读取矩阵bw 的中间一行,得到一个向量A 。
为了提高可靠性,我们也可逐行扫描。
[h,l]=size(bw); %得到二值图像bw 的大小A=bw(round(h/2),:);A 中只有0和1表示黑与白。
读取其中的元素,发生变化记下坐标(像素)存入另一个向量x 中,x 元素前后依次相减存入向量y 中得条码宽度。
(2)条码字符的判别—相似边距法:理论上条形码字符的逻辑值应该由条形码的实际宽度来判断,而相似边距离方法的设计思想通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由元素宽度的实际值来判别。
此种方法的优点是:即使条码质量存在缺欠,使得实际测量值和条码应该具有的理论值有较大的偏差,仍然可以根据相似边的距离能够正确解释。
图1-3给出了相似边之间的距离,则图中1t ,2t ,3t ,4t ,5t ,6t ,7t (归一化值)为条形码相似边距离。
本文采用归一化理论,用一种相似边距离归一化的方法对字符进行判别。
该方法即使条码印刷质量有偏差,仍能正确对条码进行识读。
图1-3 相似边之间的距离 图1-4 条码字符宽度示图首先见图1-4各种宽度的定义: 1C , 2C , 3C , 4C 表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度,1t ,2t 为相似边之间的距离,则用下列值i T (i=1,2)来定义1T 与2T 的归一化值。
测量7个宽度值T ,1t ,2t ,3t ,4t ,5t ,6t ;然后将测量值1t ,2t ,3t ,4t ,5t ,6t 转换为常数值1T ,2T ,3T ,4T ,5T ,6T 即T 序列值,它代表了这些测量值的整数模块宽,以下方法用于i 序列值的求取:若1.5≦i t ≦2.5,那么i T =2若2.5≦i t ≦3.5,那么i T =3若3.5≦i t ≦4.5,那么i T =4若4.5≦i t ≦5.5,那么i T =5表1-1列出了正向译码时,EAN-13条码字符值与归一化值(1T ,2T )的对应关系。
表1-1中“E”表示偶字符,“O”表示奇字符。
EAN-13码字符编码与归一化值(1T ,2T )的对应关系见表1-2。
表1-1 EAN-13条码字符与归一化值表1-2 EAN-13字符编码与归一化值可以看到条形码编码和归一化值在多数情况下呈现一一对应的关系,只要确定了归一化值就能确定字符值,但是有四种情况例外,在表1-2中知,左侧奇字符和右侧偶字符1,7归一化值均为44,左侧奇字符和右侧偶字符2,8归一化值均为33,左侧偶字符1,7归一化值均为34,左侧偶字符2,8归一化值均为43。
这两种情况可以在判别字符时根据1C ,2C ,3C ,4C 进一步判别,根据它们条空宽度特点进行判别。
有1728字符标准条空宽度值的特点知:对于左侧奇字符、右侧偶字符1和7可通过3C 与4C 作比较,3C >4C 者为字符1,反之为7;对于左侧奇字符、右侧偶字符2和8可通过2C 与3C 作比较,2C >3C 者为字符8,反之为2;对于左侧偶字符1和7可通过1C 与2C 作比较,1C >2C 者为字符7,反之为1;对于左侧偶字符2和8可通过2C 与3C 作比较,2C >3C 者为字符2,反之为8。
由上述条码字符识别理论可总结出相似边距离测量法的一般步骤。
由条码宽度的计算我们得到了各个条、空的宽度(像素),并通过计算n=T /7,T =1C +2C +3C +4C 得到单位模块的宽度(像素)。
各个条空的宽度除以单位模块的宽度就是归一化的条空宽度。
而为了方便译码,我们除去起始符3个条空,中间分隔符5个条空,终止符3个条空,对剩下的48个条空每4个条空为一组进行译码。
计算相似边之间的距离1t 、2t 从而得到归一化(1T ,2T )。
最后查表可得条码字符。
为检验译码的正确性利用校验位对码字进行校验。
流程图如图1-5 和1728判别子程序流程如图1-6。
图1-5 字符判别流程图图1-6 1728判别子程序流程图三、设计步骤与结果3.1设计步骤对于一个条码图像我们先要对其进行一定的处理才能达到正确译码的目的。
而要对其进行处理,首先是要将其读入。
由于有噪声的存在,必须对其进行滤波。
也可以人为地加入一定类型的噪声仿真,然后用合适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类型。
最后就是要二值化,得到二值图像。
条码图像预处理流程图如图1-7所示。
图1-7 条码图像预处理流程图⑴ MATLAB中利用函数imread来实现图像文件的读取操作。
图1-8是首次需要处理的条码图片。
图1-8 需要处理的条码一般情况下,通过imread函数读取的大多数图像都是8位的。
当把这些图像加载到内存中时,MATLAB就将其存储在类uint8中。
此外,MATLAB还支持16位的PNG和TIFF图像。
当用户读取这类图像时,MATLAB就将其存储在类uint16中。
而对于索引图像来说,即使图像矩阵的本身为uint8或uint16,imread 函数仍将颜色映射表读取并存储在一个双精度浮点类型的矩阵中。
例如:I=imread('008.bmp');该语句可将条码图像读入内存,并以矩阵形式存储。
⑵MATLAB的图像处理工具箱提供imnoise函数,可以用该函数给图像添加不同种类的噪声。
该函数的调用格式如下:J=imnoise(I,‘type’,parameters)表1-3列出了imnoise函数能够产生的五种噪声及其对应参数。
表1-3 imnoise函数支持的噪声种类及参数说明例如:J=imnoise(I,'salt & pepper',0.01);该语句实现在条码图像I中加入椒盐噪声。
⑶条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的影响,一些噪声将会对图像的质量产生影响。
任何一幅未经处理的原始图象,都存在一定程度的噪声干扰。
不同的噪声干扰,处理方法不同。
影响条码图像质量最典型的噪声是椒盐噪声。