OKVIS ROS
|
A class that assembles multiple cameras into a system of (potentially different) cameras. More...
#include <NCameraSystem.hpp>
Public Types | |
enum | DistortionType { Equidistant = 0, RadialTangential = 1, NoDistortion = 2, RadialTangential8 = 3 } |
The enumeration of the currently supported distortion types. More... | |
Public Member Functions | |
NCameraSystem () | |
Default constructor. More... | |
NCameraSystem (const std::vector< std::shared_ptr< const okvis::kinematics::Transformation >> &T_SC, const std::vector< std::shared_ptr< const cameras::CameraBase >> &cameraGeometries, const std::vector< DistortionType > &distortionTypes, bool computeOverlaps) | |
Construct with vector of extrinsics and geometries. More... | |
virtual | ~NCameraSystem () |
Destructor that doesn't do anything really. More... | |
void | reset (const std::vector< std::shared_ptr< const okvis::kinematics::Transformation >> &T_SC, const std::vector< std::shared_ptr< const cameras::CameraBase >> &cameraGeometries, const std::vector< DistortionType > &distortionTypes, bool computeOverlaps) |
Reset with vector of extrinsics and geometries. More... | |
void | addCamera (std::shared_ptr< const okvis::kinematics::Transformation > T_SC, std::shared_ptr< const cameras::CameraBase > cameraGeometry, DistortionType distortionType, bool computeOverlaps=true) |
Append with a single camera. More... | |
size_t | numCameras () const |
Obtatin the number of cameras currently added. More... | |
void | computeOverlaps () |
compute all the overlaps of fields of view. Attention: can be expensive. More... | |
std::shared_ptr< const okvis::kinematics::Transformation > | T_SC (size_t cameraIndex) const |
get the pose of the IMU frame S with respect to the camera cameraIndex More... | |
std::shared_ptr< const cameras::CameraBase > | cameraGeometry (size_t cameraIndex) const |
get the camera geometry of camera cameraIndex More... | |
DistortionType | distortionType (size_t cameraIndex) const |
get the distortion type of the camera More... | |
const cv::Mat | overlap (size_t cameraIndexSeenBy, size_t cameraIndex) const |
Get the overlap mask. Sorry for the weird syntax, but remember that cv::Mat is essentially a shared pointer. More... | |
bool | hasOverlap (size_t cameraIndexSeenBy, size_t cameraIndex) const |
Can the first camera see parts of the FOV of the second camera? More... | |
Protected Member Functions | |
bool | overlapComputationValid () const |
Use this to check overlapMats_ and overlaps_ have correct sizes. More... | |
Protected Attributes | |
std::vector< std::shared_ptr < const okvis::kinematics::Transformation > > | T_SC_ |
Mounting transformations from IMU. More... | |
std::vector< std::shared_ptr < const cameras::CameraBase > > | cameraGeometries_ |
Camera geometries. More... | |
std::vector< DistortionType > | distortionTypes_ |
std::vector< std::vector < cv::Mat > > | overlapMats_ |
Overlaps between cameras: mats. More... | |
std::vector< std::vector< bool > > | overlaps_ |
Overlaps between cameras: binary. More... | |
A class that assembles multiple cameras into a system of (potentially different) cameras.
The enumeration of the currently supported distortion types.
Enumerator | |
---|---|
Equidistant |
Use with okvis::cameras::EquidistantDistortion. |
RadialTangential | |
NoDistortion | |
RadialTangential8 |
|
inline |
Default constructor.
|
inline |
Construct with vector of extrinsics and geometries.
[in] | T_SC | a vector of extrinsics. |
[in] | cameraGeometries | a vector of camera geometries (same length as T_SC). |
[in] | distortionTypes | a vector of distortion types (same length as T_SC). |
[in] | computeOverlaps | Indicate, if the overlap computation (can take a while) should be performed. |
|
inlinevirtual |
Destructor that doesn't do anything really.
|
inline |
Append with a single camera.
[in] | T_SC | extrinsics. |
[in] | cameraGeometry | Camera geometry. |
[in] | distortionType | Distortion type. |
[in] | computeOverlaps | Indicate, if the overlap computation (can take a while) should be performed. |
|
inline |
get the camera geometry of camera cameraIndex
[in] | cameraIndex | The camera index for which the camera geometry should be returned. |
void okvis::cameras::NCameraSystem::computeOverlaps | ( | ) |
compute all the overlaps of fields of view. Attention: can be expensive.
|
inline |
get the distortion type of the camera
[in] | cameraIndex | The camera index for which the distortion type should be returned. |
|
inline |
Can the first camera see parts of the FOV of the second camera?
[in] | cameraIndexSeenBy | The camera index for one camera. |
[in] | cameraIndex | The camera index for the other camera. |
|
inline |
Obtatin the number of cameras currently added.
|
inline |
Get the overlap mask. Sorry for the weird syntax, but remember that cv::Mat is essentially a shared pointer.
[in] | cameraIndexSeenBy | The camera index for one camera. |
[in] | cameraIndex | The camera index for the other camera. |
|
inlineprotected |
Use this to check overlapMats_ and overlaps_ have correct sizes.
|
inline |
Reset with vector of extrinsics and geometries.
[in] | T_SC | a vector of extrinsics. |
[in] | cameraGeometries | a vector of camera geometries (same length as T_SC). |
[in] | distortionTypes | a vector of distortion types (same length as T_SC). |
[in] | computeOverlaps | Indicate, if the overlap computation (can take a while) should be performed. |
|
inline |
get the pose of the IMU frame S with respect to the camera cameraIndex
[in] | cameraIndex | The camera index for which the extrinsics should be returned. |
|
protected |
Camera geometries.
|
protected |
|
protected |
Overlaps between cameras: mats.
|
protected |
Overlaps between cameras: binary.
|
protected |
Mounting transformations from IMU.