Calibration Modes and Models

Note

When computing the calibration, pass the mode or the combination of modes that you want to test. The method selects the model that has the best precision on the calibration image.
See Computing the Calibration Model.

The field-of-view model

Scaling

\(w_{sensor} = w_{fov} * R_X\)

\(h_{sensor} = h_{fov} * R_Y\)

  • The pixel width (\(w_{pixel}\)) and height (\(h_{pixel}\)) can also be expressed using the field-of-view width and height or the X and Y resolution:

\(w_{pixel} = \frac{w_{fov}}{w_{sensor}} = \frac{1}{R_X}\)

\(h_{pixel} = \frac{h_{fov}}{h_{sensor}} = \frac{1}{R_Y}\)

Skew

The skew angle (ECameraCalibration::GetAngle .NET Python) is the angle formed by the X axis of the real-world reference frame with the horizontal image edge.

../../../_images/calibrationangle.webp

Tilt

The X and Y tilt (ECameraCalibration::GetTiltXAngle .NET Python and ECameraCalibration::GetTiltYAngle .NET Python) happens when the reference frame is not perpendicular to the optical axis. They correspond to the required rotations around the real world X and Y axis that would bring the Z axis parallel to the optical axis.

Perspective strength

The perspective strength (ECameraCalibration::GetPerspectiveStrength .NET Python) gives a relative measure of the perspective effect.

  • The shorter the focal length, the larger the value.

  • The closer the reference plane is to the camera, the larger the value.

    Weak perspective
    Strong perspective

Distortion strength

The distortion strength (ECameraCalibration::GetDistortionStrength .NET Python) gives a relative measure of radial distortion in the image corners, that is the ratio of image diagonal length with and without distortion.

Positive distortion
Negative distortion

Effects of the calibration modes

The following table shows the effects of the projection of a real-world rectangle in an image according to different calibration mode.

Modes

Description

Visualization

ECalibrationMode_Raw .NET Python

No calibration

../../../_images/worldtosensortransformuncalibrated.png

ECalibrationMode_Anisotropic .NET Python

The physical pixels are not squared.

The image can appear stretched

../../../_images/worldtosensortransformscalednonsquare.png

ECalibrationMode_Skewed .NET Python ECalibrationMode_Scaled .NET Python

Affine isotropic transformation (rotation, translation and scaling)

../../../_images/worldtosensortransformscaledskewedsquare.png

ECalibrationMode_Tilted .NET Python

Further away objects appears smaller.

Lines remains straight but angles are not preserved.

../../../_images/worldtosensortransformperspective.png

ECalibrationMode_Radial .NET Python

Barrel distortion

../../../_images/worldtosensortransformoptical.png

The advanced model

The advanced model (ECalibrationMode_Advanced .NET Python) is equivalent to a field-of-view calibration model with:

  • All modes activated.

  • 5 distortion coefficients: \(k_1\), \(k_2\), \(k_3\), \(p_1\) and \(p_2\).

The empirical models

The empirical models are either based on a quadratic (ECalibrationMode_Quadratic .NET Python) or a bilinear (ECalibrationMode_Bilinear .NET Python) model.

  • These models do not expose their parameters.