A one-dimensional barcode code decoding method based on least square method, the specific steps are as follows: according to the actual space width scanning to calculate the barcode number EI each codeword module contains similar edge distance, compared with the correct codeword difference table contains the standard width of the module edge number Ei is equal to the number of calculated EI = Ei N; G code similar to the distance from the edge of module contains a number. When N< g; 2 or N< = 1, is a codeword decoding failure; when N> = g; 2 and N> 1, looking for possible candidate codeword Fi by using least squares method from all possible error Err the minimum value for the correct codeword character, codeword error check, through error check code is decoded successfully, not through the error check is a codeword decoding failure; when N = g, the selected possible characters, and whether the relevant calculation error. The invention can greatly improve the decoding success rate of the bar code words.
【技術實現步驟摘要】
一種基于最小二乘法的一維條碼碼字解碼方法
本專利技術屬于信息存儲、定位和識別
,涉及一種基于最小二乘法的一維條碼碼字解碼方法。
技術介紹
一個完整的一維條碼由兩側靜止區、起始符、數據符、校驗符、終止符組成,其結構圖如圖1所示。它將寬度不等的多個黑條和空白,按照一定的編碼規則排列,用以表達一組信息。常用的條碼掃描設備通常由光源(比如激光)、光學透鏡、感光器件(例如CCD,CMOS等)、解碼邏輯電路和I/O接口等組件構成。簡單來講,所述光源投射光至條碼上,從條碼處反射的光透過所述光學透鏡進入感光器件表面,經過光電轉換、模數轉換等一系列處理后形成條碼的數字圖像,然后解碼邏輯電路對攝取的圖像進行分析和解碼。現有的一維條碼碼字解碼方法:1、對采集的條碼圖像進行預處理(去燥、灰度提取、二值化);2、定位出條碼區域;3、沿條碼方向布置采樣線,得到條碼條空邊界,計算出條碼每條每空的寬度,記為{a1,a2,a3…}4、根據掃描實測的條碼條空字符寬度計算相似邊緣距離,記為{b1,b2,b3…};5、將相似邊緣距離(邊緣差異)或條碼字符條空寬度歸一化為條碼字符模塊寬度的整數倍,字符條空模塊數記為{c1,c2,c3…},相似邊緣距離模塊數記為{e1,e2,e3…};6、根據第5步計算的條空的模塊數查各條碼編碼字符集或者根據相似邊緣距離模塊數查各條碼邊緣差異表,得到條碼起始符,數據字符值,結束符以及有校驗時校驗符,解碼結束。現有方法的第6步從編碼字符集或者條碼邊緣差異表中找出相對應的字符碼字,一個碼字由多個黑白條空組成,以code128碼符號字符值16(字符集A中為字符“0” ...
【技術保護點】
一種基于最小二乘法的一維條碼碼字解碼方法,具體步驟如下:(1)計算出條碼每個碼字相似邊緣距離包含的模塊數。先掃描獲取碼字條空實際寬度為ai={a1,a2,a3,a4,a5,a6…},并計算得到該碼字的相似邊緣距離包含的模塊數為ei={e1,e2,e3,e4,e5…},其中ei=ai+a(i+1);(2)查詢實際邊緣差異表中正確的碼字包含的模塊寬度數Ei={E1,E2,E3,E4,E5…},其中碼字的標準條空模塊數為Ci={C1,C2,C3,C4,C5,C6…},則Ei=Ci+C(i+1),并計算ei=Ei的個數N;(3)根據條碼類型可確定該條碼每個碼字包含的條和空個數和為I,每個碼字的相似邊緣距離包含的模塊數個數為g,g=I?1;當N<g?2或N<=1時,則碼字解碼失敗;當N>=g?2且N>1時,則進入步驟(4);當N=g時,選定可能字符F,查F邊緣差異表,進行是否為誤碼的相關計算,檢查自校驗值V是否滿足要求:(V?1.75)*(p)<(a1+a3+a5+…)<(V+1.75)*(p)/Q;其中p=a1+a2+a3+a4+a5+…,a1+a3+a5+ ...
【技術特征摘要】
1.一種基于最小二乘法的一維條碼碼字解碼方法,具體步驟如下:(1)計算出條碼每個碼字相似邊緣距離包含的模塊數。先掃描獲取碼字條空實際寬度為ai={a1,a2,a3,a4,a5,a6…},并計算得到該碼字的相似邊緣距離包含的模塊數為ei={e1,e2,e3,e4,e5…},其中ei=ai+a(i+1);(2)查詢實際邊緣差異表中正確的碼字包含的模塊寬度數Ei={E1,E2,E3,E4,E5…},其中碼字的標準條空模塊數為Ci={C1,C2,C3,C4,C5,C6…},則Ei=Ci+C(i+1),并計算ei=Ei的個數N;(3)根據條碼類型可確定該條碼每個碼字包含的條和空個數和為I,每個碼字的相似邊緣距離包含的模塊數個數為g,g=I-1;當N<g-2或N<=1時,則碼字解碼失敗;當N>=g-2且N>1時,則進入步驟(4);當N=g時,選定可能字符F,查F邊緣差異表,進行是否為誤碼的相關計算,檢查自校驗值V是否滿足要求:(V-1.75)*(p)<(a1+a3+a5+…)<(V+1.75)*(p)/Q;其中p=a1+a2+a3+a4+a5+…,a1+a3+a5+…是實際掃描到的碼字所有條寬度和,V為字符F所有條包含標準模塊數的個數之和,Q為一個碼字具有的總模塊個數;滿足要求則字符碼字解碼成功,不滿足要求則碼字解碼失敗;(4)當每個不相等的算式ei≠Ei,不等式兩邊計算得到的邊緣差異模塊數與字符邊緣差異表中標準模塊數兩者的誤差不大于1,該字符選為可能字符,記錄它的符號值以及對應的條空模塊數,遍歷邊緣差異表,選出所有的可能字符Fi={Fi1,Fi2,Fi3,Fi4...
【專利技術屬性】
技術研發人員:官慧仙,
申請(專利權)人:杭州晟元數據安全技術股份有限公司,
類型:發明
國別省市:浙江,33
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。