欢迎来到天天文库
浏览记录
ID:5850327
大小:665.90 KB
页数:24页
时间:2017-12-26
《条形码的识别图像处理报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数字图像处理:条形码的识别数字图像处理课程设计报告题目:基于数字图像处理的条形码识别班级:11级信息与计算2班学生姓名:张涛学号:20110810010209指导教师:范自柱分数:24数字图像处理:条形码的识别目录一、设计任务及要求3二、设计原理及设计方案32.1、条码译码原理32.2条码译码方案4三、设计步骤与结果103.1设计步骤103.2结果分析11四、课程设计总结15五、心得体会15六、参考文献16附录一、源程序1724数字图像处理:条形码的识别一、设计任务及要求本课程设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工
2、具平台MATLAB实现。其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。二、设计原理及设计方案2.1、条码译码原理:如图1-1所示是EAN-13条码的一个字符。条、空宽度的定义如下:图中、、、表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度。图1-1EAN-13条码宽度的定义设一个字符中单位模块的宽度为n,则单位模块的宽度:n=/7T=+++由于条码
3、条、空宽度、、、已知,设条码条、空分别占单位模块的个数为,则:=/n(其中i取1、2、3、4)因此,由mi可知道条码的编码。例如:(1)若=2、=2、=2、=1;24数字图像处理:条形码的识别条码的排列为条-空-条-空,则可知条码编码为1100110,是右侧偶性字符1;(2)若=1、=2、=1、=3;条码的排列为空-条-空-条,则可知条码编码为0110111,是右侧奇性字符8。2.2条码译码方案:方案一:宽度测量法在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,
4、从而确定整个条码符号所代表的信息。方案二:平均值法对条码符号图像中从起始符到终止符整个宽度进行测量,然后除以95(标准宽度),求出单位模块所含的像素列宽,再分别测量各个条空的实际宽度(此宽度以单位宽度为单位计算)。方案三:相似边距离的测量方法这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素宽度的实际测量值来判别。前两种方案对条码图像的要求非常高,因为它们都是测量各元素符号的实际宽度,然后根据查表法得到所代表的码值。如果实际测量值与标准值存在一点偏差,就不能实现正确译码。而第三种方案正是有效的解
5、决了这一问题,因此本文采用相似边距离测量的方法来实现译码功能。下面就简要说明一下这一方法。由原理知,要想辨识一个条码,必须先测量条码条、空宽度、、、以及一个字符的宽度24数字图像处理:条形码的识别。条码图像经过预处理后得到的是二值图像,该点的颜色信息在阈值变换时已经定义,用255和0表示白和黑色。我们从条码的左边开始取点,若遇到点的灰度值由255变到0即由点的颜色由白色变为黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色,则表示检测到空,记录下该点的坐标值。这样经过扫描后得到各个颜色变化点的坐标,然后将相邻两点的横坐标相
6、减得到各个条、空的宽度.由前面所述EAN-13条码的组成知:一个由占3个条空的起始符、3个条空的终止符、4个条空的左侧数据符、5个条空的中间分隔符、20个条空的右侧数据符、4个条空的校验符组成。所以,整个条码字符占的条空总数为59,若条码字符没有发生几何畸变,一行扫描应记录的坐标数为60个。而对于有几何畸变的条码图像,例如条码污染、条码断裂、条码瑕疵等,该扫描行的坐标数将肯定大于60或小于60,这时将不记录该扫描行,对此行不处理。这样利用图像统计方法,逐行扫描图像,获取条码图像信息,比起只由一行获取信息的方式可靠性更高,这样即使个别噪声点存
7、在并不影响图像信息的获取。(1)条码宽度的计算:设条码字符颜色由黑变为白或由白变为黑(由“0”变为“1”或由“1”变为“0”)的各点坐标为、、……、。则一行扫描的条空宽度(像素)分别为:=-、=-、……、=-。由上述图像条码译码理论可总结出条码条空宽度计算步骤,如图1-2所示:24数字图像处理:条形码的识别图1-2条码条空宽度计算在MATLAB中采用读取像素的方法实现。经过二值化后得到一个二值化图象矩阵bw。简单起见,可以读取矩阵bw的中间一行,得到一个向量A。为了提高可靠性,我们也可逐行扫描。[h,l]=size(bw);%得到二值图像b
8、w的大小A=bw(round(h/2),:);A中只有0和1表示黑与白。读取其中的元素,发生变化记下坐标(像素)存入另一个向量x中,x元素前后依次相减存入向量y中得条码宽度。(2
此文档下载收益归作者所有