基于MATLAB编程的粒子群算法优化阈值分割,基于最大信息熵粒子群优化阈值分割

Posted 神经网络机器学习智能算法画图绘图

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于MATLAB编程的粒子群算法优化阈值分割,基于最大信息熵粒子群优化阈值分割相关的知识,希望对你有一定的参考价值。

目录

背影
阈值分割
基本定义
优缺点
粒子群改进的阈值分割
效果图
结果分析
展望
参考

背影

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。

阈值分割

阈值分割的定义

阈值分割法是一种基于区域的图像分割技术,原理是把图像像素点分为若干类。图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域不具有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

技术参数

基本原理是:通过设定不同的特征阈值,把图像像素点分为若干类。
常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征。
设原始图像为f(x,y),按照一定的准则f(x,y)中找到特征值T

图像分割基于matlab Kmean聚类分水岭oust粒子群算法优化脂肪肝图像分割含Matlab源码 2277期

⛄一、粒子群算法自适应多阈值图像分割简介

FCM聚类算法是一种局部搜索算法,对初始值较为敏感,容易陷入局部极小值而不能得到全局最优解。PSO算法是一种基于群体的具有全局寻优能力的优化方法。本文将FCM聚类算法和PSO算法结合起来,将FCM聚类算法的聚类准则函数作为PSO算法中的粒子适应度函数,具体步骤如下:

(1)读入待分割图像I;给定阈值数m作为粒子具有的特征数;确定粒子群的群体规模N,学习因子c1、c2,惯性权重wmax、wmin,迭代的最大次数T。

(2)初始化粒子群S0=Xi0|i=1,2,…,N,其中每个粒子初始位置为Xi0=(x0i1,x0i2,…,x0im),每个粒子初始速度为Vi0=(v0i1,v0i2,…,v0im),m为粒子具有的特征数;取t=0。

(3)根据式(3)计算待分割图像I各像素对每个聚类中心的隶属度。

(4)根据式(1)评价群体中的粒子。计算粒子的适应度值,如果优于该粒子当前个体极值,则将pbestt设置为该粒子的位置,且更新个体极值;如果群体中所有粒子的个体极值中最优的优于群体当前的极值,则将设gbestt置为群体中个体极值中最优的位置,且更新群体极值。

(5)粒子更新,用式(5)和式(6)对所有粒子的速度和位置更新。

(6)终止条件判断:如果t<T,令t=t+1,转到步骤(3);否则,转到步骤(7)。

(7)根据群体最优的gbest结果对图像I进行分割,输出结果。

⛄二、部分源代码

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

clear;
clc;
close all;
warning(‘off’);
% Loading
img=imread(‘fat.jpg’);
img=im2double(img);
imgtemp=img;
img = histeq(img);
gray=rgb2gray(img);
gray=imadjust(gray);
% Reshaping image to vector
X=gray(😃;

%% Starting PSO Segmentation
k = 2; % Number of segments

%---------------------------------------------------
CostFunction=@(m) ClusterCost(m, X); % Cost Function
VarSize=[k size(X,2)]; % Decision Variables Matrix Size
nVar=prod(VarSize); % Number of Decision Variables
VarMin= repmat(min(X),k,1); % Lower Bound of Variables
VarMax= repmat(max(X),k,1); % Upper Bound of Variables

%% PSO Parameters

MaxIt = 50; % Maximum Number of Iterations
nPop = 5; % Population Size (Swarm Size)
% PSO Parameters
w = 1; % Inertia Weight
wdamp = 0.99; % Inertia Weight Damping Ratio
c1 = 1.5; % Personal Learning Coefficient
c2 = 2.0; % Global Learning Coefficient
% Velocity Limits
VelMax = 0.1*(VarMax-VarMin);
VelMin = -VelMax;

%% Initialization
empty_particle.Position = [];
empty_particle.Cost = [];
empty_particle.Out = [];
empty_particle.Velocity = [];
empty_particle.Best.Position = [];
empty_particle.Best.Cost = [];
empty_particle.Best.Out = [];
particle = repmat(empty_particle, nPop, 1);
GlobalBest.Cost = inf;
for i = 1:nPop
% Initialize Position
particle(i).Position = unifrnd(VarMin, VarMax, VarSize);
% Initialize Velocity
particle(i).Velocity = zeros(VarSize);
% Evaluation
[particle(i).Cost particle(i).Out] = CostFunction(particle(i).Position);
% Update Personal Best
particle(i).Best.Position = particle(i).Position;
particle(i).Best.Cost = particle(i).Cost;
particle(i).Best.Out=particle(i).Out;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest = particle(i).Best;
end

⛄三、运行结果


⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]许永峰,张书玲.多阈值图像分割的模糊粒子群优化算法[J].计算机工程与应用. 2008,(11)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于基于MATLAB编程的粒子群算法优化阈值分割,基于最大信息熵粒子群优化阈值分割的主要内容,如果未能解决你的问题,请参考以下文章

阙值分割基于matlab粒子群算法自适应多阈值图像分割含Matlab源码 1459期

图像分割基于matlab Kmean聚类分水岭oust粒子群算法优化脂肪肝图像分割含Matlab源码 2277期

图像分割基于matlab Kmean聚类分水岭oust粒子群算法优化脂肪肝图像分割含Matlab源码 2277期

图像分割基于matlab粒子群算法优化模拟退火算法图像分割含Matlab源码 2020期

图像分割基于matlab粒子群算法和OSTU和分水岭和K-means脂肪肝水平识别含Matlab源码 2397期

图像处理基于matlab压缩系数的粒子群和重力搜索算法图像的多级阈值分割含Matlab源码 1888期