how can i calculate the area of the white part of this image?
1 view (last 30 days)
Show older comments

3 Comments
Image Analyst
on 6 Jan 2020
Didn't we do this already? That image looks familiar. I believe I remember telling you to get a binary image
binaryImage = grayImage > lowThreshold & grayImage <= highThreshold;
Then count the number of pixels in the mask with nnz(), bwarea(), or sum():
numberOfPixels = nnz(binaryImage);
Accepted Answer
Meg Noah
on 6 Jan 2020
Here are two ways:
[imarray,cmap] = imread('01NT.bmp');
im225 = zeros(size(imarray));
im255 = zeros(size(imarray));
im225(imarray==225) = 1;
im255(imarray==255) = 1;
fprintf(1,'Number of white pixels == 255: %d\n',sum(im255(:)));
fprintf(1,'Number of grey pixels == 225: %d\n',sum(im225(:)));
fprintf(1,'\nBlob-by-blob area of white (value=255)\n');
a = bwlabel(im255,8);
stats = regionprops(a,im255,'All');
totalArea = 0;
for iblob = 1:length(stats)
fprintf(1,'Area(%d) = %d\n',iblob,stats(iblob).Area);
totalArea = totalArea + stats(iblob).Area;
end
fprintf(1,'Number of pixels == 255 (white): %d\n\n',totalArea);
fprintf(1,'\nBlob-by-blob area of grey (value=225)\n');
a = bwlabel(im225,8);
stats = regionprops(a,im255,'All');
totalArea = 0;
for iblob = 1:length(stats)
fprintf(1,'Area(%d) = %d\n',iblob,stats(iblob).Area);
totalArea = totalArea + stats(iblob).Area;
end
fprintf(1,'Number of pixels == 255 (grey): %d\n\n',totalArea);
2 Comments
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!