How detect spot white circle on image

2 vues (au cours des 30 derniers jours)
Duc Hang
Duc Hang le 6 Juin 2017
Commenté : Rena Berman le 23 Juin 2017
I would like detect spot white are like below image . Hope anyone help . Thanks!
  1 commentaire
Rena Berman
Rena Berman le 23 Juin 2017
(Answers Dev) Restored edit

Connectez-vous pour commenter.

Réponse acceptée

KSSV
KSSV le 6 Juin 2017
Modifié(e) : KSSV le 6 Juin 2017
I = imread('Screen Shot 2017-06-06 at 3.54.58 PM.png') ;
im = imclearborder(im2bw(I));
im_fill = imfill(im, 'holes');
s = regionprops(im_fill, 'Area', 'PixelList');
[~,ind] = max([s.Area]);
pix = sub2ind(size(im), s(ind).PixelList(:,2), s(ind).PixelList(:,1));
out = zeros(size(im));
out(pix) = im(pix);
% imshow(out);
[y,x] = find(out) ;
idx = boundary(x,y) ;
% idx = convhull(x,y) ;
imshow(I)
hold on
plot(x(idx),y(idx),'r','linewidth',3)
If boundary doesn't work, use convexhull
  1 commentaire
KSSV
KSSV le 6 Juin 2017
Attach only original image ...

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 6 Juin 2017
KSSV's code finds the largest blob that is not touching the border, whereas you actually want roundish objects.
Like I said in your duplicate post, You could use my code for circularity. Or you could also look for Solidities close to 1, or get the BoundingBox and look for aspect ratios close to 1.

Community Treasure Hunt

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

Start Hunting!

Translated by