ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【图像分割】基于粒子群优化模糊聚类算法实现图像分割matlab代码

2021-12-12 16:30:46  阅读:149  来源: 互联网

标签:分割 图像 pic cluster matlab 聚类 cmax


1 简介

基于粒子群优化的改进模糊聚类图像分割算法将微粒群搜索聚类中心作为图像分割的聚类初值,克服了FCM分割算法对聚类中心初值敏感的缺点,大幅提高了图像分割算法的计算速度。改进的模糊聚类图像分割算法,一方面考虑到像素的空间位置信息和相互邻域之间像素有很大的相关性,在目标函数中引入邻域惩罚函数;另一方面提出聚类在二维方向上进行更新的思想,建立了包含邻域单元熵的新聚类目标函数。实验结果表明,该方法可以使模糊聚类的速度得到明显提高,对初始聚类中心不敏感,抗噪能力强,是一种有效的模糊聚类图像分割方法。

2 部分代码

%pso-fcm。
tic;
close all;
clear;
clc;
pic=imread('2.png'); 
[a,b,k]=size(pic);
t=a*b;
data=reshape(double(pic),t,k);
Maxiter=4;%设定最大迭代次数
n=100;
c1=0.4;
c2=0.4;%设定个体经验系数和群体经验系数
w=0.3;%设定惯性系数
vmax=1.5;%设定最大速度
cmax=4;%设定最大粒子(聚类中心)数目
e=1e+4;%设定阈值
ref=2;%设定fcm的系数
result=zeros(cmax-1,1);
u=cell(cmax,n);
vit=cell(cmax,n);
particle=cell(cmax,n);
dist=cell(cmax,n);
obj=zeros(cmax,n);
pbest=cell(cmax,1);

   count=0;
   for j = 1:bestc
       if bestparticle(j,1)>bestparticle(i,1)
           count=count+1;
       end
   end
   
   temp(cluster{i},:) = 255*(bestc-1-count)/(bestc-1);
   data(1:t,1:3)= temp;
   %cluster_pic{i} = temp;
   %temp(cluster{i},:) = bestparticle(i,1);
   %cluster_pic{i}= (cluster_pic{i}+temp)/2;
   %pic{i} = reshape(cluster_pic{i},a,b,k);
   pic{i}=reshape(data(1:t,1:3),a,b,k);
   result_pic{i}=uint8(pic{i});
   figure;
        imshow(uint8(pic{i}));

end
toc;   
           

3 仿真结果

4 参考文献

[1]刘欢, and 肖根福. "基于粒子群的改进模糊聚类图像分割算法." 计算机工程与应用 49.13(2013):152-155.

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

图片

标签:分割,图像,pic,cluster,matlab,聚类,cmax
来源: https://blog.csdn.net/qq_59747472/article/details/121889329

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有