how can get coordinate of left and top and bottom and right object of binary Image?

hi everyone I have an Image that is binary...I want to imcrop a segment of image that contain all of objects. but I want to do this in a way that the rect that I choose be smallest. I think if I have the coordinates of the objects that is in( left and top) of Img and (bottom and right) I can do this. Can you help me? Is there any way?
I mean object that I use a red circle around them in this image.
thanks

 Accepted Answer

stats = regionprops(YourImage, 'BoundingBox');
boxes = vertcat(stats.BoundingBox);
lefts = boxes(:,1);
rights = lefts + boxes(:,3);
tops = boxes(:,2);
bottoms = tops + boxes(:,4);
upperleft = [min(lefts), min(tops)];
lowerright = [max(rights), max(bottoms)];
cropat = [upperleft, (lowerright - upperleft)];

3 Comments

thanks dear Walter Roberson I want to result be an image like this:
but when I use this code my result is like this:
Can you help me?
It's just indexing to extract it!
croppedImage = binaryImage(upperLeft(2):lowerRight(2), upperLeft(1):lowerRight(1));
thanks @Image Analyst and @Walter Roberson. excuse me I am beginner. I really appreciate you for your help.

Sign in to comment.

More Answers (0)

Asked:

on 27 May 2015

Commented:

on 28 May 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!