You are here: Start » Function Reference » Camera Calibration » CalibrateCamera_Deprecated

CalibrateCamera_Deprecated
Header: | FIL.h |
---|---|
Namespace: | fil |
Finds the camera intrinsic and extrinsic parameters from the input arrays of image and real-world coordinates. Uses pinhole camera model (perspective camera).
Syntax
void fil::CalibrateCamera_Deprecated ( const ftl::Array<ftl::Array<fil::Point3D> >& inObjectPoints, const ftl::Array<ftl::Array<fil::Point2D> >& inImagePoints, int inImageWidth, int inImageHeight, bool inFixPrincipalPoint, bool inFixAspectRatio, bool inZeroTangentDist, ftl::Optional<const fil::Matrix&> inInitialCameraMatrix, bool inUseRationalModel, bool inUseThinPrismModel, fil::Matrix& outCameraMatrix, fil::LensDistortion& outDistortion, ftl::Array<float>& outUnitScales, ftl::Optional<ftl::Array<fil::Position3D>&> outCameraPositions = ftl::NIL, ftl::Optional<float&> outError = ftl::NIL )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
![]() |
inObjectPoints | const Array<Array<Point3D> >& | Array, for each view: array of 3D points of the calibration pattern. | ||
![]() |
inImagePoints | const Array<Array<Point2D> >& | Array, for each view: array of corresponding 2D points in the picture. | ||
![]() |
inImageWidth | int | 1 - ![]() |
640 | Image width, only used to initialize camera matrix, not used when inInitialCameraMatrix present. |
![]() |
inImageHeight | int | 1 - ![]() |
480 | Image height, only used to initialize camera matrix, not used when inInitialCameraMatrix present. |
![]() |
inFixPrincipalPoint | bool | The principal point is not changed during the global optimization. It stays in the center of the image, or as in the initial camera matrix. | ||
![]() |
inFixAspectRatio | bool | The functions considers only fy as a free parameter. The ratio fx/fy stays 1, or as in the initial camera matrix. | ||
![]() |
inZeroTangentDist | bool | Tangential distortion coefficients (p_1, p_2) are assumed zero. | ||
![]() |
inInitialCameraMatrix | Optional<const Matrix&> | NIL | Optional initial camera matrix, required for inFixPrincipalPoint and inFixAspectRatio. | |
![]() |
inUseRationalModel | bool | |||
![]() |
inUseThinPrismModel | bool | |||
![]() |
outCameraMatrix | Matrix& | |||
![]() |
outDistortion | LensDistortion& | |||
![]() |
outUnitScales | Array<float>& | Image scale: px / mm | ||
![]() |
outCameraPositions | Optional<Array<Position3D>&> | NIL | Positions of cameras in world coordinate system for the views | |
![]() |
outError | Optional<float&> | NIL | Final re-projection error value |
Optional Outputs
The computation of following outputs can be switched off by passing value ftl::NIL
to these parameters: outCameraMatrix, outDistortion, outUnitScales, outCameraPositions, outError.
Read more about Optional Outputs.
Description
The coordinates of 3D object points and their corresponding 2D projections in each view must be specified. That may be achieved by using an object with a known geometry and easily detectable feature points. Such an object is called a calibration rig or calibration pattern. One example is a chessboard (see DetectChessboardGrid_Deprecated).
When camera matrix and distortion coefficients are calculated, one can create undistortion maps using CreateUndistortionMap_Deprecated function. These maps can be applied to images using RemapImage.
Remarks
Currently, automatic initialization of intrinsic parameters (when inInitialCameraMatrix is not specified) is only implemented for planar calibration patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also be used as long as initial camera matrix is provided.
Providing inImageWidth and inImageHeight is important, when inInitialCameraMatrix is not specified. This is used to determine the principal point (part of the initial camera matrix). If this point is assumed to be far from the actual image center, false tangential distortion can be determined by the calibration algorithm. This manifests itself especially when the number of point correspondences is relatively small.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Error in CalibrateCamera: Error message |
DomainError | Fixing aspect ratio requested, but no initial camera matrix passed in CalibrateCamera. |
DomainError | Fixing principal point requested, but no initial camera matrix passed in CalibrateCamera. |
DomainError | Inconsistent sizes of inImagePoints and inObjectPoints in CalibrateCamera. |
DomainError | Missing inImagePoints or inObjectPoints in CalibrateCamera. |
See Also
- AnnotateGridPoints_Deprecated – Select a subset of the given points that forms a grid and assign world plane coordinates to them.
- CreateUndistortionMap_Deprecated – Computes a spatial transform map for undistorting images from a calibrated camera.
- DetectChessboardGrid_Deprecated – Detects a chessboard on the image, and returns the points where 4 chessboard squares meet.