一種條形碼識別方法和裝置的製作方法
2023-06-16 04:00:11 2
專利名稱:一種條形碼識別方法和裝置的製作方法
一種條形碼識別方法和裝置
技術領域:
本發明涉及計算機應用技術領域,特別涉及一種條形碼識別方法和裝置。
背景技術:
條形碼又稱條碼(Barcode)是將寬度不等的多個黑條和白條(也稱空白),按照一定的編碼規則排列,用以表達一組信息的圖形標識符,通常會在條形碼下方配以數字或字母等字符,如圖I所示。條形碼可以標出物品的生產國、製造廠家、商品名稱、生產日期、圖書分類號、郵件起止地點、類別、日期等很多信息,因而在商品流通、圖書管理、郵政管理、銀行系統等很多領域都得到廣泛的應用。
現有的條形碼識別方案以圖像處理為基礎,對用戶終端拍攝或掃描到的條形碼圖像進行二值化或灰度梯度分析,從而獲取條形碼內每個黑白條的準確寬度,再根據寬度進行解碼。然而這種嚴重依賴於對圖像的二值化和灰度梯度分析的方式,很容易受到用戶終端的拍照條件限制,例如對於解析度較低、對焦模糊的用戶終端可能會無法準確地根據圖像的灰度信息計算出條形碼內每個黑白條的寬度,從而導致解碼失敗。
發明內容有鑑於此,本發明提供了一種條形碼識別方法和裝置,以便於在拍照條件有限的用戶終端上提高條形碼的識別成功率。具體技術方案如下一種條形碼識別方法,該方法包括SI、對用戶終端獲取到的條形碼圖像進行二值化;S2、對二值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域;S3、將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符;S4、對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。根據本發明一優選實施例,在所述步驟SI之前還包括Al、在用戶終端獲取到的條形碼圖像中定位條形碼區域,確定條形碼區域的角佔.A2、基於條形碼區域的角點對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像。根據本發明一優選實施例,所述步驟Al具體包括AU、將用戶終端獲取到的條形碼圖像進行灰度化;A12、對灰度化後的條形碼圖像進行邊緣檢測得到邊緣圖像;A13、對所述邊緣圖像進行hough線段檢測,確定條形碼各線段的端點;A14、對各線段進行聚類,利用聚類結果中各線段的端點確定條形碼區域的角點。根據本發明一優選實施例,所述步驟A14具體包括
從各線段中選取種子線段,將與種子線段的角度和距離在設定範圍內的線段進行聚合;利用聚合在一起的各線段的起點和終點分別做直線擬合,得到各起點擬合得到的起點線段以及各終點擬合得到的終點線段;將所述起點線段和終點線段的端點確定為條形碼區域的角點。根據本發明一優選實施例,在所述步驟A2中採用透視變換的方式進行幾何校正。根據本發明一優選實施例,所述步驟S2中根據橫向投影值的分布狀況定位出字符區域具體包括確定橫向投影值的低谷值點,將低谷值點以下的區域識別為字符區域。根據本發明一優選實施例,在所述將橫向投影值的低谷值點以下的區域識別為字 符區域之前還包括判斷所述低谷值點是否位於存在橫向投影值區域的上半部分還是下半部分,如果位於上半部分,則將條形碼圖像進行上下翻轉後,執行所述將橫向投影值的低谷值點以下的區域識別為字符區域;如果位於下半部分,則繼續執行所述將橫向投影值的低谷值點以下的區域識別為字符區域。根據本發明一優選實施例,所述步驟S3中根據縱向投影值的分布狀況定位出各字符具體包括將縱向投影值的低谷值點作為各字符的邊界點對字符區域進行分割得到各字符。根據本發明一優選實施例,在所述步驟S4之後還包括S5、對所述條形碼識別結果採用歐洲物品編碼EAN-13校驗算法進行校驗,如果校驗通過,則輸出所述條形碼識別結果,否則,確定本次條形碼識別失敗。一種條形碼識別裝置,該裝置包括圖像二值化單元,用於對用戶終端獲取到的條形碼圖像進行二值化;字符區域定位單元,用於對二值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域;字符定位單元,用於將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符;文字識別單元,用於對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。根據本發明一優選實施例,該裝置還包括條碼區域定位單元,用於在用戶終端獲取到的條形碼圖像中定位條形碼區域,確定條形碼區域的角點;幾何校正單元,用於基於條形碼區域的角點對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像;所述圖像二值化單元是對所述標準角度的條形碼圖像進行的二值化。根據本發明一優選實施例,所述條碼區域定位單元具體包括灰度化子單元,用於將用戶終端獲取到的條形碼圖像進行灰度化;邊緣檢測子單元,用於對灰度化後的條形碼圖像進行邊緣檢測得到邊緣圖像;線段檢測子單元,用於對所述邊緣圖像進行hough線段檢測,確定條形碼各線段的端點;
角點確定子單元,用於對各線段進行聚類,利用聚類結果中各線段的端點確定條形碼區域的角點。根據本發明一優選實施例,所述角點確定子單元在進行聚類和角點的確定時,具體從各線段中選取種子線段,將與種子線段的角度和距離在設定範圍內的線段進行聚合;利用聚合在一起的各線段的起點和終點分別做直線擬合,得到各起點擬合得到的起點線段以及各終點擬合得到的終點線段;將所述起點線段和終點線段的端點確定為條形碼區域的角點。根據本發明一優選實施例,所述幾何校正單元採用透視變換的方式進行幾何校 正。根據本發明一優選實施例,所述字符區域定位單元在定位字符區域時,具體確定橫向投影值的低谷值點,將低谷值點以下的區域識別為字符區域。根據本發明一優選實施例,所述字符區域定位單元在將低谷值點以下的區域識別為字符區域之前還包括判斷所述低谷值點是否位於存在橫向投影值區域的上半部分還是下半部分,如果位於上半部分,則將條形碼圖像進行上下翻轉後,執行所述將橫向投影值的低谷值點以下的區域識別為字符區域;如果位於下半部分,則繼續執行所述將橫向投影值的低谷值點以下的區域識別為字符區域。根據本發明一優選實施例,所述字符定位單元在定位各字符時,具體將縱向投影值的低谷值點作為各字符的邊界點對字符區域進行分割得到各字符。根據本發明一優選實施例,該裝置還包括結果校驗單元,用於對所述條形碼識別結果採用歐洲物品編碼EAN-13校驗算法進行校驗,如果校驗通過,則輸出所述條形碼識別結果,否則,確定本次條形碼識別失敗。由以上技術方案可以看出,本發明將文字識別技術引入條形碼的識別,採用識別條形碼下方的字符的方式得到條形碼的識別結果,而不是通過計算黑白條寬度進行解碼的方式,對於拍攝條件有限的用戶終端也能夠成功識別條形碼,提高了識別成功率。
圖I為條形碼圖像的一個實例圖;圖2為本發明實施例一提供的條形碼識別方法流程圖;圖3為本發明實施例一提供的條形碼圖像的投影方向示意圖;圖4為本發明實施例一提供的字符區域的實例圖;圖5為本發明實施例二提供的條形碼識別方法流程圖;圖6為本發明實施例二提供的定位條形碼區域的方法流程圖;圖7為本發明實施例三提供的條形碼識別裝置結構圖;圖8為本發明實施例四提供的條形碼識別裝置結構圖;圖9為本發明實施例四提供的條形碼區域定位單元的結構圖。
具體實施方式為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對本發明進行詳細描述。
本發明的主要思路是避開傳統的通過計算黑白條寬度進行解碼的方法,而是將文字識別技術引入條形碼的識別,通過識別條形碼下方的字符而直接得到條形碼的內容。然而,由於條形碼圖像的特殊性,對條形碼下方的字符進行識別也存在一定難度,下面通過實施例一和實施例二對該識別方法進行詳細描述。實施例一、圖2為本發明實施例一提供的條形碼識別方法流程圖,如圖2所示,該方法可以包括以下步驟步驟201 :對用戶終端獲取到的條形碼圖像進行二值化。本發明實施例所涉及的用戶終端可以包括但不限於具有拍照或掃描功能的手機、電腦、相機、ipad、掃描儀等。用戶終端獲取到的條形碼圖像如圖I所示包含條形碼和條形碼下方的字符,字符包括但不限於數字和字母。
所謂圖像的二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的只有黑和白的視覺效果,二值化是圖像處理的基本操作,在本步驟中可以採用現有技術中的任意二值化方法,諸如全局二值化方法、局部自適應二值化方法等,在此不做具體限制。步驟202 :對二值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域。所謂橫向指的是與條形碼的黑白條垂直的方向,所謂縱向指的是與條形碼的黑白條平行的方向,如圖3中所示。由於圖像進行二值化後,每個像素的值就是I或者0,所謂投影值就是投影點上像素值為I的數目,對於橫向投影而言,就是橫向一行像素值為I的數目。依據條形碼的結構特點,橫向投影值的分布狀況為在出現一段平穩值之後出現一個低谷值,然後投影值又上升。該平穩值是條形碼的橫向投影,低估值是條形碼和字符的分隔處,因此,可以將橫向投影值的低谷值點作為字符區域的上邊界點,如圖3所示,將條形碼圖像中低谷值點以下的區域識別為字符區域。由於在實際場景中條形碼圖像可能出現上下倒置的情況,而條形碼區域部分通常比字符區域部分的縱向長度要長,因此,在確定出橫向投影值的低谷值點時,判斷該低谷值點是否位於存在橫向投影值區域的上半部分還是下半部分,如果位於上半部分,則說明條形碼圖像上下倒置,將條形碼圖像進行上下翻轉後,將條形碼圖像中低谷值點以下的區域識別為字符區域;如果位於下半部分,則說明直接將條形碼圖像中低谷值點以下的區域識別為字符區域。步驟203 :將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符。在步驟202之後能夠將字符區域分割出來,依據縱向投影值的分布狀況定位各字符的方式與依據橫向投影值的分布狀況定位字符區域的方式類似,即將縱向投影值的低谷值點作為各字符的邊界點對字符區域進行分割得到各字符。需要說明的是,由於在某些情況下字符區域中除了字符之外,還可能存在部分條形碼,如圖4所示,對於這種情況,部分條形碼也被定位為字符,圖4所示的字符區域可能會被定位出22個字符,但最終部分條形碼在後續文字識別的步驟中無識別結果,僅有真正的字符會被識別出來,所以不會影響最終的識別結果。
步驟204 :對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。分割成各字符區域後,分別對各字符區域進行文字識別,優選地,在文字識別之前首先將單個字符區域歸一化到統一的尺寸。文字識別的方式包括模板匹配法和幾何特徵抽取法。由於條形碼下的字符通常為數字或字母,是有限的可以窮舉的類型,因此可以採用模板匹配法,將待識別的字符與預先給定的各模板進行匹配,計算待識別的字符與各模板之間的相似度,取相似度最大的模板對應的內容(數字或字母)作為識別結果。當然,也可以採用幾何特徵抽取法,模板匹配法和幾何特徵抽取法為已有技術,在此不再詳述。得到條形碼識別結果之後,可以進一步採用歐洲物品編碼(EAN-13)進行校驗,如 果校驗通過,則輸出該條形碼識別結果;如果校驗失敗,則本次條形碼識別失敗。由於EAN-13條形碼中存在校正碼,通常其代碼位置序號為1,在採用EAN-13進行校驗時,一方面校驗條形碼識別結果是否為13位字符,一方面將除了校正碼所在位置對應字符之外的其他字符按照EAN-13校驗算法進行計算後,將計算結果與校正碼所在位置對應的字符進行比對,如果一致,則確定校驗通過。EAN-13校正算法的實現舉一個例子a、從條形碼識別結果中第二位字符開始,所有偶數位的字符代碼求和。b、將步驟a的求和結果乘以3。C、從第三位字符開始,所有奇數位的字符代碼求和。d、將步驟b的結果與步驟c的結果相加。e、用大於或等於步驟d所得結果且為10最小整數倍的數減去步驟d所得的結果。f、將步驟e所得結果與條形碼識別結果中第一位字符進行比對,如果一致,則校驗通過。實施例二、本實施例與實施例一的區別在於,預先對條形碼圖像執行幾何校正的過程,防止在用戶終端獲取條形碼圖像時,由於終端拍攝條件限制、或者用戶拍攝距離、拍攝角度等因素導致的條形碼圖像發生傾斜或畸變而導致條形碼識別失敗。圖5為本發明實施例二提供的條形碼識別方法流程圖,如圖5所示,該方法可以包括以下步驟步驟501 :在用戶終端獲取到的條形碼圖像中定位條形碼區域,確定條形碼區域的角點。本步驟的實現可以如圖6所示,具體包括步驟601 :將用戶終端獲取到的條形碼圖像進行灰度化。步驟602 :對灰度化後的條形碼圖像進行邊緣檢測得到邊緣圖像。在本步驟中可以採用已有的任意邊緣檢測方法,例如canny算子邊緣檢測、RobersCross算子邊緣檢測、Prewitt算子邊緣檢測等等。步驟603 :對邊緣圖像進行hough線段檢測,確定條形碼各線段的端點。hough線段檢測為已有技術,通過hough線段檢測能夠確定圖像中線段的端點,即線段的起點和終點。步驟604:對各線段進行聚類,利用聚類結果中各線段的端點確定條形碼區域的角點。可以對各線段進行聚類確定線段較密集的區域,具體可以為選取一條種子線段,將與種子線段的角度和距離在設定範圍內的線段進行聚合。然後利用聚合在一起的各線段的起點和終點分別做直線擬合,例如最小二乘法的直線擬合,這樣就可以得到各線段的起點擬合到的線段,稱為起點線段,以及各線段的終點擬合到的線段,稱為終點線段。起點線段和終點線段的4個端點就是條形碼區域的角點。所謂角點就是條形碼區域的邊界頂點。繼續參見圖5中的步驟502 :基於條形碼區域的角點對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像。在本步驟中,基於條形碼區域的4個焦點可以採用透視變換的方式進行幾何校正。透視變換的原理是,用戶終端獲取到的圖像中的各點是實際三維空間物體的一點(x, y, I)經過透視變換到二維平面點(x』,y』,I)而生成的,透視變換公式為X hu h12 h13 xy,= h21 h22 h23 y
I」Lh3ih,2l J|_l_
Ii11 h12 h13其中h2i h22 h23
_h31 h32 I _為變換矩陣,首先將條形碼區域的角點坐標映射到圖像的基準位置坐標作為(x』,y』,1),(x, y, I)取指定值即指定的標準坐標,可以解出變換矩陣,對其求逆可得到校正矩陣。然後利用校正矩陣對條形碼圖像進行幾何校正,即將條形碼圖像中各像素的坐標點均乘以校正矩陣,得到標準角度的條形碼圖像。需要說明的是,如果採用的角點個數為其他值,比如3個,則可以採用其他幾何校正方式對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像,在此不再一一窮舉。步驟503至步驟506依次與實施例一中步驟201至步驟204相同,不再贅述。以上是對本發明所提供的方法進行的詳細描述,下面結合實施例三和實施例四對本發明所提供的裝置進行詳細描述。實施例三、圖7為本發明實施例三提供的條形碼識別裝置結構圖,該裝置可以設置在能夠獲取條形碼圖像的用戶終端中,該用戶終端可以包括但不限於具有拍照或掃描功能的手機、電腦、相機、ipad、掃描儀等,該裝置也可以為獨立於用戶終端的裝置。如圖7所示,該裝置包括圖像二值化單元700、字符區域定位單元710、字符定位單元720和文字識別單元730。首先,圖像二值化單元700對用戶終端獲取到的條形碼圖像進行二值化。可以採用諸如全局二值化方法、局部自適應二值化方法等任意二值化方式。字符區域定位單元710對二值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域。所謂投影值就是投影點上像素值為I的數目,對於橫向投影而言,就是橫向上一行像素值為I的數目。依據條形碼的結構特點,橫向投影值的分布狀況為在出現一段平穩值之後出現一個低谷值,然後投影值又上升。該平穩值是條形碼的橫向投影,低估值是條形碼和字符的分隔處,因此,可以將橫向投影值的低谷值點作為字符區域的上邊界點,即首先確定橫向投影值的低谷值點,將低谷值點以下的區域識別為字符區域。由於在實際場景中條形碼圖像可能出現上下倒置的情況,而條形碼區域部分通常比字符區域部分的縱向長度要長,因此,字符區域定位單元720在將低谷值點以下的區域識別為字符區域之前還包括判斷低谷值點是否位於存在橫向投影值區域的上半部分還是下半部分,如果位於上半部分,則說明條形碼圖像上下倒置,將條形碼圖像進行上下翻轉後,執行將橫向投影值的低谷值點以下的區域識別為字符區域;如果位於下半部分,則繼續執行將橫向投影值的低谷值點以下的區域識別為字符區域。然後字符定位單元720將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符。具體地,將縱向投影值的低谷值點作為各字符的邊界點對字符區域進行分割得到各字符。需要說明的是,由於在某些情況下字符區域中除了字符之外,還可能存在部分條
形碼,如圖4所示,對於這種情況,部分條形碼也被定位為字符,圖4所示的字符區域可能會被定位出22個字符,但最終部分條形碼在後續文字識別單元730的操作中無識別結果,僅有真正的字符會被識別出來,所以不會影響最終的識別結果。文字識別單元730對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。文字識別的方式包括模板匹配法和幾何特徵抽取法。由於條形碼下的字符通常為數字或字母,是有限的可以窮舉的類型,因此可以採用模板匹配法,將待識別的字符與預先給定的各模板進行匹配,計算待識別的字符與各模板之間的相似度,取相似度最大的模板對應的內容(數字或字母)作為識別結果。當然,也可以採用幾何特徵抽取法,模板匹配法和幾何特徵抽取法為已有技術,在此不再詳述。優選地,該裝置還可以包括結果校驗單元740,用於對條形碼識別結果採用EAN-13校驗算法進行校驗,如果校驗通過,則輸出條形碼識別結果,否則,確定本次條形碼識別失敗。由於EAN-13條形碼中存在校正碼,通常其代碼位置序號為1,在採用EAN-13進行校驗時,一方面校驗條形碼識別結果是否為13位字符,一方面將除了校正碼所在位置對應字符之外的其他字符按照EAN-13校驗算法進行計算後,將計算結果與校正碼所在位置對應的字符進行比對,如果一致,則確定校驗通過。實施例四、本實施例與實施例三的區別在於,該裝置還包括條碼區域定位單元800和幾何校正單元810預先對條形碼圖像進行幾何校正,防止在用戶終端獲取條形碼圖像時,由於終端拍攝條件限制或者用戶拍攝距離、拍攝角度等因素導致的條形碼圖像發生傾斜或畸變而導致條形碼識別失敗,此時裝置結構如圖8所示。條碼區域定位單元800在用戶終端獲取到的條形碼圖像中定位條形碼區域,確定條形碼區域的角點。幾何校正單元810基於條形碼區域的角點對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像。具體可以採用透視變換的方式進行幾何校正,也可以採用其他校正方式。
該結構下圖像二值化單元700是對標準角度的條形碼圖像進行的二值化。其中,條碼區域定位單元800的結構可以如圖9所示,具體包括灰度化子單元801、邊緣檢測子單元802、線段檢測子單元803和角點確定子單元804。首先灰度化子單元801將用戶終端獲取到的條形碼圖像進行灰度化。然後邊緣檢測子單元802對灰度化後的條形碼圖像進行邊緣檢測得到邊緣圖像。具體可以採用已有的任意邊緣檢測方法,例如canny算子邊緣檢測、Robers Cross算子邊緣檢測、Prewitt算子邊緣檢測等等。線段檢測子單元803對邊緣圖像進行hough線段檢測,確定條形碼各線段的端點。hough線段檢測為已有技術,通過hough線段檢測能夠確定圖像中線段的端點,即線段的起點和終點。角點確定子單元804對各線段進行聚類,利用聚類結果中各線段的端點確定條形 碼區域的角點。可以對各線段進行聚類確定線段較密集的區域,具體可以為從各線段中選取種子線段,將與種子線段的角度和距離在設定範圍內的線段進行聚合;利用聚合在一起的各線段的起點和終點分別做直線擬合,得到各起點擬合得到的起點線段以及各終點擬合得到的終點線段;將起點線段和終點線段的端點確定為條形碼區域的角點。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
權利要求
1.一種條形碼識別方法,其特徵在於,該方法包括 51、對用戶終端獲取到的條形碼圖像進行ニ值化; 52、對ニ值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域; 53、將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符; 54、對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。
2.根據權利要求I所述的方法,其特徵在於,在所述步驟SI之前還包括 Al、在用戶終端獲取到的條形碼圖像中定位條形碼區域,確定條形碼區域的角點; A2、基於條形碼區域的角點對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像。
3.根據權利要求2所述的方法,其特徵在於,所述步驟Al具體包括 AU、將用戶終端獲取到的條形碼圖像進行灰度化; A12、對灰度化後的條形碼圖像進行邊緣檢測得到邊緣圖像; A13、對所述邊緣圖像進行hough線段檢測,確定條形碼各線段的端點; A14、對各線段進行聚類,利用聚類結果中各線段的端點確定條形碼區域的角點。
4.根據權利要求3所述的方法,其特徵在於,所述步驟A14具體包括 從各線段中選取種子線段,將與種子線段的角度和距離在設定範圍內的線段進行聚合; 利用聚合在一起的各線段的起點和終點分別做直線擬合,得到各起點擬合得到的起點線段以及各終點擬合得到的終點線段; 將所述起點線段和終點線段的端點確定為條形碼區域的角點。
5.根據權利要求2所述的方法,其特徵在於,在所述步驟A2中採用透視變換的方式進行幾何校正。
6.根據權利要求I至5任ー權項所述的方法,其特徵在於,所述步驟S2中根據橫向投影值的分布狀況定位出字符區域具體包括 確定橫向投影值的低谷值點,將低谷值點以下的區域識別為字符區域。
7.根據權利要求6所述的方法,其特徵在於,在所述將橫向投影值的低谷值點以下的區域識別為字符區域之前還包括判斷所述低谷值點是否位於存在橫向投影值區域的上半部分還是下半部分,如果位於上半部分,則將條形碼圖像進行上下翻轉後,執行所述將橫向投影值的低谷值點以下的區域識別為字符區域;如果位於下半部分,則繼續執行所述將橫向投影值的低谷值點以下的區域識別為字符區域。
8.根據權利要求I至5任ー權項所述的方法,其特徵在於,所述步驟S3中根據縱向投影值的分布狀況定位出各字符具體包括 將縱向投影值的低谷值點作為各字符的邊界點對字符區域進行分割得到各字符。
9.根據權利要求I至5任ー權項所述的方法,其特徵在於,在所述步驟S4之後還包括 55、對所述條形碼識別結果採用歐洲物品編碼EAN-13校驗算法進行校驗,如果校驗通過,則輸出所述條形碼識別結果,否則,確定本次條形碼識別失敗。
10.一種條形碼識別裝置,其特徵在於,該裝置包括 圖像ニ值化單元,用於對用戶終端獲取到的條形碼圖像進行ニ值化; 字符區域定位単元,用於對ニ值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域; 字符定位単元,用於將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符; 文字識別單元,用於對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。
11.根據權利要求10所述的裝置,其特徵在於,該裝置還包括 條碼區域定位単元,用於在用戶終端獲取到的條形碼圖像中定位條形碼區域,確定條形碼區域的角點; 幾何校正単元,用於基於條形碼區域的角點對條形碼圖像進行幾何校正,得到標準角度的條形碼圖像; 所述圖像ニ值化單元是對所述標準角度的條形碼圖像進行的ニ值化。
12.根據權利要求11所述的裝置,其特徵在於,所述條碼區域定位単元具體包括 灰度化子単元,用於將用戶終端獲取到的條形碼圖像進行灰度化; 邊緣檢測子單元,用於對灰度化後的條形碼圖像進行邊緣檢測得到邊緣圖像; 線段檢測子單元,用於對所述邊緣圖像進行hough線段檢測,確定條形碼各線段的端點; 角點確定子単元,用於對各線段進行聚類,利用聚類結果中各線段的端點確定條形碼區域的角點。
13.根據權利要求12所述的裝置,其特徵在於,所述角點確定子単元在進行聚類和角點的確定時,具體從各線段中選取種子線段,將與種子線段的角度和距離在設定範圍內的線段進行聚合;利用聚合在一起的各線段的起點和終點分別做直線擬合,得到各起點擬合得到的起點線段以及各終點擬合得到的終點線段;將所述起點線段和終點線段的端點確定為條形碼區域的角點。
14.根據權利要求11所述的裝置,其特徵在於,所述幾何校正單元採用透視變換的方式進行幾何校正。
15.根據權利要求10至14任ー權項所述的裝置,其特徵在於,所述字符區域定位単元在定位字符區域時,具體確定橫向投影值的低谷值點,將低谷值點以下的區域識別為字符區域。
16.根據權利要求15所述的裝置,其特徵在於,所述字符區域定位単元在將低谷值點以下的區域識別為字符區域之前還包括判斷所述低谷值點是否位於存在橫向投影值區域的上半部分還是下半部分,如果位於上半部分,則將條形碼圖像進行上下翻轉後,執行所述將橫向投影值的低谷值點以下的區域識別為字符區域;如果位於下半部分,則繼續執行所述將橫向投影值的低谷值點以下的區域識別為字符區域。
17.根據權利要求10至14任ー權項所述的裝置,其特徵在於,所述字符定位単元在定位各字符時,具體將縱向投影值的低谷值點作為各字符的邊界點對字符區域進行分割得到各字符。
18.根據權利要求10至14任ー權項所述的裝置,其特徵在於,該裝置還包括 結果校驗單元,用於對所述條形碼識別結果採用歐洲物品編碼EAN-13校驗算法進行校驗,如果校驗通過,則輸出所述條形碼識別結果,否則,確定本次條形碼識別失敗。
全文摘要
本發明提供了一種條形碼識別方法和裝置,其中方法包括對用戶終端獲取到的條形碼圖像進行二值化;對二值化後的條形碼圖像進行橫向投影,根據橫向投影值的分布狀況定位出字符區域;將字符區域進行縱向投影,根據縱向投影值的分布狀況定位出各字符;對各字符進行文字識別,並將文字識別結果進行組合得到條形碼識別結果。本發明將文字識別技術引入條形碼的識別,採用識別條形碼下方的字符的方式得到條形碼的識別結果,而不是通過計算黑白條寬度進行解碼的方式,對於拍攝條件有限的用戶終端提高了條形碼識別的成功率。
文檔編號G06K7/10GK102799850SQ20121022719
公開日2012年11月28日 申請日期2012年6月30日 優先權日2012年6月30日
發明者劉經拓 申請人:北京百度網訊科技有限公司