CalibrateWorldPlane_Multigrid


Finds the image to world plane transformation parameters using multiple grids, using sparse world coordinate information.

Applications:Covers cases where a single grid spanning whole working area on a world plane is not feasible. Also useful when high accuracy is desired.

Syntax

C++
C#
Python
 
def CalibrateWorldPlane_Multigrid(
	inImageGrids: list[ list[AnnotatedPoint2D] ],
	inLabeledWorldPoints: list[ list[AnnotatedPoint2D] ],
	outTransform: RectificationTransform,
	/,
	*,
	inCameraModel: AnyCameraModel | None = None,
	inGridSpacing: float | None = None,
	inGridThickness: float = 0.0,
	inInvertedWorldY: bool = False
)
-> (
	outGridWorldPoints: list[ list[AnnotatedPoint2D] ],
	outComputedGridSpacing: float | None,
	outRmsImageError: float,
	outRmsWorldError: float,
	outMaxReprojectionErrors: list[float],
	outReprojectionErrorSegments: list[ list[Segment2D] ],
	outGridRotations: list[float],
	outGridTranslations: list[Vector2D]
)

Parameters

Name Type Range Default Description
Input value inImageGrids list[ list[AnnotatedPoint2D] ] Array of annotated calibration grids.
Input value inLabeledWorldPoints list[ list[AnnotatedPoint2D] ] Sparse array of world coordinate points. Annotations need to correspond to those in the inImageGrid input.
Input value inCameraModel AnyCameraModel | None None For undistortion of inGridImagePoints. If not supplied, the filter will assume that grids came from undistorted images.
Input value inGridSpacing float | None 0.000001 - None World distance between grid indices. Used when spacing cannot be computed from supplied inLabeledWorldPoints.
Input value inGridThickness float 0.0 The world plane will be shifted by given amount in direction perpendicular to the grid to compensate for grid thickness.
Input value inInvertedWorldY bool False Set to true if world coordinate system has right-handed orientation, also known as mathematical or standard.
Output value outTransform RectificationTransform
Output value outGridWorldPoints list[ list[AnnotatedPoint2D] ] For each grid: Array of world coordinates of the calibration grid points.
Output value outComputedGridSpacing float | None World distance between grid indices. NIL when there is no enough information to compute the spacing.
Output value outRmsImageError float RMS reprojection error of inImageGrids onto the image plane, in pixels. This is a partial error characterizing inaccuracies in perspective estimation, excluding the influence of world point labeling.
Output value outRmsWorldError float 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.
Output value outMaxReprojectionErrors list[float] For each grid: Maximum reprojection error of inImageGrids onto the image plane, in pixels. This is a partial error characterizing inaccuracies in perspective estimation, excluding the influence of world point labeling.
Output value outReprojectionErrorSegments list[ list[Segment2D] ] For each grid: Array of segments connecting inImageGrid points to their reprojections. Note that these segments depict only inaccuracies in perspective estimation, excluding inaccuracies due to the world point labeling.
Output value outGridRotations list[float] Grids' rotations on the world plane.
Output value outGridTranslations list[Vector2D] Grids' positions on the world plane.