How to label objects based on their area?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Explorer
2014-1-21
编辑:Explorer
2014-1-21
Have a look on answer of Image Analyst. He has labeled face and hand on the basis of area.
2 个评论
Explorer
2014-1-21
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Blue 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!