F_VN_CalibrateCameraExp3

F_VN_CalibrateCameraExp3 1:

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_CalibrateCameraExp3 : 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
    bSubpixelAccuracy       : BOOL;
    eEdgeDirection          : ETcVnEdgeDirection;
    fMinStrength            : REAL;
    nMaxThickness           : UDINT;
    nSubpixelsIterations    : UDINT;
    nSearchLines            : UDINT;
    fApproxPrecision        : REAL;
    eAlgorithm              : ETcVnEdgeDetectionAlgorithm;
    eWorldSystem            : ETcVnWorldCoordinateSystem;
    hrPrev                  : HRESULT;
END_VAR

F_VN_CalibrateCameraExp3 2: 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

ITcVnContainer

Reference calibration pattern point positions (ContainerType_Vector_TcVnPoint3_REAL)

bSubpixelAccuracy

BOOL

If true, the pattern points are detected with subpixel accuracy

eEdgeDirection

ETcVnEdgeDirection

Specification of the edge direction to search for (from center to outside ellipse)

fMinStrength

REAL

Specification of the minimum strength (intensity difference) of the edge to search for

nMaxThickness

UDINT

Specification of the maximum thickness of the edge to search for, which means fMinStrength must be reached within nMaxThickness pixels

nSubpixelsIterations

UDINT

Specifies the number of subpixels (for INTERPOLATION, 10 - 20 usually is sufficient) or maximum number of iterations for optimizing the parameters (for APPROX_ERF and APPROX_GAUSSIAN, 50 - 100 usually is sufficient)

nSearchLines

UDINT

Specifies the amount of search lines, which are equally distributed in all directions (must be >= 8 and a multiple of 4)

fApproxPrecision

REAL

Specifies the approximation precision for APPROX_ERF and APPROX_GAUSSIAN (0.001 usually is sufficient, unused for INTERPOLATION)

eAlgorithm

ETcVnEdgeDetectionAlgorithm

Selection of the edge detection algorithm

eWorldSystem

ETcVnWorldCoordinateSystem

World coordinate system orientation

hrPrev

HRESULT

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

F_VN_CalibrateCameraExp3 3: In/Outputs

Name

Type

Description

aCameraMatrix

TcVnMatrix3x3_LREAL

Returns the camera matrix

aDistortionCoefficients

TcVnArray8_LREAL

Returns the lens distortion coefficients [k1, k2, p1, p2, k3, k4, k5, k6]

aRotationMatrix

TcVnMatrix3x3_LREAL

Returns the rotation matrix

aTranslationVector

TcVnVector3_LREAL

Returns the translation vector

fReprojError

LREAL

Returns the reprojection error

stBlobDetectionParams

TcVnParamsBlobDetection

Parameters for the internally used F_VN_DetectBlobs function

stCalibrationOptions

TcVnCameraCalibrationOptions

Calibration options

F_VN_CalibrateCameraExp3 4: Return value

HRESULT

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