【智能算法应用】灰狼算法(GWO)在低照度图像增强中的应用

2024-04-25 23:28

本文主要是介绍【智能算法应用】灰狼算法(GWO)在低照度图像增强中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

目录

    • 1.算法原理
    • 2.数学模型
    • 3.结果展示
    • 4.参考文献


1.算法原理

【智能算法】灰狼算法(GWO)原理及实现

2.数学模型

对于低照度图像的增强方式可以采用非线性变换函数来对图像的灰度值进行变化,对于不同环境下质量不同的图像,可以将其分成四个区域,包括暗区、亮区、边缘区以及中心区,对于不同区域,采用的非线性变换函数也有所不同,具体的针对不同区域的变换曲线图如下所示:
在这里插入图片描述
Tubbs 提出了一种归一化非完全 Beta 函数,这种函数能够根据图像的质量的不同,自动拟合这四种非线性变换曲线:
F ( u ) = B − 1 ( α , β ) ∗ ∫ 0 u t α − 1 ( 1 − t ) β − 1 d t B ( α , β ) = ∫ 0 1 t α − 1 ( 1 − t ) β − 1 d t (1) F\big(u\big)=B^{-1}\big(\alpha,\beta\big)*\int_{0}^{\mathrm{u}}\mathrm{t}^{\alpha-1}\big(1-t\big)^{\beta-1}dt\\B\big(\alpha,\beta\big)=\int_{0}^{1}t^{\alpha-1}\big(1-t\big)^{\beta-1}dt\tag{1} F(u)=B1(α,β)0utα1(1t)β1dtB(α,β)=01tα1(1t)β1dt(1)
图像增强领域的适应度函数设计中,要兼顾图像整体与局部,以及各个区域之间的平衡,因此,为了充分体现图像增强后的各类信息要素,对适应度函数的设计公式中包含了熵、边缘信息以及方差:
f i t n e s s = α 1 ∗ H + α 2 ∗ S + α 3 ∗ log ⁡ ( s t ν ) (2) fitness=\alpha_1*H+\alpha_2*S+\alpha_3*\log(st\nu)\tag{2} fitness=α1H+α2S+α3log(stν)(2)
其中 H 表示图像中的熵,熵值越大,表示图像中所包含的信息量越大,S 表示图像的边缘内容,S越大表示图像边缘信息越多,图像对比度越好,stv 则表示图像的灰度值标准方差,stv越大图像的平均像素变化越大,并且图像的全局对比度也越好,越能通过人眼来观察到图像增强的效果。

3.结果展示

在这里插入图片描述

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

4.参考文献

[1] 袁成志.基于改进群体智能优化算法的图像处理应用研究[D].南京邮电大学,2023.

这篇关于【智能算法应用】灰狼算法(GWO)在低照度图像增强中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936083

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短