避免图像去雾算法中让天空部分出现过增强的一种简易方法

关于图像去雾中存在的一些待改进的地方 关于图像去雾中存在的一些待改进的地方   这一周在学习python的同时继续翻看了之前读过的论文,发现有些东西第一遍看的不太清楚马马虎虎,到第二遍重新读的时候才恍然大悟。比如之前一直不太清楚halo效应是如何产生的、为什么说是用暗通道先验条件的时候会对天空部分或明亮区域产生透射率估计不足的情况?之前只是知道这些结论但没有从根本上去理解这些现象的产生。通过二次翻阅论文,才算是理解了这些不足产生的... 阅读详情

FROM:http://www.chawenti.com/articles/25193.html

在经典的几种去雾算法中,包括何凯明的暗通道去雾、Tarel的基于中值滤波的去雾以及一些基于其他边缘保留的方法中,都有一个普遍存在的问题:即对天空部分处理的不好,天空往往会出现较大的面积的纹理及分块现象。究其主要原因,还是因为天空部位基本上是不符合暗通道去雾先验这个前决条件的。目前,针对这一问题,我搜索到的主要有以下几篇文章进行了处理:

  1、 改进的基于暗原色先验的图像去雾算法 作者: 蒋建国侯天峰齐美彬   合肥工业大学 2011。

      2、Single image dehazing Algorithms based on sky region segmentation, 2013  王广义  哈尔滨工业大学(这篇文章似乎要到学校里才能下载);

      第一篇文章增加了一个可控参数K, 用来调节每个像素处的透射率:

 

           

 

      当|I(x)-A|<k时,认为这个区域可能是天空,重新计算透射率(增加透射率),|I(x)-A|>k处,则认为是符合暗通道先验的区域,透射率不变。

      如果K取值为0,则相当于原始的透射率公式。

      上面的做法是较为合理的,因为一般情况下大气光A的取值和天空部分应该是非常接近的,而那些符合暗通道的地方则远离天空,关于这个算法的效果,我在我的《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果(速度可实时)一文的实例工程中已经提供了测试程序。

       第二篇文章的思路则是进行天空分割。对分割后的两部分透射率做不同的处理,那么这个的重点就在于天空特征的提取。作者原文是通过以下几个步骤来实现的。

     

     

 

     

  对这几个步骤我进行了粗陋的点评吧。

      第一步我认为最有价值,直接在原始数据判断天空不是很好做,作者观察到天空部分整体来说是比较平滑的,也就是相邻像素之间变化不大,因此用梯度来表示则更容易识别,梯度值越小则表明图像那一块越光滑。

      第二步则设定一个阈值来初步判断某处是否属于天空,这个阈值作者取的是0.02,量化到unsigned char范围则基本对应5。

      第三步对初步的边界进行下小范围的扩展。

      第四步对分割后的图的每个联通区域统计其原始图像在对应位置的像素的平均亮度,如果大于阈值T则保留,T这里作者取0.81,对应整数205左右。

      第五步取符合第四步条件的最大的联通区域作为识别的天空区域。

      第六步是为了防止一些漏检点,把在天空区域周边的一些像素在进一步进行识别,符合条件的则加到天空区域中。

      第七步是一些被完整包含在天空中还未被认为是天空的小区域添加到天空中。

     个人认为,除了第一步、第二步、第四步有必要外,其他的不需要这样处理。特别是第五步的处理会造成天空部位的漏检。比如下面的流程示意图的原图,如果用上述方式肯定会造成左上角处小部分天空完全丢失掉。另外一个问题就是,联通区域的计算还是比较耗时的。

     我的做法是: 

     1、将图像转换为灰度:这里为保留更多的边缘信息,可以考虑使用具有对比度保留功能或显著性保留功能的一些去色算法。

     2、求灰度图像的梯度信息(其实就可以用常用的一些边缘检测算子实现);

     3、对梯度信息进行适当的去噪和滤波;

     4、按照设定梯度阈值和亮度阈值对梯度信息进行区分;

     5、对区分后的图进行高斯羽化处理(可选的)。

    整个流程的示意图如下所示:

   

              原图                                    灰度图                                  梯度信息

  

            稍作去噪                                 初步天空识别                                      进行羽化

      作为对比,我们在给出几幅图的天空的识别效果:

      

     

 对于那些基本不存在天空的图,检测的结果如下:

     

  一片黑,因此,完全不影响结果。

      得到天空区域后,原文作者将天空区域的透射率图统一的设置成了一个固定值,我认为这样不好,还是应该根据具体的值做适当的修正。 在我上述的操作中,得到的天空去区域是一副蒙版图,某个点并不一定是完全属于天空或完全不属于。因此,我就可以根据这个值来+ 暗通道求得的值进行一下Alpha混合,如下所示:

  DarkChannel[Y]= (SkyPresrve * Sky[Y] + DarkChannel[Y] * (255 – Sky[Y])) / 255 ;    

  其中SkyPresrve就类似于论文的固定透射率值,是用户指定的,在上式中,若Sky[255],即完全属于天空,则改点的透射率即为固定值,若Sky[Y]=0,即完全不属于天空,计算式的值不变,不影响正常去雾。

      另外关于大气光值A的计算,论文提出了以获得的天空部位的像素的平均值作为A,这也是非常合理的,但是在实际处理时,针对有些完全没有天空部分的图像,可能检测到的天空区域很小(明显属于误检,但是程序不知道的),这个时候以此为大气光值,也是不合理的。为此,我的处理方式先计算天空部位计算的A值,然后在检测天空像素占整个图像的比例,如果比例小于5%,则还是以何凯明那种计算A的方式进行。

      还有一步,论文也提到了,就是这些校正的步骤都必须在refine阶段之前做,简单的说,就是需要在进行导向滤波前做。这样利用导向滤波的平滑功能,可以将天空和非天空分界部位的不平滑现象一定程度上弥补掉);

  为了提高速度,也可以采用我在何那篇论文的分析的博文中的方式,进行下采样处理,然后在上采样。

      作为对比,我们给出直接用何的方式实现的效果和用天空识别方式处理的对比效果:

     

        

        

        

        

               原图                                    何的去雾                             本文结果(SkyPresrve =100)

  有以上比较可见,在保护了天空的时候,和天空交接的地方的去雾程度也适当的有所减弱。

   在论文的最后,作者也提到了去雾的图像显得比较昏暗,为此,做了一下处理:

        

  即在HSV空间,对V分量进行CLAHE增强,然后在转换到RGB空间,这种方式对有些图像确实有很明显的增强效果,但是有些图可能又会增强噪音,因此还是根据实际情况选择性的处理吧。

  示例程序:http://files.cnblogs.com/Imageshop/HazeRemovalWithSkyRecognition.rar

   

 

      

****************************基本上我不提供源代码,但是我会尽量用文字把对应的算法描述清楚或提供参考文档************************

*************************************因为靠自己的努力和实践写出来的效果才真正是自己的东西,人一定要靠自己*******************

****************************作者: laviewpbt   时间: 2014.8.12    联系QQ:  33184777 转载请保留本行信息**********************

  

本文链接:避免图像去雾算法中让天空部分出现过增强的一种简易方法。,转载请注明。


基于暗通道先验复原—ACE增强方法的图像去雾研究(含代码) 一、图像去雾的基本概况 视觉是人类获取信息的主要方式,随着信息技术的发展,人类生产、生活越来越离不开图像。然而在现实生活中,人们拍摄的图像的质量往往受到多种情况的影响。随着成像设备的精度和功能日趋增强,导致图像质量下降的原因主要取决于拍摄的环境,其中雾和霾就是影响图像质量的主要因素之一。 雾是由悬浮近地面空气中微小水滴或冰晶组成的天气现象,是近地面层空气中水汽凝结(或凝华)的产物。霾是悬浮在大气中的大量微小尘粒、烟粒或盐粒的集合体,使空气浑浊,水平能见度降低到10km以下的一种天气现象。从视觉效果上看,雾和 阅读详情

相关推荐

[Python图像识别] 四十六.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)

上一篇文章主要介绍目标检测原理,通过七个问题来普及什么是目标检测,然后利用ImageAI实现最简单的目标检测案例。这篇文章将详细介绍图像去雾算法,经过图像增强后的图像也能应用于目标检测或图像分类领域,并且效果更好。本文主要讲解ACE去雾算法、暗通道先验去雾算法以及雾化生成算法,并且参考了两位计算机视觉大佬(Rizzi 何恺明)的论文。希望您喜欢,且看且珍惜。

杨秀璋的专栏 1万+

避免图像去雾算法中让天空部分出现过增强的一种简易方法。

      在经典的几种去雾算法中,包括何凯明的暗通道去雾、Tarel的基于中值滤波的去雾以及一些基于其他边缘保留的方法中,都有一个普遍存在的问题:即对天空部分处理的不好,天空往往会出现较大的面积的纹理及分块现象。究其主要原因,还是因为天空部位基本上是不符合暗通道去雾先验这个前决条件的。目前,针对这一问题,我搜索到的主要有以下几篇文章进行了处理: 1、 改进的基于暗原色先验的图像去雾算法 作者:...

weixin_33828101的博客 889

图像去雾算法总结

在雾天环境下,空气中的悬浮颗粒与光线之间发生相互作用,使得采集到的图像具有明显的退化现象,包括色彩饱和度低、边缘模糊等问题。含雾图像也会影响后续的图像分析和理解等任务。为了降低雾给室外成像系统带来的影响,图像去雾在计算机视觉等领域得到了广泛的重视。根据处理方式的不同,图像去雾可以大致分为图像增强和图像复原两大类方法。 其中,图像增强是通过调节灰度等级改善对比度,以达到去雾效果。显然,它并没有考虑到含雾图像降质的本质,去雾的效果并不理想。图像复原的方法利用大气散射模型实现去雾,利用了造成含雾图像退化的物理原

识物专栏 3万+

图片天空区域识别

本文主介绍了一下一种天空区域识别的算法,参考论文:Sky Region Detection in a SingleImage for Autonomous GroundRobot Navigation 顺便贴出对论文中算法稍加改进后,图片天空区域的识别效果图。具体怎么改进的见下面描述。 本文分为四个部分,依次是 一 天空识别的重要性 二 参考论文中的方法描述 三 自己的改进 四 实...

weixin_30341745的博客 1316

图像去雾算法介绍+改进

做毕设的时候看到的一篇比较好的,关于去雾算法的文章,写的非常详细

基于暗通道的图像去雾代码(改进版)

有代码,有图。此代码是基于暗通道的图像去雾,在原有的基础上有所改进,相互借鉴哈!

图像中的天空区域检测!

一、引言 天空区域作为图像中的背景信息,为机器人导航、自动驾驶等领域的图像理解提供了重要依据,因此如何检测图像中的天空区域非常重要,本文提供了一个基于传统视觉算法(非机器学习方法)的提取天空区域的方法,参考文献:https://journals.sagepub.com/doi/pdf/10.5772/56884 二、算法思路 1.使用sobel算子为图像提取梯度信息图,从梯度信...

dulingwen的博客 7435

Apache NiFi新手必看:从零开始的数据流设计入门教程(含实战案例)

本文为Apache NiFi新手提供从零开始的数据流设计入门指南。通过实战案例,详细讲解了如何利用这一强大的数据采集工具,以可视化拖拽方式构建自动化数据流,实现从文件监控、内容处理到数据入库的全流程,并涵盖核心概念、环境搭建及生产环境调优要点。

weixin_29066781的博客 149

图像去雾技术综述

研究图像去雾技术有一段时间,阅读很多文献以及实现了很多算法。因此将个人对图像去雾技术的理解写成这篇文章,避免自己忘记,以及跟广大网友交流学习。 1、概述 图像去雾的研究算法有很多,但是主要分为两类:基于图像增强的去雾算法和基于图像复原的去雾算法。 基于图像增强的去雾算法 去除图像的噪声,提高图像的对比度,从而恢复出无雾清晰视频。具有代表性的图像增强去雾算法有: 1. 直方图均衡

Ven_J的博客 2万+

【Codex安装使用手册】

Codex安装部署使用教程

qq_43392230的博客 4961

Windows下快速搭建Kettle开发环境:基于9.4.0.0版本的保姆级教程

本文提供Windows系统下Kettle 9.4.0.0开发环境的详细搭建指南,涵盖源码获取、Maven配置优化、高效编译及部署运行全流程。通过实战验证的步骤和常见问题解决方案,帮助数据工程师快速完成环境配置,提升ETL开发效率。

weixin_28829479的博客 331

算法-基于 MATLAB 的图像去雾技术研究

毕业设计-基于 MATLAB 的图像去雾技术研究:工业促进了人类社会的发展,随之而来的是空气污染越来越严重,空气中悬浮的尘粒和水滴在大气光的散射和吸收下形成雾霾。雾霾天气条件下,自然光受空气中悬浮粒子的干扰发生散射,使所获取的户外图像对比度和色彩饱和度降低,图像细节模糊不清,其视觉效果会显著降低,从而限制了景物的识别,造成一些户外图像采集装置无法正常工作。计算机视觉应用领域,如智能交通、遥感探测、安全监控等,其有效性与采集到的图像的可视性息息相关,对图像质量要求较高。因此,对雾霾天气所采集的退化图像做清晰化

Hai_Lang_IT的博客 4914

Matlab实现POD本征正交分解数据降维模型

近年来,随着大数据时代的到来,各种复杂的工程问题产生了海量的高维数据,如何有效降维、提取数据中的关键信息成为了众多领域中的重要问题。在传统的数据降维方法中,PCTFA(主成分分析)是一种典型的统计方法,然而对于流体动力学等非线性问题,PCTFA在处理时可能失去部分物理意义,难以捕捉到系统的复杂性。在降维过程中,POD提取的主要特征通常是一组复杂的正交基函数,如何将这些结果有效地转化为直观且易于理解的物理意义,特别是在实际应用中,对该特征的理解和分析,依然是一个重要的课题。本项目的扩展性也得到了有效体现。

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1216

图像去雾【2】:基于暗通道先验的图像去雾算法改进【Python】

本文提出了一种改进的基于暗通道先验的图像去雾算法。首先介绍了雾天图像退化模型和传统去雾方法,重点分析了何恺明提出的暗通道先验算法在光线传播图估计过程中计算复杂度高的问题。针对这一问题,改进算法通过直接使用景深估计光线传播图,显著降低了算法运行时间。同时,采用3×3和15×15两种滤波器模板分别处理边缘和非边缘区域,结合Sobel算子边缘检测进行掩膜合成,有效保留了图像边缘细节。实验结果表明,改进算法在保持去雾效果的同时,显著提升了计算效率,适用于实时图像处理应用。

图像算法打怪的博客 1674

自动驾驶---Planning模块详细介绍(以Apollo为例)

主要介绍高速场景下Planning模块,至于低速的泊车场景对比高速场景或者城区场景有比较大的差距(后面也会介绍泊车场景),本篇Planning介绍主要包括三大子模块Routing,Behavioural Planning以及Motion Planining,并且对比较重要的Decider和Optimizer都做了通俗化的说明供大家思考,以便于后续理解更深入的内容,后面有时间会再开一些篇幅对这些模块进行更加深入的讲解。

智能汽车人的博客 2086

利用 Python 爬虫进行舆情监测的实战方法

舆情监测是指对互联网上的公众舆论进行监测和分析的过程。它可以帮助企业和组织了解公众对其品牌、产品或服务的看法,以及市场竞争情况。通过舆情监测,企业可以及时发现潜在的问题和机会,从而做出相应的决策。通过本实战案例,我们了解了如何利用 Python 爬虫进行舆情监测的整个流程。从数据采集到数据分析,再到可视化展示,每一步都提供了详细的代码示例和注释。希望这些方法和技巧能够帮助你在实际工作中更好地进行舆情监测,从而为企业的决策提供有力的支持。wordcloud。

u014481728的博客 1054

图像去雾基础知识

研究分类:图像增强和图像复原 ----图像增强:基于图像增强的去雾算法出发点是尽量去除图像噪声,提高图像对比度,从而恢复出无雾清晰图像 ----方法:直方图均衡化(HLE)、自适应直方图均衡化(AHE)、限制对比度自适应直方图均衡化(CLAHE)、Retinex算 法、小波变换、同态滤波。 ----图像复原:基于大气退化模型,进行响应的去雾处理 ----方法:暗通道去雾算法、基于导向滤波的暗通道去雾算法、Fattal的单幅图像去雾算法(Single image dehazing)、Tan的单..

小菜鸟 6928

基于coze studio开源框架二次定制开发教程

CozeStudio是一站式AIAgent开发工具,支持大模型接入、智能体编排、工作流开发等功能。采用Golang+React技术栈,基于微服务架构设计。项目包含后端API、领域逻辑、前端应用等模块,支持自定义任务流节点开发。开发流程涵盖前后端节点定义、实现逻辑编写等步骤,提供完整的开发规范和参考文档。相比商业版,开源版本在功能上有所精简,但仍保留核心开发能力。

coding change your life 790

基于暗通道先验与天空检测的图像去雾算法:原理、实现与优化

图像去雾是计算机视觉中提升图像质量与系统鲁棒性的关键技术,其核心在于解决大气散射导致的图像退化问题。该技术基于大气散射模型,通过估计透射率与大气光成分,从单幅有雾图像中复原出清晰场景。暗通道先验作为一种高效的物理先验,为透射率估计提供了统计基础,但传统方法在处理天空区域时易产生过饱和与光晕伪影。本文深入剖析了一种融合局部香农熵进行鲁棒天空检测的改进暗通道先验方法,通过精准分割天空区域并采用快速引导滤波优化透射图,在保持高去雾质量的同时显著提升了处理速度。该技术可广泛应用于自动驾驶、视频监控与无人机航拍等户外

weixin_33691817的博客 665

RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)

为了弥补现有 IoU 损失在不同检测任务中泛化性弱和收敛速度慢的问题,·Inner-IoU·通过引入比例因子 “ratio” 来控制辅助边界框的尺度大小,利用不同尺度的辅助边界框来计算损失,从而加速边界框回归过程。

Limiiiing的博客 1964

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 图像边缘检测技术与理论发展脉络梳理大放送
下一篇: ORB特征点检测
凌风探梅
博客等级 码龄19年 2575粉丝 113原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值