OKVIS ROS
|
A multi camera frame that uses okvis::Frame underneath. More...
#include <MultiFrame.hpp>
Public Member Functions | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | MultiFrame () |
Default constructor. More... | |
MultiFrame (const cameras::NCameraSystem &cameraSystem, const okvis::Time ×tamp, uint64_t id=0) | |
Construct from NCameraSystem. More... | |
virtual | ~MultiFrame () |
Destructor... More... | |
void | resetCameraSystemAndFrames (const cameras::NCameraSystem &cameraSystem) |
(Re)set the NCameraSystem – which clears the frames as well. More... | |
void | setTimestamp (const okvis::Time ×tamp) |
(Re)set the timestamp More... | |
void | setId (uint64_t id) |
(Re)set the id More... | |
const okvis::Time & | timestamp () const |
Obtain the frame timestamp. More... | |
uint64_t | id () const |
Obtain the frame id. More... | |
size_t | numFrames () const |
The number of frames/cameras. More... | |
std::shared_ptr< const okvis::kinematics::Transformation > | T_SC (size_t cameraIdx) const |
Get the extrinsics of a camera. More... | |
size_t | numKeypoints () const |
Get the total number of keypoints in all frames. 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... | |
The following mirror the Frame functionality. | |
void | setImage (size_t cameraIdx, const cv::Mat &image) |
Set the frame image;. More... | |
void | setGeometry (size_t cameraIdx, std::shared_ptr< const cameras::CameraBase > cameraGeometry) |
Set the geometry. More... | |
void | setDetector (size_t cameraIdx, std::shared_ptr< cv::FeatureDetector > detector) |
Set the detector. More... | |
void | setExtractor (size_t cameraIdx, std::shared_ptr< cv::DescriptorExtractor > extractor) |
Set the extractor. More... | |
const cv::Mat & | image (size_t cameraIdx) const |
Obtain the image. More... | |
std::shared_ptr< const cameras::CameraBase > | geometry (size_t cameraIdx) const |
get the base class geometry (will be slow to use) More... | |
template<class GEOMETRY_T > | |
std::shared_ptr< const GEOMETRY_T > | geometryAs (size_t cameraIdx) const |
Get the specific geometry (will be fast to use) More... | |
int | detect (size_t cameraIdx) |
Detect keypoints. This uses virtual function calls. That's a negligibly small overhead for many detections. More... | |
int | describe (size_t cameraIdx, const Eigen::Vector3d &extractionDirection=Eigen::Vector3d(0, 0, 1)) |
Describe keypoints. This uses virtual function calls. That's a negligibly small overhead for many detections. More... | |
template<class GEOMETRY_T > | |
int | describeAs (size_t cameraIdx, const Eigen::Vector3d &extractionDirection=Eigen::Vector3d(0, 0, 1)) |
Describe keypoints. This uses virtual function calls. That's a negligibly small overhead for many detections. More... | |
bool | getCvKeypoint (size_t cameraIdx, size_t keypointIdx, cv::KeyPoint &keypoint) const |
Access a specific keypoint in OpenCV format. More... | |
bool | getKeypoint (size_t cameraIdx, size_t keypointIdx, Eigen::Vector2d &keypoint) const |
Get a specific keypoint. More... | |
bool | getKeypointSize (size_t cameraIdx, size_t keypointIdx, double &keypointSize) const |
Get the size of a specific keypoint. More... | |
const unsigned char * | keypointDescriptor (size_t cameraIdx, size_t keypointIdx) |
Access the descriptor – CAUTION: high-speed version. More... | |
bool | setLandmarkId (size_t cameraIdx, size_t keypointIdx, uint64_t landmarkId) |
Set the landmark ID. More... | |
uint64_t | landmarkId (size_t cameraIdx, size_t keypointIdx) const |
Access the landmark ID. More... | |
bool | resetKeypoints (size_t cameraIdx, const std::vector< cv::KeyPoint > &keypoints) |
provide keypoints externally More... | |
bool | resetDescriptors (size_t cameraIdx, const cv::Mat &descriptors) |
provide descriptors externally More... | |
size_t | numKeypoints (size_t cameraIdx) const |
the number of keypoints More... | |
Protected Attributes | |
okvis::Time | timestamp_ |
the frame timestamp More... | |
uint64_t | id_ |
the frame id More... | |
std::vector< Frame, Eigen::aligned_allocator < Frame > > | frames_ |
the individual frames More... | |
cameras::NCameraSystem | cameraSystem_ |
the camera system More... | |
A multi camera frame that uses okvis::Frame underneath.
|
inline |
Default constructor.
|
inline |
Construct from NCameraSystem.
[in] | cameraSystem | The camera system for which this is a multi-frame. |
[in] | timestamp | The time this frame was recorded. |
[in] | id | A unique frame Id. |
|
inlinevirtual |
Destructor...
|
inline |
Describe keypoints. This uses virtual function calls. That's a negligibly small overhead for many detections.
[in] | cameraIdx | The camera index. |
[in] | extractionDirection | The extraction direction in camera frame |
That's a negligibly small overhead for many detections.
extractionDirection | the extraction direction in camera frame returns the number of detected points. |
|
inline |
Describe keypoints. This uses virtual function calls. That's a negligibly small overhead for many detections.
GEOMETRY_T | The type for the camera geometry requested. |
[in] | cameraIdx | The camera index. |
[in] | extractionDirection | The extraction direction in camera frame |
|
inline |
Detect keypoints. This uses virtual function calls. That's a negligibly small overhead for many detections.
That's a negligibly small overhead for many detections. returns the number of detected points.
|
inline |
get the base class geometry (will be slow to use)
[in] | cameraIdx | The camera index. |
|
inline |
Get the specific geometry (will be fast to use)
GEOMETRY_T | The type for the camera geometry requested. |
[in] | cameraIdx | The camera index. |
|
inline |
Access a specific keypoint in OpenCV format.
[in] | cameraIdx | The camera index. |
[in] | keypointIdx | The requested keypoint's index. |
[out] | keypoint | The requested keypoint. |
|
inline |
Get a specific keypoint.
[in] | cameraIdx | The camera index. |
[in] | keypointIdx | The requested keypoint's index. |
[out] | keypoint | The requested keypoint. |
|
inline |
Get the size of a specific keypoint.
[in] | cameraIdx | The camera index. |
[in] | keypointIdx | The requested keypoint's index. |
[out] | keypointSize | The requested keypoint's size. |
|
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 |
Obtain the frame id.
|
inline |
Obtain the image.
[in] | cameraIdx | The camera index. |
|
inline |
Access the descriptor – CAUTION: high-speed version.
returns NULL if out of bounds.
[in] | cameraIdx | The camera index. |
[in] | keypointIdx | The requested keypoint's index. |
|
inline |
Access the landmark ID.
[in] | cameraIdx | The camera index. |
[in] | keypointIdx | The requested keypoint's index. |
|
inline |
The number of frames/cameras.
|
inline |
the number of keypoints
[in] | cameraIdx | The camera index. |
|
inline |
Get the total number of keypoints in all frames.
|
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. |
|
inline |
(Re)set the NCameraSystem – which clears the frames as well.
[in] | cameraSystem | The camera system for which this is a multi-frame. |
|
inline |
provide descriptors externally
[in] | cameraIdx | The camera index. |
[in] | descriptors | A vector of descriptors. |
|
inline |
provide keypoints externally
[in] | cameraIdx | The camera index. |
[in] | keypoints | A vector of keyoints. |
|
inline |
Set the detector.
[in] | cameraIdx | The camera index. |
[in] | detector | The detector to be used. |
|
inline |
Set the extractor.
[in] | cameraIdx | The camera index. |
[in] | extractor | The extractor to be used. |
|
inline |
Set the geometry.
[in] | cameraIdx | The camera index. |
[in] | cameraGeometry | The camera geometry. |
|
inline |
(Re)set the id
[in] | id | A unique frame Id. |
|
inline |
Set the frame image;.
[in] | cameraIdx | The camera index that took the image. |
[in] | image | The image. |
|
inline |
Set the landmark ID.
[in] | cameraIdx | The camera index. |
[in] | keypointIdx | The requested keypoint's index. |
[in] | landmarkId | The landmark Id. |
|
inline |
(Re)set the timestamp
[in] | timestamp | The time this frame was recorded. |
|
inline |
Get the extrinsics of a camera.
[in] | cameraIdx | The camera index for which the extrinsics are queried. |
|
inline |
Obtain the frame timestamp.
|
protected |
the camera system
the individual frames
|
protected |
the frame id
|
protected |
the frame timestamp