專利名稱:條形碼圖像識別方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機的信息自動識別技術(shù),尤其涉及一種條形碼圖像識別方法。
背景技術(shù):
常見電子條形碼是廣泛采用的一維條形碼技術(shù),國際常見的編碼方式有EAN-8、 EAN-13、UPC-A及UPC-E等各種標準,應(yīng)用已經(jīng)相當廣泛;然而,其內(nèi)含的信息量相當少,其 只限于使用數(shù)字,在這信息爆炸的時代已不再使用,由于信息技術(shù)及硬件發(fā)展的進步,使我 們得以擴展電子條形碼的容量,因而產(chǎn)生了二維條形碼的標準及技術(shù)。常見的二維條形碼 的國際標準有PDF417、Data Matrix、MaxiCode及QR Code等各種標準,除了數(shù)字及符號外, 有些編碼方式還可以加入各國語言文字集,其中以QR Code最為大家所廣泛使用,加上目前 硬件設(shè)備發(fā)展突飛猛進,已經(jīng)具有快速有效的辨識方案,該二維條形碼必將成為重要的電 子條形碼技術(shù)。二維條形碼具有可以表示漢字信息和圖像信息、攜帶信息量大、可以精確描述、防 止偽造、可以不依賴計算機數(shù)據(jù)庫等優(yōu)點,從而提高了條行碼技術(shù)的應(yīng)用水平,拓展了條形 碼技術(shù)的應(yīng)用領(lǐng)域。國標GB/T 18284-2000《快速響應(yīng)矩陣碼QR Code》是最具有代表性的二維條形 碼之一,該國標中技術(shù)規(guī)定“每個QR碼符號由正方形模塊組成的一個正方形陣列構(gòu)成”。QR
碼符號共有40個規(guī)格,分別為版本1、版本2......版本40。版本1的規(guī)格為21模塊X 21
模塊,版本2的規(guī)格為25模塊X25模塊,依次類推,每一版本比前一版本每邊增加四個模 塊,直到版本40,其規(guī)格為177模塊X 177模塊。二維條形碼與手機結(jié)合,為二維條形碼帶來更廣泛的應(yīng)用。2006年4月,北京元泰 世紀公司在國內(nèi)創(chuàng)新性地推出手機掃描二維條形碼(移動條形碼)的應(yīng)用技術(shù),但是識別 率較低。2006年8月,中國移動和銀河傳媒聯(lián)手推出了二維條形碼業(yè)務(wù),隨即在中國移動的 手機用戶中迅速蔓延開來。手機用戶下載安裝條形碼識別軟件后,只需啟動軟件并通過手 機攝像頭拍下自己感興趣二維條形碼就可獲取所需要的信息。中國移動通訊公司對手機條 形碼業(yè)務(wù)的推廣主要集中在個人用戶版本和商業(yè)用戶版本兩個方面。其中,針對個人的應(yīng) 用主要是名片、短信、郵件、文本顯示等四個方面。同時在廣州的一些機場已經(jīng)出現(xiàn)了使用 二維條形碼作為電子票務(wù)方面的應(yīng)用。由于條碼產(chǎn)業(yè)起步較晚,我國手機二維條形碼的使用范圍并不廣泛。同時,國內(nèi)手 機與日本、韓國相比攝像頭普遍具有像素低、無微距拍攝功能的特點,使得采集的初始二維 條形碼圖像質(zhì)量不高,無法直接進行解碼。為了能從二維條形碼中順利地解碼和讀取其中 的信息,目前主要在手機端安裝應(yīng)用軟件,從攝像頭獲取初始圖像,通過圖像處理方法再得 獲取標準條形碼圖像來完成解碼。中國的手機二維條形碼的應(yīng)用還不是很理想。首先,中 國的二維條形碼還沒有形成一個完整的商業(yè)應(yīng)用體系,沒有一個完整的產(chǎn)業(yè)鏈;其次,手機 二維條形碼作為移動互聯(lián)網(wǎng)的一個入口,目前其軟件適配的機型還不多,網(wǎng)絡(luò)的資源也較 少;再者,使用手機上網(wǎng)的流量費用比較高,很多民眾還不能接受手機上網(wǎng)以及移動互聯(lián)網(wǎng)的模式;最后,中國的手機市場紛繁復(fù)雜,市面上流通的手機品種過多,客觀上也造成了二 維條形碼流行的難度。公開號為CN101281588的中國發(fā)明專利申請?zhí)峁┝艘环N移動二維條形碼系統(tǒng),是 針對手機二維條形碼業(yè)務(wù)的實際需要而專門開發(fā)的二維條形碼系統(tǒng)。它也提供了二維條形 碼系統(tǒng)實現(xiàn)信息編解碼的方法。但在該二維條碼系統(tǒng)中,沒有使用糾錯碼,僅采用奇偶校驗 的方法來實現(xiàn)信息的校驗,識別率較低,同時,僅使用編解碼,不能滿足手機及移動互聯(lián)網(wǎng) 的各種應(yīng)用需求,同時它也不能適應(yīng)現(xiàn)有智能手機系統(tǒng)(如Android系統(tǒng))的市場要求,更 不能滿足目前智能手機二維條形碼業(yè)務(wù)以移動互聯(lián)網(wǎng)為重心的技術(shù)要求,不利于國內(nèi)手機 二維條形碼業(yè)務(wù)向智能手機系統(tǒng)的方向的發(fā)展。Android—詞的本義指“機器人”,同時也 是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺 由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何提高條碼識別的精度,并降低復(fù)雜度。(二)技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提供了一種條形碼圖像識別方法,包括以下步驟Si、對采集的彩色圖像進行灰度化,所述彩色圖像為條形碼圖像;S2、對灰度化后的圖像進行中值濾波處理;S3、對于中值濾波處理后的圖像進行二值化處理;S4、對二值化處理后的圖像進行條形碼的定位;S5、對定位后的圖像進行幾何失真校正;S6、對校正后的圖像進行解碼,得到圖像的碼字。步驟S2中,進行中值濾波處理時,采用3X3的正方形窗口作為中值濾波模板。步驟S3具體為提取過渡區(qū)的像素,然后使用過渡區(qū)像素的灰度均值作為分割門 限對圖像進行二值化,所述過渡區(qū)是圖像中介于目標與背景之間的部分像素構(gòu)成的區(qū)域。步驟S3具體包括S301、計算所述過渡區(qū)的灰度最低值L1ot、灰度最高值Lhigh及灰度平均值L ;S302、用所述灰度平均值L對圖像進行二值化,得到二值化圖像;S303、在所述二值化圖像中,尋找位置探測圖形,如果未找到,則執(zhí)行步驟S304; 否則執(zhí)行步驟S4 ;S304、將灰度平均值L與灰度最低值L1ot求平均值得到L1,再利用L1尋找位置探測 圖形,如未找到則執(zhí)行步驟S305 ;否則執(zhí)行步驟S4 ;S305、將灰度平均值L與灰度最高值Lhigh求平均值得到L2,再利用L2尋找位置探 測圖形,如未找到則進行步驟S306 ;否則執(zhí)行步驟S4 ;S306、將L1分別與L1(W、L求平均值得到L3和L4,將L2分別與L、Lhigh分別求平均值 得到L5和L6 ;再用L3、L4、L5、L6分別尋找位置探測圖形,如未找到則說明該圖像無法識別, 需要重新采集彩色圖像;否則執(zhí)行步驟S4。所述條形碼為QR碼,且步驟S4具體為從圖像中尋找QR碼中包含的3個位置探測圖形,根據(jù)3個位置探測圖形確定出來圖像中QR碼頂點的位置,然后分析該位置探測圖 形的3個頂點的坐標,然后再利用過這三個頂點的Hough變換來確定第四個頂點,從而計算 出QR碼的邊界。所述Hough變換的具體步驟如下1)、設(shè)定斜率區(qū)間,將設(shè)定的斜率區(qū)間等分為10個子區(qū)間,即每個子區(qū)間的寬度 為設(shè)定斜率區(qū)間寬度的1/10 ;2)、為每個子區(qū)間設(shè)置一個累加器η」,1彡j ^ 10 ;3)、初始化每個累加器的值為0,即Iij = 0 ;4)、逐點掃描圖像,掃描到目標像素時,計算目標像素與已知點Pq之間的斜率m,m 值屬于哪個子區(qū)間就將哪個子區(qū)間累加器的值加1 ;5)、當掃描完全部斜率區(qū)間之后,將累加器的值為最大的子區(qū)間及其相鄰的兩個 子區(qū)間組成的區(qū)間作為下一次要設(shè)定的斜率區(qū)間,重復(fù)上述步驟1至4,直到斜率區(qū)間的寬 度小于預(yù)設(shè)的斜率檢測精度為止。根據(jù)不失真的QR碼為正方形的特性利用控制點變換法進行幾何失真校正,所述 控制點是表示QR碼的四邊形的頂點。優(yōu)選地,所采集的彩色圖像是利用Android手機攝像頭所采集的圖像。(三)有益效果本發(fā)明提供的應(yīng)用于Android手機系統(tǒng)的條形碼圖像識別方法,具有以下的優(yōu)點。1)不需要輔助光源,對手機攝像頭在自然光照下的條形碼可自動識讀。2)基于結(jié)果的圖像過渡區(qū)提取最佳閾值法使QR碼識別算法的每一步都與所確定 的閾值相關(guān),并根據(jù)算法結(jié)果動態(tài)改變閾值,從而提高了識別算法的適應(yīng)性和魯棒性。圖像 過渡區(qū)提取最佳閾值法還兼顧了圖像在不同光照下的各種可能和實時性要求,此算法可以 很好地實現(xiàn)圖像的二值化分割,模型簡單,閾值選擇容易,處理速度快,空間占用少。而基于 結(jié)果的特性更保證了采用最佳閾值來進行二值化,大大提高了條碼識別的精度。3)圖像定位算法中針對QR碼位置探測圖形的定位方式能準確提取條碼圖像的3 個頂點,再通過優(yōu)化的過頂點Hough變換計算出條碼所有頂點坐標從而達到條碼定位。此 算法相對于傳統(tǒng)的Hough變換計算量少,空間復(fù)雜度低,更有利于手機系統(tǒng)有限的內(nèi)存的 識讀。
圖1是本發(fā)明中條形碼圖像識別方法的流程圖2是本發(fā)明中QR碼結(jié)構(gòu)圖3是本發(fā)明中采用不同模板進行中值濾波后的效果示意圖
圖4是本發(fā)明中圖像過渡區(qū)示意圖5是本發(fā)明中位置探測圖形(Finder Patterns)結(jié)構(gòu)圖6是本發(fā)明中QR碼的位置探測圖形掃描線示意圖7是本發(fā)明中幾何失真校正的原理圖8是本發(fā)明中雙線性插值原理圖。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進一步詳細說明。以下實施 例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。如圖1所示,本發(fā)明的方法包括以下步驟Si、首先對手機攝像頭采集的彩色圖像進行灰度化。大多的移動設(shè)備采集到的是彩色圖像,彩色圖像存儲占用比灰度圖像更多的空 間,處理時間相對灰度圖像也要長得多。同時條形碼打印又是按照黑白方式打印的,所以在 識讀條碼的過程中,實際拍攝的條形碼圖像中的彩色信息分量對于條碼的識別沒有作用, 因此需要把彩色圖像轉(zhuǎn)化為灰度圖像,以便減少后續(xù)操作的運算時間,還可以節(jié)省識讀設(shè) 備內(nèi)存的開支?;叶葓D像就是只有強度信息而沒有顏色信息的圖像,存儲灰度圖像只需要一個 數(shù)據(jù)矩陣,矩陣每個元素表示對應(yīng)位置像素的灰度值。彩色圖像中的每個像素的顏色 有R、G、B三個分量決定,而每個分量從1-255中取值,這樣一個像素點可以有1600多萬 (255x255x255)的顏色的變化范圍。而灰度圖像是R、G、B三個分量相同的一種特殊的彩色 圖像,其中一個像素點的變化范圍為0 255,灰度圖像的描述與彩色圖像一樣仍然反映了 整幅圖像的整體和局部的亮度等級的分布和特征。QR碼圖像是由0或1的黑白模塊組成,而通過攝像頭采集到的是彩色圖像。彩色 圖像包含著大量的信息,不但在存儲上開銷很大,而且處理上也會降低系統(tǒng)的執(zhí)行速度。由 于圖像的每個像素都具有三個不同的顏色分量,存在許多與識別無關(guān)的信息,不便于進一 步的識別工作,因此在對圖像進行識別等處理中經(jīng)常將彩色圖像轉(zhuǎn)變?yōu)榛叶葓D像,以加快 處理速度。由彩色圖像轉(zhuǎn)換為灰度圖像的過程叫做灰度化處理。灰度圖像是只有強度信息 而沒有顏色信息的圖像。由于人眼對綠色的敏感度最高,對紅色的敏感度次之,對藍色的敏 感度最低,經(jīng)過大量的實踐經(jīng)驗,人們總結(jié)出綠色的權(quán)值為0. 59,紅色的權(quán)值為0. 30,藍色 的權(quán)值為0. 11時,得到的灰度圖效果最好、最真實。即,設(shè)像素彩色各分量值為(R,G,B), 那么標準的灰度值Y的計算公式為Y = O. 59G+0. 30R+0. IlB (1)S2、通過手機攝像頭采集到的圖像一般都會因周圍環(huán)境的干擾而含有噪聲,因此 對其進行中值濾波處理。手機獲取的條形碼圖像的噪聲主要來自于兩個方面。首先來自于條形碼表面的污 損,這方面的噪聲用任何的去噪算法都不可能完全處理掉,只能憑借條形碼本身的糾錯算 法進行糾錯。噪聲的另外一個來源是來自光學采集系統(tǒng),這部分的噪聲主要是滿足泊松分 布的椒鹽噪聲,采用適當大小的矩形窗口的中值濾波非常適于條形碼圖像的去噪。中值濾波是抑制噪聲的非線性處理方法。對于給定的η個數(shù),將它們按大小有序 排列。當η為奇數(shù)時,處于中間位置的數(shù)值稱為這η個數(shù)的中值;當η為偶數(shù)時,處于中間 位置的兩個數(shù)值的平均值稱為這η個數(shù)的中值。中值濾波的基本原理是把數(shù)字圖像或數(shù)字 序列中一點的值用該點的一個鄰域中各點的值的中值代替。中值濾波去噪聲的效果依賴于 兩個相關(guān)的但完全分開的要素鄰域空間范圍即窗口大小和窗口形狀。因此在使用中值濾 波處理條形碼圖像時,首先應(yīng)該確定使用的窗口形狀和窗口大小。因為QR碼圖像的基本模塊都是正方形,因此采用正方形窗口效果較好。在此,采用3*3模板濾波,從而去除由于圖 像旋轉(zhuǎn)所引入的點狀椒鹽噪聲。圖2是分別采用3X3、5X5、7X7模板進行處理后的結(jié)果。 很明顯,7X7模板濾波后的結(jié)果圖像特別模糊,5X5比3X3的模糊。因此根據(jù)試驗,確定 中值濾波模板為3 X 3的正方形窗口。S3、采用基于結(jié)果的圖像過渡區(qū)提取最佳閾值法對圖像進行二值化處理,得到二 值圖像;在用手機攝像頭采集圖像時,由于沒有穩(wěn)定光源,光照不均的現(xiàn)象經(jīng)常發(fā)生,這時 采用固定單一的閾值無法進行正確圖像分割。另外一方面,條形碼應(yīng)用要求實時性強,考慮 到后續(xù)識別工作是否能夠順利完成以做出決定。因此,選取灰度過渡區(qū)提取閾值區(qū)間,并基 于后續(xù)結(jié)果來選取最佳閾值的路線來作為圖像二值化的方法。對于QR碼識別,圖像二值化的目的是為了去除背景,盡可能好地保留條形碼符號 并且減少符號中的噪聲雜質(zhì),為在后續(xù)的條形碼識別中能夠正確識別位置探測圖形和正確 讀取條形碼碼字提供基礎(chǔ)保障,因此,除了根據(jù)圖像過渡區(qū)來選取閾值以外,QR碼圖像的二 值化要考慮與后續(xù)工作相結(jié)合,而不是單一的通過一個閾值對圖像二值化后而結(jié)束,即二 值化是否完成要根據(jù)后續(xù)工作是否能夠順利完成而作出決定,這就是本發(fā)明針對移動終端 QR碼識別提出的基于結(jié)果的閾值法。過渡區(qū)是圖像中介于目標與背景之間的部分像素構(gòu)成的區(qū)域,這部分像素的空間 位置位于目標與背景之間,灰度分布也位于目標灰度均值與背景灰度均值之間。圖3是圖 像過渡區(qū)示意圖。原圖像中灰度值介于Lltw與Lhigh之間的像素就構(gòu)成了過渡區(qū)。過渡區(qū)提 取的圖像分割方法的基本思想是通過提取過渡區(qū)像素,然后使用過渡區(qū)像素的灰度均值作 為分割門限對圖像進行二值化。直方圖方法具有一定的抗噪能力,但其缺點在于缺乏定位 精度,在閾值精確定位方面存在很大不足,尤其對于寬谷直方像更是如此。邊緣檢測方 法可以很好的定位區(qū)域邊界,但對噪聲太敏感。而本發(fā)明過渡區(qū)提取閾值分割方法把邊緣 檢測與直方圖技術(shù)很好的結(jié)合起來,使用邊緣檢測方法尤其是具有抗噪性的方法定位過渡 區(qū)像素,然后使用過渡區(qū)像素的直方圖峰值對應(yīng)的灰度值(或過渡區(qū)像素的灰度均值)得 到具有較高精度的分割閾值?;诮Y(jié)果的自適應(yīng)閾值法,包括如下步驟1)、計算由上述圖像過渡區(qū)分析得到的過渡區(qū)的灰度最低值L1ot、灰度最高值Lhigh 及灰度平均值L ;2)、先用上述圖像過渡區(qū)分析得到的灰度平均值L對圖像進行二值化,得到二值 化圖像;3)、在二值化圖像中,尋找位置探測圖形,如果探測失敗,說明在當前的手機拍攝 光照條件下該閾值(即灰度平均值)非最佳閾值,那么就需要對步驟2中的閾值重新選取, 進行步驟4 ;如果探測成功,則到步驟S4 ;4)、將灰度平均值L與灰度最低值L1ot求平均值得到L1,再進行探測,如探測失敗 則進行步驟5 ;如探測成功,則到步驟S4 ;5)、將灰度平均值L與灰度最高值Lhigh求平均值得到L2,再進行探測,如探測失敗 則進行步驟6 ;如探測成功,則到步驟S4 ;6)、讓L1對L1ot、L分別求平均值得到L3和L4,讓L2對L、Lhigh分別求平均值得到L5和L6。再用L3、L4、L5、L6分別進行探測,如探測失敗則說明該圖像無法識別,需要重新采集; 如探測成功,則到步驟S4。S4、根據(jù)位置探測圖形的特殊性質(zhì)(深色淺色深色淺色深色= 1:1:3:1: 1)確定碼圖位置及四個頂點,并將其提取出來,實現(xiàn)條形碼的定位;將QR碼圖像進行二值化處理后,就要對QR碼進行定位,以便得到條碼符號的覆蓋 范圍。QR碼中包含三個大小和形狀相同的位置探測圖形(Finder Patterns) A、B、C。每 個探測圖形(圖4)由3個重疊的同心正方形組成,模塊寬度比例為深色淺色深色 淺色深色=1 :1:3:1: 1,它們對于條碼圖像的大小和旋轉(zhuǎn)具有不變性的特點,同 時在符號圖像中出現(xiàn)類似圖形的可能性極小,因此可以通過查找滿足近似比例的區(qū)域來迅 速確定探測圖形的位置。本發(fā)明充分利用了 QR碼的位置探測圖形,快速準確的定位并提取 QR碼符號覆蓋范圍,因此在具體實現(xiàn)上,采用的是針對QR這個特定碼的定位方式。根據(jù)QR 碼的三個位置探測圖形的特性可以精確的定位條碼的其中三個頂點。直接從圖像中尋找QR 條碼特有的3個位置探測圖形,根據(jù)3個位置探測圖像就可以確定出來圖像中條形碼頂點 的實際位置,然后分析該位置探測圖形的3個頂點的坐標,然后再通過過這三個點的Hough 變換來確定第四個頂點進而計算出條形碼的邊界。尋找QR碼中包含的位置探測圖形的具體步驟如下1’ )、先水平掃描QR碼圖像,當探測到滿足比例條件的區(qū)域時,保存圖像中一行像 素與位置探測圖形的外邊緣相遇的第一個點和最后一點E和F的坐標值,如圖5所示。對該 圖像中的相鄰像素行重復(fù)探測,直到附近區(qū)域中所有穿過位置探測圖形的X軸方向直線被 全部識別。當存在一組符合位置探測圖形比例特征的像素行(行數(shù)設(shè)為Nx),并保證所有像 素行相鄰的前提下,求取該組像素行的平均像素寬度Wef,初步估計該區(qū)域的中心坐標(Cx, Cy)。當行數(shù)Nx與平均像素寬度Wef滿足Nx彡ffEF/7 (在標準圖像中Nx = (3/7) XWef,此處留 有余量以保證算法的可靠性),則執(zhí)行步驟2’ ;否則,繼續(xù)執(zhí)行步驟1’,尋找其它滿足條件 的區(qū)域。2,)、以(Cx, Cy)為中心,X軸和Y軸方向為2Wef(在標準圖像中為Wef)像素的正方 形區(qū)域內(nèi),重復(fù)1’)的方法在圖像的Y軸方向上尋找滿足1 :1:3:1: 1比例特征的 線段。保存滿足條碼的像素列于位置探測圖形相遇的第一個點和最后一個點G和H的坐標 值,直到預(yù)設(shè)區(qū)域中所有穿過位置探測圖形的Y軸方向直線被全部識別。當存在一組符合 位置探測圖形比例特征的像素列(行數(shù)設(shè)為Ny),并保證所有像素列相鄰的前提下,求取像 素列的平均像素高度Hra。當Ny > Hgh/7且Nx Ny,基本確定該區(qū)域為位置探測圖形,執(zhí)行 步驟3,;否則,執(zhí)行步驟1,。3’)、取所有滿足條件的像素行和像素列的中點作為該區(qū)域的中心坐標(Cx,Cy),并 將其保存,同時保存Wef和!^。當所有像素都被掃描了,執(zhí)行步驟4’ ;否則,繼續(xù)執(zhí)行步驟 1,。4’)、由于圖像中邊緣模糊性的影響,滿足要求的圖形往往多于3個,根據(jù)位置探 測圖形A、B、C之間的距離關(guān)系(A、B、C構(gòu)成等腰直角三角形),可以最終確定位置探測圖形 的位置。經(jīng)過以上步驟之后,能夠獲得三個位置探測圖形的中心點坐標0cA,yA)、(xB, yB)、(XC,Yc),及各自的像素寬WA、WB、Wc,和像素高Ha、Hb、Hc。由于所獲取的QR碼符號有可能是 偏置或倒置的,所以要重新確定左上角、右上角和左下角位置探測圖形的順序。其中確定左 上角位置探測在圖像所處的方位至關(guān)重要。當確定了左上角位置探測圖形在圖像中的方位 后,利用其與其它兩個位置探測圖形之間的坐標關(guān)系,可初步確定條碼符號在水平及豎直 方向上的傾斜角度。此時再以各個位置探測圖形的中心作為參考點,向其外方向偏移該位 置探測圖像像素寬W和像素高H的1/2,即可獲得條碼符號的邊界及四個頂點坐標。利用Hough變換,從左向右方向掃描圖像得到條形碼的左邊界E(Xl,x2, ... , xn), 然后用標準Hough變換求出條形碼左邊界的直線方程P = XCOS θ+ysin θ,同左邊界算 法一樣,可以得到條碼的右邊界、上邊界、下邊界。利用傳統(tǒng)的Hough變換確定條碼符號的 邊界,然后通過傾斜角度將符號旋轉(zhuǎn)水平,再進行后續(xù)識別,這無疑丟掉了 QR碼的重要特 征——超高速識讀和360度識別特性。Hough變換對每一個點進行運算,計算量非常大,對 于移動設(shè)備的CPU性能要求很高,會增加大量的時間和空間上的開銷。因此,在移動設(shè)備應(yīng) 用中,考慮到實際的應(yīng)用價值,因此本發(fā)明在具體實現(xiàn)上,采用的是針對QR這個特定條形 碼的定位方式,算法采用了優(yōu)化的過頂點Hough變換。本發(fā)明充分利用了 QR碼的位置探測圖形,快速準確地定位并提取QR碼符號覆蓋 范圍,因此在具體實現(xiàn)上,采用的是針對QR這個特定條形碼的定位方式。根據(jù)QR碼的三個 位置探測圖形的特性可以精確的定位條碼的其中三個頂點。直接從圖像中尋找QR碼特有 的3個位置探測圖形,根據(jù)3個位置探測圖像就可以確定出來圖像中條形碼頂點的實際位 置。但是QR碼的3個位置探測圖形不一定完整,可能有一個甚至兩個出現(xiàn)缺損,這樣就要結(jié) 合已識別出的位置探測圖形、校正圖形以及直方圖,實現(xiàn)對圖像的智能分析,判斷出缺損的 位置探測圖像的位置,進而確定整個圖像中QR碼的位置,然后分析該位置探測圖形的三個 頂點的坐標,再通過對這三個點進行優(yōu)化的過頂點Hough變換方法快速確定條碼的邊界。過頂點的Hough變換是在Hough變換基本原理的基礎(chǔ)上,將逐點向整個參數(shù)空間 的投票轉(zhuǎn)化為過頂點的參數(shù)空間投票的快速直線檢測方法。其基本思想是首先找到屬于 直線上的頂點,將這個頂點Ptl的坐標定義為( , %),將通過R1的直線斜率定義為m,則坐 標和斜率的關(guān)系可用下式表示(y-y0) =m(x-x0)(2)定義區(qū)域內(nèi)目標像素Pi的坐標為(Xi,Yi), (0 ^ i < η, η為區(qū)域內(nèi)目標像素總 數(shù)),則Pi點與P。點之間連線的斜率Hli可用下式表示Iiii = (Yi-Y0) / (Xi-X0)(3)將斜率值映射到一組累加器上,每求得一個斜率,將使其對應(yīng)的累加器的值加1, 因為同一條直線上的點求得的斜率一致,所以當目標區(qū)域中有直線成分時,其對應(yīng)的累加 器出現(xiàn)局部最大值,將該值所對應(yīng)的斜率作為所求直線的斜率。當Xi = &時,Hii為無窮大,這時公式(2)不成立。為了避免這一現(xiàn)象,當Xi = & 時,令Hli = 2,當Hli > 1或Hli < -1時,采用下式(3)的計算值替代Hli,這樣無限域的Hli被 限定在了(-1,3)的有限范圍內(nèi)。在實際操作時設(shè)定斜率區(qū)間為[-2,4]。Iiii' = l/nii+2(4)過頂點的Hough變換的具體步驟如下1”)、將設(shè)定的斜率區(qū)間等分為10個子區(qū)間,即每個子區(qū)間的寬度為設(shè)定斜率區(qū)間寬度的1/10 ;2”)、為每個子區(qū)間設(shè)置一個累加器11」(1彡j彡10);3”)、初始化每個累加器的值為0,即η」=0 ;4”)、從上到下從左到右逐點掃描圖像,遇到目標像素時,由式(3)及式⑷計算其 與已知點Ptl之間的斜率m,m值屬于哪個子區(qū)間就將哪個子區(qū)間累加器的值加1 ;5”)、當掃描完全部斜率區(qū)間之后,將累加器的值為最大的子區(qū)間及其相鄰的兩個 子區(qū)間(共3個子區(qū)間)作為下一次投標的斜率區(qū)間,重復(fù)上述1”至4”步,直到投標斜率 區(qū)間的寬度小于設(shè)定斜率檢測精度為止。S5、根據(jù)不失真的QR 二維條形碼為正方形的特性利用控制點變換法進行幾何失 真校正。利用圖像中若干個能表示特征的控制點實現(xiàn)空間的變換,以達到幾何校正的目 的??紤]到無失真的條碼是一個正方形,而失真后的條碼通常會變成一般的四邊形,這樣, 可利用4個頂點的正方形特征,如圖6所示,將失真圖像中的4個頂點A' , B' ,C'和 D'(控制點)還原成正方形A,B,C和D,同時,考慮圖像變形不太大時,使用下述變換s(x, y) = xk1+yk2+xyk3+k4(5)t(x, y) = xk5+yk6+xyk7+k8(6)上面兩式中有8個未知數(shù),當確定了原圖像上4個點A' D'和坐標變換后的4
個點A D坐標之后,就可以計算出8個參數(shù)Ic1A2.....k8。從而實現(xiàn)由一般四邊形到正方
形的校正變換。在對條碼圖像進行幾何變換后,圖像中每個像素的位置都要發(fā)生變化。數(shù)字 圖像的坐標值是整數(shù),經(jīng)過變換運算之后的坐標不一定是整數(shù),因此要對變換后的像素值 進行整數(shù)估計,所以還需要進行灰度插值的運算,才可獲得一幅標準的二維條碼圖像。這里 采用雙線性插值法來進行灰度插值(如圖7所示),即假定變換后圖像中的某點在原圖像中 的坐標為(x' i,y'》,而其4個相鄰像素分別為(x' i0,y' iQ)、(x' i0,y' (χ' η, y' i0)> (χ' π ' 11),灰度值分別為&、4、4、41,則該點的灰度值可表示為1=憂 O-U X (χ' i-χ' i0) + (foi-foo)x(y' i-y' Xfn+mo) x (y'「1' J+f。。⑵S6、為得到條形碼圖像的碼字,需要得到行與列交叉處的條形碼模塊,參照國標 (GB/T 18284-2000)給出的參考解碼算法進行解碼,具體步驟如下(下面的步驟為現(xiàn)有的 國家標準解碼技術(shù))(1)通過之前步驟可知各個頂點及位置探測圖形中心點位置坐標,再通過這些數(shù) 據(jù)可計算出條碼模塊尺寸及符號版本,然后對與左上區(qū)位置探測圖形相鄰的格式信息譯 碼,得到糾錯等級和用于掩模的掩模圖形的符號。如果檢測出錯誤超過格式信息的糾錯容 量,那么,采用同樣的方法對與右上部和左下部位置探測圖形相鄰的格式信息進行譯碼。(2)用掩模圖形的符號對編碼區(qū)進行異或O(OR)處理,解除掩模并恢復(fù)表示數(shù)據(jù) 的糾錯碼字的符號字符。(3)根據(jù)QR碼標準中的排列規(guī)則確定符號碼字。(4)根據(jù)符號版本和糾錯等級要求,采用QR碼標準中規(guī)定的交替處理的逆過程, 重新將碼字序列按塊排列。(5)對每一塊采用對應(yīng)的Reed-Solomon糾錯算法糾正替代錯誤與拒讀錯誤,直到 符號版本和糾錯等級所規(guī)定的最大糾錯容量。
(6)通過重新組配數(shù)據(jù)塊序列,恢復(fù)原始信息的位流。(7)將數(shù)據(jù)位流分成若干段,每一段有模式指示符開始,段的長度由在模式指示符 后的字符計數(shù)指示符確定。(8)根據(jù)采用的模式規(guī)則,對每一段進行譯碼,得到條碼所包含的信息。為了用戶更方便操作,本發(fā)明根據(jù)解碼出來的信息還提供了一套應(yīng)用于移動設(shè)備 的二維條碼信息功能動作示例1、當解碼出來字符開頭以http://或https:/出現(xiàn)就自動開啟系統(tǒng)內(nèi)置瀏覽器功 能直接上網(wǎng);2、當字符開頭以TEL 開頭則根據(jù)后面的數(shù)字開始快速撥號;3、當字符開頭以@出現(xiàn)則開啟郵箱服務(wù);4、當字符不符合以上三種情況則直接顯示解碼后的文本信息。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和變型,這些改進和變型 也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種條形碼圖像識別方法,其特征在于,包括以下步驟51、對采集的彩色圖像進行灰度化,所述彩色圖像為條形碼圖像;52、對灰度化后的圖像進行中值濾波處理;53、對于中值濾波處理后的圖像進行二值化處理;54、對二值化處理后的圖像進行條形碼的定位;55、對定位后的圖像進行幾何失真校正以及像素值變換;56、對校正后的圖像進行解碼,得到圖像的碼字。
2.如權(quán)利要求1所述的方法,其特征在于,步驟S2中,進行中值濾波處理時,采用3X3 的正方形窗口作為中值濾波模板。
3.如權(quán)利要求1所述的方法,其特征在于,步驟S3具體為提取過渡區(qū)的像素,然后使 用過渡區(qū)像素的灰度均值作為分割門限對圖像進行二值化,所述過渡區(qū)是圖像中介于目標 與背景之間的部分像素構(gòu)成的區(qū)域。
4.如權(quán)利要求3所述的方法,其特征在于,步驟S3具體包括5301、計算所述過渡區(qū)的灰度最低值L1ot、灰度最高值Lhigh及灰度平均值L;5302、用所述灰度平均值L對圖像進行二值化,得到二值化圖像;5303、在所述二值化圖像中,尋找位置探測圖形,如果未找到,則執(zhí)行步驟S304;否則 執(zhí)行步驟S4 ;5304、將灰度平均值L與灰度最低值L1ot求平均值得到L1,再利用L1尋找位置探測圖 形,如未找到則執(zhí)行步驟S305 ;否則執(zhí)行步驟S4 ;5305、將灰度平均值L與灰度最高值Lhigh求平均值得到L2,再利用L2尋找位置探測圖 形,如未找到則進行步驟S306 ;否則執(zhí)行步驟S4 ;5306、將L1分別與Llw、L求平均值得到L3和L4,將L2分別與L、Lhigh分別求平均值得 到L5和L6 ;再用L3、L4、L5、L6分別尋找位置探測圖形,如未找到則說明該圖像無法識別,需 要重新采集彩色圖像;否則執(zhí)行步驟S4。
5.如權(quán)利要求1所述的方法,其特征在于,所述條形碼為QR碼,且步驟S4具體為從圖 像中尋找QR碼中包含的3個位置探測圖形,根據(jù)3個位置探測圖形確定出來圖像中QR碼頂 點的位置,然后分析該位置探測圖形的3個頂點的坐標,然后再利用過這三個頂點的Hough 變換來確定第四個頂點,從而計算出QR碼的邊界。
6.如權(quán)利要求5所述的方法,其特征在于,所述Hough變換的具體步驟如下1)、在圖像中設(shè)定斜率區(qū)間,將設(shè)定的斜率區(qū)間等分為10個子區(qū)間,即每個子區(qū)間的 寬度為設(shè)定斜率區(qū)間寬度的1/10 ;2)、為每個子區(qū)間設(shè)置一個累加器n」,1^ j ^ 10 ;3)、初始化每個累加器的值為0,即Iij= 0 ;4)、逐點掃描圖像,掃描到目標像素時,計算目標像素與已知點Ptl之間的斜率m,m值屬 于哪個子區(qū)間就將哪個子區(qū)間累加器的值加1 ;5)、當掃描完全部斜率區(qū)間之后,將累加器的值為最大的子區(qū)間及其相鄰的兩個子區(qū) 間組成的區(qū)間作為下一次要設(shè)定的斜率區(qū)間,重復(fù)上述步驟1至4,直到斜率區(qū)間的寬度小 于預(yù)設(shè)的斜率檢測精度為止。
7.如權(quán)利要求1所述的方法,其特征在于,步驟S5中,根據(jù)不失真的QR碼為正方形的特性利用控制點變換法進行幾何失真校正,所述控制點是表示QR碼的四邊形的頂點;并根 據(jù)雙線性插值法進行像素值變換。
8.如權(quán)利要求1 7任一項所述的方法,其特征在于,所采集的彩色圖像是利用 Android手機攝像頭所采集的圖像。
全文摘要
本發(fā)明公開了一種條形碼圖像識別方法,屬于計算機的信息自動識別技術(shù)領(lǐng)域,包括以下步驟S1、對Android手機攝像頭采集的彩色圖像進行灰度化,所述彩色圖像為條形碼圖像;S2、對灰度化后的圖像進行中值濾波處理;S3、對于中值濾波處理后的圖像進行二值化處理;S4、對二值化處理后的圖像進行條形碼的定位;S5、對定位后的圖像進行幾何失真校正;S6、對校正后的圖像進行解碼,得到圖像的碼字。本發(fā)明提高了條碼識別的精度,降低了復(fù)雜度。
文檔編號G06K7/10GK102136058SQ201110109589
公開日2011年7月27日 申請日期2011年4月26日 優(yōu)先權(quán)日2011年4月26日
發(fā)明者孫明, 趙凡 申請人:中國農(nóng)業(yè)大學