專利名稱:一種矩陣式二維條碼的初步定位方法
技術(shù)領(lǐng)域:
本發(fā)明屬于二維條碼圖像處理方法,涉及一種在復(fù)雜背景環(huán)境中矩陣式二維條碼的初步定位方法。
背景技術(shù):
矩陣式二維條形碼是一種由中心點到與中心點固定距離的多邊形單元所組成的圖形二維碼,而在水平和垂直方向的二維空間存儲信息的條碼稱為二維碼,矩陣式二維條碼是近年來應(yīng)用最為廣泛的一種二維碼,具有代表性的矩陣式二維條碼有=Code One、MaxiCode>QR Code、Data Matrix等。一般的二維條碼圖像處理步驟中,在對二維條碼完成了二值化處理之后,就要對條碼的區(qū)域做一個初步的定位。因為在實際的應(yīng)用中,圖像采集模塊所采集的條碼圖像中往往含有復(fù)雜的背景圖案,這就給條碼的識別帶來了很大的困難。對條碼進行初定位的目的,一是將圖像中的背景噪聲圖案剔除,二是為后續(xù)處理縮小處理范圍,提聞處理速度。目前,已有的針對矩陣式二維條碼的區(qū)域初步定位主要有三類方法:第一類是掃描定位,也叫投影定位,即從水平和垂直兩個方向?qū)D像做投影,通過投影值的坐標來確定條碼的大概位置。第二類是基于邊緣檢測和數(shù)學(xué)形態(tài)學(xué)的定位,即先對條碼圖像做邊緣檢測,再做形態(tài)學(xué)處理,最后對條碼區(qū)域進行篩選。第三類則是基于小波分析和神經(jīng)網(wǎng)絡(luò)的定位。第一類方法較簡單,但要求圖像的信噪比非常高才行。若圖像中存在較大的背景圖案,那用第一類方法就幾乎沒有意義;第二類方法是目前用的最多的方法。第三類方法較為復(fù)雜,且存在很高的不確定性。經(jīng)對現(xiàn)有技術(shù)文獻的檢索發(fā)現(xiàn),對第二類方法使用的較為多,因此本發(fā)明主要是在第二類方法的基礎(chǔ)上提出自己的初步定位方法。在第二類方法中主要步驟是先對條碼圖 像邊緣檢測,而后進行形態(tài)學(xué)的腐蝕與膨脹處理,最后提取條碼連通區(qū)域。第二類方法中,不同大小的方形結(jié)構(gòu)元素對二維條碼圖像做形態(tài)學(xué)處理,圖像中的連通域會產(chǎn)生很明顯的不同,對條碼的提取造成很大的影響。再對做完形態(tài)學(xué)處理的圖進行條碼區(qū)域的提取,所得到的區(qū)域會產(chǎn)生非常大的偏差,當(dāng)結(jié)構(gòu)元素太小時,對條碼的定位會產(chǎn)生缺失,而結(jié)構(gòu)元素太大時,很有可能將復(fù)雜背景圖案一并計入條碼區(qū)域。雖然這種方法應(yīng)用的比較普遍,但只能作為一種實驗方法,卻不能用于工業(yè)應(yīng)用中。因為這種方法有一個很大的缺陷,就是形態(tài)學(xué)處理中的結(jié)構(gòu)元素的大小和形狀都不能夠自適應(yīng)的選取,而更為關(guān)鍵的是若不能選取合適的結(jié)構(gòu)元素,會嚴重的影響到處理的效果。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種矩陣式二維條碼的初步定位方法,以從復(fù)雜背景條件下得到條碼的大概區(qū)域,提高條碼的識別速度和精度,為后續(xù)的圖像校正和提取信息等步驟做準備。
為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:一種矩陣式二維條碼的初步定位方法,其包括以下步驟:
1.1)對二值化后的條碼圖像進行邊緣檢測,得到圖像的邊緣檢測 1.2)掃描檢測圖中的邊緣點,將所有的邊緣點標記;
1.3)逐個對每個邊緣點進行方向掃描,求得每個邊緣點的最短距離跳變點;
1.4)連接圖中所有的最短距離跳變點與其對應(yīng)的邊緣點;
1.5)得到連接過后的圖像,篩選出連通區(qū)域,提取出條碼區(qū)域。請補充下本方案的效果。所述步驟1.2)中掃描檢測圖像中的邊緣點,將所有的邊緣點標記的步驟如下:
2.1)對檢測過后的圖像進行掃描,如果被檢測的點為白色像素點,且該點上下左右四周存在黑色像素點,則標記該點為圖像的邊緣點;
2.2)重復(fù)上述步驟2.1),找出并標記所有圖像中的邊緣點。所述步驟1.3)中的具體步驟如下:
3.1)尋找邊緣點附近最近的跳變點,首先從右邊方向掃描,若第一個點為黑色像素點,則繼續(xù)向右邊方向掃描,直到掃描到某點為白色像素點為止,記該點為跳變點;若第一個點為白色像素點,則向右掃描到某點為黑像素點,則記該點的前一位置的像素點為跳變點;
3.2)使用同樣的方法對其 他的七個方向,分別是該像素點的上、下、左、右上、左上、左下和右下重復(fù)掃描跳變點,得到八個跳變點后,取其中一個與該邊緣點最近距離的一個點作為當(dāng)前邊緣點的最短距離跳變點,若出現(xiàn)多個點都為最近距離的跳變點時,則取最先掃描到的點作為最短距離跳變點。所述步驟1.4)中連接圖像中所有的最短距離跳變點與其對應(yīng)的邊緣點的步驟如下:
4.1)將所有邊緣點與它們所對應(yīng)的最短距離跳變點連接,當(dāng)跳變點為黑色像素點時,將以這兩點為端點的線段上經(jīng)過的所有的像素點都置為白色,當(dāng)跳變點也為白色像素點時,則不進行操作。所述步驟1.5)中的具體步驟如下:對圖像進行條碼區(qū)域的提取,首先畫一個與圖像邊緣距離一定寬度的邊框,剔除所有與該邊框有接觸的連通圖案,再求出圖像中面積最大的連通圖案,剔除所有小于此面積的連通圖案,篩選出條碼。先分別向左和向右掃描圖像,當(dāng)接觸到值為I的像素點時停止掃描,并分別記錄這兩點的橫坐標;再分別向上和向下掃描圖像,當(dāng)接觸到值為I的像素點時停止掃描,并分另Ij記錄這兩點的縱坐標;以這四個點畫水平矩形,最后將矩形內(nèi)的像素點提取出來,從而完成條碼的初定位。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明通過在復(fù)雜背景條件下的矩陣式二維條碼圖像中,自適應(yīng)的將任何大小和規(guī)格的條碼圖像完整的連接起來形成連通區(qū)域,并將連通區(qū)域標記后提取,此過程不需要考慮選取結(jié)構(gòu)元素的大小和形狀,且對圖像進行邊緣點的檢測更為簡單,提取而得到條碼的大概區(qū)域后,可以將條碼與復(fù)雜背景區(qū)分開,避免背景對條碼區(qū)域進一步處理的影響,提高條碼的識別速度和精度,為后續(xù)的條碼圖像校正和提取信息等步驟做準備。
圖1為本發(fā)明的矩陣式碼初步定位方法流程圖
圖2為本發(fā)明中判斷邊緣點時的幾種情況(一格為一像素點)
圖3為本發(fā)明中尋找方向跳變點的原理示例圖(一格為一像素點)
圖4為本發(fā)明中連接最短距離跳變點像素點的過程(一格為一像素點)
圖5為本發(fā)明中標記連通區(qū)域過程的原理圖(一格為一像素點)
圖6為本發(fā)明中自適應(yīng)的條碼初步定位標記連通區(qū)域并處理效果圖。
具體實施例方式
下面結(jié)合具體實施例對本發(fā)明作進一步的說明。如圖1所示,本發(fā)明公開一種矩陣式二維條碼的初步定位方法,主要的方法包括以下步驟:
在接收到二值化處理過的矩陣式二維條碼圖像后,首先對圖像進行邊緣檢測。然后第一步就是對檢測后圖像中的每個像素點進行檢測,判斷是否邊緣點。對邊緣點的判斷的準則為:如果被檢測的點為白色像素點(值為1),且該點上下左右四周存在黑色像素點(值為0),則判斷該點為圖像的邊緣點。如圖2中四種情況都可以判斷a點為邊緣點。當(dāng)確定a點為邊緣點后,接下來尋找a附近最近的跳變點,這里解釋一下何為尋找與a點距離最近的方向跳變點,以向右方向為例,尋找與a點右方向上距離最近的方向跳變點的規(guī)則為:從a點右邊第一個點開始向右掃描。若第一個點為黑色像素點,則繼續(xù)向右掃描,如圖3(a)所示,直到掃描到某點為白色像素點為止,記該點為b點,如圖3(b)所示。若第一個點為白色像素點,則繼續(xù)向右掃描,如圖3(c)所示,直到掃描到某點為黑色像素點為止,記該點的前一點為b點,如圖3(d)所示。這兩種情況都可確定b點是a點右方向上第一個發(fā)生顏色跳變的點,即b點是與a點右方向上距離最近的方向跳變點。重復(fù)上述過程尋找與a點八個方向上距離最近的方向跳變點,八個方向為(a點上、下、左、右、右上(45°方向)、左上(135°方向)、左下(225°方向)和右下(315°方向)),當(dāng)找到跳變點b點后要記錄下a點與b點的距離。若掃描至圖像邊界處時還未檢測到跳變點,那么就將該邊界點設(shè)為跳變點b,并將a點與b點的距離設(shè)為00。當(dāng)與a點八個方向上距離最近的方向跳變點全部找到并分別記錄下了各個距離值,尋找跳變點的結(jié)果如圖4(a)為例。接下來第三步就要找出這八個距離值中的最小值,再將這個最小值對應(yīng)的跳變點找到,并將該邊緣點a與該跳變點連接起來,以圖4所示為例。從圖4(a)中可以看出與a點八個方向上距離最近的方向跳變點分別為b,c, d, e, f, g, h, i,可以判斷出八個距離中最短為I ai I,因此將a點與i點連接起來,如圖4(b)所示。對圖像中所有的邊緣點重復(fù)上述尋找跳變點并連接的過程,得到連接后的條碼圖像,如圖6 (a),這時候需要對圖像進行條碼區(qū)域的提取,使用的是目前大多數(shù)通用的篩選連通區(qū)域的方法,首先畫一個與圖像邊緣距離一定寬度的邊框,剔除所有與該邊框有接觸的連通圖案,再求出圖像中面積最大的連通圖案,剔除所有小于此面積的連通圖案,篩選出條碼。對連通和篩選區(qū)域的標記原理如圖5(a)、圖5(b)中所示,將所有區(qū)域內(nèi)進行編號的像素進行編號,然后對所有對應(yīng)編號的像素點個數(shù)進行統(tǒng)計,將像素點個數(shù)最多的編號區(qū)域提取,得到最大連通區(qū)域,篩選并提取連通區(qū)域的效果如圖6(b)。篩選連通區(qū)域后,已經(jīng)將大部分的背景剔除,所得到的圖像只含有條碼部分。分別向左和向右掃描圖像,當(dāng)接觸到值為I的像素點時停止掃描,并分別記錄這兩點的橫坐標;同樣的過程,再分別向上和向下掃描圖像,當(dāng)接觸到值為I的像素點時停止掃描,并分別記錄這兩點的縱坐標;以這四個點畫水平矩形,最后將矩形內(nèi)的像素點提取出來,如圖6(c)所示。這樣就完成了二維條碼的初定位。顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它 不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。
權(quán)利要求
1.一種矩陣式二維條碼的初步定位方法,其特征在于,包括以下步驟: 1.1)對二值化后的條碼圖像進行邊緣檢測,得到圖像的邊緣檢測圖; 1.2)掃描檢測圖中的邊緣點,將所有的邊緣點標記; 1.3)逐個對每個邊緣點進行方向掃描,求得每個邊緣點的最短距離跳變點; 1.4)連接圖中所有的最短距離跳變點與其對應(yīng)的邊緣點; 1.5)得到連接過后的圖像,篩選出連通區(qū)域,提取出條碼區(qū)域。
2.根據(jù)權(quán)利要求1所述的矩陣式二維條碼的初步定位方法,其特征在于,所述步驟1.2)中掃描檢測圖像中的邊緣點,將所有的邊緣點標記的步驟如下: 2.1)對檢測過后的圖像進行掃描,如果被檢測的點為白色像素點,且該點上下左右四周存在黑色像素點,則標記該點為圖像的邊緣點; 2.2)重復(fù)上述步驟2.1),找出并標記所有圖像中的邊緣點。
3.根據(jù)權(quán)利要求1所述的矩陣 式二維條碼的初步定位方法,其特征在于,所述步驟1.3)中的具體步驟如下: 3.1)尋找邊緣點附近最近的跳變點,首先從右邊方向掃描,若第一個點為黑色像素點,則繼續(xù)向右邊方向掃描,直到掃描到某點為白色像素點為止,記該點為跳變點;若第一個點為白色像素點,則向右掃描到某點為黑像素點,則記該點的前一位置的像素點為跳變點; 3.2)使用同樣的方法對其他的七個方向,分別是該像素點的上、下、左、右上、左上、左下和右下重復(fù)掃描跳變點,得到八個跳變點后,取其中一個與該邊緣點最近距離的一個點作為該邊緣點的最短距離跳變點,若出現(xiàn)多個點都為最近距離的跳變點時取最早掃描的點作為最短距離跳變點。
4.根據(jù)權(quán)利要求1所述的矩陣式二維條碼的初步定位方法,其特征在于,所述步驟1.4)中連接圖像中所有的最短距離跳變點與其對應(yīng)的邊緣點的步驟如下: 4.1)將所有邊緣點與它們所對應(yīng)的最短距離跳變點連接,當(dāng)跳變點為黑色像素點時,將以這兩點為端點的線段上經(jīng)過的所有的像素點都置為白色,當(dāng)跳變點也為白色像素點時,則不進行操作。
5.根據(jù)權(quán)利要求1所述的矩陣式二維條碼的初步定位方法,其特征在于,所述步驟1.5)中的具體步驟如下:對圖像進行條碼區(qū)域的提取,首先畫一個與圖像邊緣距離一定寬度的邊框,剔除所有與該邊框有接觸的連通圖案,再求出圖像中面積最大的連通圖案,剔除所有小于此面積的連通圖案,篩選出條碼。
6.根據(jù)權(quán)利要求5所述的矩陣式二維條碼的初步定位方法,其特征在于,先分別向左和向右掃描圖像,當(dāng)接觸到值為I的像素點時停止掃描,并分別記錄這兩點的橫坐標;再分別向上和向下掃描圖像,當(dāng)接觸到值為I的像素點時停止掃描,并分別記錄這兩點的縱坐標;以這四個點畫水平矩形,最后將矩形內(nèi)的像素點提取出來,從而完成條碼的初定位。
全文摘要
本發(fā)明涉及一種矩陣式二維條碼的初步定位方法,包括以下步驟對二值化后的圖像進行邊緣檢測,得到圖像的邊緣檢測圖;掃描檢測圖中的邊緣點,將所有的邊緣點標記;逐個對每個邊緣點進行方向掃描,求得每個邊緣點的最短距離跳變點;連接圖像中所有的最短距離跳變點與其對應(yīng)的邊緣點;得到連接過后的圖像,篩選出連通區(qū)域,提取出條碼區(qū)域。本發(fā)明通過從復(fù)雜背景條件下得到條碼的大概區(qū)域,提高條碼的識別速度和精度,為后續(xù)的圖像校正和提取信息等步驟做準備。
文檔編號G06K9/54GK103235951SQ20131014011
公開日2013年8月7日 申請日期2013年4月22日 優(yōu)先權(quán)日2013年4月22日
發(fā)明者譚洪舟, 陳榮軍, 吳琦, 朱雄泳 申請人:中山大學(xué)