【图像分割】基于蜣螂优化算法DBO的Otsu(大津法)多阈值电表数字图像分割 电表数字识别【Matlab代码#51】

文章目录

    • 【可更换其他算法,`获取资源`请见文章第5节:资源获取】
    • 1. 原始蜣螂优化算法
        • 1.1 滚球行为
        • 1.2 跳舞行为
        • 1.3 繁殖行为
        • 1.4 偷窃行为
    • 2. 多阈值Otsu原理
    • 3. 部分代码展示
    • 4. 仿真结果展示
    • 5. 资源获取说明


【可更换其他算法,获取资源请见文章第5节:资源获取】


1. 原始蜣螂优化算法

1.1 滚球行为

蜣螂在整个搜索空间沿着光源的方向移动,在滚动过程中,按照如下的对滚球屎壳郎的位置进行更新:
在这里插入图片描述

其中,t代表当前迭代数,xi表示第i个蜣螂的位置信息;k代表一个常数,表示为偏转系数;α∈(0,1)是一个随机数;a 是一个自然系数,为-1或1;Xw是全局最差位置。

1.2 跳舞行为

当蜣螂遇到障碍物时,它会通过跳舞来重新定向,主要思想是通过正切函数来进行:
在这里插入图片描述
tan(θ) 为偏转系角。

1.3 繁殖行为

作者采用一种边界选择策略模型雌性蜣螂产卵的地方,定义如下:
在这里插入图片描述
X*为当前最佳位置;Lb表示下界,Ub表示上界。

在迭代过程中,卵球的位置是动态变化的,定义如下:
在这里插入图片描述
Bi表示为卵球的位置,b1和b2为1×D 的随机向量。

此外,一些成年蜣螂会从地下钻出来寻找食物,下面公式模拟了蜣螂的觅食过程:
在这里插入图片描述
Xb为全局最佳位置,Lbb和Ubb分别表示最佳觅食区域的上下界。
故成年蜣螂的位置更新公式为:
在这里插入图片描述
C1是服从正态分布的随机数;C2∈(0,1)是一个随机向量。

1.4 偷窃行为

部分蜣螂会从其他蜣螂那里偷粪球,假定Xb是争夺食物的最佳地点,因此具有偷盗行为的蜣螂位置更新描述如下:
在这里插入图片描述
g是服从均值为0,方差为1的正态分布的随机向量;S为一个常数。

2. 多阈值Otsu原理

ostu方法使用最大化类间方差(intra-class variance, ICV)作为评价准则,利用对图像直方图的计算,可以得到最优的一组阈值组合。
ostu方法不仅适用于单阈值的情况,它可以扩展到多阈值。假设有k个分类,c1,c2,…,ck时,他们之间的类间方差定义为:
在这里插入图片描述
比如,k=3时,将原图像的灰度区间分为3个类,此时需要两个阈值,定义类间方差如下:
在这里插入图片描述
上面式子中,k1和k2为待确定的两个阈值,使得类间方差最大化的k1和k2就是最优的一组阈值。

对于多阈值的情况,可以采用群智能优化算法来寻找最优的阈值,本篇博客利用蜣螂优化算法来寻找最优的阈值。

3. 部分代码展示

%% 清空环境
clc
clear 
close all

%%
img = imread('1.JPG');
%绘制原图
figure
imshow(img);
title('原图')

img_ori=rgb2gray(img);
img=rgb2gray(img);
figure
%灰度直方图
imhist(img)
title('灰度直方图')
%目标函数
fitness=@(X)OTSU(img,X);

%阈值个数,优化下边界,上边界,最大迭代次数,种群数量。
num_Threshold=3;
lb=0;
ub=255;
max_iter=100;
sizepop=20;
%调用优化算法
%调用DBO对阈值寻优

4. 仿真结果展示

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

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

最大类间方差为:1592.59
DBO优化算法优化得到的阈值分别为:165   86   45

5. 资源获取说明

可以获取完整代码资源。

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

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

相关文章

RTOS 低功耗设计原理及实现

RTOS 低功耗设计原理及实现 文章目录 RTOS 低功耗设计原理及实现👨‍🏫前言👨‍🔬Tickless Idle Mode 的原理及实现👨‍🚀Tickless Idle Mode 的软件设计原理👨‍💻Tickless Idle Mo…

Jmap-JVM(十六)

上篇文章说了ZGC是jdk11加入的,他是未来jvm垃圾收集器的奠定者,满足TB级别内存处理,STW时间保持在10ms以下。 Jmap 我们可以先通过jmap -histo 进程ip 来查看,但是这样看不太清晰,我们可以用这行命令生成一个文件&…

WebDAV之π-Disk派盘+ WinSCP

WinSCP是一个免费的开源文件传输应用程序,它使用文件传输协议,安全外壳文件传输协议和安全复制协议来进行纯文件或安全文件传输。该应用程序旨在与Windows一起使用,并支持常见的Windows桌面功能,例如拖放文件,跳转列表…

设计模式结构型——代理模式

目录 代理模式的用途 代理模式的实现 静态代理 JDK动态代理 CGLIB动态代理 代理模式的特点 与其他模式比较 代理模式(Proxy Pattern)是一种结构型设计模式,它允许通过创建一个代理对象来间接访问原始对象。代理模式的核心思想是将对目…

预科C语言

1.day10 1、perror() 原型:void perror(const char *s); 根据errno呈现错误信息 perror("malloc error"); malloc error: Cannot allocate memory 2、多文件编译 .c ---预处理(.i -E)---汇编(.s -S&#xf…

Visual Studio Code Python 扩展中的包管理

排版:Alan Wang Python 凭借其简单的语法和强大的库,目前已成为最流行的编程语言之一,也是最适合那些刚接触编程的人们的语言。但是,随着项目复杂性和规模的增长,管理依赖项的复杂性也会增加。当新用户不断承接更成熟的…

探秘MySQL底层架构:设计与实现流程

前言 Mysql,作为一款优秀而广泛使用的数据库管理系统,对于众多Java工程师来说,几乎是日常开发中必不可少的一环。无论是存储海量数据,还是高效地检索和管理数据,Mysql都扮演着重要的角色。然而,除了使用My…

《golang设计模式》第一部分·创建型模式-01-单例模式(Singleton)

文章目录 1. 概述1.1 目的1.2 实现方式 2. 代码示例2.1 设计2.2 代码 1. 概述 1.1 目的 保证类只有一个实例有方法能让外部访问到该实例 1.2 实现方式 懒汉式 在第一次调用单例对象时创建该对象,这样可以避免不必要的资源浪费 饿汉式 在程序启动时就创建单例对象…

Spring中事务失效的8中场景

1. 数据库引擎不支持事务 这里以 MySQL为例,MyISAM引擎是不支持事务操作的,一般要支持事务都会使用InnoDB引擎,根据MySQL 的官方文档说明,从MySQL 5.5.5 开始的默认存储引擎是 InnoDB,之前默认的都是 MyISAM&#xff…

数据结构--线性表2-1

目录 一、线性结构的定义 二、线性表的表示 三、顺序表的实现(或操作) 1、修改: 2、插入: 四、顺序表的运算效率分析:时间效率分析: 一、线性结构的定义 若结构时非空有限集,则有且仅有一个…

【MySQL】库和表的操作

目录 一、库的操作 1.1创建数据库 1.2创建数据库案例 1.3字符集和校验规则 (1)查看系统默认字符集以及校验规则 (2)查看数据库支持的字符集 (3)查看数据库支持的字符集校验规则 (4&…

Layui下拉多选框

标题xmSelect插件&#xff1a; xmSelect文档 下载Layui第三方插件 下拉多选框效果&#xff1a; 实现方法(例子)&#xff1a; 将xmSelect插件的xm-select.js文件引入到layui中&#xff1a; <script src"public/js/xm-select/xm-select.js"></script> …

Ubuntu搭建Samba服务-学习记录

文章目录 Ubuntu安装Samba流程Samba配置文件Samba添加账户配置文件修改Samba服务控制设置开机自动启动通过systemctl 启动服务通过 rc.local 启动 Windows访问参考链接 当前文章仅用于记录&#xff0c;在 Ubuntu中安装使用Samba&#xff0c;在Windows访问 系统环境&#xff1a;…

数据库管理-第九十四期 19c OCM之路-第四堂(02)(20230725)

第九十四期 19c OCM之路-第四堂&#xff08;02&#xff09;&#xff08;20230725&#xff09; 第四堂继续&#xff01; 考点3&#xff1a;SQL statement tuning SQL语句调优 收集Schema统计信息 exec dbms_stats.gather_schems_stats(HR);开启制定表索引监控 create index…

Android性能优化之游戏的Theme背景图

近期&#xff0c;对游戏的内存优化&#xff0c;通过内存快照发现&#xff0c;某个Activity的theme背景图 占用3M 多。考虑着手对齐进行优化。 问题 查看游戏中的内存快照&#xff0c;发现有一个图片bitmap 占用3M 多&#xff0c;设置在Activity的背景中&#xff1a; 查看Phon…

scrcpy2.0+实时将手机画面显示在屏幕上并用鼠标模拟点击2023.7.26

想要用AI代打手游&#xff0c;除了模拟器登录&#xff0c;也可以直接使用第三方工具Scrcpy&#xff0c;来自github&#xff0c;它是一个开源的屏幕镜像工具&#xff0c;可以在电脑上显示Android设备的画面&#xff0c;并支持使用鼠标进行交互。 目录 1. 下载安装2. scrcpy的高级…

使用serverless实现从oss下载文件并压缩

公司之前开发一个网盘系统, 可以上传文件, 打包压缩下载文件, 但是在处理大文件的时候, 服务器遇到了性能问题, 主要是这个项目是单机部署.......(离谱), 然后带宽只有100M, 现在用户比之前多很多, 然后所有人的压缩下载请求都给到这一台服务器了, 比如多个人下载的时候带宽问…

python与深度学习(四):ANN和fashion_mnist二

目录 1. 说明2. fashion_mnist的ANN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测…

CASAtomic原子操作详解

一、CAS&#xff08;Compare And Swap&#xff09; 1、CAS介绍 CAS原理&#xff1a;假设有三个值&#xff0c;E&#xff08;旧值&#xff09;、U&#xff08;需要更新的值&#xff09;、V&#xff08;内存中真实的值&#xff09;&#xff0c;具体参照下图&#xff1a; 作用&a…

2023第五届全国生物资源提取与应用创新论坛即将举办

01、会议背景 为进一步加强生物资源提取行业交流与合作&#xff0c;促进业“产学研用”融合&#xff0c;提升行业科技创新水平&#xff0c;增强行业国际竞争力&#xff0c;中国生物发酵产业协会、浙江科技学院、浙江工业职业技术学院、浙江省农业生物资源生化制造协同创新中心&…