CVB.Net 15.0
Metric Class Reference

Routines calibrating laser triangulation systems. More...

Static Public Member Functions

static LaserPlaneHomographyCalibrator3D CalibratorFromAqs12Piece (ImagePlane rangeMapPlane, AQS12RangeMapSegmentor segmentor, CalibrationConfiguration config, out Point3Dd[] residuals)
 Creates an intrinsic and extrinsic calibrator from the given rangeMapPlane of an AQS12 calibration piece. More...
 
static LaserPlaneHomographyCalibrator3D CalibratorFromAqs12Piece (ImagePlane rangeMapPlane, AQS12RangeMapSegmentor segmentor, CalibrationConfiguration config, out Point3Dd[] residuals, Rect aoi)
 Creates an intrinsic and extrinsic calibrator from the given rangeMapPlane of an AQS12 calibration piece. More...
 
static Tuple< AffineMatrix3D, AffineTransformationParameters?> CalculateCorrectionOfLaserPlaneInclinationFromAqs12Piece (DensePointCloud cloud, AQS12DensePointCloudSegmentor segmentor, CalibrationConfiguration config, out Point3Dd[] residuals)
 Calculates an extrinsic calibration and the correction for the laser plane inclination (affine transformation) from the given cloud of an AQS12 calibration piece. More...
 
static Tuple< AffineMatrix3D, AffineTransformationParameters?> CalculateCorrectionOfLaserPlaneInclinationFromAqs12Piece (DensePointCloud cloud, AQS12DensePointCloudSegmentor segmentor, CalibrationConfiguration config, out Point3Dd[] residuals, Rect aoi)
 Calculates an extrinsic calibration and the correction for the laser plane inclination (affine transformation) from the given cloud of an AQS12 calibration piece. More...
 
static Tuple< AffineMatrix3D, AffineTransformationParametersCalculateRigidBodyTransformationFromAqs12Piece (DensePointCloud cloud, AQS12DensePointCloudSegmentor segmentor, AQS12Piece piece, out Point3Dd[] residuals)
 Calculates the rigid body transformation from the given cloud of an AQS12 calibration piece. More...
 
static Tuple< AffineMatrix3D, AffineTransformationParametersCalculateRigidBodyTransformationFromAqs12Piece (DensePointCloud cloud, AQS12DensePointCloudSegmentor segmentor, AQS12Piece piece, out Point3Dd[] residuals, Rect aoi)
 Calculates the rigid body transformation from the given cloud of an AQS12 calibration piece. More...
 
static unsafe Tuple< AffineMatrix3D, AffineTransformationParameters, Point3Dd[]> CalculateRigidBodyTransformation (Point3Dd[] referencePoints, Point3Dd[] measuredPoints, bool calculateResiduals=true)
 Calculates a rigid body transformation (rotation matrix and translation) from given referencePoints and measuredPoints . More...
 
static unsafe Tuple< AffineMatrix3D, AffineTransformationParameters?, Point3Dd[]> CalculateCorrectionOfLaserPlaneInclination (Point3Dd[] referencePoints, Point3Dd[] measuredPoints, CalibrationConfiguration.ExtrinsicCalibrationModel model=CalibrationConfiguration.ExtrinsicCalibrationModel.SpecificTransformationParameters, bool estimateEncoderStep=true, bool calculateResiduals=true)
 Calculates an extrinsic calibration and the correction for the laser plane inclination. More...
 
static unsafe AffineMatrix3D CalculateAffineTransformation (Point3Dd[] referencePoints, Point3Dd[] measuredPoints)
 Calculates an affine transformation from the given referencePoints and measuredPoints . More...
 

Detailed Description

Routines calibrating laser triangulation systems.

Member Function Documentation

◆ CalculateAffineTransformation()

static unsafe AffineMatrix3D CalculateAffineTransformation ( Point3Dd[]  referencePoints,
Point3Dd[]  measuredPoints 
)
static

Calculates an affine transformation from the given referencePoints and measuredPoints .

This function estimates translation and the individual elements of an affine matrix. If you rather like to estimate the specific transformation parameters rotation, scale and shear (which is recommended for laser triangulation systems), please use function CalculateCorrectionOfLaserPlaneInclination instead.

Parameters
referencePointsReference points of the body. (At least 4)
measuredPointsCorresponding measured points of the body. (At least 4)
Returns
Affine matrix containing the rotation matrix elements and translation.
Exceptions
ArgumentNullExceptionWhen measuredPoints or referencePoints is null.
CvbExceptionWhen an error during rigid body calculation occurs.
ArgumentExceptionWhen measuredPoints or referencePoints have less than 4 points, or not the same amount of points.

◆ CalculateCorrectionOfLaserPlaneInclination()

static unsafe Tuple< AffineMatrix3D, AffineTransformationParameters?, Point3Dd[]> CalculateCorrectionOfLaserPlaneInclination ( Point3Dd[]  referencePoints,
Point3Dd[]  measuredPoints,
CalibrationConfiguration.ExtrinsicCalibrationModel  model = CalibrationConfiguration.ExtrinsicCalibrationModel.SpecificTransformationParameters,
bool  estimateEncoderStep = true,
bool  calculateResiduals = true 
)
static

Calculates an extrinsic calibration and the correction for the laser plane inclination.

Parameters
referencePointsReference points of the body.
measuredPointsCorresponding measured points of the body.
modelExtrinsic calibration model.
estimateEncoderStepTrue if encoder step (scale in Y) should be estimated. Note: If AffineMatrix is selected as extrinsic calibration model, the encoder step is always estimated.
calculateResidualsTrue if residuals should be calculated.
Returns
Affine transformation and transformation parameters and optional array with residuals (if calculateResiduals = true) .
Exceptions
ArgumentNullExceptionWhen measuredPoints or referencePoints is null.
CvbExceptionWhen an error during calculation occurs.
ArgumentExceptionWhen measuredPoints or referencePoints contain to few points, or not the same amount of points.

◆ CalculateCorrectionOfLaserPlaneInclinationFromAqs12Piece() [1/2]

static Tuple< AffineMatrix3D, AffineTransformationParameters?> CalculateCorrectionOfLaserPlaneInclinationFromAqs12Piece ( DensePointCloud  cloud,
AQS12DensePointCloudSegmentor  segmentor,
CalibrationConfiguration  config,
out Point3Dd[]  residuals 
)
static

Calculates an extrinsic calibration and the correction for the laser plane inclination (affine transformation) from the given cloud of an AQS12 calibration piece.

For this function, create an extrinsic calibration configuration object using FromAQS12PieceExtrinsic() and change the extrinsic calibration Model if desired.

Parameters
cloudThe point cloud.
segmentorThe segmentor.
configThe calibration configuration.
residualsResiduals.
Returns
Affine transformation and - if SpecificTransformationParameters is selected as extrinsic calibration model - optional transformation parameters.
Exceptions
ArgumentNullExceptionWhen cloud is null.

◆ CalculateCorrectionOfLaserPlaneInclinationFromAqs12Piece() [2/2]

static Tuple< AffineMatrix3D, AffineTransformationParameters?> CalculateCorrectionOfLaserPlaneInclinationFromAqs12Piece ( DensePointCloud  cloud,
AQS12DensePointCloudSegmentor  segmentor,
CalibrationConfiguration  config,
out Point3Dd[]  residuals,
Rect  aoi 
)
static

Calculates an extrinsic calibration and the correction for the laser plane inclination (affine transformation) from the given cloud of an AQS12 calibration piece.

For this function, create an extrinsic calibration configuration object using FromAQS12PieceExtrinsic() and change the extrinsic calibration Model if desired.

Note: The area of interest must be selected on the grid of the dense point cloud. Left, top, right and bottom are indices for row and column.

Parameters
cloudThe point cloud.
segmentorThe segmentor.
configThe calibration configuration.
residualsResiduals.
aoiThe area of interest in the cloud .
Returns
Affine transformation and - if SpecificTransformationParameters is selected as extrinsic calibration model - optional transformation parameters.
Exceptions
ArgumentNullExceptionWhen cloud is null.

◆ CalculateRigidBodyTransformation()

static unsafe Tuple< AffineMatrix3D, AffineTransformationParameters, Point3Dd[]> CalculateRigidBodyTransformation ( Point3Dd[]  referencePoints,
Point3Dd[]  measuredPoints,
bool  calculateResiduals = true 
)
static

Calculates a rigid body transformation (rotation matrix and translation) from given referencePoints and measuredPoints .

Parameters
referencePointsReference points of the body. (At least 4)
measuredPointsCorresponding measured points of the body. (At least 4)
calculateResidualsTrue if residuals should be calculated.
Returns
Affine transformation, transformation parameters and optional array with residuals (if calculateResiduals = true) .
Exceptions
ArgumentNullExceptionWhen measuredPoints or referencePoints is null.
CvbExceptionWhen an error during rigid body calculation occurs.
ArgumentExceptionWhen measuredPoints or referencePoints have less than 3 points, or not the same amount of points.

◆ CalculateRigidBodyTransformationFromAqs12Piece() [1/2]

static Tuple< AffineMatrix3D, AffineTransformationParameters > CalculateRigidBodyTransformationFromAqs12Piece ( DensePointCloud  cloud,
AQS12DensePointCloudSegmentor  segmentor,
AQS12Piece  piece,
out Point3Dd[]  residuals 
)
static

Calculates the rigid body transformation from the given cloud of an AQS12 calibration piece.

Parameters
cloudThe point cloud.
segmentorThe segmentor.
pieceThe AQS12 piece to use.
residualsDifference between the reference points and the result.
Returns
Affine transformation and transformation parameters.
Exceptions
ArgumentNullExceptionWhen cloud is null.

◆ CalculateRigidBodyTransformationFromAqs12Piece() [2/2]

static Tuple< AffineMatrix3D, AffineTransformationParameters > CalculateRigidBodyTransformationFromAqs12Piece ( DensePointCloud  cloud,
AQS12DensePointCloudSegmentor  segmentor,
AQS12Piece  piece,
out Point3Dd[]  residuals,
Rect  aoi 
)
static

Calculates the rigid body transformation from the given cloud of an AQS12 calibration piece.

Note: The area of interest must be selected on the grid of the dense point cloud. Left, top, right and bottom are indices for row and column.

Parameters
cloudThe point cloud.
segmentorThe segmentor.
pieceThe AQS12 piece to use.
residuals
aoiArea of interest in the cloud .
Returns
Affine transformation and transformation parameters.
Exceptions
ArgumentNullExceptionWhen cloud , segmentor or piece is null.
CvbExceptionWhen an error during rigid body transformation calculation occurs.

◆ CalibratorFromAqs12Piece() [1/2]

static LaserPlaneHomographyCalibrator3D CalibratorFromAqs12Piece ( ImagePlane  rangeMapPlane,
AQS12RangeMapSegmentor  segmentor,
CalibrationConfiguration  config,
out Point3Dd[]  residuals 
)
static

Creates an intrinsic and extrinsic calibrator from the given rangeMapPlane of an AQS12 calibration piece.

This function calculates homography and - if set in the calibration configuration object - an extrinsic calibration and the correction for the laser plane inclination (see also ExtrinsicCalibrationModel). Create an intrinsic calibration configuration object using FromAQS12Piece() and change the extrinsic calibration Model if desired. The calibration parameters are saved to a newly created calibrator object.

Parameters
rangeMapPlanePlane of the range map image to work with.
segmentorThe segmentor.
configThe calibration config.
residualsDifference between the reference points and the result.
Returns
The created calibrator.

◆ CalibratorFromAqs12Piece() [2/2]

static LaserPlaneHomographyCalibrator3D CalibratorFromAqs12Piece ( ImagePlane  rangeMapPlane,
AQS12RangeMapSegmentor  segmentor,
CalibrationConfiguration  config,
out Point3Dd[]  residuals,
Rect  aoi 
)
static

Creates an intrinsic and extrinsic calibrator from the given rangeMapPlane of an AQS12 calibration piece.

This function calculates homography and - if set in the calibration configuration object - an extrinsic calibration and the correction for the laser plane inclination (see also ExtrinsicCalibrationModel). Create an intrinsic calibration configuration object using FromAQS12Piece() and change the extrinsic calibration Model if desired. The calibration parameters are saved to a newly created calibrator object.


Parameters
rangeMapPlanePlane of the range map image to work with.
segmentorThe segmentor.
configThe calibration config.
residualsDifference between the reference points and the result.
aoiThe area of interest.
Returns
The created calibrator.
Exceptions
ArgumentNullExceptionWhen segmentor or config is null.