当前位置:网站首页>【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
2022-08-10 17:49:00 【Matlab科研工作室】
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代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
猜你喜欢
随机推荐
运维如何学习、自我提升价值?
Making Pre-trained Language Models Better Few-Shot Learners
同一块中出现两个 * 就不能正常显示
FFmpeg 从mp4上提取H264的nalu
设置iptables规则来保护CS服务器
最新手机号码的正则
痛苦的四大原因
烟雾、空气质量、温湿度…自己徒手做个环境检测设备
想玩转监控神器Prometheus吗?
【HMS core】【FAQ】AR Engine、Analytics Kit、Video Editor Kit、Image Kit、Map Kit典型问题合集2
五菱宏光MINI EV,唯一的缺点就是安全性
Scala中使用 Jackson API 进行JSON序列化和反序列化
pip安装时 fatal error C1083 无法打开包括文件 “io.h” No such file or directory
函数柯里化(curry)
基于AWS构建云上数仓第二步:AWS常见服务简介
【深度学习21天学习挑战赛】4、初尝循环神经网络(RNN)——股票预测
LeetCode 0640.求解方程:过几天就看不懂了的迷惑性代码,但是是详解
Selenium - 如何操作下拉框、弹出框、滚动条?
直播回顾|多云时代,如何建设企业级云管理平台?(附建设指南下载)
R语言ggplot2可视化:使用ggpubr包的ggscatter函数可视化分组散点图、stat_mean函数在分组数据点外侧绘制凸包并突出显示分组均值点、自定会均值点的大小以及透明度