⛄一、萤火虫算法图像聚类分割简介

1 萤火虫算法的基本原理
1.1 萤火虫算法的数学表述

根据萤火虫算法的仿生原理,萤火虫算法的数学描述如下,萤火虫个体的相对发光强度可由式(2)确定

式中:rij为萤火虫i和j之间的空间欧几里得距离;I0为rij=0时萤火虫的发光强度,即原始发光强度,与目标函数成正比;γ为亮度衰减参数,这意味着在特定的传播介质中亮度将会衰减。

萤火虫之间的相对吸引力由式(3)得出

其中β0为两只萤火虫之间的距离为零时的相互吸引力,也是两者之间的最大吸引力数值。萤火虫i依据式(4)向比其更亮的萤火虫j移动,

原始萤火虫算法的缺点是两只萤火虫之间的信息交换受到其搜索范围的影响,萤火虫初始化的位置是随机分配的,并且萤火虫之间的独立性较大,没有相互关联;萤火虫设置的荧光素值过于离散,以致无法相对较慢地运行;其次,在萤火虫算法中,控制搜索范围的参数是随机设置的,仿真结果也是随机的。为解决萤火虫算法目前存在的问题,文中对算法进一步的改进。

2 基于改进萤火虫算法的多阈值分割
用萤火虫算法解决最优化问题的关键是将适当的目标函数表示为萤火虫的亮度值,在确定合适的目标函数后,萤火虫个体迭代更新位置,来获得目标函数的最优化结果。文中采用结合改进萤火虫算法的最大熵阈值方法实现多阈值微生物图像分割,并将图像的熵值计算公式作为萤火虫算法的目标函数。假设灰度图像具有l个灰度等级,范围是{0,1,2,…,l-1},l∈[1,256],倘若t为分割图像的阈值,图像被划分为前景部分d和

Hd(t)和Hb(t)分别代表目标区域和背景区域的熵值,可由下式表示:

图像的总熵值可以表示为

当t达到最大值t时,即是图像分割所需的最佳阈值。如果分割一幅图像需要m个阈值,图像总的熵值可表示为

采用改进的萤火虫算法可获得关于图像分割阈值t1
,t2*,…,tm的最优估计。基于萤火虫算法,假设分割所需的阈值数目为m,m同时也是熵函数的自变量数目,每只萤火虫的位置代表m维向量(t1,t2,…,tm)的可能分割阈值组,阈值的范围是tm∈[0,255],萤火虫的亮度是通过其位置(t1,t2,…,tm)计算的最大熵数值。依据该算法,萤火虫向更亮的近邻位置移动,移动行为遵循式(3)。相应地,由于文中分割图像有多个阈值,因此对变量R进行矢量化处理。为提高亮度,每只萤火虫都朝着一个更好的位置移动,迭代位置更新过程,最终萤火虫聚集在亮度最高的位置附近。迭代过程在熵值达到最大的阈值组合(t1,t2*,…,tm*)附近收敛,因此,算法的最佳位置为最佳阈值。

基于改进萤火虫算法的多阈值分割实现步骤如下:

1)输入微生物图像,依据式(1)确定寻优过程的具体阈值数目m;

2)依据式(6),(8)初始化参数,包括萤火虫种群数量S、最大吸引度β0、亮度衰减参数γ、步长α和最大迭代次数Tmax;

3)将式(12)作为目标函数,随机初始化位于搜索范围内的萤火虫i的位置xi,依据目标函数计算每只萤火虫的亮度I0;

4)依据式(2)和(7)计算萤火虫i的相关亮度I以及相关吸引度β,萤火虫i的移动方向也由相关吸引度确定;

5)将式(6)和(7)分别代入式(4),更新每只萤火虫的位置,获得当前最优位置xi(t+1)和当前相对亮度I;

6)迭代执行步骤4)和5),直到达到预先设定的最大迭代次数,输出最优目标函数值H(t1,t2,…,tm)max和最优解(t1*,t2*,…,tm*);

7)根据输出的最优解对微生物图像进行多阈值分割,输出微生物多阈值分割图像。

算法流程图如图1。

图1 改进萤火虫多阈值分割算法流程图

⛄二、部分源代码

clear;
clc;
warning(‘off’);
img=imread(‘ant.jpg’);
img=im2double(img);
% Separating color channels
R=img(:,:,1);
G=img(:,:,2);
B=img(:,:,3);
% Reshaping each channel into a vector and combine all three channels
X=[R(

【图像分割】基于matlab萤火虫算法图像聚类分割【含Matlab源码 2106期】相关推荐

  1. 【图像分割】萤火虫算法图像聚类分割【含Matlab源码 2106期】

    ⛄一.萤火虫算法图像聚类分割简介 1 萤火虫算法的基本原理 1.1 萤火虫算法的数学表述 根据萤火虫算法的仿生原理,萤火虫算法的数学描述如下,萤火虫个体的相对发光强度可由式(2)确定 式中:rij为萤 ...

  2. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  3. 【FA TSP】基于matlab萤火虫算法求解旅行商问题【含Matlab源码 328期】

    ⛄一.TSP简介 旅行商问题 (Travel Salesman Problem, TSP) 是最基本的路线问题, 其探索单一旅行者由起点出发, 并通过所有给定点后, 再回到起点的最小路径成本问题.求解 ...

  4. 【图像增强】基于matlab萤火虫算法图像对比度增强【含Matlab源码 2142期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像增强]基于matlab萤火虫算法图像对比度增强[含Matlab源码 2142期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  5. 【图像融合】基于matlab加权平均法图像融合【含Matlab源码 722期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像融合]基于matlab加权平均法图像融合[含Matlab源码 722期] (https://download.csdn.net/do ...

  6. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  7. 【图像融合】基于matlab导向滤波图像融合【含Matlab源码 1959期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像融合]基于matlab导向滤波图像融合[含Matlab源码 1959期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  8. 【MVO TSP】基于matlab灰狼算法求解旅行商问题【含Matlab源码 1327期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab灰狼算法求解旅行商问题[含Matlab源码 1327期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  9. 【BA TSP】基于matlab蜜蜂算法求解旅行商问题【含matlab源码 1248期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蜜蜂算法求解旅行商问题[含matlab源码 1248期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...

最新文章

  1. redis字符串匹配_Redis的数据类型和抽象概念介绍
  2. Pyramid Scene Parsing Network
  3. 使用Kubectl部署应用
  4. pip ImportError: cannot import name 'main' after update
  5. 综保参数如何设定_FANUC主轴速度怎么去设定限制?
  6. go语言中省略号用法和参数
  7. /dev/mapper/centos-root 100% 虚拟机硬盘空间占满
  8. twig模板基本学习
  9. LNMP一键安装过程详解
  10. 微信支付退款接口证书使用
  11. iOS之安装包优化以及瘦身
  12. Windows桌面图片打开慢的原因 wyz_csdn
  13. Win10更新系统,VirtualBox与win10不兼容处理办法
  14. 计计算机类学科代码是多少,高校专业代码表
  15. C/C++ return 如何实现的?return 的内部机制
  16. 论文阅读(21 AAAI)Mind-the-Gap Unsupervised Domain Adaptation for Text-Video Retrieval
  17. 2021数模国赛C题
  18. 2023年江南大学食品工程考研考情与难度、参考书及上岸前辈经验
  19. spring动态获取bean
  20. PPT目录页怎么设计才高大上?告诉你一个万能排版法!

热门文章

  1. 第2章 蓝牙降噪耳机测试维度
  2. 玩转96boards之(一)---高通410c板硬件
  3. SpringBoot更改端口号:Web server failed to start. Port 8081 was already in use.
  4. JTAG与SWD的接口连接关系简介
  5. Linux中if语句用法总结
  6. 公网IP与内网穿透的使用场景和区别
  7. python编写古诗_用Python实现古诗词填字游戏(一)
  8. linux 锐捷客户端 脚本,基于802.1x的锐捷linux客户端认证方法(最新)
  9. [转]家庭上网安装与设置教程
  10. html中如何把一个div放到页面底部,html – 如何将DIV锚定到页面的底部?