纯c语言实现的改进暗通道去雾算法测试程序(附赠大量测试图像),基于改进暗通道先验算法的图像去雾...

邱清辉

a12e581d01d48621dcb5fe17662cdab7.png

4daa1cde3f3a743c0181d88430debb1c.png

374bfa6529092d182241a4acf5e4c478.png

摘要:针对普通暗通道先验算法去雾能力的不足,本文提出了一种改进算法,通过采用高斯平滑将原图像分为基础子图和细节子图,基础子图采用暗通道先验算法,细节子图采用gamma变换方法,再采用图像融合进行融合,结果显示改进的算法,使得去雾后图像颜色效果更好,细节信息更多,能够满足工程上应用要求,具有很好的應用价值。

关键词:暗通道先验; 图像去雾;直方图

中图分类号:TP18        文献标识码:A

文章编号:1009-3044(2019)16-0196-02

开放科学(资源服务)标识码(OSID):

随着视频、图像采集越来越多,尤其在户外中,受天气中雾、霭以及沙尘等影响,采集拍摄的图像往往具有较多的失真,这无论是对拍摄的美感,还是对工程技术领域中目标的探测和识别都有很大影响。若能在户外不良天气下拍摄的失真图像中,采用相应算法最大限度无失真的恢复出原始的图片具有很大的意义[1][2][3][4]。

图像去雾的方法主要分为三大类别:(1)基于统计的图像增强算法包括直方图增强以及后续改进的限制对比度直方图增强等各种算法,这种算法简单有效,但是有可能造成图像细节的丢失,且对于浓雾天气算法会失效。(2)基于反射理论的图像去雾方法,主要是Retinex理论,这种算法往往会造成颜色的失真。(3)基于大气模型的方法,代表算法是HE的暗通道先验法,但是该方法仍然会造成一些细节的丢失。针对这个问题,本文采用高斯模糊的方法将原图分成高频分量和低频分量,采用暗通道先验证的算法增强低频分量再进行重构,从而保存了图像的细节信息。

1 暗通道先验算法

为了能够从大气传输退化的图像中恢复出原始的图像,He等在文献中给出了暗原色先验的方法,是通过对大量户外无雾图像的统计分析提出来的。He指出暗到通先验规律:在无雾户外采集图像中,其每个局部区域都极有可能存在阴影,每个局部区域至少会有一个颜色通道在某些像素上具有很低的灰度值,并且趋近于0。对于户外图像J,其模型为:

其中分母的[to]设置为0.5,用于防止t(x)的数值过小。对于环境光A的估计是取[Jdark]中前0.1非天空区域亮度最大的像素对应的原图中亮度值的平均值。

2 改进的算法

HE提出的暗道通先验算法原理相对简单,相对雾气较薄时可以产生良好的去雾效果,但是若针对雾霭较浓时,其效果就表现一般,需要提高图像的细节化处理,在此,可以对图像进行高频和低频分离处理,低频信息进一步直方图增强,高频信息进行滤波和校正。

采用的具体方法如图1所示的流程图所示。对于暗通道复原后的图像,通过暗道通先验算法进行色彩增强,再通过引导滤波对图像进行滤波、平滑处理,将图像中低频和高频进行分离,低频信息作为基础子图。同时对高频信息再进一步的高斯平滑,暗通道增强后的图像进行相减,获得了细节子图。此时再一次进行滤波和校正,通过Gamma变换调整细节子图的对比度。最后基础子图通过CLAHE算法进行动态范围增强,并对基础子图和细节子图进行图像融合处理,最终获得增强后的红外图像。

3 实验和分析

根据对暗道通先验改进算法进行实验,在雾霭较为严重的情况下,带有雾霭的图像采用普通直方图均衡的暗通道去雾方法与改进算法进行比较,如图2所示,可以发现的改进算法去雾具有更好的颜色效果,且动态范围更好,显示的细节信息更多。

4 结论

通过暗道通先验的分析,其实现比较容易,但当天气恶劣情况下,去雾能力明显不足,针对普通暗通道先验算法在复杂天气情况下去雾能力的不足问题,首先采用高斯平滑将原图像分为基础子图和细节子图,基础子图采用暗通道先验算法直方图增强,细节子图采用gama变换方法,最后采用图像融合进行融合,得出去雾图像颜色效果更好,细节信息更多,具有很好的应用价值。

参考文献:

[1] He K, Sun J, Tang X. Single image haze removal using dark channelprior[C]//IEEE Conference on Computer Vision and Pattern Recognition,2009:1956-1963.

[2] He K, Sun J, Tang X. Guided image filtering[J].IEEE Transactions onPattern Analysis & Machine Intelligence,2013,35(6):1397-1409.

[3] 郭璠,蔡自兴,谢斌,等.图像去雾技术研究综述与展望[J].计算机应用,2010,30(9):2417-2421.

[4] 王浩,张叶,沈宏海,等.图像增强算法综述[J].中国光学,2017,10(4):438-448.

【通联编辑:唐一东】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf

第九届蓝桥杯单片机组省赛试题“彩灯控制器”的程序设计与调试 (70 分)一、基本要求1.1 使用CT107D 单片机竞赛板,完成“彩灯控制器”功能的程序设计与调试;1.2 设计与调试过程中,可参考组委会提供的“资源数据包”;1.3 Keil 工程…

为什么离开学校后,学习能力直线下降?

最近几年,人工智能浪潮层层推进,对各大科技公司产生巨大影响。百度推出Apollo无人车计划,阿里建立达摩院,腾讯成立的AI Lab虽布局较晚却也不甘人后。ChinaAI已是大势所趋,吸引的不仅是大公司,更有许多人工智…

android6.0重力工具箱,重力工具箱 GravityBox For Android8.0/8.1(Oreo)稳定版发布!

作为功能最强大的Xposed框架模块之一,重力工具箱 GravityBox的更新适配一直也是最积极的,本次发布的8.x专用版本也算是比较及时,每一个大的Android版本,重力工具箱基本都会有一个专门的版本来适配,当然基础功能也会略有…

如何在 ASP.Net Core 中使用 MediatR

MediatR 是一个 中介者模式 的.NET开源实现, 中介者模式 管控了一组对象之间的相互通讯并有效的减少了对象之间错综复杂的相互依赖,在 中介者模式 中,一个对象不需要直接和另一个对象进行通讯,而是通过 中介者 进行转达&#xff0…

pythonjson数据提取_python爬虫学习笔记(十)-数据提取之JsonPath的使用

1. JSON与JsonPATHJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。JSON和XML的比较可谓不相上下。Pyt…

全球100款大数据工具汇总(前50款)

01 Talend Open Studio是第一家针对的数据集成工具市场的ETL(数据的提取Extract、传输Transform、载入Load)开源软件供应商。Talend的下载量已超过200万人次,其开源软件提供了数据整合功能。其用户包括美国国际集团(AIG)、康卡斯特、电子港湾…

NLP快速入门:手把手教你用HanLP做中文分词

导读:随着自然语言处理(Natural Language Processing, NLP)技术日趋成熟,实现中文分词的工具也越来越多。中文分词技术作为中文自然语言处理的第一项核心技术,是众多上层任务的首要基础工作,同时在日常的工作中起着基础性的作用。…

微信小程序android错误,app安卓端 跳转到微信小程序失败

详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)[内容] app安卓端跳转到微信小程序失败重现步骤 一直失败[步骤] 微信小程序关联了…

动态内存(Dynamic Memory),微软的内存过量分配技术?

Hyper-V不支持Memory Overcommitment,一直为VMware和其他虚拟化厂商所诟病。当然,微软一直不承认这是他们的软肋,认为为了保证生产环境VM的性能,过量分配内存是不合时宜的。但是,微软的态度似乎突然转变,3月…

openlayers地图旋转_OpenLayers的使用---- 一个完全免费开源的地图JS库

OpenLayers很容易的在网站里放置动态地图。它能显示展开图及从资源中加载地图标记及矢量数据。它被开发出尽可能的使用所有的地图信息。并且它是完全免费及开源的.详细了解可去它的官网:http://openlayers.org/简单使用,如展示一个块地图.mymap {height:…

程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛?

来源:知乎作者:黄小秋原文链接:https://www.zhihu.com/question/68733553/answer/305463907导语:知乎有位程序员大佬,为了让老母亲老父亲们理解自己的呱究竟在干什么,于是花了五个晚上逆向游戏程序逻辑&…

android.mk 翻译,翻译ANDROID-MK.TXT

Android.mk编译文件是用来向Android NDK描述你的C,C源代码文件的,这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色和用途。概述:一个Android.mk file用来向编译系统描述你的源代码。具…

我为什么对TypeScript由黑转粉?

喜欢就关注我们吧!一名曾仅使用 JavaScript 的开发者解释自己为何从反对 TypeScript 到转变为 TypeScript 粉丝。Chirag Swadia 自称曾是 Anti-TypeScript 的 JavaScript 开发者。谈及反对的原因,他以前一直认为给函数/变量添加类型以满足 TypeScript 编…

谈谈关于MVP模式中V-P交互问题

在差不多两年的时间内,我们项目组几十来号人都扑在一个项目上面。这是一个基于微软SCSF(Smart Client Software Factory)的项目,客户端是墨尔本一家事业单位。前两周,我奉命负责对某个模块进行Code Review工作&#xf…

ofdm解调算法_OFDM系统中固定频偏算法

加入固定频偏:function berMatrix freqOffsetOFDM(BPS,NS,M,SNR,ifftsize,carriers,N,ep)%标准OFDM系统input_bit_stream sign(randn(1,BPS*NS));input_bit_stream(input_bit_stream -1)0;parallel_data StoP(input_bit_stream ,M);% 串并转换%QAM调制modulated_d…

重磅!阿里开源AI核心技术,95%算法工程师受用

你是否曾有过这样的疑虑:人工智能大热,作为一名传统程序员,该如何转型或学习?网上AI教程、书籍,质量参差不齐,如何找到真正专业的资源?AI理论遍地皆是,但几乎都在纸上谈兵。我们该从…

android 换机 iphone8,最好的换机之选?iPhone8 PLUS众测体验

最好的换机之选?iPhone8 PLUS众测体验2017-11-11 14:29:0034点赞1收藏0评论文章前面说一下,自己水平有限文笔不好,没有相机,开箱图这些都是手头的iPhone6和本次众测的的产品拍摄,再加上最近白天都没空拍照,…

阿里开始招聘.NET,要求WPF!

说到WPF、上位机,很多.NET开发者可能只是听过并不了解,然而随着工业4.0的火爆大势,当下.NET开发者又多了一个高薪选型,在各大招聘网站上都能找到5年经验25k左右的岗位,强烈推荐大家关注一波。这里借用了下阿里影业对.N…

eeprom stm8l 擦除 读写_[STM8L]EEPROM操作读与写

原标题:[STM8L]EEPROM操作读与写带有片上EEPROM,常用来保存参数,事实上STM8L整个程序存储区都可以用于作为EEPROM,只是默认情况下被闭了。不同型号的STM8L器件其内部默认划分的EEPROM区域都是从0x1000地址开始,以下为S…

JavaWeb中的Session、SessionListener、在线人数统计

2019独角兽企业重金招聘Python工程师标准>>> JavaWeb中的Session 在JavaWeb中使用HttpSession(以下简称session)对象来表示一个会话。正在装载数据…… Session的创建(代表会话周期的开始):第一次调用reque…