基于暗通道先验的单幅图像去雾算法研究(一)

基于暗通道先验的单幅图像去雾算法研究(一)

  • 算法框图
  • 改进之处详解
  • 代码实现与仿真结果

算法框图

这里写图片描述

改进之处详解

自适应滤波窗口大小

对于最小值滤波窗口的大小采用自适应的方法,应对所有的图片尺寸。
**实现方法
windowsize=min(h*0.03,w*0.03,35)
其中35为最高的阈值,35*35滤波窗口对于各种尺寸图片的滤波结果都相对较好。

自适应大气光值的求解(天空分割)

大气光值原始求解方法
(1)对暗通道图像的像素强度进行排序,对前千分之一的像素点对应的原始图像区域作为天空区域,此区域内的像素最大值作为大气光值。
(2)直接将暗通道图像中像素最高的点,对应的原始图像的点的像素作为大气光值。
大气光值自适应求解方法
首先将图像分为天空区域和非天空区域,找到天空区域中像素最大点,得到原始图像中该点对应的最小值滤波窗口,找出窗口中满足条件的像素点,选择最大的点作为大气光值,若没有满足条件的点,则将窗口中的像素平均值作为大气光值。
条件
A=(1-a)max(Idark)+a*max(Irgb)
条件原理
论文
天空区域分割的步骤:
(1)灰度图像,滤波,canny边缘检测,得到包含边缘信息的二值图像
(2)对二值图像进行从上到下扫描,将每一列的第一个等于1的像素点之前的全部为1,之后的像素点全部置为0,得到新的二值图像
(3)求取像素点为1的区域对应灰度图区域的像素平均值和最大值,若Imax>0.9*Iavg,则图像中有天空区域,应用自适应的方法求解大气光值,否则采用原始方法。

实现方法
Markdown Extra

导向滤波

对透射率进行矫正
实现方法

暗通道先验失效区域透射率的优化(加入容差值)

原理讲解
对大气光散射模型进行改进,考虑车灯、水面等区域的像素强度接近大气光,暗通道先验模型,并不适用,故而加入一个容差值,当像素强度达到容差值K时,将它看作大气光区域,这样计算出来的去雾图像在光亮区域不会有色斑。
容差值K的取值
K=0.7*Idark_avg

代码实现与仿真结果

实现方法

(1)在自适应大气光值的部分,并没有完全按照那个条件求,满足条件的点,直接用平均值作为A。用原始方法求解A,得到的结果一样,下次尝试求解满足条件的点,
(2)针对去雾图像的结果太暗的问题,应用伽马校正和自动色阶,伽马小于1,但是对于无雾的部分,会有模糊,而且伽马值的选取。
(3)在求解A的部分加入了最大大气光值220,作为限制
(4)在求解粗略透射率时,加入平均大气光值,得到的透射率图更好
(5)加入了自动色阶,但是得到的图像的去雾效果并不很好,然后再看一下何博士的论文,同时尝试用深度学习的方法做。
天空部分有色斑!!!


猜你喜欢

转载自blog.csdn.net/sinat_37114941/article/details/80104988