我正在使用K-means来分割图像中的颜色,现在我想从已经聚集的每种颜色中获取RGB值。还有一件事,任何人都可以向我解释为什么集群中心有两个值( 6 x 2 double )?这是集群中心的范围吗?
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]);
答案 0 :(得分:0)
自cluster_center
kmeans
计算nColors=6
(即k=6
)中心仅a
的色彩空间以来,b
为6乘2 } Lab
颜色空间的L'
个组件。
为了从这6个中心获取RGB值,您可以
L
组件修复一些默认值cluster_idx
,并将L'ab中心转换回RGB值。 console.log($scope.files);
蒙版计算原始RGB图像中每个线段的平均颜色。