一種qr碼定位及識別方法
【技術領域】
[0001] 本發明屬于圖像識別領域,更具體地,涉及一種QR碼定位及識別方法。
【背景技術】
[0002]QR碼是一種矩陣二維碼符號,QR碼不僅信息容量大、可靠性高、成本低,還可表示 漢字及圖像等多種文字信息、其保密防偽性強而且使用非常方便。這些特點決定了QR二維 碼適用于表單、物流追蹤、證照、存貨盤點等方面。
[0003] 在眾多的應用場景下,圖像獲取設備獲取的二維碼圖像,可能因為拍攝角度、圖像 彎折等各種因素造成的圖像存在幾何畸變,獲得的條碼圖像并非是標準的正方形,而是任 意四邊形,由對于這種幾何失真的存在,使得使用傳統的定位方法,也即是在整幅圖像中搜 索QR碼的定位圖形,根據定位圖形中各元素圖像寬度的比例是I:I: 3 :I: 1的特 點,在水平和垂直方向進行計算,找到3個定位圖形,進而確定二維碼的方位的這種方法不 能對QR碼進行定位,因此不能對幾何畸變的QR碼進行矯正。故需要提出一種新的在圖像 存在幾何變形中的QR碼定位及畸變矯正的算法。
【發明內容】
[0004] 針對現有技術的以上缺陷或改進需求,本發明提供了一種QR碼定位及識別方法, 其目的在于通過圖像矯正對產生幾何畸變的QR碼進行定位和識別,由此解決現有的QR碼 掃描識別要求較高限制識別效率的技術問題。
[0005] 為實現上述目的,按照本發明的一個方面,提供了一種QR碼定位方法,包括以下 步驟:
[0006] (1)圖像獲取及預處理:獲取待檢測QR碼的灰度圖像,并進行二值化處理得到QR 碼的二值化圖像;
[0007] (2)判斷定位圖形坐標:在步驟⑴中獲得的QR碼二值化圖像中,根據連通域提 取、矩形度分析以及孤島特征判斷,提取QR碼三個定位圖形坐標,具體步驟如下:
[0008] (2-1)連通域提取:將步驟(1)中獲得的QR碼二值化圖像,采用連通域分析,提取 黑色像素的連通域;
[0009] (2-2)矩形度分析:對于步驟(2-1)中獲得的每一個黑色像素連通域,獲取該連通 區域的矩形度,所述矩形度為該連通域的實際面積值與其最小外接矩形框面積之比,保留 矩形度大于預設的篩選閾值的黑色像素連通域作為矩形連通域;
[0010] (2-3)孤島特征判斷:對于步驟(2-2)中獲得的每一個矩形連通域,保留具有黑色 像素點孤島特征的矩形連通域,作為定位標,得到定位圖形。
[0011] 優選地,所述QR碼定位方法,其步驟(2-3)所述孤島特征為以下特征之一:
[0012] A、采用連通域分析,其中矩形連通域中包含有白色連通域;
[0013] B、采用連通域分析,其中包括三個或三個以上連通域;
[0014]C、統計像素黑色像素點和白色像素點數量比,其在預設篩選范圍之內。
[0015] 優選地,所述QR碼定位方法,其步驟(2-1)及(2-3)連通域分析方法為區域種子 生長法或兩遍掃描法兩步法。
[0016] 按照本發明的另一方面,提供了一種QR碼識別方法,包括以下步驟:
[0017] S1、按照所述QR碼定位方法進行定位,根據定位結果在QR碼的二值化圖像中獲取 QR碼定位圖像;
[0018] S2、對于步驟Sl中獲得的QR碼定位圖像,依次進行膨脹運算和腐蝕運算,并用邊 緣檢測算法,得到QR碼邊緣;
[0019] S3、對于步驟S2中獲得的QR碼邊緣,通過邊算法獲得QR碼的四條邊,并計算四條 邊的交點作為畸變控制點;
[0020] S4、根據步驟S3中獲得的畸變控制點,采用雙線性差值算法,得到幾何矯正后的 QR碼圖像;
[0021] S5、對于步驟S4中獲得的幾何矯正后的圖像,按照QR碼識別算法進行識別,得到 識別結果。
[0022] 優選地,所述QR碼識別方法,其步驟S2所述的邊緣檢測算法采用Canny算子、 sobel算子或roberts算子。
[0023] 優選地,所述QR碼識別方法,其步驟S3所述的邊算法為邊緣追蹤算法或點掃描算 法,所述點掃描算法的具體步驟為:
[0024] 根據步驟Sl得到的定位結果,計算其QR碼圖形的中點;以所述中點為起始點,從 內向外沿相互垂直的四個方向進行掃描,得四個與步驟S2中獲得的QR碼邊緣的交點;對于 每一個交點,以該交點為中心,以預設的步長采樣得到多個采樣點,對所述多個采樣點進行 直線擬合,得到QR碼的四條邊界。
[0025] 總體而言,通過本發明所構思的以上技術方案與現有技術相比,能夠取得下列有 益效果:
[0026] (1)本發明提供了一種在圖像存在幾何畸變下的QR碼定位及畸變矯正的處理方 法,從而降低了對QR碼的圖像要求,適應于各種不同角度的圖像掃描結果。
[0027](2)在存在幾何畸變的圖片下,相對于傳統的按照比例來尋找定位圖形,本方法的 根據矩形度及連通域內輪廓特征檢測定位圖形更精確
[0028](3)根據雙線性插值算法,QR碼幾何畸變矯正更精確。
【附圖說明】
[0029] 圖1是本發明提供的QR碼定位方法流程圖;
[0030] 圖2是本發明提供的QR碼識別方法流程圖;
[0031 ] 圖3是實施例1中待識別的畸變圖像;
[0032] 圖4是實施例1中經過連通域、矩形度分析及孤島判斷后的定位圖形;
[0033] 圖5是實施例2中QR碼邊緣提取圖像;
[0034] 圖6是實施例2中QR碼圖像邊緣點擬合直線;
[0035] 圖7是實施例2中QR碼圖像畸變矯正結果圖像。
【具體實施方式】
[0036] 為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對 本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并 不用于限定本發明。此外,下面所描述的本發明各個實施方式中所涉及到的技術特征只要 彼此之間未構成沖突就可以相互組合。
[0037] 本發明提供的QR碼定位方法,如圖1所示,包括以下步驟:
[0038] (1)圖像獲取及預處理:獲取待檢測QR碼的灰度圖像,并進行二值化處理得到QR 碼的二值化圖像;
[0039] (2)判斷定位圖形坐標:在步驟⑴中獲得的QR碼二值化圖像中,根據連通域提 取、矩形度分析以及孤島特征判斷,提取QR碼三個定位圖形坐標,具體步驟如下:
[0040] (2-1)連通域提取:將步驟(1)中獲得的QR碼二值化圖像,采用連通域分析,提取 黑色像素的連通域;
[0041] (2-2)矩形度分析:對于步驟(2-1)中獲得的每一個黑色像素連通域,獲取該連通 區域的矩形度,所述矩形度為該連通域的實際面積值與其最小外接矩形框面積之比,保留 矩形度大于預設的篩選閾值的黑色像素連通域作為矩形連通域;
[0042] (2-3)孤島特征判斷:對于步驟(2-2)中獲得的每一個矩形連通域,保留具有黑色 像素點孤島特征的矩形連通域,作為定位標,得到定位圖形。
[0043] 所述孤島特征為以下特征之一:
[0044] A、采用連通域分析,其中矩形連通域中包含有白色連通域;
[0045] B、采用連通域分析,其中包括三個或三個以上連通域;
[0046] C、統計像素黑色像素點和白色像素點數量比,其在預設篩選范圍之內。
[0047] 優選地,采用A類特征,根據定位圖形的特點,可以確認黑色連通域中有白色連通 域,這類特征最為明顯,判斷結果最為準確。
[0048] 步驟(2-1)及(2-3)采用的連通域分析方法原則上可為任意連通域分析方法,常 用區域種子生長法或兩遍掃描法兩步法。連通區域,一般是指圖像中具有相同像素值且位 置相鄰的前景像素點組成的圖像區域,連通域分析是指將圖像中的各個連通區域找出并標 記。連通域分析能夠前景目標提取出來以便后續進行處理的應用場景,在本例中使用的連 通域分析能夠對圖像中的黑色區域進行標記,便于后續的分割篩選。
[0049] 本發明提供的QR碼識別方法,如圖2所示,包括以下步驟:
[0050] S1、按照所述的QR碼定位方法進行定位,根據定位結果在QR碼的二值化圖像中獲 取QR碼定位圖像;
[0051]S2、對于步驟Sl中獲得的QR碼定位圖像,依次進行膨脹運算和腐蝕運算,并用 邊緣檢測算法,得到QR碼邊緣;所述的邊緣檢測算法可采用Canny算子、sobel算子或 roberts算子。
[0052]S3、對于步驟S2中獲得的QR碼邊緣,通過邊算法獲得QR碼的四條邊,并計算四條 邊的交點作為畸變控制點;所述的邊算法為邊緣追蹤算法或點掃描算法。所述點掃描算法 的具體步驟為