文章插图
1.算法原理
言归正传,如果是图像处理或研究图像去雾领域的作者,建议大家认真阅读这篇英文原文,能在2009年提出该算法真的很惊艳 。
引用及参考中文论文: 何涛, 等. 基于暗通道先验的单幅图像去雾新算法[J]. 计算机科学, 2021.王蓉, 等. 基于改进加权融合暗通道算法的图像去雾研究[J]. 浙江科技学院学报, 2021.图像去雾算法的原理、实现、效果(速度可实时)- 挚爱图像处理图像去雾之何凯明暗通道先验去雾算法原理及c++代码实现 - Do it ! 英文原文: https://ieeexplore.ieee.org/document/5567108 Single Image Haze Removal Using Dark Channel Priorhttps://ieeexplore.ieee.org/document/5206515 Single image haze removal using dark channel prior
文章插图
暗通道先验(Dark Channel Prior, DCP)去雾算法 依赖大气散射模型进行去雾处理,通过对大量有雾图像和无雾图像进行观察总结,得到其中存在的一些映射关系,然后根据有雾图像的形成过程来进行逆运算,从而恢复清晰图像 。
文章插图
算法实现过程及原理如下,参考何恺明老师和何涛老师的论文 。
(1) 大气散射模型
在计算机视觉和计算机图形学中,方程所描述的大气散射模型被广泛使用 。参数解释如下:
- x是图像的空间坐标
- I(x)代表有雾图像(待去雾图像)
- J(x)代表无雾图像(待恢复图像)
- A代表全球大气光值
- t(x)代表透射率
方程右边第一项为场景直接衰减项,第二项为环境光项 。
文章插图
(2) 暗通道定义
在绝大多数非天空的局部区域中,某些像素总会至少有一个颜色通道的值很低 。对于一幅图像J(x),其暗通道的数学定义表示如下:
文章插图
其中,Ω(x)表示以x为中心的局部区域,上标c表示RGB三个通道 。该公式的意义用代码表达也很简单,首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定 。
(3) 暗通道先验理论
暗通道先验理论指出:对于非天空区域的无雾图像J(x)的暗通道趋于0,即:
文章插图
实际生活中造成暗原色中低通道值主要有三个因素:
- a) 汽车、建筑物和城市中玻璃窗户的阴影,或者是树叶、树与岩石等自然景观的投影;
- b) 色彩鲜艳的物体或表面,在RGB的三个通道中有些通道的值很低(比如绿色的草地/树/植物,红色或黄色的花朵/叶子,或者蓝色的水面);
- c) 颜色较暗的物体或者表面,例如灰暗色的树干和石头 。
文章插图
总之,自然景物中到处都是阴影或者彩色,这些景物的图像的暗原色总是很灰暗的,而有雾的图像较亮 。因此,可以明显的看到暗通道先验理论的普遍性 。
推荐阅读
- python中非常好用的图像处理库
- 招聘|一线访谈丨2022职场突围记:这一年他们以退为进
- 东南三菱蓝瑟汽车;东南汽车被三菱“抛弃”,福州交投揽下25%股份丨汽车产经?
- Python面向对象详解
- 含免注册链接 用Python实现ChatGPT
- Python文件读写技巧
- 护肤品|海乐集焕颜乳霜丨美国小众护肤牌子
- kite的英文怎么读音 python kite 安装
- 县委大院|终评丨《县委大院》好就好在,始终闪耀着实事求是的精神光芒
- 翡翠|?翡翠丨中千入手的大马坎翡翠原石,巧色巧雕齐天大圣,意境十足!