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

New to MATLAB?

How to calculate Area ??

Asked by Mariam Sheha

Mariam Sheha (view profile)

on 13 Jun 2013

Hey every body....

I am asking "how can i compute area of the bounding box and convex hull where i had already get it's parameters?"

Thank you

2 Comments

Walter Roberson

Walter Roberson (view profile)

on 13 Jun 2013

When you say "already get it's parameters", could you be more specific about what information you already have?

Mariam Sheha

Mariam Sheha (view profile)

on 13 Jun 2013

FOR EXAMPLE: Bounding Box Parmeters for image: 113.5000 138.5000 407.0000 259.0000

Mariam Sheha

Mariam Sheha (view profile)

3 Answers

Answer by the cyclist

the cyclist (view profile)

on 13 Jun 2013
Edited by the cyclist

the cyclist (view profile)

on 13 Jun 2013
Accepted answer

If you have the vertices of the convex hull, use the polyarea() command.

2 Comments

Mariam Sheha

Mariam Sheha (view profile)

on 13 Jun 2013

thanx alot , but what if i have more than one vertices for that image

(convex hull i calculate: is for segmented image located at bounding box)

Walter Roberson

Walter Roberson (view profile)

on 14 Jun 2013

polyarea() with a single vertex would tell you that you had area 0. Area is not meaningful until you have at least three vertices. polyarea() is somethng you would apply to the array of vertices.

the cyclist

the cyclist (view profile)

Answer by Image Analyst

Image Analyst (view profile)

on 13 Jun 2013

For the bounding boxes, you can simply multiply the last two numbers

area=BoundingBox(3)*BoundingBox(4);

Or you can ask regionprops to calculate the areas of the convex hulls. You just need to pass your binary image into bwconvhull() and then into regionprops

chulls = bwconvhull(binaryImage);
measurements = regionprops(chulls, 'Area', 'BoundingBox');
% Compute the areas of each convex hull:
allAreas = [measurements.Area];
% Compute the area of each bounding box.
boundingBoxes = [blobMeasurements.BoundingBox];
allBBAreas = boundingBoxes(3:4:end) .* boundingBoxes(4:4:end);

3 Comments

Mariam Sheha

Mariam Sheha (view profile)

on 13 Jun 2013

Thanx alot ; Rally your answer is very usefull.... only i wana to ask if you are sure that their is a command named: bwconvhull because it's undefined ?!!

Thank you :)

Image Analyst

Image Analyst (view profile)

on 14 Jun 2013

You must have a really old version - time to upgrade. It's been in there for a few years now.

Mariam Sheha

Mariam Sheha (view profile)

on 14 Jun 2013

o0o0ops ok, i thought that i am updated using Matlab 10, i will try to upgrade it... Thanks for the note :)

Image Analyst

Image Analyst (view profile)

Answer by Walter Roberson

Walter Roberson (view profile)

on 13 Jun 2013

Bounding boxes are usually represented as [x y height width] . In that representation, the area is the height multiplied by the width.

1 Comment

Mariam Sheha

Mariam Sheha (view profile)

on 13 Jun 2013

Thanks alot, i get your point and i tried it manually and it works, so you mean their are no ready function for that..

Walter Roberson

Walter Roberson (view profile)

Contact us