MATLAB Answers

How to calculate the area of an input image?

73 views (last 30 days)
Elias Unk
Elias Unk on 14 Aug 2017
Commented: Image Analyst on 15 Aug 2019
I want to calculate the area of the FULL binary image the user inputs is it as simple as heightXwidth if so what function does it

Accepted Answer

Star Strider
Star Strider on 14 Aug 2017
Edited: Star Strider on 14 Aug 2017
If it is a binary image (so a 2D array), the numel (link) function will do what you want.
It is equivalent to prod(size(BI)), where ‘BI’ is your binary image.

More Answers (2)

Image Analyst
Image Analyst on 14 Aug 2017
If you want the number of rows and columns of the binary image, you can do this:
[rows, columns] = size(binaryImage);
If you want the number of pixels (sum total, no matter whether black or white), you can do this:
numPixels = row * columns;
or you can use numel():
numPixels = numel(binaryImage);
If you want the area of just the white/1/true pixels, then you can do
foregroundArea = sum(binaryImage(:)); % Result is in pixels.
backgroundArea = numel(binaryImage) - foregroundArea;
Hopefully one of those examples will give you what you want, because we're not 100% sure what you want.
  2 Comments
Image Analyst
Image Analyst on 15 Aug 2019
No, you can find the area directly. See my attached spatial calibration demo.

Sign in to comment.


Jan
Jan on 14 Aug 2017
This sounds like a job for the size() command. But what does "FULL" mean here and how does the user "inputs" the image?
  1 Comment
Elias Unk
Elias Unk on 14 Aug 2017
Yes that partially did it now i need to multiply it's 2 elements how do i get it?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!