看到许多小伙伴想进行图像去雨,图像去雾的任务,由于以前进行了此类项目,所以在此书写博客进行交流。
代码获取

去雨前言

从静止图像中去除雨水是一项复杂且具有挑战性的任务。雨滴仅影响图像的很小区域,因此导致确定应考虑哪个区域和不应考虑哪个区域的混乱。在本文中,已经实现了一种新技术,该技术有效地使用L0梯度最小化方法来去除雨像素。

最小化技术可以全局控制图像中产生多少非零梯度。该方法与局部特征无关,而是全局定位重要边缘。保留了这些显着的边缘,并且减少了低振幅和微不足道的细节。以这种方式去除雨像素。最后,使用直方图调整技术增强了雨水去除的图像的强度,以获得更好的对比度图像。实验结果表明,该算法在去除图像去雨方面有良好的效果。

算法流程

去雨代码部分

clear;
close all;
I=imread('youwutu.jpg'); %读入图像
R=I(:,:,1);% 取输入图像的R分量
[N1,M1]=size(R);
R0=double(R);% 对R分量进行数据转换,并对其取对数
Rlog=log(R0+1);
Rfft2=fft2(R0);% 对R分量进行二维傅里叶变换
sigma=250;% 形成高斯滤波函数
F = zeros(N1,M1);
for i=1:N1
for j=1:M1
F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));
end
end
F=F./(sum(F(:)));
Ffft=fft2(double(F)); %对高斯滤波函数进行二维傅里叶变换
DR0=Rfft2.*Ffft;  %对R分量与高斯滤波函数进行卷积运算
DR=ifft2(DR0);
DRdouble=double(DR); %在对数域中,用原图像减去低通滤波后的图像,得到高频增强图像
DRlog=log(DRdouble+1);
Rr=Rlog-DRlog;
G=I(:,:,2);   % 取输入图像的G分量
[N1,M1]=size(G);
G0=double(G);  %对G分量进行数据转换,并对其取对数
Glog = log(G0+1);
Gfft2=fft2(G0);  %对G分量进行二维傅里叶变换
sigma=250;
for i=1:N1
for j=1:M1
F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));end
end
F = F./(sum(F(:)));
Ffft=fft2(double(F));  %对高斯滤波函数进行二维傅里叶变换
DG0=Gfft2.*Ffft;  %对高斯滤波函数进行二维傅里叶变换
DG=ifft2(DG0);
DGdouble=double(DG); %在对数域中,用原图像减去低通滤波后的图像,得到高频增强图像
DGlog=log(DGdouble+1);
Gg=Glog-DGlog;
EXPGg=exp(Gg); %取反对数,得到增强后的图像分量
MIN = min(min(EXPGg)); %对增强后的图像进行对比度拉伸增强
MAX = max(max(EXPGg));
EXPGg = (EXPGg-MIN)/(MAX-MIN); EXPGg=adapthisteq(EXPGg);
B=I(:,:,3);  %取输入图像的B分量
[N1,M1]=size(B);
B0=double(B);  %对B分量进行数据转换,并对其取对数
Blog=log(B0+1);
Bfft2=fft2(B0);  %对B分量进行二维傅里叶变换
sigma=250;  %形成高斯滤波函数
for i=1:N1
for j=1:M1
F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));end
end

去雨结果 matlab 展示


图像去雾

去雾概述

暗通道先验:首先说在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值,也就是说该区域光强是一个很小的值。所以给暗通道下了个数学定义,对于任何输入的图像J,其暗通道可以用下面的公式来表示:图片其中表示彩色图像每个通道,表示以像素X为中心的一个窗口。要求暗通道的图像是比较容易的,先求出每个像素在3个通道的最小值,存到一个二维Mat中(灰度图),然后做一个最小值滤波,滤波的半径由窗口大小决定,这里窗口大小为,公式表示为,其中表示滤波半径。
图片暗通道先验理论得出的结论,这个我不知道如何证明,不过论文给出了几个原因:
a)汽车、建筑物和城市中玻璃窗户的阴影,或者是树叶、树与岩石等自然景观的投影;
b)色彩鲜艳的物体或表面,在RGB的三个通道中有些通道的值很低(比如绿色的草地/树/植物,红色或黄色的花朵/叶子,或者蓝色的水面);

去雾代码:

计算雾化图像的暗通道

def DarkChannel(img, size=15):"""暗通道的计算主要分成两个步骤:1.获取BGR三个通道的最小值2.以一个窗口做MinFilterps.这里窗口大小一般为15(radius为7)获取BGR三个通道的最小值就是遍历整个图像,取最小值即可"""r, g, b = cv2.split(img)min_img = cv2.min(r, cv2.min(g, b))kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (size, size))dc_img = cv2.erode(min_img, kernel)return dc_img

估算全局大气光值

def GetAtmo(img, percent=0.001):"""1.计算有雾图像的暗通道2.用一个Node的结构记录暗通道图像每个像素的位置和大小,放入list中3.对list进行降序排序4.按暗通道亮度前0.1%(用percent参数指定百分比)的位置,在原始有雾图像中查找最大光强值"""mean_perpix = np.mean(img, axis=2).reshape(-1)mean_topper = mean_perpix[:int(img.shape[0] * img.shape[1] * percent)]return np.mean(mean_topper)

估算透射率图

def GetTrans(img, atom, w):"""w为去雾程度,一般取0.95w的值越小,去雾效果越不明显"""x = img / atomt = 1 - w * DarkChannel(x, 15)return tdef GuidedFilter(p, i, r, e):""":param p: input image:param i: guidance image:param r: radius:param e: regularization:return: filtering output q"""# 1mean_I = cv2.boxFilter(i, cv2.CV_64F, (r, r))mean_p = cv2.boxFilter(p, cv2.CV_64F, (r, r))corr_I = cv2.boxFilter(i * i, cv2.CV_64F, (r, r))corr_Ip = cv2.boxFilter(i * p, cv2.CV_64F, (r, r))# 2var_I = corr_I - mean_I * mean_Icov_Ip = corr_Ip - mean_I * mean_p# 3a = cov_Ip / (var_I + e)b = mean_p - a * mean_I# 4mean_a = cv2.boxFilter(a, cv2.CV_64F, (r, r))mean_b = cv2.boxFilter(b, cv2.CV_64F, (r, r))# 5q = mean_a * i + mean_breturn q
#  去雾结果 matlab GUI交互展示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/e08f283e7c6e413c8371b061b76be191.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/11613eb2945445b49793e3091c1cdc6e.png)
# 结论
**本文只是众多流程的一部分,为目标检测 和其他应用奠定举出。****通过将所提算法与经典算法进行验证对比,结果表明本文极端环境下的目标
检测与测距方法具有良好的有效性和可行性。将处理后的图像输送到目标检测和测距模型,提高了目标检测和测距精度,为自动驾驶主动安全行为决策提供必要的技术支持,使得自动驾驶汽车应用在极端环境变得可行。****若果觉得有用的话,请帮忙点赞,也可以私信交流。****代码获取**:[全部代码](https://qm.qq.com/cgi-bin/qm/qr?k=-l5P6oI7YkOydUdSszfdHn2qQPBNWfhP&noverify=0&personal_qrcode_source=4)

图像去雾/图像去雨(matlab/python)相关推荐

  1. 【第 01 章 基于直方图优化的图像去雾技术-全套系统MATLAB智能驾驶深度学习】

    毋庸置疑的是,在汽车智能技术.汽车新能源技术.汽车电子这个群雄逐鹿的赛道.智能驾驶技术的要求也在不断的提升. 智能车辆教学平台.智能网联教学平台.汽车电子教学设备.在环仿真系统,目前主流的系统有很多, ...

  2. 【计算机视觉课程设计】基于暗通道先验单幅图像去雾算法的实现(MATLAB)

    声明:原创内容,创作不易,欢迎点赞收藏~ 摘    要 随着信息化时代的到来,计算机视觉得以迅速发展,在社会生活中的各个领域发挥了重要作用.然而,近年来大气污染逐渐加重,雾霾天气出现的频率越来越高,导 ...

  3. matlab去雾算法论文,基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.doc...

    本文主要介绍基于Retinex理论的雾霭天气图像增强及其实现.并通过编写两个程序来实现图像的去雾功能. 1 Rentinex理论 Retinex(视网膜Retina"和大脑皮层Cortex& ...

  4. 【Gated Context Aggregation Network for Image Dehazing and Deraining用于图像去雾和去雨的门控上下文聚合网络】,个人笔记,勿喷

    摘要 图像去雾旨在从模糊图像中恢复未损坏的内容.我们没有利用传统的低级或手工图像先验作为恢复约束,例如暗通道和增加的对比度,而是提出了一个端到端的门控上下文聚合网络来直接恢复最终的无雾图像.在这个网络 ...

  5. 【图像去雾】Matlab实现9种去雾图像评价

    1 内容介绍 雾霾天气对成像系统产生了很大的影响,在图像处理的发展中,优秀的去雾算法不断被提出,对算法效果的评价也在不断深化.针对图像质量评价算法繁多,在去雾效果评价上针对性偏弱等问题,设计了一种基于 ...

  6. 【老生谈算法】matlab实现视频图像增强和去雾算法——去雾算法

    matlab视频图像增强和去雾算法 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]视频图像增强和去雾算法matlab实现.d ...

  7. 图像增强及直方图均衡化在图像去雾上的应用(附matlab代码)

    一.图像增强技术介绍 简单进行一个背景介绍:图像增强就是将一幅图中需要的信息增强,消弱或去除不需要的信息的一种处理技术,可以达到改善图像质量的作用. 根据处理空间的不同,可以分为空域增强和频域增强两种 ...

  8. 基于MATLAB的图像去雾系统

    基于MATLAB的图像去雾系统 (一)图像去雾基础原理 1.雾霭的形成机理 雾实际上是由悬浮颗粒在大气中的微小液滴构成的气溶胶,常呈现乳白色,其底部位于地球表面,所以也可以看作是接近地面的云.霭其实跟 ...

  9. 基于MATLAB改进暗通道先验的图像去雾算法

    基于MATLAB改进暗通道先验的图像去雾算法 摘要:暗通道先验去雾算法求得的的透射率比较精细,去雾效果优于大多数去雾算法.然而在暗通道求取过程中,最小值滤波的处理会使得暗色向外扩张,导致透射率扩张变大 ...

最新文章

  1. Microbiome:生态中心张丽梅组-植物发育时期驱动玉米微生物组生态角色的分化...
  2. signature=dff897e1da6b42a8e9483e18ff19fcde,Vídeo Institucional: Ingresse1
  3. 希捷硬盘固件修复工具_电脑升级高速硬盘后的差异竟如此大!酷鱼510性能实测...
  4. Python中list和set的区别
  5. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
  6. 我的世界服务器里怎么无限随机传送,我的世界随机传送插件使用教程 权限指令分享...
  7. 分分钟甩Word几条街,Python编辑公式竟可以如此简单,赶紧收藏!!
  8. 再读《SAP德国造》
  9. html框架设计左侧嵌套,html页面嵌套使用示例(frameset使用方法)
  10. 如何给multisim中导入9012/9013/8050/8550三极管
  11. ndows优化大师 免费版,Windows7优化大师
  12. 使用ActionForm的validate()进行验证
  13. adb shell dunpsys SurfaceFlinger
  14. 善待自己 改变命运的N个人生哲理
  15. GeoTools入门(八)-- (SLD)样式处理
  16. int为什么是-32768到32767
  17. oracle.简单查询、排序、限定查询、单行函数
  18. [1-6] 把时间当做朋友(李笑来)Chapter 6 【更多思考】 摘录
  19. unity vr手柄移动_移动内外VR跟踪,现在可通过Unity在手机上轻松使用
  20. 可燃气体和有毒气体报警管理系统软件

热门文章

  1. 《水经注地图服务》缓存管理说明
  2. APP马甲包优化技巧制作流程(二)
  3. 国家信息安全水平考试NISP一级模拟题(02)
  4. 2020 中国企业 500 强:华为投入研发 1317 亿、阿里 431 亿、中国移动 235 亿、百度 183 亿
  5. Linux目录配置与FHS标准
  6. 如何更改文件夹的图标!如何更改文件的图标!
  7. 程序员白头发是怎样一种感受?
  8. 和画意思相近的字_写出两个与画横线词语意思相近的四字词语:         ——青夏教育精英家教网——...
  9. sublime配置浏览器
  10. 科普——未知的公共免费WIFI存在的风险及隐患