基于畸變圖像校正的qr碼解碼方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種畸變條碼圖像的校正方法和系統(tǒng),具體地說涉及一種基于畸變圖像校正的QR碼解碼方法和系統(tǒng)。
【背景技術(shù)】
[0002]條形碼(簡稱條碼)可分為一維條碼和二維條碼,一維條碼是由一組規(guī)則排列的條、空以及對應(yīng)的字符組成的標(biāo)記,“條”指對光線反射率較低的部分,“空”指對光線反射率較高的部分,這些條和空組成的數(shù)據(jù)表達一定的信息。二維條碼是用特定的幾何圖像按一定規(guī)律在平面(二維方向上)分布的黑白相間的矩形方陣記錄數(shù)據(jù)符號信息的新一代的條碼技術(shù);二維條碼可以分為堆疊式二維條碼和矩陣式二維條碼。堆疊式二維條碼形態(tài)上是由多行短截的一維條碼堆疊而成(如TOF417條碼);矩陣式二維條碼以矩陣的形式組成,在矩陣相應(yīng)元素位置上用“點”表示二進制“ I ”,用“空”表示二進制“0”,由“點”和“空”的排列組成代碼(如QR碼)。二維碼具有存儲容量大,包含信息豐富,并且需要特別的解析方式,有很強的保密性。但是由于的二維碼的二維特性,在二維碼的水平和垂直分別存儲不同的信息,因此相比于一維碼有較大的解碼難度。
[0003]在日常生活和工業(yè)應(yīng)用中,二維碼的使用越來越廣泛,諸如:零售行業(yè)、物流行業(yè)、金融行業(yè)對條碼的使用需求越來越大。二維碼也從早期的平面印刷品,應(yīng)用在不同形狀物體的表面,例如:將二維碼印于圓柱形藥瓶表面用于記錄藥品相關(guān)信息;展會或促銷時,將包含產(chǎn)品信息或宣傳信息的二維碼貼紙貼在展銷人員的手臂上。在這些應(yīng)用場景下,因為條碼都位于曲面物體上,即條碼彎曲,條碼識讀設(shè)備拍攝到的條碼圖像相較于平整的條碼圖像存在一定的變形和失真?,F(xiàn)有技術(shù)中的二維碼解碼技術(shù)僅限于解決條碼識讀設(shè)備拍攝到的條碼為四邊形,以及條碼有較小曲面畸變的情況。中國專利文獻CN101908144B中對所拍攝條碼的圖像處理的具體操作過程可以用圖1所示,首先通過模式匹配等方法獲得二維碼特征點的坐標(biāo)位置,如二維碼的尋像圖像和校正圖像的坐標(biāo)位置。利用透視變換原理,根據(jù)源圖像和目標(biāo)圖像的特征點對應(yīng)關(guān)系,分塊提取條碼的像素值序列,并送入解碼器解碼。但由于透視變換求解出的變換矩陣只能將一個四邊形變換到正方形,或者,將一個正方形變換到四邊形。在解決條碼識讀設(shè)備拍攝到的貼在曲面上的條碼的解碼上有較大的局限性。條碼識讀設(shè)備對位于曲面物體表面的解碼效率較低,通常要用戶手持條碼識讀設(shè)備以不同角度捕獲條碼圖像,然后進行解碼嘗試,解碼成功率較低。
【發(fā)明內(nèi)容】
[0004]為此,本發(fā)明所要解決的技術(shù)問題在于現(xiàn)有技術(shù)中條碼識讀設(shè)備無法準(zhǔn)確識讀圖像畸變的QR碼。
[0005]為解決上述技術(shù)問題,本發(fā)明的所采用的技術(shù)方案:
[0006]基于畸變圖像校正的QR碼解碼方法,包括以下步驟:
[0007]S1:獲取一幀包含QR碼的圖像;
[0008]S2:判斷QR碼版本,并確定QR碼的多個特征點;
[0009]S3:建立坐標(biāo)系,獲取所述QR碼的多個特征點的坐標(biāo);
[0010]S4:根據(jù)QR碼的版本調(diào)用與QR碼的版本對應(yīng)的匹配模板;
[0011 ] S5:根據(jù)獲取的QR碼的特征點的坐標(biāo)和所述匹配模板中對應(yīng)的特征點的坐標(biāo),將所述QR碼的像素點應(yīng)用透視變換算法進行校正,將所述QR碼的每一像素點的灰度值填入所述匹配模板,得到第一解碼用圖;
[0012]S6:對第一解碼用圖應(yīng)用解碼算法進行嘗試解碼;解碼成功,則結(jié)束,開始下一幀QR碼的圖像校正;若解碼失敗,則繼續(xù)下一步驟;
[0013]S7:建立坐標(biāo)系,根據(jù)步驟S3中獲取的所述QR碼的多個特征點的坐標(biāo)以及所述匹配模版中對應(yīng)的特征點的坐標(biāo),應(yīng)用曲面校正算法進行校正,得到包含校正后的QR碼的第二還原圖;
[0014]S8:建立坐標(biāo)系,獲取所述第二還原圖中的QR碼的多個特征點的坐標(biāo);
[0015]S9:根據(jù)獲取的所述第二還原圖中的QR碼的多個特征點的坐標(biāo)和所述匹配模板中對應(yīng)的特征點的坐標(biāo),將所述第二還原圖中的QR碼的像素點應(yīng)用透視變換算法進行校正,將所述第二還原圖中的QR碼的每一像素點的灰度值填入所述匹配模板,得到第二解碼用圖;
[0016]S10:將所述第二解碼用圖應(yīng)用解碼算法進行嘗試解碼,解碼成功,則開始下一幀QR碼的圖像校正。
[0017]所述步驟S7中,所述曲面校正算法具體為如下的多次項式:
[0018]U = a0x2+a1y2+a2xy+a3x+a4y+a5
[0019]V = b0x2+b1y2+b2xy+b3x+b4y+b5
[0020]其中,U和V為所述QR碼的多個特征點的坐標(biāo),X和y為在所述匹配模版上對應(yīng)的特征點的坐標(biāo),a。、an a2、a3、a4、a5、b。、bn b2、b3、b4、b5為曲面建模變換系數(shù)。
[0021]所述步驟S5中,所述透視變換系數(shù)具體為如下的透視變換公式:
[0022]U= (ax+by+c)/ (gx+hy+1)
[0023]V= (dx+ey+f)/ (gx+hy+1)
[0024]其中,U和V為所述QR碼的多個特征點的坐標(biāo),X和y為在所述匹配模版上對應(yīng)的特征點的坐標(biāo),a、b、C、d、e、f、g及h為透視變換系數(shù)。
[0025]所述步驟S6中,將校正后的QR碼的像素點的灰度值帶入所述匹配模板中,將包含各像素點灰度值的匹配模板應(yīng)用解碼算法進行嘗試解碼。
[0026]所述步驟SlO中,將透視變換校正后的QR碼的像素點的灰度值帶入所述匹配模板中,將包含各像素點灰度值的匹配模板應(yīng)用解碼算法進行嘗試解碼。
[0027]基于畸變圖像校正的QR碼解碼系統(tǒng),包括以下模塊:
[0028]圖像獲取模塊:獲取一幀包含QR碼的圖像;
[0029]特征點獲取模塊:判斷QR碼版本,并確定QR碼的多個特征點;
[0030]計算模塊:建立坐標(biāo)系,獲取所述QR碼的多個特征點的坐標(biāo);
[0031]匹配模板調(diào)用模塊:根據(jù)QR碼的版本調(diào)用與QR碼的版本對應(yīng)的匹配模板;
[0032]第一校正模塊:根據(jù)獲取的QR碼的特征點的坐標(biāo)和所述匹配模板中對應(yīng)的特征點的坐標(biāo),將所述QR碼的像素點應(yīng)用透視變換算法進行校正,將所述QR碼的每一像素點的灰度值填入所述匹配模板,得到第一解碼用圖;
[0033]第一解碼模塊:對第一解碼用圖應(yīng)用解碼算法進行嘗試解碼;解碼成功,則結(jié)束,開始下一幀QR碼的圖像校正;若解碼失敗,則由曲面校正模塊繼續(xù)進行校正;
[0034]曲面校正模塊:根據(jù)所述計算模塊獲取的所述QR碼的多個特征點的坐標(biāo)以及所述匹配模版中對應(yīng)的特征點的坐標(biāo),應(yīng)用曲面校正算法進行校正,得到第二還原圖;
[0035]第二計算模塊:建立坐標(biāo)系,獲取所述第二還原圖中的QR碼的多個特征點的坐標(biāo);
[0036]第二校正模塊:根據(jù)獲取的所述第二還原圖中的QR碼的多個特征點的坐標(biāo)和所述匹配模板中對應(yīng)的特征點的坐標(biāo),將所述第二還原圖中的QR碼的像素點應(yīng)用透視變換算法進行校正,將所述第二還原圖中的QR碼的每一像素點的灰度值填入所述匹配模板,得到第二解碼用圖;
[0037]第二解碼模塊:將所述第二解碼用圖應(yīng)用解碼算法進行嘗試解碼,解碼成功,則開始下一幀QR碼的圖像校正。
[0038]所述曲面校正模塊中,所述曲面校正算法具體為如下的多次項式:
[0039]U = a0x2+a1y2+a2xy+a3x+a4y+a5
[0040]V = b0x2+b1y2+b2xy+b3x+b4y+b5
[0041 ] 其中,U和V為所述QR碼的多個特征點的坐標(biāo),X和y為在所述匹配模版上對應(yīng)的特征點的坐標(biāo),a。、an a2、a3、a4、a5、b。、bn b2、b3、b4、b5為曲面建模變換系數(shù)。
[0042]所述第一校正模塊中,所述透視變換系數(shù)具體為如下的透視變換公式計算透視變換系數(shù):
[0043]U= (ax+by+c)/ (gx+hy+1)
[0044]V= (dx+ey+f