How to count the black pixels in a segmented section of image?

I am using this code to show a segmented image using active contour method.
iteration=50;
img=im2bw(imageArray,threshlod_value); %making it black&white
mask=roipoly(img);
bw=activecontour(img,mask,iteration,'Chan-Vese');
imshow(imageArray)
hold on
visboundaries(bw,'Color','r');
hold off
And the output is this:
I want to calculate the black pixels within the segmented boundary after it is turned black and white. How do I do that?

Answers (1)

activecontour returns a logical array. That means you can count the black pixels by inverting and using sum (or nnz).

2 Comments

@Rik can you pleae elaborate? How do I write it in code?
If you don't share the source image along with your code, why do you expect a turn-key solution?
Inverting a logical array is as simple as using the not operator on your variable. In Matlab you can either use the ~ or you can use the not function.
Counting the number of white pixels is a question of either counting the number of non-zero values (nnz), or using the implicit conversion of true to 1 and using sum.
sum(~bw,'all')
That's it.
If you want more explicit help, remember to share the source data.

Sign in to comment.

Products

Release

R2021a

Asked:

on 4 Aug 2021

Commented:

Rik
on 4 Aug 2021

Community Treasure Hunt

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

Start Hunting!