72 views (last 30 days)

Hi

Regarding the image below:

I want to calculate the length of the large black region, i.e., the perimeter of this region plus the length of the small white objects within it. How may I do so?

I know there are some functions for calculating the perimeter, but how to include the small objects?

Also please note that this is a binary image, but I can also do the calculations on grayscale image, if needed.

Thanks so much.

Steven

Image Analyst
on 22 Dec 2013

Something is wrong with that image. I saved it but when I read it in it looks totally different. Anyway, you need to get the perimeters of everything with regionprops and sum them

measurements = regionprops(binaryImage, 'Perimeter');

allPerimeters = [measurements.Perimeter];

theSum = sum(allPerimeters);

But make sure the big perimeter is the inside one and not the outer edge of the image. If it is, then invert the image and fill holes before calling regionprops

binaryImage = imfill(~binaryImage, 'holes');

measurements = regionprops(binaryImage, 'Perimeter');

theBigPerimeter = measurements.Perimeter;

I can't really test it because, like I said, it seems the image is messed up.

Image Analyst
on 22 Dec 2013

Opportunities for recent engineering grads.

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

Start Hunting!
## 0 Comments

Sign in to comment.