图像去雾在科研界是一个很有挑战性的话题,通过很多人的不断努力与实践,去雾方法越来越多,当然效果也越来越好,提到去雾算法,就不得不说何凯明博士的基于暗通道的去雾算法。本片文章主要以更加易懂的方式让大家了解基于暗通道去雾算法的原理以及代码实现。
1.首先是去雾算法背景。
在一个场景中,例如一座山,我们将场景分为两种情况,一种情况是现实生活中真实的图像,另一种是我们观察到的场景。由于光线通过媒介透射到我们眼睛中被散射一部分,所以就会不清晰。在有雾的情况下散射的更严重,也就是说在晴天我们看山很清晰,在有雾的情况下看山和模糊。于是有一个方程模型来描述雾图的形成。
(1)
I是指观察到的图像强度,J是指景物光线的强度,A是指全球大气成分光,t用来描述光线通过媒介透射到照相机过程中没有被散射的部分,去雾的目标就是从I中复原J,A, T。
方程右边的第一项J(x)t(x)叫做直接衰减项,即景物的光线在透射媒介中经过衰减后的部分。第二项A(1-t(x))则是大气光成分,即大气光是有前方散射引起的,会导致景物颜色的偏移。
在(1)式子中由于I(x)已知(需要去雾图片)只需要知道透射率t和大气光成分A,即可求出实际图像J(x),
2.暗原色先验
暗原色先验是作者通过大量图片分析,进行验证出来的,暗原色是图片中原本存在的。作者通过对大量户外无雾的图片观察得出,在绝大多数非天空的局部区域内,某一些像素总会有至少一个颜色通道具有很低的值,也就是说该区域光强度的最小值是很小的,公式描述如下
(2)
Jc代表J的某一个颜色通道,而欧米卡x是以x为中心的一块方形区域。作者观察得出,除了天空方位,Jdark的强度总是很低并且趋近于0。
3.求透射率
作者假设了大气光因子A是给定的,具体怎么评评估