專利名稱:一種條形碼識別算法的制作方法
技術領域:
本發(fā)明涉及到一種條形碼識別方法,它適用于兩種元素寬的且一個字符中條符數(shù)固定的一類條形碼的識別。
目前使用的條形碼依不同的編碼方式而分為兩類,一類是兩種元素寬的條形碼,另一類是多種元素寬的條形碼。附圖1、附圖2是本發(fā)明涉及到的兩種元素寬條形碼一類中的兩種典型形式。附圖1中的條形碼由寬窄著色條符和寬窄非著色條符組成,寬條符為二進制值“1”,窄條符為二進制值“0”。附圖2中的條形碼由寬窄著色條符和窄非著色條符組成,寬著色條符為二進制值“1”,窄著色條符為二進制值“0”,非著色條符不攜帶信息。條形碼識別所要完成的是首先測量條形碼條符的寬度,然后對于已確定碼制的條形碼,通過對各測量值進行處理而確定出條形碼所代表的二進制信息。條形碼識別算法的核心在于如何將已確定碼制的條形碼條符寬度測量值轉化成其代表的二進制信息,這個過程實質上是個譯碼過程。目前比較通用的適合于兩種元素寬的條形碼譯碼算法有兩種。
第一種算法日本專利《記錄的翻譯方法及系統(tǒng)》,日本專利特許公報(B2)昭55-49354第5頁第43行至第6頁第15行,第8頁第30行至第11頁第19行(JapanesePatentApplicationLaidOpenNo.55-49354,L43P5-L15P6,L30P8-L19P11),其要點是將相鄰條符寬度測量值進行比較,即進行除法運算,比值同一個大于1的常數(shù)K比較,由比較結果判別二進制值。具體步驟如下設相鄰兩條符寬度值分別為A,B(1)B/A>K,則B為二進制“1”,A為二進制“0”;
(2)B/A<1/K,則B為二進制“0”,A為二進制“1”;
(3)1/K<B/A<K,則B和A的二進制值由下次比較確定。
在這里,K值應小于最小相鄰寬窄條符之比,并且大于最大寬(或窄)相鄰條符之比。該算法對由于掃描不均勻而帶來的測量值和實際條符寬度值的差別能有較大的容差范圍,但對印制誤差則比較敏感。以CODE-39碼為例,當條形碼寬度W=0.533mm,寬窄條符之比N=3.0時,允差t=0.184mm,這時兩相鄰窄條符之比最大為2.05,而相鄰寬窄條符之比最小為1.97,對這種情況,顯然無法選擇適當?shù)腒值而正確譯碼??梢?,對于一條完全符合條形碼印制標準的條形碼,在印制標準規(guī)定范圍內的誤差也會因這種算法失效而造成拒識。
第二種算法美國專利,《條形碼識別方法及設備》專利號4687912,第3頁第37行至第45行,第5頁第29行至第9頁第37行(UnitedStatesPatent,BARCODEREADINGMETHODANDAPPARATUSPatentNo.4687912,L37P3-L45P3,L29P5-L37P9)其要點是首先從幾個條符的寬度測量值中計算出基準值,然后每個條符寬度測量值同其相比,大于基準值的為二進制“1”,小于基準值的則為二進制“0”。這種算法對于寬條符值大于窄條符值而小于基準值的情況就無法正確譯碼。實際應用中,由于掃描的不均勻性,這種情況的出現(xiàn)不能完全消除。所以,這種算法也有其局限性。因此,以上兩種算法的一個共同之處在于都需要“人為”確定一個比較基準,各條符的二進制值的確定依賴于這個基準值,這不可避免地帶來以下問題(1)要合理地確定一個實時的和通用的基準是比較困難的,因而處理過程比較繁瑣;
(2)這種基準的得出包含有一定的人為因素,可靠性降低。
(3)只能對印制原因和掃描不均勻原因兩種誤差中的一種有比較好的抑制效果,而對另一種則比較敏感。
本發(fā)明的目的是針對現(xiàn)有技術的不足,提供一種不需要“人為”確定比較基準,而且對掃描不均勻和印制誤差都允許有較大的容差范圍的條形碼算法。
本發(fā)明的技術要點是對已確定碼制的、兩種元素寬的、一個字符的條符數(shù)固定的條形碼,利用條符寬窄所對應二進制信息非“1”即“0”的特點,先測量條形碼的各條符寬度,然后對每一個字符中的條符寬度測量值分別進行大小排序,并根據(jù)碼制規(guī)定確定相應寬條符個數(shù),進而確定各條符的二進制值。
該算法同現(xiàn)有算法相比,由于無需確定“人為”的比較基準,就可以確定出條符測量值的二進制值,所以實現(xiàn)容易,可靠性提高。同時它對掃描不均勻和印制誤差都能有較大的容差范圍。同其它算法相比,在同樣的硬件裝置條件下,用該算法可以得到更優(yōu)的識別效果,即一次識別率提高,誤識率和拒識率降低。在要求同樣的識別性能時,則可降低相應的硬件裝置的要求或印制的要求。
附圖1是寬窄著色條符和寬窄非著色條符組成的兩種元素寬條形碼附圖2是寬窄著色條符和窄非著色條符組成的兩元素寬條形碼附圖3是CODE-39碼的譯碼流程圖附圖4是CODEBAR碼的譯碼流程圖實施例本算法是針對于只有兩種元素寬的、條符數(shù)固定的一類條形碼而提出的,這類條形碼包括了大部分常用的條形碼,如CODE-39碼、基本2/5碼、交替2/5碼、矩陣2/5碼、CODE-B碼、CODABAR碼、MSI-CODE碼、3/9碼等,其基本點是對條符寬度值進行排序,由排序結果直接判定前幾個最大值為寬條符,其余為窄條符。具體確定前多少個最大值為寬條符則依不同碼制而不同。
下面分別以CODE-39碼和CODABAR碼為例來說明本發(fā)明的實現(xiàn)方法。
實施例1.CODE-39碼的編碼規(guī)則規(guī)定,每一個字符代碼由九個條符組成,其中著色條符五個,含兩個寬條符,非著色條符四個,含一個寬條符。在組成字符代碼的九個編碼元素中,有而且只有三個寬條符。而且規(guī)定寬條符代表“1”,窄條符代表“0”。
在已確定條形碼碼制為CODE-39碼后,利用本發(fā)明的算法實現(xiàn)譯碼的具體過程如下(見附圖3)(1)完成條符寬度的測量;
(2)取一個字符中的九個條符寬度測量值;
(3)按寬度值的大小降序排列(取前三個即可);
(4)三個最大值為寬條符,代表二進制“1”,其余為窄條符,代表二進制“0”;
(5)若所有字符處理完畢,則結束;否則重復(2)~(4)各步驟。
實施例2.CODABAR碼的編碼規(guī)則規(guī)定,每個代碼由七個編碼元素組成,即四個著色條符和三個非著色條符。每一代碼中寬條符的個數(shù)可以是二,也可以是三。而且規(guī)定寬條符代表“1”,窄條符代表“0”。
由分析可知,CODABAR碼每一代碼出現(xiàn)三個寬條符的情況只可能是(1)起始符或終止符;(2)三個寬條符全部是著色條符。而每一代碼出現(xiàn)二個寬條符的情況是寬條符必然有一個是非著色條符。據(jù)此就可以區(qū)別二個寬條符和三個寬條符的情況。
具體實現(xiàn)過程如下(見附圖4)(1)完成條符寬度的測量;
(2)取一個字符中的七個條符寬度測量值;
(3)按寬度值的大小降序排列(取前三個即可);
(4)若是第一個或最后一個字符,則判別為起始符或終止符;
(5)若三個最大值都是著色條符,則判別為三個寬條符的情況;三個最大值為寬條符,代表二進制“1”,其余為窄條符,代表二進制“0”;
(6)其余都是二個寬條符的情況,只需取前二個最大值;二個最大值為寬條符,代表二進制“1”,其余為窄條符,代表二進制“0”;
(7)若所有字符處理完畢,則結束;否則重復(2)~(6)各步驟。
權利要求
1.一種對已確定碼制的兩種元素寬的一個字符的條符數(shù)固定的條形碼的識別算法,其特征是利用條符寬窄所對應二進制信息非“1”即“0”的特點,先測量條形碼的條符寬度,然后對每一個字符中的條符寬度測量值分別進行大小排序,并根據(jù)碼制規(guī)定確定相應的寬條符個數(shù),進而確定各條符的二進制值。
全文摘要
本發(fā)明涉及到一種條形碼識別算法,它適用于兩種元素寬的而且一個字符中條符數(shù)固定的一類條形碼的識別。其特征是先測量各條符的寬度,然后對每一個字符中的條符寬度測量值分別進行大小排序,并根據(jù)碼制規(guī)定確定相應寬條符個數(shù),進而確定各條符的二進制值。其優(yōu)點是無需人為地確定比較基準,可靠性高;對掃描不均勻性和印制誤差都有較大的容差范圍;使用該算法的識別裝置一次識別率高,誤識率和拒識率低。
文檔編號G06K9/18GK1083238SQ9210966
公開日1994年3月2日 申請日期1992年8月27日 優(yōu)先權日1992年8月27日
發(fā)明者毛瑋明, 王新宏, 查開德 申請人:清華大學