目录

0 概述

1 萤火虫算法

1.1 思想来源

1.2 数学模型

1.2.1 萤火虫相对荧光亮度

1.2.2 萤火虫吸引度

1.2.3 位置更新

1.3 算法步骤

2 基于萤火虫优化的半监督谱聚类彩色图像分割方法

3 运行结果

4 参考文献

5 Matlab代码实现


0 概述

人们依据自然界中其他生物的生活习性以及生活事物中的部分自然现象提出智能优化算法,用来求解函数组合优化最优解的问题。图像阈值分割算法正是广泛应用群智能优化算法的一个分支领域,传统阈值分割算法易受输入的阈值数昌影响。本章引入最小可觉差理论,从视觉对颜色差值寻优出发,不受阈值数目的影响,提出基于萤火虫算法的最小可觉差图像分割方法(JND color image segmentation based on firefly algorithm, FAJND)。本章首先从仿生学优化算法开始介绍,并重点介绍萤火虫算法以及其在图像分割中的应用。

1 萤火虫算法

1.1 思想来源

2008年,剑桥学者 Yang依据萤火虫利用体内荧光素向其他个体传播寻觅食物以及求偶等信息进行交流的行为,提出萤火虫智能优化算法(Firefly Algorithm, FA) /60',此算法是继上述优秀的智能优化算法后又一经典算法,具有高效的收敛速度、便于操作、参数少等优点,被迅速推广应用。随着学者们对优化内容的不断深入、对应用领域的不断扩大,群智能优化算法显然已是活跃在多领域中相同的研究方向,各智能优化算法的模型启发来源都一一对应于自然界的生物的智能行为以及生活中部分自然现象,如图3-1。

1.2 数学模型

在FA 中 , 萤火虫发出光亮的主要目的是作为一个信号系统 , 以吸引其他的萤火虫个体 , 其假设为 : 1) 萤火虫不分性别 , 它将会被吸引到所有其他比它更亮的萤火虫那去 ; 2) 萤火虫的吸引力和亮度成正比 , 对
于任何两只萤火虫 , 其中一只会向着比它更亮的另一只移动 , 然而 , 亮度是随着距离的增加而减少的 ;3) 如果没有找到一个比给定的萤火虫更亮 , 它会随机移动 。

如上所述 , 萤火虫算法包含两个要素 , 即亮度和吸引度 . 亮度体现了萤火虫所处位置的优劣并决定其移动方向 , 吸引度决定了萤火虫移动的距离 , 通过亮度和吸引度的不断更新 , 从而实现目标优化 . 从数学角度对萤火虫算法的主要参数进行如下描述 :

1.2.1 萤火虫相对荧光亮度

其中 ,为萤火虫的最大萤光亮度 , 与目标函数值相关 , 目标函数值越优自身亮度越高 ; 为光强吸收系数 , 荧光会随着距离的增加和传播媒介的吸收逐渐减弱 ; 为萤火虫之间的空间距离 。

1.2.2 萤火虫吸引度

其中 , 为最大吸引度 ; 为光强吸收系数 ;为萤火虫之间的空间距离。

1.2.3 位置更新

萤火虫被吸引向萤火虫移动的位置更新公式如下式所示 :

其中 , ,为萤火虫所处的空间位置 ; α∈[0,1] 为步长因子 ;rand 为 [0,1] 上服从均匀分布的随机数 。

1.3 算法步骤

(1) 初始化萤火虫算法参数.

(2) 计算各萤火虫的亮度并排序得到亮度最大的萤火虫位置.

(3)判断迭代是否结束:判断是否达到最大迭代次数 T ,达到则转(4),否则转(5).

(4) 输出亮度最大的萤火虫位置及其亮度.

(5) 更新萤火虫位置:根据式(3)更新萤火虫的位置,对处在最佳位置的萤火虫进行随机扰动,搜索次数增加1 ,转(2),进行下一次搜索.

2 基于萤火虫优化的半监督谱聚类彩色图像分割方法

第三章使用的阈值分割算法,尽管改善了原算法的分割结果,但还存在分害结果中部分粘连的问题。萤火虫算法具有参数设定少、实现简单的特性。有学者提出使用萤火虫算法解决聚类应用于图像分割中的问题(68-70],通过理论阐述以及实验总结出萤火虫算法在处理聚类问题的有效性。本文将萤火虫算法与半监督谱聚类结合,提出萤火虫优化的半监督谱聚类彩色图像分割方法(Semi-spectraclustering based on firefly algorithm with JND color space consistency for imags
esegmentation,semi-SC-FA)。针对谱聚类算法处理彩色图像分割中对成千上万的像素需要构造相似性,并且在进行特征分解过程中,都需要极大的内存和极高成本硬件要求等问题。本章算法在进行谱聚类相似性构造采用上一章节提出的方式对图像中像素进行选择,选择出一些关键像素进行相似性构造,使用部分像素的勺结果逼近全局结果的方法,最大程度地减少构造出相似度矩阵的规模,使得谱聚类用于图像分割中避免了图像大小的影响,为分割大规模图像提供有效的理论
依据,并对此算法进行仿真实验,验证了理论的可行性。

3 运行结果

部分代码:

%% 使用聚类的萤火虫算法 (FA) 图像分割
clear;
clc;
warning('off');
%% 加载图像
img=imread('f.jpg');
img=im2double(img);
gray=rgb2gray(img);
gray=imadjust(gray);
% 将图像重塑为矢量
X=gray(:);%% 启动 FA 聚类
k = 6; % 聚类数%..............%% 迭代曲线
figure;
plot(BestRes,'--r','linewidth',1.2);
title('萤火虫算法训练');
xlabel('迭代次数');
ylabel('最优解');%% 将聚类中心及其索引转换为图像
gray2=reshape(FAlbl(:,1),size(gray));
segmented = label2rgb(gray2);
%% 可视化结果
figure;
subplot(1,2,1);
imshow(img);title('初始图片');
subplot(1,2,2);
imshow(segmented,[]);title('分割图像');

4 参考文献

部分理论引用网络文献,如有侵权请联系删除。

[1]孙源. 基于萤火虫优化可觉差的半监督谱聚类彩色图像分割算法研究[D].陕西师范大学,2019.DOI:10.27292/d.cnki.gsxfu.2019.000075.

5 Matlab代码实现

【图像分割】基于萤火虫优化的半监督谱聚类彩色图像分割方法(Matlab代码实现)相关推荐

  1. 基于智能优化算法PSO/GWO/AFO+柔性车间生产调度(Matlab代码实现)

    目录 1 柔性车间生产调度 2 运行结果 3 参考文献 4 Matlab代码实现 1 柔性车间生产调度 随着经济全球化的不断加深和市场竞争的日益严峻,传统的单一车间制造模式已经无法满足我国制造业的生产 ...

  2. 电气期刊论文实现:基于遗传优化的非侵入式居民负荷分解方法(有代码)

    个人电气博文目录链接: 学好电气全靠它,个人电气博文目录(持续更新中-) 结果图 先上结果图 程序图,共17页. 结果误差图 和分解图 .很完美 非侵入式负荷辨识原理 非侵入式负荷监测方法是相对于侵入 ...

  3. 基于萤火虫优化算法的图像分割

    看腻了关于深度学习的图像分割算法,今天搞一篇基于萤火虫优化算法的图像分割文章,关于现在的各种优化算法(人群搜索算法.人工蜂群算法.帝国竞争算法.智能水滴算法.生物地理优化算法.萤火虫算法.布谷鸟搜索算 ...

  4. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...

    本发明是一种基于谱聚类的图像分割方法与系统,涉及聚类.机器学习和人工智能领域.特别涉及通过相关性将已经学习到的知识运用到图像分割中,并在此基础上构造性地改造谱聚类方法,从而达到快速精确地分割彩色图像的 ...

  5. 半监督学习matlab,基于自适应图的半监督学习方法与流程

    本发明属计算机视觉.图形处理 技术领域: ,具体涉及一种基于自适应图的半监督学习方法. 背景技术: :随着计算机网络技术的快速发展和人们对数据访问的多样化,人们可以获得的信息呈指数级别增长,如何利用这 ...

  6. 基于协同训练的半监督文本分类算法

    标签: 半监督学习,文本分类 作者:炼己者 --- 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 如果大家觉得格式看着不舒服,也欢迎大家去看我的 ...

  7. 机器学习教程 之 半监督学习 基于图正则项的半监督极限学习机

    半监督学习是指在模型训练阶段同时利用有标签数据和无标签数据.我之前介绍过的半监督学习方法包括 基于分歧的半监督学习方法 机器学习教程 之 半监督学习 Tri-training方法 (论文.数据集.代码 ...

  8. 基于萤火虫优化的BP神经网络(分类应用) - 附代码

    基于萤火虫优化的BP神经网络(分类应用) - 附代码 文章目录 基于萤火虫优化的BP神经网络(分类应用) - 附代码 1.鸢尾花iris数据介绍 2.数据集整理 3.萤火虫优化BP神经网络 3.1 B ...

  9. 灰狼算法 c语言 代码,基于灰狼优化的模糊C—均值聚类算法

    谢亮亮+刘建生+朱凡 摘要:针对模糊C-均值聚类算法(FCM)存在易受初始聚类中心影响和容易陷入局部最优的问题,提出了一种将灰狼优化算法(GWO)和模糊C-均值相结合的新聚类算法(GWO-FCM).该 ...

最新文章

  1. Linux命令:MySQL系列之五--SELECT单表查询、多表查询升级及删除,插入
  2. java 执行字节码_深入理解java:1.2. 字节码执行引擎
  3. 求连续子数组的最大和
  4. 在studio中使用libsdl2.so,编译SDL Demo
  5. 直播预告|中台基石腾讯云TStack的正确使用姿势
  6. 主成分分析法_数学建模 || 葡萄酒的评价(1)主成分分析法
  7. CF819E:Mister B and Flight to the Moon(构造、归纳法)
  8. 远程控制python
  9. bootstrap下拉框分页_学习使用Bootstrap输入框、导航、分页等常用组件
  10. php yii框架使用MongoDb
  11. win10 家庭版系统,创建用户(users\account\ 中,文件的「所有者」属性)
  12. mac os虚拟机镜像_为旧型Mac电脑配置支持OS 9的网络启动
  13. android 中文转首字母,Android开发 - 汉字转拼音首字母
  14. 三菱PLC模板程序FX5U轴FB块 使用ST语言编写的轴FB块,包含原点复归,点动,定位运动
  15. 微信小程序 post请求发送x-www-form-urlencoded类型数据
  16. 【渝粤教育】广东开放大学 搜索引擎优化SEO 形成性考核
  17. 2010年最有价值做的16个广告联盟
  18. SpringBoot优雅整合RocketMQ
  19. 神话造词——了解单词的起源及演变如何能帮我们更好地记单词
  20. [渝粤教育] 中原工学院 国际贸易理论 参考 资料

热门文章

  1. excel vba 批量发送邮件邮件内容放入表格指定主题
  2. float转int的时候精度丢失
  3. Tomcat动静分离
  4. 中小企业信息化(二)——系统分析员的心态
  5. Linux服务器相关知识记录
  6. Makefile文件的简单编写
  7. 帮你提高网速(maybe)
  8. 使用vue-baidu-map时,动态渲染数据经纬度默认(0,0)
  9. 苹果前员工盗取无人车研发机密,回中国前被抓
  10. 通过dsp设备实现录音与放音编程实例