How to cluster a binary image?

2 views (last 30 days)
I have the following image. Now I want to separate the black and white pixel from the image so that I can fit an ellipse to each black pixel area and find the length of the major axis of each ellipse. How can I separate black pixel from the white pixel and fit an ellipse?

Accepted Answer

Image Analyst
Image Analyst on 6 Sep 2016
Basically, here are the steps.
% Invert your image so the black things are white.
binaryImage = grayImage < 128;
% Call bwlabel
[labeledImage, numberOfRegions] = bwlabel(binaryImage);
% Call regionprops
props = regionprops(labeledImage, 'MajorAxisLength', 'Orientation');
It's all shown in Steve's blog:
  5 Comments
Eyup Demir
Eyup Demir on 11 Apr 2022
I think, I found what I was looking for! It is almost-connected-compenent labeling Thank you Steve! https://blogs.mathworks.com/steve/2010/09/07/almost-connected-component-labeling/
Image Analyst
Image Analyst on 11 Apr 2022
Sometimes you can reduce this effect by using 4-connected labeling instead of the default 8-connected labeling.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!