焦騰云,王明泉,張俊生,郭智杰,王 玉
(中北大學 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原 030051)
隨著經濟的快速發(fā)展,汽車需求量不斷增多,人們越來越注重汽車的安全性能,而質量合格的輪轂對汽車的行車安全相當重要.輪轂毛坯在鑄造完成后要通過X光照射來進行缺陷檢測,成像效果的優(yōu)劣直接影響到缺陷是否能夠正確判定,而圖像顯示算法的優(yōu)劣將直接影響成像效果.在目前的輪轂X射線成像系統(tǒng)中,常采用的圖像顯示算法為窗位窗寬算法,將0~65 535之間的一部分值映射到0~255上[1].此算法不僅操作過程繁瑣,而且效率不高,不能同時還原圖像的各部分細節(jié).而在自然光高動態(tài)圖像的顯示領域,有一種比較成熟的色調映射技術,能夠將高動態(tài)范圍圖像在低動態(tài)范圍顯示器上更好地顯示.
色調映射算法由Tumblin等人于1993年引入到計算機圖形學領域[2].現有的色調映射算法主要分為兩類:全局色調映射算法和局部色調映射算法.全局色調映射算法對整幅圖像的每個像素應用相同的壓縮曲線,優(yōu)點是結構簡單且運算速度快,能夠保持整體的明暗效果,缺點是會導致輸出圖像的對比度、細節(jié)、紋理等信息的丟失.從20世紀80年代開始,就有很多的專家學者進行全局色調映射算法的研究[2-4].另一種色調映射算法為局部色調映射算法,一個像素點的壓縮依賴于鄰域像素點.局部色調映射算法能夠在壓縮動態(tài)范圍的同時保持圖像的細節(jié)和紋理,增強圖像的局部對比度.對于局部色調映射,許多學者做了大量研究,Durand和李紅平等人[5-6]利用雙邊濾波技術,較好地保留了圖像細節(jié)信息;Farbman、Fattal和Gu等人[7-8]采用了基于梯度的多尺度分解方法,在局部顯著的邊緣處保留了細節(jié);He等人[9]提出了具有邊緣保持特性的圖像引導濾波算法,得到了優(yōu)于雙邊濾波器處理后的圖像效果;Xie等人[10]通過使用快速聚類算法和梯度引導,提高了色調映射的保真度.
基于以上分析討論,為了更好地將輪轂高動態(tài)X射線圖像顯示出來,使映射后的圖像有一個較好的整理明暗效果,適應人眼視覺系統(tǒng),同時保持圖像邊緣、突出圖像細節(jié)信息,本文提出了一種基于梯度域引導濾波的分層色調映射算法.
梯度域引導濾波器是由Kou等人[11]于2015年提出來的,在傳統(tǒng)引導濾波器的基礎上對邊緣進行顯式的處理,引進了明確的一階邊緣感知算子,使圖像的邊緣細節(jié)信息更好地保留.梯度域引導濾波由輸入圖像X、引導圖像G和輸出圖像Z組成.在以像素p′為中心,ζ為半徑的方形窗口Ωζ(p′)中,引導圖像和輸出圖像有如下的線性關系
Z(p)=ap′G(p)+bp′,?p∈Ωζ(p′),
(1)
式中:ap′和bp′為兩個常數.
對式(1)兩端取梯度得
Z(p)=ap′G(p).
(2)
由式(2)可知,窗口Ωζ(p′)內的輸出圖像Z的平滑度取決于ap′值的大小.
由文獻[11]得到代價函數
(3)
式中:一階邊緣感知權重ΓG(p′)通過3×3窗口和(2ζ+1)×(2ζ+1)窗口內的局部方差來定義,表示像素p′對整個圖像的重要性,定義如式(4)所示,γp′的定義如式(5)所示
(4)
式中:χ(p′)被定義為σG,1(p′)σG,ζ(p′);N為總的像素點個數;ζ為窗口半徑大小,由文獻[11]可得,ζ取值為16時,能夠起到一個很好的邊緣保持和平滑噪聲的效果,因此本文ζ取值為16.
(5)
利用最小二乘法得到式(3)的最優(yōu)解
(6)
bp′=μX,ζ(p′)-ap′μG,ζ(p′).
(7)
在計算每個窗口的線性系數時,一個像素會被多個窗口包含,每個像素都由多個線性函數所描述,因此用ap′和bp′的均值來計算最后的輸出圖像.
(8)
本文算法的基本流程如圖1所示.
本文對16位輪轂X射線圖像進行處理,直接獲取到圖像的亮度值,為了更好地適應人眼視覺系統(tǒng),將數據轉換到對數域并歸一化,然后將歸一化圖像進行梯度域引導濾波得到包含大尺度信息的基礎層,歸一化圖像減去基礎層得到細節(jié)層,對基礎層進行自適應對數壓縮,對細節(jié)層進行補償,將壓縮后的圖像和補償后的圖像合并重構得到合并圖像,最后對合并圖像進行后處理得到低動態(tài)的輸出圖像.
圖1 本文算法流程圖
由韋伯定律可以得出人眼視覺系統(tǒng)對亮度的感知規(guī)律與對數函數有很高的相似性,對亮度通道進行取對數處理,理論上能夠增強圖像的質量.因此本文將亮度轉換到對數域,然后將對數域亮度歸一化,數據范圍變換到[0,1]區(qū)間,轉換公式為
I[0,1](x,y)=
(9)
式中:I(x,y)為原始亮度值;I[0,1](x,y)為取對數并歸一化后的亮度值;Imax為最大亮度值;Imin(x,y)為最小亮度值;ε是一個小的常數值,本文取值為e(-10).
在圖像分層方面本文選用具有良好邊界保持性能且不會引起“梯度反轉”現象的梯度域引導濾波器代替雙邊濾波來進行圖像的分層操作.它能夠對圖像進行有效的平滑,且具有良好的邊界保持性能,在主要的邊緣附近沒有梯度的變形,能夠很好地避免偽影等現象的產生.而且算法速度較快,時間復雜度僅為O(N).
在梯度域引導濾波算法中,引導圖像和輸入圖像可以相同也可以不同[11].當引導圖像和輸入圖像相同時,梯度域引導濾波起到保持邊緣的作用,在本文中即采用這種思路.
在對亮度值取對數并歸一化之后,利用梯度域引導濾波對圖像進行分解
Ib(x,y)=G(I[0,1](x,y),p(x,y)),
(10)
Id(x,y)=I[0,1](x,y)-Ib(x,y),
(11)
式中:G( )表示梯度域引導濾波操作;Ib(x,y)表示動態(tài)范圍較大的基礎層;Id(x,y)表示含有局部細節(jié)信息的細節(jié)層.
對數函數曲線非常接近人眼對亮度的感知,將對數函數作為壓縮函數,理論上能夠得到較好的效果.Dragod等人[3]于2003年提出了自適應色調映射算法,根據圖像中像素亮度值的不同使對數基進行自適應調整.在此算法中,為使對數方程的基數能夠在2~10之間自適應調整,引進了一個偏置函數
(12)
式中:b為用戶可調節(jié)的參數,調整圖像映射后的整體明暗度.
對式(12)利用對數換底公式進行改進,得到自適應色調映射函數
(13)
式中:Ib-dmax(x,y)表示顯示介質的顯示能力,通常取值為100 cd/m2.Ib-dmax(x,y)=Ibmax(x,y)·exposure,expouser為用戶可調節(jié)的曝光度.在式(13)中,b通常取值為[0.7,0.9],對于輪轂高動態(tài)X射線圖像,取值為0.85時能取得一個滿意的效果.
為了解決暗區(qū)域的細節(jié)丟失問題,完成色調映射之后進行γ校正,γ一般取值為2.2,γ校正公式為
(14)
由于細節(jié)層中包含有一些圖像的細節(jié)紋理信息,為了使映射后的圖像細節(jié)紋理突出,考慮到算法的效率,本文利用式(15)對細節(jié)層進行增強操作.
(15)
其中細節(jié)層調整參數α≥1,對細節(jié)層進行相應倍數的放大操作,取值太小細節(jié)部分得不到好的增強效果,取值太大會產生光暈并使觀察者感覺到視覺上的虛假.經過實驗驗證分析,針對輪輻部分本文取值為7,輪輞部分取值為10,輪芯部分取值為1.2.
在將基礎層壓縮后的圖像和細節(jié)層補償后的圖像進行合并后,進行后處理操作,考慮到噪聲并增加主要像素的對比度,分別裁剪掉高3%,低1%的像素重新歸一化,最后得到映射后的輸出圖像.
為了驗證本文算法的可行性,在Intel i5-5200U四核處理器(主頻為2.20 GHz),內存為4 G的實驗平臺上,利用Windows 7 、32位操作系統(tǒng)下的Matlab8.5.0編程開發(fā)環(huán)境對輪轂的3個主要部位輪輻、輪輞、輪芯圖像進行實驗驗證.比較不同算法對于圖像的映射效果,判斷邊緣和細節(jié)處是否出現模糊,是否具有較高的局部對比度,整體對比度和清晰度.
實驗1選用窗位窗寬算法和本文算法進行對比.驗證了本文算法較之窗位窗寬算法的優(yōu)越性.輪輻、輪芯和輪輞圖像的映射結果如圖2所示,圖2 中的(a1)~(a3),(b1)~(b3),(c1)~(c3)分別為窗位窗寬算法映射結果圖,其中C表示窗位值,W表示窗寬值,(d1)~(d3)為本文方法映射結果圖.
圖2 窗位窗寬算法和本文算法映射結果
從實驗結果可以看出經過窗位窗寬算法處理后的圖像整體太暗或太亮,明暗不均勻,對比度較差,給人一種視覺上的模糊感覺,且細節(jié)信息丟失嚴重.而經過本文算法處理后的圖像能產生一種很好的視覺效果,圖像整體明暗均勻,細節(jié)信息突出,圖像清晰,層次感較好.由于輪轂毛坯的鑄造工藝問題,在輪輻的輻窗位置有一些小的毛刺出現,如圖2(d1)中的方框所示,證明本文算法真實的還原了輪轂結構信息.
實驗2選用文獻[3],文獻[5]和文獻[6]中的3種色調映射算法和本文提出的映射算法進行對比.輪轂不同部位的映射結果如圖3所示,圖3中的(a1),(b1),(c1)為文獻[3]的映射結果圖,(a2),(b2),(c2)為文獻[5]的映射結果圖,(a3),(b3),(c3)為文獻[6]的映射結果圖,(a4),(b4),(c4)為本文方法映射結果圖.
輪輻圖像的映射結果如圖3(a1)~(a4)所示,由結果對比可知,圖3(a1)、(a2)圖像較暗、細節(jié)信息丟失嚴重,圖3(a3)圖像亮度有所提升,但邊緣和細節(jié)的保留效果較差,而經過本文算法處理的輪輻圖像整體亮度和對比度得到了極大的提高,紋理細節(jié)信息更加的豐富,輻條部位的缺陷輪廓更加的明顯,圖像整體上產生了更好地視覺效果.
輪芯圖像的映射結果如圖3(b1)~(b4)所示,由結果對比可知,圖3(b1)產生了較好的整體明暗視覺效果,(b2)、(b3)整體偏亮,圖像對比度較低,整體有一種蒙霧的感覺.而經本文算法處理的輪芯圖像具有較高的對比度,邊緣部分清楚可見,圖像清晰度高.
輪輞圖像的映射結果如圖3(c1)~(c4)所示,由結果對比可知,本文提出的算法能夠較好地還原輪輞圖像的紋理細節(jié)信息,且呈現一個較好的整體明暗效果,更加適應人眼視覺系統(tǒng).
圖3 不同色調映射算法映射結果
為了避免受主觀喜好和環(huán)境差異等影響,除了進行主觀的評價外,本文還對映射后的圖像進行客觀評價,進一步評價算法的性能.在客觀評價方面,本文選用信息熵、平均梯度來評價圖片質量.信息熵,反映了圖像中信息的豐富程度,表示圖像的平均信息量,值越大,表明圖像的信息量越大.平均梯度反映了圖像中微小細節(jié)和紋理的表現能力,值越大,表明圖像越清晰,細節(jié)表現越完整.
信息熵計算公式為
(16)
式中:Pt表示灰度值為t時的概率;M為圖像的灰度級.
平均梯度的計算公式為
(17)
根據以上計算,得到各圖像的客觀評價指標如表1 和表2所示.
表1 窗位窗寬算法和本文算法客觀指標
由表1 可以看出,經本文算法處理的圖像信息熵和平均梯度均得到了一定的提高,使映射后的圖像更加清晰.由于灰度范圍的變化,窗位窗寬算法在對輪輞的處理方面略有優(yōu)勢,這是通過犧牲圖像的整體明暗度來達到的.
從表2 可以看出本文算法極大地提高了平均梯度值,能夠較好地還原圖像的紋理細節(jié)信息,輪輻圖像信息熵提高了1.1%~11.2%,輪芯圖像信息熵提高了11.5%~28.2%,輪輞信息熵提高了1.4%~13%.針對輪轂各個部位圖像,本文算法都會產生較好的視覺效果,具有較高的圖像質量.
表2 不同色調映射算法客觀指標
綜上所述,無論與窗位窗寬算法相比,還是與傳統(tǒng)的色調映射算法相比,本文算法都能產生一個較好的圖像質量效果.
針對窗位窗寬顯示算法效率低下,圖像顯示質量較差等缺點,本文將色調映射技術引入到高動態(tài)X射線圖像的顯示過程中,提出了一種將梯度域引導濾波和自適應對數壓縮算子相結合的分層色調映射算法.用文獻[11]中提出的梯度域引導濾波器對輸入圖像進行分層,分為包含大尺度信息的基礎層和包含細節(jié)邊緣信息的細節(jié)層,對于基礎層利用自適應對數函數進行壓縮,提高了圖像的對比度,使圖像產生了一個整體的明暗效果,對于細節(jié)層通過調整梯度域引導濾波器中參數和細節(jié)層補償過程中的參數使映射后的圖像達到一個邊緣保持和細節(jié)增強的效果,使細節(jié)較好的再現.經實驗驗證,經過本文算法處理的輪轂高動態(tài)X射線圖像能夠取得較好的圖像質量效果.