F_VN_CalibrateCameraExp2
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_CalibrateCameraExp2 : 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;
    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)  | |
| 
                   bSubpixelAccuracy  | 
                   BOOL  | 
                   If true, the pattern points are detected with subpixel accuracy  | 
| 
                   eEdgeDirection  | 
                   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  | 
                   Selection of the edge detection algorithm  | |
| 
                   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  | 
Required License
TC3 Vision Metrology 2D
 Return value