Function: imfindcircles detects false circles.
4 vues (au cours des 30 derniers jours)
Meghana Dinesh le 3 Avr 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 le 3 Avr 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().
Plus de réponses (1)
Anand le 3 Avr 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);