MATLAB Answers

Felix
1

Rectangle around the object, Bounding box,

Asked by Felix
on 18 Sep 2013
Latest activity Commented on by Image Analyst
on 28 Jan 2017 at 16:16

Hello, I used this code to make rectangle around the object at binary image:

st = regionprops(BW, 'BoundingBox' );

figure, imshow('MY_IMAGE.jpg')

 rectangle('Position',[st.BoundingBox(1),st.BoundingBox(2),st.BoundingBox(3),st.BoundingBox(4)],...
'EdgeColor','r','LineWidth',2 )

but if I have more than one object, this code doesn't working How can I draw N rectangles for N objects on image? Thank you

  0 Comments

Log in to comment.

2 Answers

Answer by Image Analyst
on 18 Sep 2013
 Accepted answer

Put it in a loop (untested)

for k = 1 : length(st)
  thisBB = st(k).BoundingBox;
  rectangle('Position', [thisBB(1),thisBB(2),thisBB(3),thisBB(4)],...
  'EdgeColor','r','LineWidth',2 )
end

  7 Comments

does it work the same way as "vision.BlobAnalysis"? same results?

Log in to comment.


Answer by Hafsa Asad
on 28 Jan 2017 at 7:47
Edited by Hafsa Asad
on 28 Jan 2017 at 7:50

Here is an even simpler way to do it if you have the binary image with white blobs

    st = regionprops(my_binary_image, 'BoundingBox', 'Area' );
    for ii= 1 : length(st)
        Areai(ii)= st(ii).Area;
    end
    largest_blob_id= find(Areai==max(Areai)); 
imshow(my_binary_image) 
rectangle('Position'[st(largest_blob_id).BoundingBox(1),st(largest_blob_id).BoundingBox(2),st(largest_blob_id).BoundingBox(3),st(largest_blob_id).BoundingBox(4)], 'EdgeColor','r','LineWidth',2 )

  1 Comment

That would be good if he wanted to draw the box around only the largest blob instead of drawing "N rectangles for N objects". An even shorter way would be to get rid of the for loop like this:

st = regionprops(my_binary_image, 'BoundingBox', 'Area' );
[maxArea, indexOfMax] = max([st.Area]);
rectangle('Position'[st(indexOfMax).BoundingBox(1),st(indexOfMax).BoundingBox(2),st(indexOfMax).BoundingBox(3),st(indexOfMax).BoundingBox(4)], 'EdgeColor','r','LineWidth',2 )

Log in to comment.


Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!