How detect spot white circle on image

2 visualizaciones (últimos 30 días)
Duc Hang
Duc Hang el 6 de Jun. de 2017
Comentada: Rena Berman el 23 de Jun. de 2017
I would like detect spot white are like below image . Hope anyone help . Thanks!

Respuesta aceptada

KSSV
KSSV el 6 de Jun. de 2017
Editada: KSSV el 6 de Jun. de 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

Más respuestas (1)

Image Analyst
Image Analyst el 6 de Jun. de 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