Function: imfindcircles detects false circles.
4 visualizaciones (últimos 30 días)
Meghana Dinesh el 3 de Abr. de 2015
I have come across this a few times. The function imfindcircles detects false circles (like at the corners shown below) even when there is no pixel intensity variation at those places. What could the reason be? How can I avoid this? Are there any other suitable methods to find circles apart from this?
I have attached an example image.
This is my code:
A = imread('synthetic_img3.png');
BW1 = bwmorph(im2bw(A),'close');
[centers,radii] = imfindcircles(BW1,[5,500]);
The resulting output:
Image Analyst el 3 de Abr. de 2015
If you want to segment out the small circles, you could also use thresholding and size filtering (use imclearborder and bwareaopen) instead of imfindcircles(). Then you could do things like find area, perimeter, location, etc. with regionprops().
Más respuestas (1)
Anand el 3 de Abr. de 2015
Looks like the sensitivity is too high. I reduced the sensitivity from the default (0.85) to 0.8 and that helped get rid of the spurious circles.
[center, radii] = imfindcircles(BW1,[5 500],'Sensitivity',0.8);