雾图模型
I ( x ) = J ( x ) t ( x ) + A ( 1 − t ( x ) ) I(x)=J(x)t(x)+A(1-t(x)) I(x)=J(x)t(x)+A(1−t(x))
I(x) ——待去雾的图像
J(x)——无雾图像
A——全球大气光成分
t——折射率(大气传递系数)
暗通道先验
在无雾图像中,每一个局部区域都很有可能会有阴影,或者是纯颜色的东西,又或者是黑色的东西。因此,每一个局部区域都很有可能有至少一个颜色通道会有很低的值。把这个统计规律叫做Dark Channel Prior。
首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波(林宇中取最小值)
计算折射率
t
(
x
)
=
1
−
w
m
i
n
(
m
i
n
I
(
y
)
/
A
)
t(x)=1-wmin(minI(y)/A)
t(x)=1−wmin(minI(y)/A)
估计大气光
1.选取暗通道图像暗通道最亮的0.1%的像素(一般来说,这些像素表示雾浓度最大的地方)
2.取输入图像里面这些像素对应的像素里面最亮的作为大气光
(暗图像最亮的0.1%的像素对应的原图最亮的为大气光)
注:选中的像素未必是全图最亮的,而且要比选取全图最亮的方式鲁棒性更好。
去雾
J
(
x
)
=
I
(
x
)
−
A
/
m
a
x
(
t
(
x
)
,
t
0
)
+
A
J(x)=I(x)-A/max(t(x),t0) +A
J(x)=I(x)−A/max(t(x),t0)+A
t0=0.1
流程:
1.求图像暗通道
2.利用暗通道计算出折射率
3.利用暗通道估计大气光
4.代回雾图公式去雾