Image Component Library (ICL)
|
Hidden implemetation for fiduical classes. More...
#include <FiducialImpl.h>
Classes | |
struct | Info2D |
set of 2D features More... | |
struct | Info3D |
set of 3D features More... | |
Public Member Functions | |
FiducialImpl () | |
base constructor initializing index with -1 and all other stuff with 0 | |
FiducialImpl (FiducialDetectorPlugin *parent, Fiducial::FeatureSet supported, Fiducial::FeatureSet computed, int id, int index, const utils::Size32f &realSizeMM) | |
2nd constructor with given parameters | |
FiducialImpl (const FiducialImpl &o) | |
explicitly implemented deep copy constructor | |
FiducialImpl & | operator= (const FiducialImpl &o) |
explicitly implemented assignment operator (deep copy) | |
~FiducialImpl () | |
Destructor (also deletes info2D and info3D if not null) | |
Info2D * | ensure2D () |
ensures that the info2D pointer is initialized | |
Info3D * | ensure3D () |
ensures that the info3D pointer is initialized | |
Public Attributes | |
FiducialDetectorPlugin * | parent |
parent Fiducial Detector instance | |
Fiducial::FeatureSet | supported |
list of generally available features | |
Fiducial::FeatureSet | computed |
list of already computed features | |
int | id |
Fiduical ID. | |
int | index |
Internally used index. | |
utils::Size32f | realSizeMM |
real marker size in millimeters | |
cv::ImageRegion | imageRegion |
most plugins can provide an image region | |
struct icl::markers::FiducialImpl::Info2D * | info2D |
struct icl::markers::FiducialImpl::Info3D * | info3D |
Hidden implemetation for fiduical classes.
The FiducialImpl class works as data storage for the public Fiducial class. It also holds a back-reference to it's parent FiducialDetectorPlugin that is used to compute features on demand if not alread available
The FiduicalImpl should not be visible for the FiduicalDetector user who accesses Fiducial information via the public Fiduical class. The Fiduical class implementation contains smart methods for querying Fiducial-Features. If a feature has been computed once, further calls will just return the automatically buffered result.
The feature Extraction is implemented in the FiducialDetectorPlugin class that defines how Fiducials are detected what features are supported how certain features are computed.
The FiducialDetectorPlugin can initialize the FiduicalImpl instances with precomputed values. Most of the time, at least some of the Fiducial feature values are already estimated within the detection step. If e.g. a region based fiducial detector needs to estimate a regions 2D-center for the detection itself, it can initialize the FiducialInstances with these values. Of course, it has to set up the 'computed' mask in the FiduicalImpl instances according to the set of precomputed features.
Other features, that are supported, but perhaps more difficult to compute can in contrast be supported in a deferred manner. The FiducialDetectorPlugin will the leave the 'computed' mask empty for this feature and provide an appropriate getter-method implementation. This is in particular useful to speed up the detection step itself since usually most complex features dont have to be computed for each detected Fiducial.
icl::markers::FiducialImpl::FiducialImpl | ( | ) | [inline] |
base constructor initializing index with -1 and all other stuff with 0
icl::markers::FiducialImpl::FiducialImpl | ( | FiducialDetectorPlugin * | parent, |
Fiducial::FeatureSet | supported, | ||
Fiducial::FeatureSet | computed, | ||
int | id, | ||
int | index, | ||
const utils::Size32f & | realSizeMM | ||
) | [inline] |
2nd constructor with given parameters
icl::markers::FiducialImpl::FiducialImpl | ( | const FiducialImpl & | o | ) |
explicitly implemented deep copy constructor
icl::markers::FiducialImpl::~FiducialImpl | ( | ) | [inline] |
Destructor (also deletes info2D and info3D if not null)
Info2D* icl::markers::FiducialImpl::ensure2D | ( | ) | [inline] |
ensures that the info2D pointer is initialized
Info3D* icl::markers::FiducialImpl::ensure3D | ( | ) | [inline] |
ensures that the info3D pointer is initialized
FiducialImpl& icl::markers::FiducialImpl::operator= | ( | const FiducialImpl & | o | ) |
explicitly implemented assignment operator (deep copy)
list of already computed features
Fiduical ID.
most plugins can provide an image region
Internally used index.
The index can be estimate a FiducialImpl instances index from the getFeature-methods in the FiducialDetectorPlugin class
parent Fiducial Detector instance
real marker size in millimeters
This information is neccessary for creation of feature points and for most 3D pose detection stuff
list of generally available features