01、K-means均值法
K-means均值法:是一种广泛的聚类方法
function [mu,mask]=kmeans(ima,k)
%功能·:运用K-means算法对图像进行分割
% 输入 ima-输入的灰度图像 K-分类数
%输出 mu -均值类向量 mask-分类后的图像
ima=double(ima);
copy=ima;
ima=ima(:);
mi=min(ima);%找到最小值
ima=ima-mi+1;
s=length(ima);%有多少灰度级
%计算图像灰度直方图
m=max(ima)+1;%图像最大灰度值
h=zeros(1,m);
hc=zeros(1,m);
for i=1:s
if (ima(i)>0)
h(ima(i))=h(ima(i))+1;%灰度值i累加
end
end
ind =find(h);
h1=length(ind);
%初始化质心
mu=(1:k)*m/(k+1);
%start process
while(true)
oldmu=mu;
%现有的分类·
for i=1:h1
c=abs(ind(i)-mu);
cc=find(c==min(c));
hc(ind(i))=cc(1);
end
%重新计算均值
for i=1:k
a=find(hc==i)
mu(i