图像增强系列-----史上最简单的说明----暗通道去雾

原理可以参考何凯明2009年发表的暗通道去雾算法文献,链接就不给了,随便搜一波就得到的

原理过程:作者统计大量自然拍摄的图像,大概5000张,发现了一个现象:无雾的图像暗通道接近0.

定义一波暗通道:暗通道图像就是当前彩色图像局部领域中最小的数值,公式表示如下:

                                                                      J^{dark} = min_{y\subset \Omega (x)}(min_{c={r,g,b}}(I^{c}(y)))

2.雾图模型:I(x)=J(x)*t(x)+A(1-t(x))(注释:相机拍摄得到的图像=无雾图像*大气透射率+雾值*(1-大气透射率))

 

公式2对雾值求导得到:

                                                                  \frac{I^{c}(x)}{A^{c}}=\frac{J^{c}(x)}{A^{c}}*t(x+(1-t(x))                                                             (3)

对公式(3)等式两边在x的领域范围内取最小值,假定在x的领域范围内的大气透射率一样,为\tilde{t},可以得到:

                                         min_{y\subset \Omega (x)}(min_{c={r,g,b}}(\frac{I^{c}(y)}{A^{c}}))=\tilde{t}*min_{y\subset \Omega (x)}(min_{c={r,g,b}}(\frac{J^{c}(y)}{A^{c}}))+1-\tilde{t}                                     (4)

等式4中等号后面第一项就是无雾图像的暗通道,为0,所以可以得到\tilde{t}

                                                                   \tilde{t}(x)=min_{y\subset \Omega (x)}(min_{c={r,g,b}}(\frac{I^{c}(y)}{A^{c}}))                                                       (5)

求得到了大气透射率后,我们再去得到雾值就可以通过公式2得到去雾后的图像

雾值估计:1)在暗图像\tilde{t}(x)中取前千分之一的像素相同位置对应的原图中像素中最大的做为雾值:

                                                                          J(x) =(I(x)-A)/t(x)+A                                                             (6) 

改进:(1) 取x领域范围内的图像可以通过保边滤波得到,然后去雾后的图像偏暗,可以通过自动色阶的方式增强回来

          (2)公式6改进: J(x) =\frac{(I(x)-A)}{max(t(x),0.1)}+A   防止除0的情况

 

 

你可能感兴趣的:(图像增强)