F_VN_CalibrateLinescanCamera
Compute the camera parameters (intrinsic + extrinsic) by evaluating images containing a line calibration pattern. The pattern must consist of alternating vertical and diagonal lines, with each diagonal having the same constant slope: |\|\|...\|. The results are only valid for the x-direction of a line scan image. To get accurate x-values for a transformation into world coordinates, the y-coordinate must be set to half the sensor width and so equal to the cy-value of the camera matrix. For other y-values, the results are approximated and can be inaccurate. The extrinsic parameters are computed for the first image in the array.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Syntax
Definition:
FUNCTION F_VN_CalibrateLinescanCamera : HRESULT
VAR_INPUT
pSrcImages : PVOID;
nSrcArraySize : UINT;
ipPatternLineOrigins : ITcVnContainer;
fSlopeRad : LREAL;
END_VAR
VAR_IN_OUT
aCameraMatrix : TcVnMatrix3x3_LREAL;
aDistortionCoefficients : TcVnArray8_LREAL;
aRotationMatrix : TcVnMatrix3x3_LREAL;
aTranslationVector : TcVnVector3_LREAL;
fReprojError : LREAL;
stCalibrationOptions : TcVnCameraCalibrationOptions;
END_VAR
VAR_INPUT
eEdgeDirection : ETcVnEdgeDirection;
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
pSrcImages |
PVOID |
Pointer to an array of 1 or more source images (1 channel). If the images have more than 1 row, each row must contain an image of the same pattern position. |
nSrcArraySize |
UINT |
pSrcImages array size |
ipPatternLineOrigins |
X position of the pattern line origins (ContainerType_Vector_REAL, usually same origin for vertical and following diagonal line) | |
fSlopeRad |
LREAL |
Slope of the diagonal line in rad (> 0, < PI/2), relative to the vertical line (i.e., 0 would be a vertical line, PI/2 a horizontal line) |
eEdgeDirection |
Specification of the edge direction to search for | |
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 |
stCalibrationOptions |
Calibration options (recommended to set bFixAspectRatio, bFixPrincipalPoint, bZeroTangentDist) |
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 |