### Method

# Vips Image hough_circle

#### Declaration [src]

    int
    vips_hough_circle (
      VipsImage* in,
      VipsImage** out,
      ...
    )

#### Description [src]

Find the circular Hough transform of an image. `in` must be one band, with non-zero pixels for image edges. `out` is three-band, with the third channel representing the detected circle radius. The operation scales the number of votes by circle circumference so circles of differing size are given equal weight.

The output pixel at (x, y, band) is the strength of the circle centred on (x, y) and with radius (band).

Use `max_radius` and `min_radius` to set the range of radii to search for.

Use `scale` to set how `in` coordinates are scaled to `out` coordinates. A `scale` of 3, for example, will make `out` 1/3rd of the width and height of `in`, and reduce the number of radii tested (and hence the number of bands int `out`) by a factor of three as well.

Optional arguments

- `scale`: `gint`, scale down dimensions by this much
- `min_radius`: `gint`, smallest radius to search for
- `max_radius`: `gint`, largest radius to search for

See also

`vips_hough_line()`.

This method is not directly available to language bindings.

#### Parameters

`out`

  Type: `VipsImage`

  Output image.

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.