图像去雾
背景
關于霧霾(Haze Image)
在霧天環境中, 由于大氣中存在隨機介質, 如懸浮顆粒、霧、霾等, 光從物體表面反射到達相機的過程會發生散射偏離了原來的傳播路徑而衰減。
霧霾圖像特征
- 低可見度
- 色彩暗淡
- 低對比度
霧霾圖像
背景知識
物理模型
I=Jt+A(1?t)(1)
這里I是有霧圖像,J是清晰圖像,t是透射率圖,A是大氣光值。
暗通道先驗(Dark Channel Prior)
由于不知道透射率t和大氣光值,因此這里需要一些先驗知識。何凱明等人基于對無霧清晰圖像提出暗通道算法,即對圖像取RGB圖像的最小通道圖像,然后再對局部區域做最小值濾波。對于清晰圖像J得到的基本是一副全黑的圖像,這個先驗知識對大多數圖像是有效的,論文中《Single Image Haze Removal using Dark Channel Prior》稱其為暗通道先驗。?
Jdark=minΩ(minC(JC))
這里Jdark是指J的暗通道,JC是J的一個顏色通道。
暗通道先驗去霧
透射率圖的估計
將(1)式兩端歸一化得到(2)式?
對(2)式同時求其兩端的暗通道,得?
minΩ(minC(ICAC))=minΩ(minC(JCACt))+(1?t)(3)
在這里是假設局部窗口透射率t是常數。(3)式右端第一項趨近于0。因此可以根據上述估計出透射率t。即?
t=1?minΩ(minC(ICAC))(4)
但是目前我們還不知道大氣光值A,這個還比較好辦。
大氣光A的估計
He等先從暗通道中選取最亮像素的0.1比例, 然后選取原輸入圖像中這些像素具有的灰度值作為全局大氣光估計。這樣可以避開白色干擾物的影響。
細化透射率圖
這樣得到的透射率圖 , 邊緣和紋理細節都有一定的損失。直接使用恢復出的圖像常常在場景深度突變位置產生殘霧。因此需要對透射圖進行邊緣保持的濾波器優化,可以是soft matting, guided filter,bilateral filter,甚至用中值濾波也行。
恢復圖像
估計出大氣光A和透射率t,我們就可以恢復出清晰圖像J了。
算法流程圖
輸入圖像I計算有霧圖像的暗通道估計大氣光A估計透射率圖細化透射率圖清晰圖像J結果
我用C++按照原文編寫程序,測試了一些標準圖片,右鍵點擊可查看原圖:?
說明
本文介紹了暗通道去霧算法,對于去霧后圖像較暗問題,可以增大其曝光,或者調整曲線等。暗通道算法去霧(GDCP)速度還不夠快,處理一副600*450的圖片耗時100ms,其中使用了van Herk的O(1)最小值濾波。另外一點,不適用于濃霧天氣以及大片天空的區域。該算法簡單,對大多數圖像效果顯著,觀點新穎,這也是為何是得了最佳論文的原因吧。Matlab central上分享的源代碼下載地址,可供參考。
更多閱讀
http://research.microsoft.com/en-us/um/people/kahe/cvpr09/index.html?
A fast algorithm for local minimum and maximum filters on rectangular and octagonal kernels
轉載請保留以下信息
| 風吹夏天 | 2015年5月1日 | wincoder@qq.com |
總結
- 上一篇: 图像去模糊(逆滤波)
- 下一篇: Fast RCNN 训练自己数据集 (1