Fast Visibility Restoration from a Single Color or Gray Level Image(Tarel)

2024-05-14 21:18

本文主要是介绍Fast Visibility Restoration from a Single Color or Gray Level Image(Tarel),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、去雾的基本原理

      由于大气中悬浮颗粒的存在,场景光线到达传感器之前总是有一部分被散射折射掉,从而导致获取的图像质量退化,使得场景中目标的能见度变弱。去雾能提高对比度。基本原理是:尘雾图像可看做两部分构成:一是场景辐射,二是尘雾。只要正确估计出尘雾浓度图,然后从原图像中减去它,就可以得到无雾图。基本方法是基于中值滤波估计尘雾浓度(大气光幕,大气耗散函数),利用大气散射模型恢复无雾图。

2、大气散射模型

       I(x)=J(x)t(x)+A[1-t(x)]

       目的是从有雾图像I(x)中恢复出清晰图像J(x)。

       ①A为大气光强;

       ②t(x)为介质传播函数,与景深有关,无法直接数据计算,要估算;

       ③第一项为衰减模型,表示衰减后的辐射强度,随场景景深的增大而指数衰减;④第二项为大气耗散模型,表示环境参与成像的附加部分,造成了图像对比度下降和场景模糊。

      J(x)、t(x)、A都未知,必须先估算A,t(x)。由暗原色先验理论估计大气光强A,由中值滤波估计尘雾浓度V,根据V(x)= A[1-t(x)],由V和A得到t。知道了t、A以及有雾图I,就可以根据大气散射模型恢复出J。

3. 暗原色先验理论估计大气光强A

      ①暗原色先验规律:对于晴天图像,在被分为多个局部区域后,每个局部区域至少在一个颜色通道上有亮度值很小的像素点。对一副图像求得其暗原色图像。

     ②估计原理:有雾图像的暗原色图像在雾气越浓的地方具有越高的像素亮度值,从视觉上看,暗原色图像的亮度对应于对雾气浓度的估计。

     ③ 暗原色图像的求法:图片分为多个区域,在RGB三个通道里分别求区域的最小值,再在这三个值中求最小值(局部最小值滤波)。

     ④在暗原色图像中,将各像素点亮度值递减排列,确定数值大小前0.1%的像素在暗原色图像中的位置,这些位置对应于原有雾图像,在有雾图像中的最大值即为大气光强A。

4.中值滤波做尘雾浓度V估计

       M(x, y) = min(I(x, y))

       M是图像I中每一个像素在RGB中的最小值,M是一个灰度级图像,如果输入I是灰度图,则M=I.

       尘雾浓度 V满足:

       ①0 ≤ V (x, y),物理意义是所有的像素点肯定都会受到大气光的影响。

       ②V (x, y) ≤ M(x, y),物理意义是有雾图像中的每个像素点的亮度值包含两部分,除了大气光之外还有景物本身反射的光,所以V(x,y)肯定小于或者等于像素值在所有通道中的最小值。

      估计V的具体步骤:

     ①采用中值滤波对M(x,y)进行平滑,平滑的同时能保留图像中的边界部分。

                                 A(x, y) = median_sv (M(x, y))

        这里sv是滤波的窗口大小,取值为图像中白色目标的最大尺寸。

      ②滤波之后的图像中仍然会存在一些纹理,而这些纹理可能没雾,不需要做去雾处理,所以用A减去M的局部标准差,这样确定留下来的都是属于雾的成分

                                B(x, y) = A(x, y) − median_sv (|M (x, y) − A(x, y) |)   

        对|M (x, y) − A(x, y) |进行中值滤波来估计M的局部标准差。

       ③B(x,y)遵守两个约束条件得:

                                V (x, y) = max(min(pB(x, y),M(x, y)), 0)

        p控制去雾能能力,一般的取值是在0.9~0.95之间。现实中,空气中总会不可避免地包含一些杂质分子.如果彻底地移除雾的存在,图像会看起来不真实,并且深度感会丢失。所以引进常数p,有针对性地保留一部分覆盖遥远景物的雾。

5. 去雾图像的恢复

     J=(I-V)/(1-V/A)

6. 去雾后图像亮度调整

     去雾后图像偏暗,可以用标准差截断法进行亮度调整。

 

the code

这篇关于Fast Visibility Restoration from a Single Color or Gray Level Image(Tarel)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989873

相关文章

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

三色标记(Tri-color marking)

维基百科部分 原文 https://en.wikipedia.org/wiki/Tracing_garbage_collection#TRI-COLOR Because of these performance problems, most modern tracing garbage collectors implement some variant of the tri-color ma

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保护场景中的应用。 文章主要贡献: 提出了MiniCPM-V系列模型,能在移动端设备上部署的MLLM。 性能优越:

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

HDU 1556 Color the ball (树状数组-- 区间更新,单点求值)

OJ题目 :点这里~~ 与 单点更新,区间求值 稍有不同,需要理解注意。 AC_CODE int n;int num[100002];int lowbit(int x){return x&(-x);}int sum(int x){int ret = 0;while(x > 0){ret += num[x];x -= lowbit(x);}return ret;}void ad

探索8421码、余三码、Gray码和余三循环码的编码技术

探索8421码、余三码、Gray码和余三循环码的编码技术 编码是数字电子学中的重要概念,它在数字通信、计算机系统和数据处理等领域扮演着至关重要的角色。本文将介绍几种常见的编码方式,包括8421码、余三码、Gray码以及余三循环码,并探讨它们的原理、特点和应用场景。 1. 8421码(BCD码) 8421码(BCD码,Binary-Coded Decimal)是一种用4位二进制数表示十进制

IMAGE LIST

   CImageList就是一个容器,用来存储图片资源,方便这些资源被CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl,CListCtrl等使用。      要使用CImgeList首先要使用它的create函数:      一般用的比较多的是这一个函数,当然,它还有很多重载,自己可以去翻阅msdn.       BOOL

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

【vscode】vscode paste image插件设置

本文首发于 ❄️慕雪的寒舍 vscode编辑md文件的时候,如果想插入图片,自带的粘贴只会粘贴到当前目录下,也没有文件重命名,很不友好。 在扩展商店里面有mushan的Paste Image插件,相比自带的,更加友好一点。但是它的配置把我弄糊涂了,简单测试了一下才明白处理的逻辑。 注意,本文编写的是对mushan的Paste Image插件的教程。 首先是安装这个插件,这个不多说

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二) pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)DatasetInputs to modelCaption LengthsData pipelineEncoderAttentionDecoder代码数据集初始化 create_input_files.py训练 tr