基于 K-means 聚类算法实现图像区域分割matlab代码

1 简介

对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验结果表明,在CIE L*a*b空间使用K—means聚类算法可以有效地分割彩色纺织品图像的颜色区域.

kmeans聚类算法是一种简单实用的聚类算法,matlab自带函数kmeans可直接对数据进行kmeans聚类。为了方便更好地掌握kmeans聚类算法,今天我们自己来实现一个弱化的版本mykmeans。

mykmeans输入包含三项,分别为聚类所使用的数据data,data每一行代表一个样本,每一列代表一个特征;聚类中心数量numclass;第三项为所使用的距离的定义,默认情况下为欧式距离。

2 部分代码

clc
close all
I=imread('football.jpg');
subplot(2,3,1)
imshow(I)
title('原始图像')
for i=2:6
   F=imkmeans(I,i);
   subplot(2,3,i);
   imshow(F,[]);
   title(['聚类个数=',num2str(i)])
end

3 仿真结果

4 参考文献

[1]李鹏飞, 张宏伟. 基于K-means聚类的纺织品印花图像区域分割[J]. 西安工程大学学报, 2008, 22(5):551-554.

猜你喜欢

转载自blog.csdn.net/weixin_44603934/article/details/124064037