Css 群集中心的值是否正确请参考a*b(实验室颜色空间)值

Css 群集中心的值是否正确请参考a*b(实验室颜色空间)值,css,matlab,image-processing,k-means,Css,Matlab,Image Processing,K Means,我正在进行图像处理,我需要将图像中的颜色分为几个组。我正在使用k-means算法来完成这项工作。这次,我想给已经进行聚类的颜色取一个英文名称。这是我的代码: cform = makecform('srgb2lab'); lab = applycform(a,cform); ab = double(lab(:,:,2:3)); nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,

我正在进行图像处理,我需要将图像中的颜色分为几个组。我正在使用k-means算法来完成这项工作。这次,我想给已经进行聚类的颜色取一个英文名称。这是我的代码:

   cform = makecform('srgb2lab');
   lab = applycform(a,cform);
   ab = double(lab(:,:,2:3));
   nrows = size(ab,1);
   ncols = size(ab,2);
   ab = reshape(ab,nrows*ncols,2);

   nColors=6;
   [cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', 'Replicates',3);
   pixel_labels = reshape(cluster_idx,nrows,ncols);
   segmented_images = cell(1,3);
   rgb_label = repmat(pixel_labels,[1 1 3]);  

据我所知,
cluster\u center
是指
a*b
(实验室颜色空间)值。对吗?如果是,为什么我得到的
cluster\u center
的值超过了已经设置的范围值(
-128
128
,用于实验室颜色空间)

为什么你认为它应该在-128和128之间,而不是在0-255之间?@Dan,a是我的原始图像…@Photon,每次我想用rgb转换到lab,(),就会弹出一条错误消息,它的状态是lab的值应该在-128到128之间。@Photon:操作是正确的。请阅读它是如何工作的。它可能在某些地方或大多数地方是这样定义的,但真正的问题是它是如何在上面使用的Matlab代码中实现的。如果将uint8映像转换为uint8 Lab,然后才转换为double,则会得到0-255