Search code examples
image-processingcorrelationaforgeconvolutionhough-transform

Concentric Circle Detection in image using Hough Transform in AForge.NET


I'm trying to detect concentric circles in an image of a paper target using AForge.NET. I can clean up the image using Threshold(88) or Edges, but can't work out how to detect the circles.

Original image size = 450 x 479 px

Steps so far:

  1. convert image to greyscale
  2. use Edge to find circles (Threshold(88) also works)
  3. Run HoughTransform with radius of = 100, output using 'ToBitmap'
  4. Count the circles found (I get 69750 circles detected)
  5. Draw the 20 most intensive circles

I don't have a background in image processing; any guidance very much appreciated.

Original Image Greyscale Edges Hough Transform Draw circles


Solution

  • The Solution, in this case, was not to use a Hough Transform at all.

    1. I used a threshold and blob detection to find the outer circle which gave me the centre.
    2. Then an horizontal-intensity histogram to find the peaks that correlate with each ring
    3. Then compare this against the peaks from a vertical-intensity histogram, to get the radius of each ring
    4. Then some sanity checking.

    I haven't got the peak detection working yet, but it's in progress and it all looks like working.