How to label objects based on their area?

7 views (last 30 days)
Meshooo on 21 Jan 2014
Edited: Meshooo on 23 Jan 2014
Dear all,
I have an image that contains many objects. I want to label each object with different color such that objects with the same area will have the same label color. In the same way, small objects will appear with a color located down of the jet color map (dark blue), while larger object will have a color located up of the jet color map (dark red). I am now using this code which label the objects randomly with different color
img = imread('real_sampel_dilate1.tif'); % input image attached here
I = im2bw(img);
I = ~I;
I = (I==0);
cc = bwconncomp(I,8);
s = regionprops(cc,img,'all');
L = labelmatrix(cc);
RGB_label = label2rgb(L, @jet, 'k', 'shuffle');
imshow(RGB_label); % the result randomly labeled of object attached here
Do anyone knows how to do such area-based labeling?
Any suggestion will be appreciated.
Best, Meshoo

Answers (1)

Explorer on 21 Jan 2014
Edited: Explorer on 21 Jan 2014
Have a look on answer of Image Analyst. He has labeled face and hand on the basis of area.
Explorer on 21 Jan 2014
These below mentioned lines are for drawing bounding box around every object in image.
for k = 1 : length(measurements)
thisBB = measurements(k).BoundingBox;
rectangle('Position', [thisBB(1),thisBB(2),thisBB(3),thisBB(4)],...
'EdgeColor','r','LineWidth',2 )

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by