任克強(qiáng),張 镕
(江西理工大學(xué) 信息工程學(xué)院,江西 贛州341000)
邊緣是模式識(shí)別中的重要的低層次特征信息,它是基于局部特征識(shí)別的重要依據(jù)。邊緣信息對(duì)光照非常敏感,尤其當(dāng)物體表面被陰影遮擋或光照角度變化時(shí),不容易檢測(cè)到完整的邊緣信息,會(huì)造成嚴(yán)重的識(shí)別錯(cuò)誤。因此解決好光照給邊緣檢測(cè)帶來(lái)的問(wèn)題,將會(huì)給社會(huì)生產(chǎn)、交通以及醫(yī)學(xué)影像等領(lǐng)域帶來(lái)重大意義[1-3]。
目前,常用的邊緣檢測(cè)算法有很多,傳統(tǒng)的邊緣檢測(cè)算法包括Roberts算子、Canny算子以及Sobel算子等[4-6]。隨著數(shù)學(xué)理論及技術(shù)的不斷發(fā)展,涌現(xiàn)了許多新的檢測(cè)算法,如基于小波變換、數(shù)學(xué)形態(tài)學(xué)、神經(jīng)網(wǎng)絡(luò)以及自適應(yīng)閾值選取的邊緣檢測(cè)算法等。近年來(lái),研究人員開始對(duì)光照問(wèn)題的數(shù)字圖像處理有了密切的關(guān)注[7-9],為解決光照不均的圖像邊緣檢測(cè)問(wèn)題提供了不少新的思路。文獻(xiàn)[10]針對(duì)文本圖像在二值化時(shí),光照不均導(dǎo)致文本圖像OCR識(shí)別率降低的問(wèn)題,提出采用改進(jìn)Roberts算子和分塊動(dòng)態(tài)雙閾值相結(jié)合來(lái)削弱光照不均的影響;該方法在處理復(fù)雜文本時(shí)效果也很顯著,但是存在復(fù)雜度較高的不足。文獻(xiàn)[11]為了解決光照不均給準(zhǔn)確測(cè)量微米尺度條紋間距帶來(lái)的問(wèn)題,先采用Retinex方法對(duì)原圖像進(jìn)行增強(qiáng),然后使用Ostu最佳閾值對(duì)圖像進(jìn)行二次分割,克服了條紋邊緣存在凹陷的困難,使得光學(xué)顯微線條紋圖像中心線能夠準(zhǔn)確提?。坏摲椒ㄔ谶M(jìn)行閾值分割時(shí)存在較大的噪聲,處理時(shí)間也比較長(zhǎng)。文獻(xiàn)[12]提出一種IKDSIFT(Improve keypoint detection algorithm based-on SIFT)算法,它是針對(duì)非均勻光照下基于對(duì)象識(shí)別的關(guān)鍵點(diǎn)檢測(cè)算法,使用傳統(tǒng)SIFT方法、形態(tài)學(xué)操作以及Top-Hat過(guò)濾等方法實(shí)現(xiàn)預(yù)處理,然后比較數(shù)據(jù)集的關(guān)鍵點(diǎn)速率,檢測(cè)出一些峰值確定最佳閾值;該算法在處理不均勻圖像的檢測(cè)的效果比較顯著,但是過(guò)程太過(guò)繁瑣,效率較低。
針對(duì)上述方法處理劇烈光照變化導(dǎo)致的圖像不均勻光照現(xiàn)象所存在的不足,本文提出一種基于對(duì)數(shù)域梯度與改進(jìn)Sobel算子的邊緣檢測(cè)方法,通過(guò)在對(duì)數(shù)域建立梯度場(chǎng)來(lái)消除光照影響,再結(jié)合改進(jìn)的Sobel算子以及通過(guò)Bernsen算法確定閾值進(jìn)行邊緣檢測(cè),以提升邊緣檢測(cè)的效果。
光照條件的變化會(huì)對(duì)圖像像素灰度分布產(chǎn)生顯著的影響。由于光源發(fā)出光照射到物體,一部分光會(huì)經(jīng)物體表面反射,一部分光會(huì)穿透物體,還有一部分會(huì)被物體吸收形成熱能,因此只有反射光和透射光能刺激人眼產(chǎn)生視覺(jué)效果。圖像亮度一般用圖像輻照度來(lái)描述,輻照度對(duì)應(yīng)物體對(duì)光的表面的反射,所以物體的圖像亮度有兩個(gè)因素影響,一個(gè)是入射光照射,其次是物體表面反射光照射。入射光照射取決于物體相對(duì)于光源分布,而物體表面反射光取決于物體的表面光學(xué)特性。
一幅二維數(shù)字圖像可以用函數(shù)f(x,y)表示,用i(x,y)表示入射光量,用r(x,y)表示反射光量,可以表示為:
f(x,y)=i(x,y)×r(x,y)
0
(1)
由于反射光取決于物體表面的光學(xué)特性,可以認(rèn)定是圖像的光照不變特征。無(wú)論光照條件如何,一般可以認(rèn)為i(x,y)為圖像低頻部分,反射系數(shù)r(x,y)包含物體的各種細(xì)節(jié)可以認(rèn)為圖像高頻部分。如果可將兩者分開,然后削弱低頻部分,增強(qiáng)高頻部分,就能達(dá)到對(duì)光照不均的補(bǔ)償目的。
對(duì)圖像進(jìn)行邊緣檢測(cè),梯度信息受不均勻光照影響較大。為克服光照不均的影響,先將圖像變換到對(duì)數(shù)域(僅對(duì)非零灰度值的像素變換到對(duì)數(shù)域,為零灰度值的像素直接取對(duì)應(yīng)位置梯度取代),再采用梯度計(jì)算。幅度公式和梯度方向公式分別表示為:
(2)
(3)
假設(shè)i(x,y)分量是緩慢變化的,即i(x+1,y)≈i(x,y),i(x,y+1)≈i(x,y)。在此基礎(chǔ)上可以證明對(duì)數(shù)域梯度變換只與反射分量r(x,y)有關(guān),從而完成上述分離兩分量,并削弱低頻成分的目的。證明如下:
(4)
同理可證:
(5)
由式(4)、(5)的證明,可知圖像邊緣的對(duì)數(shù)域梯度的變化,近似反映為反射分量的變化,而與入射分量無(wú)關(guān),所以對(duì)數(shù)域梯度場(chǎng)對(duì)光照具有不變性。最后對(duì)式(2)~(5)進(jìn)行整合,可以將對(duì)數(shù)域梯度幅值和方向表示為:
(6)
(7)
Sobel算子作為基于模板檢測(cè)的一階導(dǎo)數(shù)算子,在使用小模板時(shí),能夠獲得較高質(zhì)量的邊緣像素集合。Sobel算子含有包括橫向和縱向2個(gè)方向的3×3模板,在進(jìn)行圖像處理過(guò)程中,圖像的每個(gè)點(diǎn)與兩個(gè)方向的模板進(jìn)行領(lǐng)域卷積,從而達(dá)到檢測(cè)出水平和垂直邊緣的目的,卷積運(yùn)算表示為:
(8)
(9)
式中:A代表原始圖像,Lx、Ly分別代表橫向與縱向邊緣檢測(cè)圖像灰度值,假設(shè)圖像函數(shù)為f(x,y),則具體計(jì)算如式(10)、(11)所示。
將Lx、Ly進(jìn)行合成梯度,梯度幅值與梯度
Lx=[f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)]-
[f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)],
(10)
Ly=[f(x+1,y+1)+2f(x+1,y)+f(x+1,y-1)]-
[f(x-1,y+1)+2f(x-1,y)+f(x-1,y-1)],
(11)
方向角分別表示為:
(12)
θ(x,y)=arctan(Ly/Lx).
(13)
考慮到梯度方向具有對(duì)稱性,經(jīng)典的sobel算子2個(gè)梯度模板能構(gòu)成4個(gè)方向。為了同時(shí)能保證灰度圖像的檢測(cè)效果與效率,在水平梯度和垂直梯度的基礎(chǔ)上,改進(jìn)的Sobel算子另外增加了45°和135°方向的梯度計(jì)算,這樣在進(jìn)行檢測(cè)時(shí)能達(dá)到8個(gè)方向,能有效提高檢測(cè)效果。增加的梯度模板如圖1所示。
圖1 Sobel算子模板Fig.1 Sobel operator template
圖像函數(shù)f(x,y)的3×3窗口:
(14)
將Sobel算子0°、45°、90°和135°模板分別與f(x,y)卷積:
(15)
梯度幅值用無(wú)窮范數(shù)表示為:
(16)
經(jīng)典Sobel算子是在卷積得到梯度幅值后,通過(guò)選取人工設(shè)定的閾值進(jìn)行邊緣提取,這樣檢測(cè)到的邊緣效果較差。Bernsen算法作為一種局部二值化算法是將圖像分割成塊,然后分別計(jì)算閾值,通過(guò)比較選出最佳閾值。一般算法通常會(huì)忽略掃描框?qū)χ苓呄袼氐拈撝颠x取,從而造成邊緣斷點(diǎn)或缺失,因此該方法可以抑制不均勻光照給圖像帶來(lái)的影響。
設(shè)定當(dāng)前像素為Y(i,j),以Y(i,j)為中心做一個(gè)邊長(zhǎng)為2w+1的(2w+1)×(2w+1)窗口,w為窗口寬度參數(shù),然后計(jì)算每個(gè)窗口的閾值TY(x,y):
(17)
原始Bernsen算法得出來(lái)的閾值TY(i,j),若經(jīng)強(qiáng)制處理則會(huì)無(wú)法避免噪聲點(diǎn),在細(xì)節(jié)上會(huì)變得極其敏感,故結(jié)合高斯濾波進(jìn)行改進(jìn)得出新的閾值TG(i,j),然后將TY(i,j)與TG(i,j)進(jìn)行線性組合,通過(guò)調(diào)節(jié)線性參數(shù)a來(lái)確定最適閾值T(i,j)。
經(jīng)高斯濾波后的Bernsen算法閾值TG(i,j):
(18)
由于得出來(lái)的閾值容易產(chǎn)生偽影現(xiàn)象,故在線性組合確定最佳閾值之前,先對(duì)TY(i,j)與TG(i,j)進(jìn)行平滑處理:
(19)
(20)
線性組合確定最佳閾值:
(21)
(22)
(23)
(24)