Overview
TheConverter class provides static utility functions for converting between different mathematical representations used in ORB-SLAM3: OpenCV matrices, Eigen matrices, g2o types, and Sophus types.
Header: include/Converter.h
Descriptor Conversion
toDescriptorVector
Descriptors- Matrix where each row is a descriptor
SE3 Conversions
toSE3Quat (from cv::Mat)
cvT- 4x4 OpenCV transformation matrix (SE3)
toSE3Quat (from Sophus)
T- Sophus SE3 transformation
toSE3Quat (from Sim3)
gSim3- g2o Sim3 transformation
OpenCV Matrix Conversions
toCvMat (from SE3)
SE3- g2o SE3 quaternion
toCvMat (from Sim3)
Sim3- g2o Sim3 transformation
toCvMat (from Eigen 4x4 double)
m- Eigen 4x4 matrix (double)
toCvMat (from Eigen 4x4 float)
m- Eigen 4x4 matrix (float)
toCvMat (from Eigen 3x4)
m- Eigen 3x4 matrix (float)
toCvMat (from Eigen 3x3 double)
m- Eigen 3x3 matrix (double)
toCvMat (from Eigen 3x3 float)
m- Eigen 3x3 matrix (float)
toCvMat (from Eigen 3x1 double)
m- Eigen 3x1 vector (double)
toCvMat (from Eigen 3x1 float)
m- Eigen 3x1 vector (float)
toCvMat (from Eigen MatrixXf)
m- Eigen dynamic matrix (float)
toCvMat (from Eigen MatrixXd)
m- Eigen dynamic matrix (double)
Eigen Conversions
toVector3d (from cv::Mat)
cvVector- 3x1 OpenCV Mat
toVector3f (from cv::Mat)
cvVector- 3x1 OpenCV Mat
toVector3d (from cv::Point3f)
cvPoint- OpenCV Point3f
toMatrix3d
cvMat3- 3x3 OpenCV Mat
toMatrix3f
cvMat3- 3x3 OpenCV Mat
toMatrix4d
cvMat4- 4x4 OpenCV Mat
toMatrix4f
cvMat4- 4x4 OpenCV Mat
Rotation Conversions
toQuaternion
M- 3x3 rotation matrix (OpenCV Mat)
toEuler
R- 3x3 rotation matrix (OpenCV Mat)
isRotationMatrix
R- 3x3 matrix to check
- Checks if R^T * R = I
- Checks if det(R) = 1
Transform Construction
toCvSE3
R- 3x3 rotation matrix (Eigen double)t- 3x1 translation vector (Eigen double)
tocvSkewMatrix
v- 3x1 vector (OpenCV Mat)
Sophus Conversions
toSophus (from cv::Mat)
T- 4x4 transformation matrix (OpenCV Mat)
toSophus (from g2o::Sim3)
S- g2o Sim3 transformation
Usage Examples
Converting Poses
Descriptor Conversion
Rotation Conversion
Building Transforms
Type Compatibility
The Converter class handles conversions between:- OpenCV - cv::Mat (used for images and camera operations)
- Eigen - Efficient linear algebra operations
- g2o - Graph optimization types (SE3, Sim3)
- Sophus - Lie group representations