1、概述

图像去雾的研究算法有很多,但是主要分为两类:基于图像增强的去雾算法和基于图像复原的去雾算法。

基于图像增强的去雾算法

去除图像的噪声,提高图像的对比度,从而恢复出无雾清晰视频。具有代表性的图像增强去雾算法有:

1. 直方图均衡化(HE),自适应直方图均衡化(AHE),限制对比度自适应直方图均衡化(CLAHE)

2. Retinex算法

3. 小波变换

4. 同态滤波

基于图像复原的去雾算法

根据大气退化模型,进行响应的去雾处理。具有代表性的去雾算法:

1. HE的暗通道去雾算法,导向滤波的暗通道去雾算法 (Single image haze removal using dark channel prior, Guided image filtering)

2. Fattal的单幅图像去雾算法(Single image dehazing)

3. Tan的单一图像去雾算法(Visibility in bad weather from a single image)

4. Tarel的快速图像恢复算法(Fast visibility restoration from a single color or gray level image)

5. 贝叶斯去雾算法(Single image defogging by multiscale depth fusion)

基于图像复原的去雾方法,使用了大气退化模型进行去雾,相当于图像成像时的逆变换,去雾效果会好于基于图像增强的去雾算法。本文主要讨论基于复原的去雾算法。

2、雾天图像退化模型

在计算机视觉领域,通常使用雾天图像退化模型来描述雾霾等恶劣天气条件对图像造成的影响,该模型是McCartney首先提出。该模型包括衰减模型和环境光模型两部分。模型表达式为:

I(x)=J(x)e−rd(x)+A(1−e−rd(x))⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(1)I(x)=J(x)e−rd(x)+A(1−e−rd(x))·······················(1)其中,x是图像像素的空间坐标,H是观察到的有雾图像,F是待恢复的无雾图像,r表示大气散射系数,d代表景物深度,A是全局大气光,通常情况下假设为全局常量,与空间坐标x无关。

公式(1)中e−r(dx)e−r(dx)表示坐标空间x处的透射率,我们使用t(x)t(x)来表示透射率,于是得到下面的公式:

I(x)=J(x)t(x)+A(1−t(x))⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(2)I(x)=J(x)t(x)+A(1−t(x))·······················(2)由此可见,图像去雾过程就是根据I(x)求解J(x)的过程。要求解出J(x),还需要根据I(x)求解出透射率t(x)和全局大气光A。

实际上,所有基于雾天退化模型的去雾算法就是是根据已知的有雾图像I(x)求解出透射率t(x)和全局大气光A。

估计全局大气光A:

1、暗通道去雾算法中的估计全局大气光A

先从暗原色通道中选取最亮的0.1%比例的像素电,然后选取原输入图像中这些像素具有的最大灰度值作为全局大气光A。RGB三通道中每一个通道都有一个大气光值。

2、分块递归思想估计全局大气光A:

先将图像平均分为四个部分,然后分别求取四个部分中的平均亮度值,选取亮度值最大的块,将这个块平均分为四个块,选取最亮的块,当分解到块的大小达到一定阈值时,在这个块中选取亮度最大的点作为全局大气光A。

3、亮度最大值作为全局大气光A

选取输入图像中亮度最大的电的灰度值作为全局大气光A。

4、分段思量估计全局大气光A

观察一般的图像,天空部分一般分配在图像的上1/3部分,因此将图像水平分为3个部分,然后在最上的1/3部分使用暗通道估计算法估计全局大气光A。

5、快速估计全局大气光A

首先求取输入图像RGB三通道中的最小值,即求取暗原色通道图像,然后对暗原色通道图像进行均值滤波,然后求取其中灰度值最大的点,接着求取输入图像RGB三通道中值最大的通道图像,然后求取出灰度值最大的点,然后将两个点的灰度值的平均值作为全局大气光A。

估计透射率t(x):

1、暗通道去雾算法

使用上面的方法先求取出全局大气光A,然后根据公式(2)可以得出:

t(x)=A−I(x)A−J(x)⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(3)t(x)=A−I(x)A−J(x)···············(3)  首先可以确定的是t(x)的范围是[0, 1],I(x)的范围是[0,255],J(x)的范围是[0, 255]。A和I(x)是已知的,可以根据J(x)的范围从而确定t(x)的范围。已知的条件有:

0≤J(x)≤255,0≤I(x)≤A,0≤J(x)≤A,0≤t(x)≤1⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(4)0≤J(x)≤255,0≤I(x)≤A,0≤J(x)≤A,0≤t(x)≤1··········(4)

t(x)≥A−I(x)A−0=A−I(x)A=1−I(x)A⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(5)t(x)≥A−I(x)A−0=A−I(x)A=1−I(x)A················(5)  结合式(4)和式(5)可得:

1−I(x)A≤t(x)≤1⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(6)1−I(x)A≤t(x)≤1·······························(6)  因此初略估计透射率的计算公式:

t(x)=1−I(x)A⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(7)t(x)=1−I(x)A·······················(7)  为了保证图片的自然性,增加一个参数w来调整透射率

t(x)=1−wI(x)A⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(8)t(x)=1−wI(x)A·······················(8)

2、迭代思想估计透射率

要想得到好的图像去雾效果,肯定是需要去雾后的图像对比度高,并且图像的失真越小。我们对式(2)进行变换得到:

J(x)=1t(x)I(x)−At(x)+A⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(9)J(x)=1t(x)I(x)−At(x)+A···············(9)  可以看出J(x)是I(x)的直线方程,直线与y轴的交点(0, −At(x)−At(x)),与x轴的交点为(A[1-t(x)], 0)。可以看出当I(x)在0和255之间变换时,J(x)会有负数,会超过255。也就是会产生失真。

我们使用下式来衡量失真度:

Eloss=∑c∈(r,g,b){(min(0,Jc(x)))2+(max(0,Jc(x)−255))2}⋅⋅⋅⋅⋅⋅⋅(10)Eloss=∑c∈(r,g,b){(min(0,Jc(x)))2+(max(0,Jc(x)−255))2}·······(10)  我们使用均方误差MSE来衡量对比度增强:

Econtrast=∑c∈(r,g,b)(Jc(x)−Jmean)2Nall=∑c∈(r,g,b)(Ic(x)−Imean)2t2Nall⋅⋅⋅⋅⋅⋅(11)Econtrast=∑c∈(r,g,b)(Jc(x)−Jmean)2Nall=∑c∈(r,g,b)(Ic(x)−Imean)2t2Nall······(11)  其中ImeanImean表示平均值,NallNall表示像素点的总数。因此我们要求取透射率使Eloss−EcontrastEloss−Econtrast的值最小。选定t(x)从0.1开始,每次增加0.1,一直到1.0,迭代9次,求取其中使Eloss−EcontrastEloss−Econtrast最小的值作为改点的透射率。

每个像素点单独求取透射率会花费大量的时间,我们可以假设一小块区域的像素的透射率相同,计算没一小块中Eloss−EcontrastEloss−Econtrast最小的值作为该块所有像素点的透射率。

3、精细化透射率

精细化透射率方法有:

1、软抠图

2、双边滤波

3、导向滤波

4、恢复无雾图像

估计出全局大气光A和透射率t(x)后,使用公式(9)可以计算得出去雾后的图像。实践表明这样去雾操作后,得到的无雾图像亮度会偏暗,可以使用自动对比度增强,亮度增强,伽马校正等图像处理方法进行处理,以便得效果更佳的无雾图像。

5、结语

本文对图像去雾技术进行了简单的概括归纳,重点介绍了基于图像复原的去雾算法原理以及相关的技术。文章没有很详细的讲解算法,只是基本描述了去雾过程所涉及的技术方法。详细的讲解,我会在后续的文章后继续更新。

因本人水平有限,如有错误还请批评指正。

去雾综述_图像去雾技术综述相关推荐

  1. 去雾综述_图像去雾的算法历史与综述

    图像去雾的算法历史与综述 1. 前言 其实之前对图像去雾也没有什么深入的理解,只是了解,实现过一些传统的图像去雾方法而已.个人感觉,在CNN模型大流行的今天,已经有很多人忽略了传统算法的发展,以至于你 ...

  2. 去雾综述_【综述】图像去雾的前世今生

    1. 前言 其实之前对图像去雾也没有什么深入的理解,只是了解,实现过一些传统的图像去雾方法而已.个人感觉,在CNN模型大流行的今天,已经有很多人忽略了传统算法的发展,以至于你今天去搜索10年前的传统去 ...

  3. globalmapper如何选取图像上的点_图像去雾的算法历史与综述

    图像去雾的算法历史与综述 1. 前言 其实之前对图像去雾也没有什么深入的理解,只是了解,实现过一些传统的图像去雾方法而已.个人感觉,在CNN模型大流行的今天,已经有很多人忽略了传统算法的发展,以至于你 ...

  4. python图像去污_图像去雾----暗通道

    暗通道去雾算法原理及实现 1. 算法原理. 暗通道. 所谓暗通道是一个基本假设,这个假设认为,在绝大多数的非天空的局部区域中,某一些像素总会有至少一个颜色通道具有很低的值.这个其实很容易理解,实际生活 ...

  5. matlab 图像去雾算法,各种图像去雾算法

    2005.bmp 5.bmp 5_retinex.bmp Fast Visibility Restoration from a Single Color or Gray Level Image.pdf ...

  6. 图像几何变换时为何要用到插值算法?_图像超分辨率技术-简介

    这篇是我之前的课程报告,格式传上来乱了,有时间我会调整,我先把pdf版本放在最前面,建议直接看pdf. 一. 定义与分类 超分辨率复原技术的基本思想是釆用信号处理的方法,在改善图像质量的同时,重建成像 ...

  7. 综述类_网络入侵检测技术综述

    文章目录 网络入侵检测技术综述 大纲 一.入侵检测系统分类 1.基于数据来源划分 2.基于检测技术划分 二.基于传统机器学习的入侵检测 1.入侵数据处理 2.监督机器学习技术 3.无监督机器学习技术 ...

  8. 文献综述-家装风格自动分类技术综述

    2016-8-25 zwqStella 摘要 在查阅了许多关于图像特征提取技术方面文献后,本文主要讨论了家装风格自动分类技术的基本介绍和家装风格自动分类的主要研究方法,家装风格自动分类技术的应用前景, ...

  9. python图像去污_图像去雾毕业论文准备02-python中os标准库

    OS:operate System 操作系统 os模块并不是python启动时的模块 导入os模块 import os 标准库 import os help(os) 1 getcwd()获取当前工作目 ...

最新文章

  1. 计算机桌面是哪个盘,windows的桌面文件夹是哪个?
  2. R语言可视化包ggplot2改变图例(legend)的标题(title)实战
  3. Android之自定义控件一起制作自定义标签
  4. dom定位的三种元素
  5. 【数据结构作业心得】4-0 二叉树
  6. 软件测试工作常用linux命令,软件测试工程师工作中常用的Linux命令
  7. QML基础类型之vector4d
  8. PHP5.6.6上运行 ecshop 2.7.3常见问题处理
  9. P1040 加分二叉树【dp+深搜】
  10. ora-03113 访问某条记录_用了Excel十几年,你居然不知道“记录单”?!可能错过一个亿……...
  11. CSS中定义多个链接样式,在CSS中定义【导航栏】超链接样式
  12. Gitbook/Markdown中插入复杂(合并单元格)的表格
  13. 为什么要始终启用编译器警告?
  14. scikit-learn 算法的通用形式
  15. spring入门——注入demo
  16. 关于知云文献翻译显示乱码,无法翻译的解决方法
  17. 杰奇win系统装Linux,杰奇小说liunx+win下关关完美运行采集方案
  18. 平面设计基础(PS)知识点总结
  19. 计算机sci审稿意见,【小木虫SCI秘籍】感悟之二——一个审稿意见的回复 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  20. 喜马拉雅数据接口 JSSDK API 接入 demo WEB版 标准登录 、免登陆

热门文章

  1. Tanner L-Edit 系列教程:01 软件安装 - 附资源包
  2. c运行库之 c语言标准库、glibc、 gcc库
  3. MATLAB矩阵变换--三角阵
  4. 小程序——切割字符串
  5. ArcEngine根据属性分割要素类的实现方法
  6. Java基础面试题/知识点总结
  7. bean到底是什么?(简单易懂)
  8. 关于通用mapper的使用
  9. 机器学习项目(一)——垃圾邮件的过滤技术
  10. cena评测系统:自定义校验器(浮点误差)