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

【图像分割】基于人工蜂群算法实现图像分割matlab代码

1 简介

为快速准确地将图像中目标和背景分离开来,将新型群体智能模型中的人工蜂群算法、二维直线交叉熵相结合,提出了一种图像分割新方法.该方法将图像阈值看成人工蜂群算法中的蜜源,利用信息熵和最大熵原理设计人工蜂群算法的适应度函数;通过采蜜蜂、侦查蜂和观察蜂的分工协作和信息共享,逐代逼近最佳阈值.并利用Matlab实现了图像分割算法,对分割的结果进行分析.实验结果表明,该方法在阈值分割图像时,蜂群算法能够快速准确地将图像目标分离出来,分离出来的目标更加适合后序的分析和处理.

2 部分代码

%%%%%ARTIFICIAL BEE COLONY ALGORITHM%%%% %Artificial Bee Colony Algorithm was developed by Dervis Karaboga in 2005 %by simulating the foraging behaviour of bees. %Copyright ?2008 Erciyes University, Intelligent Systems Research Group, The Dept. of Computer Engineering %Contact: %Dervis Karaboga (karaboga@erciyes.edu.tr ) %Bahriye Basturk Akay (bahriye@erciyes.edu.tr) function [SO,TO] = runABC(N,D,Iter,Pr,run) % clear all close all clc Iter = 100; N = 10; BEA = 7; D = 2; Pr=0.5; run=50; % load temp.mat img=imread('1.png'); im = rgb2gray(img); mat = im; tic % Set ABC Control Parameters ABCOpts = struct( 'ColonySize', N, ... % Number of Employed Bees+ Number of Onlooker Bees 'MaxCycles', Iter,... % Maximum cycle number in order to terminate the algorithm 'ErrGoal', 1e-20, ... % Error goal in order to terminate the algorithm (not used in the code in current version) 'Dim', D, ... % Number of parameters of the objective function 'Limit', 100, ... % Control paramter in order to abandone the food source 'lb', 1, ... % Lower bound of the parameters to be optimized 'ub', 256, ... %Upper bound of the parameters to be optimized 'ObjFun' , 'Hgrey', ... %Write the name of the objective function you want to minimize 'RunTime',run); % Number of the runs GlobalMins=zeros(ABCOpts.RunTime,ABCOpts.MaxCycles); for r=1:ABCOpts.RunTime % Initialise population Range = repmat((ABCOpts.ub-ABCOpts.lb),[ABCOpts.ColonySize 1]);%ABCOpts.Dim]); Lower = repmat(ABCOpts.lb, [ABCOpts.ColonySize 1]);%ABCOpts.Dim]); XColony = rand(ABCOpts.ColonySize,1) .* Range + Lower; YColony = rand(ABCOpts.ColonySize,1).* Range + Lower; Colony = [XColony , YColony]; size(Colony); Colony = ceil(Colony); Employed=Colony(1:(ABCOpts.ColonySize/2),:); %evaluate and calculate fitness ObjEmp=feval(ABCOpts.ObjFun,Employed,mat) %fprintf('obj = %d \t',ObjEmp); %fprintf('\n'); %ObjEmp = Location(pos,Employed); %display(ObjEmp); FitEmp=calculateFitness(ObjEmp); display(FitEmp); %fprintf('%d \t',FitEmp); %set initial values of Bas Bas=zeros(1,(ABCOpts.ColonySize/2)); % % fprintf('Cycle=%d ObjVal=%g\n',Cycle,GlobalMin); % %Bestcycle(Cycle,:) = CycleBestParams; %Bestcyval(Cycle) = CycleMin; Cycle=Cycle+1; % end % End of s Bestcycle(r,:) = CycleBestParams; Bestcyval(r) = CycleMin; end; %end of runs toc %semilogy(mean(GlobalMins)) % Global = GlobalMins; % Cyc = rand()* ABCOpts.MaxCycles; % for r = 1: 5 % for C = 1: Cyc % Global(r,C) = Global(r,C) * rand(); % end % so = sort(Global(r,:)); % end %so = sort(Global); %Gls = unique(Globals) %Glt = unique(Globalt) [c ,i] = max(GlobalMins) [cc , ro] = max(c) co = i(ro) SO = Globals(co,ro) TO = Globalt(co,ro) plot(GlobalMins(1,:)); title('Mean of Best function values'); xlabel('cycles'); ylabel('Mean Values'); fprintf('Mean =%g Std=%g\n',mean(GlobalMins(:,end)),std(GlobalMins(:,end))); S = uint8(SO); [r,c] = size(im); % whos S %wim = whiten(uint8(gimg),uint8(S)); thr = S / 256; %wim = im2bw(gimg); img = zeros(r,c); for i = 1:r for j = 1:c if im(i,j) >= S img(i,j) = 1; end end end figure,imshow(mat2gray(img))

3 仿真结果

4 参考文献

部分理论引用网络文献,若有侵权联系博主删除。

[1]霍凤财等. "基于人工蜂群算法的图像阈值分割." 自动化技术与应用 035.002(2016):112-116.

http://www.jsqmd.com/news/1322950/

相关文章:

  • 死锁原理与解决方案:从多线程到分布式系统的并发难题
  • AI智能体重塑计算化学:自动化工作流与自主决策实践
  • Citizens2与其他插件联动:Essentials、WorldGuard整合教程
  • WebMCP协议解析:浏览器自动化革命与前端安全新挑战
  • Seraphine英雄联盟助手:免费战绩查询与智能BP辅助完整指南
  • 重大突破!HighReport 原生单元格填充,攻克中国式复杂报表制式排版难题
  • 德宏MA甲醛检测公司公共卫生检测如何选:国康CMA检测标准、流程、避坑指南 - 信誉隆金银铂奢回收
  • 2026年LLM API服务商四大类型解析与价格对比指南
  • Minecraft地图画神器SlopeCraft:从入门到精通的终极教程
  • 为什么选择SZTextView?揭秘这款占位符控件的5大优势
  • Kotlin vs Java:Stepper-Touch在两种语言中的实现对比
  • Python Minifier入门教程:从安装到第一个代码压缩示例
  • 如何使用StyleGAN3-Editing进行人脸编辑?从入门到精通的完整教程
  • web-RABC-Permissions-sdk实战教程:3个案例掌握按钮级权限控制
  • 2026泉州防水补漏全攻略|卫生间漏水免砸砖维修 阳台渗水补漏 外墙飘窗漏水修复 屋顶防水翻新 地下室堵漏 正规防水公司推荐 - 房屋-修缮
  • 2026年成都服务自动驾驶行业的媒体发稿渠道大全、正规合规服务商多维度实力盘点,附选商避坑指南与常见FAQ - U渠道
  • 如何在5分钟内为你的网站添加GitHub贡献日历:完整实现指南
  • 为什么选择Rust Cucumber?原生测试框架的5大优势与使用场景
  • SZTextView高级技巧:如何使用富文本占位符打造惊艳UI效果
  • SAP MIRO发票校验抬头文本下传会计凭证行项目增强实现
  • 明日方舟基建自动化终极指南:Arknights-Mower让您每天节省30分钟
  • Linux审计日志分析实战:使用audit-userspace识别系统入侵行为
  • editable-table高级技巧:自定义编辑器与快捷键配置
  • 悟空CRM财务管理功能详解:合同回款与业绩统计一键搞定
  • TVM设备与目标交互:从硬件抽象到高效部署的完整指南
  • 中国AI模型如何成为全球开发者工具链的“水电煤”基础设施
  • uniApp华为权限校验弹窗实现与优化方案
  • Clawdbot:清华特奖团队打造国产芯片自动化测试框架,实现一键部署
  • 数据工程师成长秘籍:从零到精通的完整学习路线图
  • vtools Dex2oat编译优化实战:解锁Android应用性能新高度