Back to Adaptive Vision Library website

You are here: Start » Function Reference » Computer Vision » Template Matching » LocateMultipleObjects_Edges2

LocateMultipleObjects_Edges2


Header: AVL.h
Namespace: avl
Module: MatchingPro

Finds all occurrences of a predefined template on an image by comparing object edges.

Applications: Detection of multiple objects whose outlines are sharp and rigid. Often one of the first filters in a program.

Syntax

C++
C#
 
void avl::LocateMultipleObjects_Edges2
(
	const avl::Image& inImage,
	atl::Optional<const avl::ShapeRegion&> inSearchRegion,
	atl::Optional<const avl::CoordinateSystem2D&> inSearchRegionAlignment,
	const avl::EdgeModel2& inEdgeModel,
	int inMinPyramidLevel,
	atl::Optional<int> inMaxPyramidLevel,
	float inEdgeThreshold,
	avl::EdgePolarityMode::Type inEdgePolarityMode,
	avl::EdgeNoiseLevel::Type inEdgeNoiseLevel,
	bool inIgnoreBoundaryObjects,
	float inMinScore,
	float inMinDistance,
	atl::Array<avl::Object2D>& outObjects,
	atl::Optional<atl::Array<atl::Array<avl::Path>>&> outObjectEdges = atl::NIL,
	atl::Optional<int&> outPyramidHeight = atl::NIL,
	atl::Optional<avl::ShapeRegion&> outAlignedSearchRegion = atl::NIL,
	atl::Array<avl::Image>& diagEdgePyramid,
	atl::Array<avl::Image>& diagMatchPyramid,
	atl::Array<atl::Array<float> >& diagScores
)

Parameters

Name Type Range Default Description
Input value
inImage const Image& Image on which object occurrences will be searched
Input value
inSearchRegion Optional<const ShapeRegion&> NIL Region of possible object centers
Input value
inSearchRegionAlignment Optional<const CoordinateSystem2D&> NIL Adjusts the region of interest to the position of the inspected object
Input value
inEdgeModel const EdgeModel2& Model of objects to be searched
Input value
inMinPyramidLevel int 0 - 12 0 Defines the lowest pyramid level at which object position is still refined
Input value
inMaxPyramidLevel Optional<int> 0 - 12 3 Defines the total number of reduced resolution levels that can be used to speed up computations
Input value
inEdgeThreshold float 0.01 - 10.0f Minimum strength of edges used for matching with the model
Input value
inEdgePolarityMode EdgePolarityMode::Type MatchStrictly Defines how edges with reversed polarity will contribute to the object score
Input value
inEdgeNoiseLevel EdgeNoiseLevel::Type High Defines how much noise the objects edges have
Input value
inIgnoreBoundaryObjects bool False Flag indicating whether objects crossing image boundary should be ignored or not
Input value
inMinScore float 0.0 - 1.0 0.7f Minimum score of object candidates accepted at each pyramid level
Input value
inMinDistance float 0.0 - 10.0f Minimum distance between two found objects
Output value
outObjects Array<Object2D>& Found objects
Output value
outObjectEdges Optional<Array<Array<Path>>&> NIL Model edges of the found objects
Output value
outPyramidHeight Optional<int&> NIL Highest pyramid level used to speed up computations
Output value
outAlignedSearchRegion Optional<ShapeRegion&> NIL Transformed input shape region
Diagnostic input
diagEdgePyramid Array<Image>& Image edges used for matching at each pyramid level
Diagnostic input
diagMatchPyramid Array<Image>& Candidate object locations found at each pyramid level
Diagnostic input
diagScores Array<Array<float> >& Scores of the found objects at each pyramid level

Optional Outputs

The computation of following outputs can be switched off by passing value atl::NIL to these parameters: outObjectEdges, outPyramidHeight, outAlignedSearchRegion.

Read more about Optional Outputs.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.