资源简介
利用kmeans算法对图像聚类的一个小程序,里面包含图片和对应的主函数和调用函数,可以直接运行。

代码片段和文件信息
function [mumask]=kmeans1(imak)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% kmeans image segmentation
%
% Input:
% ima: grey color image
% k: Number of classes
% Output:
% mu: vector of class means
% mask: clasification image mask
%
% Author: Jose Vicente Manjon Herrera
% Email: jmanjon@fis.upv.es
% Date: 27-08-2005
%通过k均值算法对图像进行聚类运算,获得聚类图像
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check image
gpp=size(ima1);
for i=1:gpp
for j=1:gpp
ima(ij)=uint16(ima(ij));
end
end
mask=ima;
ima=double(ima);
copy=ima; % make a copy
ima=ima(:); % vectorize ima 图像转成一个向量
mi=min(ima); % deal with negative 求图像中的最小灰度值
ima=ima-mi+1; % and zero values 图像所有值向下浮动至最小值为1
s=length(ima); % 计算向量总元素数
% create image histogram
m=max(ima)+1; %取最大像素值
h=zeros(1m); %聚类前图像向量中各灰度出现的次数统计
hc=zeros(1m); %聚类后图像向量所属类编号
for i=1:s
if(ima(i)>0)
%bpp=im2uint16(ima(i));
%h(bpp)=h(bpp)+1;
h(ima(i))=h(ima(i))+1;
end
end
ind=find(h); %找到图像向量中所有出现次数非0的值
hl=length(ind); %图像向量中所有非0值的个数
% initiate centroids
mu=(1:k)*m/(k+1);%确定初始聚类中心(k个)
% start process
while(true)
oldmu=mu; %记录上一次的聚类中心
% current classification
for i=1:hl
c=abs(ind(i)-mu); %计算图像向量中每一个分量与所有聚类中心的距离
cc=find(c==min(c)); %找到图像向量中每一个分量与聚类中心距离中最短的那一个聚类中心
hc(ind(i))=cc(1); %记录图像向量中每一个分量所属的类号
end
%recalculation of means
%更新聚类中心
for i=1:k
a=find(hc==i); %找到图像向量中所有属于第i类的分量
if sum(h(a))~=0
mu(i)=sum(a.*h(a))/sum(h(a)); %更新第i类的聚类中心
end
end
%聚类中心不再变化,说明聚类结束,退出
if(mu==oldmu)
break;
end
end
% calculate mask
s=size(copy);
mask=zeros(s);
for i=1:s(1)
for j=1:s(2)
c=abs(copy(ij)-mu);
a=find(c==min(c));
mask(ij)=a(1);
end
end
mu=mu+mi-1; % recover real range
mu
mask
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-05-12 10:07 kmeans图像聚类程序\
文件 2287 2017-05-12 10:05 kmeans图像聚类程序\kmeans1.m
文件 263222 2015-06-08 17:13 kmeans图像聚类程序\lena.bmp
文件 52 2017-05-12 10:11 kmeans图像聚类程序\main.m
- 上一篇:图像处理系统
- 下一篇:金蝶代码框架报表开发
相关资源
- 基于模糊聚类和SVM的瓦斯涌出量预测
- Cluster Ensembles – A Knowledge Reuse fr
- 基于k-means聚类的财务欺诈类型分类
- K-means算法论文
- 基于Kmean聚类的关键帧提取代码
- 基于动态共享近邻的谱平均密度聚类
- PCA-KDKM算法及其在微博舆情中的应用
- 层次聚类四种经典算法论文英文原文
- 模糊聚类分析问题试验论文及源代码
- 改进的k_均值聚类排挤小生境遗传算法
- Kmeans算法为各国体育水平分类
- 层次聚类代码
- Data clustering algorithm and application
- KNN-文本聚类
- knn文本聚类小型数据集
- 快速搜索密度峰值聚类
- 时间序列聚类——十年回顾
- 聚类分析在股市中的应用
- 聚类分析与模糊聚类的两本书籍
- 三种典型的基于图分割的谱聚类方法
- 聚类算法评测数据第二部分
- 聚类分析、机器学习及数据挖掘中常
- 汉语文本聚类
- 二维空间坐标的dbscan聚类算法
- 文本聚类程序
- FCMGKGG模糊聚类算法
- 超详细学习报告资料模糊理论基础
- powermarker V3.25
- 基于kmeans算法的图像颜色量化
- 基于密度的聚类.ppt
评论
共有 条评论