## Rectangle around the object, Bounding box,

### Felix (view profile)

on 18 Sep 2013
Latest activity Commented on by Image Analyst

on 11 Oct 2017

### Image Analyst (view profile)

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

sukku

### sukku (view profile)

on 30 Mar 2017

I want to find out an region properties of below image

Image Analyst

### Image Analyst (view profile)

on 30 Mar 2017

Use regionprops(). See my Image Segmentation Tutorial where I cover all that code.

### Image Analyst (view profile)

on 18 Sep 2013

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
```

Explorer

on 19 Jan 2014

Sure

Explorer

on 19 Jan 2014
syhem samti

### syhem samti (view profile)

on 19 Nov 2015

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

on 28 Jan 2017

on 28 Jan 2017

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 )```

Image Analyst

### Image Analyst (view profile)

on 28 Jan 2017

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 )
```

### Tiago Almeida (view profile)

on 11 Oct 2017
Edited by Image Analyst

### Image Analyst (view profile)

on 11 Oct 2017

How can i draw the rectangles with the same size using this code?

```labeledImage = bwlabel(A);
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
```

Image Analyst

### Image Analyst (view profile)

on 11 Oct 2017

Instead of having variable widths and heights, like this thisBB(3),thisBB(4), replace that with some fixed widths and heights.

```rectangle('Position', [thisBB(1),thisBB(2), fixedWidth, fixedHeight],...
'EdgeColor','r','LineWidth',2 )
```