广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >matlab怎么实现图像的自适应多阈值快速分割
  • 176
分享到

matlab怎么实现图像的自适应多阈值快速分割

2024-04-02 19:04:59 176人浏览 泡泡鱼
摘要

今天小编给大家分享一下matlab怎么实现图像的自适应多阈值快速分割的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下

今天小编给大家分享一下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 eval(N_iter*n)]);

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

figure(1)

plot( fitnessMSE)

xlabel('Iteration');

ylabel('Best score obtained so far');

3 运行结果

matlab怎么实现图像的自适应多阈值快速分割

以上就是“matlab怎么实现图像的自适应多阈值快速分割”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网VUE频道。

--结束END--

本文标题: matlab怎么实现图像的自适应多阈值快速分割

本文链接: https://www.lsjlt.com/news/98983.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • matlab怎么实现图像的自适应多阈值快速分割
    今天小编给大家分享一下matlab怎么实现图像的自适应多阈值快速分割的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2022-10-19
  • python怎么实现图像自动阈值分割
    本文小编为大家详细介绍“python怎么实现图像自动阈值分割”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么实现图像自动阈值分割”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。引言图像阈值分割是一种...
    99+
    2023-07-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作