how do I calculate the area of the black pixels?

1 view (last 30 days)
SvenvdB on 25 Jun 2021
Commented: SvenvdB on 25 Jun 2021
I have a pixture and i want to calculate the surface of the black area in the middle. I know the size of the small square's (10x10mm). and the distance between them is 18cm.
I have a script that outputs the amount of black pixels and white pixels but i would like to to output the surface area in milimeters.
Is this possible to do? I dont have much experience with matlab so does anyone have any tips on how to do it if it is possible black pixels: 873454
white pixels: 2640296

Walter Roberson on 25 Jun 2021
BW = imbinarize(rgb2gray(img));
imshow(BW) format long g
props = regionprops(~BW, 'Area');
sA = sort([props.Area])
sA = 1×5
930 997 1051 1087 92901
mA = mean(sA(1:end-1))
mA =
1016.25
relA = sA(end)/mA
relA =
91.4154981549815
small_area = 10*10;
absA = relA * small_area
absA =
9141.54981549815
The small black squares are not all the same area, so I took the mean() area as being representative.
The large square is 91.4 times larger than the (mean) smaller square
The smaller square is 10x10 = 100 mm^2 so the larger one is 9141.5 mm^2
SvenvdB on 25 Jun 2021
On the normal jpg they are al the same size. but the picture above i took with a camera and thats why the are different. thanks for the explaination, helped alot.

R2021a

Community Treasure Hunt

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

Start Hunting!