how to extract mean colour

1 次查看(过去 30 天)
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 个评论
Jan
Jan 2013-3-21
What is your question? What exactly is the "application of a color"?
kash
kash 2013-3-21
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

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2013-3-22
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 个评论
Doug Hull
Doug Hull 2013-3-27
Thank him by accepting the answer. :)

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by