经典暗通道先验模型可以表示为:
I(x)=J(x)t(x) + A(1-t(x))
这里I(x)为观察到的有雾图像,也就是我们所得的低质量图像,J(x)为无雾图像,A为大气光成分,为一常数 , t(x)为透射率(0,1)。
其含义就是图像I(x)为事物反射的光经过雾气衰减后加上雾气反射的大气光的结合所成的像。作者根据对5000多幅无雾图像的暗通道图数据观察发现:约75%的像素值为0,且90%的像素点具有非常低的值,且集中在[0,16]。由此提出暗通道先验理论,即对于一副无雾图像,其暗通道可以表示为:
表示J的任意一个颜色通道,Ω(x)表示在像素点x的窗口。
根据暗通道先验理论得出:
为此我们通过计算去求解透射率 t(x):
我们对大气散射模型公式(1)进行归一化处理;
这里我们假设大气光值A是已知的,并且透射率t(x)为常数,对上面公式的两边同时进行两次取最小值运算,可以得到下面式子:
J(x)是代求的去雾图像,根据暗通道先验理论得:
由此可得
将上述(8)式带入可得透射率t(x)得估计值:
在人们的日常生活中,众所周知,就算外面的天气晴朗无云,晴空万里,空气中还是会存在一些微小颗粒物的,当人们欣赏远处的物体时,总是能感受到雾的存在。同时,雾的存在会让人们感受到景深的存在,所以在去雾的同时也有必要保证一点雾的存在,使经去雾处理后得到的无雾图片看起来更加真实自然…。在这个过程中,我们通过引入一个 0 到 1 之间的因子w(传统暗通道先验去雾算法一文中w取值为0.95)对预估透射率t(x)进行修正,如式所示:
在图像中,雾浓度越低,其暗通道图越暗,像素点值越小;雾浓度越高,其暗通道图越亮,像素点值越大,因此,暗通道图可以较好的反映雾浓度信息。
对于大气光值的选取方法有:先在暗通道图中选出图中前0.1%的像素值最大的像素点(这些像素点通常表示的是雾最不透明的点),这些像素点对应到有雾图像中,选取像素值最高的像素点作为大气光A。
根据大气散射模型,将大气光A和t透射率带入式(1)可得到最终的复原场景: