MATLAB Answers

How to calculate area in a binary image?

13 views (last 30 days)
I have two questions to ask:
1) How to calculate area at the white region in binary image?
2) How to convert the answer of area unit that get from matlab into cm^2 or mm^2 (SI UNIT)?
here I attach the original image and binary image (this image is marine growth on the fiberglass plate)

  0 Comments

Sign in to comment.

Accepted Answer

Deepak Meena
Deepak Meena on 22 Sep 2020
Hi Asmalina,
1) To find the area in pixel size we just need to find the number of white pixel which would be
area = bwarea(bw);%bw is your binary threshold image
The unit would be pixel
2) To find the area in real world units , you need to find out how big one pixel is in appropraite units, if you working with DICOM image refer to this answer.
Another way is we can find the percentage of white area so if you have the plate area , you can find out the actual white area then.
to find out the percentage area:
percentageWhite = nnz(bw) / numel(bw);

  5 Comments

Show 2 older comments
Asmalina Mohamed Saat
Asmalina Mohamed Saat on 24 Sep 2020
thank you.. another queations..
I want to interpret above image by image processing (enhancement then segmentation) and then will calculate the area.. I want to ask your opinion which one the better way... either to convert the image(tiff) to DICOM before I start the processing or convert the image before I want to calculate the area ( to get area in SI unit)??
Image Analyst
Image Analyst on 25 Sep 2020
The file format on disk doesn't matter (though hopefully it's not a lossy bad format like JPG). Once it's read into MATLAB, it's just a regular numerical array. It doesn't matter what format it was on disk before that. So you either have the calibration data in the metadata of the image, in which case you can simply start using it, or you don't which means you'll have to create it, such as by drawing a known distance on the image.
Asmalina Mohamed Saat
Asmalina Mohamed Saat on 1 Oct 2020
i have another questions;
1)can I used this way to get the distance or area in real world units (SI unit)?
calibrationFactor = length of the image in cm/length of the image in pixel;
distanceInCm = distanceInPixels * calibrationFactor;
areaInSquareCm = areaInPixels * calibrationFactor ^ 2
2) what is distanceInPixels, is it same value with length of the image in pixel?
3) is it areaInPixels is the value i get after i used this formula
(area = bwarea(bw);%bw is your binary threshold image)?

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 22 Sep 2020
See my attached spatial calibration demo.

  12 Comments

Show 9 older comments
Image Analyst
Image Analyst on 9 Oct 2020
Yes the units will now be calibrated so the units will now be square cm instead of pixels.
Asmalina Mohamed Saat
Asmalina Mohamed Saat on 13 Oct 2020
and number of white pixel?, it's will be same unit with total number of pixel (square cm) or only in cm?
Image Analyst
Image Analyst on 13 Oct 2020
The number of white pixels is, of course, unitless. It's just simply a count, like 235 or 14983 or whatever. It can have an area in pixels or square cm but the count is obviously just a number and has no units at all.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!