亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

移動終端圖像捕獲方法

文檔序號:10655995閱讀:230來源:國知局
移動終端圖像捕獲方法
【專利摘要】本發(fā)明提供了一種移動終端圖像捕獲方法,該方法包括:檢測二維碼定位框的位置,對定位框的邊緣進行定位,以確定二維碼的邊緣方向。本發(fā)明提出了一種移動終端圖像捕獲方法,相比于現(xiàn)有方法更簡單方便,提高了識別效率。
【專利說明】
移動終端圖像捕獲方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及圖像識別,特別涉及一種移動終端圖像捕獲方法?!颈尘凹夹g(shù)】
[0002]二維碼具有存儲容量大、數(shù)據(jù)類型豐富、安全穩(wěn)定性高等優(yōu)勢;所以被廣泛應(yīng)用在很多行業(yè)。在移動互聯(lián)網(wǎng)逐漸發(fā)展起來之后,二維碼又在移動互聯(lián)網(wǎng)中占據(jù)了重要地位,如今很多被大眾熟知的移動應(yīng)用都帶有二維碼掃描的功能,二維碼極大地方便了移動應(yīng)用中查詢、支付、下載等功能,漸深入影響著日常生活。然而二維碼在逐漸發(fā)展和推廣的同時也會有一系列的相關(guān)問題?,F(xiàn)有的實際使用中,二維碼所處的環(huán)境多變:電子屏幕、印刷品上、 戶外廣告上等,對于移動設(shè)備所采集到二維碼圖像會有諸多影響,可能會出現(xiàn)失真和光照不均等問題,可能會導(dǎo)致二維碼無法準(zhǔn)確識別。
【發(fā)明內(nèi)容】

[0003]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種移動終端圖像捕獲方法, 包括:
[0004]檢測二維碼定位框的位置,對定位框的邊緣進行定位,以確定二維碼的邊緣方向。
[0005]優(yōu)選地,所述方法還包括:
[0006]首先對二維碼的進行水平和豎直兩個方向上的掃描;發(fā)現(xiàn)具備定位框的以下特征并記錄,即黑白塊比例為預(yù)定義比例的區(qū)域;[〇〇〇7]在水平方向掃描得到的具備定位框特征的區(qū)域,對區(qū)域的灰度值進行統(tǒng)計;選擇一組值最小的像素點,計算出距離這組像素點距離最近的直線的方程,確定為二維碼的左邊緣方向;
[0008]選擇一組值最大的像素點,計算離這組像素點距離最近的直線的方程,確定為二維碼的右邊緣方向;[〇〇〇9]在豎直方向掃描二維碼得到的具備定位框特征的區(qū)域,對該區(qū)域的灰度值進行統(tǒng)計,選擇一組值最小的像素點,計算出離這組像素點距離最近的直線的方程,就是二維碼的上邊緣方向;
[0010]選擇一組值最大的像素點,計算離這組像素點距離最近的直線的方程就是二維碼的下邊緣方向;
[0011]具體檢測步驟包括:
[0012]步驟1:水平方向掃描二維碼記錄第一個像素點的顏色為W;
[0013]步驟2:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄當(dāng)前顏色為W的像素點集的長度為LenA;繼續(xù)掃描直到再次出現(xiàn)顏色為W的像素點,記錄當(dāng)前顏色為B的像素點集的長度記錄為LenB;
[0014]步驟3:判斷LenA和LenB的差值是否在第一誤差閾值內(nèi),如果不是則回到第2步,如果是則轉(zhuǎn)到第4步;
[0015]步驟4:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄當(dāng)前顏色為W的像素點集的長度為LenC;
[0016]步驟5:判斷LenC/3和(LenA+LenB)/2是否在第二誤差閾值內(nèi),如果不是回到第2 步,如果是轉(zhuǎn)到第6步;
[0017]步驟6:繼續(xù)掃描,直到發(fā)現(xiàn)和B不同的顏色為W的像素點,記錄當(dāng)前顏色為B的像素點集的長度為LenD;[〇〇18] 步驟7:判斷LenD和(LenA+LenB+LenC)/5是否在第三誤差閾值內(nèi),如果不是回到第 2步,如果是轉(zhuǎn)到第8步;
[0019]步驟8:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄著一次顏色為W的像素點集的長度記錄為LenE;
[0020]步驟9:判斷LenE和(LenA+LenB+LenC+LenD)/6是否在第四誤差閾值內(nèi),如果不是回到第2步,如果是則將1^1^、1^1113、1^11(]、1^11〇和1^1^作為符合定位框特征的區(qū)域;
[0021]其中,在水平掃描中得到所有結(jié)果區(qū)域,記錄區(qū)域的起始像素點和終止像素點;選取終止像素點集合中值最大的N個像素點;根據(jù)已知的N個像素點的坐標(biāo)位置(X1,yi),(x2, y2),…,(xn,yn)來做出擬合直線y = kx+b,求得k和b的值使得誤差平方和E (y1-(kxi+b))2為最小,則y = kx+b就是所求的直線方程。
[0022]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點:
[0023]本發(fā)明提出了一種移動終端圖像捕獲方法,相比于現(xiàn)有方法更簡單方便,提高了識別效率?!靖綀D說明】
[0024]圖1是根據(jù)本發(fā)明實施例的移動終端圖像捕獲方法的流程圖?!揪唧w實施方式】
[0025]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細描述。結(jié)合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據(jù)權(quán)利要求書實現(xiàn)本發(fā)明。
[0026]本發(fā)明的一方面提供了一種移動終端圖像捕獲方法。圖1是根據(jù)本發(fā)明實施例的移動終端圖像捕獲方法流程圖。
[0027]本發(fā)明根據(jù)二維碼的自身特點利用一種移動終端捕獲圖像的定位和采樣方法,相對于傳統(tǒng)方法的邊緣檢測更簡單方便,對幾何校正后仍然帶有失真的二維碼進行采樣,提高了識別效率。
[0028]對于二維碼這種自身帶有特征且穩(wěn)定性高的符號,可以利用二維碼符號的特征來進行檢測。利用對定位框定位的檢測方法來對定位框的邊緣定位,就可以得到二維碼的邊緣方向。
[0029]首先對二維碼的進行水平和豎直兩個方向上的掃描;發(fā)現(xiàn)具備定位框特征,黑白塊比例為1:1:3:1:1的區(qū)域,記錄下來。在水平方向掃描二維碼得到的具備定位框特征的區(qū)域,對區(qū)域的灰度值進行統(tǒng)計。選擇一組值最小的像素點,計算出距離這組像素點距離最近的直線的方程,就是二維碼的左邊緣方向;同理選擇一組值最大的像素點,計算離這組像素點距離最近的直線的方程就是二維碼的右邊緣方向。然后在豎直方向掃描二維碼得到的具備定位框特征的區(qū)域,對該區(qū)域的灰度值進行統(tǒng)計。選擇一組值最小的像素點,計算出離這組像素點距離最近的直線的方程,就是二維碼的上邊緣方向;同理選擇一組值最大的像素點,計算離這組像素點距離最近的直線的方程就是二維碼的下邊緣方向。
[0030]具體檢測步驟如下:
[0031]步驟1:水平方向掃描二維碼記錄第一個像素點的顏色為W;
[0032]步驟2:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄當(dāng)前顏色為W的像素點集的長度為LenA;繼續(xù)掃描直到再次出現(xiàn)顏色為W的像素點,記錄當(dāng)前顏色為B的像素點集的長度記錄為LenB;[〇〇33]步驟3:判斷LenA和LenB的差值是否在第一誤差閾值內(nèi),如果不是則回到第2步,如果是則轉(zhuǎn)到第4步;
[0034]步驟4:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄當(dāng)前顏色為W的像素點集的長度為LenC;[〇〇35] 步驟5:判斷LenC/3和(LenA+LenB)/2是否在第二誤差閾值內(nèi),如果不是回到第2 步,如果是轉(zhuǎn)到第6步。
[0036]步驟6:繼續(xù)掃描,直到發(fā)現(xiàn)和B不同的顏色為W的像素點,記錄當(dāng)前顏色為B的像素點集的長度為LenD;[〇〇37] 步驟7:判斷LenD和(LenA+LenB+LenC)/5是否在第三誤差閾值內(nèi),如果不是回到第 2步,如果是轉(zhuǎn)到第8步。
[0038]步驟8:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄著一次顏色為W的像素點集的長度記錄為LenE;[〇〇39] 步驟9:判斷LenE和(LenA+LenB+LenC+LenD)/6是否在第四誤差閾值內(nèi),如果不是回到第2步,如果是則將LenA、LenB、LenC、LenD和LenE作為符合定位框特征的區(qū)域。
[0040]水平掃描得到所有結(jié)果區(qū)域,記錄區(qū)域的起始像素點和終止像素點;選取終止像素點集合中值最大的N個像素點,得到距離N個像素點最短的直線方程就是二維碼的右邊緣方向;從起始像素點集合中選取值最小的N個像素點,得到距離這N個像素點最短的直線方程就是二維碼的左邊緣方向;豎直掃描時方法和水平掃描方法相同,能得到二維碼的上邊緣和下邊緣方向。[〇〇41]關(guān)于計算距離N個像素點最短的直線方程,具體為,根據(jù)已知的N個像素點的坐標(biāo)位置(xi,yi),(X2,y2),…,(xn,yn)來做出擬合直線y = kx+b,求得k和b的值使得誤差平方和 E (yi_ (hi+b))2為最小,貝ijy = kx+b就是所求的直線方程。[〇〇42]傳統(tǒng)的二維碼采樣方法,在經(jīng)過幾何校正后的可能會出現(xiàn)錯誤采樣值,本發(fā)明根據(jù)行間的兼容度能得到實際采樣區(qū)域,對該區(qū)域進行采樣。即在確定每一行與每一列的實際采樣區(qū)域交集后,進行像素統(tǒng)計來決定最終當(dāng)前塊的灰度。
[0043]像素行之間的兼容度的計算是關(guān)鍵,具體步驟如下:
[0044]步驟1:從二維碼的左上角點開始,掃描每一行像素并記錄為一個函數(shù);[〇〇45]步驟2:從第一行開始掃描計算,將行掃描的函數(shù)與鄰接行的函數(shù)進行兼容度計算。如果兼容度低于閾值,轉(zhuǎn)到第四步。如果兼容度高于閾值,則鄰接行確定為同一個行塊。 繼續(xù)掃描,直到出現(xiàn)了鄰接行的兼容度低于閾值,每一個行塊的寬度不小于2。
[0046]步驟3:得到行塊的采樣區(qū)域之后,轉(zhuǎn)到第2步,從下一行開始計算,直到得到行塊的采樣區(qū)域。
[0047]步驟4:如果兼容度低于閾值,則鄰接行確定為不屬于同一個行塊)。轉(zhuǎn)到第2步,從下一行開始計算。
[0048]步驟5:根據(jù)相同過程對圖像進行列掃描,得到列模塊的個數(shù)和采樣區(qū)域。
[0049]步驟6:得到行和列的采樣區(qū)域之后,統(tǒng)計相應(yīng)區(qū)域的塊灰度比例,根據(jù)黑白像素比例來決定該區(qū)域的塊灰度。
[0050]定義Mat為行或列像素的函數(shù)與行或列像素的函數(shù)的兼容度,定義Mat = l/(1 + Ex f(x,r)-g(x,r)|)
[0051]其中f(x,r)為r行的函數(shù),g(x,r)為r-1行的函數(shù)。Mat越大兩個函數(shù)兼容度越高, 意味著兩行像素越大可能屬于同一個行塊。根據(jù)采樣結(jié)果中的Mat的最大值和最小值來決定閾值。
[0052]在對二維碼區(qū)域進行準(zhǔn)確定位后,將進行解碼,本發(fā)明二維碼解碼主要分為掃描獲得二維碼寬度,確定二維碼方向,識別二維碼數(shù)據(jù)。本發(fā)明不處理整個二維碼區(qū)域,僅處理有限條掃描線上的數(shù)據(jù)。算法主要分如下幾個步驟。[〇〇53](1)選擇定位掃描過程中,最長的掃描線。將該掃描線與二維碼區(qū)域的長度相對比。若在該掃描線與二維碼區(qū)域長度的差值在最小單元寬度的范圍內(nèi),則確定該掃描線是能夠掃描到二維碼全部單元的掃描線。反之,則認為該掃描線不能掃描到二維碼全部單元, 需要根據(jù)二維碼區(qū)域的四個頂點確定一組在二維碼區(qū)域內(nèi)的平行掃描線,由此可以避免二維碼破損,掃描錯誤的情況。
[0054](2)在掃描過程中,使用雙線性差值算法獲得掃描步長為一個像素的掃描數(shù)據(jù),用數(shù)組line[n]表示,其中n掃描線的長度。
[0055]對數(shù)組line中的灰度值進行判斷。若一個點與其下一點的異或值為1則這個點就認為是邊緣點,若這個點的灰度值為1則存入數(shù)組wb[w],若這個點的灰度值為0則存入數(shù)組 bw[m]。將Susan算子中的高斯濾波器大小設(shè)為1。記錄邊緣點所在像素點在line[n]數(shù)組中的索引位置,即是邊緣點在掃描線上的相對位置。根據(jù)一階導(dǎo)數(shù)的正負將由白到黑以及由黑到白的邊緣點分別存入數(shù)組wb [ m ]、bw [ m ]中。故wb [ m ]的第一個點是掃描線的起始點,bw [m]的最后一個點應(yīng)是掃描線的終止點。
[0056]獲得按掃描順序排列的所有條的邊緣點在掃描線中的位置后,根據(jù)下式可得二維碼中所有連續(xù)同色區(qū)域的寬度,按順序交叉排列條和空便是完整的二維碼的連續(xù)同色區(qū)域?qū)挾刃畔?br>[0057]Wwide[m] =wb[m+l ]-bw[m]
[0058]bwide[m] =bw[m]-wb[m]
[0059]將最窄單元寬度視為一個模塊的寬度,根據(jù)以下公式將各個單元記為不同的正則化值{1,2,3,4}。
[0060]1.6S>7bJljBi = l;
[0061]1.65〈7匕〈2.65則& = 2;
[0062]2.65>7匕〈3.65則& = 3;
[0063]3.6S〈7bi 則 Bi = 4;[〇〇64] h為第i個單元的寬度,對應(yīng)正則化值。得到連續(xù)同色區(qū)域排列后根據(jù)PDF417 的編碼表進行解碼。
[0065]綜上所述,本發(fā)明提出了一種移動終端圖像捕獲方法,相比于現(xiàn)有方法更簡單方便,提高了識別效率。[〇〇66]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0067]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊緣、或者這種范圍和邊緣的等同形式內(nèi)的全部變化和修改例。
【主權(quán)項】
1.一種移動終端圖像捕獲方法,用于移動終端對二維碼進行定位,其特征在于,包括:檢測二維碼定位框的位置,對定位框的邊緣進行定位,以確定二維碼的邊緣方向。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:首先對二維碼的進行水平和豎直兩個方向上的掃描;發(fā)現(xiàn)具備定位框的以下特征并記 錄,即黑白塊比例為預(yù)定義比例的區(qū)域;在水平方向掃描得到的具備定位框特征的區(qū)域,對區(qū)域的灰度值進行統(tǒng)計;選擇一組 值最小的像素點,計算出距離這組像素點距離最近的直線的方程,確定為二維碼的左邊緣 方向;選擇一組值最大的像素點,計算離這組像素點距離最近的直線的方程,確定為二維碼 的右邊緣方向;在豎直方向掃描二維碼得到的具備定位框特征的區(qū)域,對該區(qū)域的灰度值進行統(tǒng)計, 選擇一組值最小的像素點,計算出離這組像素點距離最近的直線的方程,就是二維碼的上 邊緣方向;選擇一組值最大的像素點,計算離這組像素點距離最近的直線的方程就是二維碼的下 邊緣方向;具體檢測步驟包括:步驟1:水平方向掃描二維碼記錄第一個像素點的顏色為W;步驟2:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄當(dāng)前顏色為W的像素點集 的長度為LenA;繼續(xù)掃描直到再次出現(xiàn)顏色為W的像素點,記錄當(dāng)前顏色為B的像素點集的 長度記錄為LenB;步驟3:判斷LenA和LenB的差值是否在第一誤差閾值內(nèi),如果不是則回到第2步,如果是 則轉(zhuǎn)到第4步;步驟4:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄當(dāng)前顏色為W的像素點集 的長度為LenC;步驟5:判斷LenC/3和(LenA+LenB)/2是否在第二誤差閾值內(nèi),如果不是回到第2步,如 果是轉(zhuǎn)到第6步;步驟6:繼續(xù)掃描,直到發(fā)現(xiàn)和B不同的顏色為W的像素點,記錄當(dāng)前顏色為B的像素點集 的長度為LenD;步驟7:判斷LenD和(LenA+LenB+LenC)/5是否在第三誤差閾值內(nèi),如果不是回到第2步, 如果是轉(zhuǎn)到第8步;步驟8:繼續(xù)掃描,直到發(fā)現(xiàn)和W不同的顏色為B的像素點,記錄著一次顏色為W的像素點 集的長度記錄為LenE;步驟9:判斷LenE和(LenA+LenB+LenC+LenD)/6是否在第四誤差閾值內(nèi),如果不是回到 第2步,如果是則將LenA、LenB、LenC、LenD和LenE作為符合定位框特征的區(qū)域;其中,在水平掃描中得到所有結(jié)果區(qū)域,記錄區(qū)域的起始像素點和終止像素點;選取終 止像素點集合中值最大的N個像素點;根據(jù)已知的N個像素點的坐標(biāo)位置(X1,yi),(x2, y2),…,(xn,yn)來做出擬合直線y = kx+b,求得k和b的值使得誤差平方和E (y1-(kxi+b))2為 最小,則y = kx+b就是所求的直線方程。
【文檔編號】G06K7/14GK106022203SQ201610333214
【公開日】2016年10月12日
【申請日】2016年5月19日
【發(fā)明人】董政, 吳文杰, 陳露, 李學(xué)生
【申請人】成都陌云科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1