Back to Adaptive Vision Library website

You are here: Start » Function Reference » Camera Calibration » DetectCalibrationGrid_Circles


Header: AVL.h
Namespace: avl
Module: Calibration

Detects an arbitrary size symmetric circle pattern on the image.


void avl::DetectCalibrationGrid_Circles
	const avl::Image& inImage,
	atl::Optional<const avl::Region&> inRoi,
	float inCircleRadius,
	float inCircleDetectionThreshold,
	avl::Polarity::Type inCirclePolarity,
	atl::Array<avl::AnnotatedPoint2D>& outImageGrid,
	avl::Region& diagCirclesRegion,
	atl::Array<avl::Point2D>& diagCircleCandidates


Name Type Range Default Description
inImage const Image& Input image
inRoi Optional<const Region&> NIL Range of pixels to be processed
inCircleRadius float 1.0 - Circle radius measured in input image pixels.
inCircleDetectionThreshold float 0.0 - 20.0f Detection threshold (relative to local image patch).
inCirclePolarity Polarity::Type Any Circle intensity with respect to background.
outImageGrid Array<AnnotatedPoint2D>& Detected grid
diagCirclesRegion Region& Image after thresholding, this is the circle detector input.
diagCircleCandidates Array<Point2D>& Detected circle centers, before the grid construction step.


Circles may have holes. This can utilized, for example, for designating some specific coordinates on the calibration board. Note that the hole diameter must be less than a half of the circle diameter.


Input image for DetectCalibrationGrid_Circles executed with inCircleRadius = 5

Detected calibration points


The circle pattern must be a rectangular grid, with equal spacing in both dimensions.


List of possible exceptions:

Error type Description
DomainError Region of interest exceeds an input image.

See Also