You are here: Start » AVL.NET » AVL.DetectMultipleCircles


Finds circles of a given radius in the input image.



public static void DetectMultipleCircles
	AvlNet.Image inImage,
	NullableRef<AvlNet.Region> inRoi,
	float inRadius,
	float inMaxOverlap,
	float inMinScore,
	float inEdgeThreshold,
	IList<AvlNet.HoughCircle> outCircles,
	AvlNet.Image diagGradientMagnitudeImage,
	AvlNet.Image diagScoreImage


Name Type Range Default Description
inImageAvlNet.ImageInput image.
inRoiAvlNet.NullableRef<AvlNet.Region>Input region of interest. Default value: atl::NIL.
inRadiusfloat<0.0f, INF>10.0fCircles' radius. Default value: 10.0f.
inMaxOverlapfloat<0.0f, 1.0f>0.1fMaximum accepted overlapping coefficient. Default value: 0.1f.
inMinScorefloat<0.0f, INF>20.0fMinimum matching score. Default value: 20.0f.
inEdgeThresholdfloat10.0fMinimum accepted edge magnitude. Default value: 10.0f.
outCirclesSystem.Collections.Generic.IList<AvlNet.HoughCircle>Found circles.
diagGradientMagnitudeImageAvlNet.ImageVisualized gradients magnitude of an input image.
diagScoreImageAvlNet.ImageCalculated score for each pixel of an input image.


The operation detects circular objects of given radius (in pixels) in the inImage using the Hough Transform approach. The output array is ordered from best matching to worst matching results.

The parameter inMaxOverlap defines how much the detected circles can overlap. The value of 0 means no overlapping is allowed, and also that each circle must be fully contained in the search ROI, whereas the value of 1 allows full overlapping.


DetectMultipleCircles performed on the sample image.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.

Hardware acceleration settings may be manipulated with Settings class.

Function Overrides

See also