0
私はMATLABで色分けしていました。私はthis文書に基づいたk-meansクラスタリングを使用しており、MATLABでセグメント化された画像に色を割り当てる
global imgRGB;
global imgLAB;
img = imgRGB;
cform = makecform('srgb2lab');
imgLAB = applycform(img, cform);
ab = double(imgLAB(:,:,2:3));
rows = size(ab,1)
cols = size(ab,2);
ab = reshape(ab, rows*cols, 2);
cluster = 5;
[idx center] = kmeans(ab, cluster, 'distance', 'sqEuclidean', 'Replicates', 5);
label = reshape(idx, rows, cols);
figure; imshow(label, []);
imgSeg = cell(5);
rgb_label = repmat(pixel_labels, [1 1 3]);
for k=1:cluster
color = img;
color(rgb_label ~= k) = 0;
imgSeg{k} = color;
end
figure;
imshow(imgSeg{1});
私は画像が入力されているため、グローバルに定義されています。
リンクされたようなカラー画像の場合、グレースケール出力が生成されます。
私はそれが色としてグレートーンを割り当てると思うが、私は、各クラスタに色を割り当てる必要があります。私は灰色の色調ではなく、色を意味します。それをどうすれば実現できますか?
ごめんなさい、うまくいきませんでした。私はコード内の他の場所で関数colormapを使うべきですか? –
いいえ、まだ動作していません。私はそれがこの行のためであるかどうか疑問に思います。 'rgb_label = repmat(pixel_labels、[1 1 3]); ' –
ありがとうございました。 –