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

news2024/9/22 21:21:28

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

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 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL简介与安装

文章目录MySQL简介与安装一、数据库相关概念二、MySQL数据库1. 版本2. 下载3. 安装1). 双击官方下载的安装包文件2). 根据安装提示进行安装3). 配置MySQL环境4. 启动停止5. 客户端连接6. 数据模型MySQL简介与安装 本文主要介绍数据库的相关概念、以及在Windows下安装MySQL 8.0…

matplotlib绘图详解

文章目录matplotlib绘图详解一、 基础准备1、 matplotlib简介2、 环境准备2.1 安装2.2 参考文档3、 图表结构4、 常用图表二、绘图步骤1、 常用图表1.1 散点图1.2 柱状图1.3 饼图1.4 折线图2、 多图绘制2.1 subplot2.2 subplots3、 绘图配置3.1常用配置3.1.1 网格线3.1.2 标题和…

【问答篇】Java 基础篇 面试题(二)

每天进步一点~ 01、问&#xff1a;PreparedStatement与Statement的区别&#xff1f; 答&#xff1a; PreparedStatement是预编译语句执行者&#xff0c;数据库对sql语句进行预编译&#xff1b;Statement是执行时对sql语句进行编译 Statement存在sql注入的问题&#xff0c;Prep…

非零基础自学Golang 第10章 错误处理 10.3 Go语言宕机 10.4 宕机恢复

非零基础自学Golang 文章目录非零基础自学Golang第10章 错误处理10.3 Go语言宕机10.4 宕机恢复10.4.1 recover捕获宕机10.4.2 recover应用第10章 错误处理 10.3 Go语言宕机 一般而言&#xff0c;只有当程序发生不可逆的错误时&#xff0c;才会使用panic方法来触发宕机。 pan…

云计算运营—02FusionSphere 6.5 服务器虚拟化运营

FusionSphere 6.5 服务器虚拟化运营 1、虚拟化 特性介绍 云操作系统架构 Tool/PV driver(虚拟机驱动) Tools是虚拟机的驱动程序。 安装并启动Tools后&#xff0c;用户无需做任何操作&#xff0c;Tools即可提供以下功能: 1、为虚拟机提供高性能的磁盘I/0和网络I/0功能 2、为…

Element-plus的通用使用方法

Element-plus的通用使用方法说明一、组件属性的使用二、组件内部事件的使用三、组件插槽的使用四、组件外部方法的使用1、使用外部方法是要调用标签的$refs2.使用方法完说明 本教程适用于Element-plus的使用非常熟练本教程是对Element-plus的高度总结组件属性的使用组件插槽的…

中国自然地理分区数据集 (含农业区划、森林工程、生态保护区、九大流域等)

一中国生态功能保护区数据 代码 名称 类型 1 秦岭山地生态功能保护区 水涵养生态功能保护区 2 若尔盖一玛曲生态功能保护区 水涵养生态功能保护区 3 滇西北生态功能保护区 水涵养生态功能保护区 4 珠江源(云南部分)生态功能保护区 水涵养生态功能保护区 5 雅鲁藏布江源头生态…

web前端-javascript-Array数组方法详解(增删改,遍历,截取,连接,转字符串,反转数组,排序)

文章目录数组的方法1. push() 添加2. pop() 删除3. unshift() 添加4. shift() 删除5. forEach() 遍历1) 说明2) 使用6. slice() 截取7. splice() 删除8. concat() 连接9. join() 转String字符串10. reverse() 反转11. sort() 排序1) 简单用法2) 自己指定排序规则数组的方法 1.…

[附源码]Python计算机毕业设计Django新能源汽车租赁

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

全文检索、精准查询、坐标查询、复合查询、排序、分页、高亮

文章目录DSL查询文档DSL查询分类全文检索查询精准查询地理坐标查询复合查询算分函数查询布尔查询搜索结果处理排序单字段 排序多字段 排序地理坐标排序分页高亮RestClient查询文档发起查询请求解析响应match查询精确查询布尔查询排序、分页距离排序高亮高亮请求构建高亮结果解析…

NAT处理流程、分类和使用场景

1、NAT分为源NAT、目的NAT、双向&#xff08;Bidirection&#xff09;NAT 源NAT适用于私网访问公网的情形 目的NAT适用于公网访问私网的情形 双向NAT适用于双方都非真实地址的情形 看下图&#xff0c;第一条匹配源NAT Server&#xff0c;如果匹配则2直接转换目的地址 ---> …

32位单片机存储器中地址膨胀映射作用位带操作和对应地址位置关系

映射的作用 所谓映射&#xff0c;实际上是有另一种控制同一个位置功能的方式。就相当于两个方式操作对一个功能起到相同作用 位带&#xff08;bitband&#xff09;操作:直译出来的&#xff0c;根本意思是将原地址中每一个字节位都扩展成占用一个32bit位的地址&#xff08;一个…

ubuntu18中ISCE2.6+stamps实现PSInSAR时序地表形表处理

一 安装ubuntu 教程参考&#xff1a;https://baijiahao.baidu.com/s?id1741674041146755999&wfrspider&forpc 建议安装18或者20版本&#xff0c;版本过高会导致版本不匹配的问题。 二安装Anaconda3 教程参考&#xff1a;https://zhuanlan.zhihu.com/p/269183148 注意…

[附源码]计算机毕业设计Python4S店汽车售后服务管理系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

RBAC与连表查询

文章目录0. 前言1. RBAC模型1.1 什么是RBAC模型1.2 准备工作2. 连表操作2.1 常用连表图2.2 准备SQL语句2.3 Mybatis 连表3. 总结与补充0. 前言 连表学习、练习经典&#xff1a;RBAC权限模型、5表联查。 本文采用的持久层实现方式&#xff1a;Mybatis/Mybatis-Plus。 学习基础…

QT系列第6节 QT中常用控件

1. QComboBox 下拉列表 2. QPlainTextEdit QPlainTextEdit的文字内容以QTextDocument类型存储&#xff0c;函数document返回这个文档 对象的指针 QTextDocument是内存中的文本对象&#xff0c;以文本块方式存储&#xff0c;每个段落以换行符结束。 QTextDocument提供一些…

常用日期类

第一代日期类 Date类 Date&#xff1a;精确到毫秒&#xff0c;代表特定的瞬间 当需要获取当前时间时可以直接new一个Date对象&#xff0c;使用无参构造器 Date date new Date();日期转文本 但是直接使用的话&#xff0c;它是国外的时间格式&#xff1a;Sat Dec 17 17:02:3…

Apache IoTDB v1.0.0安装试用小结( linux环境)

1 简介 Apache IoTDB 是一个开源物联网时序数据库。 github地址&#xff1a;https://github.com/apache/iotdb 2 下载 下载地址&#xff1a;https://iotdb.apache.org/Download/ 下载&#xff0c;输入命令&#xff1a; wget https://archive.apache.org/dist/iotdb/1.0.…

【简单工厂模式-2】简单工厂模式的代码实现及使用场景

简单工厂模式并属于Gof 23个经典设计模式其中之一&#xff0c;只是通常会将它作为学习其他工厂设计模式的入门&#xff0c;而且在开发中&#xff0c;简单工厂模式也是比较常见的&#xff0c;设计思想比较简单。 1. 定义 简单工厂模式定义一个工厂类&#xff0c;提供获取对象的…

Makefile、.mk、.bp、Blueprint、Soong、kati工具链的关系

一、Android版本相应的发展演变过程: Android 7.0引入ninja和kati Android 8.0使用Android.bp来替换Android.mk&#xff0c;引入Soong Android 9.0强制使用Android.bp 二、生成.ninja工具链关系&#xff1a;Android.bp、Blueprint、Soong、kati&#xff1a;总之都是用来把Make…