1. 程式人生 > >基於單幅影象的快速去霧演算法實現

基於單幅影象的快速去霧演算法實現

  基於影象復原的去霧方法中,最有代表性的是暗通道去霧演算法,但是暗通道去霧演算法的處理時間比較長,不能達到實時處理。在閱讀了大量文獻及其參考文獻,找到能夠實時處理的去霧演算法,是清華大學寫的文章:基於單幅影象的快速去霧演算法,作者:劉倩,陳茂華,周東華。
  廢話不多說,直接上演算法
這裡寫圖片描述
  首先對演算法進行一個簡單的說明,根據博文去霧技術綜述可知,去霧的主要步驟就是估計全域性大氣光A和透射率t(x)
文章中,使用了L(x)來代替A(1t(x))

L(x)=A(1t(x))(1)因此,本文就是根據輸入影象估計AL(x),然後根據霧天退化模型求取出去霧後的影象。
估計透射率t
(x)

根據博文去霧技術綜述可知,t(x)1H(x)A(2)H(x)三通道中的最小值,並記為M(x)=mincr,g,b(Hc(x))(3)因此公式(2)可以變換為t(x)1M(x)A(4)對公式(4)右邊進行均值濾波averagesa(1M(x)A)=1averagesa(M(x))A=1yΩ(x)M(y)Asa2(5)其中,sa表示均值濾波視窗大小,Ω(x)表示畫素x的sa×sa的鄰域。均值濾波後的結果能反應t(x)的大致趨勢,但與真實的t(x)還相差一定的絕對值,於是,得出透射率的粗略估計值t
(x)=1Mave(x)A+ψMave(x)A=1δMave(x)A(6)
其中Mave(x)=averagesa(M(x))δ=1ψψ[0,1],因此δ[0,1]。為了防止去霧後圖像出現整體畫面偏暗,這裡根據影象的均值來調整δ,即δ=ρmavmavM(x)中所有元素的均值,ρ為調節因子。因此可以得到透射率的計算公式t(x)=max(1mi