Ask an expert. Trust the answer.

Your academic and career questions answered by verified experts

How to get a rectangular subimage from regionprops(Image,'BoundingBox') in Matlab?

Date: 2023-01-04 14:24:05

I have some particles that I've identified in a larger image, and need to parse into smaller images for each particle. I've used the regionprops 'BoundingBox' function, but haven't been successful yet. How can I now make a rectangular subimage of image I using BoundingBox? I can use BoundingBox to draw a rectangle on the original image, but the parameters returned by BoundingBox seem not to be of pixel dimension (x,y, width, height), (x1, y1, x2, y2), etc, which I would expect a bounding box to return. I've written some sample code using coins.png to make it easier for anyone to understand. Can you help me with this? Thanks! 

 

figure(1);
I = imread('coins.png');
bw = im2bw(I, graythresh(I));
bw2 = imfill(bw,'holes');
imshow(bw2);


figure(2);
L = bwlabel(bw2);
imshow(label2rgb(L, @jet, [.7 .7 .7]))

figure(3);
imshow(I);
s = regionprops(L, 'BoundingBox');
rectangle('Position', s(1).BoundingBox);

Answers:

According to the documentation of REGIONPROPS:

BoundingBox is [ul_corner width], where:

  • ul_corner: is in the form [x y z ...] and specifies the upper-left corner of the bounding box

  • width: is in the form [x_width y_width ...] and specifies the width of the bounding box along each dimension

Now you can use IMCROP functions as imcrop(I, rect) where:

rect is a four-element position vector [xmin ymin width height] that specifies the size and position of the crop rectangle.

Thus: 

 

s = regionprops(L, 'BoundingBox');

subImage = imcrop(I, s(1).BoundingBox);
imshow(subImage)

 


Why Matlabhelpers ?

Our Matlab assignment helpers for online MATLAB assignment help service take utmost care of your assignments by keeping the codes simple yet of high-quality. We offer the most reliable MATLAB solutions to students pursuing their Computer Science course from the Monash University, the University of Sydney, the University of New South Wales, the University of Melbourne; to name a few. Approach us today for best Matlab solutions online!

whatsApp order on matlabhelpers.com

telegram order on matlabsolutions.com