
How to cluster a binary image?
2 views (last 30 days)
Show older comments
sheli whitson
on 6 Sep 2016
Commented: Image Analyst
on 11 Apr 2022
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?

0 Comments
Accepted Answer
Image Analyst
on 6 Sep 2016
See my image processing tutorial: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
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
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
on 11 Apr 2022
Sometimes you can reduce this effect by using 4-connected labeling instead of the default 8-connected labeling.
More Answers (0)
See Also
Categories
Find more on Image Segmentation and Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!