一種識(shí)別二維碼的方法及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像識(shí)別技術(shù)領(lǐng)域,尤其涉及一種識(shí)別二維碼的方法及設(shè)備。
【背景技術(shù)】
[0002] 二維碼(英文:2_dimensional bar code)是一種用黑白相間的圖像記錄數(shù)據(jù)符 號(hào)信息的條碼,該黑白相間的圖像由特定的幾何圖形按照一定的規(guī)律分布在平面上組成。 一般而言,識(shí)別二維碼的方法可以包括:確定二維碼所在區(qū)域,并對(duì)該區(qū)域的圖像進(jìn)行校 正,以及對(duì)校正后的圖像進(jìn)行解碼,以獲取該二維碼所記錄的信息,即獲取該區(qū)域的圖像的 信息。
[0003] 傳統(tǒng)方法中,通過(guò)定位二維碼中的位置探測(cè)圖形來(lái)確定二維碼所在區(qū)域。其中,每 個(gè)二維碼具有三個(gè)位置探測(cè)圖形,這三個(gè)位置探測(cè)圖形分別分布在二維碼所在區(qū)域的左上 角、左下角以及右上角,每個(gè)位置探測(cè)圖形由三個(gè)同心正方形組成。示例性的,如圖1所示 為一個(gè)二維碼的示意圖,其中,a、b和c分別為該二維碼的三個(gè)位置探測(cè)圖形。通常,掃描 設(shè)備對(duì)該二維碼掃描時(shí),若該掃描設(shè)備檢測(cè)到某個(gè)區(qū)域的水平方向和垂直方向上的黑色區(qū) 域的寬度和白色區(qū)域的寬度均滿足黑:白:黑:白:黑為則該掃描設(shè)備確定該區(qū) 域?yàn)樵摱S碼中的一個(gè)位置探測(cè)圖形。
[0004] 然而,由于二維碼所在區(qū)域或者二維碼所在區(qū)域的背景區(qū)域中也可能存在水平方 向和垂直方向上的黑色區(qū)域的寬度和白色區(qū)域的寬度滿足1:1:3:1:1的區(qū)域,因此,若采 用上述方法確定二維碼所在區(qū)域,則定位的區(qū)域可能不是該二維碼的位置探測(cè)圖形,即確 定的該二維碼的位置探測(cè)圖形是錯(cuò)誤的,從而導(dǎo)致掃描設(shè)備根據(jù)該錯(cuò)誤的位置探測(cè)圖形確 定的二維碼所在區(qū)域不正確,進(jìn)而導(dǎo)致無(wú)法獲取該二維碼所記錄的信息,即導(dǎo)致該二維碼 識(shí)別失敗。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供一種識(shí)別二維碼的方法及設(shè)備,能夠提高定位二維碼的位置探測(cè)圖形 的準(zhǔn)確率,從而提高識(shí)別二維碼的成功率。
[0006] 為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
[0007] 第一方面,本發(fā)明提供一種識(shí)別二維碼的方法,包括:
[0008] 確定η個(gè)第一區(qū)域的η個(gè)重心點(diǎn),其中,每個(gè)第一區(qū)域包括一個(gè)重心點(diǎn),所述η個(gè) 第一區(qū)域?yàn)榇R(shí)別二維碼圖像中水平區(qū)域和垂直區(qū)域的重疊區(qū)域,所述水平區(qū)域?yàn)樗椒?向上黑色區(qū)域的寬度和白色區(qū)域的寬度的比例為第一預(yù)設(shè)比例的區(qū)域,所述垂直區(qū)域?yàn)榇?直方向上黑色區(qū)域的寬度和白色區(qū)域的寬度的比例為所述第一預(yù)設(shè)比例的區(qū)域,所述二維 碼圖像至少包括所述二維碼所在區(qū)域,η彡3, η為整數(shù);
[0009] 從所述η個(gè)重心點(diǎn)中確定所述二維碼的位置探測(cè)圖形的重心點(diǎn),所述二維碼的位 置探測(cè)圖形中以所述二維碼的位置探測(cè)圖形的重心點(diǎn)為中心的各個(gè)區(qū)域的面積的比例為 第二預(yù)設(shè)比例,且所述二維碼的位置探測(cè)圖形的重心點(diǎn)的灰度值為a,其中,a表征所述二 維碼的位置探測(cè)圖形的重心點(diǎn)呈現(xiàn)黑色;
[0010] 以所述二維碼的位置探測(cè)圖形的重心點(diǎn)為第一種子點(diǎn),進(jìn)行區(qū)域生長(zhǎng),形成所述 二維碼所在區(qū)域;
[0011] 獲取所述二維碼所在區(qū)域的圖像的信息。
[0012] 在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述從所述η個(gè)重心點(diǎn)中確定位置探測(cè) 圖形的重心點(diǎn),包括:
[0013] 判斷所述η個(gè)重心點(diǎn)中第i個(gè)重心點(diǎn)的灰度值是否為a,1彡i彡n,i為整數(shù);
[0014] 若所述第i個(gè)重心點(diǎn)灰度值為a,則以所述第i個(gè)重心點(diǎn)為第二種子點(diǎn),分別進(jìn)行 三次區(qū)域生長(zhǎng),形成三個(gè)連通域,并分別計(jì)算所述三個(gè)連通域的面積,否則,判斷所述η個(gè) 重心點(diǎn)中的第i+Ι個(gè)重心點(diǎn)的灰度值是否為a ;
[0015] 若所述三個(gè)連通域的面積的比例為所述第二預(yù)設(shè)比例,則所述第i個(gè)重心點(diǎn)為所 述二維碼的位置探測(cè)圖形的重心點(diǎn)。
[0016] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二中可能的實(shí)現(xiàn)方式中,所述以所 述第i個(gè)重心點(diǎn)為第二種子點(diǎn),分別進(jìn)行三次區(qū)域生長(zhǎng),形成三個(gè)連通域,并分別計(jì)算所述 三個(gè)連通域的面積,包括:
[0017] 以所述第i個(gè)重心點(diǎn)為第二種子點(diǎn),進(jìn)行區(qū)域生長(zhǎng),形成第一連通域,并計(jì)算所述 第一連通域的面積,所述第一連通域包括所述第二種子點(diǎn)和與所述第二種子點(diǎn)的灰度值相 同的像素點(diǎn);
[0018] 將所述第一連通域中所有像素點(diǎn)的灰度值均設(shè)為b,從所述第二種子點(diǎn)開始,重新 進(jìn)行區(qū)域生長(zhǎng),形成第二連通域,并計(jì)算所述第二連通域的面積,所述第二連通域包括所述 第二種子點(diǎn)和與所述第二種子點(diǎn)的灰度值相同的像素點(diǎn),其中,b表征所述第i個(gè)重心點(diǎn)呈 現(xiàn)白色;
[0019] 將所述第二連通域中所有像素點(diǎn)的灰度值均設(shè)為a,從所述第二種子點(diǎn)開始,重新 進(jìn)行區(qū)域生長(zhǎng),形成第三連通域,并計(jì)算所述第三連通域的面積,所述第三連通域包括所述 第二種子點(diǎn)和與所述第二種子點(diǎn)的灰度值相同的像素點(diǎn)。
[0020] 結(jié)合前述的第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式至第一方面的第二種 可能的實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,
[0021] 所述黑色區(qū)域的寬度和白色區(qū)域的寬度的比例為第一預(yù)設(shè)比例包括,黑色區(qū) 域的寬度:白色區(qū)域的寬度:黑色區(qū)域的寬度:白色區(qū)域的寬度:黑色區(qū)域的寬度為 1:1:3:1:1 ;
[0022] 所述第二預(yù)設(shè)比例為9:25:49。
[0023] 結(jié)合前述的第一方面,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述以所述二維 碼的位置探測(cè)圖形的重心點(diǎn)為第一種子點(diǎn),進(jìn)行區(qū)域生長(zhǎng),形成所述二維碼所在區(qū)域,包 括:
[0024] 對(duì)所述二維碼圖像進(jìn)行孔洞填充,以將所述二維碼圖像劃分為多個(gè)連通域;
[0025] 以所述二維碼的位置探測(cè)圖形的重心點(diǎn)為所述第一種子點(diǎn),進(jìn)行區(qū)域生長(zhǎng),形成 第四連通域,所述第四連通域?yàn)樗龆鄠€(gè)連通域中包括所述第一種子點(diǎn)和與所述第一種子 點(diǎn)的灰度值相同的像素點(diǎn)的一個(gè)連通域,所述第四連通域?yàn)樗龆S碼所在區(qū)域。
[0026] 結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述對(duì)所 述二維碼圖像進(jìn)行孔洞填充,包括:
[0027] 從左到右依次掃描所述二維碼圖像的每一行像素點(diǎn)的灰度值,若所述二維碼圖像 中相鄰兩個(gè)黑色區(qū)域之間的白色區(qū)域的寬度小于模塊寬度的二倍,則將所述白色區(qū)域中的 所有像素點(diǎn)的灰度值均設(shè)為a,得到從水平方向上對(duì)所述二維碼圖像進(jìn)行孔洞填充后的第 一填充圖像;
[0028] 從上到下依次掃描所述二維碼圖像的每一列像素點(diǎn)的灰度值,若所述二維碼圖像 中相鄰兩個(gè)黑色區(qū)域之間的白色區(qū)域的寬度小于所述模塊寬度的二倍,則將所述白色區(qū)域 中的所有像素點(diǎn)的灰度值均設(shè)為a,得到從垂直方向上對(duì)所述二維碼圖像進(jìn)行孔洞填充后 的第二填充圖像;
[0029] 將所述第一填充圖像和所述第二填充圖像進(jìn)行邏輯與運(yùn)算,得到對(duì)所述二維碼圖 像進(jìn)行孔洞填充后第三填充圖像,所述第三填充圖像中包括所述多個(gè)連通域,
[0030] 其中,所述模塊寬度等于所述位置探測(cè)圖形的面積開方后除以7。
[0031] 第二方面,一種二維碼識(shí)別設(shè)備,包括:
[0032] 確定單元,用于確定η個(gè)第一區(qū)域的η個(gè)重心點(diǎn),其中,每個(gè)第一區(qū)域包括一個(gè)重 心點(diǎn),所述η個(gè)第一區(qū)域?yàn)榇R(shí)別二維碼圖像中水平區(qū)域和垂直區(qū)域的重疊區(qū)域,所述水 平區(qū)域?yàn)樗椒较蛏虾谏珔^(qū)域的寬度和白色區(qū)域的寬度的比例為第一預(yù)設(shè)比例的區(qū)域,所 述垂直區(qū)域?yàn)榇怪狈较蛏虾谏珔^(qū)域的寬度和白色區(qū)域的寬度的比例為所述第一預(yù)設(shè)比例 的區(qū)域,所述二維碼圖像至少包括所述二維碼所在區(qū)域,η彡3, η為整數(shù);
[0033] 所述確定單元,還用于從所述η個(gè)重心點(diǎn)中確定所述二維碼的位置探測(cè)圖形的重 心點(diǎn),所述二維碼的位置探測(cè)圖形中以所述二維碼的位置探測(cè)圖形的重心點(diǎn)為中心的各個(gè) 區(qū)域的面積的比例為第二預(yù)設(shè)比例,且所述二維碼的位置探測(cè)圖形的重心點(diǎn)的灰度值為a, 其中,a表征所述二維碼的位置探測(cè)圖形的重心點(diǎn)呈現(xiàn)黑色;
[0034] 形成單元,用于以所述確定單元確定的