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?

 採用された回答

Image Analyst
Image Analyst 2016 年 9 月 6 日

0 投票

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 件のコメント

sheli whitson
sheli whitson 2016 年 9 月 6 日
Thank you Image Analyst.
Eyup Demir
Eyup Demir 2022 年 4 月 11 日
@Image Analyst In the image you attached from @Steve Eddins, two white regions in the middle are merged under one ellipse, because there is a one pixel touching. Is there a way to merge them if there was 2 or 3 pixel between them? I want to be able to control some white regions to be merged based on the closest distance between them.
Walter Roberson
Walter Roberson 2022 年 4 月 11 日
https://www.mathworks.com/help/images/ref/imclose.html
imclose() with a structuring element as large as the distance you want to merge.
Eyup Demir
Eyup Demir 2022 年 4 月 11 日
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 2022 年 4 月 11 日
Sometimes you can reduce this effect by using 4-connected labeling instead of the default 8-connected labeling.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeImage Processing Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by