[][src]Function opencv::imgproc::hough_circles

pub fn hough_circles(
    image: &dyn ToInputArray,
    circles: &mut dyn ToOutputArray,
    method: i32,
    dp: f64,
    min_dist: f64,
    param1: f64,
    param2: f64,
    min_radius: i32,
    max_radius: i32
) -> Result<()>

Finds circles in a grayscale image using the Hough transform.

The function finds circles in a grayscale image using a modification of the Hough transform.

Example: : @include snippets/imgproc_HoughLinesCircles.cpp

Note: Usually the function detects the centers of circles well. However, it may fail to find correct radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if you know it. Or, you may set maxRadius to a negative number to return centers only without radius search, and find the correct radius using an additional procedure.

Parameters

  • image: 8-bit, single-channel, grayscale input image.
  • circles: Output vector of found circles. Each vector is encoded as 3 or 4 element floating-point vector inline formula or inline formula .
  • method: Detection method, see #HoughModes. Currently, the only implemented method is #HOUGH_GRADIENT
  • dp: Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height.
  • minDist: Minimum distance between the centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed.
  • param1: First method-specific parameter. In case of #HOUGH_GRADIENT , it is the higher threshold of the two passed to the Canny edge detector (the lower one is twice smaller).
  • param2: Second method-specific parameter. In case of #HOUGH_GRADIENT , it is the accumulator threshold for the circle centers at the detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first.
  • minRadius: Minimum circle radius.
  • maxRadius: Maximum circle radius. If <= 0, uses the maximum image dimension. If < 0, returns centers without finding the radius.

See also

fitEllipse, minEnclosingCircle

C++ default parameters

  • param1: 100
  • param2: 100
  • min_radius: 0
  • max_radius: 0