基于数字图像处理的条形码识别方法(第四组)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摄像头采集 图像预处理 条码译码 得到信息
条码识别设计流程
二、研究背景及意义
三、国内外研究现状
三、国内外研究现状
四、主要技术
(一)条码图像预处理
(二)EAN-13码的译码
(一)条码图像预处理
1、预处理过程
对于一个条码图像我们先要对其进行一定的处理才能达到正确译码 的目的。而要对其进行处理,首先是要将其读入。由于有噪声的存在, 必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合 适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类 型。最后就是要二值化,得到二值图像。
译码流程如图所示
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、预处理结果与分析
根据上述条码图像预处理的理论知识编译相关的MATLAB程序, 得到如图3.1.2所示图像预处理结果。
结果分析:噪声影响条码图像的质量,从而影响条码
的正确识读。而要想达到好的滤波效果就要针对图像 的特征采用相应的滤波方法。中值滤波和低通滤波就 是相对较适合条码图像的滤波方法。
四、主要技术
3、译码结果与分析
译码结果:
通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、 效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条 码仍能正确识读。可见,影响条码识别效果的不仅仅是条码图像预处理 效果,译码方法更是不可忽视的重要原因,相似边距离测量方法有着其 它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别, 而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍 然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。
总 结
在对条码图像作相应的图像预处理之后,对得到的二值条码图像利 用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。通过 实验,识别效果不错,误码率低,提高了条码的识别率。本方法在译码 方法上进行了比较选择,确定了相似边距离的测量方法的优越性。这种 方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判 别字符的逻辑值。另外用软件实现条码的识别比硬件具有更好的抗噪声 性能,且速度快,效率高。
基于数字图像处理的条形码识 别方法
组员:王 斐(20126055)李 帆(20126056) 黄明飞(20126057)唐 健(20126058) 谭泽环(20126059) 专业班级:12级电信2班 指导教师:柴 桦
各种物品上的条码
目 录 / contents
01
Байду номын сангаас
课题简介 研究背景与意义 国内外研究现状 主要技术
谢谢大家
THANK YOU FOR YOUR
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);图像二值化
五、未来发展方向
1、由于条形码种类繁多,所以有待对其他编码方式的条形码进行分析, 从而更有效的提高条码识别效果。
2、在条码识别过程中,精确度有待经一部提高,所以如何提高边缘识
别、精度,需做更深一步的研究,以便更有效的提高条码的识别率。 3、由于二维条码图像的存储数据量有限,在下一部研究中,分析图像 压缩原理,使二维码图像存储数据量进一步提高,一次更加便携的应用 到实际生活中。
条码图像预处理流程
具体步骤: ⑴ MATLAB中利用函数imread来实现图像文件的读取操作。
⑵ MATLAB的图像处理工具箱提供imnoise函数,可以用该函数给图像添 加不同种类的噪声。
⑶为了达到好的滤波效果应选择合适的滤波窗口。
⑷ 为了便于对图像进行后续处理,按下式对图像进行处理,可得到二 值图像g(x,y)。
2、相似边距法译码 EAN-13条码由占3个条空的起始 符、3个条空的终止符、4个条空的左侧 数据符、5个条空的中间分隔符、20个条 空的右侧数据符、4个条空的校验符组成。 所以,整个条码字符占的条空总数为59, 若条码字符没有发生几何畸变,一行扫 描应记录的坐标数为60个。而对于有几 何畸变的条码图像,例如条码污染、条 码断裂、条码瑕疵等,该扫描行的坐标 数将肯定大于60或小于60,这时将不记 录该扫描行,对此行不处理。这样利用 图像统计方法,逐行扫描图像,获取条 码图像信息,比起只由一行获取信息的 方式可靠性更高,这样即使个别噪声点 存在并不影响图像信息的获取。
02
03
04
05
未来发展方向
一、课题简介
课题名称:基于数字图像处理的条形码识别方法
不同的条码有着不同的识读过程。本组研究的是一种基于图像处理 方式的识读方法,该方法是采用摄像头采集条码图像,一次性采集条码 图像的方法避免了线性扫描器逐行扫描所产生的问题,同时简化了扫描 条码图像的操作。然后通过一定的数字图像处理算法处理进行译码。译 码算法主要分为两部分:第一部分首先对采集的条码图像进行预处理, 这将为后面实现正确译码打下基础;第二部分就是对预处理后的条码图 像进行译码,利用统计方法、根据相似边距离来判别条码字符,再通过 译码、校验、纠错处理来识读条码,得到条码所表示的文本信息。软件 译码具有更大的灵活性和较低的成本,因此具有很大的发展潜力。
接着利用对照表将归一化值(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即由点的颜色由白色变为 黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色, 则表示检测到空,记录下该点的坐标值。这样经过扫描后得到各个颜色变化点 的坐标,然后将相邻两点的横坐标相减得到各个条、空的宽度。
尽管如此,也遇到了很多的问题有待进一步的解决和探索研究。本 方法只是对质量较好的条码图像进行一般性处理,但实际中的图像并都 不是这么理想,例如条码污染、条码断裂、条码瑕疵等。这些需要进行 特殊的图像处理过程才能达到译码的目的。如果条码被污染了要进行修 复,条码发生几何畸变要进行图像矫正等等。只有考虑到更多的方面才 能提高系统的性能和适应性,对一定质量范围内的条码图像都能进行有 效的处理。
>> 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('二值化图');
条码识别设计流程
二、研究背景及意义
三、国内外研究现状
三、国内外研究现状
四、主要技术
(一)条码图像预处理
(二)EAN-13码的译码
(一)条码图像预处理
1、预处理过程
对于一个条码图像我们先要对其进行一定的处理才能达到正确译码 的目的。而要对其进行处理,首先是要将其读入。由于有噪声的存在, 必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合 适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类 型。最后就是要二值化,得到二值图像。
译码流程如图所示
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、预处理结果与分析
根据上述条码图像预处理的理论知识编译相关的MATLAB程序, 得到如图3.1.2所示图像预处理结果。
结果分析:噪声影响条码图像的质量,从而影响条码
的正确识读。而要想达到好的滤波效果就要针对图像 的特征采用相应的滤波方法。中值滤波和低通滤波就 是相对较适合条码图像的滤波方法。
四、主要技术
3、译码结果与分析
译码结果:
通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、 效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条 码仍能正确识读。可见,影响条码识别效果的不仅仅是条码图像预处理 效果,译码方法更是不可忽视的重要原因,相似边距离测量方法有着其 它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别, 而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍 然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。
总 结
在对条码图像作相应的图像预处理之后,对得到的二值条码图像利 用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。通过 实验,识别效果不错,误码率低,提高了条码的识别率。本方法在译码 方法上进行了比较选择,确定了相似边距离的测量方法的优越性。这种 方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判 别字符的逻辑值。另外用软件实现条码的识别比硬件具有更好的抗噪声 性能,且速度快,效率高。
基于数字图像处理的条形码识 别方法
组员:王 斐(20126055)李 帆(20126056) 黄明飞(20126057)唐 健(20126058) 谭泽环(20126059) 专业班级:12级电信2班 指导教师:柴 桦
各种物品上的条码
目 录 / contents
01
Байду номын сангаас
课题简介 研究背景与意义 国内外研究现状 主要技术
谢谢大家
THANK YOU FOR YOUR
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);图像二值化
五、未来发展方向
1、由于条形码种类繁多,所以有待对其他编码方式的条形码进行分析, 从而更有效的提高条码识别效果。
2、在条码识别过程中,精确度有待经一部提高,所以如何提高边缘识
别、精度,需做更深一步的研究,以便更有效的提高条码的识别率。 3、由于二维条码图像的存储数据量有限,在下一部研究中,分析图像 压缩原理,使二维码图像存储数据量进一步提高,一次更加便携的应用 到实际生活中。
条码图像预处理流程
具体步骤: ⑴ MATLAB中利用函数imread来实现图像文件的读取操作。
⑵ MATLAB的图像处理工具箱提供imnoise函数,可以用该函数给图像添 加不同种类的噪声。
⑶为了达到好的滤波效果应选择合适的滤波窗口。
⑷ 为了便于对图像进行后续处理,按下式对图像进行处理,可得到二 值图像g(x,y)。
2、相似边距法译码 EAN-13条码由占3个条空的起始 符、3个条空的终止符、4个条空的左侧 数据符、5个条空的中间分隔符、20个条 空的右侧数据符、4个条空的校验符组成。 所以,整个条码字符占的条空总数为59, 若条码字符没有发生几何畸变,一行扫 描应记录的坐标数为60个。而对于有几 何畸变的条码图像,例如条码污染、条 码断裂、条码瑕疵等,该扫描行的坐标 数将肯定大于60或小于60,这时将不记 录该扫描行,对此行不处理。这样利用 图像统计方法,逐行扫描图像,获取条 码图像信息,比起只由一行获取信息的 方式可靠性更高,这样即使个别噪声点 存在并不影响图像信息的获取。
02
03
04
05
未来发展方向
一、课题简介
课题名称:基于数字图像处理的条形码识别方法
不同的条码有着不同的识读过程。本组研究的是一种基于图像处理 方式的识读方法,该方法是采用摄像头采集条码图像,一次性采集条码 图像的方法避免了线性扫描器逐行扫描所产生的问题,同时简化了扫描 条码图像的操作。然后通过一定的数字图像处理算法处理进行译码。译 码算法主要分为两部分:第一部分首先对采集的条码图像进行预处理, 这将为后面实现正确译码打下基础;第二部分就是对预处理后的条码图 像进行译码,利用统计方法、根据相似边距离来判别条码字符,再通过 译码、校验、纠错处理来识读条码,得到条码所表示的文本信息。软件 译码具有更大的灵活性和较低的成本,因此具有很大的发展潜力。
接着利用对照表将归一化值(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即由点的颜色由白色变为 黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色, 则表示检测到空,记录下该点的坐标值。这样经过扫描后得到各个颜色变化点 的坐标,然后将相邻两点的横坐标相减得到各个条、空的宽度。
尽管如此,也遇到了很多的问题有待进一步的解决和探索研究。本 方法只是对质量较好的条码图像进行一般性处理,但实际中的图像并都 不是这么理想,例如条码污染、条码断裂、条码瑕疵等。这些需要进行 特殊的图像处理过程才能达到译码的目的。如果条码被污染了要进行修 复,条码发生几何畸变要进行图像矫正等等。只有考虑到更多的方面才 能提高系统的性能和适应性,对一定质量范围内的条码图像都能进行有 效的处理。
>> 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('二值化图');