Largest connected component(circular)
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I need an algorithm to detect the largest connected component which has circular shape in an image. I hope your kind help.
Thank you.
0 commentaires
Réponse acceptée
Sean de Wolski
le 9 Mai 2011
Ibw = imfill(imread('coins.png')>100,'holes'); %example binary image
CC = bwconncomp(Ibw); %connected components
Objsz = cellfun(@numel,CC.PixelIdxList); %size of blobs
[garbage, ObjszOrder] = sort(Objsz,'descend'); %descended sorting
stats = regionprops(CC,'stuff you need to write');
for ii = 1:length(ObjszOrder)
if(iscircularenough(stats(ii)))
%object ii wins!
break
end
end
I've done most of the work for you here. You have to determine what criteria you want to use to test circularity and what you need to extract from regionprops for this. The most common measurement of circularity is perimeter to area. Use wikipedia or the explanation of 'regionprops:equivdiameter' for the correct equation.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!