栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【图像分割】基于蚁群算法优化模糊c均值聚类实现图像分割matlab代码

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【图像分割】基于蚁群算法优化模糊c均值聚类实现图像分割matlab代码

1 简介

在图像分割研究中,针对模糊C均值(FCM)聚类算法聚类个数难于确定,搜索过程容易陷入局部最优的缺陷,把蚁群算法与FCM聚类算法有机结合,提出了一种基于蚁群算法的模糊C均值聚类图像分割算法.该算法首先利用蚁群算法全局性和鲁棒性的优点,得到聚类中心和聚类个数,再将其作为模糊C均值聚类的初始聚类中心和聚类个数,弥补了传统FCM聚类算法的不足,得到了较好的分割效果.实例分析证明了算法的有效性和实用性.

蚁群算法又称蚂蚁算法,是 1992 年意大利学者 M .Dorigo ,V .maniezzo 等人受蚂蚁觅食过程中路径选 择行为的启发而提出的一种仿生进化算法 .研究 发现 ,蚂蚁总能找到巢穴与食物源之间的最短路径 . 蚂蚁的这种群体协作功能是通过一种遗留在其来往 路径上的叫做信息素(pheromone)的挥发性化学物质 来进行通信和协调的 .每只蚂蚁在随机行走过程中 会释放出一种信息激素, 该激素随着时间延续不断 挥发 ,如果有较多的蚂蚁选择这条路径 ,则该路径上 的激素得到增强 .每只蚂蚁具有感知这种信息激素 强度的能力 ,会以较大概率选择信息激素较强的路 径,从而导致选择这条路径的蚂蚁增多 ,这样形成了 一个正反馈过程 . 蚁群聚类算法是由 P .S .Shelokar 提出的用于解 决聚类问题的新的蚁群算法.蚁群聚类算法是一 种全局优化的启发式搜索算法 ,能根据聚类中心的 信息量把周围数据归并到一起 ,从而得到聚类结果 . 应用时将待聚类数据视为具有不同属性的蚂蚁 ,聚 类中心看成蚂蚁需要寻找的“ 食物源” , 聚类过程就 是蚂蚁寻找“食物源”的过程.

2 部分代码
% function AntColonyClustering
%%依据原始图像构造聚类的数据集
clc
clear all
close all
img_rgb=imread('2.png');
img_gray=rgb2gray(img_rgb);
[nrow,ncol]=size(img_gray);
%%统计灰度值
A=floor(double(img_gray));
N=zeros(1,256);
for i=1:nrow
   for j=1:ncol
       k=A(i,j);
       N(k+1)=N(k+1)+1;
   end
end
figure(1);
bar(N);
graydiff=500;
%%获取图像的梯度
A2=double(img_gray);
[Gx,Gy]=gradient(A2);
img_gradient=sqrt(Gx.*Gx+Gy.*Gy);
figure(2);
imshow(img_gradient);
%%求梯度值的平均值
m1=mean(img_gradient);
mean_gradient=mean(m1);
%%构造数据集的邻域矩阵
adjacentmatrix=zeros(nrow,ncol);
for i=1:nrow
   for j=1:ncol
       if (N(img_gray(i,j)+1)>=graydiff) && (img_gradient(i,j)<=mean_gradient)
           adjacentmatrix(i,j)=8;
       elseif (N(img_gray(i,j)+1)>=graydiff) && (img_gradient(i,j)>=mean_gradient)
           adjacentmatrix(i,j)=6;
       elseif (N(img_gray(i,j)+1)=mean_gradient)
           adjacentmatrix(i,j)=3;
       else
           adjacentmatrix(i,j)=8;
       end
   end

               end
           end
          [num,tempcol]=size(cluster_center);
       end
   end
   
   %%信息素的挥发
   cluster_center(:,5)=cluster_center(:,5)*(1-rho);
   do=do+1;
end

%%处理聚类结果
cluster_img=zeros(nrow,ncol);
for i=1:nrow
   for j=1:ncol
       if ant_info(i,j,1)==0
           cluster_img(i,j)=255;%%像素没有被聚类 灰度值设置为白色
       elseif ant_info(i,j,1)==1
           k=ant_info(i,j,2);
           cluster_img(i,j)=cluster_center(k,1);
       end
       
   end
   
end
figure(3);
subplot(121)
imshow( img_rgb);title('原图')
subplot(122)
imshow(cluster_img/255);title('蚁群优化模糊聚类分割后的图')

3 仿真结果

4 参考文献

[1]杨立才, 赵莉娜, and 吴晓晴. "基于蚁群算法的模糊C均值聚类医学图像分割." 山东大学学报(工学版) 37.3(2007):51-54.

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号