【图像分割】基于花朵授粉算法实现图像的自适应多阈值快速分割附matlab代码

本文涉及的产品
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频资源包5000点
简介: 【图像分割】基于花朵授粉算法实现图像的自适应多阈值快速分割附matlab代码

1 内容介绍

为快速准确地将图像中目标和背景分离开来,将新型群体智能模型中的花朵授粉算法、最大类间阈值相结合,提出了一种图像分割新方法.该方法将图像阈值看成花朵授粉算法群算法中的花粉,利用信息熵和最大熵原理设计花朵授粉算法的适应度函数,逐代逼近最佳阈值.并利用Matlab实现了图像分割算法,对分割的结果进行分析.实验结果表明,该方法在阈值分割图像时,花朵授粉算法能够快速准确地将图像目标分离出来,分离出来的目标更加适合后序的分析和处理.

2 部分代码

% --------------------------------------------------------------------%

% Flower pollenation algorithm (FPA), or flower algorithm             %

% Programmed by Xin-She Yang @ May 2012                               %

% --------------------------------------------------------------------%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Notes: This demo program contains the very basic components of      %

% the flower pollination algorithm (FPA), or flower algorithm (FA),   %

% for single objective optimization.    It usually works well for     %

% unconstrained functions only. For functions/problems with           %

% limits/bounds and constraints, constraint-handling techniques       %

% should be implemented to deal with constrained problems properly.   %

%                                                                     %

% Citation details:                                                   %

%1)Xin-She Yang, Flower pollination algorithm for global optimization,%

% Unconventional Computation and Natural Computation,                 %

% Lecture Notes in Computer Science, Vol. 7445, pp. 240-249 (2012).   %

%2)X. S. Yang, M. Karamanoglu, X. S. He, Multi-objective flower       %

% algorithm for optimization, Procedia in Computer Science,           %

% vol. 18, pp. 861-868 (2013).                                        %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


clc

clear all

close all

n=30;           % Population size, typically 10 to 25

p=0.8;           % probabibility switch


% Iteration parameters

N_iter=3000;            % Total number of iterations

fitnessMSE = ones(1,N_iter);


% % Dimension of the search variables Example 1

d=2;

Lb = -1*ones(1,d);

Ub = 1*ones(1,d);



% % Dimension of the search variables Example 2

% d=3;

% Lb = [-2 -1 -1];

% Ub = [2 1 1];


%

% % Dimension of the search variables Example 3

% d=3;

% Lb = [-1 -1 -1];

% Ub = [1 1 1];

%

%

% % % Dimension of the search variables Example 4

% d=9;

% Lb = -1.5*ones(1,d);

% Ub = 1.5*ones(1,d);


% Initialize the population/solutions

for i=1:n,

   Sol(i,:)=Lb+(Ub-Lb).*rand(1,d);

   % To simulate the filters use fitnessX() functions in the next line

   Fitness(i)=fitness(Sol(i,:));

end


% Find the current best

[fmin,I]=min(Fitness);

best=Sol(I,:);

S=Sol;


% Start the iterations -- Flower Algorithm

for t=1:N_iter,

   % Loop over all bats/solutions

   for i=1:n,

       % Pollens are carried by insects and thus can move in

       % large scale, large distance.

       % This L should replace by Levy flights

       % Formula: x_i^{t+1}=x_i^t+ L (x_i^t-gbest)

       if rand>p,

           %% L=rand;

           L=Levy(d);

           dS=L.*(Sol(i,:)-best);

           S(i,:)=Sol(i,:)+dS;

           

           % Check if the simple limits/bounds are OK

           S(i,:)=simplebounds(S(i,:),Lb,Ub);

           

           % If not, then local pollenation of neighbor flowers

       else

           epsilon=rand;

           % Find random flowers in the neighbourhood

           JK=randperm(n);

           % As they are random, the first two entries also random

           % If the flower are the same or similar species, then

           % they can be pollenated, otherwise, no action.

           % Formula: x_i^{t+1}+epsilon*(x_j^t-x_k^t)

           S(i,:)=S(i,:)+epsilon*(Sol(JK(1),:)-Sol(JK(2),:));

           % Check if the simple limits/bounds are OK

           S(i,:)=simplebounds(S(i,:),Lb,Ub);

       end

       

       % Evaluate new solutions

       % To simulate the filters use fitnessX() functions in the next

       % line

       Fnew=fitness(S(i,:));

       % If fitness improves (better solutions found), update then

       if (Fnew<=Fitness(i)),

           Sol(i,:)=S(i,:);

           Fitness(i)=Fnew;

       end

       

       % Update the current global best

       if Fnew<=fmin,

           best=S(i,:)   ;

           fmin=Fnew   ;

       end

   end

   % Display results every 100 iterations

   if round(t/100)==t/100,

       best

       fmin

   end

   

   fitnessMSE(t) = fmin;

   

end

%figure, plot(1:N_iter,fitnessMSE);

% Output/display

disp(['Total number of evaluations: ',num2str(N_iter*n)]);

disp(['Best solution=',num2str(best),'   fmin=',num2str(fmin)]);

figure(1)

plot( fitnessMSE)

xlabel('Iteration');

ylabel('Best score obtained so far');

3 运行结果

4 参考文献

[1]李小琦. 基于Matlab的图像阈值分割算法研究[J]. 软件导刊, 2014, 13(12):3.

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

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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


相关文章
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
159 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
116 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
84 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
6月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
6月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
|
6月前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
|
6月前
|
算法 调度 SoC
电动汽车充放电V2G模型(Matlab代码)
电动汽车充放电V2G模型(Matlab代码)