Question

I'm currently working with Hough Circles. Are there any methods to automatically find suitable parameters for the Hough circles? Right now, I am just manually changing values until it draws the circles correctly.

Was it helpful?

Solution

I think you should also look at http://www.cse.yorku.ca/~kosta/CompVis_Notes/isophote_curvature.pdf and http://www.science.uva.nl/research/publications/2008/ValentiCVPR2008/CVPR%2008.pdf This will help you find isophote curvature, values for your image. Curvature is inverse of curve radius at a point. After you calculate isophote curvature values for every pixel, you'll have range of radius values you should check.

OTHER TIPS

If you are able to evaluate the output of Hough Circles automatically, a brute force search should be enough for most of the cases. Just loop over all possibilities for all parameters and take the values that gave the best result.

If you need to speed things up, you can reduce the space search by locking some parameters to values you already know work fine or reducing its range.

Another option for more accurate searching is using a Genetic Algorithm.

If you have an idea what size circles you are looking for, then it would be best to set min_radius and max_radius accordingly. Otherwise, it will return anything circular of any size and your total purpose is destroyed

Parameters 1 and 2 don't affect accuracy as such, more reliability. Param 1 will set the sensitivity; how strong the edges of the circles need to be. Too high and it won't detect anything, too low and it will find too much clutter. Param 2 will set how many edge points it needs to find to declare that it's found a circle. Again, too high will detect nothing, too low will declare anything to be a circle. The ideal value of param 2 will be related to the circumference of the circles.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top