Java教程

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

本文主要是介绍【图像分割】基于粒子群优化模糊聚类算法实现图像分割matlab代码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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.

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

图片

这篇关于【图像分割】基于粒子群优化模糊聚类算法实现图像分割matlab代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!