how to extract mean colour

1 view (last 30 days)
kash
kash on 21 Mar 2013
I have a image and code
HSV = rgb2hsv(I);
H = HSV(:,:,1); H = H(:);
S = HSV(:,:,2); S = S(:);
V = HSV(:,:,3); V = V(:);
idx = kmeans([H S V], 3);
cluster_idx=idx;
pixel_labels = reshape(cluster_idx,size(I,1),size(I,2));
figure,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:3
color = I;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
figure,imshow(segmented_images{1}), title('objects in cluster 1');
figure,imshow(segmented_images{2}), title('objects in cluster 2');
figure,imshow(segmented_images{3}), title('objects in cluster 2');
for each segmented image i want to compute mean colur
plz assist
  2 Comments
Jan
Jan on 21 Mar 2013
What is your question? What exactly is the "application of a color"?
kash
kash on 21 Mar 2013
My question is I have 3 segmented images ,for each segmented image,
segmented_images{1}),segmented_images{2}),segmented_images{3}),for these 3 images i have to apply different colours,i tried using
X=segmented_images{1});
X(:,:,1)=1
X(:,:,2)=0
X(:,:,3)=0,
but could not get colour on that segmented image,plz assist

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 22 Mar 2013
Z = zeros(size(pixel_labels));
T = double(pixel_labels == 1);
segmented_image{1} = cat(3, T, Z, Z);
T = double(pixel_labels == 2);
segmented_image{2} = cat(3, Z, T, Z);
T = double(pixel_labels == 3);
segmented_image{3} = cat(3, Z, Z, T);
  7 Comments
kash
kash on 22 Mar 2013
thanks walter
Doug Hull
Doug Hull on 27 Mar 2013
Thank him by accepting the answer. :)

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!