一、简介
matlab基于 K-means 聚类算法的图像区域分割,聚类分析是一种无监督的学习方法,能够从研究对象的特征数据中发现关联规则,因而是种强大有力的信息处理方法。以聚类法进行图像分割就是将图像空间中的像素点用对应的特征向量表示,根据它们在特征空间的特征相似性对特征空间进行分割,然后将其映射回原图像空间,得到分割结果。其中,K-means均值和模糊C均值聚类(FCM)算法是最常用的聚类算法。
二、部分源码
clc
close all
I=imread('3.jpg');
I=double(I)/255;
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
function D=sampledist(X,C,method,varargin)
[n,p]=size(X);
K=size(C,1);
D=zeros(n,K);
switch lower(method(1))
case 'e'
for i=1:K
D(:,i)=(X(:,1)-C(i,1)).^2;
for j=2:p
D(:,i)=D(:,i)+(X(:,j) - C(i,j)).^2;
end
end
case 'c'
for i=1:K
D(:,i)=abs(X(:,1) - C(i,1));
for j=2:p
D(:,i)=D(:,i) + abs(X(:,j) - C(i,j));
end
end
end
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信