F_VN_CalibrateCameraExp

F_VN_CalibrateCameraExp 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_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

F_VN_CalibrateCameraExp 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)

hrPrev

HRESULT

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

F_VN_CalibrateCameraExp 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_CalibrateCameraExp 4: Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_CalibrateCameraExp ist die Expert-Variante von F_VN_CalibrateCamera. Sie ermöglicht die Verwendung von mehreren Eingangsbildern zur Kalibrierung der Kamera.

Parameter

Eingangsbilder

Die Eingangsbilder für die Kamera-Kalibrierung werden mit Hilfe des Pointers pSrcImages und der Anzahl der Bilder nSrcArraySize an die Funktion übergeben. Die einzelnen Bilder müssen ansonsten die gleichen Anforderungen erfüllen wie bei der Standard Funktion.

WARNUNG

Pointer-Handhabung

Achten Sie darauf, dass die Angabe des Pointers und der Array-Größe mit den tatsächlichen Daten übereinstimmt. Sonst kann es zu einem unerlaubten Speicherzugriff und einem daraus resultierenden Systemabsturz kommen.

Referenz-Punkte

Der Container ipReferencePoints muss die Referenz-Punkte enthalten, die auf dem Eingangsbild ipSrcImage als Kalibrationsmuster dargestellt sind. Die Punkte müssen als 3-dimensionale Punkte vom Typ REAL angegeben werden, sodass der Container den Typ ContainerType_Vector_TcVnPoint3_REAL hat.

Die Referenz-Punkte können wie folgt erzeugt werden:

Matrizen der Kamera-Parameter

Diese Matrizen geben die errechneten Parameter des Kamera-Modells zurück. Sie können daraufhin zum Kompensieren der Objektiv-Verzeichnungen und zum Umrechnen zwischen Pixel- und Weltkoordinaten genutzt werden.

  • Kamera-Matrix
  • Verzeichnungskoeffizienten
  • Rotations-Matrix
  • Translations-Vektor
F_VN_CalibrateCameraExp 5:

Rundungsfehler

Die errechneten Parameterwerte können aufgrund von Rundungsfehlern geringfügig von den im Kalibrationsassistenten errechneten Werten abweichen.

Reprojektions-Fehler

Parameter für Blob-Detektion

F_VN_CalibrateCameraExp 6:

Keine Schachbrettmuster

Da die Referenzpunkte als eine Blob-Struktur detektiert werden, ist die Verwendung von Schachbrettmustern nicht möglich.

Optionen für Kalibrierung

F_VN_CalibrateCameraExp 7:

Standardeinstellungen

Um die Standardeinstellungen aus dem Kalibrationsassistenten zu erhalten, müssen die Bits bFixAspectRatio, bFixPrincipalPoint, bFixK5, bFixK6 und bRationalModel auf TRUE gesetzt werden.

bFixPrincipalPoint = „Fix Center Point“

Das Bit bFixPrincipalPoint entspricht der Option „Fix Center Point“ im Kalibrationsassistenten der Kamera.

Anwendung

Beispiele

Required License

TC3 Vision Metrology 2D

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1. 4024.44 or later

PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision