I have a binary image, how can I count the balck pixels as a group??
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
REZA
el 30 de Oct. de 2016
Respondida: Image Analyst
el 30 de Oct. de 2016
I process a rgb image to gray to binary and use filters to remove noise and get some specific black areas. Now I want to count the areas. How many are there? How can I do that? can anyone help me?
0 comentarios
Respuesta aceptada
Walter Roberson
el 30 de Oct. de 2016
Add a white border around the entire image. Now use regionprops() and ask for EulerNumber
"Returns a scalar that specifies the number of objects in the region minus the number of holes in those objects. "
The number of objects in the region would be 1 (all of the white part together as you have no isolated white areas), so the number you get out would be negative; take 1 minus the number to get the number of black regions.
Or you could invert the binary matrix. After that there would be a number of different approaches, including, for example, asking regionprops for any simple statistic such as Area, and then just counting the number of outputs you get
NumberOfBlackAreas = length( regionprops( ~YourBinaryMatrix, 'Area' ) );
2 comentarios
Walter Roberson
el 30 de Oct. de 2016
cman = imread('cameraman.tif');
YourBinaryImage = cman > 30;
NumberOfBlackAreas = length( regionprops( ~YourBinaryImage, 'Area' ) )
Más respuestas (1)
Image Analyst
el 30 de Oct. de 2016
You can get it by inverting your image and calling bwlabel:
[labeledImage, numRegions] = bwlabel(~binaryImage);
No need to call regionprops() just to get the count, though you might want to if you want to measure other things like areas.
0 comentarios
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!