필터 지우기
필터 지우기

I have a binary image, how can I count the balck pixels as a group??

조회 수: 2 (최근 30일)
REZA
REZA 2016년 10월 30일
답변: Image Analyst 2016년 10월 30일
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?

채택된 답변

Walter Roberson
Walter Roberson 2016년 10월 30일
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
REZA
REZA 2016년 10월 30일
Hi, thank you for your reply. Can you please explain a little with some code example...As I am new with matlab..
Walter Roberson
Walter Roberson 2016년 10월 30일
cman = imread('cameraman.tif');
YourBinaryImage = cman > 30;
NumberOfBlackAreas = length( regionprops( ~YourBinaryImage, 'Area' ) )

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2016년 10월 30일
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.

Community Treasure Hunt

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

Start Hunting!

Translated by