從最開始的Crimm Imageshop中最簡單的去霧功能開始,到前不久爲止研究的諸多去霧算法,再到近日和一些朋友的關於去霧經驗的交流,感受本身對這個方面的研究已經止步了,現對這些算法作個簡單的總結。html
本博客中共給出了6種有去霧功能的算法:算法
(1)基於何凱明博士提出的暗通道去霧算法;ide
(2)基於中值濾波(也可以使用高斯\均值\雙邊之類的)的去霧;函數
(3)基於均值濾波的實時去霧算法;優化
(4)基於多尺度Retinex圖像加強技術;ui
(5)基於自適應直方圖均衡化算法;spa
(6)基於自適應對比度及色階加強的圖像算法;視頻
其中前三種算法屬於基於去霧物理模型的,後三種屬於普通圖像加強手段。htm
咱們先說說後三種吧。基於Retinex的算法對於總體偏暗的圖像有很好的加強做用,用於去霧方面只可用於靜態的圖像,緣由有:(1) MSRCR是基於屢次高斯模糊的,裏面有不少的浮點計算,速度是個瓶頸;(2)對於有霧圖,有可能會出現過加強現象,使的圖像出現噪點;(3)對於自己比較正常的圖,處理後的效果人的視覺看來很不天然。blog
第5和第6種算法i是傳統的加強算法,對於圖像總體特徵比較單一的圖去霧的效果仍是至關明顯的,可是這兩個算法受參數的影響比較大,特別是取樣數或者說是Tile的大小,不一樣的Tile會形成局部圖像的過加強(偏白或偏黑),而且算法的複雜度也比較高,內部的分塊處理也不適合於並行處理,嚴重限制了其在實時去霧方面的應用。
第2種基於中值濾波的方式在一些論文裏也時有提到,實際我用高斯或者均值之類的模糊代替高斯,也有必定的去霧能力,若是是用中值,可能還會出現圖像周邊有明顯的分界效果,以下圖所示,注意看建築物頂部的幾個角的位置:
還有個問題就是雖然有快速的中值算法,可是考慮到如今的工業應用場合常見的處理大小,實時性仍是難以保證,所以,我認爲這個算法也只有停留在紙面上,創造不了使用價值。
第3篇算法提出的實時算法,其核心就是一個boxblur,約佔整個過程耗時一半左右,但確實能作到實時的能力。對於單幅圖像的去霧效果也是至關的不錯的,可是用於連續的視頻流去霧彷佛能發現各幀之間的過渡不是特別的天然。
在來講說何凱明的去霧算法吧,我如今看來,仍是這個算法最穩定、最可靠。一是這個算法的原理性經得起推敲,二是其效果綜合來講要比其餘的算法都爲好,特別是用於連續的視頻流。我認爲這主要仍是得益於其透射率圖要比其餘的都爲精細。你若是看看中值或者那個實時的,就能夠知道他們對應的透射率圖都很粗糙。 不過何的算法有一個致命的弱點,速度很慢,由於不管是用soft matting或者guide filter都有着大量的浮點運算,這嚴重的限制了其用於工業CCD的實時處理。
鑑於此,做者也試着對代碼進行深層次的優化,包括SSE處理、並行運行等,但因爲算法自己的順序執行,沒法全程並行,偶爾一個小函數能夠並行,但因爲其自己執行就特別快,好比不要5ms,你去用並行算法可能耗時還會大一些。所以,一直沒有什麼大的進步,對於一副1024*768的彩圖進行去霧須要90ms,這確定沒法知足需求。
最近,在思考,既然暗通道去霧的透射率圖比其餘的算法都來的精細,若是適當的下降一點點其精度,其去霧的效果理論上應該不會有太大的區別,因而我想到了一種方式,即求取透射率的時候不是對原圖進行求取,而是先對原圖進行下采樣,好比縮小爲原圖的1/4,計算出小圖的透射率,以後在經過插值的方式的獲取原圖大概的透射率,則應該也能夠得到效果。通過實踐,這種方式大大的提升了執行速度,並且效果和原始的方案基本一致,對於1024*768的圖像大約只須要30ms了,若是進一步取1/9的縮放,則只須要大約20ms,徹底能夠知足工業實時性要求高的場合。
固然,若是你的縮小系數不是特別大的話,好比縮小爲原來的0.5大小,可能兩次縮放所用的耗時還抵消了計算小圖的透射率圖所換來的盈利,所以必須合理選擇這個下采樣率。
去霧還有一些其餘人作的論文,比較經典好比有fattal論文:Single Image Dehazing
Jean-Philippe Tarel: Fast Visibility Restoration from a Single Color or Gray Level Image
最新的好比2013年的 Gaofeng MENG: Efficient Image Dehazing with Boundary Constraint and Contextual Regularization (國產的)
有興趣的朋友能夠本身去研究研究。
我作了一個程序,集成了上述6種圖像去霧的算法: 圖像去霧綜合版本
*********************************做者: laviewpbt 時間: 2014.1.12 聯繫QQ: 33184777 轉載請保留本行信息************************