图像处理-图像去雾

雾图模型

$$I(x)=J(x)t(x)+A(1-t(x))$$

I(x) ——待去雾的图像
J(x)——无雾图像
A——全球大气光成分
t——折射率(大气传递系数)

暗通道先验

在无雾图像中,每一个局部区域都很有可能会有阴影,或者是纯颜色的东西,又或者是黑色的东西。因此,每一个局部区域都很有可能有至少一个颜色通道会有很低的值。把这个统计规律叫做Dark Channel Prior。

实际生活中造成暗原色中低通道值主要有三个因素:a)汽车、建筑物和城市中玻璃窗户的阴影,或者是树叶、树与岩石等自然景观的投影;b)色彩鲜艳的物体或表面,在RGB的三个通道中有些通道的值很低(比如绿色的草地/树/植物,红色或黄色的花朵/叶子,或者蓝色的水面);c)颜色较暗的物体或者表面,例如灰暗色的树干和石头。总之,自然景物中到处都是阴影或者彩色,这些景物的图像的暗原色总是很灰暗的。

首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波(邻域中取最小值)

验证了暗通道先验理论的普遍性

计算折射率

$$t(x)=1-wmin(minI(y)/A)$$

估计大气光

1.选取暗通道图像暗通道最亮的0.1%的像素(一般来说,这些像素表示雾浓度最大的地方)
2.取输入图像里面这些像素对应的像素里面最亮的作为大气光
(暗图像最亮的0.1%的像素对应的原图最亮的为大气光)

注:选中的像素未必是全图最亮的,而且要比选取全图最亮的方式鲁棒性更好。

去雾

$$J(x)=I(x)-A/max(t(x),t0) +A$$
t0=0.1

流程:
1.求图像暗通道

2.利用暗通道计算出折射率

3.利用暗通道估计大气光

4.代回雾图公式去雾

我的代码-图像去雾算法Matlab实现

最后修改:2020 年 07 月 07 日 10 : 27 PM
如果觉得我的文章对你有用,请随意赞赏