F_VN_CalibrateCameraExp
Compute the camera parameters (intrinsic + extrinsic) by evaluating images containing a calibration pattern (circles). The extrinsic parameters are computed for the first image in the array. (expert function)
Can use available TwinCAT Job Tasks for executing parallel code regions.
Syntax
Definition:
FUNCTION F_VN_CalibrateCameraExp : HRESULT
VAR_INPUT
pSrcImages : PVOID;
nSrcArraySize : UINT;
ipReferencePoints : ITcVnContainer;
END_VAR
VAR_IN_OUT
aCameraMatrix : TcVnMatrix3x3_LREAL;
aDistortionCoefficients : TcVnArray8_LREAL;
aRotationMatrix : TcVnMatrix3x3_LREAL;
aTranslationVector : TcVnVector3_LREAL;
fReprojError : LREAL;
stBlobDetectionParams : TcVnParamsBlobDetection;
stCalibrationOptions : TcVnCameraCalibrationOptions;
END_VAR
VAR_INPUT
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
pSrcImages |
PVOID |
Pointer to an array of source images, each containing the same calibration pattern (1 channel, USINT elements) |
nSrcArraySize |
UINT |
pSrcImages array size |
ipReferencePoints |
Reference calibration pattern point positions (ContainerType_Vector_TcVnPoint3_REAL) | |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
In/Outputs
Name |
Type |
Description |
---|---|---|
aCameraMatrix |
Returns the camera matrix | |
aDistortionCoefficients |
Returns the lens distortion coefficients [k1, k2, p1, p2, k3, k4, k5, k6] | |
aRotationMatrix |
Returns the rotation matrix | |
aTranslationVector |
Returns the translation vector | |
fReprojError |
LREAL |
Returns the reprojection error |
stBlobDetectionParams |
Parameters for the internally used F_VN_DetectBlobs function | |
stCalibrationOptions |
Calibration options |
Further information
The function F_VN_CalibrateCameraExp
is the expert version of F_VN_CalibrateCamera. It enables the use of several input images for the calibration of the camera.
Parameter
Input images
The input images for the camera calibration are transferred to the function with the help of the pointer pSrcImages
and the number of images nSrcArraySize
. The individual images must otherwise meet the same requirements as for the standard function.
WARNING | |
Pointer handling Make sure that the specification of the pointer and the array size match the actual data. Otherwise an impermissible memory access may occur, resulting in a system crash. |
Reference points
The container ipReferencePoints
must contain the reference points that are illustrated on the input image ipSrcImage
as the calibration pattern. The points must be specified as 3-dimensional points of the type REAL
so that the container is of the type ContainerType_Vector_TcVnPoint3_REAL
.
The reference points can be generated as follows:
- Manual creation of an XML file and reading with the function block FB_VN_ReadCalibrationPattern.
- Configuration in the calibration assistants, saving in the TcCOM object by clicking Write Results and reading with the method GetCalibPatternRef of the function block FB_VN_GevCameraControl. The set center point is taken into account.
- Inserting reference points individually into a container.
Matrices of the camera parameters
These matrices return the calculated parameters of the camera model. They can then be used for the compensation of the objective distortions and for the conversion between pixel coordinates and world coordinates.
- Camera matrix
- Distortion coefficients
- Rotation matrix
- Translation vector
Rounding errors On account of rounding errors, the calculated parameter values can deviate slightly from the values calculated in the calibration assistants. |
Reprojection errors
Parameters for blob detection
No chessboard pattern As the reference points are detected as a blob structure, the use of chessboard patterns is not possible. |
Options for calibration
Default settings To get the default settings from the calibration wizard, the bits bFixPrincipalPoint = „Fix Center Point“ The bit |
Application
Samples
Required License
TC3 Vision Metrology 2D
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.54 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |