61阅读

图像处理和模式识别-90图像处理和模式识别考试复习

发布时间:2017-09-26 所属栏目:图像处理和模式识别

一 : 90图像处理和模式识别考试复习

第一章

1、图像、数字图像处理、图像数字化、分辨率、灰度图像和彩色图像的概念? 图像:光线照在物体上其透射或反射光的分布就是图,而人的视觉系统对图的接收在大脑中形成的印象或认识就是像,前者是客观存在,后者是人的感觉,图像就是二者的结合。

数字图像处理:采用特定的算法对数字图像进行处理,以获取视觉、接口输入的如硬件所需要的数字图像的过程。利用计算机对数字图像进行(去除噪声、增强、复原、分割、特征提取、识别等)系列操作,从而获得某种预期的结果的技术。

图像数字化:计算机所能处理的信息必须是数字信号,而我们得到的照片、图纸或景物信息都是连续信号,为此必须对连续信号进行抽样和量化,即进行数字化处理,此处理过程就是图像数字化。

分辨率:采样所获得的图像的像素的总数的多少。反映了数字化图像中可分辨的最小细节。映射到图像平面上的单个像素的景物元素的尺寸。

灰度图像:每个像素的信息由一个量化的灰度级来描述图像,它只有亮度信息,没有颜色信息。 彩色图像:图像中的每个像素值都分成R、G、B三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为彩色。

2、了解色彩三要素?

色调:色调是指感知到的色彩。

亮度:亮度代表觉察到的光源能量。

饱和度:饱和度度量色彩是指被白光冲淡的程度,产生淡黄色、深紫色等描述。

3、了解图像数字化量化技术分类?

量化技术分为非均匀量化和均匀量化。

4、掌握简述数字图像信息的特点?

1)信息量很大。例如一帧电视图像取512X512个像素组成,其灰度级用8bit的二进制来表示。则有256个灰度级,那么一帧数据图像的信息量即为512X512X8bit。所以数据量是很大的。

2)数字图像占用的频带较宽。与语言信息相比,占用频带要大几个数量级。如电视图像的频带为5-6M,语言信息的带宽仅为4K左右。

3)数字图像中各个像素之间是不独立的,其相关性很大。在电视画面中,同一行中相邻的像素或相邻两行之间的像素,其相关系数可达到0.9,相邻两帧之间相关性更强。

4)处理后的数字图像是需要给人观察和评价的,因此受人的因数影响较大。

第二章

1、了解傅里叶变换条件?

狄里赫利条件:有限间断点、有限极点、绝对可积。

2、会计算一维、二维连续信号的傅里叶变换?

一维傅立叶变换:

?j2πuxf(x)为连续可积函数,其傅立叶变换定义为:F(u)= f(x)edx。 ?∞+∞

一维傅立叶变换其反变换为:f(x)= 2π F(u)ej2πxudu. ?∞

1+∞

一维离散傅立叶变换:

1?1?j2πux/N正变换公式为:F(u)= N 其中u=0,1,...N-1。 x=0f(x)eN

?1j2πux/N逆变换为:f(x)= N 其中x=0,1,...N-1。 u=0f(x)e

二维傅立叶变换:

F(u,v)= ?∞f(x,y)e?j2π ux+vy dxdy

二维傅立叶变换逆变换:

f(x,y)= ?∞F(u,v)ej2π ux+vy dudv

二维离散傅立叶变换:

?j2π(+?1N?1MN 其中F(u,v)=MN Mx=0 y=0f(x,y)e1uxvy∞∞u=0,1,……,M-1 v=0,1,……,N-1

二维离散傅立叶变换逆变换:

?1f(x,y)= Mu=0j2π(+?1MN 其中 NF(u,v)ev=0uxvyx=0,1,……,M-1 y=0,1,……,N-1

3、熟悉二维傅里叶变换性质?(比例性质、空间位移、频率位移、共轭对称性、平均值)

(1)线性性质:af1(x,y)+-bf2(x,y)<===>aF1(u,v)+-bF2(u,v)

(2)比例性质:f(ax,by)<===>(1/ab)F(u/a,u/b)

(3)可分离性:

?1?j2πux/N N?1?j2πvx/N<一>F(u,v)=N N 其中u=v=0,1,……,N-1 x=0ey=0f(x,y)e1

1?1j2πux/N N?1j2πvx/N<二>f(x,y)= N u=0ev=0F(u,v)eN

(4)空间位移:f(x-x0,y-y0)<===>F(u,v)e?j2π(ux0/M+vy0/N)

(5)平移性质:

<一>频率位移:f(x,y)ej2π(ux0/M+vy0/N)<===>F(u-u0,v-v0)

<二>图像中心化:当u0=M/2和v0=N/2时,f(x,y)(?1)x+y<===>F(u-M/2,v-N/2)

(6)共轭对称性:F ?(u,v)=F (-u,-v)或f?(x,y)= F ?(?u,?v)

4、了解拉格尔函数的基本知识?

第三章 1、熟悉图像对比度、直方图的概念?

图像对比度:是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小。

直方图:直方图是表示图像灰度分布的统计图表,它反映了图像灰度分布的统计特性。数字图像的直方图是一个离散函数,他表示数字图像中每一灰度与其

出现的概率之间的统计关系。

2、图像增强的概念?

图像增强是指不考虑图像降质的原因,只将图像中感兴趣的部分加以处理,突出有用的图像特征,故改善后的图像不一定要去逼近源图像的一类图像改善方法。如提取图像中的目标轮廓、衰减各类噪声、将黑白图像转为彩色图像等。

3、掌握图像灰度的线性变换?

灰度变换可分为线性变换、分段线性变换和非线性变换。

线性变换是将灰度范围线性拓展,有效的增强图像的对比度,改善图像的视觉效果。线性变换时,在a=c=0情况下,当K=1是图像不变,当k>1时表示图像均匀变亮,k<1时表示图像均匀变暗。

4、直方图均衡化、规格化的定义及其计算?

直方图均衡化:也叫直方图均匀化,就是把给定图像的直方图分布改变成均匀分布的的直方图,然后按均衡直方图修正源图像。直方图均衡化,是像素的灰度值的动态范围最大,增强了图像的整体对比度,图像看起来更清晰了。

直方图规格化:是修改图像的直方图,使得它与另一幅图像的直方图匹配或具有一种预先规定的函数形状。其目的在于突出感兴趣的灰度范围,从而改变图像质量。

5、常用的空域平滑方法及其特点?

中值滤波:中值滤波是一种非线性滤波方法,就是用一个含有奇数个点的滑动窗口,将窗口正中的那个值用窗口内各点的中值来代替。在一定条件下,可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效,但是对于一些细节多,特别是点、线、尖顶细节多的图像不宜采用中值滤波方法。中值滤波还具有对某些输入信号中值滤波不变性。

领域平均法:领域平均法是一种局部空间域处理的算法。它使用八领域或者四领域的平均值来代替中间点的像素值。领域平均法对消除随机噪声的效果较好,但是它的主要缺点是在降低噪声的同时是图像变得模糊,特别是在图像边缘和图像细节处更为明显,领域越大,模糊越厉害。

加权平均法:加权平均法是根据参与平均像素的点赋予不同权值的方法。它克服了局部平均的弊病,能部分地保留边缘细节。使图像处理后的模糊减轻。

6、了解常用的锐化算子?会用拉普拉斯算子对图像进行图像增强运算(模版)? 图像锐化处理的目的是增强图像的轮廓,突出图像的细节。

常用锐化算子有:梯度算子、roberts算子、prewitts算子、sobel算子、拉普拉斯算子、marr算子。

拉普拉斯算子采用可以由(x,y)点的灰度值减去其领域平均值来求得。 典型拉普拉斯模版有:

1?210?10?1?1?1

?24?2 、 ?14?1 、 ?18?1

1?210?10?1?1?1

第四章

1、掌握图像增强与图像复原的区别?

图像增强是指不考虑退质原因,对图像中感兴趣的部分加以处理,突出有用的图像特征。改善后不一定要去逼近源图像。图像复原是试图利用降质过程的先验知识使已被退化的图像恢复本来的面目。而图像增强是用某种试探的方式改善图像质量,以适应人眼的视觉和心理,这是图像复原与图像复原的本质区别。图

像增强的目的是提高图像可懂度,图像复原的主要目的是提高图像的逼真度。

2、图像退化的模型及其原理框图 ?

图像退化模型图

数学表达式:

g(x,y)=h[f(x,y)]+n(x,y)

频域:

G(u,v)=F(u,v)H(u,v)+N(u,v)

3、了解图像复原的方法?

线性:逆滤波、维纳滤波(有约束条件的复原,以最小均方误差为准则的滤波)、约束最小平方滤波(最小二乘类滤波)

非线性:最大后验复原、最大熵复原、投影复原

第五章

1、图像编码的可行性和必要性?

必要性:由于电视和传真传输的数字图像的信息量大,受传输容量的限制,传输速率也就受到了限制,所以研制数字压缩编码系统是很有必要的,以实现在保持一定逼真度的前提下,使用尽可能少的代码bit来表达图像,以压缩图像的存储量,扩大传输容量,提高传输速度。

可行性:图像信息压缩的可能性存在于图像本身之中,由于图像的各像素之间是相关的,而且相关性很大。所以图像的编码是可行的。

2、会计算编码效率?

图像熵:H = - mk=1Pklog2Pk Pk为第K个灰度级对应的概率

平均码字长度:R = m(二进制的位数) k=1BkPk Bk为第k个码字Ck的长度

编码效率:η = R3、掌握哈夫曼编码方法?

H

第七章

1、图像分割的主要方法?

图像分割是将图像空间分割成一些有意义的区域。分割方法分为基于闸值的分割方法和基于边缘检测的分割方法。主要的分割方法有幅度分割法、界限探测法、匹配法、跟踪法、边缘检测、区域分割和分水岭分割方法等。

2、熟悉图像特征的定义、分类及常见图像特征?

图像特征是指图像原始特性或属性。其中有些是人的视觉能直接感受到的自然特征,如区域亮度、边缘轮廓、纹理和色彩;有些是需要通过变换和测量才能得到的人为特征,如变换频谱、直方图、矩等。

常见的图像特征有:幅度特征、直方图特征、变换系数特征、线条和角点特征、灰度边缘特征和纹理特征。

3、纹理的定义及如何描述纹理?

纹理是灰度和颜色的二维变化的图案,是区域具有的重要特征之一。纹理可以分为人工纹理和自然纹理,人工纹理是由自然背景上的符号排列组成,这些可以是线条、点、字母、数字等。自然纹理是具有重复排列现象的自然景象。前者是有规律的、后者是没有规律的。

纹理的分析方法可以分为统计方法和结构方法。统计方法常被用于像木纹、沙地、草坪那样纹理不规则的物体,并根据像素间灰度的统计性质规定出纹理的特征。结构分析法,适用于像布料的印刷图案或砖的花样等一类组成纹理的元素及其排列规则,用来描述纹理的结构。

第八章

1、模版匹配的定义及其特点?

模板匹配是指一个较小的图像,即模板与源图像进行比较,

以确定源图像中

90图像处理和模式识别考试复习_图像处理与模式识别

是否存在与该模板相同或相似的区域,若该区域存在,则可以确定其位置并提取该区域。

特点:最常用的图像匹配方法,需要逐点计算互相关,计算量大。模板只能进行平移,如源图像中要匹配的目标发生旋转或大小变化,算法无效。

第九章

1、模式和模式识别的定义?

模式:存在于时间、空间中可观察的事物,具有时间或空间分布的信息。具有可观察性、可区分性和相似性。

模式识别:用计算机对各种事物和现象的分析、描述、判断和识别。 模式识别分类:统计模式识别、结构模式识别、模糊集模式识别。

2、模式识别系统的组成和各部分功能?

结果

图像识别简单框图

一个图像识别系统分为三个主要部分,第一部分是图像信息的获取,它相当于对被研究对象的调查和了解,从中得到数据和材料,对图像识别来说就是把图片、底片、文字图形等用光电设备变换为电信号以备后续处理。第二部分是信息的加工与处理。它的作用是把调查了解到的数据材料进行加工、整理、分析、归纳以去伪存真,去粗取精,抽取能反映事物本质的特征。第三部分是判决或分类。这相当于人们从感性认识上升到理性认识而做出结论的过程。

3、熟悉贝叶斯分类法(特点)?

Bayes决策分类法是是错判率最小的统计模式识别方法。

要求:1)决策分类的类别数一定

2)类别Wi的先验概率已知

3)类别Wi的状态X的类条件概率密度函数已知

6 / 6

二 : 条形码的识别图像处理报告

华侨大学厦门工学院

题 目: 专业、班级: 学生姓名: 学 号: 指导教师: 分 数 :

条码识别 条形码的识别图像处理报告

目 录

一、设计任务及要求...................................................... 3

二、设计原理及设计方案.................................................. 3

2.1、条码译码原理 ................................................... 3

2.2条码译码方案..................................................... 4

三、设计步骤与结果..................................................... 10

3.1设计步骤 ........................................................ 10

3.2结果分析 ........................................................ 11

四、课程设计总结....................................................... 15

五、心得体会........................................................... 15

六、参考文献........................................................... 16

附录一、源程序......................................................... 17

附录二、成绩评定表..................................................... 25

条码识别 条形码的识别图像处理报告

一、设计任务及要求

本课程设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现。(www.61k.com]其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。

二、设计原理及设计方案

2.1、条码译码原理:

如图1-1所示是EAN-13条码的一个字符。条、空宽度的定义如下:图中C1、C2、C3、C4表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度。

条码识别 条形码的识别图像处理报告

图1-1 EAN-13条码宽度的定义

设一个字符中单位模块的宽度为n,则单位模块的宽度:

n=T/7

T=C1+C2+C3+C4

由于条码条、空宽度C1、C2、C3、C4已知,设条码条、空分别占单位模块的个数为mi,则:

mi=Ci/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。[www.61k.com)

2.2条码译码方案: 方案一:宽度测量法

在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。

方案二:平均值法

对条码符号图像中从起始符到终止符整个宽度进行测量,然后除以95(标准宽度),求出单位模块所含的像素列宽,再分别测量各个条空的实际宽度(此宽度以单位宽度为单位计算)。

方案三:相似边距离的测量方法

这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素宽度的实际测量值来判别。

前两种方案对条码图像的要求非常高,因为它们都是测量各元素符号的实际宽度,然后根据查表法得到所代表的码值。如果实际测量值与标准值存在一点偏差,就不能实现正确译码。而第三种方案正是有效的解决了这一问题,因此本文采用相似边距离测量的方法来实现译码功能。下面就简要说明一下这一方法。

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

条码识别 条形码的识别图像处理报告

整个条码字符占的条空总数为59,若条码字符没有发生几何畸变,一行扫描应记录的坐标数为60个。[www.61k.com)而对于有几何畸变的条码图像,例如条码污染、条码断裂、条码瑕疵等,该扫描行的坐标数将肯定大于60或小于60,这时将不记录该扫描行,对此行不处理。这样利用图像统计方法,逐行扫描图像,获取条码图像信息,比起只由一行获取信息的方式可靠性更高,这样即使个别噪声点存在并不影响图像信息的获取。

(1)条码宽度的计算:

设条码字符颜色由黑变为白或由白变为黑(由“0”变为“1”或由“1”变为“0”)的各点坐标为x1、x2、 ……、x60。则一行扫描的条空宽度(像素)分别为:c1=x2-x1、c2=x3-x2、……、c59=x60-x59。

由上述图像条码译码理论可总结出条码条空宽度计算步骤,如图1-2所示

条码识别 条形码的识别图像处理报告

:

图1-2 条码条空宽度计算

条码识别 条形码的识别图像处理报告

在MATLAB中采用读取像素的方法实现。[www.61k.com)经过二值化后得到一个二值化图象矩阵bw。简单起见,可以读取矩阵bw的中间一行,得到一个向量A。为了提高可靠性,我们也可逐行扫描。

61阅读提醒您本文地址:

[h,l]=size(bw); %得到二值图像bw的大小

A=bw(round(h/2),:);

A中只有0和1表示黑与白。读取其中的元素,发生变化记下坐标(像素)存入另一个向量x中,x元素前后依次相减存入向量y中得条码宽度。

(2)条码字符的判别—相似边距法:

理论上条形码字符的逻辑值应该由条形码的实际宽度来判断,而相似边距离方法的设计思想通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由元素宽度的实际值来判别。此种方法的优点是:即使条码质量存在缺欠,使得实际测量值和条码应该具有的理论值有较大的偏差,仍然可以根据相似边的距离能够正确解释。图1-3给出了相似边之间的距离,则图中t1,t2,t3,t4,t5,t6,t7(归一化值)为条形码相似边距离。本文采用归一化理论,

用一种相似边距离归一化的方法对字符进行判别。该方法即使条码印刷质量有偏差,仍能正确对条码进行识读。

条码识别 条形码的识别图像处理报告

图1-3 相似边之间的距离 图1-4 条码字符宽度示图

首先见图1-4各种宽度的定义: C1, C2, C3, C4表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度,t1,t2为相似边之间的距离,则用下

列值Ti (i=1,2)来定义T1与T2的归一化值。

条码识别 条形码的识别图像处理报告

测量7个宽度值T,t1,t2,t3,t4,t5,t6;然后将测量值t1,t2,t3,t4,t5,t6转换为常数值T1,T2,T3,T4,T5,T6即T序列值,它代表了这些测量值的整数模块宽,以下方法用于i序列值的求取:

若1.5≦ti≦2.5,那么Ti=2

若2.5≦ti≦3.5,那么Ti=3

若3.5≦ti≦4.5,那么Ti=4

若4.5≦ti≦5.5,那么Ti=5

表1-1列出了正向译码时,EAN-13条码字符值与归一化值(T1,T2)的对应关系。[www.61k.com]

表1-1中“E”表示偶字符,“O”表示奇字符。

EAN-13码字符编码与归一化值(T1,T2)的对应关系见表1-2。

表1-1 EAN-13条码字符与归一化值

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

表1-2 EAN-13字符编码与归一化值

条码识别 条形码的识别图像处理报告

可以看到条形码编码和归一化值在多数情况下呈现一一对应的关系,只要确定了归一化值就能确定字符值,但是有四种情况例外,在表1-2中知,左侧奇字符和右侧偶字符1,7归一化值均为44,左侧奇字符和右侧偶字符2,8归一化值均为33,左侧偶字符1,7归一化值均为34,左侧偶字符2,8归一化值均为

43。(www.61k.com]这两种情况可以在判别字符时根据C1,C2,C3,C4进一步判别,根据它们条空宽度特点进行判别。有1728字符标准条空宽度值的特点知:对于左侧奇字符、右侧偶字符1和7可通过C3与C4作比较,C3>C4者为字符1,反之为7;对于左侧奇字符、右侧偶字符2和8可通过C2与C3作比较,C2>C3者为字符8,反之为2;对于左侧偶字符1和7可通过C1与C2作比较,C1>C2者为字符7,反之为1;对于左侧偶字符2和8可通过C2与C3作比较,C2>C3者为字符2,反之为8。

由上述条码字符识别理论可总结出相似边距离测量法的一般步骤。由条码宽度的

计算我们得到了各个条、空的宽度(像素),并通过计算n=T/7,

。各个条空的宽度除以单位模块T=C1+C2+C3+C4得到单位模块的宽度(像素)

条码识别 条形码的识别图像处理报告

的宽度就是归一化的条空宽度。(www.61k.com)而为了方便译码,我们除去起始符3个条空,中间分隔符5个条空,终止符3个条空,对剩下的48个条空每4个条空为一组进行译码。计算相似边之间的距离t1、t2从而得到归一化(T1,T2)。最后查表可得条码字符。为检验译码的正确性利用校验位对码字进行校验。流程图如图1-5 和1728判别子程序流程如图1-6。

条码识别 条形码的识别图像处理报告

图1-5 字符判别流程图

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

图1-6 1728判别子程序流程图

三、设计步骤与结果

3.1设计步骤

对于一个条码图像我们先要对其进行一定的处理才能达到正确译码的目的。[www.61k.com]而要对其进行处理,首先是要将其读入。由于有噪声的存在,必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类型。最后就是要二值化,得到二值图像。 条码图像预处理流程图如图1-7所示。

图1-7 条码图像预处理流程图

⑴ MATLAB中利用函数imread来实现图像文件的读取操作。图1-8是首次需要处理的条码图片。

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

该语句实现在条码图像I中加入椒盐噪声。(www.61k.com)

⑶ 条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的影响,一些噪声将会对图像的质量产生影响。任何一幅未经处理的原始图象,都存在一定程度的噪声干扰。不同的噪声干扰,处理方法不同。影响条码图像质量最典型的噪声是椒盐噪声。椒盐噪声的特点是此干扰在图像中是以孤立点的形式

条码识别 条形码的识别图像处理报告

存在的。[www.61k.com)

针对噪声的类型,采用中值滤波。中值滤波是一种非线性信号处理方法。可以克服线性滤波器如最小均方滤波,平均值滤波(平滑滤波)等所带来的图像细节模糊。而且对于脉冲干扰及点状噪声有良好抑制作用,能较好保持图像边缘。它可以起到既消除噪声又保持图像细节的作用。

61阅读提醒您本文地址:

为了达到好的滤波效果应选择合适的滤波窗口。从条码图像的特征来讨论选择采用的中值滤波窗口。条码图像的特点在于是由纵向一定宽度黑白条空组成,我们建立不同大小的模板,对含有噪声的图像进行滤波处理,比较它们滤除噪声干扰的效果。

在MATLAB中可以使用imfilter函数或filter2函数调用创建好的滤波器(可以是预定义滤波器,也可以是自定义滤波器)对图像进行滤波。

指定了一个阈值T之后,将图像中的像素与阈值作比较,如果图像中某像素的灰度值小于该阈值,则将该像素的灰度值设置为0,否则灰度值设置为255。

按下式对图像进行处理可得到二值图像g(x,y):

?T?255f(x,y) g(x,y)?? f(x,y)?T?0

在MATLAB中,通过使用函数graythresh和im2bw创建一个新的二值图像bw:

level=graythresh(L);

bw=im2bw(L,level);

根据上述译码理论,采用相似边距离测量方法对图1-8预处理后的条码图像(二值图像)进行译码,得到如下所示译码结果:

条码识别 条形码的识别图像处理报告

图1-9是第二张需要处理的条码图片。

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

图1-9 需要处理的条码

根据条码图像预处理的理论知识编译相关的MATLAB程序,得到如图1-10所示的图像预处理结果。(www.61k.com)

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

图1-10 条码图像预处理

得到如下所示译码结果:

条码识别 条形码的识别图像处理报告

3.2结果分析

误码率方面,一般情况下条码都能够正确识读。[www.61k.com)但在由一个字符的归一化的相似边距离t1、t2转换为T序列值T1、T2时,如果t1、t2的值为2.5、3.5、4.5

之一,系统将不能正确的将其转换为T序列值,此时存在最大的误码率,条码几乎不能被正确识读。所以应该尽量避免此种情况的发生,这就要求我们做好图像的预处理工作,防止条码线条过度展宽或细化。

需要指出的是,在实际的译码中还存在着正向译码和反向译码的情况,两种情况下字符编码对应着不同的归一化值。因此译码前需要判别译码方向。本设计直接采用正向译码。最后,译码是编码的反过程,编码技术的熟练掌握对译码工作有着事半功倍的效果。

四、课程设计总结

条码识别 条形码的识别图像处理报告

通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条码仍能正确识读。(www.61k.com]这是因为我们选择了相似边距离测量的方法。可见,影响条码识别效果的不仅仅是条码图像预处理效果,译码方法更是不可忽视的重要原因。相似边距离测量方法有着其它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别,而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。

五、心得体会

在对条码图像作相应的图像预处理之后,对得到的二值条码图像利用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。通过实验,识别效果不错,误码率低,提高了条码的识别率。本次设计在译码方法上进行了比较选择,确定了相似边距离的测量方法的优越性。这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值。另外用软件实现条码的识别比硬件具有更好的抗噪声性能,且速度快,效率高。

尽管如此,设计中也遇到了很多的问题有待进一步的解决和探索研究。本设计只是对质量较好的条码图像进行一般性处理,但实际中的图像并都不是这么理想,例如条码污染、条码断裂、条码瑕疵等。这些需要进行特殊的图像处理过程才能达到译码的目的。如果条码被污染了要进行修复,条码发生几何畸变要进行图像矫正等等。只有考虑到更多的方面才能提高系统的性能和适应性,对一定质量范围内的条码图像都能进行有效的处理。

在设计中,由于本人在图像处理上的造诣不高,对很多细节、常识方面了解不够导致问题的出现,而且没能采取科学的方法进行错误分析、排查,使得问题小却难以解决。今后在做类似的工作的时候要注重基础知识的学习,并讲究科学的方法。做软件编程的对所用语言基础要够熟练掌握并能借助一定的参考资料进一步充实自己,提高自己。

六、参考文献

条码识别 条形码的识别图像处理报告

[1] 邹永星.条码国家标准汇编[M].北京.中国标准出版社.2004:12-21

[2] 中国自动识别技术协会.条码技术基础[M] .武汉.武汉大学出版社.2008:15-16

[3] 黄红, 黄才骏.条码的奥秘[M]. 北京.中国铁道出版社.2000:69-72

[4] 王雅静.EAN-13 条码图像辨识方法的研究[D].青岛.山东科技大学.2003

[5] 唐莉,刘富强.条码国家标准汇编[M].北京.中国标准出版社.2004:11-25

[6] 张铎,王耀球.条码技术与电子数据交换[M].北京.中国铁道出版社.1998:13-16

[7 薛红.条码技术及商业自动化系统-条码技术[M] .北京.中国轻工业出版社.2008:67-69

附录一、源程序

条码识别 条形码的识别图像处理报告

%function code = barcode(pic) %条形码识别

61阅读提醒您本文地址:

close all

check_left = [13,25,19,61,35,49,47,59,55,11;... %左边数据编码,奇 39,51,27,33,29,57, 5,17, 9,23]; %左边数据编码,偶 check_right = [114,102,108,66,92,78,80,68,72,116]; %右边数据编码 first_num = [31,20,18,17,12,6,3,10,9,5]; %第一位数据编码 bar = imread('123.bmp'); %读输入条形码图片

bar_Gray = rgb2gray(bar); %将RGB图片转换灰度图

figure(1)

imshow(bar)

title('条形码图')

figure(2)

subplot(121),imshow(bar_Gray),title('灰度图')

subplot(122),imhist(bar_Gray),title('灰度图直方图')

bar_Gray= imnoise(bar_Gray, 'salt & pepper', 0.02);

figure(3)

subplot(121); imshow(bar); title('原图像');

subplot(122); imshow(bar_Gray); title('添加椒盐噪声图像');

bar_Gray = medfilt2(bar_Gray); %进行3*3模板中值滤波 figure(4)

imshow(bar_Gray)

title('中值滤波之后图片')

%for i=1:m %对图像进行二值化处理

%for j=1:n

% if bar_Gray(i,j)>150 %选择适当的阈值进行二值化处理 % bar_10(i,j) = 1;

%else

% bar_10(i,j) = 0;

%end

%end

条码识别 条形码的识别图像处理报告

%end

[a_hist x] = imhist(bar_Gray);

hist_max = [];

if a_hist(1)>a_hist(2)

hist_max = [hist_max 1];

end

x = max(x);

for i=2:x

if a_hist(i)>a_hist(i-1) && a_hist(i)>a_hist(i+1) hist_max = [hist_max i];

end

end

if a_hist(x)<a_hist(x+1)

hist_max = [hist_max x+1];

end

[m,n] = size(hist_max);

k = 0;

max_1 = 0;

max_2 = 0;

for i=1:n

if k<a_hist(hist_max(i))

k = a_hist(hist_max(i));

max_1 = hist_max(i);

end

end

temp = a_hist(max_1);

a_hist(max_1) = 0;

k = 0;

for i=1:n

条码识别 条形码的识别图像处理报告

if k<a_hist(hist_max(i))

k = a_hist(hist_max(i));

max_2 = hist_max(i);

end

end

a_hist(max_1) = temp;

if max_1>max_2

k = max_1;

max_1 = max_2;

max_2 = k;

end

T = max_1;

k = a_hist(max_1);

for i=max_1:max_2

if k>a_hist(i)

k = a_hist(i);

T = i;

end

end

[m,n] = size(bar_Gray); %求灰度图的大小

for i=1:m %对图像进行二值化处理

for j=1:n

if bar_Gray(i,j)>T %选择适当的阈值进行二值化处理 bar_10(i,j) = 1;

else

bar_10(i,j) = 0;

end

end

end

figure(5)

条码识别 条形码的识别图像处理报告

imshow(bar_10);

title('二值化图')

l = 0; %检测59根条形码

for i=1:m

k = 1;

l = l+1;

for j=1:n-1

if bar_10(i,j)~=bar_10(i,j+1) %比较同一行相邻两点的颜色是否一致 %bar_x(l,k) = i;

bar_y(l,k) = j; %记录转折点的纵坐标

k = k+1; %准备记录下一个数据点

end

if k>61 %点数大于60,该行应该删掉

l = l-1;

break

end

end

if k<61 %点数小于60,该行应该删掉

l = l-1;

end

end

[m,n] = size(bar_y);

if m<=1 %查看条形码是否有效

code = '0';

fprintf(1,'GameOver!\n');

return

end

for i=1:m %计算每根条形码的宽度

for j=1:n-1

bar_num(i,j) = bar_y(i,j+1) - bar_y(i,j);

条码识别 条形码的识别图像处理报告

if bar_num(i,j)<0

bar_num(i,j) = 0;

end

end

end

bar_sum = sum(bar_num)/m; %求每根条形码宽度的平均值 k = 0;

for i=1:59 %计算59根条形码的总宽度

k = k + bar_sum(i);

end

k = k/95; %计算单位条形码的宽度

for i=1:59 %计算每根条形码所占位数

bar_int(i) = round(bar_sum(i)/k);

end

k = 1;

for i=1:59 %将条形码转换成二进制数

if rem(i,2)

for j=1:bar_int(i) %黑色条用1表示

bar_01(k) = 1;

k = k+1;

end

else

for j=1:bar_int(i) %白色条用0表示

bar_01(k) = 0;

k = k+1;

end

end

end

if ((bar_01(1)&&~bar_01(2)&&bar_01(3))... %判断起始符是否正确

条码识别 条形码的识别图像处理报告

&&(~bar_01(46)&&bar_01(47)&&~bar_01(48)&&bar_01(49)&&~bar_01(50))... %判断中间分隔符是否正确

&&(bar_01(95)&&~bar_01(94)&&bar_01(93))) %判断终止符是否正确 l = 1;

for i=1:6 %将左侧42位二进制数转换为十进制数

bar_left(l) = 0;

for k=1:7

bar_left(l) = bar_left(l)+bar_01(7*(i-1)+k+3)*(2^(7-k));

end

l = l+1;

end

l = 1;

for i=1:6 %将右侧42位二进制数转换为十进制数

bar_right(l) = 0;

for k=1:7

bar_right(l) = bar_right(l)+bar_01(7*(i+6)+k+1)*(2^(7-k)); k = k-1;

end

l = l+1;

end

end

num_bar = '';

num_first = 0;

first = 2;

61阅读提醒您本文地址:

for i=1:6 %从左边数据编码表中查出条形码编码数字

for j=0:1

for k=0:9

if bar_left(i)==check_left(j+1,k+1)

num_bar = strcat(num_bar , num2str(k));

switch first %记录左边数据的奇偶顺序

条码识别 条形码的识别图像处理报告

case 2

first = j;

break;

case 1

num_first = num_first + j*(2^(6-i)); break;

case 0

num_first = num_first + ~j*(2^(6-i)); break;

otherwise

break;

end

end

end

end

end

for i=1:6 %从右边数据编码表中查出条形码编码数字

for j=0:9

if bar_right(i)==check_right(j+1)

num_bar = strcat(num_bar , num2str(j)); end

end

end

for i=0:9 %从第一位数据编码表中查出第一位数字

if num_first==first_num(i+1)

num_bar = strcat(num2str(i) , num_bar);

break;

end

end

条码识别 条形码的识别图像处理报告

if numel(num_bar)~=13

fprintf(1,'Please Turn It Around!\n');

return

end

check_code = 0;

for i=1:12 %计算校验码

if rem(i,2)

check_code = check_code + str2num(num_bar(i)); else

check_code = check_code + str2num(num_bar(i))*3; end

end

check_code = rem(check_code,10);

if check_code>0

check_code = 10 - check_code;

end

if check_code==str2num(num_bar(13)) %判断校验码是否正确 disp('识别出的条形码:')

code = num_bar

else

fprintf(1,'Please Turn It Around!\n');

return

end

条码识别 条形码的识别图像处理报告

图像通信课程设计成绩评定表

1. 课程设计报告成绩评价表

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

2.平时成绩

3. 课程设计总评成绩(报告70% + 平时30%)

指导老师: 时间:

61阅读提醒您本文地址:

三 : 条形码的识别图像处理报告

华侨大学厦门工学院

题 目: 专业、班级: 学生姓名: 学 号: 指导教师: 分 数 :

目 录

一、设计任务及要求...................................................... 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条码的一个字符。条、空宽度的定义如下:图中C1、C2、C3、C4表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度。

条码识别 条形码的识别图像处理报告

图1-1 EAN-13条码宽度的定义

设一个字符中单位模块的宽度为n,则单位模块的宽度:

n=T/7

T=C1+C2+C3+C4

由于条码条、空宽度C1、C2、C3、C4已知,设条码条、空分别占单位模块的个数为mi,则:

mi=Ci/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条码译码方案: 方案一:宽度测量法

在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。

方案二:平均值法

对条码符号图像中从起始符到终止符整个宽度进行测量,然后除以95(标准宽度),求出单位模块所含的像素列宽,再分别测量各个条空的实际宽度(此宽度以单位宽度为单位计算)。

方案三:相似边距离的测量方法

这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素宽度的实际测量值来判别。

前两种方案对条码图像的要求非常高,因为它们都是测量各元素符号的实际宽度,然后根据查表法得到所代表的码值。如果实际测量值与标准值存在一点偏差,就不能实现正确译码。而第三种方案正是有效的解决了这一问题,因此本文采用相似边距离测量的方法来实现译码功能。下面就简要说明一下这一方法。

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

整个条码字符占的条空总数为59,若条码字符没有发生几何畸变,一行扫描应记录的坐标数为60个。而对于有几何畸变的条码图像,例如条码污染、条码断裂、条码瑕疵等,该扫描行的坐标数将肯定大于60或小于60,这时将不记录该扫描行,对此行不处理。这样利用图像统计方法,逐行扫描图像,获取条码图像信息,比起只由一行获取信息的方式可靠性更高,这样即使个别噪声点存在并不影响图像信息的获取。

(1)条码宽度的计算:

设条码字符颜色由黑变为白或由白变为黑(由“0”变为“1”或由“1”变为“0”)的各点坐标为x1、x2、 ……、x60。则一行扫描的条空宽度(像素)分别为:c1=x2-x1、c2=x3-x2、……、c59=x60-x59。

由上述图像条码译码理论可总结出条码条空宽度计算步骤,如图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给出了相似边之间的距离,则图中t1,t2,t3,t4,t5,t6,t7(归一化值)为条形码相似边距离。本文采用归一化理论,

用一种相似边距离归一化的方法对字符进行判别。该方法即使条码印刷质量有偏差,仍能正确对条码进行识读。

条码识别 条形码的识别图像处理报告

图1-3 相似边之间的距离 图1-4 条码字符宽度示图

首先见图1-4各种宽度的定义: C1, C2, C3, C4表示每个字符中四个相邻条、空的宽度,T表示一个字符的宽度,t1,t2为相似边之间的距离,则用下

列值Ti (i=1,2)来定义T1与T2的归一化值。

测量7个宽度值T,t1,t2,t3,t4,t5,t6;然后将测量值t1,t2,t3,t4,t5,t6转换为常数值T1,T2,T3,T4,T5,T6即T序列值,它代表了这些测量值的整数模块宽,以下方法用于i序列值的求取:

若1.5≦ti≦2.5,那么Ti=2

若2.5≦ti≦3.5,那么Ti=3

若3.5≦ti≦4.5,那么Ti=4

若4.5≦ti≦5.5,那么Ti=5

表1-1列出了正向译码时,EAN-13条码字符值与归一化值(T1,T2)的对应关系。

表1-1中“E”表示偶字符,“O”表示奇字符。

EAN-13码字符编码与归一化值(T1,T2)的对应关系见表1-2。

表1-1 EAN-13条码字符与归一化值

条码识别 条形码的识别图像处理报告

表1-2 EAN-13字符编码与归一化值

条码识别 条形码的识别图像处理报告

可以看到条形码编码和归一化值在多数情况下呈现一一对应的关系,只要确定了归一化值就能确定字符值,但是有四种情况例外,在表1-2中知,左侧奇字符和右侧偶字符1,7归一化值均为44,左侧奇字符和右侧偶字符2,8归一化值均为33,左侧偶字符1,7归一化值均为34,左侧偶字符2,8归一化值均为

43。这两种情况可以在判别字符时根据C1,C2,C3,C4进一步判别,根据它们条空宽度特点进行判别。有1728字符标准条空宽度值的特点知:对于左侧奇字符、右侧偶字符1和7可通过C3与C4作比较,C3>C4者为字符1,反之为7;对于左侧奇字符、右侧偶字符2和8可通过C2与C3作比较,C2>C3者为字符8,反之为2;对于左侧偶字符1和7可通过C1与C2作比较,C1>C2者为字符7,反之为1;对于左侧偶字符2和8可通过C2与C3作比较,C2>C3者为字符2,反之为8。

由上述条码字符识别理论可总结出相似边距离测量法的一般步骤。由条码宽度的

计算我们得到了各个条、空的宽度(像素),并通过计算n=T/7,

。各个条空的宽度除以单位模块T=C1+C2+C3+C4得到单位模块的宽度(像素)

的宽度就是归一化的条空宽度。而为了方便译码,我们除去起始符3个条空,中间分隔符5个条空,终止符3个条空,对剩下的48个条空每4个条空为一组进行译码。计算相似边之间的距离t1、t2从而得到归一化(T1,T2)。最后查表可得条码字符。为检验译码的正确性利用校验位对码字进行校验。流程图如图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中加入椒盐噪声。

⑶ 条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的影响,一些噪声将会对图像的质量产生影响。任何一幅未经处理的原始图象,都存在一定程度的噪声干扰。不同的噪声干扰,处理方法不同。影响条码图像质量最典型的噪声是椒盐噪声。椒盐噪声的特点是此干扰在图像中是以孤立点的形式

存在的。

针对噪声的类型,采用中值滤波。中值滤波是一种非线性信号处理方法。可以克服线性滤波器如最小均方滤波,平均值滤波(平滑滤波)等所带来的图像细节模糊。而且对于脉冲干扰及点状噪声有良好抑制作用,能较好保持图像边缘。它可以起到既消除噪声又保持图像细节的作用。

为了达到好的滤波效果应选择合适的滤波窗口。从条码图像的特征来讨论选择采用的中值滤波窗口。条码图像的特点在于是由纵向一定宽度黑白条空组成,我们建立不同大小的模板,对含有噪声的图像进行滤波处理,比较它们滤除噪声干扰的效果。

在MATLAB中可以使用imfilter函数或filter2函数调用创建好的滤波器(可以是预定义滤波器,也可以是自定义滤波器)对图像进行滤波。

指定了一个阈值T之后,将图像中的像素与阈值作比较,如果图像中某像素的灰度值小于该阈值,则将该像素的灰度值设置为0,否则灰度值设置为255。

按下式对图像进行处理可得到二值图像g(x,y):

?T?255f(x,y) g(x,y)?? f(x,y)?T?0

在MATLAB中,通过使用函数graythresh和im2bw创建一个新的二值图像bw:

level=graythresh(L);

bw=im2bw(L,level);

根据上述译码理论,采用相似边距离测量方法对图1-8预处理后的条码图像(二值图像)进行译码,得到如下所示译码结果:

条码识别 条形码的识别图像处理报告

图1-9是第二张需要处理的条码图片。

条码识别 条形码的识别图像处理报告

图1-9 需要处理的条码

根据条码图像预处理的理论知识编译相关的MATLAB程序,得到如图1-10所示的图像预处理结果。

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

条码识别 条形码的识别图像处理报告

图1-10 条码图像预处理

得到如下所示译码结果:

条码识别 条形码的识别图像处理报告

3.2结果分析

误码率方面,一般情况下条码都能够正确识读。但在由一个字符的归一化的相似边距离t1、t2转换为T序列值T1、T2时,如果t1、t2的值为2.5、3.5、4.5

之一,系统将不能正确的将其转换为T序列值,此时存在最大的误码率,条码几乎不能被正确识读。所以应该尽量避免此种情况的发生,这就要求我们做好图像的预处理工作,防止条码线条过度展宽或细化。

需要指出的是,在实际的译码中还存在着正向译码和反向译码的情况,两种情况下字符编码对应着不同的归一化值。因此译码前需要判别译码方向。本设计直接采用正向译码。最后,译码是编码的反过程,编码技术的熟练掌握对译码工作有着事半功倍的效果。

四、课程设计总结

通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条码仍能正确识读。这是因为我们选择了相似边距离测量的方法。可见,影响条码识别效果的不仅仅是条码图像预处理效果,译码方法更是不可忽视的重要原因。相似边距离测量方法有着其它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别,而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。

五、心得体会

在对条码图像作相应的图像预处理之后,对得到的二值条码图像利用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。通过实验,识别效果不错,误码率低,提高了条码的识别率。本次设计在译码方法上进行了比较选择,确定了相似边距离的测量方法的优越性。这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值。另外用软件实现条码的识别比硬件具有更好的抗噪声性能,且速度快,效率高。

尽管如此,设计中也遇到了很多的问题有待进一步的解决和探索研究。本设计只是对质量较好的条码图像进行一般性处理,但实际中的图像并都不是这么理想,例如条码污染、条码断裂、条码瑕疵等。这些需要进行特殊的图像处理过程才能达到译码的目的。如果条码被污染了要进行修复,条码发生几何畸变要进行图像矫正等等。只有考虑到更多的方面才能提高系统的性能和适应性,对一定质量范围内的条码图像都能进行有效的处理。

在设计中,由于本人在图像处理上的造诣不高,对很多细节、常识方面了解不够导致问题的出现,而且没能采取科学的方法进行错误分析、排查,使得问题小却难以解决。今后在做类似的工作的时候要注重基础知识的学习,并讲究科学的方法。做软件编程的对所用语言基础要够熟练掌握并能借助一定的参考资料进一步充实自己,提高自己。

六、参考文献

本文标题:图像处理和模式识别-90图像处理和模式识别考试复习
本文地址: http://www.61k.com/1061683.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1