当前位置: 首页 > article >正文

【论文复现】基于Otsu方法的多阈值图像分割改进鲸鱼优化算法

目录

    • 1.摘要
    • 2.鲸鱼优化算法WOA原理
    • 3.改进策略
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取


在这里插入图片描述

1.摘要

本文提出了一种基于Otsu方法的多阈值图像分割改进鲸鱼优化算法(RAV-WOA)。RAV-WOA算法能够在分割灰度图像和彩色图像时,自动选择最优阈值,并确保高效性和高质量。本文引入了反向学习策略来优化鲸鱼种群的初始化,提升了初始种群的质量。此外,针对全局搜索能力和局部开发能力的平衡问题,同时加入了自适应加权策略会根据适应度值和迭代次数进行动态调整。

2.鲸鱼优化算法WOA原理

SCI二区|鲸鱼优化算法(WOA)原理及实现

3.改进策略

自适应加权策略

本文提出了一种可变自适应权重机制,用于动态调整领头鲸的最优位置。当领头鲸远离最优位置时,自适应权重会对其产生较强的扰动;而当领头鲸接近最优位置时,扰动则会减弱。在鲸鱼搜索猎物时,首先根据适应度值对个体鲸鱼进行排序,并将当前处于最佳和最差位置的鲸鱼划分为三等份,得到适应度阈值 s 1 s_1 s1 s 2 s_2 s2,其中 s 1 < s 2 s_1<s_2 s1<s2。然后,当前鲸鱼的位置与这两个阈值 s 1 s_1 s1 s 2 s_2 s2进行比较,从而实现动态的自适应位置更新。
ω = { ω a v g + ( ω a v g − ω min ⁡ ) f i − s 1 f min ⁡ − s 1 f i < s 1 τ ( t − t max ⁡ ϵ − t max ⁡ ) + φ ( f i − s 1 s 2 − f i ) s 1 < f i < s 2 ω a v g − ( ω max ⁡ − ω a v g ) ( f i − s 2 f max ⁡ − s 2 ) f i > s 2 \omega= \begin{cases} \omega_{avg}+(\omega_{avg}-\omega_{\min})\frac{f_i-s_1}{f_{\min}-s_1} & \quad f_i<s_1 \\ \tau(\frac{t-t_{\max}}{\epsilon-t_{\max}})+\varphi(\frac{f_i-s_1}{s_2-f_i}) & \quad s_1<f_i<s_2 \\ \omega_{avg}-(\omega_{\max}-\omega_{avg})(\frac{f_i-s_2}{f_{\max}-s_2}) & \quad f_i>s_2 & \end{cases} ω= ωavg+(ωavgωmin)fmins1fis1τ(ϵtmaxttmax)+φ(s2fifis1)ωavg(ωmaxωavg)(fmaxs2fis2)fi<s1s1<fi<s2fi>s2

自适应权重策略被应用于鲸鱼的螺旋狩猎行为和周围的狩猎行为,鲸鱼位置更新:
{ X ( t + 1 ) = ω ⋅ X ( t ) − A ⋅ D i f p ≤ a t h X ( t + 1 ) = D ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) + ω ⋅ X ∗ ( t ) i f p > a t h \begin{cases} X(t+1) & =\omega\cdot X(t)-A\cdot D\quad ifp\leq ath \\ \\ X(t+1) & =D^{\prime}\cdot e^{bl}\cdot\cos(2\pi l)+\omega\cdot X^*(t)\quad ifp>ath \end{cases} X(t+1)X(t+1)=ωX(t)ADifpath=Deblcos(2πl)+ωX(t)ifp>ath

水平交叉和垂直交叉策略

在鲸鱼优化算法(WOA)中,处于最优位置的鲸鱼对整个种群起着引导作用。如果此时最优位置的鲸鱼陷入局部最优解,其他鲸鱼个体将会向局部最优解聚集,从而导致种群多样性的降低。为了平衡算法的全局开发能力与局部搜索能力,引入了水平交叉和垂直交叉策略。水平交叉策略允许种群在搜索空间的边界时增强算法的全局搜索能力,而垂直交叉策略则允许种群在不同维度之间进行交叉操作,帮助种群在某一维度上跳出局部最优解。通过比较水平交叉和垂直交叉策略产生的最优解与其父代个体,选择较优的结果作为算法的最优解。
E i , d h c = u 1 ⋅ Q i , d + ( 1 − u 1 ) ⋅ Q j , d + v 1 ⋅ ( Q i , d − Q j , d ) E j , d h c = u 2 ⋅ Q j , d + ( 1 − u 2 ) ⋅ Q i , d + v 2 ⋅ ( Q j , d − Q i , d ) \begin{aligned} E_{i,d}^{hc} & =u_1\cdot Q_{i,d}+(1-u_1)\cdot Q_{j,d}+v_1\cdot(Q_{i,d}-Q_{j,d}) \\ E_{j,d}^{hc} & =u_2\cdot Q_{j,d}+(1-u_2)\cdot Q_{i,d}+v_2\cdot(Q_{j,d}-Q_{i,d}) \end{aligned} Ei,dhcEj,dhc=u1Qi,d+(1u1)Qj,d+v1(Qi,dQj,d)=u2Qj,d+(1u2)Qi,d+v2(Qj,dQi,d)

Q i , d 1 v c = q ⋅ Q i , d 1 + ( 1 − q ) ⋅ Q i , d 2 Q_{i,d_1}^{vc}=q\cdot Q_{i,d_1}+(1-q)\cdot Q_{i,d_2} Qi,d1vc=qQi,d1+(1q)Qi,d2

流程图

在这里插入图片描述

4.结果展示

CEC2019

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

图像分割

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

5.参考文献

[1] Ma G, Yue X. An improved whale optimization algorithm based on multilevel threshold image segmentation using the Otsu method[J]. Engineering Applications of Artificial Intelligence, 2022, 113: 104960.

6.代码获取

相关文章:

【论文复现】基于Otsu方法的多阈值图像分割改进鲸鱼优化算法

目录 1.摘要2.鲸鱼优化算法WOA原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 本文提出了一种基于Otsu方法的多阈值图像分割改进鲸鱼优化算法&#xff08;RAV-WOA&#xff09;。RAV-WOA算法能够在分割灰度图像和彩色图像时&#xff0c;自动选择最优阈值&#xff0c;并确…...

TypeScript 运算符

TypeScript 运算符 TypeScript 作为 JavaScript 的超集,在 JavaScript 的基础上增加了静态类型系统,使得开发大型应用更加容易和维护。在 TypeScript 中,运算符是执行特定数学或逻辑运算的符号。本文将详细介绍 TypeScript 中常见的运算符,并对其使用方法进行详细阐述。 …...

关于系统重构实践的一些思考与总结

文章目录 一、前言二、系统重构的范式1.明确目标和背景2.兼容屏蔽对上层的影响3.设计灰度迁移方案3.1 灰度策略3.2 灰度过程设计3.2.1 case1 业务逻辑变更3.2.2 case2 底层数据变更&#xff08;数据平滑迁移&#xff09;3.2.3 case3 在途新旧流程兼容3.2.4 case4 接口变更3.2.5…...

电介质超表面中指定涡旋的非线性生成

涡旋光束在众多领域具有重要应用&#xff0c;但传统光学器件产生涡旋光束的方式限制了其在集成系统中的应用。超表面的出现为涡旋光束的产生带来了新的可能性&#xff0c;尤其是在非线性领域&#xff0c;尽管近些年来已经有一些研究&#xff0c;但仍存在诸多问题&#xff0c;如…...

学习日记-250202

现在开始要继续写我的日记了......&#xff08;也可以当作笔记吧&#xff09; 一.论文 Prompt Transfer for Dual-Aspect Cross Domain Cognitive Diagnosis 主要内容&#xff1a; 主要是加入prompt提示&#xff0c; 为重叠实体设计个性化的提示&#xff0c;为非重叠实体设计共…...

pytorch实现简单的情感分析算法

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 在PyTorch中实现中文情感分析算法通常涉及以下几个步骤&#xff1a;数据预处理、模型定义、训练和评估。下面是一个简单的实现示例&#xff0c;使用LSTM模型进行中文情感分析。 1. 数据预处理 首先&#xff0c;我…...

【Rust自学】16.3. 共享状态的并发

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 16.3.1. 使用共享来实现并发 还记得Go语言有一句名言是这么说的&#xff1a;Do not communicate by sharing memory; instead, share me…...

git 新项目

新项目git 新建的项目如何进行git 配置git git config --global user.name "cc" git config --global user.email ccexample.com配置远程仓库路径 // 添加 git remote add origin http://gogs/cc/mc.git //如果配错了&#xff0c;删除 git remote remove origin初…...

【LeetCode 刷题】回溯算法-子集问题

此博客为《代码随想录》二叉树章节的学习笔记&#xff0c;主要内容为回溯算法子集问题相关的题目解析。 文章目录 78.子集90.子集II 78.子集 题目链接 class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:res, path [], []def dfs(start: int) ->…...

LLMs之DeepSeek:Math-To-Manim的简介(包括DeepSeek R1-Zero的详解)、安装和使用方法、案例应用之详细攻略

LLMs之DeepSeek&#xff1a;Math-To-Manim的简介(包括DeepSeek R1-Zero的详解)、安装和使用方法、案例应用之详细攻略 目录 Math-To-Manim的简介 1、特点 2、一个空间推理测试—考察不同大型语言模型如何解释和可视化空间关系 3、DeepSeek R1-Zero的简介&#xff1a;处理更…...

2025年2月2日(网络编程 tcp)

tcp 循环服务 import socketdef main():# 创建 socket# 绑定tcp_server socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server.bind(("", 8080))# socket 转变为被动tcp_server.listen(128)while True:# 产生专门为链接进来的客户端服务的 socketprint(&qu…...

WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载

Windows中安装wsl2&#xff0c;wsl2里安装ubuntu。 1. Wsl启动后 1&#xff09;Windows下ip ipconfig 以太网适配器 vEthernet (WSL (Hyper-V firewall)): 连接特定的 DNS 后缀 . . . . . . . : IPv4 地址 . . . . . . . . . . . . : 172.19.32.1 子网掩码 . . . . . . . .…...

C#从XmlDocument提取完整字符串

方法1&#xff1a;通过XmlDocument的OuterXml属性&#xff0c;见XmlDocument类 该方法获得的xml字符串是不带格式的&#xff0c;可读性差 方法2&#xff1a;利用XmlWriterSettings控制格式等一系列参数&#xff0c;见XmlWriterSettings类 例子&#xff1a; using System.IO; …...

Ubuntu 下 nginx-1.24.0 源码分析 main函数 — ngx_cdecl 宏

ngx_cdecl 宏 int ngx_cdecl main(int argc, char *const *argv) ngx_cdecl 定义在&#xff1a; ngx_config.h 中&#xff1a; #define ngx_cdecl 这里是一个空的 define 参考&#xff1a; nginx中的ngx_cdecl-CSDN博客 __cdecl 是一种调用约定&#xff08;Calling Con…...

2025-工具集合整理

科技趋势 github-rank &#x1f577;️Github China/Global User Ranking, Global Warehouse Star Ranking (Github Action is automatically updated daily). 科技爱好者周刊 制图工具 D2 D2 A modern diagram scripting language that turns text to diagrams 文档帮助 …...

OpenAI 实战进阶教程 - 第一节:OpenAI API 架构与基础调用

目标 掌握 OpenAI API 的基础调用方法。理解如何通过 API 进行内容生成。使用实际应用场景帮助零基础读者理解 API 的基本用法。 一、什么是 OpenAI API&#xff1f; OpenAI API 是一种工具&#xff0c;允许开发者通过编程方式与 OpenAI 的强大语言模型&#xff08;例如 gpt-…...

Alibaba开发规范_编程规约之集合框架:最佳实践与常见陷阱

文章目录 引言1. hashCode与equals方法的覆写1.1 规则1.2 解释1.3 代码示例正例反例 2. ArrayList的subList方法2.1 规则2.2 解释2.3 代码示例正例反例 3. Map的keySet、values和entrySet方法3.1 规则3.2 解释3.3 代码示例正例反例 4. Collections类返回的不可变集合4.1 规则4.…...

NPM 使用介绍

NPM 使用介绍 引言 NPM(Node Package Manager)是Node.js生态系统中的一个核心工具,用于管理JavaScript项目的依赖包。无论是开发一个小型脚本还是构建大型应用程序,NPM都能极大地提高开发效率。本文将详细介绍NPM的使用方法,包括安装、配置、依赖管理、包发布等,帮助您…...

小红的小球染色期望

B-小红的小球染色_牛客周赛 Round 79 题目描述 本题与《F.R小红的小球染色期望》共享题目背景&#xff0c;但是所求内容与范围均不同&#xff0c;我们建议您重新阅读题面。 有 n 个白色小球排成一排。小红每次将随机选择两个相邻的白色小球&#xff0c;将它们染成红色。小红…...

基于SpringBoot的新闻资讯系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

计算机网络——流量控制

流量控制的基本方法是确保发送方不会以超过接收方处理能力的速度发送数据包。 通常的做法是接收方会向发送方提供某种反馈&#xff0c;如&#xff1a; &#xff08;1&#xff09;停止&等待 在任何时候只有一个数据包在传输&#xff0c;发送方发送一个数据包&#xff0c;…...

基于python的Kimi AI 聊天应用

因为这几天deepseek有点状况&#xff0c;导致apikey一直生成不了&#xff0c;用kimi练练手。这是一个基于 Moonshot AI 的 Kimi 接口开发的聊天应用程序&#xff0c;使用 Python Tkinter 构建图形界面。 项目结构 项目由三个主要Python文件组成&#xff1a; 1. main_kimi.py…...

2 [GitHub遭遇严重供应链投毒攻击]

近日&#xff0c;有黑客针对 Discord Top.gg 的GitHub 账户发起了供应链攻击&#xff0c;此次攻击导致账户密码、凭证和其他敏感信息被盗&#xff0c;同时也影响到了大量开发人员。 Checkmarx 在一份技术报告中提到&#xff0c;黑客在这次攻击中使用了多种TTP&#xff0c;其中…...

C++游戏开发实战:从引擎架构到物理碰撞

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 C 是游戏开发中最受欢迎的编程语言之一&#xff0c;因其高性能、低延迟和强大的底层控制能力&#xff0c;被广泛用于游戏…...

代码讲解系列-CV(一)——CV基础框架

文章目录 一、环境配置IDE选择一套完整复现安装自定义cuda算子 二、Linux基础文件和目录操作查看显卡状态压缩和解压 三、常用工具和pipeline远程文件工具版本管理代码辅助工具 随手记录下一个晚课 一、环境配置 pytorch是AI框架用的很多&#xff0c;或者 其他是国内的框架 an…...

【前端知识】常用CSS样式举例

文章目录 一、Flex盒子布局1. Flexbox 的基本概念2. Flex 容器的属性2.1 display2.2 flex-direction2.3 flex-wrap2.4 justify-content2.5 align-items2.6 align-content 3. Flex 项目的属性3.1 order3.2 flex-grow3.3 flex-shrink3.4 flex-basis3.5 flex3.6 align-self 4. 示例…...

P_all: 投影矩阵(Projection Matrix)

P_all 是所有摄像头的投影矩阵&#xff08;Projection Matrix&#xff09;的集合。每个摄像头的投影矩阵 Pi 是一个 34 的矩阵&#xff0c;用于将世界坐标系中的 3D 点 X[X,Y,Z,1]T 投影到该摄像头的 2D 图像平面上的点 u[u,v,1]T。投影关系可以表示为&#xff1a; uPiX 其中…...

机器学习--概览

一、机器学习基础概念 1. 定义 机器学习&#xff08;Machine Learning, ML&#xff09;&#xff1a;通过算法让计算机从数据中自动学习规律&#xff0c;并利用学习到的模型进行预测或决策&#xff0c;而无需显式编程。 2. 与编程的区别 传统编程机器学习输入&#xff1a;规…...

Python算法详解:贪心算法

贪心算法&#xff08;Greedy Algorithm&#xff09;是一种通过选择当前最优解以期望达到全局最优解的算法思想。它在每一步选择时只考虑当前状态下的局部最优&#xff0c;而不关心全局问题的复杂性。这种算法简单高效&#xff0c;适用于某些特定问题&#xff0c;尤其是存在贪心…...

gesp(C++六级)(10)洛谷:P10722:[GESP202406 六级] 二叉树

gesp(C六级)&#xff08;10&#xff09;洛谷&#xff1a;P10722&#xff1a;[GESP202406 六级] 二叉树 题目描述 小杨有⼀棵包含 n n n 个节点的二叉树&#xff0c;且根节点的编号为 1 1 1。这棵二叉树任意⼀个节点要么是白色&#xff0c;要么是黑色。之后小杨会对这棵二叉树…...