I am trying to detect images of CDs from a database of images. I figured that I would be able to use a Circle Hough Transform on each image, and select ones which contain concentric circles with a similar centre.
I have tried using the HoughCircles method in EMGU, which works fine if the circles are not in the centre of the outer circle, but does not work if they are. Is this a limitation of the Hough Transform itself, or is it just a problem with the minDist limit of the implementation?
Using the following parameters (I have fiddled extensively) on the following 2 images:
Gray cannyThresh = new Gray(180);
Gray accumulatorThresh = new Gray(300);
int dp = 3;
double minDist = 0.0000001 //Ideally higher, but ok for illustrating this point
CircleF[] circles = gray.HoughCircles(cannyThresh, accumulatorThresh, dp, minDist, 0, 0)[0]
Offset inner circle (works fine):
Central inner circle (fails to detect outer circle properly, presumably because of the closeness of the centre to the inner circle?)
Is there anything I can do to detect circles whether or not they share a similar centre?