梁宏希 汪仁煌 李寧 李逸樂(lè) 朱穎
(廣東工業(yè)大學(xué)自動(dòng)化學(xué)院)
在對(duì)原始圖像預(yù)處理的基礎(chǔ)上獲得清晰的二值圖,是儀表自動(dòng)讀數(shù)系統(tǒng)進(jìn)行后續(xù)處理的保證。我國(guó)儀表自動(dòng)讀數(shù)、檢定系統(tǒng)的研究始于近幾年,但由于儀表自身及其使用環(huán)境的復(fù)雜性,到目前為止投入實(shí)際工業(yè)應(yīng)用的案例還不多,主要原因之一是儀表自動(dòng)化系統(tǒng)的光源處理難度較大。如果直接在儀表盤(pán)正面加以光照,必然會(huì)在保護(hù)罩上產(chǎn)生大面積的反光區(qū)域,導(dǎo)致信息丟失;若光源在儀表盤(pán)側(cè)面或上方接近處,則容易造成圖片亮度不均勻和陰影顏色較深,影響處理效果。目前普遍采用的照明方法是在較遠(yuǎn)處的上方或側(cè)面采用單個(gè)或多個(gè)大面積光源,以保證圖片亮度不會(huì)過(guò)低。這種情況下陰影顏色較淺,不會(huì)嚴(yán)重反光,但容易造成亮度不均勻。除了光源的位置,儀表盤(pán)玻璃罩對(duì)光線的折射也會(huì)使儀表圖片產(chǎn)生局部的亮度不均勻區(qū)域。
同態(tài)濾波是一種比較常用的光照補(bǔ)償方法,可以對(duì)亮度不均的圖像進(jìn)行校正[1]。但對(duì)于普遍的圖像二值化閾值計(jì)算方法,需要在同態(tài)濾波效果的好壞與閾值計(jì)算精確性間作出取舍。在同態(tài)濾波參數(shù)取值比較極端時(shí),會(huì)造成圖片亮度范圍的嚴(yán)重壓縮,導(dǎo)致大多數(shù)閾值算法二值化的結(jié)果產(chǎn)生偏差。
本文針對(duì)儀表盤(pán)和極端參數(shù)下同態(tài)濾波后圖像的特點(diǎn),提出了一種針對(duì)儀表圖像的二值化方法。該方法首先使用基于Sobel算子的邊緣檢測(cè)法,檢測(cè)出圖像的邊緣線,再通過(guò)統(tǒng)計(jì)邊緣線相鄰點(diǎn)像素值的方法獲得閾值。運(yùn)用Matlab中對(duì)本文方法和大津法[2]、迭代法進(jìn)行仿真,說(shuō)明該方法的可行性、有效性和穩(wěn)定性。
對(duì)于大多數(shù)的原始儀表圖片,亮度補(bǔ)償是預(yù)處理的必須步驟。同態(tài)濾波是一種在頻域中同時(shí)將圖像亮度范圍進(jìn)行壓縮和將圖像對(duì)比度進(jìn)行增強(qiáng)的方法[3]。其原理是將像素的灰度看作由照射分量和反射分量?jī)煞N因素共同作用的結(jié)果,其中照射分量反映圖像的內(nèi)容。通過(guò)分別處理照度和反射率對(duì)像元灰度值的影響,達(dá)到揭示陰影區(qū)細(xì)節(jié)特征的目的。由于照射分量相對(duì)變化很小,可看作是圖像的低頻成份,而反射分量則是高頻成份。同態(tài)濾波的過(guò)程如下:
其中, S (x ,y)表示原始圖像; T (x ,y)表示處理后的圖像;Log代表對(duì)數(shù)運(yùn)算;DFT代表傅立葉變換;IDFT代表傅立葉逆變換;Exp代表指數(shù)運(yùn)算;代表濾波器,使用不同的濾波器可以獲得不同的濾波結(jié)果。
使用同態(tài)濾波器需要對(duì)其參數(shù)進(jìn)行設(shè)定,3個(gè)參數(shù)分別為高頻增益 Rh、低頻增益 Rl和截止頻率D。由于本文使用的Sobel算子對(duì)噪聲不敏感,截止頻率D對(duì)結(jié)果影響不大。當(dāng)時(shí),會(huì)產(chǎn)生減少低頻和增強(qiáng)高頻的效果,使動(dòng)態(tài)范圍壓縮和對(duì)比度增強(qiáng)。在高、低頻增益之差變小時(shí),濾波效果增強(qiáng),優(yōu)點(diǎn)是可以獲得亮度比較均勻的圖片,但同時(shí)具有亮度范圍壓縮比較明顯的缺點(diǎn),此時(shí)一般閾值計(jì)算方法的結(jié)果容易發(fā)生偏差。
本文對(duì)圖片進(jìn)行二值化前,先進(jìn)行同態(tài)濾波處理,使用Butterworth濾波器進(jìn)行頻域?yàn)V波,3個(gè)參數(shù)分別為
儀表盤(pán)圖像具有前景與背景比例懸殊,一般只有黑白二色(指針可能有彩色)的特點(diǎn)。一般閾值計(jì)算方法涉及圖片中所有像素點(diǎn)的灰度值,當(dāng)圖片的前景和背景分離不夠清晰時(shí),由于前景所占比例極少(絕大多數(shù)情況下少于10%),錯(cuò)誤地從屬于背景的灰度區(qū)間中找出閾值。同樣,在圖像亮度范圍小的情況下,背景部分?jǐn)?shù)據(jù)對(duì)結(jié)果的權(quán)重過(guò)大,屢屢導(dǎo)致最終計(jì)算結(jié)果出錯(cuò)。
使用邊緣檢測(cè)的閾值計(jì)算方法對(duì)儀表盤(pán)二值化是基于其邊緣線比較明顯的特性。此計(jì)算方法并沒(méi)有對(duì)全圖的像素灰度值進(jìn)行計(jì)算,僅僅使用了邊緣檢測(cè)算子所檢測(cè)出來(lái)的屬于邊緣點(diǎn)及其相鄰點(diǎn)的信息,保證了儀表盤(pán)圖像二值化結(jié)果的有效性。
在邊緣檢測(cè)中有多種邊緣模板,包括Roberts算子、Sobel算子、Canny算子、Prewitt算子、Kirsch算子、LOG算子等。其中,Sobel算子有平滑噪聲的作用,能提供較為精確的邊緣方向信息;Canny算子搜索邊緣線比Sobel算子完整,但由于計(jì)算時(shí)考慮了大量無(wú)效邊緣,影響最終結(jié)果的精確性?;谶吘壍亩祷撝涤?jì)算,由于不需要把所有邊緣搜索出來(lái),且考慮到儀表盤(pán)自帶的玻璃罩容易造成圖像噪點(diǎn),本文用采Sobel算子進(jìn)行邊緣檢測(cè)。
Sobel算子在求梯度前,首先進(jìn)行鄰域平均或加權(quán)平均,然后再進(jìn)行微分,這樣可抑制噪聲。水平和垂直的Sobel算子分別為[4]:
這兩個(gè)Sobel算子分別對(duì)應(yīng)偏導(dǎo)數(shù):
由于Sobel算子是濾波算子的形式,提取邊緣時(shí)可利用快速卷積函數(shù)。
獲得邊緣后,用邊緣信息計(jì)算閾值的步驟[5]:
1)對(duì)每個(gè)邊緣點(diǎn)的相鄰像素值進(jìn)行比較。比較后取灰度值最大的像素點(diǎn),判斷其是否為邊緣點(diǎn),若不是則歸入高閾值點(diǎn)的集合 Sh;取灰度值最小的像素點(diǎn),判斷其是否為邊緣點(diǎn),若不是則歸入低閾值點(diǎn)的集合 Sl。儀表盤(pán)上主要的有效區(qū)域(刻度線)極少出現(xiàn)水平線,為了減少計(jì)算量,僅選取目標(biāo)像素點(diǎn)左右相鄰的兩個(gè)像素點(diǎn);
4)以TH為閾值對(duì)原圖進(jìn)行二值化。
儀表盤(pán)圖像的前景、背景權(quán)重取值不同,對(duì)結(jié)果影響很大。由于原圖中前景所占比例極少,前景權(quán)重取0.9或以上才能取得比較好的結(jié)果。為了減少計(jì)算量,可以直接取前景權(quán)重為1,并在計(jì)算時(shí)不統(tǒng)計(jì)背景像素。
運(yùn)用 Matlab對(duì)本文方法進(jìn)行仿真,并與傳統(tǒng)的二值化方法進(jìn)行比較。測(cè)試環(huán)境為Intel Core i5m 2.3 GHz,內(nèi)存為1.5 GB,Windows xp sp3,Matlab 6.5。
圖1(a)為已有的舊圖片;圖1(b)、圖1(c)是白天室內(nèi)拍攝所得,并沒(méi)有對(duì)儀表加裝專用光源。其中圖1(a)的弧形黑色區(qū)域會(huì)對(duì)各種閾值算法造成嚴(yán)重干擾;圖1(b)的光源主要為日光燈,位于儀表的正右上方,所以圖像整體呈左暗右亮;圖1(c)的光源是從斜后方照射過(guò)來(lái)的自然光,因而有一定的反射分量,在中央偏下的位置又因攝像頭的遮擋產(chǎn)生了一塊較暗的區(qū)域。
圖1 原始圖像
圖2 對(duì)原圖使用大津法獲得的二值圖
圖3 同態(tài)濾波圖
圖4 同態(tài)濾波后使用大津法獲得的二值圖
圖5 同態(tài)濾波后使用本文方法獲得的二值圖
由圖2 、圖4與圖5的對(duì)比中可以看出:
1)在原圖亮度均勻性比較好的情況下,直接對(duì)原圖進(jìn)行二值化和使用本文方法的二值化結(jié)果相近;
2)同態(tài)濾波具有較好的亮度均衡效果;
3)大津法使用本文參數(shù)的同態(tài)濾波后的圖進(jìn)行閾值計(jì)算時(shí)結(jié)果偏差比較大;
4)在亮度不均衡時(shí),使用大津法未能獲得足夠清晰的二值圖,而本文的方法都能獲得比較穩(wěn)定、清晰的結(jié)果。
表1是圖1的3幅圖像在Matlab中的仿真數(shù)據(jù)。
表1 Matlab仿真數(shù)據(jù)
本文提出了一種基于Sobel算子邊緣檢測(cè)的圖像二值化閾值計(jì)算方法。實(shí)驗(yàn)結(jié)果表明,在儀表圖像二值化應(yīng)用場(chǎng)合,與一些傳統(tǒng)的閾值算法比較,本文的方法具有較好的穩(wěn)定性,能獲得更清晰的二值圖。計(jì)算時(shí)間雖然略長(zhǎng)于大津法,但比迭代法短。程序運(yùn)算時(shí)間主要消耗在時(shí)間復(fù)雜度為 O (n)的邊緣檢測(cè)上,因此總運(yùn)算時(shí)間與圖片像素基本成正比。
[1]郭貴法,汪仁煌,王歡.改進(jìn)的同態(tài)濾波在指針式儀表圖像預(yù)處理中的應(yīng)用[J].廣東工業(yè)大學(xué)學(xué)報(bào),2009,26(3):57-59.
[2]劉勝利,賈傳熒,馬鯤.一種儀表圖像整體閾值分割方法[J].計(jì)量技術(shù),2003,10:5-7,14.
[3]韓文靜.基于ZDPCA和多分類器融合的人臉識(shí)別[D].青島:山東科技大學(xué),2009.
[4]邢軍.基于 Sobel算子數(shù)字圖像的邊緣檢測(cè)[J].微機(jī)發(fā)展,2005,15(9):48-49,52.
[5]韓琳,傅勇,盛翊智.基于邊緣算子的車牌圖像二值化方法[J].計(jì)算機(jī)與數(shù)字工程,2007,35(1):94-96.