【智能算法应用】基于粒子群算法的多尺度Retinex图像去雾方法

目录

    • 1.算法原理
    • 2.粒子群算法的多尺度Retinex图像去雾方法
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.算法原理

【智能算法】粒子群算法(PSO)原理及实现

多尺度Retinex算法

在Retinex算法中,雾化图像的形成可以总结为入射光和反射光的乘积:
I ( x , y ) = L ( x , y ) × R ( x , y ) (1) I(x,y)=L(x,y)\times R(x,y)\tag{1} I(x,y)=L(x,y)×R(x,y)(1)
其中,I(x,y)表示图像亮度,R(x,y)和L(x,y)分别代表反射分量和照明分量。
用于模拟周围环境的函数类似于通常用于单个神经元感受野的高斯差分函数:
L ( x , y ) = I ( x , y ) ∗ F ( x , y ) (2) L(x,y)=I(x,y)*F(x,y)\tag{2} L(x,y)=I(x,y)F(x,y)(2)
周围函数F(x,y):
F ( x , y ) = K exp ( − x 2 + y 2 2 σ 2 ) (3) F(x,y)=K\text{exp}\left(-\frac{x^2+y^2}{2\sigma^2}\right)\tag{3} F(x,y)=Kexp(2σ2x2+y2)(3)
其中,σ 是高斯周围空间尺度参数。下面展示不同σ 高斯函数图像,较大的σ 将强调色彩保真度但失去更多图像细节信息,而较小的 σ 则相反。
在这里插入图片描述
在这里插入图片描述

单尺度Retinex (single-scale Retinex, SSR) 算法:
r S S R , i ( x , y ) = l o g R i ( x , y ) = log ⁡ ( I i ( x , y ) ) − log ⁡ ( F i ( x , y ) ∗ I i ( x , y ) ) (4) \begin{aligned}&r_{SSR,i}(x,y)=\mathrm{log}R_{i}(x,y)\\&=\log(I_{i}(x,y))-\log(F_{i}(x,y)*I_{i}(x,y))\end{aligned}\tag{4} rSSR,i(x,y)=logRi(x,y)=log(Ii(x,y))log(Fi(x,y)Ii(x,y))(4)

多尺度Retinex(Multi-scale Retinex, MSR) 被提出来通过不同尺度的加权叠加来抵消单一尺度的影响:
R m s r , i = ∑ n = 1 N w n , i r n , i = ∑ n = 1 N w n , i ( log ⁡ ( I i ( x , y ) ) − log ⁡ ( F n , i ( x , y ) ∗ I i ( x , y ) ) ) (5) \begin{aligned}&R_{msr,i}=\sum_{n=1}^{N}w_{n,i}r_{n,i}\\&=\sum_{n=1}^{N}w_{n,i}\big(\log(I_{i}(x,y))-\log\big(F_{n,i}(x,y)*I_{i}(x,y)\big)\big)\end{aligned}\tag{5} Rmsr,i=n=1Nwn,irn,i=n=1Nwn,i(log(Ii(x,y))log(Fn,i(x,y)Ii(x,y)))(5)

2.粒子群算法的多尺度Retinex图像去雾方法

考虑到去雾后的图像颜色自然,细节清晰和信息保留,适应度函数定义为:
P S N R = 20 ⋅ log ⁡ 10 ( M A X I M S E ) \mathrm{PSNR}=20\cdot\log_{10}\left(\frac{\mathrm{MAX}_{I}}{\sqrt{\mathrm{MSE}}}\right) PSNR=20log10(MSE MAXI)

3.结果展示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.参考文献

[1] Yao L P, Pan Z. The Retinex-based image dehazing using a particle swarm optimization method[J]. Multimedia Tools and Applications, 2021, 80(3): 3425-3442.

5.代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源可二次开发的商城小程序源码系统源码 前后端分离 附带完整的安装包以及搭建部署教程

系统概述 本开源商城小程序源码系统是基于现代Web开发技术栈打造的一套高性能、易扩展的电商解决方案。它采用了前后端分离的设计模式,前端使用Vue.js或React等主流框架构建用户界面,后端则采用Node.js/Express、Spring Boot等技术栈处理业务逻辑与数据…

QT调用vs2019生成的c++动态库

QT调用vs2019生成的c动态库 dll库的创建方法: VS2019创建c动态链接库dll与调用方法-CSDN博客 加减法示范: 头文件 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLL3_EXPORTS // 符号编…

Linux Debian12使用podman安装xss-labs靶场环境

一、xss-labs简介 xss-labs靶场是一个专门用于学习和练习跨站脚本攻击(XSS)技术的在线平台。它提供了一系列的实验场景和演示,帮助安全研究人员、开发人员和安全爱好者深入了解XSS攻击的原理和防御方法。 二、安装podman环境 Linux Debian…

LVS/NAT负载均衡实操

添加规则,并做持久操作 1 添加规则 [rootlvs ~]# ipvsadm -A -t 10.36.178.183:80 -s wrr [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3 [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1[rootlvs ~]# ipvsadm -Ln …

第2章 Rust初体验4/8:提供标准库之外功能的Library Crate:简化包管理和依赖管理:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.4 故事2: 生成点数之和的随机答案 又是新的一天,大家的培训课又开始了哦!现在,我们的学员们开始用三种语言来实现故事2,加油! 2.4.1 Rust版故事2 2.4.1.1 提供标准库之外功能的Library Crate:简化包管理和依赖管理 贾克强:“我们的故事…

【JVM】JVisualVM的介绍、使用和GC过程

VisualVM介绍 VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几…

30 岁的程序员,要有 “归零“ 心态

大家好,我是码农先森。 古话说的 “三十而立”,正是担重之时,却大部分人在职场中都处于不上不下的尴尬境地。已经没有刚毕业时那股子冲劲,被生活和工作磨平了棱角。 在技术思想方面,似乎已经触及到了天花板&#xff…

阻容感的串联和并联

文章目录 电阻的串联电容的串联 电阻的串联 电容的串联 CC1C2/(C1C2) 串联后电容反而变小了,所以实际应用中,电容不串联(我没见过电容串联使用的) 类似于电导的分压, 电容一般是并联使用 电感一般串联使用

鸿蒙轻内核调测-内存调测-内存泄漏检测

1、基础概念 内存泄漏检测机制作为内核的可选功能,用于辅助定位动态内存泄漏问题。开启该功能,动态内存机制会自动记录申请内存时的函数调用关系(下文简称LR)。如果出现泄漏,就可以利用这些记录的信息,找到…

MNIST手写字符分类

MNIST手写字符分类 文章目录 MNIST手写字符分类1 数据集2 模型构建3 训练4 模型保存5 推理6 模型导出7 导出模型测试 1 数据集 MNIST手写字符集包括60000张用于训练的训练集图片和10000张用于测试的测试集图片,所有图片均归一化为28*28的灰度图像。其中字符区域为白…

Vue31-自定义指令:总结

一、自定义函数的陷阱 1-1、自定义函数名 自定义函数名,不能用驼峰式!!! 示例1: 示例2: 1-2、指令回调函数的this 【回顾】: 所有由vue管理的函数,里面的this直接就是vm实例对象。…

小主机折腾记26

双独立显卡调用问题 前两天将tesla p4从x99大板上拆了下来,将880G5twr上的rx480 4g安装到了x99大板上,预计是dg1输出,rx480做3d运算。安装完驱动后,还想着按照之前tesla p4的设置方法去设置rx480,结果果然&#xff0c…

边坡监测规范:确保边坡工程安全稳定的专业准则

边坡工程是土木工程中不可或缺的一部分,其安全性直接关系到工程整体的质量与稳定性。因此,在边坡工程中实施有效的监测措施,遵循一系列专业的监测规范,对于预防边坡失稳、滑坡等灾害的发生,保障人民群众的生命财产安全…

使用 Vue 和 Ant Design 实现抽屉效果的模块折叠功能

功能描述: 有两个模块,点击上面模块的收起按钮时,上面的模块可以折叠,下面的模块随之扩展 代码实现: 我们在 Vue 组件中定义两个模块的布局和状态管理: const scrollTableY ref(560); // 表格初始高度…

ssm161基于web的资源共享平台的共享与开发+jsp

资源共享平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本资源共享平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处…

tkinter滚动条Scrollbar

tkinter滚动条Scrollbar 滚动条Scrollbar滚动条的基本用法效果代码 滚动条Scrollbar 在Tkinter中,**滚动条(Scrollbar)**是一个允许用户在较大的内容区域内平移的组件。**滚动条通常与文本框(Text)、列表框&#xff0…

cspccf备考

13年12月CCF计算机软件能力认证 3192. 出现次数最多的数 给定 n n n个正整数,找出它们中出现次数最多的数。 如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数 n n n,表示数字的个数。 输入的第二行有 n n n个整数 …

什么是基于风险的漏洞管理RBVM,及其优势

文章目录 一、什么是漏洞管理二、什么是基于风险的漏洞管理RBVM三、RBVM的基本流程四、RBVM的特点和优势 一、什么是漏洞管理 安全漏洞是网络或网络资产的结构、功能或实现中的任何缺陷或弱点,黑客可以利用这些缺陷或弱点发起网络攻击,获得对系统或数据…

FFMpeg解复用流程

文章目录 解复用流程图复用器与解复用器小结 解复用流程图 流程图,如上图所示。 复用器与解复用器 复用器,就是视频流,音频流,字幕流,其他成分,按照一定规则组合成视频文件,视频文件可以是mp4…

c语言利用openssl实现简单客户端和服务端(观察记录层最大长度)

文章目录 前言一、客户端实现二、服务端实现总结 前言 本文是使用openssl111w实现的简单客户端和服务端&#xff0c;主要用于观察openssl一个记录层数据包的大小。 一、客户端实现 #include <stdio.h> #include <stdlib.h> #include <string.h> #inc…