How to label objects based on their area?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/155365/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/155367/image.png)
0 commentaires
Réponses (1)
Explorer
le 21 Jan 2014
Modifié(e) : Explorer
le 21 Jan 2014
Have a look on answer of Image Analyst. He has labeled face and hand on the basis of area.
2 commentaires
Explorer
le 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
Voir également
Catégories
En savoir plus sur Blue dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!