how can i calculate the area of the white part of this image?
1 回表示 (過去 30 日間)
古いコメントを表示

3 件のコメント
Image Analyst
2020 年 1 月 6 日
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);
採用された回答
Meg Noah
2020 年 1 月 6 日
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 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!