【算法应用】基于鲸鱼优化算法求解OTSU多阈值图像分割问题

news2025/2/1 11:27:48

目录

    • 1.鲸鱼优化算法WOA 原理
    • 2.OTSU多阈值图像分割模型
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.鲸鱼优化算法WOA 原理

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

2.OTSU多阈值图像分割模型

Otsu 算法(最大类间方差法)设灰度图像有 L L L 个灰度级,各灰度级对应像素点个数为 n i n_i ni,总的像素点个数为 N N N,则灰度值为 i i i 的像素点的概率如下公式所示:

p i = n i N p_i = \frac{n_i}{N} pi=Nni

设灰度级 K K K 把像素点分为前景像素点和背景像素点两类,则两类像素点灰度值概率及两类像素点的平均灰度值分别由下面式子给出:
ω 0 = ∑ i = 0 K p i ω 1 = ∑ i = K + 1 L − 1 p i = 1 − ω 0 u 0 = ∑ i = 0 K i p i ω 0 u 1 = ∑ i = K + 1 L − 1 i p i ω 1 \omega_0 = \sum_{i=0}^{K} p_i\\ \omega_1 = \sum_{i=K+1}^{L-1} p_i = 1 - \omega_0\\ u_0 = \frac{\sum_{i=0}^{K} ip_i}{\omega_0}\\ u_1 = \frac{\sum_{i=K+1}^{L-1} ip_i}{\omega_1} ω0=i=0Kpiω1=i=K+1L1pi=1ω0u0=ω0i=0Kipiu1=ω1i=K+1L1ipi
整个图像像素点的平均灰度值为:
u = ∑ i = 0 L − 1 i p i = ω 0 u 0 + ω 1 u 1 u = \sum_{i=0}^{L-1} ip_i = \omega_0 u_0 + \omega_1 u_1 u=i=0L1ipi=ω0u0+ω1u1

则类间方差为:

σ = ω 0 ( u 0 − u ) 2 + ω 1 ( u 1 − u ) 2 = ω 0 ω 1 ( u 1 − u 0 ) 2 \sigma = \omega_0 (u_0 - u)^2 + \omega_1 (u_1 - u)^2 = \omega_0 \omega_1 (u_1 - u_0)^2 σ=ω0(u0u)2+ω1(u1u)2=ω0ω1(u1u0)2

由灰度值 K K K 扩展到多阈值时,使用一组给定的阈值 [ t 1 , t 2 , ⋯   , t n ] [t_1, t_2, \cdots, t_n] [t1,t2,,tn] ( 0 ≤ t 1 ≤ t 2 ≤ ⋯ ≤ t n ) (0 \leq t_1 \leq t_2 \leq \cdots \leq t_n) (0t1t2tn),将图像分割为 n + 1 n+1 n+1 个区域,每一区域的灰度均值和对应的概率值可表示为:
u 0 = ∑ i = 0 t 1 i p i ω 0 , ω 0 = ∑ i = 0 t 1 p i u 1 = ∑ i = t 1 + 1 t 2 i p i ω 1 , ω 1 = ∑ i = t 1 + 1 t 2 p i . . . u n = ∑ i = t n + 1 L − 1 i p i ω n , ω n = ∑ i = t n + 1 L − 1 p i u_0 = \frac{\sum_{i=0}^{t_1} i p_i}{\omega_0}, \quad \omega_0 = \sum_{i=0}^{t_1} p_i\\ u_1 = \frac{\sum_{i=t_1+1}^{t_2} i p_i}{\omega_1}, \quad \omega_1 = \sum_{i=t_1+1}^{t_2} p_i\\ ... \\u_n = \frac{\sum_{i=t_n+1}^{L-1} i p_i}{\omega_n}, \quad \omega_n = \sum_{i=t_n+1}^{L-1} p_i u0=ω0i=0t1ipi,ω0=i=0t1piu1=ω1i=t1+1t2ipi,ω1=i=t1+1t2pi...un=ωni=tn+1L1ipi,ωn=i=tn+1L1pi

整个图像像素点的平均灰度值为:
u = ∑ i = 0 L − 1 i p i u = \sum_{i=0}^{L-1} i p_i u=i=0L1ipi

此时,图像的类间方差可表示为: σ = ω 0 ( u 0 − u ) 2 + ω 1 ( u 1 − u ) 2 + ⋯ + ω n ( u n − u ) 2 \sigma = \omega_0 (u_0 - u)^2 + \omega_1 (u_1 - u)^2 + \cdots + \omega_n (u_n - u)^2 σ=ω0(u0u)2+ω1(u1u)2++ωn(unu)2
使上述最大值的一组阈值即为所求的阈值。

3.结果展示

在这里插入图片描述

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

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

4.参考文献

[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.

5.代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解策略模式 在策略模式中,可以定义一些独立的类来封装不同的算法,每个类封装一种具体的算法。在这里,每个封装算法的类都可以称之为一种策略(Strategy…

7. 马科维茨资产组合模型+金融研报AI长文本智能体(Qwen-Long)增强方案(理论+Python实战)

目录 0. 承前1. 深度金融研报准备2. 核心AI函数代码讲解2.1 函数概述2.2 输入参数2.3 主要流程2.4 异常处理2.5 清理工作2.7 get_ai_weights函数汇总 3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对前两篇文章,链接: 5. 马科维茨资产组…

安装Maven(安装包+步骤)

1. 安装: 通过网盘分享的文件:apache-maven-3.9.9 链接: https://pan.baidu.com/s/16AE_brICuw6sS0tC6tmE1Q?pwda74r 提取码: a74r --来自百度网盘超级会员v3的分享 2.新建应该系统变量: 3.path中添加bin文件夹路径 4.建议在这里建一个仓库文件夹 博主的: 5.I…

【云安全】云原生-K8S-搭建/安装/部署

一、准备3台虚拟机 务必保证3台是同样的操作系统! 1、我这里原有1台centos7,为了节省资源和效率,打算通过“创建链接克隆”2台出来 2、克隆之前,先看一下是否存在k8s相关组件,或者docker相关组件 3、卸载原有的docker …

单细胞-第四节 多样本数据分析,下游画图

文件在单细胞\5_GC_py\1_single_cell\2_plots.Rmd 1.细胞数量条形图 rm(list ls()) library(Seurat) load("seu.obj.Rdata")dat as.data.frame(table(Idents(seu.obj))) dat$label paste(dat$Var1,dat$Freq,sep ":") head(dat) library(ggplot2) lib…

【算法】动态规划专题① ——线性DP python

目录 引入简单实现稍加变形举一反三实战演练总结 引入 楼梯有个台阶,每次可以一步上1阶或2阶。一共有多少种不同的上楼方法? 怎么去思考? 假设就只有1个台阶,走法只有:1 只有2台阶: 11,2 只有3台…

知识管理平台在数字经济时代推动企业智慧决策与知识赋能的路径分析

内容概要 在数字经济时代,知识管理平台被视为企业智慧决策与知识赋能的关键工具。其核心作用在于通过高效地整合、存储和分发企业内部的知识资源,促进信息的透明化与便捷化,使得决策者能够在瞬息万变的市场环境中迅速获取所需信息。这不仅提…

LabVIEW微位移平台位移控制系统

本文介绍了基于LabVIEW的微位移平台位移控制系统的研究。通过设计一个闭环控制系统,针对微位移平台的通信驱动问题进行了解决,并提出了一种LabVIEW的应用方案,用于监控和控制微位移平台的位移,从而提高系统的精度和稳定性。 项目背…

java求职学习day23

MySQL 单表 & 约束 & 事务 1. DQL操作单表 1.1 创建数据库,复制表 1) 创建一个新的数据库 db2 CREATE DATABASE db2 CHARACTER SET utf8; 2) 将 db1 数据库中的 emp 表 复制到当前 db2 数据库 1.2 排序 通过 ORDER BY 子句 , 可以将查询出的结果进行排序 ( 排序只…

22.Word:小张-经费联审核结算单❗【16】

目录 NO1.2 NO3.4​ NO5.6.7 NO8邮件合并 MS搜狗输入法 NO1.2 用ms打开文件,而不是wps❗不然后面都没分布局→页面设置→页面大小→页面方向→上下左右:页边距→页码范围:多页:拼页光标处于→布局→分隔符:分节符…

MYSQL 商城系统设计 商品数据表的设计 商品 商品类别 商品选项卡 多表查询

介绍 在开发商品模块时,通常使用分表的方式进行查询以及关联。在通过表连接的方式进行查询。每个商品都有不同的分类,每个不同分类下面都有商品规格可以选择,每个商品分类对应商品规格都有自己的价格和库存。在实际的开发中应该给这些表进行…

python3+TensorFlow 2.x(二) 回归模型

目录 回归算法 1、线性回归 (Linear Regression) 一元线性回归举例 2、非线性回归 3、回归分类 回归算法 回归算法用于预测连续的数值输出。回归分析的目标是建立一个模型,以便根据输入特征预测目标变量,在使用 TensorFlow 2.x 实现线性回归模型时&…

Android --- CameraX讲解

预备知识 surface surfaceView SurfaceHolder surface 是什么? 一句话来说: surface是一块用于填充图像数据的内存。 surfaceView 是什么? 它是一个显示surface 的View。 在app中仍在 ViewHierachy 中,但在wms 中可以理解为…

CentOS7非root用户离线安装Docker及常见问题总结、各种操作系统docker桌面程序下载地址

环境说明 1、安装用户有sudo权限 2、本文讲docker组件安装,不是桌面程序安装 3、本文讲离线安装,不是在线安装 4、目标机器是内网机器,与外部网络不连通 下载 1、下载离线安装包,并上传到$HOME/basic-tool 目录 下载地址&am…

笔记本搭配显示器

笔记本:2022款拯救者Y9000P,显卡RTX3060,分辨率2560*1600,刷新率:165Hz,无DP1.4口 显示器:2024款R27Q,27存,分辨率2560*1600,刷新率:165Hz &…

DeepSeek R1 linux云部署

云平台:AutoDL 模型加载工具:Ollama 参考:https://github.com/ollama/ollama/blob/main/docs/linux.md 下载Ollama 服务器上下载ollama比较慢,因此我使用浏览器先下载到本地电脑上。 https://ollama.com/download/ollama-linux…

UE5.3 C++ CDO的初步理解

一.UObject UObject是所有对象的基类,往上还有UObjectBaseUtility。 注释:所有虚幻引擎对象的基类。对象的类型由基于 UClass 类来定义。 这为创建和使用UObject的对象提供了 函数,并且提供了应在子类中重写的虚函数。 /** * The base cla…

在排序数组中查找元素的第一个和最后一个位置(力扣)

一.题目介绍 二.题目解析 使用二分进行查找 2.1处理边界情况 如果数组为空,直接返回 [-1, -1],因为无法找到目标值。 int[] ret new int[2]; ret[0] ret[1] -1; if (nums.length 0) return ret; 2.2查找左端点(目标值开始位置&#…

Native Memory Tracking 与 RSS的差异问题

一 问题现象 前一段时间用nmt查看jvm进程的栈区占用的内存大小。测试代码如下 public class ThreadOOM {public static void main(String[] args) {int i 1;while (i < 3000) {Thread thread new TestThread();thread.start();System.out.println("thread : "…

知识库管理如何推动企业数字化转型与创新发展的深层次探索

内容概要 在当今数字化转型的大背景下&#xff0c;知识库管理日益显现出其作为企业创新发展的核心驱动力的潜力。这种管理方式不仅仅是对信息的存储与检索&#xff0c;更是一种赋能&#xff0c;以提升决策效率和员工创造力。企业能够通过系统地整合和管理各类知识资源&#xf…