基于数字图像处理的条形码识别方法(第四组)
基于数字图像处理的条形码识别方法(第四组)讲解
五、未来发展方向
1、由于条形码种类繁多,所以有待对其他编码方式的条形码进行分析, 从而更有效的提高条码识别效果。
2、在条码识别过程中,精确度有待经一部提高,所以如何提高边缘识 别、精度,需做更深一步的研究,以便更有效的提高条码的识别率。
3、由于二维条码图像的存储数据量有限,在下一部研究中,分析图像 压缩原理,使二维码图像存储数据量进一步提高,一次更加便携的应用 到实际生活中。
3、译码结果与分析
译码结果:
通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、 效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条 码仍能正确识读。可见,影响条码识别效果的不仅仅是条码图像预处理 效果,译码方法更是不可忽视的重要原因,相似边距离测量方法有着其 它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别, 而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍 然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。
3、具体译码步骤:
图中t1、t2、t3、t4、t5、t6、t7为归一化值条形码相似边距离。 C1、C2、C3、C4表示每个字符中四个相邻条、空的宽度,T表示一个字 符的宽度,T1、T2为相似边之间的距离。
相似边之间的距离
条码字符宽度
然后将测量值t1、t2、t3、t4、 t5、t6、t7转换为常数值T1、T2、 T3、T4、T5、T6、T7即归一化 的序列值,它代表了这些测量值 的整数模块宽,以下方法用于i 序列值的求取:
2、相似边距法译码
译码流程如图所示
EAN-13条码由占3个条空的起始 符、3个条空的终止符、4个条空的左侧 数据符、5个条空的中间分隔符、20个条 空的右侧数据符、4个条空的校验符组成。 所以,整个条码字符占的条空总数为59, 若条码字符没有发生几何畸变,一行扫 描应记录的坐标数为60个。而对于有几 何畸变的条码图像,例如条码污染、条 码断裂、条码瑕疵等,该扫描行的坐标 数将肯定大于60或小于60,这时将不记 录该扫描行,对此行不处理。这样利用 图像统计方法,逐行扫描图像,获取条 码图像信息,比起只由一行获取信息的 方式可靠性更高,这样即使个别噪声点 存在并不影响图像信息的获取。
条形码的识别图像处理报告解析
华侨大学厦门工学院图像通信课程设计报告题目:基于数字图像处理的条形码识别专业、班级:学生姓名:学号:指导教师:分数:目录一、设计任务及要求 (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条码译码方案: 方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。
条形码识别图像处理报告
数字图像处理课程设计报告题目:基于数字图像处理的条形码识别目录一、设计任务及要求 (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条码译码方案:方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。
Python识别处理照片中的条形码
Python识别处理照⽚中的条形码最近⼀直在玩数独,突发奇想实现图像识别求解数独,输⼊到输出平均需要0.5s。
整体思路⼤概就是识别出图中数字⽣成list,然后求解。
输⼊输出demo数独采⽤的是微软⾃带的Microsoft sudoku软件随便截取的图像,如下图所⽰:经过程序求解后,得到的结果如下图所⽰:def getFollow(varset, terminalset, first_dic, production_list):follow_dic = {}done = {}for var in varset:follow_dic[var] = set()done[var] = 0follow_dic["A1"].add("#")# for var in terminalset:# follow_dic[var]=set()# done[var] = 0for var in follow_dic:getFollowForVar(var, varset, terminalset, first_dic, production_list, follow_dic, done)return follow_dicdef getFollowForVar(var, varset, terminalset, first_dic, production_list, follow_dic, done):if done[var] == 1:returnfor production in production_list:if var in production.right:##index这⾥在某些极端情况下有bug,⽐如多次出现var,index只会返回最左侧的if production.right.index(var) != len(production.right) - 1:follow_dic[var] = first_dic[production.right[production.right.index(var) + 1]] | follow_dic[var]# 没有考虑右边有⾮终结符但是为null的情况if production.right[len(production.right) - 1] == var:if var != production.left[0]:# print(var, "吸纳", production.left[0])getFollowForVar(production.left[0], varset, terminalset, first_dic, production_list, follow_dic,done)follow_dic[var] = follow_dic[var] | follow_dic[production.left[0]]done[var] = 1程序具体流程程序整体流程如下图所⽰:读⼊图像后,根据求解轮廓信息找到数字所在位置,以及不包含数字的空⽩位置,提取数字信息通过KNN识别,识别出数字;⽆数字信息的在list中置0;⽣成未求解数独list,之后求解数独,将信息在原图中显⽰出来。
条形码的识别图像处理报告
华侨大学工学院图像通信课程设计报告题目:基于数字图像处理的条形码识别专业、班级:学生:学号:指导教师:分数:目录一、设计任务及要求 (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条码译码方案: 方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。
基于图像处理的QR码的识别和译码系统
毕业论文(设计)论文(设计)题目:基于图像处理的QR码的识别和译码系统系别:专业:学号:姓名:指导教师:时间:毕业论文(设计)开题报告系别:计算机与信息科学系专业: 网络工程学号姓名刘鹏显论文(设计)题目基于图像处理的QR码的识别和译码系统命题来源□√教师命题□学生自主命题□教师课题选题意义:众所周知,一维的条形码经过十几年的发展,其应用从超市、便利店为代表的商品管理开始,已经成为各行业有效的信息输入手段,然而随着信息化的急速发展,一些新的需求显现出来:收纳更多的信息、印刷在更小的空间里。
随着网络的高速发展,表面上看,企业间的信息交换和共享—电子数据交换所需的网络基础设施已经建立,但实际上由于互联网协议以及安全等问题,短期内还无法用互联网进行数据交换,因此需要使用二维码进行纸面上电子数据交换的行动。
二维码正是为了适应这样的需求而开发的,QR码具有高密度、大容量、纠错能力强等特点,拓宽了应用领域。
现在二维码的应用越来越广泛,其应用与手机网络除了可以用来扫描名片,管理个人联络电话能力之外,还可以拿来网络购物、实现手机的自动上网、还可以实现结账时的数据处理,又或者是以QR码代替入场券等等。
二维条码的广泛应用必将带来条码识别技术的新要求和新问题。
比如需要在图像采集失真,图像背景更复杂,图像变形严重等情况下还能很好的识别并解码二维条码。
这对研究二维条码技术的广大科研人员既是挑战也是动力。
研究综述:条形码技术是集条码理论、光电技术、计算机技术、通信技术等技术于一体的综合性技术,起源于20世纪40年代。
它具有输入速度快、可靠性高、采集信息量大、成本低等特点,近年来发展十分迅速,在国际上广泛应用于商品流通、物流仓储、信息服务等各个领域,极大地提高了生产效率。
近几年,另一个广泛得到普及的领域就是手机。
自90年代初以来,无线移动技术和市场应用得到飞速发展和成功。
从寻呼机到目前3G手机的面市,中国人已经习惯了手中的移动手机不停地变化。
基于图像处理的条码识别系统-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 可高效地表示汉字其专有的汉字模式比较适合我国应用,在我国具有良好的应用前景)。
基于快速面阵相机与图像处理的条码识别算法
基于快速面阵相机与图像处理的条码识别算法刘勇【摘要】为了解决条码模糊、缺损和变形而导致其难以识别的问题,提出了基于快速面阵相机与图像处理的条码识别算法.首先,针对工程读码速度要求进行分析,提出高帧率相机取像,完成视觉系统设计,并搭建打光平台,达到对条码快速成像目的.其次,利用Sobel边缘检测得到条码轮廓,判断条码旋转角度,利用旋转校正方法,完成条码校正.最后,基于开源库DeCode,完成条码解码,并对各种码制、不同种类干扰进行测试.实验测试结果表明,与当前读码技术相比,此算法拥有更高的读码成功率与鲁棒性.【期刊名称】《廊坊师范学院学报(自然科学版)》【年(卷),期】2017(017)001【总页数】5页(P42-46)【关键词】条码识别;快速面阵;视觉系统;Sobel边缘检测;图像处理【作者】刘勇【作者单位】安徽广播电视大学滁州分校,安徽滁州239000【正文语种】中文【中图分类】TP391随着“工业4.0”、“中国制造2025”和“智能制造”概念的深化和实践,在当下制造行业竞争日益激烈的背景下,利用先进信息处理技术,实现低成本高品质制造已经是必然趋势[1,2]。
制造流水线每天有数以万计的产品,对这些产品的制造过程进行信息化履历管理,是实现工厂大数据的基础。
其中最重要的就是产品的条码,这是令产品唯一化的标签,在不同工位扫描入口时,首先必须记录的是条码。
以往工厂普遍采用昂贵的读码器,主流品牌如:基恩士、Datalogic、康耐视等商业专用读码器,这种对应方式无疑提高了企业的运行成本。
因此,有些厂家的自动化部门自己研发基于相机和图像识别的读码系统,在一些简单应用环境下,取得了一定成绩,但是当条码存在遮挡、缺损等干扰情况时,往往会大幅度降低系统读码成功率。
另外,制造企业产量任务重,产品流速快,很多工位不允许产品条码静止停顿数秒供读码系统处理,这往往使读码系统不能采集到稳定的条码图像,同样影响系统解码的成功率。
基于数字图像处理条形码识别方法第四组
基于数字图像处理条形码识别方法第四组一、概述条形码是一种广泛应用于商品管理、条目跟踪等领域的编码系统。
它使用了计算机可读的线条和空格来表示数字,用于快速识别和记录信息。
由于条形码图像本质上是一种数字信号,因此数字图像处理技术可用于条形码的识别和解码。
本文总结并比较了几种基于数字图像处理的条形码识别方法。
二、方法1.灰度化和二值化灰度化和二值化是大多数条形码识别算法的前置处理步骤。
灰度化将RGB彩色图像转化为灰度图像,将图像的亮度信息提取出来,方便后续处理。
二值化将灰度图像转化为二值图像,将灰度值低于一定阈值的像素点置为0,高于阈值的像素点置为255。
这种处理方法可以增强条形码与背景之间的对比度,方便后续处理。
2.直方图均衡化直方图均衡化是一种用于增强图像对比度的处理方法,它通过重新分配图像像素的亮度值来扩展图像灰度级范围。
这种方法可以增强条形码的边界,使其更容易识别和解码。
3.边缘检测边缘检测是一种常见的数字图像处理技术,用于检测图像中物体的边缘信息。
对于条形码,可以通过边缘检测来提取条形码的条纹信息。
常用的边缘检测算法有Sobel、Prewitt以及Canny等。
4.条纹检测条纹检测是条形码识别的关键步骤。
在条形码图像中,每个条纹的宽度和颜色是确定的,因此可以通过先验知识来检测条纹。
一种通用的条纹检测方法是基于Hough变换的方法,它可以通过检测正弦形式的边缘曲线来检测条纹。
5.条纹定位和分割当条纹被检测到之后,需要进一步确定其位置和分割出每个条纹。
这可以通过一些几何变换技术,如投影变换和极坐标变换等来实现。
分割后的每个条纹可以被编码为黑白序列,通过解码这个序列得到条形码所表示的信息。
三、比较不同的条形码识别方法各有优缺点。
例如,梯度算法可以处理低对比度的图像,但在噪声较多的情况下容易误识别;Hough变换方法可精确定位条纹,但在大量噪声和变形的情况下易出错。
因此,选择适合具体场景的算法至关重要。
条形码识别图像处理报告解析
华侨大学厦门工学院图像通信课程设计报告题目:基于数字图像处理的条形码识别专业、班级:学生姓名:学号:指导教师:分数 :目录一、设计任务及要求 (3)二、设计原理及设计方案 (3)2.1 、条码译码原理 (3)2.2 条码译码方案 (4)三、设计步骤与结果 (10)设计步骤 (10)结果分析 (11)四、课程设计总结 (15)五、心得体会 (15)六、参考文献 (16)附录一、源程序 (17)附录二、成绩评定表 (25)一、设计任务及要求本课程设计研究的是基于数字图像处理的EAN-13 条形码识别算法,通过工具平台MATLAB实现。
其中图像处理局部是条码识别重要的前期工作,利用MATLAB强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。
条码识别就是在二值图像的根底上实现,二值图像的质量直接关系到条码能否正确识读。
二、设计原理及设计方案2.1 、条码译码原理:如图 1-1 所示是 EAN-13 条码的一个字符。
条、空宽度的定义如下:图中C1、C2、 C3、 C4表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度。
图 1-1 EAN-13 条码宽度的定义设一个字符中单位模块的宽度为n,那么单位模块的宽度 :n=T /7T= C1+ C2+C3 +C4由于条码条、空宽度C1、 C2、 C3、 C4,设条码条、空分别占单位模块的个数为 m i,那么:m i=C i/n(其中i取1、2、3、4)因此,由 mi 可知道条码的编码。
例如:〔1〕假设m1 =2、m2 =2、m3 =2、m4 =1;条码的排列为条 -空-条 -空,那么可知条码编码为1100110,是右侧偶性字符1;〔2〕假设m1 =1、m2 =2、m3 =1、m4 =3;条码的排列为空 -条-空 -条,那么可知条码编码为0110111,是右侧奇性字符8。
2.2 条码译码方案:方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条 /空宽度,从而确定整个条码符号所代表的信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
译码流程如图所示
3、具体译码步骤:
图中t1、t2、t3、t4、t5、t6、t7为归一化值条形码相似边距离。 C1、C2、C3、C4表示每个字符中四个相邻条、空的宽度,T表示一个字 符的宽度,T1、T2为相似边之间的距离。
相似边之间的距离
条码字符宽度
然后将测量值t1、t2、t3、t4、 t5、t6、t7转换为常数值T1、T2、 T3、T4、T5、T6、T7即归一化 的序列值,它代表了这些测量值 的整数模块宽,以下方法用于i 序列值的求取:
02
03
04
05
未来发展方向
一、课题简介
课题名称:基于数字图像处理的条形码识别方法
不同的条码有着不同的识读过程。本组研究的是一种基于图像处理 方式的识读方法,该方法是采用摄像头采集条码图像,一次性采集条码 图像的方法避免了线性扫描器逐行扫描所产生的问题,同时简化了扫描 条码图像的操作。然后通过一定的数字图像处理算法处理进行译码。译 码算法主要分为两部分:第一部分首先对采集的条码图像进行预处理, 这将为后面实现正确译码打下基础;第二部分就是对预处理后的条码图 像进行译码,利用统计方法、根据相似边距离来判别条码字符,再通过 译码、校验、纠错处理来识读条码,得到条码所表示的文本信息。软件 译码具有更大的灵活性和较低的成本,因此具有很大的发展潜力。
2、预处理结果与分析
根据上述条码图像预处理的理论知识编译相关的MATLAB程序, 得到如图3.1.2所示图像预处理结果。
结果分析:噪声影响条码图像的质量,从而影响条码
的正确识读。而要想达到好的滤波效果就要针对图像 的特征采用相应的滤波方法。中值滤波和低通滤波就 是相对较适合条码图像的滤波方法。
四、主要技术
基于数字图像处理的条形码识 别方法
组员:王 斐(20126055)李 帆(20126056) 黄明飞(20126057)唐 健(20126058) 谭泽环(20126059) 专业班级:12级电信2班 指导教师:柴 桦
各种物品上的条码
目 录 / contents
01
课题简介 研究背景与意义 国内外研究现状 主要技术
尽管如此,也遇到了很多的问题有待进一步的解决和探索研究。本 方法只是对质量较好的条码图像进行一般性处理,但实际中的图像并都 不是这么理想,例如条码污染、条码断裂、条码瑕疵等。这些需要进行 特殊的图像处理过程才能达到译码的目的。如果条码被污染了要进行修 复,条码发生几何畸变要进行图像矫正等等。只有考虑到更多的方面才 能提高系统的性能和适应性,对一定质量范围内的条码图像都能进行有 效的处理。
五、未来发展方向
1、由于条形码种类繁多,所以有待对其他编码方式的条形码进行分析, 从而更有效的提高条码识别效果。
2、在条码识别过程中,精确度有待经一部提高,所以如何提高边缘识
别、精度,需做更深一步的研究,以便更有效的提高条码的识别率。 3、由于二维条码图像的存储数据量有限,在下一部研究中,分析图像 压缩原理,使二维码图像存储数据量进一步提高,一更加便携的应用 到实际生活中。
摄像头采集 图像预处理 条码译码 得到信息
条码识别设计流程
二、研究背景及意义
三、国内外研究现状
三、国内外研究现状
四、主要技术
(一)条码图像预处理
(二)EAN-13码的译码
(一)条码图像预处理
1、预处理过程
对于一个条码图像我们先要对其进行一定的处理才能达到正确译码 的目的。而要对其进行处理,首先是要将其读入。由于有噪声的存在, 必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合 适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类 型。最后就是要二值化,得到二值图像。
总 结
在对条码图像作相应的图像预处理之后,对得到的二值条码图像利 用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。通过 实验,识别效果不错,误码率低,提高了条码的识别率。本方法在译码 方法上进行了比较选择,确定了相似边距离的测量方法的优越性。这种 方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判 别字符的逻辑值。另外用软件实现条码的识别比硬件具有更好的抗噪声 性能,且速度快,效率高。
条码图像预处理流程
具体步骤: ⑴ MATLAB中利用函数imread来实现图像文件的读取操作。
⑵ MATLAB的图像处理工具箱提供imnoise函数,可以用该函数给图像添 加不同种类的噪声。
⑶为了达到好的滤波效果应选择合适的滤波窗口。
⑷ 为了便于对图像进行后续处理,按下式对图像进行处理,可得到二 值图像g(x,y)。
3、译码结果与分析
译码结果:
通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、 效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条 码仍能正确识读。可见,影响条码识别效果的不仅仅是条码图像预处理 效果,译码方法更是不可忽视的重要原因,相似边距离测量方法有着其 它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别, 而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍 然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。
255 g ( x, y ) 0
f ( x, y ) T f ( x, y ) T
Matlab程序如下: >> a=imread('d:\zp.jpg');读取图像 >> b=imnoise(a,'salt & pepper', 0.04) ;添加椒盐噪声 >> c=medfilt2(b); 进行中值滤波 >> d=rgb2gray(c);图像二值化
谢谢大家
THANK YOU FOR YOUR
接着利用对照表将归一化值(T1,T2)与 条码字符值之间的对应寻找出来
若1.5≦t1≦2.5,那么T1=2
若2.5≦t2≦3.5,那么T2=3 若3.5≦t3≦4.5,那么T3=4 若4.5≦t4≦5.5,那么T4=5
最后利用对照表找出归一化值与EAN-13码字符编码的对应关系,完成译码。 具体的程序语言在此省略。
(一)条码图像预处理
(二)EAN-13码的译码
(二)EAN-13码的译码
1、条码译码原理 采用相似边距离的测量方法来进行译码,这种方法的设计思路是通过对符 号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素 宽度的实际测量值来判别。条码图像经过预处理后得到的是二值图像,我们从 条码的左边开始取点,若遇到点的灰度值由255变到0即由点的颜色由白色变为 黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色, 则表示检测到空,记录下该点的坐标值。这样经过扫描后得到各个颜色变化点 的坐标,然后将相邻两点的横坐标相减得到各个条、空的宽度。
2、相似边距法译码 EAN-13条码由占3个条空的起始 符、3个条空的终止符、4个条空的左侧 数据符、5个条空的中间分隔符、20个条 空的右侧数据符、4个条空的校验符组成。 所以,整个条码字符占的条空总数为59, 若条码字符没有发生几何畸变,一行扫 描应记录的坐标数为60个。而对于有几 何畸变的条码图像,例如条码污染、条 码断裂、条码瑕疵等,该扫描行的坐标 数将肯定大于60或小于60,这时将不记 录该扫描行,对此行不处理。这样利用 图像统计方法,逐行扫描图像,获取条 码图像信息,比起只由一行获取信息的 方式可靠性更高,这样即使个别噪声点 存在并不影响图像信息的获取。
>> subplot(2,2,1);imshow(a);title('原图像');
>> subplot(2,2,2);imshow(b);title('添加椒盐噪声图像'); >> subplot(2,2,3);imshow(c);title('中值滤波之后图片');
>> subplot(2,2,4);imshow(d);title('二值化图');