背景
关于雾霾(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)式
ICAC=JCACt+(1?t)(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了。
算法流程图
Created with Rapha?l 2.1.2输入图像I计算有雾图像的暗通道估计大气光A估计透射滤图细化透射滤图清晰图像J
结果
说明
本文介绍了暗通道去雾算法,但是很难达到何凯明主页上给出的效果,论文中提到去雾后对图像进行了色阶和亮度恢复,但细节位置。另外,暗通道算法不适用于浓雾天气以及大片天空的区域。暗通道算法简单,却对大多数图像效果显著,观点新颖,这也是为何是得了最佳论文的原因吧。
本文的最后给出的效果,是对去雾方法进行了改进,并未完全按照论文编码,特此声明。另外,给出Matlab central上分享的Matlab源代码下载地址,可供参考。
更多阅读
http://www.cnblogs.com/Imageshop/category/535365.html
http://research.microsoft.com/en-us/um/people/kahe/cvpr09/index.html
转载请保留以下信息
作者 | 日期 | 联系方式 |
---|---|---|
风吹夏天 | 2015年5月1日 | [email protected] |