專利名稱:二維條碼符號轉(zhuǎn)換為編碼信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自動識別技術(shù)中的條碼符號轉(zhuǎn)換技術(shù),特別涉及一種結(jié)合特定條碼的結(jié)構(gòu)特征,將二維條碼符號中碼流信息轉(zhuǎn)換為編碼信息的方法,屬于自動識別技術(shù)領(lǐng)域。
背景技術(shù):
二維條碼可以分為堆疊式二維條碼和矩陣式二維條碼。堆疊式二維條碼形態(tài)上是由多行短截的一維條碼堆疊而成,矩陣式二維條碼以矩陣的形式組成,在矩陣相應(yīng)元素位置上用點(diǎn)的出現(xiàn)表示二進(jìn)制″1″,空的出現(xiàn)表示二進(jìn)制″0″,由點(diǎn)的排列組合確定了代碼表示的含義。堆疊式二維條碼中包含附加的格式信息,信息容量最大可以達(dá)到1000個字節(jié)左右,但是,如果采用較高的糾錯等級,堆疊式二維條碼存儲有效數(shù)據(jù)的能力會進(jìn)一步下降。
矩陣式二維條碼與堆疊式二維條碼相比,具有更高的信息密度?,F(xiàn)有的矩陣式二維條碼符號,例如QR碼,參見圖1,由于其所具有的尋像圖形、校正圖形都由不同顏色正方形相互交替重疊構(gòu)成。在對QR碼進(jìn)行識讀和定位時,要求所有的尋像圖形都必須存在,或者在只有一部分尋像圖形存在的情況下,必須有一定數(shù)量和固定位置的校正圖形存在;否則就不能對其進(jìn)行定位,進(jìn)而影響對QR碼中存儲的信息進(jìn)行還原。
為此,申請人研究并開發(fā)出一種新的矩陣式二維條碼——漢信碼,參見圖2,本發(fā)明涉及的漢信碼符號由設(shè)置在一個矩形區(qū)域四角處的尋像圖形1、功能信息區(qū)域5以及校正圖形2、輔助校正圖形3、信息編碼區(qū)域4(包括數(shù)據(jù)編碼、糾錯編碼和填充碼字)構(gòu)成的符號模塊所構(gòu)成。其中,較低的版本1、2、3的漢信碼中容納信息少,不設(shè)置校正圖形和輔助校正圖形。這種二維條碼符號的尋像圖形及其分布結(jié)構(gòu)本身具有確定的定位信息,并且新的二維條碼結(jié)構(gòu)更加緊湊。
眾所周知對條碼符號進(jìn)行識讀的目的是將存儲在條碼中的信息由符號形式轉(zhuǎn)變?yōu)樾畔⒕幋a流,然后根據(jù)相應(yīng)的解碼方法對該信息編碼流進(jìn)行解碼,得到最終的數(shù)據(jù),以實(shí)現(xiàn)通過條碼符號實(shí)現(xiàn)數(shù)據(jù)傳遞或交換的目的。但是現(xiàn)有的二維條碼識讀速度慢,并且在殘損時不易識讀,例如QR碼,在進(jìn)行識讀和定位時,要求所有的尋像圖形都存在,或者在只有一部分尋像圖形存在的情況下,必須有一定數(shù)量和固定位置的校正圖形存在;否則就不能對其進(jìn)行定位,如果缺少一定數(shù)量的尋像圖形,無法進(jìn)行識別和定位,進(jìn)而影響對QR碼中存儲的信息進(jìn)行還原。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)二維條碼識讀速度慢,在圖形缺失或者畸變時不易識讀的缺陷,具體結(jié)合漢信碼的結(jié)構(gòu)特征,提供一種快速識讀二維條碼符號,將二維條碼符號轉(zhuǎn)換為編碼信息的方法。
本發(fā)明一種二維條碼符號轉(zhuǎn)換為編碼信息的方法,包括步驟1在二維條碼符號中尋找尋像圖形,利用尋找到的尋像圖形將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置;步驟2提取尋像圖形附近功能信息區(qū)域的功能信息,獲得掩模信息和糾錯等級信息;步驟3讀取二維條碼符號中位于尋像圖形和功能信息區(qū)域之外的模塊數(shù)據(jù)獲得數(shù)據(jù)編碼和糾錯編碼信息;步驟4根據(jù)掩模信息對獲取的數(shù)據(jù)編碼和糾錯編碼進(jìn)行去掩模處理;步驟5根據(jù)糾錯等級信息計算數(shù)據(jù)編碼和糾錯編碼的位數(shù);步驟6根據(jù)糾錯編碼對數(shù)據(jù)編碼進(jìn)行糾錯,得到恢復(fù)的編碼數(shù)據(jù)。
上述方案中,所述的步驟1還包括尋找校正圖形,利用尋找到的尋像圖形和校正圖形將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。
上述方案中,所述的步驟1包括步驟1.1在二維條碼符號的四個頂點(diǎn)位置附近尋找尋像圖形,如果找到尋像圖形,則執(zhí)行步驟1.2;否則結(jié)束;步驟1.2如果尋像圖形中包括符合標(biāo)準(zhǔn)位置的二維條碼符號左下角尋像圖形特征的尋像圖形,則對所述二維條碼符號進(jìn)行旋轉(zhuǎn),使符合標(biāo)準(zhǔn)位置的二維條碼符號左下角尋像圖形特征的尋像圖形所在的頂點(diǎn)位于二維條碼符號左下角,執(zhí)行步驟2;否則執(zhí)行步驟1.3;步驟1.3根據(jù)找到的尋像圖形的個數(shù)和/或所找到的尋像圖形在二維條碼符號中的位置,對所述二維條碼符號進(jìn)行旋轉(zhuǎn),使二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。
本發(fā)明根據(jù)漢信碼的結(jié)構(gòu)特點(diǎn)提供了一種二維條碼符號轉(zhuǎn)換為編碼信息的方法,根據(jù)已得到的二維條碼符號,通過掃描可以快速找到尋像圖形,根據(jù)尋像圖形的個數(shù)及位置對其識讀,旋轉(zhuǎn)到標(biāo)準(zhǔn)位置,讀取功能信息數(shù)據(jù)獲得掩模信息和糾錯等級,然后就可以從二維條碼符號尋像圖形和功能信息區(qū)域以外(編碼信息區(qū)域內(nèi))從左到右依次讀取模塊數(shù)據(jù)。通過已得到的掩模信息對數(shù)據(jù)進(jìn)行去掩模處理,然后根據(jù)糾錯等級得知糾錯量,得到糾錯編碼和數(shù)據(jù)編碼的位數(shù)。根據(jù)糾錯編碼對數(shù)據(jù)編碼進(jìn)行糾錯處理,處理后得到的數(shù)據(jù)即為原始的數(shù)據(jù)編碼。
本發(fā)明克服了現(xiàn)有技術(shù)識讀速度慢,在圖形缺失或者畸變時不易識讀的缺陷,通過尋找尋像圖形,可以快速的識讀二維條碼符號,在識讀和定位時,如果找到一個或以上的尋像圖形即可進(jìn)行識讀,增加了識讀和抗殘損能力,即使缺失一部分信息也根據(jù)二維條碼符號中模塊放置方法,以及數(shù)據(jù)碼字和糾錯碼字的混合放置,分理出數(shù)據(jù)信息和糾錯信息;在解碼時進(jìn)行數(shù)據(jù)糾錯,得到解碼后的信息,大大提高了識讀的速度和抗殘損的能力,并提高了解碼的效率。
圖1為QR碼的結(jié)構(gòu)示意圖;圖2為漢信碼的結(jié)構(gòu)示意圖;圖3為本發(fā)明的二維條碼符號轉(zhuǎn)換為編碼信息方法的實(shí)施例流程圖;圖4為本發(fā)明步驟1實(shí)施例流程圖;圖5為本發(fā)明步驟1.3實(shí)施例流程圖;圖6為步驟1的優(yōu)選實(shí)施例流程圖;圖7為尋像圖形的示意圖;圖8為確定尋像圖形坐標(biāo)的示意圖;圖9為有三個尋像圖形時確定二維條碼符號位置的實(shí)施例示意圖;圖10為兩個尋像圖形位于對角線位置確定二維條碼符號位置時未旋轉(zhuǎn)到標(biāo)準(zhǔn)位置的實(shí)施例示意圖;圖11為兩個尋像圖形位于對角線位置時旋轉(zhuǎn)到標(biāo)準(zhǔn)位置的實(shí)施例示意圖;圖12為本發(fā)明步驟1.3.2.2’確定二維條碼符號位置時一種情況旋轉(zhuǎn)后達(dá)到標(biāo)準(zhǔn)位置的實(shí)施例示意圖;圖13為本發(fā)明步驟1.3.2.2’確定二維條碼符號位置時另一種情況旋轉(zhuǎn)后達(dá)到標(biāo)準(zhǔn)位置的實(shí)施例示意圖;圖14為本發(fā)明步驟2.2的實(shí)施例流程圖;圖15為確定尋像圖形寬度示意圖;圖16為獲取功能信息示意圖;圖17為本發(fā)明步驟3.2一個優(yōu)選流程圖;圖18為本發(fā)明步驟6優(yōu)選流程圖。
具體實(shí)施例方式
圖2為漢信碼的結(jié)構(gòu)示意圖,也即二維條碼符號標(biāo)準(zhǔn)位置的示意圖。碼圖符號是由n×n個模塊組成的陣列構(gòu)成的正方形。二維條碼符號由設(shè)置在一個矩形區(qū)域四角處的尋像圖形1、功能信息區(qū)域5以及校正圖形2、輔助校正圖形3、數(shù)據(jù)編碼和糾錯編碼構(gòu)成的符號模塊4所構(gòu)成。在漢信碼中的尋像圖形形狀相同,但放置方向不同,位于左上角、右上角、右下角的尋像圖形分別依順時針方向旋轉(zhuǎn)90度擺放在各個頂點(diǎn)位置,位于左下角的尋像圖形擺放方向和右上角的尋像圖形擺放方向相同,如圖2所示。功能信息區(qū)域5與尋像圖形1之間為1個單位模塊寬度的空白區(qū)域,將尋像圖形1與功能信息區(qū)域5分開。容納信息量較小(版本1、2、3)的漢信碼符號中不設(shè)置校正圖形和輔助校正圖形。校正圖形是由相鄰的深色和淺色兩條線組成階梯形的一組以上的折線,二維條碼符號左邊線和下邊線附近的校正圖形,簡化為單模塊寬度的深色線,與左上角和右下角尋像圖形附近的功能信息區(qū)域5相連。對于和二維條碼符號四個邊重疊的校正線,在沒有與其它校正折線相交的那個端點(diǎn)構(gòu)造輔助校正圖形3。輔助校正圖形為一個2×3模塊大小的圖形,中間為深色模塊,剩下5個為淺色模塊。另外,二維條碼符號的右上角區(qū)域校正圖形的校正折線稀疏,也分別布置兩個2×3模塊的輔助校正圖形。如圖2所示,校正圖形中的與二維條碼符號左邊線和下邊線相交的折線處與左上角和右下角尋像圖形附近的功能信息區(qū)域相連,其余的校正圖形折線則與尋像圖形附近的功能信息區(qū)域則不相連。相鄰兩個頂點(diǎn)附近的功能信息區(qū)域5組成功能信息,功能信息中包括版本信息、掩模信息、糾錯等級等信息,獲得正確的功能信息后即可得到版本、掩模及糾錯登記相關(guān)的信息。
如圖3所示,本發(fā)明二維條碼符號轉(zhuǎn)換為編碼信息的方法,包括步驟1在二維條碼符號中尋找尋像圖形,利用尋找到的尋像圖形將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置;步驟2提取尋像圖形附近功能信息區(qū)域的功能信息,獲得掩模信息和糾錯等級信息;步驟3讀取位于二維條碼符號中尋像圖形和功能信息區(qū)域之外的模塊數(shù)據(jù)獲得數(shù)據(jù)編碼和糾錯編碼信息;步驟4根據(jù)掩模信息對獲取的數(shù)據(jù)編碼和糾錯編碼去掩模處理;步驟5根據(jù)糾錯等級計算數(shù)據(jù)編碼和糾錯編碼的位數(shù);步驟6根據(jù)糾錯編碼對數(shù)據(jù)編碼進(jìn)行糾錯,得到恢復(fù)的編碼數(shù)據(jù)。
本發(fā)明克服了現(xiàn)有技術(shù)識讀速度慢,在圖形缺失或者畸變時不易識讀的缺陷,尋找尋像圖形,可以快速的識讀二維條碼符號,在識讀和定位時,如果找到一個或以上的尋像圖形即可進(jìn)行識讀,增加了識讀和抗殘損能力,即使缺失一部分信息也根據(jù)二維條碼符號中模塊放置方法,以及數(shù)據(jù)碼字和糾錯碼字的混合放置,分理出數(shù)據(jù)信息和糾錯信息;在解碼時進(jìn)行數(shù)據(jù)糾錯,得到解碼后的信息,大大提高了識讀的速度和抗殘損的能力,并提高了解碼的效率。
如圖4所示,本發(fā)明中步驟1包括步驟1.1在二維條碼符號的四個頂點(diǎn)位置附近尋找尋像圖形,如果找到尋像圖形,則執(zhí)行步驟1.2;否則結(jié)束;步驟1.2如果尋像圖形中包括符合標(biāo)準(zhǔn)位置的二維條碼符號左下角尋像圖形特征的尋像圖形,則對所述二維條碼符號進(jìn)行旋轉(zhuǎn),使符合標(biāo)準(zhǔn)位置的二維條碼符號左下角尋像圖形特征的尋像圖形所在的頂點(diǎn)位于二維條碼符號左下角,執(zhí)行步驟2;否則執(zhí)行步驟1.3;步驟1.3根據(jù)找到的尋像圖形的個數(shù)和/或所找到的尋像圖形在二維條碼符號中的位置,對所述二維條碼符號進(jìn)行旋轉(zhuǎn),使二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。
圖5為步驟1.3流程圖,如圖5所示,步驟1.3包括
步驟1.3.1判斷是否在二維條碼符號四個頂點(diǎn)位置附近找到三個尋像圖形,如果是,將二維條碼符號缺失尋像圖形所在的頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左下角的位置,執(zhí)行步驟2;否則執(zhí)行步驟1.3.2;步驟1.3.2判斷是否找到兩個尋像圖形,如果是,根據(jù)找到的兩個尋像圖形在二維條碼符號中的位置,將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置,否則執(zhí)行步驟1.3.3;步驟1.3.3在二維條碼符號四個頂點(diǎn)位置附近找到唯一尋像圖形,將找到的尋像圖形所在的頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左上角、右上角或右下角的位置,執(zhí)行步驟2。
步驟1.3中,所述的步驟1.3.2包括步驟1.3.2.1判斷是否找到兩個尋像圖形,如果否,執(zhí)行步驟1.3.3,否則判斷找到的兩個尋像圖形所在頂點(diǎn)是否位于二維條碼符號的對角線位置,如果是,則將兩個尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到其中一個尋像圖形的頂點(diǎn)位于二維條碼符號左上角的位置,執(zhí)行步驟2;否則執(zhí)行步驟1.3.2.2;步驟1.3.2.2將二維條碼符號旋轉(zhuǎn)到兩個尋像圖形所在頂點(diǎn)分別位于二維條碼符號左上角、右上角的位置,或者將二維條碼符號轉(zhuǎn)到兩個尋像圖形所在頂點(diǎn)分別位于二維條碼符號右上角、右下角的位置,執(zhí)行步驟2。
上述技術(shù)方案中,所述的步驟1還包括尋找校正圖形,所述校正圖形為相鄰的深色和淺色兩條線組成的階梯形的折線。通過線性掃描可以得知二維條碼符號中是否存在校正圖形。
上述方法中,步驟1.3.2.2之前還包括步驟1.3.2.2’判斷二維條碼符號中是否存在校正圖形,如果存在校正圖形,判斷尋像圖形附近的功能信息區(qū)域是否與校正圖形的一段折線相連,然后將與校正圖形無連接關(guān)系的尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到二維條碼符號右上角的位置,執(zhí)行步驟2;否則執(zhí)行步驟1.3.2.2。
步驟1.3.3之前還包括
步驟1.3.3’判斷二維條碼符號中是否存在校正圖形,如果不存在校正圖形,執(zhí)行步驟1.3.3,否則執(zhí)行1.3.3’.1’;步驟1.3.3’.1’判斷找到的唯一尋像圖形附近的功能信息區(qū)域是否與校正圖形有連接關(guān)系,如果無連接關(guān)系,將尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到二維條碼符號右上角的位置,執(zhí)行步驟2,否則執(zhí)行步驟1.3.3’.2’;步驟1.3.3’.2’將尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到二維條碼符號右下角或者左上角的位置,執(zhí)行步驟2。
圖6為本發(fā)明步驟1的優(yōu)選流程圖,如圖6所示,圖6包括了上述的所有步驟,為一個優(yōu)選實(shí)施例,具體步驟說明不再贅述。
為保證達(dá)到快速識讀譯碼的要求,步驟1在尋找尋像圖形過程中可以采用線性掃描特征比例的方式進(jìn)行碼圖尋像。如圖7所示,尋像圖形由5個深色和淺色正方形重疊組成,每一尋像圖形的模塊序列由一個深色-淺色-深色-淺色-深色次序構(gòu)成,各元素的相對寬度的比例是1∶1∶1∶1∶3或者3∶1∶1∶1∶1。對二維條碼符號的四個頂點(diǎn)位置附近的區(qū)域進(jìn)行線性掃描,尋找深色與淺色模式比例符合1∶1∶1∶3或者3∶1∶1∶1的陣列,如果找到深色與淺色模式比例符合1∶1∶1∶3或者3∶1∶1∶1∶1的陣列則找到尋像圖形,執(zhí)行步驟1.2;否則結(jié)束。確定尋像圖形中,每一元素寬度的允許偏差為0.5(即單個模塊的方塊的尺寸允許范圍為0.5~1.5,3個模塊寬度的方塊的寬度允許尺寸范圍為2.5~3.5)。
步驟1在尋找尋像圖形中也可采用模糊識別的方式判斷四個頂點(diǎn)是否存在尋像圖形在二維條碼符號的四個頂點(diǎn)位置附近尋找尋像圖形,將二維條碼符號的四個頂點(diǎn)位置附近圖像與事先存儲的尋像圖形模板進(jìn)行匹配,如果二維條碼符號的四個頂點(diǎn)位置附近圖像與尋像圖形模板之間的相似度不小于某一設(shè)定的閾值,則找到尋像圖形。模糊識別為現(xiàn)在公知的一種技術(shù),在此不再詳述。
步驟1.1找到尋像圖形以后,步驟1.2可判斷尋像圖形中是否有符合標(biāo)準(zhǔn)位置二維條碼符號左下角尋像圖形特征的尋像圖形,如果有,則將符合標(biāo)準(zhǔn)二維條碼符號左下角尋像圖形特征的尋像圖形所在的頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左下角的位置。
圖8為采用線性掃描的方式確定尋像圖形中心坐標(biāo)的示意圖。尋找尋像圖形的中心坐標(biāo)的一個實(shí)施例為a.當(dāng)探測到預(yù)選某一頂點(diǎn)附近區(qū)域時,注意圖像中一行像素與尋像圖形的外邊緣相遇的第一點(diǎn)和最后一點(diǎn)1和2(如圖8所示)。對該圖像中的相鄰行重復(fù)探測,直到在中心方塊X軸方向所有穿過尋像圖形的直線被全部識別。
b.重復(fù)步驟a,在圖像的Y軸方向,識別穿過尋像圖形中心方塊的所有像素行。
c.確定尋像圖形中心,通過在X軸方向穿過尋像圖形中心塊的最外層的像素線上1、2兩點(diǎn)連線,連線上深色與淺色的變化比例模式為1∶1∶1∶1∶3或3∶1∶1∶1∶1,可以確定沿X軸方向上比例為3的模塊的中心位置x,用同樣方法在另一垂直方向上劃一直線。通過深色與淺色的變化比例模式為1∶1∶1∶1∶3或3∶1∶1∶1∶1,可以確定沿Y軸方向上比例為3的模塊的中心位置y,坐標(biāo)(x,y)即為尋像圖形中心坐標(biāo)。
同樣,類似的,也可以確定比例為3的模塊的頂點(diǎn)坐標(biāo)。通過分析尋像圖形中心的坐標(biāo)或者頂點(diǎn)坐標(biāo),可以識別位于左下角的尋像圖形。
如果尋像圖形符合標(biāo)準(zhǔn)位置二維條碼符號的左下角尋像圖形特征,可直接將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置,所以可以直接執(zhí)行步驟2,進(jìn)行后續(xù)譯碼。
圖9至圖13為找到的尋像圖形中沒有符合二維條碼符號標(biāo)準(zhǔn)位置左下角尋像圖形特征時的判定方法。
如圖9所示,為步驟1.3.1,找到三個尋像圖形的情況,只需將缺失尋像圖形所在的頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左下角的位置,即可將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。其中圖9左半部分為未旋轉(zhuǎn)到標(biāo)準(zhǔn)位置的三種情況,右半部分為經(jīng)旋轉(zhuǎn)后達(dá)到標(biāo)準(zhǔn)位置的二維條碼符號。
圖10和圖11為步驟1.3.2.1找到兩個尋像圖形且兩個尋像圖形所在頂點(diǎn)位于二維條碼符號的對角線位置的示意圖,由于找到的尋像圖形不存在符合標(biāo)準(zhǔn)二維條碼符號左下角尋像圖形特征的尋像圖形,所以兩個尋像圖形只能位于二維條碼符號標(biāo)準(zhǔn)位置中的左上角和右下角。但由于兩個尋像圖形位置對稱,所以無法確定那個位于左上角,那個位于右下角。圖10為未旋轉(zhuǎn)到標(biāo)準(zhǔn)位置的條碼符號,圖11為旋轉(zhuǎn)后的二維條碼符號。此時將兩個尋像圖形旋轉(zhuǎn)到其中一個尋像圖形的頂點(diǎn)位于二維條碼符號左上角,則另一個位于右下角的位置。由于兩個尋像圖形的位置對稱,所以只有一種旋轉(zhuǎn)是正確的,即旋轉(zhuǎn)后達(dá)到標(biāo)準(zhǔn)位置。在后續(xù)的步驟6中如果發(fā)現(xiàn)有錯誤,則還會再進(jìn)行相應(yīng)的處理,以保證最后獲得正確地數(shù)據(jù)編碼。
如圖12和圖13所示,為步驟1.3.2.2’存在校正圖形時,結(jié)合校正圖形和尋像圖形將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置的示意圖。
步驟1.3.2.2’為尋找到兩個相鄰頂點(diǎn)的尋像圖形且存在校正圖形的情況,且尋像圖形不符合二維條碼符號左下角尋像圖形特征,所以所述相鄰頂點(diǎn)的兩個尋像圖形在標(biāo)準(zhǔn)二維條碼符號中的位置有以下四種情況(1)兩個尋像圖形所在頂點(diǎn)的正確位置分別位于二維條碼符號標(biāo)準(zhǔn)位置的左上角和右上角;(2)兩個尋像圖形所在頂點(diǎn)的正確位置分別位于二維條碼符號標(biāo)準(zhǔn)位置的右上角和右下角。
如圖12、圖13所示,校正圖形中的一組折線與一個尋像圖形附近的功能信息區(qū)域相連,其余的折線則與尋像圖形附近的功能信息區(qū)域不相連。此時只需把與校正圖形有連接關(guān)系的功能信息區(qū)域所在頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號右上角的位置,如圖12和圖13所示,圖12及圖13中左邊為未旋轉(zhuǎn)到二維條碼符號標(biāo)準(zhǔn)位置的符號圖形,箭頭所指向的為旋轉(zhuǎn)后達(dá)到二維條碼符號標(biāo)準(zhǔn)位置的符號圖形。
當(dāng)只找到兩個相鄰頂點(diǎn)位置的尋像圖形且不存在校正圖形時,只能知道是上述(1)、(2)兩種情況,此時執(zhí)行步驟1.3.2.2將二維條碼符號旋轉(zhuǎn)到兩個尋像圖形所在頂點(diǎn)分別位于二維條碼符號左上角、右上角的位置,或者將二維條碼符號轉(zhuǎn)到兩個尋像圖形所在頂點(diǎn)分別位于二維條碼符號右上角、右下角的位置,執(zhí)行步驟2。由于存在兩種情況,所以只有一種旋轉(zhuǎn)可達(dá)到標(biāo)準(zhǔn)位置。在后續(xù)的步驟6中如果發(fā)現(xiàn)有錯誤,則還會再進(jìn)行相應(yīng)的處理,以保證最后獲得正確地數(shù)據(jù)編碼。
步驟1.3.3為只找到一個尋像圖形的處理過程,如果不存在校正圖形,則所找到的尋像圖形所在頂點(diǎn)位于標(biāo)準(zhǔn)位置的二維條碼符號左下角以外的位置,將尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左上角、右上角或右下角的位置。由于存在三種情況,所以只有一種旋轉(zhuǎn)可達(dá)到標(biāo)準(zhǔn)位置。在后續(xù)的步驟6中如果發(fā)現(xiàn)糾錯無解,則還會再進(jìn)行相應(yīng)的處理,以保證最后獲得正確地數(shù)據(jù)編碼。
步驟1.3.3’.1’為找到一個尋像圖形,且存在校正圖形的情況,判斷尋像圖形附近的功能信息區(qū)域與校正圖形是否相連,如果無則將此尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號右上角的位置,步驟1.3.3’.2’為找到一個尋像圖形,且存在校正圖形,但校正圖形與尋像圖形附近的功能信息區(qū)域相連的情況,此時將尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左上角或右下角的位置。由于存在左上角和右下角兩種種情況,所以只有一種情況可以旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。在后續(xù)的步驟6中如果發(fā)現(xiàn)有錯誤,則還會再進(jìn)行相應(yīng)的處理,以保證最后獲得正確地數(shù)據(jù)編碼。
本發(fā)明步驟2包括步驟2.1根據(jù)找到的尋像圖形確定尋像圖形的寬度;獲得模塊尺寸;步驟2.2根據(jù)模塊尺寸,讀取并合并相鄰兩頂點(diǎn)附近的功能信息區(qū)域,獲得掩模信息和糾錯等級信息。
如圖14所示,為步驟2.2的一個優(yōu)選流程圖。其中步驟2.2包括步驟2.2.1讀取步驟1所找到的任一尋像圖形附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);步驟2.2.2讀取與尋像圖形任意一相鄰頂點(diǎn)附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);步驟2.2.3合并尋像圖形及相鄰頂點(diǎn)附近的兩個功能信息區(qū)域中的數(shù)據(jù),如果糾錯無解,執(zhí)行步驟2.2.4;否則進(jìn)行糾錯處理,獲得糾錯等級信息和掩模信息,執(zhí)行步驟3;步驟2.2.4讀取尋像圖形另一相鄰頂點(diǎn)附近的功能信息區(qū)域中每一模塊的數(shù)據(jù)和在對角線尋像圖形附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);步驟2.2.5合并尋像圖形附近的功能信息區(qū)域數(shù)據(jù)和另一相鄰頂點(diǎn)附近的功能信息區(qū)域數(shù)據(jù),或者合并另一相鄰頂點(diǎn)附近的功能信息區(qū)域數(shù)據(jù)和對角線尋像圖形附近的功能信息區(qū)域數(shù)據(jù);步驟2.2.6如果糾錯有解則進(jìn)行糾錯處理,獲得糾錯等級信息和掩模信息,執(zhí)行步驟3;否則結(jié)束。
步驟2尋找功能信息區(qū)域獲得掩模信息和糾錯等級信息的一個實(shí)施例為1)由找到的尋像圖形確定尋像圖形的寬度(如圖15所示),例如圖中所示一個尋像圖形的寬度例如WUR;2)用7除以尋像圖形的寬度尺寸例如WUR,得到模塊尺寸CPURCPUR=WUR/73)根據(jù)尋像圖形的中心坐標(biāo)和模塊尺寸CPUR,確定在A尋像區(qū)域附近的功能信息區(qū)域中每一模塊的數(shù)據(jù)(圖16所示),尋像圖形為模塊比例符合1∶1∶1∶1∶3或3∶1∶1∶1∶1所構(gòu)成的7×7正方形模塊,功能信息區(qū)域與尋像圖形中的一個頂點(diǎn)組成9×9的正方形模塊,因此在知道單位模塊的尺寸CPUR之后,可初步確定功能信息區(qū)域5的位置,初步確定功能信息區(qū)域中每一模塊的數(shù)據(jù)。二進(jìn)制值0和1根據(jù)采樣網(wǎng)格上的深色淺色的圖形來確定;4)按照3)中描述的方法,確定在B尋像圖形附近的功能信息區(qū)域5中每一模塊的數(shù)據(jù);5)合并A和B尋像圖形附近的功能信息區(qū)域數(shù)據(jù),通過檢測并糾錯確定功能信息,如果糾錯有解,根據(jù)功能信息中的糾錯位,對功能信息模塊出現(xiàn)的錯誤進(jìn)行糾錯,獲得正確的功能信息,從而得知版本、糾錯等級信息和掩模信息,否則轉(zhuǎn)到6);6)判斷糾錯是否有解,如果無解,按照3)中描述的方法,確定在C尋像圖形附近的功能信息區(qū)域中每一模塊的數(shù)據(jù)和在D尋像圖形附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);合并A尋像圖形附近的功能信息區(qū)域數(shù)據(jù)和C尋像圖形附近的功能信息區(qū)域數(shù)據(jù),或者合并B尋像圖形附近的功能信息區(qū)域數(shù)據(jù)和D尋像圖形附近的功能信息區(qū)域數(shù)據(jù);7)判斷糾錯是否有解,如果有解,對功能信息模塊出現(xiàn)的錯誤進(jìn)行糾錯,得到版本、糾錯等級信息和掩模信息;否則糾錯無解,則無法獲得功能信息,結(jié)束本方法。
注意在合并兩個相鄰頂點(diǎn)附近的功能信息區(qū)域中的數(shù)據(jù)時,合并時先后順序有兩種情況,但只要有一種糾錯有解即可因?yàn)楣δ苄畔⒃谙噜忢旤c(diǎn)存儲時有先后順序,比如圖16所示,對于A、B兩尋像圖形,功能信息先在A尋像圖形附近的功能信息區(qū)域中存儲,然后在B尋像圖形附近的功能信息區(qū)域中存儲,只有按合并A和B附近的功能信息區(qū)域中數(shù)據(jù)的順序時才可能糾錯有解,如果按合并B和A附近的功能信息區(qū)域中數(shù)據(jù)時糾錯則無解,所以進(jìn)行合并時需要進(jìn)行兩種嘗試,但只要找到糾錯有解的情況時即可。其中對角線位置的存放相同的功能數(shù)據(jù),功能信息區(qū)域的這種數(shù)據(jù)存放方式,使得即使二維條碼圖形缺失某一邊,仍可對數(shù)據(jù)進(jìn)行恢復(fù)。增加了識讀的能力。
上述方法中,步驟3包括步驟3.1從二維條碼符號第一行左側(cè)開始至最后一行右側(cè)結(jié)束,依次順序讀取除尋像圖形和功能信息圖形之外的模塊數(shù)據(jù),且在每一行結(jié)尾處折返到下一行繼續(xù)讀取;步驟3.2按步驟3.1所述原理從左至右讀取其余各行數(shù)據(jù),直至最后一行結(jié)尾處。
圖17為本發(fā)明步驟3的一個優(yōu)選流程圖,結(jié)合漢信碼的符號特征,步驟3包括3.1.1從二維條碼符號第一行左上角尋像圖形與左上角功能信息區(qū)域之外第一模塊處開始讀取模塊數(shù)據(jù);3.1.2從左到右順序讀取模塊數(shù)據(jù),直到二維條碼符號第一行右上角功能信息區(qū)域前一坐標(biāo)處;3.2.1從左上角功能信息區(qū)域與第二行相交點(diǎn)坐標(biāo)后第一模塊處從左至右讀取模塊數(shù)據(jù)直至右上角功能信息區(qū)域與第二行相交點(diǎn)前一坐標(biāo)處;3.2.2根據(jù)3.2.1所述原則讀取第3行至第8行模塊數(shù)據(jù);3.2.3從左上角功能信息區(qū)域與第九行相交點(diǎn)中最大橫坐標(biāo)所在點(diǎn)后第一模塊開始從左至右讀取模塊數(shù)據(jù)直至右上角功能信息區(qū)域與第九行相交點(diǎn)中最小橫坐標(biāo)所在點(diǎn)前第一模塊坐標(biāo)處;轉(zhuǎn)入第十行起始坐標(biāo)處;3.2.4從起始坐標(biāo)處左至右讀取一行模塊數(shù)據(jù),直至二維條碼符號的右邊線處,轉(zhuǎn)入下一行起始坐標(biāo)處;3.2.5循環(huán)執(zhí)行3.2.4,直至下一行起始坐標(biāo)為左下角功能信息區(qū)域與左邊線相交點(diǎn)坐標(biāo);3.2.6從左下角功能信息區(qū)域與此行相交點(diǎn)中最大橫坐標(biāo)后一模塊開始從左至右順序讀取模塊數(shù)據(jù),直至右下角功能信息區(qū)域與此行相交點(diǎn)中最小橫坐標(biāo)前第一模塊處,轉(zhuǎn)入下一行;3.2.7從左下角功能信息區(qū)域與此行相交點(diǎn)后一模塊處從左至右讀取模塊數(shù)據(jù),直到右下角功能信息區(qū)域與此行相交點(diǎn)前一模塊,轉(zhuǎn)入下一行;3.2.8循環(huán)3.2.7,直至最后一行。
對于存在校正圖形和輔助校正圖形的二維條碼符號,步驟3在讀取模塊數(shù)據(jù)過程中,如果模塊為校正圖形或輔助校正圖形,則放棄讀取此模塊數(shù)據(jù)。
在步驟2中獲得的功能信息中還可包含版本信息。由版本信息可得知校正圖形及輔助校正圖形的位置,從而在步驟3讀取數(shù)據(jù)時,跳過校正圖形和輔助校正圖形的模塊。
本發(fā)明步驟4包括由步驟2獲得的掩模信息,對數(shù)據(jù)編碼和糾錯編碼進(jìn)行異或處理,去除掩模,恢復(fù)數(shù)據(jù)編碼和糾錯編碼。
步驟5包括根據(jù)步驟2獲得的糾錯等級信息,可得知糾錯容量,不同的糾錯等級具有不同的糾錯容量;糾錯容量為糾錯編碼占數(shù)據(jù)編碼和糾錯編碼共有數(shù)據(jù)量的百分比,經(jīng)過計算即可得知糾錯編碼的位數(shù)和數(shù)據(jù)編碼的位數(shù)。
獲得了糾錯編碼以后,對數(shù)據(jù)編碼進(jìn)行糾錯,即可得到恢復(fù)后的編碼信息。糾錯計算根據(jù)二維條碼符號中模塊放置算法,以及數(shù)據(jù)碼字和糾錯碼字的混合算法,分離出數(shù)據(jù)碼字和糾錯碼字,可采用現(xiàn)有的分塊糾錯,提高譯碼的正確率,糾錯為公知的技術(shù),比如QR碼、PDF417碼的糾錯計算等,其工作原理在此不再詳述。
如圖18所示,為本發(fā)明步驟6的一個優(yōu)選實(shí)施例,步驟6包括步驟6.1根據(jù)糾錯編碼對數(shù)據(jù)編碼糾錯計算,如果有解,則得到恢復(fù)的編碼數(shù)據(jù);否則執(zhí)行步驟6.2;步驟6.2根據(jù)尋像圖形的個數(shù)和旋轉(zhuǎn)后的尋像圖形在二維條碼符號中的位置,對二維條碼符號順時針或逆時針旋轉(zhuǎn)90度的整數(shù)倍,然后執(zhí)行步驟2。
對于存在校正圖形的二維條碼符號,步驟6包括步驟6.1根據(jù)糾錯編碼對數(shù)據(jù)編碼糾錯計算,如果有解,則得到恢復(fù)的編碼數(shù)據(jù);否則執(zhí)行步驟6.2;步驟6.2’判斷是否有兩個尋像圖形,如果是執(zhí)行步驟6.3,否則執(zhí)行步驟6.5;步驟6.3’如果兩個尋像圖形位于對角線位置,則將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2;否則執(zhí)行步驟6.4;步驟6.4‘如果兩個尋像圖形位于左上角和右上角則按順時針將二維條碼符號旋轉(zhuǎn)90度后執(zhí)行步驟2;否則逆時針將二維條碼符號旋轉(zhuǎn)90度后執(zhí)行步驟2;步驟6.5’判斷是否存在校正圖形,如果存在校正圖形則將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2,否則執(zhí)行步驟6.6;步驟6.6如果尋像圖形位于二維條碼符號右下角的位置則將二維條碼符號旋轉(zhuǎn)180度然后執(zhí)行步驟2,否則將二維條碼符號順時針旋轉(zhuǎn)90度然后執(zhí)行步驟2。
步驟6中所述的糾錯計算根據(jù)二維條碼符號中模塊放置算法,以及數(shù)據(jù)碼字和糾錯碼字的混合算法,分離出數(shù)據(jù)碼字和糾錯碼字。
如果步驟1中經(jīng)旋轉(zhuǎn)后達(dá)到二維條碼符號的標(biāo)準(zhǔn)位置,則數(shù)據(jù)編碼經(jīng)過糾錯計算,有解,可直接獲得恢復(fù)的編碼數(shù)據(jù)。否則還需進(jìn)行新的譯碼嘗試。
下面介紹步驟6中糾錯無解的處理過程步驟6.3’兩個尋像圖形位于對角線位置,因?yàn)榧m錯無解,所以說明步驟1.3.2.1中旋轉(zhuǎn)有誤,此時,將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2,進(jìn)行新的譯碼嘗試。因?yàn)椴襟E1.3.2.1有兩種情況,步驟6.3’將二維條碼符號再旋轉(zhuǎn)180度后一定是旋轉(zhuǎn)到了二維條碼符號的標(biāo)準(zhǔn)位置,所以可以進(jìn)行后續(xù)的步驟2。
步驟6.4‘對應(yīng)步驟1.3.2.2,如果兩個尋像圖形位于左上角和右上角則按順時針將二維條碼符號旋轉(zhuǎn)90度后執(zhí)行步驟2;否則逆時針將二維條碼符號旋轉(zhuǎn)90度后執(zhí)行步驟2,進(jìn)行新的譯碼嘗試。因?yàn)椴襟E1.3.2.2有兩種情況,所以步驟6.4’將二維條碼符號再旋轉(zhuǎn)90度后一定是旋轉(zhuǎn)到了二維條碼符號的標(biāo)準(zhǔn)位置,可以進(jìn)行后續(xù)的步驟2。
同理步驟6.5’判斷是否存在校正圖形,如果存在校正圖形(對應(yīng)步驟1.3.3’.2’)則將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2.
步驟6.6‘對應(yīng)步驟1.3.3,如果尋像圖形位于二維條碼符號右下角的位置則將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2,否則將二維條碼符號順時針旋轉(zhuǎn)90度后執(zhí)行步驟2。由于步驟1.3.3為只存在一個尋像圖形且沒有校正圖形的情況,有三種可能的位置關(guān)系,所以最多旋轉(zhuǎn)2次即可旋轉(zhuǎn)到二維條碼符號的標(biāo)準(zhǔn)位置,經(jīng)過后續(xù)步驟即可得到糾錯有解的數(shù)據(jù)編碼,最終獲得恢復(fù)的編碼數(shù)據(jù)。
本發(fā)明克服了現(xiàn)有技術(shù)識讀速度慢,在圖形缺失或者畸變時不易識讀的缺陷,通過尋像圖形和校正圖形,可以快速的識讀二維條碼圖形,在識讀和定位時,如果找到一個或以上的尋像圖形即可進(jìn)行識讀,即使缺失一部分信息也根據(jù)二維條碼符號中模塊放置方法,以及數(shù)據(jù)碼字和糾錯碼字的混合放置,分理出數(shù)據(jù)信息和糾錯信息;在解碼時進(jìn)行數(shù)據(jù)糾錯,得到解碼后的信息,大大提高了識讀的速度和抗殘損的能力,并提高解碼的效率。
最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對本發(fā)明作限制性理解。盡管參照上述較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這種修改或者等同替換并不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種二維條碼符號轉(zhuǎn)換為編碼信息的方法,其特征在于,包括步驟1在二維條碼符號中尋找尋像圖形,利用尋找到的尋像圖形將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置;步驟2提取尋像圖形附近功能信息區(qū)域的功能信息,獲得糾錯等級信息和掩模信息;步驟3讀取二維條碼符號中位于尋像圖形和功能信息區(qū)域之外的模塊數(shù)據(jù)獲得數(shù)據(jù)編碼和糾錯編碼信息;步驟4根據(jù)掩模信息對獲取的數(shù)據(jù)編碼和糾錯編碼進(jìn)行去掩模處理;步驟5根據(jù)糾錯等級信息計算數(shù)據(jù)編碼和糾錯編碼的位數(shù);步驟6根據(jù)糾錯編碼對數(shù)據(jù)編碼進(jìn)行糾錯,得到恢復(fù)的編碼數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的步驟1還包括尋找校正圖形,所述校正圖形為相鄰的深色和淺色兩條線組成的階梯形的折線。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述的步驟1包括步驟1.1在二維條碼符號的四個頂點(diǎn)位置附近尋找尋像圖形,如果找到尋像圖形,則執(zhí)行步驟1.2;否則結(jié)束;步驟1.2如果尋像圖形中包括符合標(biāo)準(zhǔn)位置的二維條碼符號左下角尋像圖形特征的尋像圖形,則對所述二維條碼符號進(jìn)行旋轉(zhuǎn),使符合標(biāo)準(zhǔn)位置的二維條碼符號左下角尋像圖形特征的尋像圖形所在的頂點(diǎn)位于二維條碼符號左下角,執(zhí)行步驟2;否則執(zhí)行步驟1.3;步驟1.3根據(jù)找到的尋像圖形的個數(shù)和/或所找到的尋像圖形在二維條碼符號中的位置,對所述二維條碼符號進(jìn)行旋轉(zhuǎn),使二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述的步驟1.3包括步驟1.3.1判斷是否在二維條碼符號四個頂點(diǎn)位置附近找到三個尋像圖形,如果是,將二維條碼符號缺失尋像圖形所在的頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左下角的位置,執(zhí)行步驟2;否則執(zhí)行步驟1.3.2;步驟1.3.2判斷是否找到兩個尋像圖形,如果是根據(jù)找到的兩個尋像圖形在二維條碼符號中的位置,將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置,否則執(zhí)行步驟1.3.3;步驟1.3.3在二維條碼符號四個頂點(diǎn)位置附近找到唯一尋像圖形,將找到的尋像圖形所在的頂點(diǎn)旋轉(zhuǎn)到位于二維條碼符號左上角、右上角或右下角的位置,執(zhí)行步驟2。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述的步驟1.3.2包括步驟1.3.2.1判斷是否找到兩個尋像圖形,如果否,執(zhí)行步驟1.3.3,否則判斷找到的兩個尋像圖形所在頂點(diǎn)是否位于二維條碼符號的對角線位置,如果是,則將兩個尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到其中一個尋像圖形的頂點(diǎn)位于二維條碼符號左上角的位置,執(zhí)行步驟2;否則執(zhí)行步驟1.3.2.2;步驟1.3.2.2將二維條碼符號旋轉(zhuǎn)到兩個尋像圖形所在頂點(diǎn)分別位于二維條碼符號左上角、右上角的位置,或者將二維條碼符號轉(zhuǎn)到兩個尋像圖形所在頂點(diǎn)分別位于二維條碼符號右上角、右下角的位置,執(zhí)行步驟2。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述的步驟1.3.2.2之前,步驟1.3.2.1之后還包括步驟1.3.2.2’判斷二維條碼符號中是否存在校正圖形,如果存在校正圖形,判斷尋像圖形附近的功能信息區(qū)域是否與校正圖形的一段折線相連,然后將與校正圖形無連接關(guān)系的尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到二維條碼符號右上角的位置,執(zhí)行步驟2;否則執(zhí)行步驟1.3.2.2。
7.根據(jù)權(quán)利要求4、5或6所述的方法,其特征在于,所述的步驟1.3.3之前,步驟1.3.2之后還包括步驟1.3.3’判斷二維條碼符號中是否存在校正圖形,如果不存在校正圖形,執(zhí)行步驟1.3.3,否則根據(jù)校正圖形將二維條碼旋轉(zhuǎn)到標(biāo)準(zhǔn)位置。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟1.3.3’根據(jù)校正圖形將二維條碼旋轉(zhuǎn)到標(biāo)準(zhǔn)位置包括步驟1.3.3’.1’判斷找到的唯一尋像圖形附近的功能信息區(qū)域與校正圖形是否有連接關(guān)系,如果無連接關(guān)系,將尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到二維條碼符號右上角的位置,執(zhí)行步驟2,否則執(zhí)行步驟1.3.3’.2’;步驟1.3.3’.2’將尋像圖形所在頂點(diǎn)旋轉(zhuǎn)到二維條碼符號右下角或者左上角的位置,執(zhí)行步驟2.
9.根據(jù)權(quán)利要求1、2、4、5、6或8所述的方法,其特征在于,步驟1中尋找尋像圖形包括對二維條碼符號的四個頂點(diǎn)位置附近的區(qū)域進(jìn)行線性掃描,尋找深色模塊與淺色模塊符合1∶1∶1∶1∶3或者3∶1∶1∶1∶1的比例模式,找到深色與淺色比例模式符合1∶1∶1∶3或者3∶1∶1∶1∶1的陣列則找到尋像圖形。
10.根據(jù)權(quán)利要求1、2、4、5、6或8所述的方法,其特征在于,步驟1中尋找尋像圖形包括將二維條碼符號的四個頂點(diǎn)位置附近圖像與事先存儲的尋像圖形模板進(jìn)行匹配,如果二維條碼符號的四個頂點(diǎn)位置附近圖像與尋像圖形模板之間的相似度不小于某一設(shè)定的閾值,則找到尋像圖形,執(zhí)行步驟1.2;否則結(jié)束。
11.根據(jù)權(quán)利要求1、2、4、5、6或8所述的方法,其特征在于,步驟2包括步驟2.1根據(jù)找到的尋像圖形確定尋像圖形的寬度;獲得模塊尺寸;步驟2.2根據(jù)模塊尺寸,讀取并合并相鄰兩頂點(diǎn)附近的功能信息區(qū)域,獲得版本、糾錯等級信息和掩模信息。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,步驟2.2包括步驟2.2.1讀取步驟1所找到的任一尋像圖形附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);步驟2.2.2讀取與尋像圖形任意一相鄰頂點(diǎn)附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);步驟2.2.3合并尋像圖形及相鄰頂點(diǎn)附近的兩個功能信息區(qū)域中的數(shù)據(jù),如果糾錯無解,執(zhí)行步驟2.2.4;否則進(jìn)行功能信息糾錯處理,獲得糾錯等級信息和掩模信息,執(zhí)行步驟3;步驟2.2.4讀取尋像圖形另一相鄰頂點(diǎn)附近的功能信息區(qū)域中每一模塊的數(shù)據(jù)和在對角線尋像圖形附近的功能信息區(qū)域中每一模塊的數(shù)據(jù);步驟2.2.5合并尋像圖形附近的功能信息區(qū)域數(shù)據(jù)和另一相鄰頂點(diǎn)附近的功能信息區(qū)域數(shù)據(jù),或者合并另一相鄰頂點(diǎn)附近的功能信息區(qū)域數(shù)據(jù)和對角線尋像圖形附近的功能信息區(qū)域數(shù)據(jù);步驟2.2.6判斷糾錯是否有解,如果有解則進(jìn)行糾錯處理,獲得糾錯等級信息和掩模信息,執(zhí)行步驟3;否則結(jié)束。
13.根據(jù)權(quán)利要求1、2、4、5、6、8或12所述的方法,其特征在于,步驟3包括步驟3.1從二維條碼符號第一行左側(cè)開始至最后一行右側(cè)結(jié)束,依次順序讀取二維條碼符號中除尋像圖形和功能信息區(qū)域之外的模塊數(shù)據(jù),且在每一行結(jié)尾處折返到下一行繼續(xù)讀??;步驟3.2按步驟3.1所述原理從左至右讀取其余各行數(shù)據(jù),直至最后一行結(jié)尾處。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,步驟3.1包括3.1.1從二維條碼符號第一行左上角尋像圖形與左上角功能信息區(qū)域之外第一模塊處開始讀取模塊數(shù)據(jù);3.1.2從左到右順序讀取模塊數(shù)據(jù),直到二維條碼符號第一行右上角功能信息區(qū)域前一模塊處。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,步驟3.2包括3.2.1從左上角功能信息區(qū)域與第二行相交點(diǎn)后第一模塊處從左至右讀取模塊數(shù)據(jù)直至右上角功能信息區(qū)域與第二行相交點(diǎn)前一模塊處;3.2.2根據(jù)3.2.1所述原則讀取第3行至第8行模塊數(shù)據(jù);3.2.3從左上角功能信息區(qū)域與第九行相交點(diǎn)中最大橫坐標(biāo)所在點(diǎn)后第一模塊開始從左至右讀取模塊數(shù)據(jù)直至右上角功能信息區(qū)域與第九行相交點(diǎn)中最小橫坐標(biāo)所在點(diǎn)前第一模塊處;轉(zhuǎn)入第十行起始坐標(biāo)處;3.2.4從第十行起始坐標(biāo)處左至右讀取模塊數(shù)據(jù),直至二維條碼符號的右邊線處,轉(zhuǎn)入下一行起始模塊;3.2.5循環(huán)執(zhí)行3.2.4,直至下一行起始坐標(biāo)為左下角功能信息區(qū)域與左邊線相交點(diǎn);3.2.6從左下角功能信息區(qū)域與此行相交點(diǎn)中最大橫坐標(biāo)后一模塊開始從左至右順序讀取模塊數(shù)據(jù),直至右下角功能信息區(qū)域與此行相交點(diǎn)中最小橫坐標(biāo)前一模塊處,轉(zhuǎn)入下一行起始模塊;3.2.7從左下角功能信息區(qū)域與此行相交點(diǎn)后一模塊處從左至右讀取模塊數(shù)據(jù),直到右下角功能信息區(qū)域與此行相交點(diǎn)前一模塊,轉(zhuǎn)入下一行;3.2.8循環(huán)3.2.7,直至最后一行。
16.根據(jù)權(quán)利要求13所述的方法,其特征在于,步驟3還包括在順序讀取除尋像圖形和功能信息圖形之外的模塊數(shù)據(jù)時,進(jìn)一步判斷被讀取的是否為校正圖形或輔助校正圖形模塊,是則跳過。
17.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,步驟3中,在讀取模塊數(shù)據(jù)時,進(jìn)一步判斷被讀取的是否為校正圖形或輔助校正圖形模塊,是則跳過。
18.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟4包括根據(jù)獲得的掩模信息,對數(shù)據(jù)編碼和糾錯編碼進(jìn)行異或處理,去除掩模,恢復(fù)表示數(shù)據(jù)碼字和糾錯碼字的符號字符。
19.根據(jù)權(quán)利要求1、2、4、5、6、8、12、14、15、16或18所述的方法,其特征在于,步驟5包括根據(jù)獲得的糾錯等級,獲得糾錯容量,計算糾錯編碼的位數(shù)和數(shù)據(jù)編碼的位數(shù)。
20.根據(jù)權(quán)利要求1、2、4、5、6、12、14、15、16或18所述的方法,其特征在于,步驟6包括步驟6.1根據(jù)糾錯編碼對數(shù)據(jù)編碼糾錯計算,如果有解,則得到恢復(fù)的編碼數(shù)據(jù);否則執(zhí)行步驟6.2;步驟6.2根據(jù)尋像圖形的個數(shù)和旋轉(zhuǎn)后的尋像圖形在二維條碼符號中的位置,對二維條碼符號順時針或逆時針旋轉(zhuǎn)90度的整數(shù)倍,然后執(zhí)行步驟2。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于,步驟6.1采用分塊糾錯對數(shù)據(jù)編碼進(jìn)行糾錯計算。
22.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟6包括步驟6.1根據(jù)糾錯編碼對數(shù)據(jù)編碼糾錯計算,判斷糾錯是否有解,如果有解,則得到恢復(fù)的編碼數(shù)據(jù);否則執(zhí)行步驟6.2;步驟6.2’判斷是否有兩個尋像圖形,如果是執(zhí)行步驟6.3,否則執(zhí)行步驟6.5;步驟6.3’判斷兩個尋像圖形是否位于對角線位置,如果是,則將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2;否則執(zhí)行步驟6.4;步驟6.4‘判斷兩個尋像圖形是否位于左上角和右上角,是則按順時針將二維條碼符號旋轉(zhuǎn)90度后執(zhí)行步驟2;否則逆時針將二維條碼符號旋轉(zhuǎn)90度后執(zhí)行步驟2;步驟6.5’判斷是否存在校正圖形,如果存在校正圖形則將二維條碼符號旋轉(zhuǎn)180度后執(zhí)行步驟2,否則執(zhí)行步驟6.6;步驟6.6判斷尋像圖形是否位于二維條碼符號右下角的位置,是則將二維條碼符號旋轉(zhuǎn)180度然后執(zhí)行步驟2,否則將二維條碼符號順時針旋轉(zhuǎn)90度然后執(zhí)行步驟2。
全文摘要
本發(fā)明為二維條碼符號轉(zhuǎn)換為編碼信息的方法,包括步驟1在二維條碼符號中尋找尋像圖形,利用尋找到的尋像圖形將二維條碼符號旋轉(zhuǎn)到標(biāo)準(zhǔn)位置;步驟2提取尋像圖形附近功能信息區(qū)域的功能信息,獲得糾錯等級信息和掩模信息;步驟3讀取位于尋像圖形和功能信息區(qū)域之外的模塊數(shù)據(jù)獲得數(shù)據(jù)編碼和糾錯編碼信息;步驟4根據(jù)掩模信息對獲取的數(shù)據(jù)編碼和糾錯編碼去除掩模;步驟5根據(jù)糾錯等級計算數(shù)據(jù)編碼和糾錯編碼的位數(shù);步驟6根據(jù)糾錯編碼對數(shù)據(jù)編碼進(jìn)行糾錯,得到恢復(fù)的編碼數(shù)據(jù)。本發(fā)明克服了現(xiàn)有技術(shù)識讀速度慢,在圖形缺失或者畸變時不易識讀的缺陷,達(dá)到快速識讀的目的,同時提高了解碼效率。
文檔編號G06K9/00GK1959704SQ200610138529
公開日2007年5月9日 申請日期2006年11月7日 優(yōu)先權(quán)日2006年11月7日
發(fā)明者張成海, 羅秋科, 王毅, 黃燕濱, 王越, 孫學(xué)全 申請人:中國物品編碼中心