How to label objects based on their area?

2 Ansichten (letzte 30 Tage)
Meshooo
Meshooo am 21 Jan. 2014
Bearbeitet: Meshooo am 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

Antworten (1)

Explorer
Explorer am 21 Jan. 2014
Bearbeitet: Explorer am 21 Jan. 2014
Have a look on answer of Image Analyst. He has labeled face and hand on the basis of area.
  2 Kommentare
Meshooo
Meshooo am 21 Jan. 2014
Thank you very much. I tried the following code but it doesn't work..
img = imread('real_sampel_dilate1.tif');
%
I = im2bw(img);
I = ~I;
I = (I==0); % invert the image
cc = bwconncomp(I,8); % could use 4-connected neighborhood also
s = regionprops(cc,img,'all');
L = labelmatrix(cc);
RGB_label = label2rgb(L, @jet, 'k', 'shuffle');
imshow(RGB_label);
Label the image
labeledImage = bwlabel(I);
measurements = regionprops(labeledImage, 'BoundingBox', 'Area');
for k = 1 : length(measurements)
thisBB = measurements(k).BoundingBox;
rectangle('Position', [thisBB(1),thisBB(2),thisBB(3),thisBB(4)],...
'EdgeColor','r','LineWidth',2 )
end
Explorer
Explorer am 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 )
end

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by