本發(fā)明屬于算法領(lǐng)域,涉及一種圖像處理方法,具體涉及一種二維碼圖像處理方法。
背景技術(shù):
Data Matrix 是在國(guó)際制造領(lǐng)域廣泛使用的二維碼。 Data Matrix是二維碼的一個(gè)成員,與1989年由美國(guó)國(guó)際資料公司發(fā)明,廣泛用于商品的防偽、統(tǒng)籌標(biāo)識(shí)。是一種可以直接標(biāo)記在固體表面的編碼,該編碼可以像普通條形碼一樣被相應(yīng)的掃描裝置自動(dòng)讀取,很受制造業(yè)青睞。目前Data Matrix被廣泛用于產(chǎn)品標(biāo)識(shí)、防偽、質(zhì)量追蹤、自動(dòng)倉儲(chǔ)、物流管理與控制等系統(tǒng)。Data Matrix采用了復(fù)雜的糾錯(cuò)碼技術(shù),使得該編碼具有超強(qiáng)的抗污染能力。即使編碼部分破損,一樣不會(huì)影響讀出全部信息。Data Matrix的印刷特征使得它成為目前唯一支持可以直接標(biāo)記(印刷、刻制、光刻、腐蝕、沖壓等方式)在產(chǎn)品或零部件表面的編碼。它的高效容錯(cuò)性能使它可以承受制造或流通過程中對(duì)零部件表面標(biāo)識(shí)的污染,因此非常受制造業(yè)的歡迎。針對(duì)各種不同的應(yīng)用,國(guó)際上已經(jīng)頒布了多種形式的 Data Matrix 符號(hào)標(biāo)準(zhǔn)體系。Data Matrix的最小尺寸是目前所有條碼中最小的,尤其特別適用于小零件的標(biāo)識(shí),以及直接印刷在實(shí)體上。
Data Matrix又可分為ECC000-140與ECC200兩種類型,ECC000-140具有多種不同等級(jí)的錯(cuò)誤糾正功能,而ECC200則透過Reed-Solomon演算法產(chǎn)生多項(xiàng)式計(jì)算出錯(cuò)誤糾正碼,其尺寸可以依需求印成不同大小,但采用的錯(cuò)誤糾正碼應(yīng)與尺寸配合,由于其演算法較為容易,且尺寸較有彈性,故一般以ECC200較為普遍。Data Matrix碼密度高,尺寸小,信息量大,給這種識(shí)別提供了可能,國(guó)內(nèi)對(duì)DM碼研究也較少。Data Matrix碼是一種矩陣式二維條碼,其最大特點(diǎn)就是密度高,其最小尺寸是目前所有條碼中最小的碼。DM碼可在僅僅25mm2的面積上編碼30個(gè)數(shù)字。DM采用了復(fù)雜的糾錯(cuò)碼技術(shù),使得該編碼具有超強(qiáng)的抗污染能力。Data Matrix因提供極小又高密度的標(biāo)簽,且仍可存放合理的資料內(nèi)容,故特別適用于小零件標(biāo)識(shí),商品防偽,電路標(biāo)識(shí)等。由于其優(yōu)秀的糾錯(cuò)能力,DM碼己成為韓國(guó)手機(jī)二維條碼的主流技術(shù)。相對(duì)QR而言,DM碼由于信息容量差異不多,應(yīng)用簡(jiǎn)單,被業(yè)內(nèi)稱為“簡(jiǎn)易碼”,對(duì)終端要求不高,30萬像素的手機(jī)就可識(shí)別,它更多的是基于WAP的增值。二維碼給手機(jī)上網(wǎng)帶來了新的入口,通過掃描各類條碼,用戶很快就能進(jìn)入WAP網(wǎng)站,進(jìn)行快速瀏覽。Data Matrix符號(hào)看起來像一個(gè)由深淺兩種顏色組成的國(guó)際象棋棋盤,每一個(gè)相同大小的黑色或白色方格稱為一個(gè)數(shù)據(jù)單位,Data Matrix符號(hào)就是由許多這樣的數(shù)據(jù)單位組成。在尋邊區(qū)外層有寬度為一個(gè)數(shù)據(jù)單位的靜區(qū)。尋邊區(qū)是“棋盤”的邊界,只用于定位和定義數(shù)據(jù)單位大小,而不含有任何編碼信息。被尋邊區(qū)包圍的數(shù)據(jù)區(qū)包含著編碼信息。
現(xiàn)有技術(shù)中使用Data Matrix大都印刷、刻制、光刻、腐蝕、沖壓等方式,這些方式生成的二維碼的識(shí)別方式較簡(jiǎn)單,因?yàn)槠溥吘壍淖R(shí)別度較高,但是采用3D打印的方式,直接生成二維碼,其識(shí)別邊緣較模糊,較難實(shí)現(xiàn)定位,并且,由于材質(zhì)原因,在光照條件下,對(duì)比度相對(duì)較差,將其處理識(shí)別時(shí),難度較大,因此,研究一種能夠針對(duì)3D打印方法生成的二維碼進(jìn)行圖像處理的方法,具有重要的意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,是提供一種二維碼圖像處理方法,采用針對(duì)光照變化不敏感的二維碼,采用灰度拉伸的方法代替了現(xiàn)有技術(shù)中的平滑方法,使得識(shí)別度增加。
為解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案是:
一種二維碼圖像處理方法,按照以下步驟順序進(jìn)行:
1)獲取定位區(qū)域;
2)調(diào)獲得定位區(qū)域后,根據(jù)datamatrix二維碼的碼制標(biāo)準(zhǔn),采用雙線性插值法調(diào)整圖像尺度為正方形;
3)用非線性灰度拉伸算法來提高圖像的對(duì)比度;
4)對(duì)步驟3)得到的結(jié)果進(jìn)行腐蝕,以消除由光源偏差造成的陰影;
5)用二維高斯卷積算子對(duì)圖像f(x,y)按塊大小為q*q進(jìn)行卷積;
6)對(duì)卷積后的圖像G(x,y)進(jìn)行自適應(yīng)閾值的二值化運(yùn)算,從而得到處理好的datamatrix二維碼;
7)將得到的標(biāo)準(zhǔn)的datamatrix二維碼輸入進(jìn)解碼器中進(jìn)行解碼。
作為本發(fā)明的一種限定,所述的步驟2)的具體方法為:
(a)設(shè)新圖像像素位置為(m,n),放大倍數(shù)分別為k,p, 則調(diào)整后像素位置在原圖像的對(duì)應(yīng)位置為:;
(b)設(shè)原圖像四個(gè)點(diǎn),f(i,j),f(i+1,j),f(i,j+1),f(i+1,j+1),計(jì)算四點(diǎn)區(qū)域的插值,得到新圖像對(duì)應(yīng)位置處的像素值f(x,y):
其中, ,b,且:
a=x-i;b=y-j;
(c)通過調(diào)整參數(shù)k和p,將圖像變成p*q寬度的正方形;其中,p為二維碼的碼字個(gè)數(shù),q為將p擴(kuò)展的尺度。
作為本發(fā)明的另一種限定,所述的步驟3)的具體方法為:
(a)設(shè)圖像f(x,y)的灰度最小值為min,灰度最大值為max,則圖像灰度均值為:
;
(b)根據(jù)灰度均值計(jì)算最小值E:
設(shè)定e1=0.05,e2=0.95, E= min(E1,E2),eps為一個(gè)趨近于0的常數(shù);
其中,;
(c)將得到的E帶入方程中計(jì)算,得到對(duì)比度增強(qiáng)后的圖像,設(shè)函數(shù)輸入圖像d=f(x,y),則計(jì)算方程為:。
作為上述限定的進(jìn)一步限定,所述的步驟b)中eps為10-26~10-28。
作為本發(fā)明的第三種限定,所述的步驟4)的具體方法為:設(shè)置結(jié)構(gòu)元素g對(duì)圖像f(x,y)進(jìn)行腐蝕:
(fΘg)(s, t)=min{f(s+x, t+y)- g(s,t)|s+x, t+y∈Df , x+y∈Dg }
其中,g為結(jié)構(gòu)元素,s為豎直方向的尺度,t為結(jié)構(gòu)元素水平方向的尺度,Df為圖像f(x,y)垂直方向的邊界,Dg為圖像f(x,y)水平方向的邊界。
作為本發(fā)明的第四種限定,所述的步驟5)中卷積結(jié)果輸出一個(gè)12×12的矩陣,該矩陣中每個(gè)像素的值表示每一個(gè)塊的高斯加權(quán)均值;
其中高斯算子為: g(x,y)=;
設(shè)卷積后的圖像為G(x,y),則:G(x,y)=g(x,y)*f(x,y);其中,g(x,y)為高斯算子,f(x,y)為圖像,G(x,y)為卷積后的圖像,σ為高斯函數(shù)的標(biāo)準(zhǔn)差,σ=0.5,“*”為卷積運(yùn)算符,高斯算子的尺度為q。
本發(fā)明還有一種限定,所述的步驟6)的具體方法為:
(a)將得到的12×12的矩陣應(yīng)用最大類間方差法計(jì)算形成二值化區(qū)域;
(b)設(shè)區(qū)域內(nèi)像素的取值范圍為min~max,該區(qū)域內(nèi)像素總數(shù)目為N,設(shè)該區(qū)域二值化的最佳閾值為T,其中T∈min~max,閾值為Ti時(shí):
i)若該區(qū)域灰度值大于Ti的像素?cái)?shù)目為sum1,像素值的和為max1,則其灰度均值為:;其權(quán)值為: ;
ii)該區(qū)域灰度值小于Ti的像素?cái)?shù)目為sum2,像素值的和為max2,則其灰度均值為:;其權(quán)值為:;
iii)得到該區(qū)域的整體灰度均值為:;
從而得到兩部分方差和為:;
遍歷所有的Ti,將得到最大方差值的閾值作為將該區(qū)域二值化的閾值。
由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,所取得的技術(shù)進(jìn)步在于:
本發(fā)明采用針對(duì)光照變化不敏感的二維碼,采用灰度拉伸的方法代替了現(xiàn)有技術(shù)中的平滑方法,使得識(shí)別度增加。
本發(fā)明適用于3D打印樹脂材料二維碼的識(shí)別。
本發(fā)明下面將結(jié)合說明書附圖與具體實(shí)施例作進(jìn)一步詳細(xì)說明。
附圖說明
圖1為本發(fā)明實(shí)施例1步驟1)的示意圖;
圖2為本發(fā)明實(shí)施例1步驟2)的示意圖;
圖3為本發(fā)明實(shí)施例1步驟3)的示意圖;
圖4為本發(fā)明實(shí)施例1步驟4)的示意圖;
圖5為本發(fā)明實(shí)施例1步驟5)的示意圖;
圖6為本發(fā)明實(shí)施例1步驟6)的示意圖。
具體實(shí)施方式
實(shí)施例1 一種二維碼圖像處理方法
一種二維碼圖像處理方法,按照以下步驟順序進(jìn)行:
1)獲取定位區(qū)域,如圖1所示;
2)調(diào)獲得定位區(qū)域后,根據(jù)datamatrix二維碼的碼制標(biāo)準(zhǔn),采用雙線性插值法調(diào)整圖像尺度為正方形,如圖2所示;
(a)設(shè)新圖像像素位置為(m,n),放大倍數(shù)分別為k,p, 則調(diào)整后像素位置在原圖像的對(duì)應(yīng)位置為:;
(b)設(shè)原圖像四個(gè)點(diǎn),f(i,j),f(i+1,j),f(i,j+1),f(i+1,j+1),計(jì)算四點(diǎn)區(qū)域的插值,得到新圖像對(duì)應(yīng)位置處的像素值f(x,y):
其中,,b,且:
a=x-i;b=y-j;
(c)通過調(diào)整參數(shù)k和p,將圖像變成p*q寬度的正方形;其中,p為二維碼的碼字個(gè)數(shù),q為將p擴(kuò)展的尺度。
3)用非線性灰度拉伸算法來提高圖像的對(duì)比度,如圖3所示,其方法為:
(a)設(shè)圖像f(x,y)的灰度最小值為min,灰度最大值為max,則圖像灰度均值為:
;
(b)根據(jù)灰度均值計(jì)算最小值E:
設(shè)定e1=0.05,e2=0.95, E= min(E1,E2),eps為一個(gè)趨近于0的常數(shù),eps為10-26~10-28。;
其中,;
(c)將得到的E帶入方程中計(jì)算,得到對(duì)比度增強(qiáng)后的圖像,設(shè)函數(shù)輸入圖像d=f(x,y),則計(jì)算方程為:。
4)對(duì)步驟3)得到的結(jié)果進(jìn)行腐蝕,以消除由光源偏差造成的陰影,如圖4所示,具體方法為:設(shè)置結(jié)構(gòu)元素g對(duì)圖像f(x,y)進(jìn)行腐蝕:
(fΘg)(s, t)=min{f(s+x, t+y)- g(s,t)|s+x, t+y∈Df , x+y∈Dg }
其中,g為結(jié)構(gòu)元素,s豎直方向的尺度,t為結(jié)構(gòu)元素水平方向的尺度,Df為圖像f(x,y)垂直方向的邊界,Dg為圖像f(x,y)水平方向的邊界。
5)用二維高斯卷積算子對(duì)圖像f(x,y)按塊大小為q*q進(jìn)行卷積,如圖5所示,卷積結(jié)果輸出一個(gè)12×12的矩陣,該矩陣中每個(gè)像素的值表示每一個(gè)塊的高斯加權(quán)均值;其中高斯算子為: g(x,y)=;
設(shè)卷積后的圖像為G(x,y),則:G(x,y)=g(x,y)*f(x,y);其中,g(x,y)為高斯算子,f(x,y)為圖像,G(x,y)為卷積后的圖像,σ為高斯函數(shù)的標(biāo)準(zhǔn)差,σ=0.5,“*”為卷積運(yùn)算符,高斯算子的尺度為q。
6)對(duì)卷積后的圖像G(x,y)進(jìn)行自適應(yīng)閾值的二值化運(yùn)算,從而得到處理好的datamatrix二維碼,如圖6所示,具體方法為:
(a)將得到的12×12的矩陣應(yīng)用最大類間方差法計(jì)算形成二值化區(qū)域;
(b)設(shè)區(qū)域內(nèi)像素的取值范圍為min~max,該區(qū)域內(nèi)像素總數(shù)目為N,設(shè)該區(qū)域二值化的最佳閾值為T,其中T∈min~max,閾值為Ti時(shí):
i)若該區(qū)域灰度值大于Ti的像素?cái)?shù)目為sum1,像素值的和為max1,則其灰度均值為:;其權(quán)值為: ;
ii)該區(qū)域灰度值小于Ti的像素?cái)?shù)目為sum2,像素值的和為max1,則其灰度均值為:;其權(quán)值為:;
iii)得到該區(qū)域的整體灰度均值為:;
從而得到兩部分方差和為:;
遍歷所有的Ti,將得到最大方差值的閾值作為將該區(qū)域二值化的閾值。
7)將得到的標(biāo)準(zhǔn)的datamatrix二維碼輸入進(jìn)解碼器中進(jìn)行解碼。
以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非是對(duì)本發(fā)明作其它形式的限定,任何熟悉本專業(yè)的技術(shù)人員可能利用上述技術(shù)內(nèi)容作為啟示加以變更或改型為等同變化的等效實(shí)施例。但是,凡是未脫離本發(fā)明技術(shù)構(gòu)思,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作出的簡(jiǎn)單修改,等同變化與改型,仍屬于本發(fā)明權(quán)利要求的保護(hù)范圍。