Image Component Library (ICL)
|
Fiducial Type for the MuliCamFiducialDetector. More...
#include <MultiCamFiducial.h>
Public Member Functions | |
MultiCamFiducial (MultiCamFiducialImpl *impl=0) | |
Constructor. | |
bool | isNull () const |
returns whether this is null-instance | |
int | getCamsFound () const |
returns the number of cameras this fiducial was actually detected in | |
Fiducial | operator[] (int idx) |
returns the underlying 2D fiducial detection result | |
const Fiducial | operator[] (int idx) const |
returns the underlying 2D fiducial detection retult (const version) | |
geom::Camera & | getCamera (int idx) |
returns the idx-th associated camera | |
const geom::Camera & | getCamera (int idx) const |
returns the idx-th associated camera (const version) | |
int | getID () const |
returns the associated marker ID | |
const math::FixedColVector < float, 3 > & | getCenter3D () const |
returns the 3D center of the marker | |
const math::FixedColVector < float, 3 > & | getOrientation3D () const |
returns the 3D orientation of the marker | |
const geom::Mat & | getPose3D () const |
returns the 6D-pose (in shape of a homogeneous transform) of the marker | |
Private Attributes | |
MultiCamFiducialImpl * | impl |
internal implementation |
Fiducial Type for the MuliCamFiducialDetector.
MultiCamFiducials provide much more robust 3D information if they a constructed from several camera views
The MultiCamFiducialDetector provides a generic interface to detect fiducials in a set of camera views
The MultiCamFiducial is implemented as a wrapper around a single implementation pointer whose memory is managed by the parent MultiCamFiducialDetector instance. Therefore MultiCamFiducial instances can copied like objects
For the pose estimation, two different algorithms are combined. In case of Fiducials, that were just detected in a single camera view, the CoplanarPointPoseEstimator is used. If more than one view is available, multicamera geometry is used to provide a much moch accurate estimation of the marker pose.
icl::markers::MultiCamFiducial::MultiCamFiducial | ( | MultiCamFiducialImpl * | impl = 0 | ) | [inline] |
Constructor.
returns the idx-th associated camera
Note, the camera can also be accessed from the idx-th Fiducial
const geom::Camera& icl::markers::MultiCamFiducial::getCamera | ( | int | idx | ) | const |
returns the idx-th associated camera (const version)
int icl::markers::MultiCamFiducial::getCamsFound | ( | ) | const |
returns the number of cameras this fiducial was actually detected in
The number of cameras can be a good indicator for the accuracy of the 3D position returned by getCenter3D(), getOrientation3D() and getPose3D()
const math::FixedColVector<float,3>& icl::markers::MultiCamFiducial::getCenter3D | ( | ) | const |
returns the 3D center of the marker
int icl::markers::MultiCamFiducial::getID | ( | ) | const |
returns the associated marker ID
const math::FixedColVector<float,3>& icl::markers::MultiCamFiducial::getOrientation3D | ( | ) | const |
returns the 3D orientation of the marker
const geom::Mat& icl::markers::MultiCamFiducial::getPose3D | ( | ) | const |
returns the 6D-pose (in shape of a homogeneous transform) of the marker
bool icl::markers::MultiCamFiducial::isNull | ( | ) | const [inline] |
returns whether this is null-instance
Fiducial icl::markers::MultiCamFiducial::operator[] | ( | int | idx | ) |
returns the underlying 2D fiducial detection result
valid indices are [0,getCamsFound()-1]
const Fiducial icl::markers::MultiCamFiducial::operator[] | ( | int | idx | ) | const |
returns the underlying 2D fiducial detection retult (const version)
internal implementation