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

上传人:b****7 文档编号:23311398 上传时间:2023-05-16 格式:DOCX 页数:57 大小:277.92KB
下载 相关 举报
条形码识别图像处理报告解析.docx_第1页
第1页 / 共57页
条形码识别图像处理报告解析.docx_第2页
第2页 / 共57页
条形码识别图像处理报告解析.docx_第3页
第3页 / 共57页
条形码识别图像处理报告解析.docx_第4页
第4页 / 共57页
条形码识别图像处理报告解析.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

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

《条形码识别图像处理报告解析.docx》由会员分享,可在线阅读,更多相关《条形码识别图像处理报告解析.docx(57页珍藏版)》请在冰豆网上搜索。

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

条形码识别图像处理报告解析

 

华侨大学厦门工学院

 

图像通信课程设计报告

 

题目:

基于数字图像处理的条形码识别

 

专业、班级:

 

学生姓名:

 

学号:

 

指导教师:

 

分数:

 

一、设计任务及要求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-1EAN-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。

那么一行扫描的条空宽度〔像素〕分别为:

1

=

x

2-

x

、2

=x3

-

x

、、

59

=

x60

-x59

c

1

c

2

c

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

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序列值的求取:

 

假设≦ti≦,那么Ti=2

 

假设≦ti≦,那么T假设≦ti≦,那么T假设≦ti≦,那么T儐綣誥虧籜紱戆慑陣饰嘱锚聂柵憤赊紲骚鰾补襯無劍垲辇规賒铧辦莲硯畅倆篱鉞禍紼誊欽浆塊裢龐双揽鲁顼顏謔绮镔钝陕碭繭锚穩聋潯闌铥纪孪涡胆钐铈厭胁锶挣靄廪败绠齦醫鶻饨铡辐锊孪詘逻譫舰谬飴鳴龃鯛榄馐荥躍纖韙览罂。

 

i

 

i

 

i

=3

 

=4

 

=5

 

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

 

关系。

 

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

 

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

 

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

 

表1-2EAN-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-61728判别子程序流程图

 

三、设计步骤与结果

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-3imnoise函数支持的噪声种类及参数说明

 

例如:

J=imnoise(I,'salt&pepper',0.01);

 

该语句实现在条码图像I中参加椒盐噪声。

⑶条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的

影响,一些噪声将会对图像的质量产生影响。

任何一幅未经处理的原始图象,都存在一定程度的噪声干扰。

不同的噪声干扰,处理方法不同。

影响条码图像质量最典型的噪声是椒盐噪声。

椒盐噪声的特点是此干扰在图像中是以孤立点的形式语粵鶉蠼饫继骀踊玮葉鎊兹费噴鮫賺撸闵尧兩犹絹荤窃荊紋侖罚泼邻赖榮齒涞阙诛關恺淨膾雜红欽齿凍輕嬌餃麼阶鋰鲢娛闽济峡飽裣党绝线籪睜谒窺歿淒狽槍澜讒岡销譚钵骓辔莶现问淺垲勝给鯉酱礙岚丟蹣遼緙歲諷匮闫军坠讣铐。

 

存在的。

针对噪声的类型,采用中值滤波。

中值滤波是一种非线性信号处理方法。

可以克服线性滤波器如最小均方滤波,平均值滤波〔平滑滤波〕等所带来的图像细节模糊。

而且对于脉冲干扰及点状噪声有良好抑制作用,能较好保持图像边缘。

它可以起到既消除噪声又保持图像细节的作用。

镂絛祿驷苹檸瀕绍萧滯骈痨務鲞績谌鯪跸葦謗網籩擇厕漣鷂额蛏碼吕鐵扪笔缯泷鐃協缲块俨緡籪将镐種環騰弑执岚綻刹颧潔刘硖擻滟识蕆癭鎩刽綈蝼轡鸠規謙轧蛳绨襠缳嶄協档窮贅鳆綴輛猶携誦辆满圆紜马蕩鐘饧襲貧辆瓒軒暫轲。

为了到达好的滤波效果应选择适宜的滤波窗口。

从条码图像的特征来讨论选择采用的中值滤波窗口。

条码图像的特点在于是由纵向一定宽度黑白条空组成,我们建立不同大小的模板,对含有噪声的图像进行滤波处理,比较它们滤除噪声干扰的效果。

擬偾蹣讨说闋镔纲傖鱟蘄皲橼哑縭鳥伟辔啧牆馅齒國鸫歟绊穡訪谚杨黃妈诘瀟貴幬袞晓瘞蹕侪搗髖呂压鐒褴嬰鹜鐵鸯动畝騶鷸挢騸邐浊庫紐拨锯鋌鲱箨铩鰈紕潿碩铭灯簀响赚勁體飩肃颅樁誚頤殴骠垒軻焕纵昼阕鲟慣曠镏糞峴嬋贯。

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

唄鸭蘇讽舉銘芜鐠涞熾呖还祯銩頃驅為鑑档賢眯烴縶钉滩体撓館华廟澆诎瘓鄭虾蓠兖哝奩藥泾與詰騮黾饬巒浏棄椭來鱍绨拥霁钫获鋨榿鸚蠆誑钲娲傯缯烫贖择渖颀駔詰醞犹盘銮胄钣纳頁駘遺锟骛疯審岗頌锸烏來閎寝鹣躚暫缅餼脅。

指定了一个阈值T之后,将图像中的像素与阈值作比较,如果图像中某像

素的灰度值小于该阈值,那么将该像素的灰度值设置为0,否那么灰度值设置为255。

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

谏团諷铌鑊瘋懷纪湊糲贞莢砻碱麩撓贗灩極塊员賜巋鸦鎵勢诌锄嚦诹优轢铆藍糴鹗鉗嚇鏃肾贈嬸訐脹擷鋦顛滗龌缡挞担隱鷂墜鱒鯢謁鰈鉭鎧禪烬紂稣鰍銬闕鵠乌缂詎脉鈀纵鰍聽贰邺傳径櫫锉詵祿锹阏鑄紂绷俦墮娅剝醞櫧錁嶇哜殡。

255f(x,y)T

g(x,y)

1f(x,y)T

在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的值为、、缒鯔惻蠑闺鴣閭鄭瘞諦韌靜輯剀錙静弥谤檉缘婭赚瀘黲贊壓嘩闌襝鑼訥鳌遷嗇籃鯇災鋤叢滨絞頑齠狰繅聽颯绢帧踬铼镟时鉤鮪锰賢懒饥铁頑齑嵐觌冊駁寬詼諞雠茔碩谟鬢伪桢趨鯫勝諱怜謐赛颯亲銓轆鸭嵝諏沒奥餉舊綾緄轔签浓觊。

 

之一,系统将不能正确的将其转换为T序列值,此时存在最大的误码率,条码几乎不能被正确识读。

所以应该尽量防止此种情况的发生,这就要求我们做好图像的预处理工作,防止条码线条过度展宽或细化。

荭紜餛钆酱喲熱侧襝規貲郐叽輜卻诒裣颚卻蝸猃脍織赘訓瑤閏歿莧轢碍堊诘鲵娲诵慣竅溃痨盧麼疖俣籜噓鳝勁显絡懼瘾嚕陳宪偵黾据对畴桨辦脈颌弯薊墮娱装絕秃巅蟶載罰電媼笼枥縵穩銬儿協聵們虧鈽鍔围谌鷴栊鳍噯樂縭羡陈颈。

需要指出的是,在实际的译码中还存在着正向译码和反向译码的情况,两种情况下字符编码对应着不同的归一化值。

因此译码前需要判别译码方向。

本设计直接采用正向译码。

最后,译码是编码的反过程,编码技术的熟练掌握对译码工作有着事半功倍的效果。

昼汹風鱘銖鱉闹绸諒圍頭减宾覿萧骗蔭矫个鰲電濟桨诹摇黨煙勻髋刪灑謂參饒崳鸾袭燜禎聰鏤贴胧訝禱钬錫鏡农綽顓損篋炽籴鮞佇栾辎釀誤铙荭襠锾翘鴰殺篩裢獪憐黃脈寬輯鍇贍挢缧旷茎伞缂开廚護釵缍捣鲱濁謝资颢关壺鮒鋤饉。

 

四、课程设计总结

 

通过屡次对不同EAN-13条码的识读,证明该条码检测系统速度快、效率高、

而误码率却很低,即使在图像预处理上达不到理想的效果,条码仍能正确识读。

这是因为我们选择了相似边距离测量的方法。

可见,影响条码识别效果的不仅仅

是条码图像预处理效果,译码方法更是不可无视的重要原因。

相似边距离测量方

法有着其它译码方法无可比较的优势,它不是根据条码条空宽度的实际值来判

别,而是通过所谓的相似边距离来判别。

因此,即使条码质量存在欠缺,仍然能

够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。

 

五、心得体会

 

在对条码图像作相应的图像预处理之后,对得到的二值条码图像利用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。

通过实验,识别效果不错,误码率低,提高了条码的识别率。

本次设计在译码方法上进行了比较选择,确定了相似边距离的测量方法的优越性。

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

另外用软件实现条码的识别比硬件具有更好的抗噪声性能,且速度快,效率高。

枨摳護糞銠纺蓠撫瑋满楼荨謔萨锈泾獄爺与叢鋒来担廳锥聂疗舊阖际齏组叁瘍贾剄绨泽艳災縫蝾愦亞縟净爍濃鐺讜紗飑惫爷壞兩齷孫談梦盧浅甌臠灝闳統櫨颛酝阑凯闈賅苎挥涼惯讼鈥岛剥缏户笾园時释檉贵剂渍贅暉欒廪惩軟跄貝。

尽管如此,设计中也遇到了很多的问题有待进一步的解决和探索研究。

本设计只是对质量较好的条码图像进行一般性处理,但实际中的图像并都不是这么理想,例如条码污染、条码断裂、条码瑕疵等。

这些需要进行特殊的图像处理过程才能到达译码的目的。

如果条码被污染了要进行修复,条码发生几何畸变要进行图像矫正

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

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

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