Image Component Library (ICL)
Classes | Public Member Functions | Public Attributes | List of all members
icl::markers::FiducialImpl Struct Reference

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 More...
 
 FiducialImpl (FiducialDetectorPlugin *parent, Fiducial::FeatureSet supported, Fiducial::FeatureSet computed, int id, int index, const utils::Size32f &realSizeMM)
 2nd constructor with given parameters More...
 
 FiducialImpl (const FiducialImpl &o)
 explicitly implemented deep copy constructor More...
 
FiducialImploperator= (const FiducialImpl &o)
 explicitly implemented assignment operator (deep copy) More...
 
 ~FiducialImpl ()
 Destructor (also deletes info2D and info3D if not null) More...
 
Info2Densure2D ()
 ensures that the info2D pointer is initialized More...
 
Info3Densure3D ()
 ensures that the info3D pointer is initialized More...
 

Public Attributes

FiducialDetectorPluginparent
 parent Fiducial Detector instance More...
 
Fiducial::FeatureSet supported
 list of generally available features More...
 
Fiducial::FeatureSet computed
 list of already computed features More...
 
int id
 Fiduical ID. More...
 
int index
 Internally used index. More...
 
utils::Size32f realSizeMM
 real marker size in millimeters More...
 
cv::ImageRegion imageRegion
 most plugins can provide an image region More...
 
struct icl::markers::FiducialImpl::Info2Dinfo2D
 
struct icl::markers::FiducialImpl::Info3Dinfo3D
 

Detailed Description

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

Developers

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.

Precomputed vs. Deferred Feature Extraction

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.

Constructor & Destructor Documentation

◆ FiducialImpl() [1/3]

icl::markers::FiducialImpl::FiducialImpl ( )
inline

base constructor initializing index with -1 and all other stuff with 0

◆ FiducialImpl() [2/3]

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

◆ FiducialImpl() [3/3]

icl::markers::FiducialImpl::FiducialImpl ( const FiducialImpl o)

explicitly implemented deep copy constructor

◆ ~FiducialImpl()

icl::markers::FiducialImpl::~FiducialImpl ( )
inline

Destructor (also deletes info2D and info3D if not null)

Member Function Documentation

◆ ensure2D()

Info2D* icl::markers::FiducialImpl::ensure2D ( )
inline

ensures that the info2D pointer is initialized

◆ ensure3D()

Info3D* icl::markers::FiducialImpl::ensure3D ( )
inline

ensures that the info3D pointer is initialized

◆ operator=()

FiducialImpl& icl::markers::FiducialImpl::operator= ( const FiducialImpl o)

explicitly implemented assignment operator (deep copy)

Member Data Documentation

◆ computed

Fiducial::FeatureSet icl::markers::FiducialImpl::computed

list of already computed features

◆ id

int icl::markers::FiducialImpl::id

Fiduical ID.

◆ imageRegion

cv::ImageRegion icl::markers::FiducialImpl::imageRegion

most plugins can provide an image region

◆ index

int icl::markers::FiducialImpl::index

Internally used index.

The index can be estimate a FiducialImpl instances index from the getFeature-methods in the FiducialDetectorPlugin class

◆ info2D

struct icl::markers::FiducialImpl::Info2D * icl::markers::FiducialImpl::info2D

◆ info3D

struct icl::markers::FiducialImpl::Info3D * icl::markers::FiducialImpl::info3D

◆ parent

FiducialDetectorPlugin* icl::markers::FiducialImpl::parent

parent Fiducial Detector instance

◆ realSizeMM

utils::Size32f icl::markers::FiducialImpl::realSizeMM

real marker size in millimeters

This information is neccessary for creation of feature points and for most 3D pose detection stuff

◆ supported

Fiducial::FeatureSet icl::markers::FiducialImpl::supported

list of generally available features


The documentation for this struct was generated from the following file: