劉晨
(喀什大學計算機科學與技術學院,新疆喀什 844000)
關鍵字 :C#;C++;圖像清晰化
隨著圖像處理技術和計算機技術的發展,對特殊天氣條件下得到的圖像的處理成為計算機視覺領域的一個重要研究方向.由于霧霾、沙塵等因素的影響,在此天氣條件下得到的圖像會存在對比度低、細節丟失等情況,這些缺失將會影響后續圖像分析識別工作.因此,需要對此類圖像進行清晰化[1-3]處理,增強圖像的信息.目前圖像清晰化算法主要有Retinex 算法[4]、直方圖均衡化算法[5]、自動顏色均衡算法[6]、小波變換算法[7]、圖像復原算法[8]、快速去霧算法[9]以及卷積神經網絡算法[10]和深度學習算法[11-12]等.
本系統實現五種圖像清晰化算法,分別是RetinexSSR(單尺度Retinex 算法)、HE(直方圖均衡算法)、ACE(自動顏色均衡算法)、MEAN(基于均值濾波思想的快速算法)和DCP(基于暗通道先驗的算法).利用C#程序設計語言[13-14]和C++程序設計語言編程完成系統界面設計、算法設計和軟件的開發.本文用C#設計軟件界面,并用C++程序完成圖像清晰化算法函數并且生成DLL,在C#中調用DLL 中的庫函數.
圖1 所示的是系統整體概述,圖2 是系統運行初始界面圖,圖3 是具體程序接口調用過程.FromSSR/FromHE/FromACE/FromMean/FormDCP 是五種清晰化算法界面設計模塊,SSRDLL/HEDLL/ACEDLL/MEANDLL/DCPDLL 是實現具體圖像清晰化算法模塊并且生成動態鏈接庫,SSR/HE/ACE/MEAN/DCP是使用C#程序調用對用DLL模塊.

圖1 系統概述

圖2 系統界面

圖3 接口調用
MEAN 算法[9]及其具體的實現細節基于單幅圖像的快速算法描述如下:
(1)輸入圖像H(x);
(2)求取M(x)為
其中,r,g,b分別表示圖像紅綠藍三個通道;
(3)對M(x)進行均值濾波得到Mave(x)為
(4)求取M(x)中所有元素的均值mav;
(5)利用Mave(x)求出L(x)為
其中ρ為參數值;
(6)使用Mave(x)和H(x)求A為
(7)輸出圖像,得到的清晰化圖像F(x)為
具體的公式推導參見文獻[9],使用C++程序語言和C#調用生成的DLL 庫的算法實現過程如圖4所示.

圖4 算法實現過程
RetinexSSR,HE,ACE,DCP 算法概述如下,具體算法過程參見相應文獻.
(1)RetinexSSR 算法
在Retinex模型中I(x,y)=R(x,y)*L(x,y),I(x,y)是觀察到的圖像;R(x,y)是反射分量,代表模型本質信息;L(x,y) 是入射分量,可以表示為L(x,y)=I(x,y)*G(x,y),G(x,y)是高斯函數.通常將乘法域轉化到對數域求解R(x,y).
(2)HE 算法
圖像的灰度直方圖可以寫成
其中,nk為灰度級為k的像素的個數,L是灰度級.在直方圖的基礎上,進一步定義Pr(k),其表示歸一化的直方圖為灰度級出現的相對頻率,Pr(k)=nk/N,N表示圖像像素總數.
(3)ACE 算法
首先獲得中間圖像,對圖像進行色彩進行調整,從而完成圖像色差矯正,得到空域重構中間圖像:
其中Ic(p) -Ic(j)表示像素點p和j亮度差,d(p,j)表示度量函數.最后將其映射到[0,255]空間中從而得到:
(4)DCP 算法
DCP算法中模型可以表示為
其中I為有霧霾的圖像,J表示理想圖像,t是透射率,A表示全局大氣光照,通常選擇暗通道中最亮的0.1%的像素來計算獲得.
定義暗通道為
其中,c是圖像中各個顏色通道.根據暗通道原理Jdark(x)是趨于0 的.推導公式可以得到透射率,通常在透射率中加入一個系數得到
圖2 展示的是系統初始界面,其對應是Ret?inexSSR,HE,ACE,MEAN,DCP 五種具體清晰化算法菜單選項.圖5 到圖9 中使用的圖片是網絡上各個算法使用的經典圖片,圖10 中使用圖片是在沙塵天氣下使用手機拍攝的喀什大學新泉校區照片.

圖5 RetinexSSR算法
在RetinexSSR 算法界面中有打開圖像和保存圖像.系統打開時候,中間左右兩邊顯示的都是原始待處理圖片.算法完成后,系統界面左邊顯示的原始待處理圖片,系統界面右邊顯示的是算法完成后圖片(后續各個算法一樣進行設置).SSR 操作就是對圖片進行RetinexSSR 算法處理.Radius 是算法中窗口半徑值,SigmaS 和a 值[0,1]是算法中使用的參數值,可以進行設置.運行結果如圖5 所示.
在HE 界面中有打開圖像和保存圖像.直方圖增強操作就是對圖片進行HE 清晰化算法處理.運行結果如圖6 所示.

圖6 HE算法
在ACE 系統界面中有打開圖像和保存圖像.ACE 操作就是對圖片進行ACE 算法處理.radius 是算法中窗口半徑值,ratio 是算法中使用的參數值,可以進行設置.運行結果如圖7所示.

圖7 ACE算法
在DCP 去霧界面中有打開圖像和保存圖像.DCP 處理操作就是對圖片進行DCP 清晰化算法處理.RadiusDark,aipha,RadiusGuider,epsilon 是算法中使用的參數值,可以進行設置.運行結果如圖8所示.

圖8 DCP算法
在MEAN去霧界面中有打開圖像和保存圖像.MEAN 處理操作就是對圖片進行MEAN 算法處理.radius 是算法中窗口半徑值,rho 是算法中使用的參數值,可以進行設置.運行結果如圖9所示.

圖9 MEAN算法
從圖5—9 所示運行結果中可以看出,在五種清晰化算法RetinexSSR,HE,ACE,MEAN,DCP 中MEAN 算法效果最好.本文使用MEAN 算法對喀什地區沙塵圖片進行處理,選取的圖片是在喀什沙塵天氣下使用手機拍攝的喀什大學新泉校區圖片.具體處理效果如圖10所示.

圖10 MEAN算法處理喀什大學新泉校區沙塵圖片
本系統實現了RetinexSSR,HE,ACE,MEAN,DCP 五種圖像清晰化算法.利用C#程序設計語言編程完成系統界面設計,并用C++程序設計語言實現五種不同圖像清晰化算法并且生成動態鏈接庫DLL,在C#界面程序里調用DLL庫函數.在后續研究中將實現更多的圖像清晰化算法.