1. 程式人生 > >基於偏振差分成像的圖像去霧算法

基於偏振差分成像的圖像去霧算法

base bsp ola sed ali 天氣情況 宋體 相機 設計

Polarization-based vision through haze

Yoav Y.Schechner,Srinivasa G.Narasimhan,and Shree K.Nayar

Columbia University

1,介紹

這篇文章在分析圖像形成的過程中,將偏振對大氣散射的影響考慮在內,然後設計從圖像中去霧的算法。這個方法可以通過旋轉偏振片到不同的角度或者兩張偏振圖像來實現。這個方法效果很好,不需要依賴天氣情況的變化。

2,基本原理

把從光源到分布粒子的光線和從分布粒子到相機的光線構成的平面作為標準平面。將一束光線分成兩個偏振分量,平行的量和垂直的量。光線和此平面平行的偏振量為,光線和此平面垂直的偏振量為,可以定義偏振度為:

其中A定義為:

根據大氣散射模型,直接傳輸定義為:

其中表示無霧圖像,t(z)可以表達為:

從而沒有經過偏振片的含霧圖像可以表達為:

當旋轉偏振片時,是隨偏振角度變化的函數,其函數曲線如下:

由上圖可見,當偏振角度為90度時,為“最壞的狀態”。當偏振角度為0度時,為“最好的狀態”。其表達式如下:

其中和通過反解上式可得:

3,去霧過程

首先,應該求得大氣光值和其對應的偏振度p。由於得到的0度和90度偏振圖像中含有白色區域,不能直接選取圖像中0.1%最亮的點的平均值作為大氣光值。本文的做法如下,將90度偏振圖像與0度偏振圖像相減,得到的圖像取其最亮的0.1%

的點,在分別在0度和90度的偏振圖像中找到作差得到的圖像的最亮的0.1%的點的位置,取這些點的平均值,分別得到0度和90度偏振圖像的大氣光值。

現在定義每一個像素點的大氣光為:

無偏振圖像為:

傳輸函數為:

由以上各式,得到去霧圖像為:

4,結果分析

依據上述的理論過程,利用MATLAB/C++實現的結果如下:

可以很明顯的看到,通過上述理論過程去霧,在景物部分的效果很好,而在天空區域出現了很嚴重的噪聲。為了解決這個問題,文章引入了一個參數,然後實現如下替換:,就可以解決天空區域噪聲很大的問題。去噪的結果如下:

5,結論

通過以上的兩個結果進行比較發現:不引入參數時天空區域出現嚴重的噪聲現象;引入參數後,景物部分又出現了去霧效果不好的結果。總之,應適當調整引入的參數的大小,才能達到更好的去霧效果。

基於偏振差分成像的圖像去霧算法