郝才成,李 萍,吳宣儒
(寧夏大學 物理與電子電氣工程學院,寧夏 銀川 750021)
由于空氣中的水汽對太陽光的散射效應,導致霧天圖像質量下降,細節模糊,對比度降低,亮度過大,不利于后期的處理與識別[1]。霧天圖像的預處理則顯得尤為重要,圖像增強技術可以有效提高霧天圖像的對比度,突出霧天圖像的細節信息,有利于計算機處理。
常用的霧天圖像增強算法有直方圖均衡化(HE)算法、小波變換算法和基于色彩恒常性理論的Retinex算法[2]。HE算法通過非線性函數將圖像的灰度值重新分配,使灰度值更分散,處理后圖像的灰度值具有均勻的概率密度[3],該算法可以提高圖像的對比度,擴大圖像的動態范圍,原理簡單,實時性好,但由于需要均衡灰度值,容易損失大量的細節信息,從而導致圖像局部細節模糊;小波變換算法能將一幅圖像分為高頻部分和低頻部分,其中高頻部分對應圖像的細節信息,低頻部分對應圖像的整體輪廓,噪聲多存在于圖像的高頻部分,所以小波變換對高頻部分進行去噪處理,對低頻部分進行增強處理,然后再進行小波重構[4]。在提升對比度和細節保持方面表現優異,但其在噪聲抑制方面表現不佳;Retinex理論由Land等人提出,該理論認為一幅圖像可以由照射分量L和反射分量R組成,物體的亮度和色彩由反射分量決定,用高斯濾波函數與圖像做卷積得到照射分量,然后在對數域下去除照射分量,從而得到反射分量[5],可以提高圖像的對比度,但該理論容易造成圖像色彩失真。
針對上述各算法在霧天圖像增強中存在的問題,提出本文算法。本文算法對傳統的SSR算法進行了改進,改進后的算法具有良好的細節保持能力和運算速度。在HSI空間下對霧天圖像進行處理,可以有效避免過增強和色彩失真現象。經實驗驗證,本文提出的算法可以提高霧天圖像質量,恢復霧天圖像色彩,增強效果優于傳統算法。
Retinex算法分為單尺度Retinex算法(SSR)、多尺度Retinex算法(MSR)和帶顏色恢復的多尺度Retinex算法(MSRCR)[6]。Retinex算法認為一幅圖像可以表示成照射分量和反射分量的乘積,算法原理如圖1所示。

圖1 Retinex算法原理
原理圖由3部分構成,各部分之間的關系為:
S(x,y)=L(x,y)R(x,y),
(1)
式中,(x,y)為數字圖像的像素坐標;S(x,y)為原始圖像;R(x,y)為反射分量;L(x,y)為照射分量。原始圖像是觀察者獲取到的圖像,反射分量代表圖像的本質特性,照射分量代表圖像的亮度范圍。
由于人眼的視覺特性曲線接近對數函數曲線,對數域下的處理更符合人的視覺特性[7],所以將式(1)兩端移項并取對數,用對數域下的原始圖像減去對數域下的照射分量,得到對數域下的反射分量,運算過程為:
ln[R(x,y)]=ln[S(x,y)]-ln[L(x,y)],
(2)
再通過指數變換將反射分量映射回實數域,經過上述處理可以達到圖像增強的目的。式(2)中的L(x,y)可以通過高斯濾波函數與原始圖像做卷積運算獲得,過程為:
L(x,y)=F(x,y)*S(x,y),
(3)
式中,高斯濾波函數為:
F(x,y)=λe[-(x2+y2)/c2],
(4)
式中,λ為歸一化因子;c為高斯尺度,取80效果較好[8]。c的變化導致Retinex算法的尺度發生變化,c固定不變的Retinex算法稱為單尺度Retinex算法,簡稱SSR。
小尺度的SSR可以增強細節,但容易丟失色彩,大尺度的SSR可以保持色彩,但對比度增強方面欠佳[9]。SSR難以同時保證亮度和對比度,所以研究人員提出了多尺度Retinex算法(MSR)和帶顏色恢復的多尺度Retinex算法(MSRCR),MSR將不同尺度的SSR加權相加,MSRCR在MSR的基礎上引入了顏色恢復函數[10]。MSR和MSRCR的處理結果更好,色彩更豐富,但二者的運算過程較為復雜,處理時間較長。
針對霧天圖像和傳統的SSR在細節保持方面存在的問題,提出一種基于Retinex理論的霧天圖像增強算法。將霧天圖像轉換到HSI空間,對S分量進行線性拉伸,用改進的SSR算法增強I分量,將圖像從HSI空間轉回RGB空間,通過sigmoid函數對圖像進行色彩恢復,得到增強后的圖像。基于Retinex理論的霧天圖像增強算法的流程如圖2所示。

圖2 本文算法流程
HSI空間較RGB空間更貼合人眼的視覺系統,且更容易進行分離處理。HSI空間的S分量代表圖像的飽和度(Saturation),飽和度對應圖像色彩的鮮艷程度,飽和度越高圖像色彩越鮮艷。對霧天圖像的S分量進行線性拉伸可以解決圖像的泛白問題。不同的圖像有著不同的飽和度,而不同的飽和度需要不同的拉伸尺度,為了能達到理想的增強效果,本文采用自適應尺度的線性拉伸算法[11]:
(5)

經過式(5)的處理后,飽和度可以由[0~1]擴展到[0~1.1],圖像的色彩可以得到加深,此算法可以有效解決霧天圖像的泛白問題。
I分量代表圖像的亮度(Intensity),對應圖像色彩的明暗程度。SSR算法的核心是快速準確地去除照射分量,濾波函數的選取影響圖像增強的效果[12]。傳統的SSR算法的濾波函數是高斯函數,該函數的濾波方式是空間域濾波,中心點的像素值由鄰域內其他點的像素值共同決定,由于是模糊處理,所以容易丟失細節。本文用改進的SSR算法對I分量進行增強,濾波函數采取的是雙邊濾波函數[13],雙邊濾波既考慮空間域因素又考慮值域因素,中心像素值僅由鄰域內像素值相近點的像素值決定,具有較好的細節保持能力,雙邊濾波函數為:
(6)

(7)
(8)
改進的SSR算法的核心是式(7)、式(8)中的2個高斯尺度,增強的效果會隨著尺度的調整而發生變化。改進的SSR算法的原理如圖3所示。

圖3 改進的SSR算法原理
為了提升圖像的平均亮度和視覺效果,本文算法采用sigmoid函數對圖像進行顏色恢復,針對霧天圖像的sigmoid函數[14]為:
(9)
式中,自變量為輸入像素值;S(x)為處理后的像素值;k1,k2分別為標準差系數和像素值系數,標準差對應圖像的對比度,像素值對應圖像的亮度[15]。函數呈S形曲線,因此可以拓展大部分區域的亮度值,值域控制在[0~255],可以避免過增強現象。
為了測試本文算法的增強效果,選取2幅霧天圖像進行仿真實驗,實驗環境:Intel(R) Core(TM) i5 CPU @ 2.4 GHz,操作系統:Windows 7旗艦版,仿真軟件:Matlab2016。
仿真結果如圖4和圖5所示。用HE算法、MSRCR算法和本文算法對圖4(a)和圖5(a)進行增強,分別得到增強結果。

圖4 公路圖像增強結果

圖5 樓房圖像增強結果
受到薄霧天氣影響,2幅原圖的視覺效果不佳,存在泛白現象。3種算法均能改善霧天圖像的視覺效果,但HE算法和MSRCR算法的處理結果存在失真現象。圖4(b)道路盡頭出現過增強,圖5(b)山頂天空部分細節丟失;圖4(c)色彩偏移嚴重,圖5(c)整體泛白。本文算法的處理結果不存在失真現象,主觀效果優于HE算法和MSRCR算法。
分別從亮度、標準差、信息熵和運算時間4個方面對2幅圖像的增強效果進行客觀評價,對比結果如表1和表2所示。本文算法的運算速度最快,說明本文算法在實時性方面優于其他2種算法。信息熵代表圖像的信息量,對應圖像的細節[16]。本文算法的信息熵最大,說明本文算法具有較好的細節保持能力;HE算法的標準差最大,本文算法其次,但HE算法存在顏色失真問題,而本文算法不存在失真問題;MSRCR算法亮度過大且運算時間過長,本文算法亮度適中且實時性較好。

表1 公路圖像質量評價對比

表2 樓房圖像質量評價對比
本文提出一種基于Retinex理論的霧天圖像增強算法,選取2幅霧天圖像進行仿真實驗,對實驗結果進行主觀對比與客觀評價,本文算法在主觀效果和客觀數據方面均優于另外2種算法。因此可以得出,本文算法對于霧天降質圖像具有較好的增強效果,對于標準差的提升效果不夠明顯。今后可以在對比度增強方面深入研究,從而提高算法處理結果的標準差,同時要保證霧天圖像天空部分的增強效果。