Overview
KannalaBrandt8 implements the Kannala-Brandt fisheye camera model with 8 parameters. This model accurately represents cameras with wide field-of-view, including fisheye and omnidirectional lenses.
Header: CameraModels/KannalaBrandt8.h
Namespace: ORB_SLAM3
Base Class: GeometricCamera
Camera Parameters
The Kannala-Brandt model uses 8 parameters:fx- Focal length in x direction (pixels)fy- Focal length in y direction (pixels)cx- Principal point x coordinate (pixels)cy- Principal point y coordinate (pixels)
k0, k1, k2, k3- Radial distortion parameters for fisheye projection
Constructors
_vParameters- Vector[fx, fy, cx, cy, k0, k1, k2, k3]
_vParameters- Camera parameters_precision- Convergence precision for unprojection (default: 1e-6)
pKannala- Source fisheye camera
Projection Methods
Project 3D points to 2D using fisheye projection model.p3D/v3D- 3D point in camera coordinates
Unprojection Methods
Unproject 2D image points to 3D rays using iterative method.p2D- 2D point in image coordinates (pixels)
precision parameter.
Jacobian
v3D- 3D point in camera coordinates
Uncertainty
p2D- 2D point in image coordinates
Calibration Matrix
Two-View Reconstruction
vKeys1- Keypoints from first imagevKeys2- Keypoints from second imagevMatches12- Correspondences between viewsT21- Output: relative transformationvP3D- Output: triangulated 3D pointsvbTriangulated- Output: success flags
true if reconstruction successful
Epipolar Constraint
pCamera2- Second camera modelkp1- Keypoint in first imagekp2- Keypoint in second imageR12- Rotation from camera 1 to 2t12- Translation from camera 1 to 2sigmaLevel- Uncertainty scaleunc- Uncertainty threshold
true if constraint satisfied
Triangulation
pCamera2- Second camerakp1,kp2- Matched keypointsR12,t12- Relative posesigmaLevel,unc- Uncertainty parametersp3D- Output: triangulated 3D point
Match and Triangulate
kp1,kp2- Keypoints to matchpOther- Other camera modelTcw1,Tcw2- Camera poses (camera-to-world)sigmaLevel1,sigmaLevel2- Uncertainty levelsx3Dtriangulated- Output: triangulated point
true if successful
Overlapping Area
Precision Control
Comparison
pCam- Camera to compare
true if all 8 parameters match
Stream Operators
Usage Example
Camera Type
Kannala-Brandt cameras have typeCAM_FISHEYE (value 1).
Implementation Notes
- Unprojection is iterative and may be slower than pinhole
- The model is accurate for FOV up to 180° and beyond
- Used in stereo-fisheye and multi-camera configurations
- Precision parameter controls unprojection accuracy vs. speed tradeoff
See Also
- GeometricCamera - Base class interface
- Pinhole - Standard camera model
- Settings - Camera configuration