我正在研究通过k均值聚类执行分割的项目。我必须对K = [2,3,4,... K-max]应用K均值聚类,并计算每个点到其聚类中心的平均距离。另外,当切换到K * + 1时,我必须确定这个距离变化不大的K *。Kmax = 20。如何使用K-means聚类分割彩色图像?
据我记下的代码是在下面。我首先担心的是我做错了什么?
I = imread('image');
imshow(I);
Id = im2double(I);
red = I(:,:,1);
green = I(:,:,2);
blue = I(:,:,3);
[c, r] = meshgrid(1:size(I,1), 1:size(I,2));
X = [red(:) green(:) blue(:) red(:) c(:)];
K = 2:20; %Cluster Numbers
[IDX, C, SUMD] = kmeans(X, K);
ave_dist(K) = sum(SUMD(:))/number_of_pixels_in_image;
1)我将如何绘制作为K函数的聚类中心的平均距离?
2)如何确定最小的K *针对
`| ave_dist(K*) - ave_dist(K*+1) |< THR_K. THR_K = 100`
谢谢。
Matlab的?可能想添加标签。 – MSalters
是的,非常感谢你先生,不知何故,我忘了那.. – aod
看看[这个问题](http://stackoverflow.com/questions/32034344/accurately-detect-color-regions-in-an- image-using-k-means-clustering?rq = 1) –