Back to Aurora Vision Library website

You are here: Start » Function Reference » Computer Vision » HandEyeCalibration Calibration » EstimateAffine3DTransform

EstimateAffine3DTransform


Header: AVL.h
Namespace: avl
Module: Calibration

Computes optimal affine transformation between two 3D point sets.

Syntax

C++
C#
 
void avl::EstimateAffine3DTransform
(
	const atl::Array<avl::Point3D>& inSrcpt,
	const atl::Array<avl::Point3D>& inDstpt,
	float inRansacThreshold,
	float inConfidence,
	avl::Matrix& outTransform,
	atl::Array<int>& outOutliers,
	int& outValue
)

Parameters

Name Type Range Default Description
Input value inSrcpt const Array<Point3D>& List of 3D points in the source coordinate system.
Input value inDstpt const Array<Point3D>& List of 3D points in the destination coordinate system.
Input value inRansacThreshold float 3.0f Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier.
Input value inConfidence float 0.0 - 1.0 0.99f Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.
Output value outTransform Matrix& Estimated affine transformation matrix.
Output value outOutliers Array<int>& Output vector indicating which points are outliers (1-inlier, 0-outlier).
Output value outValue int&

Errors

List of possible exceptions:

Error type Description
DomainError EstimateAffine3DTransform failed to find a solution.
DomainError Input arrays must have at least 4 points in EstimateAffine3DTransform.
DomainError Input arrays must have the same number of points in EstimateAffine3DTransform.