当前位置: 首页 > 编程日记 > 正文

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

本文主要介绍基于Retinex理论的雾霭天气图像增强及其实现。并通过编写两个程序来实现图像的去雾功能。

1 Rentinex理论

Retinex(视网膜Retina”和大脑皮层Cortex”的缩写)理论是一种建立在科学实验和科学分析基础上的基于人类视觉系统(Human Visual System)的图像增强理论。该算法的基本原理模型最早是由Edwin Land(埃德温?兰德)于1971年提出的一种被称为的色彩的理论,并在颜色恒常性的基础上提出的一种图像增强方法。Retinex 理论的基本内容是物体的颜色是由物体对长波(红)、中波(绿)和短波(蓝)光线的反射能力决定的,而不是由反射光强度的绝对值决定的;物体的色彩不受光照非均性的影响,具有一致性,即Retinex论是以色感一致性(颜色恒常性)为基础的。根据Edwin Land提出的理论,一幅给定的图像S(x,y)分解成两幅不同的图像:物体图像R(x,y)和入射光图像L(x,y),其原理示意图如

图-1 Retinex理论

对于观察图像S中的每个点(x,y),用公式可以表示为: S(x,y)=R(x,y)×L(x,y) (1.3.1)

实际上,Retinex理论就是通过图像S来得到物体的反射性质R,也就是去除了入射光L的性质从而得到物体原本该有的样子。

2 基于Retinex理论的图像增强的基本步骤

步骤一: 利用取对数的方法将照射光分量和反射光分量分离即S'(x, y)=r(x, y)+l(x, y)=log(R(x, y))+log(L(x, y))用高斯模板对原图像做卷积,即相当于对原图像做低通滤波,得到低通滤波后的图像D(x,y),F(x, y)表示高斯滤波函数:

D(x, y)=S(x, y) *F(x, y)在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像G(x, y)?G(x,y)=S'(x, y)log(D(x, y))?;

步骤四:对G(x,y)取反对数,得到增强后的图像R(x, y):

?R(x, y)=exp(G(x, y));

步骤五:对R(x,y)做对比度增强,得到最终的结果图像

其中,是Retinex的输出,表示3个颜色谱带,是高斯滤波函数,表示尺度的权重因子,表示使用尺度的个数,=3,表示彩色图像,。=1,表示灰度图像。从公式中可以看出:MSR算法的特点是能产生包含色调再现和动态范围压缩这两个特性的输出图像。

在MSR算法的增强过程中,图像可能会因为增加了噪声而造成对图像中的局部区域色彩失真,使得物体的真正颜色效果不能很好的显现出来,从而影响了整体视觉效果。为了弥补这个缺点,一般情况下会应用带色彩恢复因子C的多尺度算法(MSRCR)来解决。带色彩恢复因子C的多尺度算法(MSRCR)]是在多个固定尺度的基础上考虑色彩不失真恢复的结果,在多尺度Retinex算法过程中,我们通过引入一个色彩因子C来弥补由于图像局部区域对比度增强而导致图像颜色失真的缺陷,通常情况下所引入的色彩恢复因子C的表达式为

其中,表示第个通道的色彩恢复系数,它的作用是用来调节3个通道颜色的比例,表示的是颜色空间的映射函数。带色彩恢复的多尺度Retinex算法(MSRCR)通过色彩恢复因子C这个系数来调整原始图像中三个颜色通道之间的比例关系,从而通过把相对有点暗的区域的信息凸显出来,以达到消除图像色彩失真的缺陷。处理后的图像局域对比度提高,而且它的亮度与真实的场景很相似,图像在人们视觉感知下显得极其逼真。因此,MSR算法具有较好的颜色再现性、亮度恒常性以及动态范围压缩等特性。

4 例程精讲

例程1是基于Retinex理论进行雾霭天气增强的MATLAB程序,读者可结合程序及注释对基于Retinex理论进行雾霭天气增强的基本原理进行进一步分析,该程序的运行结果如图-2所示。

例程1:

clear;

close all;

% 读入图像

I=imread('wu.png');

% 取输入图像的R分量

R=I(:,:,1);

[N1,M1]=size(R);

% 对R分量进行数据转换,并对其取对数

R0=double(R);

Rlog=log(R0+1);

% 对R分量进行二维傅里叶变换

Rfft2=fft2(R0);

% 形成高斯滤波函数

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));

% 对

相关文章:

用电脑自带画图工具加字方法

其实加字的话是很简单的,每个电脑都可以,不需要下载什么特殊软件 电脑自带的画图工具就可以轻松加字 首先找到一张图片右击编辑——打开图片 然后我们点左边工具栏的A标志(这个就是加字的按钮) 点了之后我们用鼠标在你需要加字的位…

OCS 2007 聊天记录查看工具 OCSMessage

平时用SQL查看, 总感觉挺麻烦的, 而且里面的{\rtf1\ansi\ansicpg950\deff0\... 数据把我转的还头大 就像以前的WSUS数据, 手动查询忒麻烦,索性开发了这个工具 OCMessage, 也提供给那些想查询他人隐私的朋友一点方便(哈哈)当然, 目前的版本还…

学习笔记 九: DNS

一 DNS服务 Domain Name system,它是一个层级名称树解析网络主机和资源。 常用的解析命令: host dig /etc/resolv.conf host -v -t NS example.com DNS记录: TTL class PTR A cname MX TXT 二 DNS安装配置 caching nameservers unbound : s…

oracle web API,在Web API程序中使用Swagger做接口文档

#### 创建Web API程序在VS2019中创建一个ASP.NET Web应用程序,选择Web API来创建RESTful的HTTP服务项目,构选MVC和Web API核心引用。#### 安装Swashbuckle使用NuGet包管理器,查找安装Swashbuckle,也就是Swagger插件。#### 配置Swa…

AlphaGo“兄弟”AlphaFold出世,DeepMind再创记录

在生物医学领域,DeepMind 又做出了具有里程碑意义的产品。两年一度的国际蛋白质结构预测竞赛(CASP)的在周末正式公布最终结果。这个已经进行了 25 年的比赛项目,每届都有来自世界各地的数百支团队参与,以促进研究和衡量…

设置Button控件创建完毕时触发的事件.

Button控件的creationCompleteEffect样式. 示例&#xff1a; 刷新查看效果.代码&#xff1a; <?xml version"1.0" encoding"utf-8"?><!--http://blog.flexexamples.com/2008/06/17/setting-a-creation-complete-effect-on-a-button-control-in-…

zabbix监控系统的安装与配置

一、Zabbix简介 1.1 Zabbix简介 Zabbix是一个企业级的开源分布式监控解决方案&#xff0c;由一个国外的团队持续维护更新&#xff0c;软件可以自由下载使用&#xff0c;运作团队靠提供收费的技术支持赢利。官方网站&#xff1a;http://www.zabbix.com官方文档&#xff1a;http:…

weblogic连接oracle配置文件,配置weblogic连接oracle的数据源

Name:JDBC-DEV1JNDI Name:jdbc.datasource.DS1AdminServerRow Prefetch Size: 48Stream Chunk Size:256URL:jdbc:oracle:thin:192.168.0.118:1521:AATDriver Class Name:oracle.jdbc.OracleDriver连接oracle及postgresql的连接字符串package com.lwf.eus.util;import java.sql…

首发 | 用声音改变生活,标贝科技完成 A 轮 5000 万人民币融资

AI科技大本营获悉&#xff0c;日前&#xff0c;专注于智能语音交互技术及数据的“标贝科技”完成 A 轮 5000 万元人民币融资&#xff0c;本轮投资由深创投领投&#xff0c;恒生电子跟投。 值得注意的是&#xff0c;本轮的领投方深创投在 2017 年清科统计的创业投资机构中&…

初始化算是完了

在企业实施K3&#xff0c;初始化算是完了&#xff0c;但是物料不如意&#xff0c;一个是物料分类太多&#xff0c;属性太多&#xff0c;一个就是保管连最基本的材料库、半成品库、成品库也分不太清楚。转载于:https://blog.51cto.com/huolijian/85574

关于RAID与SCSI的一些基本概念(转)

RAID简介内嵌微处理器的磁盘子系统通常称为R A I D系统。R A I D阵列的可用容量总小于成员磁盘的总量。一、RAID 0&#xff08;分块&#xff09;是简单的、不带有校验的磁盘分块&#xff0c;本质上它并不是一个真正的R A I D&#xff0c;因为它并不提供任何形式的冗余。假如RAI…

今晚8点直播 | 双11的背后除了阿里还有顺丰,智慧物流是如何利用深度学习赋能的?...

每年年底的双十一已成为盛大的购物节日。而有一个行业在这期间发挥着至关重要的作用——物流。近年来&#xff0c;深度学习已经应用到各行各业中&#xff0c;物流行业也不例外。智慧物流是“互联网”高效物流的重要内容&#xff0c;以智能化技术使物流具有学习、感知、思考、决…

从Webshell到肉鸡

从Webshell到肉鸡 S.S.F simeon 我一直都在强调一个东西&#xff0c;在网络攻防中最重要的就是思维&#xff0c;本文的灵感来自于安天365团队的一个篇稿件&#xff0c;在稿件中提到了一个AspxSpy的Asp.net类型后门软件&#xff0c;在安全界中最近一直流行后门中的后门&#…

oracle挂堎,Oracle 冷拷备实例挂到新ORACLE时应注意问题。

冷拷备了一个原有数据库&#xff0c;要把他移植到新的数据库中时&#xff0c;要注意一下&#xff1a;1.Oradim -new -sid [实例名:demo] -intpwd [PWD] -pfile [要创建实例的配置文件&#xff1a;*.ora]2.set Oracle_SID[实例名](装完后记得要在注册表里加上:HKEY_LOCAL_MACHI…

如何用机器学习方法进行数据建模?(文末福利)

本文节选自CCF大数据教材系列丛书之《大数据导论》&#xff0c;由中国科学院院士梅宏主编。本书系统地介绍大数据涵盖的内容&#xff0c;包括数据与大数据概述、大数据感知与获取、大数据存储与管理、大数据分析、大数据处理、大数据治理、大数据安全与隐私等。“当前&#xff…

oracle1core,Oracle core06_latchlock

lock and latch在oracle中为了保护共享资源&#xff0c;使用了两种不同的锁机制lock和latch&#xff0c;这两种锁有明显不同点&#xff1a;1&#xff0c;lock和pin&#xff0c;采用的是队列的方式&#xff0c;先来先服务的策略&#xff0c;latch和mutex&#xff0c;采用的是抢占…

Foxmail6密码获取案例

Foxmail6密码获取案例 Simeon以前曾经写过一篇Foxmail5.0邮件账号以及密码获取的文章&#xff0c;对于Foxmail5.0中邮件账号密码获取相对较简单&#xff0c;可以通过星号密码查看器即可查看保留在Foxmail软件中的用户的密码&#xff0c;当然也还有其它的破解方式。但是在Foxmai…

新版CCNP中文版教材--ISCW

找了好久的新版CCNP中文教材,不过只有ISCW,希望能对想考NP的朋友有一点帮助![url]http://www.bibidu.com/fileview-696580.html[/url] 转载于:https://blog.51cto.com/xghe110/89352

杨超越的声音+高晓松的脸~如此酸爽的技术,你值得拥有!

作者 | 香港中文大学 Multimedia Laboratory译者 | linstancy整理 | Jane出品 | AI科技大本营什么是 Talking Face Generation 任务&#xff1f;简单来讲&#xff0c;给定音频或视频后&#xff0c;可以让任意一个人的面部特征与输入信息保持一致。比如在下面的 Demo 视频中&…

遍历数据键和值 php,php数组实例之获取当前数组键和值 each()

each()函数返回input_array的当前键/值对&#xff0c;并将指针推进一个位置。其形式如下&#xff1a;array each(array array)返回的数组包含四个键&#xff0c;键0和key包含键名&#xff0c;而键1和value包含相应的数据。如果执行each()前指针位于数组末尾&#xff0c;则返回f…

震后首游都江堰感怀

震后首游都江堰感怀题记&#xff1a;在地震刚刚过去2个月之时&#xff0c;来到都江堰参观有感——代腾飞 2008年7月12日 于都江堰千年水利都江堰地动山摇面不改但使沧容神尤在笑迎宾客八面来

安装linux和windows双系统

很多人一提到安装linux和windows双系统就会想到单独将磁盘划一个分区给linux&#xff0c;如果一块磁盘上已经安装了windows&#xff0c;并且所有分区都有数据&#xff0c;那就麻烦了&#xff0c;即使有了单独的分区&#xff0c;还需要安装grub&#xff0c;然后在grub中选择启动…

Office 365 系列之一:初识Office 365

最近项目越来越多&#xff0c;压力也是越来越大&#xff0c;而且到了年底了还要进行Office 365的考试&#xff0c;最近小编是在闲暇之余各种查看Office 365的资料&#xff0c;今天跟大家分享自己对 Office 365 的学习和理解&#xff0c;如有写得不对的地方还希望大家多 多指点哦…

oracle导出客户机使用us7a,导入 Oracle WORLD SAMPLE

Import WORLD SAMPLE C:\oraclexe\app\oracle\product\11.2.0\server\bin>imp system/oracle Import: Release 11.2.0.2.0 - Production on 星期五 10月 10 22:02:19 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle D…

AI做不了“真”3D图像?试试Google的新生成模型

编译 | 若名出品 | AI科技大本营用 AI 生成逼真三维物体模型并不像人们以为的那么困难。近日&#xff0c;在 NeurIPS 2018 会议上接收的论文“ 视觉对象网络&#xff1a;图像生成与分离式的3D表示”中&#xff0c;麻省理工学院计算机科学与人工智能实验室&#xff08;MIT CSAIL…

linux内核异常分析ecp,内核基于嵌入式Linux的PocketIX系统

lgms2008 于 2006-10-20 10:38:55发表:应用领域与前景目前PocketIX只是一个预览版&#xff0c;其正式版本不仅可以广泛应用于移动计算平台(PPC)、 家庭信息环境(机顶盒、数字电视)、 工业、商业控制(智能工控设备、POS/ATM机)等信息家电上&#xff0c;还可应用于与Internet相联…

sharepoint性能优化

写几个配置&#xff0c;提高sharepoint性能的。主要思路是提高sql的查询能力&#xff0c;提高iis的硬件占用资源。 1、sql配置&#xff0c;管理器&#xff0c;点属性。配置最大工作线程数&#xff0c;勾选提升SQL server的优先级。配置后&#xff0c;重启sql服务&#xff0c;查…

倒计时1天,2018中国大数据技术大会报名通道即将关闭(附参会提醒)

2018 年12 月 6-8 日&#xff0c;由中国计算机学会主办&#xff0c;CCF大数据专家委员会承办&#xff0c;CSDN、中科天玑数据科技股份有限公司协办的 2018 中国大数据技术大会&#xff08;BDTC&#xff09;&#xff0c;携主题“大数据新应用”再度强势来袭&#xff0c;直击大数…

DNN module.css文件不起作用的解决

DNN的模块会自动加载模块根目录下的module.css文件&#xff0c;但有时你加入了一个module.css文件&#xff0c;却发现加入的module.css文件没有被加载&#xff0c;这是为什么呢&#xff1f; 因为DNN的Cache机制和CSS加载机制&#xff0c;新加入的module.css没有立即被加载&…

搭建redis给mysql做缓存

安装redis的前提是lnmp或者lamp的环境已经搭建完成。 安装redis 1、安装redis&#xff08;或可以选择yum安装&#xff09; 123456789101112[rootredis ~]# wget -c -t 0 http://download.redis.io/releases/redis-2.8.19.tar.gz[rootredis ~]# mkdir /usr/local/redis[rootredi…