本發(fā)明涉及條碼識別技術(shù)領(lǐng)域,尤其涉及一種復(fù)雜環(huán)境下的條碼定位方法。
背景技術(shù):
近些年來,快遞行業(yè)在新的電商經(jīng)濟環(huán)境下得到了迅速的發(fā)展,自動分揀技術(shù)也隨之發(fā)展。自動分揀技術(shù)最重要的是依靠相機采集快遞單圖像,然后基于圖像處理技術(shù)識別快遞單信息,進而對包裹進行自動分揀。條碼定位是自動分揀中一個很重要的步驟,但是在圖像采集過程中由于光學(xué)成像的非線性畸變、相機與履帶之間相互運動等問題,會導(dǎo)致圖像質(zhì)量的不同程度的退化,極大地影響了條碼定位及后續(xù)其他圖像處理。因而現(xiàn)在條碼定位的最重要的困難在于如何在復(fù)雜環(huán)境中準(zhǔn)確定位到條碼。
要在復(fù)雜環(huán)境中高效準(zhǔn)確的定位到條碼,需要設(shè)計一套穩(wěn)定高效的定位算法,對于復(fù)雜環(huán)境的處理,除了要解決圖像質(zhì)量下降的問題,還要能夠排除圖片中復(fù)雜背景的干擾,實際快遞單中,復(fù)雜背景雜而多,有圖片、文字、表格、標(biāo)志等。
而現(xiàn)有技術(shù)中的一些基于空域處理的條碼定位算法多由于算法的條件較多,且條碼容易受光照、模糊等干擾的影響,實際效果不太理想;還有一些基于頻域處理的算法則由于頻域計算量太大,不能達到實時性的要求;另外一些基于神經(jīng)網(wǎng)絡(luò)的定位算法由于只考慮了紋理特征,最終結(jié)果容易受到類條碼干擾區(qū)域的影響,也不能達到很好的定位效果。
因此,如何減少條碼定位過程中圖像處理的計算量以及定位的準(zhǔn)確性成為本領(lǐng)域亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一,提供一種復(fù)雜環(huán)境下的條碼定位方法,該方法能夠減少條碼定位過程中的圖形處理的計算量,且能夠提高條碼定位的準(zhǔn)確性。
為了實現(xiàn)上述目的,作為本發(fā)明的一個方面,提供一種復(fù)雜環(huán)境下的條碼定位方法,其中,所述條碼定位方法包括:
采集原始條碼圖像,并對所述原始條碼圖像進行預(yù)處理得到增強條碼圖像;
對所述增強條碼圖像進行邊緣統(tǒng)計得到多個合理條碼圖像區(qū)域;
對多個所述合理條碼圖像區(qū)域進行區(qū)域整合得到目標(biāo)條碼圖像;
其中,所述對多個所述合理條碼圖像區(qū)域進行區(qū)域整合得到目標(biāo)條碼圖像的步驟包括:
將多個所述合理條碼圖像區(qū)域根據(jù)主梯度方向進行分類,得到具有相同主梯度方向的所述合理條碼圖像區(qū)域;
將具有相同主梯度方向的所述合理條碼區(qū)域進行連通域檢測得到多個有效連通域矩形;
判斷至少兩個所述有效連通域矩形之間的高度差是否在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形的中心連線的角度與所述主梯度方向是否在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形之間的距離是否小于所述目標(biāo)條碼圖像;
當(dāng)該兩個所述有效連通域矩形之間的高度差在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形的中心連線的角度與所述主梯度方向在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形之間的距離小于所述目標(biāo)條碼圖像時,判定該兩個所述有效連通域矩形能夠進行合并,并將兩個所述有效連通域進行合并得到合并連通域;
將多個所述合并連通域進行整合得到所述目標(biāo)條碼圖像。
優(yōu)選地,所述將具有相同主梯度方向的所述合理條碼區(qū)域進行連通域檢測得到多個有效連通域矩形的步驟包括:
將具有相同主梯度方向的所述合理條碼區(qū)域通過矩形進行框定得到多個連通域矩形;
判斷所述連通域矩形的寬長比是否小于或者等于1/8,且所述連通域矩形中所述合理條碼區(qū)域的有效面積占比是否大于或者等于1/3;
當(dāng)所述連通域矩形的寬長比小于或者等于1/8,且所述連通域矩形中所述合理條碼區(qū)域的有效面積占比大于或者等于1/3時,判定所述連通域矩形為所述有效連通域矩形。
優(yōu)選地,所述對所述增強條碼圖像進行邊緣統(tǒng)計得到多個合理條碼圖像區(qū)域的步驟包括:
確定所述增強條碼圖像的邊緣點;
將所述增強條碼圖像劃分為多個區(qū)域,統(tǒng)計每個區(qū)域內(nèi)的所述邊緣點的梯度方向;
判斷每個區(qū)域內(nèi)的所述邊緣點的數(shù)量是否大于第一閾值,若每個區(qū)域內(nèi)的所述邊緣點的數(shù)量不大于所述第一閾值,則去除掉該區(qū)域;
若每個區(qū)域內(nèi)的所述邊緣點的數(shù)量大于所述第一閾值,則判斷每個區(qū)域內(nèi)的所述邊緣點的梯度方向與所述主梯度方向的偏差是否在誤差允許范圍內(nèi);
若每個區(qū)域內(nèi)的所述邊緣點的梯度方向與所述主梯度方向的偏差在所述誤差允許范圍內(nèi),則該區(qū)域為所述合理條碼圖像區(qū)域,否則去除掉該區(qū)域;
其中,所述第一閾值a與該區(qū)域的邊長d的關(guān)系為:1/2d≤a≤2d。
優(yōu)選地,所述確定所述增強條碼圖像的邊緣點的步驟包括:
統(tǒng)計所述增強條碼圖像中每個像素點的四個方向的sobel統(tǒng)計值,其中,所述sobel算子公式為:
將得到的所述像素點的四個方向的sobel統(tǒng)計值中的最大值作為該像素點的梯度值;
判斷所述像素點的梯度值是否大于第二閾值,
當(dāng)所述像素點的梯度值大于所述第二閾值時,判定該像素點為所述邊緣點;
其中,所述第二閾值為所述增強條碼圖像的所有像素點的梯度值進行otsu算法得到。
優(yōu)選地,所述統(tǒng)計每個區(qū)域內(nèi)的所述邊緣點的梯度方向的步驟前還包括:
確定所述邊緣點的梯度角度,包括:
當(dāng)每個所述邊緣點的兩個梯度角度不相鄰且差值大于45°時,所述邊緣點的梯度值大的所對應(yīng)的角度作為該邊緣點的梯度角度;
當(dāng)每個所述邊緣點的兩個梯度角度相鄰,若該邊緣點的兩個梯度值中的一個梯度值不大于另一個梯度值的兩倍時,則該邊緣點的兩個梯度角度的中間值作為該邊緣點的梯度角度;若該邊緣點的兩個梯度值中的一個梯度值大于另一個梯度值的兩倍時,則所述梯度值大的所對應(yīng)得角度作為該邊緣點的梯度角度。
優(yōu)選地,所述對所述原始條碼圖像進行預(yù)處理包括:
對所述原始條碼圖像灰度化得到灰度圖像;
將所述灰度圖像通過高斯濾波得到濾波圖像;
將所述濾波圖像通過去模糊得到待增強圖像;
對所述待增強圖像進行增強圖像對比度處理得到所述增強條碼圖像。
優(yōu)選地,所述將所述濾波圖像通過去模糊得到待增強圖像的步驟包括:
獲得點擴散函數(shù);
通過rl算法對點擴散函數(shù)和所述濾波圖像進行非盲卷積運算去模糊得到待增強圖像;
其中,所述radon變換的公式為:
所述rl算法的公式為:
優(yōu)選地,所述獲得點擴散函數(shù)的步驟包括:
對所述濾波圖像進行頻譜變換獲得頻譜圖;
將所述頻譜圖進行中值濾波以及二值化處理;
根據(jù)所述頻譜圖中頻譜條紋獲得與所述頻譜條紋垂直的模糊角度,各級所述頻譜條紋中間條紋寬度的一半獲得模糊長度;
將所述模糊角度和所述模糊長度代入點擴散函數(shù)公式得到所述點擴散函數(shù);
其中,所述頻域變換公式為:
所述點擴散函數(shù)公式為:
其中,l為模糊長度,θ為模糊角度。
優(yōu)選地,所述獲得點擴散函數(shù)的步驟還包括在所述步驟通過點擴散函數(shù)公式得到所述點擴散函數(shù)前進行的:
通過radon變換進行投影計算獲得所述頻譜條紋的角度并得到radon變換統(tǒng)計圖;
根據(jù)所述radon變換統(tǒng)計圖統(tǒng)計0°至180°中的每個角度對應(yīng)的radon變換最大值;
所述radon統(tǒng)計圖中所述radon變換的最大值對應(yīng)的角度作為所述模糊角度,所述radon統(tǒng)計圖中兩個極小值坐標(biāo)差的一半作為模糊長度;
所述頻譜圖上兩個極小值坐標(biāo)差的一半作為模糊長度;
其中,所述radon變換的公式為:
優(yōu)選地,對所述待增強圖像進行增強圖像對比度處理得到所述增強條碼圖像,其中所述圖像增強公式為:
其中,f(x,y)為待增強圖像的像素值,f′(x,y)為增強條碼圖像的像素值,l=25,h=225。
本發(fā)明提供的復(fù)雜環(huán)境下的條碼定位方法,通過對原始條碼圖像預(yù)處理,并對預(yù)處理后的圖像進行增強圖像處理后復(fù)原條碼圖形,最后對復(fù)原的圖像基于梯度特征進行處理得到目標(biāo)條碼圖形,即處理后的條碼圖像,也即最終定位得到的條碼。本發(fā)明提供的復(fù)雜環(huán)境下的條碼定位方法一方面由于在獲得合理條碼圖像區(qū)域時采用邊緣統(tǒng)計的方式能夠減少圖像處理的計算量,快速去掉圖像中的大部分干擾區(qū)域,滿足實時性的需求,并快速完成條碼定位;另一方面,由于采用基于梯度特征的方式獲得目標(biāo)條碼圖像,能夠有效提高條碼定位以及識別的準(zhǔn)確率,且其中采用的算法具有很好的魯棒性。
附圖說明
附圖是用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與下面的具體實施方式一起用于解釋本發(fā)明,但并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明提供的復(fù)雜環(huán)境下的條碼定位方法流程圖;
圖2為本發(fā)明提供的獲得有效連通域矩形的方法流程圖;
圖3為本發(fā)明提供的獲得合理條碼圖像區(qū)域的方法流程圖;
圖4為本發(fā)明提供的確定增強條碼圖像的邊緣點的方法流程圖;
圖5為本發(fā)明提供的原始條碼圖像預(yù)處理的方法流程圖;
圖6為本發(fā)明提供的圖像去模糊的方法流程圖;
圖7為本發(fā)明提供的獲得點擴散函數(shù)的第一種實施方式的方法流程圖;
圖8為本發(fā)明提供的獲得點擴散函數(shù)的第二種實施方式的方法流程圖;
圖9為本發(fā)明提供的具體實施方式的條碼定位流程框圖;
圖10為本發(fā)明提供的模糊圖及頻譜圖,其中,a為模糊圖像,b為頻譜圖,c為頻譜圖二值化;
圖11為本發(fā)明提供的radon變換最大值統(tǒng)計圖;
圖12為圖11中最大值對應(yīng)的角度的radon變換統(tǒng)計圖;
圖13為本發(fā)明提供的三種情況下的邊緣點統(tǒng)計圖,其中,a為條碼區(qū)域統(tǒng)計圖,b為條碼區(qū)域,c為簡單背景統(tǒng)計圖,d為簡單背景,e為復(fù)雜背景統(tǒng)計圖,f為文字或復(fù)雜背景;
圖14為本發(fā)明提供的小區(qū)域過濾流程框圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的具體實施方式進行詳細說明。應(yīng)當(dāng)理解的是,此處所描述的具體實施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
作為本發(fā)明的一個方面,如圖1所示,提供一種復(fù)雜環(huán)境下的條碼定位方法,其在,所述條碼定位方法包括:
s110、采集原始條碼圖像,并對所述原始條碼圖像進行預(yù)處理得到增強條碼圖像;
具體地,對原始條碼圖像進行預(yù)處理,可以理解的是,此處的原始條碼圖像可以是待處理的快遞單條碼。
s120、對所述增強條碼圖像進行邊緣統(tǒng)計得到多個合理條碼圖像區(qū)域;
具體地,上述得到的增強條碼圖像通過邊緣統(tǒng)計能夠獲得多個合理條碼圖像區(qū)域,可以理解的是,在所述增強條碼圖像處理的基礎(chǔ)上,對所述增強條碼圖像處理后去掉一些不合理的區(qū)域,最終獲得多個合理條碼區(qū)域,例如,增強處理的快遞單條碼經(jīng)過邊緣統(tǒng)計可以獲得多個合理條碼圖像區(qū)域。
s130、對多個所述合理條碼圖像區(qū)域進行區(qū)域整合得到目標(biāo)條碼圖像;
具體地,對多個所述合理條碼圖像區(qū)域進行區(qū)域整合后獲得的圖像即為目標(biāo)條碼圖像,例如,原始條碼圖像為具有復(fù)雜背景的快遞單條碼,經(jīng)過處理后最終獲得的目標(biāo)條碼圖像即為去掉復(fù)雜背景的快遞單條碼。
其中,步驟s130具體可以包括:
s131、將多個所述合理條碼圖像區(qū)域根據(jù)主梯度方向進行分類,得到具有相同主梯度方向的所述合理條碼圖像區(qū)域;
具體地,將獲得的多個所述合理條碼圖像區(qū)域根據(jù)主梯度方向進行分類,并對分類后的合理條碼區(qū)域進行標(biāo)記,此處可以理解的是,此處所述根據(jù)主梯度方向進行分類是將主梯度方向相同的合理條碼圖像區(qū)域作為一類,因此分類后得到了具有相同主梯度方向的所述合理條碼圖像區(qū)域。
s132、將具有相同主梯度方向的所述合理條碼區(qū)域進行連通域檢測得到多個有效連通域矩形;
具體地,在上述分類完成后得到的所述合理條碼區(qū)域均具有相同的主梯度方向,對這些合理條碼區(qū)域進行連通域檢測后得到多個有效連通域矩形。
s133、判斷至少兩個所述有效連通域矩形之間的高度差是否在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形的中心連線的角度與所述主梯度方向是否在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形之間的距離是否小于所述目標(biāo)條碼圖像;
s134、當(dāng)該兩個所述有效連通域矩形之間的高度差在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形的中心連線的角度與所述主梯度方向在誤差允許范圍內(nèi),且該兩個所述有效連通域矩形之間的距離小于所述目標(biāo)條碼圖像時,判定該兩個所述有效連通域矩形能夠進行合并,并將兩個所述有效連通域進行合并得到合并連通域;
具體地,通過判斷至少兩個有效連通域矩形之間的高度是否近似相等,兩個有效連通域矩形之間的中心連線的角度與主梯度方向是否近似相同以及這兩個有效連通域矩形之間的距離是否小于所述目標(biāo)條碼圖像,來判定兩個有效連通域矩形是否能夠進行合并。
當(dāng)上述判定結(jié)果為可以進行合并時,則將兩個有效連通域矩形進行合并得到合并連通域。
s135、將多個所述合并連通域進行整合得到所述目標(biāo)條碼圖像。
本發(fā)明提供的復(fù)雜環(huán)境下的條碼定位方法,通過對原始條碼圖像預(yù)處理,并對預(yù)處理后的圖像進行增強圖像處理后復(fù)原條碼圖形,最后對復(fù)原的圖像基于梯度特征進行處理得到目標(biāo)條碼圖形,即處理后的條碼圖像,也即最終定位得到的條碼。本發(fā)明提供的復(fù)雜環(huán)境下的條碼定位方法一方面由于在獲得合理條碼圖像區(qū)域時采用邊緣統(tǒng)計的方式能夠減少圖像處理的計算量,快速去掉圖像中的大部分干擾區(qū)域,滿足實時性的需求,并快速完成條碼定位;另一方面,由于采用基于梯度特征的方式獲得目標(biāo)條碼圖像,能夠有效提高條碼定位以及識別的準(zhǔn)確率,且其中采用的算法具有很好的魯棒性。
為了獲得有效連通域矩形,具體地,如圖2所示,所述將具有相同主梯度方向的所述合理條碼區(qū)域進行連通域檢測得到多個有效連通域矩形的步驟可以包括:
s210、將具有相同主梯度方向的所述合理條碼區(qū)域通過矩形進行框定得到多個連通域矩形;
具體地,對每個所述合理條碼區(qū)域進行連通域檢測時通過采用最小矩形對所述合理條碼區(qū)域進行框定,此處應(yīng)當(dāng)理解的是,為了獲得更加精確地檢測結(jié)果,采用最小矩形對所述合理條碼區(qū)域進行框定。需要說明的是,所述最小矩形是指能夠?qū)⑺龊侠項l碼區(qū)域全部包含進去的最小面積矩形。
s220、判斷所述連通域矩形的寬長比是否小于或者等于1/8,且所述連通域矩形中所述合理條碼區(qū)域的有效面積占比是否大于或者等于1/3;
s230、當(dāng)所述連通域矩形的寬長比小于或者等于1/8,且所述連通域矩形中所述合理條碼區(qū)域的有效面積占比大于或者等于1/3時,判定所述連通域矩形為所述有效連通域矩形。
具體地,通過對框定后得到的所述連通域矩形的形狀特征進行篩選,去除掉不符合篩選條件的連通域矩形,獲得最終的有效連通域矩形。
為了獲得合理條碼圖像區(qū)域,具體地,如圖3所示,所述對所述增強條碼圖像進行邊緣統(tǒng)計得到多個合理條碼圖像區(qū)域的步驟包括:
s310、確定所述增強條碼圖像的邊緣點;
具體地,為了能夠得到合理條碼圖像區(qū)域,首先需要確定所述增強條碼圖像的邊緣點。
s320、將所述增強條碼圖像劃分為多個區(qū)域,統(tǒng)計每個區(qū)域內(nèi)的所述邊緣點的梯度方向;
具體地,在確定了所述邊緣點后,可以將所述增強條碼圖像劃分為多個大小相同的區(qū)域,每個區(qū)域可以視為圖像大小為8*12大小的方針,然后統(tǒng)計每個方針里的邊緣點的梯度方向情況。
需要說明的是,前文所述的主梯度方向定義為區(qū)域內(nèi)的邊緣點數(shù)量最多的梯度方向。
s330、判斷每個區(qū)域內(nèi)的所述邊緣點的數(shù)量是否大于第一閾值,若每個區(qū)域內(nèi)的所述邊緣點的數(shù)量不大于所述第一閾值,則去除掉該區(qū)域;
s340、若每個區(qū)域內(nèi)的所述邊緣點的數(shù)量大于所述第一閾值,則判斷每個區(qū)域內(nèi)的所述邊緣點的梯度方向與所述主梯度方向的偏差是否在誤差允許范圍內(nèi);
s350、若每個區(qū)域內(nèi)的所述邊緣點的梯度方向與所述主梯度方向的偏差在所述誤差允許范圍內(nèi),則判定該區(qū)域為所述合理條碼圖像區(qū)域,否則去除掉該區(qū)域;
其中,所述第一閾值a與該區(qū)域的邊長d的關(guān)系為:1/2d≤a≤2d。
需要說明的是,首先通過每個區(qū)域內(nèi)的邊緣點的數(shù)量與第一閾值的比較進行第一次的區(qū)域篩選,只有每個區(qū)域內(nèi)的所述邊緣點的數(shù)量大于所述第一閾值,才能夠繼續(xù)判斷每個區(qū)域內(nèi)的所述邊緣點的梯度方向與所述主梯度方向的偏差是否在誤差允許范圍內(nèi),即進行第二次的區(qū)域篩選,當(dāng)每個區(qū)域內(nèi)的所述邊緣點的梯度方向與所述主梯度方向的偏差在所述誤差允許范圍內(nèi)時,該區(qū)域才為所述合理條碼圖像區(qū)域。
上述這種兩級區(qū)域統(tǒng)計的方式,減少了圖像處理的計算量,快速去除掉圖像中的大部分干擾區(qū)域,能夠滿足實時性的需求,快速完成條碼定位。
為了獲得所述增強條碼圖像的邊緣點,具體地,如圖4所示,所述確定所述增強條碼圖像的邊緣點的步驟包括:
s410、統(tǒng)計所述增強條碼圖像中每個像素點的四個方向的sobel統(tǒng)計值,其中,所述sobel算子公式為:
s420、將得到的所述像素點的四個方向的sobel統(tǒng)計值中的最大值作為該像素點的梯度值;
s430、判斷所述像素點的梯度值是否大于第二閾值;
s440、當(dāng)所述像素點的梯度值大于所述第二閾值時,判定該像素點為所述邊緣點;
其中,所述第二閾值為所述增強條碼圖像的所有像素點的梯度值進行otsu算法得到。
在統(tǒng)計所述邊緣點的梯度前需要確定邊緣點的梯度角度,具體地,所述統(tǒng)計每個區(qū)域內(nèi)的所述邊緣點的梯度方向的步驟前還包括:
確定所述邊緣點的梯度角度,包括:
當(dāng)每個所述邊緣點的兩個梯度角度不相鄰且差值大于45°時,所述邊緣點的梯度值大的所對應(yīng)的角度作為該邊緣點的梯度角度;
當(dāng)每個所述邊緣點的兩個梯度角度相鄰,若該邊緣點的兩個梯度值中的一個梯度值不大于另一個梯度值的兩倍時,則該邊緣點的兩個梯度角度的中間值作為該邊緣點的梯度角度;若該邊緣點的兩個梯度值中的一個梯度值大于另一個梯度值的兩倍時,則所述梯度值大的所對應(yīng)得角度作為該邊緣點的梯度角度。
通常,采集到所述原始條碼圖像后先經(jīng)過預(yù)處理,具體地,如圖5所示,所述對所述原始條碼圖像進行預(yù)處理包括:
s510、對所述原始條碼圖像灰度化得到灰度圖像;
s520、將所述灰度圖像通過高斯濾波得到濾波圖像;
s530、將所述濾波圖像通過去模糊得到待增強圖像;
s540、對所述待增強圖像進行增強圖像對比度處理得到所述增強條碼圖像。
進一步具體地,如圖6所示,所述將所述濾波圖像通過去模糊得到待增強圖像的步驟包括:
s610、獲得點擴散函數(shù);
s620、通過rl算法對點擴散函數(shù)和所述濾波圖像進行非盲卷積運算去模糊得到待增強圖像;
其中,所述radon變換的公式為:
所述rl算法的公式為:
進一步具體地,如圖7所示,所述獲得點擴散函數(shù)的步驟包括:
s710、對所述濾波圖像進行頻譜變換獲得頻譜圖;
s720、將所述頻譜圖進行中值濾波以及二值化處理;
s730、根據(jù)所述頻譜圖中頻譜條紋獲得與所述頻譜條紋垂直的模糊角度,各級所述頻譜條紋中間條紋寬度的一半獲得模糊長度;
s740、將所述模糊角度和所述模糊長度代入點擴散函數(shù)公式得到所述點擴散函數(shù);
其中,所述頻域變換公式為:
所述點擴散函數(shù)公式為:
其中,l為模糊長度,θ為模糊角度。
為了能夠更加準(zhǔn)確地計算模糊角度,具體地,如圖8所示,所述獲得點擴散函數(shù)的步驟還包括在所述步驟通過點擴散函數(shù)公式得到所述點擴散函數(shù)前進行的:
s810、通過radon變換進行投影計算獲得所述頻譜條紋的角度并得到radon變換統(tǒng)計圖;
s820、根據(jù)所述radon變換統(tǒng)計圖統(tǒng)計0°至180°中的每個角度對應(yīng)的radon變換最大值;
s830、所述radon統(tǒng)計圖中所述radon變換的最大值對應(yīng)的角度作為所述模糊角度,所述radon統(tǒng)計圖中兩個極小值坐標(biāo)差的一半作為模糊長度;
s840、所述頻譜圖上兩個極小值坐標(biāo)差的一半作為模糊長度;
其中,所述radon變換的公式為:
對所述待增強圖像進行增強圖像對比度處理得到所述增強條碼圖像,其中所述圖像增強公式為:
其中,f(x,y)為待增強圖像的像素值,f′(x,y)為增強條碼圖像的像素值,l=25,h=225。
下面以快遞單條碼為例,對復(fù)雜環(huán)境下的條碼定位方法進行詳細說明。
考慮到圖像運動模糊是由于分揀履帶與相機做相對直線運動造成的,可以用勻速直線運動模型來估算運動模糊的點擴散函數(shù)。利用模糊角度、模糊長度與頻譜條紋的關(guān)系,通過頻譜統(tǒng)計得到模糊長度與模糊角度,最后用rl算法對模糊圖像進行復(fù)原。然后對復(fù)原后的圖像進行基于梯度特征的多尺度區(qū)域條碼定位算法,首先將3×3小區(qū)域進行sobel算子運算計算出中心點梯度特征,然后將此小區(qū)域基礎(chǔ)上統(tǒng)計二級區(qū)域梯度特征,然后根據(jù)小區(qū)域梯度特征對區(qū)域進行篩選,連通域整合,最后定位到條碼區(qū)域。
具體地,如圖9所示,在圖像輸入后,對輸入的所述原始條碼圖像進行預(yù)處理,在所述預(yù)處理過程中,需要對所述原始條碼圖像進行去模糊。所述去模糊的過程如下:
由于點擴散函數(shù)估計即估計出圖像運動模糊的模糊函數(shù),自動分揀圖像模糊類型實際上可以看成勻速直線運動模糊,由于勻速直線運動點擴散函數(shù)公式如前文所示。
而模糊長度跟模糊角度與它的頻譜圖有關(guān),對上述公式進行頻域變換,則其頻域變換公式如前文所示。
由上述頻域變換公式可以得到模糊角度與頻譜條紋垂直,模糊長度等于中間條紋寬度一半。對所述原始條碼圖像進行頻譜變換,得到頻譜圖,對頻譜圖進行中值濾波去噪處理,然后對頻譜圖進行二值化,并將四個方向的干擾去掉,效果如圖10所示。其中,將模糊圖進行傅里葉變換得到他的頻譜圖,為了凸顯出來條紋特征,將圖像進行二值化。
為了更準(zhǔn)確計算他的模糊角度,使用radon變換來進行投影計算出頻譜條紋的角度。所述radon變換的公式如前文所示。
然后使用matlab對圖像進行處理,統(tǒng)計出每個角度對應(yīng)的radon變換最大值,效果如圖11所示。統(tǒng)計0到180度,每個角度對應(yīng)的radon變換最大值。圖中70度時候radon變換最大值最大。
從圖可以看到radon的最大值對應(yīng)的角度,即是模糊角度。統(tǒng)計角度是模糊角度的radon變換統(tǒng)計圖,效果如圖12所示,為圖11最大值對應(yīng)角度即70度的radon變換統(tǒng)計圖。模糊長度就是圖12中兩個極小值坐標(biāo)差一半。
在得到模糊角度與模糊長度后,即得到點擴散函數(shù),使用rl算法對圖像進行非盲卷積運算。所述rl算法的公式如前文所示。
在對所述原始條碼圖像去模糊后,為了讓條碼區(qū)域特征更加明顯,對圖像進行圖像增強,提高圖像對比度。當(dāng)原圖像素值小于低閾值的時候,新的像素值等于0,當(dāng)原圖像素值大于高閾值的時候,新像素值變?yōu)?55。需要說明的是,此處所述低閾值通常取25,所述高閾值通常取225。對于其他的像素值像素進行拉伸變換,相應(yīng)轉(zhuǎn)換為其他數(shù)值。所述圖像增強公式如前文所示。
為了檢測出所述原始條碼圖像的邊緣點,采用sobel算子求取梯度特征的方式來確定邊緣點。為了統(tǒng)計更加準(zhǔn)確,將sobel算子改為4方向統(tǒng)計。所述sobel算子公式如前文所示。
分別統(tǒng)計像素點4個方向的sobel統(tǒng)計值,將最大值作為該點梯度值。將統(tǒng)計得到的像素點的梯度值與第二閾值進行比較,當(dāng)該像素點的梯度值大于第二閾值時,該像素點為邊緣點,其中第二閾值為所述增強條碼圖像中的所有像素點的梯度值進行otsu算法得到的值。
對像素點的梯度方向判斷如前文所述,此處不再贅述。
將確定邊緣點后的圖像分為大小相同的n個小區(qū)域,每一個小區(qū)域可以視圖像大小選擇8*12大小的方陣。統(tǒng)計每個方針里面邊緣點的梯度方向情況,對符合要求的方針保留下來,對不符合要求的方針剔除。各種情況統(tǒng)計圖如圖13所示,圖13中展示了三種情況統(tǒng)計圖,分別是:條碼區(qū)域、簡單背景區(qū)域、復(fù)雜背景區(qū)域。簡單背景區(qū)域內(nèi)的邊緣點數(shù)量很少,而且也沒有什么規(guī)律;文字復(fù)雜背景區(qū)域內(nèi)的邊緣點雖然很多,但是像文字、復(fù)雜背景等區(qū)域的邊緣點的梯度方向是雜亂,無規(guī)律的;而條碼區(qū)域內(nèi)的邊緣點表現(xiàn)出了很好的方向一致性,絕大部分邊緣點的梯度方向維持一致,只有個別干擾點呈現(xiàn)其他方向??梢愿鶕?jù)這一特征采取判別方法,對不合理區(qū)域進行剔除,對合理區(qū)域進行標(biāo)記。
最后對小區(qū)域進行過濾,剔除掉區(qū)域內(nèi)邊緣點過少以及主梯度方向邊緣點較少,即方向一致性較差的小區(qū)域,保留合理小區(qū)域,算法流程如圖14?;趫D14流程圖的算法,可以剔除掉區(qū)域內(nèi)邊緣點過少以及主梯度方向邊緣點較少,即方向一致性較差的小區(qū)域。其中主梯度方向的定義為,小區(qū)域內(nèi)邊緣點數(shù)量最多的梯度方向。對于圖14中的閾值t1,t2的選擇根據(jù)經(jīng)驗值選取,其中t1一般選取小區(qū)域邊長的一半到一倍之間,而t2一般選取0.5~0.8,這個比例越大說明區(qū)域內(nèi)的方向一致性越高,越可能是條碼區(qū)域??爝f單上經(jīng)常會有一些橫豎直線,會造成個別小區(qū)域也符合前兩個條件,但是其周圍并沒有相同主梯度方向的合理區(qū)域,所以對于這些干擾區(qū)域,也將它們進行拋棄。
接下來結(jié)合聚類方法以及連通域方法,進行區(qū)域整合定位。具體地,將每個小區(qū)域根據(jù)其主梯度方向進行分類,由于前面我們能夠統(tǒng)計8個方向的梯度方向,因此這里能將小區(qū)域分為8類,并將這些小區(qū)域進行標(biāo)記。對具有相同主梯度方向的小區(qū)域分別進行連通域檢測,并用最小矩形對連通域進行框定?;谇懊娴倪B通域矩形,對檢測出來的連通域矩形進行篩選,即前文所述的根據(jù)連通域矩形的形狀特征進行篩選,此處不再贅述。最后將篩選得到的連通域(即前文所述的有效連通域矩形)進行合并,準(zhǔn)確定位到條碼區(qū)域,對于合并進行條件限制:待合并的有效連通域矩形高度必須近似相等,且兩個要合并的有效連通域矩形中心連線的角度應(yīng)該近似與主梯度方向相同,且合并后的寬長比要適中,且連通域合并的距離要合理,最后進行整合操作,能夠準(zhǔn)確定位得到條碼區(qū)域。
本發(fā)明提供的復(fù)雜環(huán)境下的條碼定位方法,通過對原始條碼圖像濾波處理,去模糊處理以及圖像增強,圖像的條碼特征明顯,通過sobel算子求出像素點梯度值,并根據(jù)梯度方向?qū)Ⅻc分為8類,然后通過小區(qū)域邊緣點特征統(tǒng)計以及小區(qū)域之間關(guān)聯(lián)進行區(qū)域整合實現(xiàn)條碼定位。本發(fā)明提供的這種條碼定位方法能夠減少圖像處理的計算量,快速去掉圖像中的大部分干擾區(qū)域,滿足實時性的需求,并快速完成條碼定位,還能夠有效提高條碼定位以及識別的準(zhǔn)確率,且其中采用的算法具有很好的魯棒性。
可以理解的是,以上實施方式僅僅是為了說明本發(fā)明的原理而采用的示例性實施方式,然而本發(fā)明并不局限于此。對于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實質(zhì)的情況下,可以做出各種變型和改進,這些變型和改進也視為本發(fā)明的保護范圍。