当前位置:网站首页>【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
2022-08-10 17:17:00 【matlab_dingdang】
1 内容介绍
雾霾是特定气候条件与人类活动相互作用的结果,而雾霾天气下大气中广泛存在的悬浮粒子势必对光线产生一定程度的吸收及散射作用,从而导致户外图像的视觉效果大幅下降,表现为图像内容模糊、对比度下降及色彩衰减。其中,航拍图像视觉系统因其所采集的图像往往具有较大的景深而受雾霾天气的影响尤为严重,且即使在晴天条件下获取的航拍图像也往往会受到聚集的水气的干扰,雾霾天气下的降质航拍图像对比如图1所示。鉴于计算机视觉中有关图像理解[1]、目标识别[2]、目标跟踪[3]等领域的很多算法都是基于输入的图像或视频是在理想天气条件下拍摄的这一前提,消除雾霾天气所导致的图像负面效果而恢复出相应的晴天图像有着显著的研究意义及应用价值。早期,图像去雾的处理方法主要分为3类:①基于直方图均衡技术的雾天图像调节方法[4];②基于Retinex模型的雾天图像增强方法[5];③基雾霾是特定气候条件与人类活动相互作用的结果,而雾霾天气下大气中广泛存在的悬浮粒子势必对光线产生一定程度的吸收及散射作用,从而导致户外图像的视觉效果大幅下降,表现为图像内容模糊、对比度下降及色彩衰减。其中,航拍图像视觉系统因其所采集的图像往往具有较大的景深而受雾霾天气的影响尤为严重,且即使在晴天条件下获取的航拍图像也往往会受到聚集的水气的干扰,雾霾天气下的降质航拍图像对比如图1所示。鉴于计算机视觉中有关图像理解[1]、目标识别[2]、目标跟踪[3]等领域的很多算法都是基于输入的图像或视频是在理想天气条件下拍摄的这一前提,消除雾霾天气所导致的图像负面效果而恢复出相应的晴天图像有着显著的研究意义及应用价值。早期,图像去雾的处理方法主要分为3类:①基于直方图均衡技术的雾天图像调节方法[4];②基于Retinex模型的雾天图像增强方法[5];③基于同态滤波技术的雾天图像恢复方法[6]。虽然这些方法可以通过图像对比度调节、颜色校正和细节突出等方法来改善图像的视觉效果,从而实现一定程度的图像视觉效果提升。但是由于忽略了雾天图像降质机理,所以在增强过程中往往会引起图像信息损失或者严重的失真现象。
针对雾霾天气下航拍图像的降质机理,文章提出一种基于颜色衰减先验的航拍图像去雾算法.首先构建雾气浓雾量化图,并结合聚类技术将有雾图像分解为子场景集,进而提出一种改进的全局大气光估计方法,通过建立候选区的方式有效提高其估计精度.本文设计一种线性的航拍图像深度结构估计模型,通过利用航拍图像的景深特征可以高效获得深度图,并进而利用引导滤波器提高深度图的边缘结构.依据所得到的全局大气光和深度图,通过大气散射模型可以估计出场景反照率并进而得到所恢复的无雾图像.实验结果对比验证了所提算法的高效性,鲁棒性及有效性.
2 仿真代码
close all;clear;clc;
I = imread('C:\Users\Tiger\Desktop\所有代码和文章整理\雾图集\18.bmp');
I=double(I)
hsvI = rgb2hsv(I);
s = hsvI(:,:,2);
v = hsvI(:,:,3);
maxI=max(max(v-s));
minI=min(min(v-s));
dif=v-s;
d=(dif-minI)*255/(maxI-minI);
r=15;
output = ordfilt2(d, 1, ones(r,r), 'symmetric');
%----- Parameters for Guided Image Filtering -----
gimfiltR = 30;
eps = 10^-3;
%-------------------------------------------------
refineDR = guidedfilter(rgb2gray(I),output,gimfiltR,eps);
figure,imshow([output,refineDR],[])
colormap(hot)
3 运行结果
4 参考文献
[1]李倩. 基于颜色衰减先验的图像去雾算法研究及FPGA实现[D]. 西安理工大学.
[2]陈大鹏. 基于暗通道和颜色衰减先验的图像去雾算法研究[D]. 山东科技大学.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
- 神经网络的图像识别技术,神经网络识别图像原理
- 网易云信亮相LiveVideoStackCon2022,解构基于WebRTC的开源低延时播放器实践
- v-show指令:切换元素的显示与隐藏
- Go-Excelize API源码阅读(六)—— DeleteSheet(sheet string)
- unr #6day1 T2题解
- C language symbols on how to use
- Polling and the principle of webSocket and socket.io
- Splitting and merging long markdown documents
- 架构-三层架构:三层架构
- 中国芯片的营收首破万亿,优势凸显的成熟工艺产能将称霸全球
猜你喜欢
随机推荐
promise笔记(四)
文件包含漏洞复习总结
讯飞翻译机抢镜背后,跨语种沟通迈入全新时代
Annual salary of 600,000+?This 100,000-word interview assault book covers all technology stacks from Ali P5 engineers to P7
长markdown文档的拆分与合并
2022 CCF China Open Source Conference Notice (Fourth Round)
ARM开发(三)ARM寻址方式,异常中断,异常向量表
Polling and the principle of webSocket and socket.io
取Json中的数组进行遍历
在Istio中,到底怎么获取 Envoy 访问日志?
程序员兼职踩到的坑,本人亲身经历
网易云信亮相LiveVideoStackCon2022,解构基于WebRTC的开源低延时播放器实践
Go-Excelize API源码阅读(六)—— DeleteSheet(sheet string)
R语言检验时间序列的平稳性:使用fUnitRoots包中的adfTest函数检验时间序列数据是否具有平稳性(设置参数type为nc时、既不去除趋势也不进行中心化处理)
#夏日挑战赛#【ELT.ZIP】啃论文俱乐部——学术科研方法论沉淀辑
C language symbols on how to use
TradingView_学习笔记
Pytorch GPU模型推理时间探讨
leetcode:337. 打家劫舍 III
Talking about Taishan crowdfunding system development technical description and dapp chain crowdfunding system development analysis