基于偏振差分成像的图像去雾算法

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,结论

      通过以上的两个结果进行比较发现:不引入参数时天空区域出现严重的噪声现象;引入参数后,景物部分又出现了去雾效果不好的结果。总之,应适当调整引入的参数的大小,才能达到更好的去雾效果。

猜你喜欢

转载自www.cnblogs.com/rust/p/10396378.html