Back to FabImage Library website

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

CalibrateWorldPlane_Multigrid_Deprecated


Header:FIL.h
Namespace:fil

Finds the image to world plane transformation matrix using multiple grids.

Syntax

C++
 
void fil::CalibrateWorldPlane_Multigrid_Deprecated
(
	const ftl::Array<ftl::Array<fil::Point2D> >& inGridImagePoints,
	const ftl::Array<ftl::Array<fil::Point2D> >& inGridIds,
	const ftl::Array<ftl::Array<fil::Point2D> >& inLabeledWorldPoints,
	const ftl::Array<ftl::Array<fil::Point2D> >& inLabeledGridIds,
	const ftl::Optional<const fil::AnyCameraModel&>& inCameraModel,
	const ftl::Optional<float>& inGridSpacing,
	bool inInvertedWorldY,
	fil::RectificationTransform& outTransform,
	ftl::Optional< ftl::Array<ftl::Array<fil::Point2D> >& > outGridWorldPoints = ftl::NIL,
	ftl::Optional< ftl::Conditional<float>& > outComputedGridSpacing = ftl::NIL,
	ftl::Optional< float& > outRmsImageError = ftl::NIL,
	ftl::Optional< float& > outRmsWorldError = ftl::NIL,
	ftl::Optional< ftl::Array<float>& > outMaxReprojectionErrors = ftl::NIL,
	ftl::Optional< ftl::Array<ftl::Array<fil::Segment2D> >& > outReprojectionErrorSegments = ftl::NIL,
	ftl::Optional< ftl::Array<float>& > outGridRotations = ftl::NIL,
	ftl::Optional< ftl::Array<fil::Vector2D>& > outGridTranslations = ftl::NIL
)

Parameters

Name Type Default Description
inGridImagePoints const Array<Array<Point2D> >& For each grid: Array of 2D points of the calibration pattern, in the picture.
inGridIds const Array<Array<Point2D> >& For each grid: Array of 2D indices of the calibration pattern, corresponding to the inGridImagePoints.
inLabeledWorldPoints const Array<Array<Point2D> >& For each grid: Sparse array of world coordinate points.
inLabeledGridIds const Array<Array<Point2D> >& For each grid: Array of 2D indices of the calibration pattern, corresponding to the inLabeledWorldPoints.
inCameraModel const Optional<const AnyCameraModel&>& NIL For undistortion of inGridImagePoints. If not supplied, the filter will assume undistorted inGridImagePoints.
inGridSpacing const Optional<float>& NIL World distance between grid indices. Used when spacing cannot be computed from supplied inLabeledWorldPoints.
inInvertedWorldY bool False Set to true if the world coordinate system has inverted y axis.
outTransform RectificationTransform&
outGridWorldPoints OptionalArray<Array<Point2D> >& > NIL For each grid: Array of 2D points of the calibration pattern, in the world coordinate plane.
outComputedGridSpacing OptionalConditional<float>& > NIL World distance between grid indices. NIL when there is no enough information to compute the spacing.
outRmsImageError Optional< float& > NIL RMS reprojection error of inGridIds onto the image plane, in pixels. This is a partial error characterizing inaccuracies in perspective estimation, excluding the influence of world point labeling.
outRmsWorldError Optional< float& > NIL RMS reprojection error of inLabeledGridIds onto the world plane, in world units. This is a partial error characterizing inaccuracies with labeling of world coordinate system, excluding perspective estimation.
outMaxReprojectionErrors OptionalArray<float>& > NIL For each grid: Maximum reprojection error of inGridIds onto the image plane, in pixels. This is a partial error characterizing inaccuracies in perspective estimation, excluding the influence of world point labeling.
outReprojectionErrorSegments OptionalArray<Array<Segment2D> >& > NIL For each grid: Array of segments connecting inGridImagePoints to reprojected inGridIds. Note that these segments depict only inaccuracies in perspective estimation, excluding inaccuracies due to the world point labeling.
outGridRotations OptionalArray<float>& > NIL Grids' rotations on the world plane.
outGridTranslations OptionalArray<Vector2D>& > NIL Grids' positions on the world plane.

Optional Outputs

The computation of following outputs can be switched off by passing value ftl::NIL to these parameters: outGridWorldPoints, outComputedGridSpacing, outRmsImageError, outRmsWorldError, outMaxReprojectionErrors, outReprojectionErrorSegments, outGridRotations, outGridTranslations.

Read more about Optional Outputs.

Errors

List of possible exceptions:

Error type Description
DomainError Array inGridImagePoints and inGridIds sizes differ
DomainError Array inGridImagePoints and inLabeledGridIds sizes differ
DomainError Array inGridImagePoints and inLabeledWorldPoints sizes differ
DomainError size at index 0
DomainError size at index 0