ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:548.99KB ,
资源ID:836639      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/836639.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(条形码识别图像处理报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

条形码识别图像处理报告.docx

1、条形码识别图像处理报告数字图像处理课程设计报告目:基于数字图像处理的条形码识别学生姓名:学 号:20110810010209指导教师:范自柱、设计任务及要求、设计原理及设计方案2.1、条码译码原理2.2条码译码方案三、设计步骤与结果3.1设计步骤.3.2结果分析.四、课程设计总结五、心得体会六、参考文献附录一、源程序10101115151617、设计任务及要求本课程设计研究的是基于数字图像处理的 EAN-13条形码识别算法,通过工具平台MATLAB实现。其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量

2、的二值化图像。条码识别就是在二值图像的基础上实 现,二值图像的质量直接关系到条码能否正确识读。二、设计原理及设计方案2.1、条码译码原理:如图1-1所示是EAN-13条码的一个字符。条、空宽度的定义如下:图中G、C2、C3、C4表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度。下一宇符当前宇符 T 一匚 1 C2一 C3 十 C4-fit图1-1 EAN-13条码宽度的定义设一个字符中单位模块的宽度为n,则单位模块的宽度:n=T /7T=C1 + C2 + C3+C4由于条码条、空宽度G、C2、C3、C4已知,设条码条、空分别占单位模块 的个数为mi,则:mi = Ci/n(其中 i

3、取 1、2、3、4)因此,由mi可知道条码的编码。例如:(1)若=2、m2 =2 m3 =2 m4 =1;条码的排列为条-空-条-空,则可知条码编码为1100110,是右侧偶性字符1;(2)若 m 1 =1、m? =2、m3 =1、口4 =3;条码的排列为空-条-空-条,则可知条码编码为0110111,是右侧奇性字符 &2.2条码译码方案:方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条 /空宽度,从而确定整个条码符号所代表的信息。方案二:平均值法对条码符号图像中从起始符到终止符整个宽度进行测量,然后除以9

4、5(标准宽度),求出单位模块所含的像素列宽,再分别测量各个条空的实际宽度(此宽度以单位宽度为单位计算)。方案三:相似边距离的测量方法这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素宽度的实际测量值来判别。前两种方案对条码图像的要求非常高,因为它们都是测量各元素符号的实际宽度,然后根据查表法得到所代表的码值。如果实际测量值与标准值存在一点偏差,就不能实现正确译码。而第三种方案正是有效的解决了这一问题,因此本文采用相似边距离测量的方法来实现译码功能。下面就简要说明一下这一方法。由原理知,要想辨识一个条码,必须先测量条码条、空宽度 G、C2、C3、C4

5、以及一个字符的宽度T。条码图像经过预处理后得到的是二值图像,该点的颜色信息在阈值变换时已经定义,用255和0表示白和黑色。我们从条码的左边开始取点,若遇到点的灰度值由255变到0即由点的颜色由白色变为黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色,则表示检测到空,记录下该点的坐标值。这样经过扫描后得到各个颜色变化点的坐标, 然后将相邻两点的横坐标相减得到各个条、空的宽度 .由前面所述EAN-13条码的组成知:一个由占3个条空的起始符、3个条空的终止符、4个条空的左侧数据符、5个条空的中间分隔符、20个条空的右侧数据符、4个条空的校验符组成。所以,整个条码字符占的条空总数为

6、 59,若条码字符没有发生几何畸变,一行扫描应记录的坐标数为60个。而对于有几何畸变的条码图像,例如条码污染、条码断裂、条码瑕疵等,该扫描行的坐标数将肯定大于 60或小于60,这时将不记录该扫描行,对此行不处理。这样利用图像统计方法,逐行扫描图像,获取条码图像 信息,比起只由一行获取信息的方式可靠性更高, 这样即使个别噪声点存在并不 影响图像信息的获取。(1)条码宽度的计算:设条码字符颜色由黑变为白或由白变为黑(由 “0变为“ 1或由“ 1变为“0)的各点坐标为X1、X2、 、X60。则一行扫描的条空宽度(像素)分别为:由上述图像条码译码理论可总结出条码条空宽度计算步骤,如图 1-2所示:经处

7、理后的二值團像图1-2条码条空宽度计算在MATLAB中采用读取像素的方法实现。经过二值化后得到一个二值化图象矩阵bw。简单起见,可以读取矩阵 bw的中间一行,得到一个向量 A。为了提高可靠性,我们也可逐行扫描。h,l=size(bw); %得到二值图像bw的大小(2)条码字符的判别一相似边距法:理论上条形码字符的逻辑值应该由条形码的实际宽度来判断, 而相似边距离方法的设计思想通过对符号中相邻元素的相似边之间距离的测量来判别字符的t3,t4,t5,t6,t7 (归一化值)为条形码相似边距离。本文采用归一化理论,用一种相似边距离归一化的方法对字符进行判别。该方法即使条码印刷质量有偏差,仍能正确对条

8、码进行识读。首先见图1-4各种宽度的定义:G,C2, C3, C4表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度,t1,t2为相似边之间的距离,则用下 列值Ti (i=1,2)来定义T1与T2的归一化值。测量7个宽度值T ,关系。t1,t2,t3,t4,t5,t6 ;然后将测量值 t1,t2,t3,EAN-13码字符编码与归一化值(,T2 )的对应关系见表1-2。表1-1 EAN-13条码字符与归一化值归一化值2.345206EO04 13E90208ElE705409E2E30107E55E600E4037奇字符編码归1化値左偶字符编码归1化值右偶字符编码归1化值000110153

9、010011123111001053001100144011001134110011044001001133001101143110110033011110155010000125100001055011110024001110154101110024011000135011100145100111035010111122000010152101000022011101144001000134100010044011011133000100113100100033000101142001011132111010042表1-2 EAN-13字符编码与归一化值2356789字符110可以看到条形码

10、编码和归一化值在多数情况下呈现一一对应的关系,只要确定了归一化值就能确定字符值,但是有四种情况例外,在表 1-2中知, 符和右侧偶字符1, 7归一化值均为44,左侧奇字符和右侧偶字符 2,左侧奇字8归一化值均为33,左侧偶字符1,7归一化值均为34,左侧偶字符2,8归一化值均为43。这两种情况可以在判别字符时根据 G,C2,C3,C4进一步判别,根据它们条空宽度特点进行判别。有1728字符标准条空宽度值的特点知:对于左侧奇字符、右侧偶字符1和7可通过C3与C4作比较,C3C4者为字符1,反之为7;对于左侧奇字符、右侧偶字符2和8可通过C2与C3作比较,C2C3者为字符8,反之为2;对于左侧偶字

11、符1和7可通过C1与C2作比较,C1C2者为字符7,反之为1;对于左侧偶字符2和8可通过C2与C3作比较,C2C3者为字符2,反之由上述条码字符识别理论可总结出相似边距离测量法的一般步骤。 由条码宽度的计算我们得到了各个条、空的宽度(像素),并通过计算n=T /7,T =C1 + C2+C3+C4得到单位模块的宽度(像素)。各个条空的宽度除以单位模块的宽度就是归一化的条空宽度。而为了方便译码,我们除去起始符3个条空,中间分隔符5个条空,终止符3个条空,对剩下的48个条空每4个条空为一组进 行译码。计算相似边之间的距离t1、t2从而得到归一化(T1,T2 )。最后查表可得条码字符。为检验译码的正

12、确性利用校验位对码字进行校验。流程图如图 1-5和1728判别子程序流程如图1-6。计算此字符的长度TI计算此字符的石、巧I计算归一化值I图1-5字符判别流程图找到归一化值所对应的氣空宽度值三、设计步骤与结果3.1设计步骤对于一个条码图像我们先要对其进行一定的处理才能达到正确译码的目的。而要对其进行处理,首先是要将其读入。由于有噪声的存在,必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合适的滤波方法进行滤波,这样 有助于理解各种滤波方法所针对的噪声类型。最后就是要二值化,得到二值图像。条码图像预处理流程图如图1-7所示。图1-7条码图像预处理流程图MATLAB中利用函数imrea

13、d来实现图像文件的读取操作。图1-8是首次 需要处理的条码图片。一般情况下,通过imread函数读取的大多数图像都是 8位的。当把这些图像加载到内存中时,MATLAB就将其存储在类uint8中。此外,MATLAB还支 持16位的PNG和TIFF图像。当用户读取这类图像时,MATLAB就将其存储在 类uint16中。而对于索引图像来说,即使图像矩阵的本身为uint8或uint16,imread 函数仍将颜色映射表读取并存储在一个双精度浮点类型的矩阵中。例如:匸imread(008.bmp);该语句可将条码图像读入内存,并以矩阵形式存储。MATLAB的图像处理工具箱提供imnoise函数,可以用该

14、函数给图像添 加不同种类的噪声。该函数的调用格式如下:J=imnoise(l, type ,parameters)表1-3列出了 imnoise函数能够产生的五种噪声及其对应参数。表1-3 imn oise 函数支持的噪声种类及参数说明typeparameters说明gaussian叫V均值为皿,方差为的高斯噪芦localvarV均值为6方差为的高斯白噪声possion无泊松噪声saltipepper无椒盐噪声speckleV均值为6方差为V的均匀分布随机噪声例如:J=imnoise(l,salt & pepper,0.01);该语句实现在条码图像I中加入椒盐噪声。 条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的 影响,一些噪声将会对图像的质量产生影响。任何一幅未经处理的原始图象,都 存在一定程度的噪声干扰。不同的噪声干扰,处理方法不同。影响条码图像质量最典型的噪声是椒盐噪声。椒盐噪声的特点是此干扰在图像中是以孤立点的形式存在的。针对噪声的类型,采用中值滤波。中值滤

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1