缺損一維條碼的解碼方法
【專利摘要】本發(fā)明涉及一種缺損一維條碼的解碼方法,其以現(xiàn)有技術(shù)定位條碼圖像中的條碼中心、確定條碼方向并畫一條以條碼方向?yàn)樽呦虻慕?jīng)過條碼中心點(diǎn)的線,以這條線提取到的信息作為初次解碼數(shù)據(jù),如果解碼成功,則返回解碼信息,如果解碼失敗,則以這條中線為基準(zhǔn),向上向下分別畫一條平行于條碼中線的直線,作為再次解碼的數(shù)據(jù)。本發(fā)明的有益效果是:能滿足缺損條碼解碼需求,提高解碼率。
【專利說明】
缺損一維條碼的解碼方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種對一維碼的方向進(jìn)行快速判別的方法。
【背景技術(shù)】
[0002]—維條碼解碼方法主要是根據(jù)現(xiàn)有技術(shù)確定條碼中心點(diǎn),在中心點(diǎn)確定的基礎(chǔ)上確定條碼方向,順著條碼走向畫線,得到條空數(shù)據(jù)解碼。一旦條碼信息有缺失,將導(dǎo)致數(shù)據(jù)不完整,最終使得解碼失敗。
[0003]攝像頭采集條碼圖像時(shí),可能因?yàn)闂l碼本身的破損、外界光照不均(明暗分布不均)或者攝像頭過曝光導(dǎo)致采集解碼難以成功。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是:解碼帶缺損的一維條碼。
[0005]為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是提供了一種缺損一維條碼的解碼方法,包括以下步驟:
[0006]步驟1、定位條碼圖像中的條碼中心、確定條碼方向,畫一條以條碼方向?yàn)樽呦虻慕?jīng)過條碼中心的條碼中心掃描線;
[0007]步驟2、提取條碼中心掃描線的邊界數(shù)據(jù),進(jìn)行初次解碼,若解碼成功,則當(dāng)前解碼結(jié)束,若解碼失敗,則進(jìn)入步驟3,其特征在于:
[0008]步驟3、在條碼中心掃描線的上方或下方,且平行于條碼中心掃描線,得到一條掃描線,將該掃描線定義為當(dāng)前掃描線;
[0009]步驟4、提取當(dāng)前掃描線的邊界數(shù)據(jù);
[0010]步驟5、比對步驟4得到的邊界數(shù)據(jù)及條碼中心掃描線的邊界數(shù)據(jù),獲得條碼中心掃描線所對應(yīng)邊界數(shù)據(jù)的缺損信息;
[0011]步驟6、根據(jù)缺損信息補(bǔ)充條碼中心掃描線上缺失的邊界,更新條碼中心掃描線的邊界數(shù)據(jù);
[0012]步驟7、將通過步驟6得到的條碼中心掃描線再次用于解碼,若解碼成功,則當(dāng)前解碼結(jié)束。
[0013]優(yōu)選地,在所述步驟7中,若解碼失敗,則進(jìn)入步驟8;
[0014]步驟8、設(shè)定解碼次數(shù),每增加一條掃描線,解碼次數(shù)加I,判斷解碼次數(shù)是否超過設(shè)定的閾值,若沒有超過,則根據(jù)步驟3相同方法得到一條與當(dāng)前掃描線不同的掃描線,將當(dāng)前掃描線更新為步驟8得到的掃描線,返回步驟4,若超過,則解碼失敗。
[0015]優(yōu)選地,在所述步驟3中,在所述條碼中心掃描線的上方和/或下方,且平行于條碼中心掃描線,得到N條掃描線,N多2,N條掃描線遵循由上至下、由靠近所述條碼中心掃描線至遠(yuǎn)離所述條碼中心掃描線的規(guī)則進(jìn)行排序,將第一條掃描線設(shè)定為當(dāng)前掃描線;
[0016]則在所述步驟4中,提取當(dāng)前掃描線的邊界數(shù)據(jù);
[0017]則在所述步驟7中,若解碼失敗,進(jìn)入步驟8;
[0018]步驟8、判斷當(dāng)前掃描線是否為最后一條掃描線,若是,則解碼失敗,若否,則將當(dāng)前掃描線更新為下一條掃描線,返回步驟4。
[0019]發(fā)明的總體思路是:以現(xiàn)有技術(shù)定位條碼圖像中的條碼中心、確定條碼方向并畫一條以條碼方向?yàn)樽呦虻慕?jīng)過條碼中心點(diǎn)的線,以這條線提取到的信息作為初次解碼數(shù)據(jù),如果解碼成功,則返回解碼信息,如果解碼失敗,則以這條中線為基準(zhǔn),向上向下分別畫一條平行于條碼中線的直線,作為再次解碼的數(shù)據(jù)。
[0020]本發(fā)明的有益效果是:能滿足缺損條碼解碼需求,提高解碼率。
【附圖說明】
[0021 ]圖1為本發(fā)明方法具體實(shí)施例缺損條碼邊界比對示意圖;
[0022]圖2為本發(fā)明系統(tǒng)具體實(shí)施例條碼解碼流程圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明更明顯易懂,茲以優(yōu)選實(shí)施例,并配合附圖作詳細(xì)說明如下。
[0024]本發(fā)明最關(guān)鍵的構(gòu)思在于:通過平移掃描線,實(shí)現(xiàn)條碼缺損信息的填充。
[0025]如圖2所示,為本發(fā)明一具體實(shí)施例缺損條碼掃描線邊界比對方法示意圖,圖中所示為條碼中的一個(gè)區(qū)段,序號I為條碼中心掃描線,序號2為平行于條碼中心掃描線且相隔N行(例如5行)的掃描線。由圖可知,條碼中心掃描線I缺損了線段3和線段7部分的信息,而掃描線2則缺損了線段6部分的信息。如果直接將條碼中心掃描線I或掃描線2送入解碼,則會因其邊界缺損導(dǎo)致解碼失敗。此時(shí)需要比對條碼中心掃描線I及掃描線2的邊界數(shù)據(jù),掃描線2中線段4和線段8所表示的邊界信息剛好可以彌補(bǔ)中心掃描線中線段3和線段7所表示的邊界信息,條碼中心掃描線I中線段5所表示的邊界信息則剛好彌補(bǔ)了掃描線2所表示的邊界信息。將條碼中心掃描線I與掃描線2的邊界信息比對后,互相填補(bǔ),則使得條碼中心掃描線I和掃描線2的邊界信息都趨于完整,此時(shí)送入解碼,能大大提高成功率。
[0026]基于以上思路,本發(fā)明實(shí)施例公開了一種缺損條碼解碼的方法,結(jié)合圖2,包括如下步驟:
[0027]S1:利用現(xiàn)有技術(shù)確定條碼中心掃描線;
[0028]S2:將條碼中心掃描線用于解碼,若解碼成功,則退出本方法,若解碼失敗,在條碼中心掃描線的上方或者下方,且平行于條碼中心掃描線另取一組掃描線,以彌補(bǔ)條碼缺損信息,將掃描線定義為當(dāng)前掃描線;
[0029]S3:提取當(dāng)前掃描線的邊界數(shù)據(jù);
[0030]S4:比對步驟S3得到的邊界數(shù)據(jù)及條碼中心掃描線的邊界數(shù)據(jù),獲得條碼中心掃描線所對應(yīng)邊界數(shù)據(jù)的缺損信息;
[0031]S5:根據(jù)缺損信息補(bǔ)充條碼中心掃描線上缺失的邊界,更新條碼中心掃描線的邊界數(shù)據(jù);
[0032]S6:設(shè)定解碼次數(shù)(將其初始化為I)及解碼次數(shù)閾值,將通過步驟S5得到的條碼中心掃描線再次用于解碼,若解碼成功,則當(dāng)前解碼結(jié)束,退出本方法,若解碼失敗,則進(jìn)入步驟S7;
[0033]S7:將解碼次數(shù)加I,判斷解碼次數(shù)是否超過解碼次數(shù)閾值,若未超過,則利用步驟S2相同的方法得到一組與當(dāng)前掃描線不同的掃描線,將當(dāng)前掃描線更新為步驟S7得到的掃描線,返回步驟S3。
[0034]上述技術(shù)方案是通過設(shè)定解碼次數(shù)來防止整個(gè)方法陷入死循環(huán),本領(lǐng)域技術(shù)也可以采用利用掃描線的數(shù)量來防止整個(gè)方法陷入死循環(huán),其與上述方法的區(qū)別在于:
[0035]在步驟S2中,將條碼中心掃描線用于解碼,若解碼成功,則退出本方法,若解碼失敗,在條碼中心掃描線的上方或者下方,且平行于條碼中心掃描線另取N組掃描線,N多2,N條掃描線遵循由上至下、由靠近所述條碼中心掃描線至遠(yuǎn)離所述條碼中心掃描線的規(guī)則進(jìn)行排序,將第一條掃描線設(shè)定為當(dāng)前掃描線;
[0036]則在所述步驟S7,判斷當(dāng)前掃描線是否為最后一條掃描線,若是,則解碼失敗,若否,則將當(dāng)前掃描線更新為下一條掃描線,返回步驟S3。
[0037]與現(xiàn)有技術(shù)相比,本發(fā)明的解碼方法的有益效果在于:既能滿足完整條碼的解碼需求,又能滿足缺損條碼解碼需求,提高解碼率。
[0038]以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.缺損一維條碼的解碼方法,包括以下步驟: 步驟1、定位條碼圖像中的條碼中心、確定條碼方向,畫一條以條碼方向?yàn)樽呦虻慕?jīng)過條碼中心的條碼中心掃描線; 步驟2、提取條碼中心掃描線的邊界數(shù)據(jù),進(jìn)行初次解碼,若解碼成功,則當(dāng)前解碼結(jié)束,若解碼失敗,則進(jìn)入步驟3,其特征在于: 步驟3、在條碼中心掃描線的上方或下方,且平行于條碼中心掃描線,得到一條掃描線,將該掃描線定義為當(dāng)前掃描線; 步驟4、提取當(dāng)前掃描線的邊界數(shù)據(jù); 步驟5、比對步驟4得到的邊界數(shù)據(jù)及條碼中心掃描線的邊界數(shù)據(jù),獲得條碼中心掃描線所對應(yīng)邊界數(shù)據(jù)的缺損信息; 步驟6、根據(jù)缺損信息補(bǔ)充條碼中心掃描線上缺失的邊界,更新條碼中心掃描線的邊界數(shù)據(jù); 步驟7、將通過步驟6得到的條碼中心掃描線再次用于解碼,若解碼成功,則當(dāng)前解碼結(jié)束。2.如權(quán)利要求1所述的一種缺損一維條碼的解碼方法,其特征在于,在所述步驟7中,若解碼失敗,則進(jìn)入步驟8; 步驟8、設(shè)定解碼次數(shù),每增加一條掃描線,解碼次數(shù)加I,判斷解碼次數(shù)是否超過設(shè)定的閾值,若沒有超過,則根據(jù)步驟3相同方法得到一條與當(dāng)前掃描線不同的掃描線,將當(dāng)前掃描線更新為步驟8得到的掃描線,返回步驟4,若超過,則解碼失敗。3.如權(quán)利要求1所述的一種缺損一維條碼的解碼方法,其特征在于,在所述步驟3中,在所述條碼中心掃描線的上方和/或下方,且平行于條碼中心掃描線,得到N條掃描線,N多2,N條掃描線遵循由上至下、由靠近所述條碼中心掃描線至遠(yuǎn)離所述條碼中心掃描線的規(guī)則進(jìn)行排序,將第一條掃描線設(shè)定為當(dāng)前掃描線; 則在所述步驟7中,若解碼失敗,進(jìn)入步驟8; 步驟8、判斷當(dāng)前掃描線是否為最后一條掃描線,若是,則解碼失敗,若否,則將當(dāng)前掃描線更新為下一條掃描線,返回步驟4。
【文檔編號】G06K7/10GK105975888SQ201610288790
【公開日】2016年9月28日
【申請日】2016年5月4日
【發(fā)明人】劉寧
【申請人】上?;屎托畔⒖萍加邢薰?br>