基于聚類對(duì)qr二維碼圖像進(jìn)行校正的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及二維碼圖像技術(shù)領(lǐng)域,尤其涉及一種基于聚類對(duì)QR二維碼圖像進(jìn)行 校正的方法和裝置。
【背景技術(shù)】
[0002] 隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,二維碼作為高效的信息載體在物流等領(lǐng)域應(yīng)用得越來越 廣泛。其中QR (Quick Response,快速反應(yīng))二維碼因其豐富的版本類型,多種容錯(cuò)級(jí)別且 成熟的編解碼技術(shù)得到越來越多的關(guān)注,在復(fù)雜環(huán)境下快速正確的識(shí)讀QR二維碼也成為 近年來研究的熱點(diǎn),其中如何對(duì)變形的QR二維碼圖像進(jìn)行校正是其中的熱點(diǎn)問題。
[0003] 現(xiàn)有技術(shù)中的一種對(duì)QR二維碼圖像進(jìn)行校正的方法主要包括:通過Hough變換尋 找QR二維碼圖像中的邊界直線,根據(jù)各個(gè)邊界直線計(jì)算出QR二維碼圖像的多個(gè)交點(diǎn)集,再 根據(jù)QR二維碼圖像的多個(gè)交點(diǎn)集計(jì)算出QR二維碼的頂點(diǎn)坐標(biāo)。然后,依據(jù)得到的頂點(diǎn)坐 標(biāo)對(duì)QR二維碼圖像進(jìn)行透視變換和幾何變換,最終校正的QR二維碼的變形圖像。
[0004] 上述現(xiàn)有技術(shù)中的對(duì)QR二維碼圖像進(jìn)行校正的方法的缺點(diǎn)為:由于QR二維碼圖 像是由若干像素點(diǎn)堆積的像素塊,且像素點(diǎn)的排列方式因信息、版本、容錯(cuò)級(jí)別的不同呈現(xiàn) 隨機(jī)性,通過Hough變換后尋找到的QR二維碼圖像的直線簇中將包括多條噪音直線,很難 在包括多條噪音直線的直線簇中確定QR二維碼的四個(gè)邊界直線。
[0005] 由于Hough變換的特性,通過Hough變換尋找到的QR二維碼圖像的邊界直線可能 有多條,因而根據(jù)邊界直線計(jì)算出的交點(diǎn)集可能有多個(gè)且呈現(xiàn)聚集性分布,在這些多個(gè)交 點(diǎn)集中如何準(zhǔn)確得到QR二維碼的頂點(diǎn)坐標(biāo)是一個(gè)難點(diǎn)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的實(shí)施例提供了一種基于聚類對(duì)QR二維碼圖像進(jìn)行校正的方法和裝置, 以實(shí)現(xiàn)有效地對(duì)QR二維碼圖像進(jìn)行校正。
[0007] 本發(fā)明提供了如下方案:
[0008] -種基于聚類對(duì)QR二維碼圖像進(jìn)行校正的方法,包括:
[0009] 對(duì)QR二維碼圖像進(jìn)行三次膨脹處理,對(duì)膨脹處理后的所述QR二維碼圖像進(jìn)行 Hough變換,獲取所述QR二維碼圖像的四個(gè)邊界;
[0010] 根據(jù)所述四個(gè)邊界分別擬合出QR二維碼圖像的四個(gè)邊界直線集合,構(gòu)造出所述 四個(gè)邊界直線集合分別對(duì)應(yīng)的四個(gè)交點(diǎn)集合;
[0011] 根據(jù)預(yù)先設(shè)定的交點(diǎn)集合的初始頂點(diǎn)簇和距離閾值,對(duì)所述四個(gè)交點(diǎn)集合分別進(jìn) 行交點(diǎn)聚類分析,得到最終的四個(gè)交點(diǎn)簇,通過計(jì)算所述四個(gè)交點(diǎn)簇的中心點(diǎn)得到QR二維 碼圖像的四個(gè)頂點(diǎn)坐標(biāo);
[0012] 根據(jù)所述QR二維碼圖像的四個(gè)頂點(diǎn)坐標(biāo)和Hough變換的標(biāo)準(zhǔn)坐標(biāo)計(jì)算出變換系 數(shù),根據(jù)所述變換系數(shù)對(duì)所述QR二維碼圖像進(jìn)行校正處理。
[0013] 所述的對(duì)QR二維碼圖像進(jìn)行三次膨脹處理,包括:
[0014] 步驟101 :獲得QR二維碼圖像中各像素點(diǎn)的灰度值;
[0015] 步驟102 :獲得QR二維碼圖像的長(zhǎng)寬尺寸w,h,初始化橫坐標(biāo)a=0,縱坐標(biāo)b=0,初 始化QR二維碼圖像的前景色forecolor ;
[0016] 步驟103 :判斷橫坐標(biāo)a是否超過QR二維碼圖像的寬度W,如果不超過則執(zhí)行步 驟104,否則結(jié)束;
[0017] 步驟104 :判斷縱坐標(biāo)b是否超過QR二維碼圖像的寬度h,如果不超過則執(zhí)行步 驟105,否則執(zhí)行步驟108 ;
[0018] 步驟105 :判斷像素點(diǎn)(a, b)的灰度值是否是所述前景色forecolor,如果是則執(zhí) 行步驟106,否則執(zhí)行步驟107 ;
[0019] 步驟106:根據(jù)w,h判斷像素點(diǎn)(a,b)是否是QR二維碼圖像的邊界點(diǎn),如果不是 則執(zhí)行1061 ;如果是則執(zhí)行步驟1062 ;
[0020] 步驟1061 :對(duì)像素點(diǎn)(a, b)的8鄰域進(jìn)行灰度重置,將像素點(diǎn)(a, b)的8鄰域的 像素點(diǎn)的灰度值置為前景色forecolor,即:
[0021] f (a, b) =forecolor ;
[0022] f (a-1, b) =forecolor ;
[0023] f (a-1, b~l) =forecolor ;
[0024] f(a+1, b)=forecolor ;
[0025] f (a+1, b+1) =forecolor ;
[0026] f (a, b~l) =forecolor ;
[0027] f (a, b+1) =forecolor ;
[0028] 然后執(zhí)行步驟107 ;
[0029] 步驟1062 :對(duì)像素點(diǎn)(a, b)的4鄰域進(jìn)行灰度重置,將像素點(diǎn)(a, b)的4鄰域的 像素點(diǎn)的灰度值置為前景色forecolor,即:
[0030] f (a, b) =forecolor ;
[0031] f(a+1, b)=forecolor ;
[0032] f (a+1, b+1) =forecolor ;
[0033] f (a, b+1) =forecolor ;
[0034] 然后執(zhí)行步驟107 ;
[0035] 步驟107 :橫坐標(biāo)a不變,縱坐標(biāo)b增加I,轉(zhuǎn)步驟104 ;
[0036] 步驟108 :橫坐標(biāo)a增加1,轉(zhuǎn)步驟103。
[0037] 所述的構(gòu)造出所述四個(gè)邊界直線集合分別對(duì)應(yīng)的四個(gè)交點(diǎn)集合,包括:
[0038] 步驟301 :選取邊界直線集合L;
[0039] 步驟302 :選擇L中的任意兩條直線11,12;
[0040] 步驟303 :判斷11是否屬于L,是則執(zhí)行步驟304,否則結(jié)束;
[0041] 步驟304 :判斷12是否屬于L,且11不等于12,是則執(zhí)行305,否則執(zhí)行步驟307 ;
[0042] 步驟305 :根據(jù)兩條直線的直線方程得到11和12的交點(diǎn),判斷該交點(diǎn)是否屬于QR 二維碼圖像上,若屬于,則將該交點(diǎn)存在交點(diǎn)集合A+中,執(zhí)行步驟306 ;
[0043] 步驟306 :選擇L中另一條直線賦給12,轉(zhuǎn)步驟304 ;
[0044] 步驟307 :選擇L中另外一條直線賦給11,轉(zhuǎn)步驟303 ;
[0045] 直到所述邊界直線集合L中的所有直線都被選取了,將所述交點(diǎn)集合作為所述 邊界直線集合L對(duì)應(yīng)的交點(diǎn)集合。
[0046] 所述的根據(jù)預(yù)先設(shè)定的交點(diǎn)集合的初始頂點(diǎn)簇和距離閾值,對(duì)所述四個(gè)交點(diǎn)集合 分別進(jìn)行交點(diǎn)聚類分析,得到最終的四個(gè)交點(diǎn)簇,通過計(jì)算所述四個(gè)交點(diǎn)簇的中心點(diǎn)得到 QR二維碼圖像的四個(gè)頂點(diǎn)坐標(biāo),包括:
[0047] 步驟401 :選取一個(gè)QR二維碼圖像的邊界的交點(diǎn)集合A ;
[0048] 步驟402 :隨機(jī)選定頂點(diǎn)簇Z,初始化Z的中心點(diǎn)G = (X,y),距離閾值t;
[0049] 步驟403 :遍歷交點(diǎn)集合A中的所有交點(diǎn),計(jì)算任一交點(diǎn)(i, j)與G點(diǎn)的距離d;
[0050]
【主權(quán)項(xiàng)】
1. 一種基于聚類對(duì)QR二維碼圖像進(jìn)行校正的方法,其特征在于,包括: 對(duì)QR二維碼圖像進(jìn)行三次膨脹處理,對(duì)膨脹處理后的所述QR二維碼圖像進(jìn)行Hough 變換,獲取所述QR二維碼圖像的四個(gè)邊界; 根據(jù)所述四個(gè)邊界分別擬合出QR二維碼圖像的四個(gè)邊界直線集合,構(gòu)造出所述四個(gè) 邊界直線集合分別對(duì)應(yīng)的四個(gè)交點(diǎn)集合; 根據(jù)預(yù)先設(shè)定的交點(diǎn)集合的初始頂點(diǎn)簇和距離閾值,對(duì)所述四個(gè)交點(diǎn)集合分別進(jìn)行交 點(diǎn)聚類分析,得到最終的四個(gè)交點(diǎn)簇,通過計(jì)算所述四個(gè)交點(diǎn)簇的中心點(diǎn)得到QR二維碼圖 像的四個(gè)頂點(diǎn)坐標(biāo); 根據(jù)所述QR二維碼圖像的四個(gè)頂點(diǎn)坐標(biāo)和Hough變換的標(biāo)準(zhǔn)坐標(biāo)計(jì)算出變換系數(shù),根 據(jù)所述變換系數(shù)對(duì)所述QR二維碼圖像進(jìn)行校正處理。
2. 根據(jù)權(quán)利要求1所述的基于聚類對(duì)QR二維碼圖像進(jìn)行校正的方法,其特征在于,所 述的對(duì)QR二維碼圖像進(jìn)行三次膨脹處理,包括: 步驟101 :獲得QR二維碼圖像中各像素點(diǎn)的灰度值; 步驟102:獲得QR二維碼圖像的長(zhǎng)寬尺寸w,h,初始化橫坐標(biāo)a=0,縱坐標(biāo)b=0,初始 化QR二維碼圖像的前景色forecolor ; 步驟103 :判斷橫坐標(biāo)a是否超過QR二維碼圖像的寬度w,如果不超過則執(zhí)行步驟104, 否則結(jié)束; 步驟104 :判斷縱坐標(biāo)b是否超過QR二維碼圖像的寬度h,如果不超過則執(zhí)行步驟105, 否則執(zhí)行步驟108 ; 步驟105:判斷像素點(diǎn)(a,b)的灰度值是否是所述前景色forecolor,如果是則執(zhí)行步 驟106,否則執(zhí)行步驟107; 步驟106 :根據(jù)w,h判斷像素點(diǎn)(a,b)是否是QR二維碼圖像的邊界點(diǎn),如果不是則執(zhí) 行1061 ;如果是則執(zhí)行步驟1062 ; 步驟1061:對(duì)像素點(diǎn)(a,b)的8鄰域進(jìn)行灰度重置,將像素點(diǎn)(a,b)的8鄰域的像素 點(diǎn)的灰度值置為前景色forecolor,即: f(a, b)=forecolor ; f(a~l, b)=forecolor ; f(a~l, b~l)=forecolor ; f(a+1, b)=forecolor ; f(a+1, b+1)=forecolor ; f(a, b~l)=forecolor ; f(a, b+1)=forecolor ; 然后執(zhí)行步驟107 ; 步驟1062:對(duì)像素點(diǎn)(a,b)的4鄰域進(jìn)行灰度重置,將像素點(diǎn)(a,b)的4鄰域的像素 點(diǎn)的灰度值置為前景色forecolor,即: f(a, b)=forecolor ; f(a+1, b)=forecolor ; f