Definitions
| Term | Definition | Notes |
| Backward Camera Model | A Geometric Camera Model that transforms 2D image points into 3D rays. | Opposite direction of the Forward Camera Model. This is sometimes called an "Inverse camera model". We choose not to use this terminology, as you can invert a forward or backward camera model. |
| Camera-Relative World Point | A World Point in the reference frame of the camera. | |
| Center of Radial Distortion | An Image Point about which the distortion is radially symmetric. | |
| Central Camera Model | A Geometric Camera Model for which all rays go through a single point. | Complement to Non-Central Camera Model. |
| Distortion | A deviation from the Pinhole Camera Model. | |
| Extrinsics | A portion of a Geometric Camera Model that describes the position and orientation of an object within a world coordinate system. | See also: Pose. |
| Forward Camera Model | A Geometric Camera Model that transforms 3D world points into 2D image points. | Opposite direction of the Backward Camera Model. |
| Geometric Camera Model | A model that describes the geometric properties of a camera. | This is sometimes referred to as a "geometric calibration model". A Geometric Camera Model is composed of Extrinsics, Intrinsics, and Distortion. |
| Global World Point | A World Point in the global reference frame. | |
| Image Coordinate System | The basis for describing image points. | See Image Coordinate System documentation. |
| Image Point | An ordered pair (x, y) describing a 2D location on the focal plane. | An Image Point is defined in an Image Coordinate System. |
| Intrinsics | A portion of a Geometric Camera Model that describes the internal geometric properties of the camera. | |
| Non-Central Camera Model | A Geometric Camera Model for which the rays do not go through a single point. | Complement to Central Camera Model. Cameras with a non-stationary entrance pupil position exhibit non-central behaviors. |
| Pinhole Camera Model | A Geometric Camera Model that models a pinhole camera. | |
| Pose | The position and orientation of an object relative to some World Coordinate System. | See also: Extrinsics. |
| Principal Point | The Image Point on the focal plane that intersects the optical axis. | |
| World Point | An ordered triple (X, Y, Z) describing a 3D location in a World Coordinate System. | |
| World Coordinate System | The basis (coordinatae ordering, origin, positive positional directions, positive rotation directions) for describing World Points. |
Notation
All vectors are column vectors. Uppercase , , and refer to 3D world points. Lowercase Uppercase and refer to 2D image points.
Homogeneous Coordinates
Homogeneous coordinates are a set of coordinates with useful properties for perspective geometry [1][2]:
- Infinity may be represented with a finite value.
- Rotations and translations may be represented by a single matrix operation.
- Homogeneous coordinates may be used for a space with an arbitrary dimension, including 2D (image) and 3D (world) coordinates.
A "standard" coordinate is referred to as inhomogeneous.
Properties
- If and only if the last coordinate of a homogeneous coordinate is 0, then it is at infinity.
- If and only if the last coordinate of a homogeneous coordinate is not 0, then it is at a finite location.
- Two homogeneous points are the same iff there exists a non-zero scalar multiplier between them, i.e., .
Transforms
Inhomogeneous to Homogeneous
The simplest way to convert from an inhomogeneous coordinate to a homogeneous one is to append a 1 to the end of the coordinate.
The general conversion is to append 1 and multiply all elements by any non-zero real number ( or ).
Homogeneous to Inhomogeneous
To convert from a homogeneous coordinate to an inhomogeneous one, divide all of the components by the last one, which is discarded.
Intrinsics
The intrinsic matrix, , is an upper-triangular matrix that transforms a world coordinate relative to the camera into a homogeneous image coordinate. There are two general and equivalent forms of the intrinsic matrix:
where
| Variable | Description |
| The x-focal length | |
| The y-focal length | |
| The focal length ratios | |
| The skew | |
| The principal point (intersection of the optical axis with the focal plane) |
The intrinsic matrix of the th camera is applied to the th camera-relative 3D point to produce a homogeneous image point.
Notes:
- The focal length(s) are in pixel pitch units to allow for the creation of similar triangles where the units cancel.
- The principal point is defined in an image coordinate system.
Camera Models
Summary
| Model | Forward Order of Operations | Maximum Field of View | Distortion Options | Centrality | References | Introduced |
| Simple Pinhole | Extrinsics → Intrinsics | <180° | None | Central | [1][2] | Imatest 25.2 |
| OpenCV | Extrinsics → Distortion → Intrinsics | <180° | Radial, Tangential, Thin Prism, Tilt | Central | [3] | Imatest 25.2 |
| OpenCV Fisheye | Extrinsics → Distortion → Intrinsics | <180° | Polynomial | Central | [4] | Imatest 26.1 |
| Pinhole + Distortion | Extrinsics → Intrinsics → Distortion | <180° | See Distortion | Central | [1][2][5] | Imatest 26.1 |
Simple Pinhole
The forward direction of the simple pinhole model is: Extrinsics → Intrinsics.
The forward direction of the OpenCV model is given by:
- Transform a camera-relative world point through the intrinsics camera matrix:
- Convert to an inhomogeneous image point
OpenCV
The OpenCV camera model [3] is defined by the OpenCV library. The version used in Imatest is that of OpenCV 4.12.0.
The forward direction of the OpenCV model is: Extrinsics → Distortion → Intrinsics.
The forward direction of the OpenCV model is given by:
- Transform a camera-relative world point into an undistorted image point :
- Compute the radius, :
- Apply the radial distortion:
- Apply the tangential distortion:
- Apply the thin-prism distortion:
- Apply the tilt-distortion (and convert back to an inhomogeneous image coordinate):
- Apply the intrinsics:
OpenCV Fisheye
The OpenCV Fisheye camera model [4] is defined by the OpenCV library. The version used in Imatest is that of OpenCV 4.12.0.
The forward direction of the OpenCV model is: Extrinsics → Distortion → Intrinsics.
The forward direction of the OpenCV model is given by:
- Transform a camera-relative world point into a normalized world point :
- Compute the radius, :
- Compute the angle, :
- Apply the fisheye distortion:
- Compute the normalized, distorted image point :
- Apply the 2D intrinsics to convert the normalized, distorted image point into a distorted image point :
Notes
- The method for computing the angle in steps 1-3 limits this model to 180° FOV.
- The form of the intrinsics used in Imatest differs from the OpenCV documented application of intrinsics (step 6): The skew directly multiplies the y-component instead of the skew and focal length multiplying the y-component. When skew is 0, this difference has no effect.
Pinhole + Distortion
The Pinhole + Distortion model is the "classic" camera model from photogrammetry.
The forward direction of the Pinhole + Distortion model is: Extrinsics → Intrinsics → Distortion.
The forward direction of the Pinhole + Distortion model is given by:
- Project the camera-relative world point through the intrinsics matrix to get a homogenous undistorted image point
- Convert the homogeneous undistorted image point into an inhomogeneous undistorted image point
- Apply the distortion model to transform the inhomogeneous, undistorted image point into a distorted image point.
Distortion Models
Distortion Model: Generic
A generic distortion model transforms undistorted image points into distorted image points.
The following distortion models are available:
| Model | Radial | Tangential | References | Introduced |
| Brown-Conrady | Yes | Yes | [5] | Imatest 26.1 |
| None | No | No | Imatest 26.1 | |
| Radial | Yes | No | [5] | Imatest 26.1 |
Distortion Model: Brown-Conrady
The Brown-Conrady distortion model includes both radial and tangential components.
The forward direction model is given by:
Where:
is the center of radial distortion
Notes:
- The Brown-Conrady model used in Imatest is a forward (image formation/apply distortion) direction.
- The ordering of the tangential coefficients () used in Imatest is the "photogrammetry" order.
Distortion Model: None
The None distortion model does not apply any distortion.
The forward direction model is given by:
Distortion Model: Radial
Radial Distortion Models are radially symmetric about a center of distortion.
The forward direction model is given by:
Where
is the center of radial distortion
is a radial distortion model
The following radial distortion models are available:
| Model | Reference(s) | Introduced |
| Division Polynomial | [5] | Imatest 26.1 |
| None | Imatest 26.1 | |
| Polynomial | [5] | Imatest 26.1 |
Radial Distortion Model: Division Polynomial
The forward direction model is given by:
Radial Distortion Model: None
The forward direction model is given by:
Radial Distortion Model: Polynomial
The forward direction model is given by:
References
- R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed. Cambridge, U.K.: Cambridge Univ. Press, 2003. ↩a ↩b ↩c
- Y. Ma, S. Soatto, J. Košecká, and S. Sastry, An Invitation to 3-D Vision: From Images to Geometric Models. New York, NY, USA: Springer, 2004. ↩a ↩b ↩c
- OpenCV. “Camera calibration and 3D reconstruction.” OpenCV Documentation. https://docs.opencv.org/4.12.0/d9/d0c/group__calib3d.html (accessed Aug. 18, 2025). ↩a ↩b
- OpenCV. “Fisheye camera model.” OpenCV Documentation. https://docs.opencv.org/4.12.0/db/d58/group__calib3d__fisheye.html (accessed Jan. 2, 2025). ↩a ↩b
- “Distortion (optics).” Wikipedia. https://en.wikipedia.org/wiki/Distortion_(optics) (accessed Jan. 2, 2025). ↩a ↩b ↩c ↩d ↩e