Effacer les filtres
Effacer les filtres

how to choose specific color to display when using kmean clustering color segmentation?

2 vues (au cours des 30 derniers jours)
hi, i am learning how to segment colors by using kmean clustering just like the example in matlab 2015a. but each time i run the codes, the colors that i want are in different clusters. for example, for the first run,it will display that yellow is in cluster 1 and blue is in cluster 2. but when i run it again, they will switch to different cluster. how to make the yellow and blue is in specific clusters even if i run it again and again? please help me. thanks in advance
[FileName,PathName] = uigetfile('*.jpg','Select the MATLAB code file');
he1= imread(FileName);
cform = makecform('srgb2lab');
lab_he = applycform(he1,cform);
figure (2)
imshow (lab_he)
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 3;
% repeat the clustering 3 times to avoid local minima
[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
'Replicates',3);
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure (3)
imshow(pixel_labels,[]), title('image labeled by cluster index');
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
for k = 1:nColors
color = he1;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
figure (4)
imshow(segmented_images{1}), title('objects in cluster 1');
figure (5)
imshow(segmented_images{2}), title('objects in cluster 2');
figure (6)
imshow(segmented_images{3}), title('objects in cluster 3');

Réponse acceptée

Image Analyst
Image Analyst le 7 Mai 2016
You have to pick your class colors that you want the classes displayed in. Then for each cluster, you have to find the mean color (centroid) of all the colors in the cluster. Then see which class color is closest (Euclidean distance) to your cluster color.
  2 commentaires
Kumar Arindam Singh
Kumar Arindam Singh le 18 Avr 2017
Could u give the steps on how to implement the above method?
Image Analyst
Image Analyst le 18 Avr 2017
See attached demo. Let me know of anything you don't understand.

Connectez-vous pour commenter.

Plus de réponses (1)

badrul hisham
badrul hisham le 7 Mai 2016
Thank you sir

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by