【图像分割】遗传算法优化K聚类图像分割【含Matlab源码 1605期】

news/2024/12/22 18:51:11/

⛄一、遗传算法优化K聚类简介

文中提出基于优化遗传算法的模糊聚类图像分割算法, 是在上述对遗传算法进行了优化的基础上形成的。不仅根据个体适应度大小和变化快慢自适应调节变异率和交叉率, 提高计算准确性和效率, 另外, 在遗传算法迭代计算中加入基于曲线二阶导数的约束条件以加快收敛, 然后用优化后的遗传算法按照模糊聚类规则对聚类中心进行计算, 计算完成后, 根据最终计算的聚类中心产生分割阈值以完成对图像的分割。具体步骤如下:

  1. 初始化和编码操作。
    初始化所需参数, 并采用实数编码, 将直方图中归一化的聚类中心坐标值作为基因, 随机生成初始种群。实数编码可以缩短染色体长度, 也避免了在二进制编码所必需的译码过程, 提高计算的精度和速度;

  2. 计算适应度。
    文中构造适应度函数为:
    f=a/ (b+J) (5)
    其中, a, b是可调参数, 由实验可分别设为10和1.5。J为式 (1) 中的目标函数;

  3. 选择个体。
    个体被选择的概率与适应度值成正比, 即根据适应度大小按比例选择个体;

  4. 交叉产生新的个体。
    采用实值中间重组方式进行交叉操作;

  5. 变异操作。
    文中将归一化的聚类中心坐标值作为基因, 因此将变异前后个体的变化量设为0.5r (t/T) 。其中, r是区间[0, 1]内的随机数, T为演化最大代数, t为当前演化代数。这种变异操作的优势在于:在演化初期即t较小时, 个体可在较大范围内变异, 提高搜索的准确性, 避免陷入局部最优;而当t较大时, 缩小个体的变异范围, 有利于提高搜索效率。此外, 在产生新种群的过程中, 加入约束条件使产生的聚类中心与直方图峰值没有太大偏差, 加快收敛速度;

  6. 迭代计算。
    得到新种群后计算新的模糊隶属度矩阵, 返回步骤2) , 继续迭代计算, 直到满足迭代中止条件为止。迭代中止后, 依据计算出的聚类中心得到分割阈值, 完成图像分割。

⛄二、部分源代码

function [idx,cs,egr]=kmeanseg(im,cs)

%number of Iteration
T= 50; t=0;

nc=length(cs);
[row,col]=size(im);
D=zeros(row,col,nc);

pcs=cs;
egr =[];
eps=1.e-8; cmx=1;

while ( t<T && cmx>eps )

% Euclidean distance between centroids and image's pixel 
for c=1: nc D(:,:,c)=   (im - cs(c)).^2 ;     
end% assign members (image pixels) to clusters  
[mv,idx]=min(D,[],3);% cluster centroid updation
for c=1: nc I = (idx==c);  cs(c) = mean( mean(im(I)) );    
end% find if any member label changes between current and previous iteration     cmx = max( abs(cs-pcs) );pcs = cs;t= t+1;%sum difference between centroid and their members 
% and store it for ploting energy minimization functions
egr= [egr; sum(mv(:)) ];

end
function egr=objfunc(cs)

global sds
nc = size(cs,2);
[row,col]=size(sds);
D=zeros(row,col,nc);
% Euclidean distance between centroids and image’s pixel
for c=1: nc
D(:,:,c)= (sds - cs©).^2 ;
end
% assign members (image pixels) to clusters
[mv,~]=min(D,[],3);
egr=sum(mv(😃);

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]朱斌,管莉,张胜超,齐敏,郝重阳.基于优化遗传算法的模糊聚类图像分割算法[J].弹箭与制导学报. 2008,(04)

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


http://www.ppmy.cn/news/4956.html

相关文章

DSPE-PEG-DBCO磷脂聚乙二醇二苯基环辛炔简介

名称 磷脂聚乙二醇二苯基环辛炔 DSPE-PEG-DBCO 中文名称 二硬脂酰基磷脂酰乙醇胺-聚乙二醇-二苯基环辛炔 英文名称 DSPE-PEG-DBCO 溶剂 部分常规有机溶剂 存储条件 -20冷冻保存&#xff0c;惰性气体保护 保存时间 1年 PEG常规分子量 2000 3400 5000 DSPE-PEG-DBCO DSPE&a…

C语言浮点型的存储

3.14159 1e10可以写成1.010的10次方 1e5 表示 1.010的5次方 int main() {int n 9;//4bytefloat* pFloat (float*)&n;//float 指针访问4的字节printf("n值为:%d", n);//9printf("*pFloat值为:%f\n", *pFloat);//&#xff0c;是以浮点数的视角去看的*p…

DJ13-1 汇编语言程序设计-2

目录 一、数据定义伪指令 1. 格式 2. 操作数 3. 重复操作数 4. 变量的使用 5. 属性定义伪指令 LABEL 6. 表达式运算符 二、符号定义伪指令 伪指令 指示性语句中的伪操作命令&#xff0c;无论表示形式或其在语句中所处的位置都与 CPU 指令相似&#xff0c;因此也称为伪…

JVM之堆

堆的基本内容&#xff1a; Java堆&#xff08;Java Heap&#xff09;是虚拟机所管理的内存中最大的一块&#xff0c;Java堆是被所有线程共享的一块内存区域&#xff0c;在虚拟机启动时创建&#xff0c;此内存区域的唯一目的就是存放对象实例&#xff0c;Java 世界里“几乎”所…

Mycat(6):mycat简单配置

1 找到conf/schema.xml并备份 2 配置虚拟表table[在schema里面] 其中 sharding-by-intfile 为rule.xml中的规则 规则文件为conf文件夹中的partition-hash-int.txt 3 配置数据节点dataNode 现在数据库新建3个数据库&#xff0c;skywalking&#xff0c;skywalking1&#xff0c;s…

艾美捷利妥昔单抗Rituximab参数及应用

艾美捷利妥昔单抗Rituximab背景&#xff1a; 利妥昔单抗是一种针对CD20抗原的基因工程嵌合鼠/人单克隆IgG1κ抗体。利妥昔单抗的分子量约为145 kD。利妥昔单抗由哺乳动物细胞&#xff08;中国仓鼠卵巢&#xff09;产生。 艾美捷利妥昔单抗Rituximab基本参数&#xff1a; 中文…

Jenkins(2)— 配置webhooks触发器

1、项目配置 项目配置 >> 构建触发器 >> 选择Gitee webhook触发器 生成Gitee WebHook密码&#xff1a;46d678257c0399b105635bcb9722ea09 2、Gitee配置 Gitee项目 >> 管理 >> 配置WebHooks 注意&#xff1a; 由于我的jenkins是部署在本地的&#xff…

【MySQL】-索引以及树的常用数据结构分析

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【MySQL】 分享&#xff1a;纵一苇之所如&#xff0c;凌万顷之茫然。——《赤壁赋》 主要内容&#xff1a;MySQL中索引的介绍、创建索引、使用索引&#xff1b;索引背后的数据结构…