Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Private Attributes | Friends
icl::markers::FiducialDetectorPluginForQuads Class Reference

FiducialDetectorPlugin for quad-markers like ARToolkit and BCH-Code markers. More...

#include <FiducialDetectorPluginForQuads.h>

Inheritance diagram for icl::markers::FiducialDetectorPluginForQuads:
icl::markers::FiducialDetectorPlugin icl::utils::Configurable icl::markers::FiducialDetectorPluginART icl::markers::FiducialDetectorPluginBCH

List of all members.

Public Member Functions

 ~FiducialDetectorPluginForQuads ()
 Destructor.
virtual void getKeyPoints2D (std::vector< Fiducial::KeyPoint > &dst, FiducialImpl &impl)
 returns how to compute a list of image-position/marker-position correspondences
virtual void getFeatures (Fiducial::FeatureSet &dst)
 defines which features are supported
virtual void detect (std::vector< FiducialImpl * > &dst, const core::Img8u &image)
 defines how to detect markers from a given image
virtual SourceImageType getPreProcessing () const
 this plugin uses the binarisation from the internally used quad-detector
virtual void addOrRemoveMarkers (bool add, const utils::Any &which, const utils::ParamList &params)=0
 loads markers ID's (also implemented in the subclasses)
std::string getIntermediateImageNames () const
 this plugin provides some extra intermediate images
const core::ImgBasegetIntermediateImage (const std::string &name) const throw (utils::ICLException)
 returns the intermediate image, that is associated with the given name
virtual void prepareForPatchClassification ()
 this method is called before the patch classification loop is started
virtual FiducialImplclassifyPatch (const core::Img8u &image, int *rot, bool returnRejectedQuads, cv::ImageRegion r)=0
 this method must be called in the subclasses
virtual void getQuadRectificationParameters (utils::Size &markerSizeWithBorder, utils::Size &markerSizeWithoutBorder)=0
 this method is also implemented in the subclasses
QuadDetectorgetQuadDetector ()
 returns the internal quad-detector

Protected Member Functions

 FiducialDetectorPluginForQuads ()
 only the FiducialDetector can instantiate this class

Private Attributes

Data * data
 Internal data pointer.

Friends

class icl::markers::FiducialDetector
 This class cannot be used.

Detailed Description

FiducialDetectorPlugin for quad-markers like ARToolkit and BCH-Code markers.


Constructor & Destructor Documentation

only the FiducialDetector can instantiate this class

Destructor.


Member Function Documentation

virtual void icl::markers::FiducialDetectorPluginForQuads::addOrRemoveMarkers ( bool  add,
const utils::Any which,
const utils::ParamList params 
) [pure virtual]

loads markers ID's (also implemented in the subclasses)

Parameters:
add
whichthis any instance can be ... of type int (then, only the corresponding marker ID is loaded) of type utils::Range32s "[a,b]", (then all markers within the range are loaded) of something like {a,b,c,d,...} then all marker IDs in the list are loaded

Please note that other types might be interpreted in the wrong way. Mandatory parameter is "size". Please refer to the documentation of icl::markers::FiducialDetector::loadMarkers for more details

Parameters:
params

Implements icl::markers::FiducialDetectorPlugin.

Implemented in icl::markers::FiducialDetectorPluginART, and icl::markers::FiducialDetectorPluginBCH.

virtual FiducialImpl* icl::markers::FiducialDetectorPluginForQuads::classifyPatch ( const core::Img8u image,
int *  rot,
bool  returnRejectedQuads,
cv::ImageRegion  r 
) [pure virtual]

this method must be called in the subclasses

Implemented in icl::markers::FiducialDetectorPluginART, and icl::markers::FiducialDetectorPluginBCH.

virtual void icl::markers::FiducialDetectorPluginForQuads::detect ( std::vector< FiducialImpl * > &  dst,
const core::Img8u image 
) [virtual]

defines how to detect markers from a given image

Implements icl::markers::FiducialDetectorPlugin.

defines which features are supported

Implements icl::markers::FiducialDetectorPlugin.

returns the intermediate image, that is associated with the given name

See also:
getIntermediateImageNames for more details

Reimplemented from icl::markers::FiducialDetectorPlugin.

this plugin provides some extra intermediate images

Reimplemented from icl::markers::FiducialDetectorPlugin.

virtual void icl::markers::FiducialDetectorPluginForQuads::getKeyPoints2D ( std::vector< Fiducial::KeyPoint > &  dst,
FiducialImpl impl 
) [virtual]

returns how to compute a list of image-position/marker-position correspondences

The 2D-keypoints are the most common information that is use to compute a markers 3D information. Each keypoint defines a 2D marker location in [mm] and a corresponding image location

Reimplemented from icl::markers::FiducialDetectorPlugin.

this plugin uses the binarisation from the internally used quad-detector

Reimplemented from icl::markers::FiducialDetectorPlugin.

returns the internal quad-detector

virtual void icl::markers::FiducialDetectorPluginForQuads::getQuadRectificationParameters ( utils::Size markerSizeWithBorder,
utils::Size markerSizeWithoutBorder 
) [pure virtual]

this method is also implemented in the subclasses

The method describes the parameters for the marker rectification

Implemented in icl::markers::FiducialDetectorPluginART, and icl::markers::FiducialDetectorPluginBCH.

this method is called before the patch classification loop is started

this function can be used to avoid property extraction at runtime. Usually, a certain implementation can read out and store all property values that are used in classify patch once in a whole image processing cylce

Reimplemented in icl::markers::FiducialDetectorPluginBCH.


Friends And Related Function Documentation

friend class icl::markers::FiducialDetector [friend]

This class cannot be used.

Reimplemented in icl::markers::FiducialDetectorPluginART, and icl::markers::FiducialDetectorPluginBCH.


Member Data Documentation


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines