暗通道先验去雾算法原理与实现

暗通道先验去雾算法是一种基于大气散射模型的图像恢复方法,其核心思想是利用无雾图像暗通道的统计特征来估计场景的透射率。

1. 暗通道计算:

  • 对输入图像进行最小值滤波,得到每个像素邻域内的最小颜色分量,构成暗通道图像。

2. 大气光估计:

  • 在暗通道图像中选取最亮的像素点,其在原图中对应的像素值可视为大气光。

3. 透射率估计:

  • 根据大气散射模型,利用暗通道图像和大气光值计算透射率。

4. 场景反射率恢复:

  • 利用估计的透射率和大气光值,通过逆推大气散射模型恢复场景反射率,得到去雾后的图像。

Python实现:

# 代码示例:计算暗通道
def get_dark_channel(img, patch_size):
  # ...
  return dark_channel

优势:

  • 算法简单高效,易于实现。

局限性:

  • 对天空区域的透射率估计可能存在偏差。
  • 对于非均匀雾场景的去雾效果有限。