Image Component Library (ICL)
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
icl::markers::FiducialDetectorPluginART Class Reference

FiducialDetectorPlugin for ARToolkit like markers using binary image patches as marker IDs. More...

#include <FiducialDetectorPluginART.h>

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

Public Member Functions

 ~FiducialDetectorPluginART ()
 Destructor. More...
 
virtual void addOrRemoveMarkers (bool add, const utils::Any &which, const utils::ParamList &params)
 loads markers ID's More...
 
virtual FiducialImplclassifyPatch (const core::Img8u &image, int *rot, bool returnRejectedQuads, cv::ImageRegion r)
 Identifies the given image patch using bch decoding. More...
 
std::string getName (const FiducialImpl *impl)
 this method is reimplemented here; it returns the impl's file-basename More...
 
virtual void getQuadRectificationParameters (utils::Size &markerSizeWithBorder, utils::Size &markerSizeWithoutBorder)
 describes the special marker image rectificatio parameters More...
 
virtual core::Img8u createMarker (const utils::Any &whichOne, const utils::Size &size, const utils::ParamList &params)
 creates marker image from given parameters (see FiducialDetector for more details) More...
 
- Public Member Functions inherited from icl::markers::FiducialDetectorPluginForQuads
 ~FiducialDetectorPluginForQuads ()
 Destructor. More...
 
virtual void getKeyPoints2D (std::vector< Fiducial::KeyPoint > &dst, FiducialImpl &impl)
 returns how to compute a list of image-position/marker-position correspondences More...
 
virtual void getFeatures (Fiducial::FeatureSet &dst)
 defines which features are supported More...
 
virtual void detect (std::vector< FiducialImpl * > &dst, const core::Img8u &image)
 defines how to detect markers from a given image More...
 
virtual SourceImageType getPreProcessing () const
 this plugin uses the binarisation from the internally used quad-detector More...
 
std::string getIntermediateImageNames () const
 this plugin provides some extra intermediate images More...
 
const core::ImgBasegetIntermediateImage (const std::string &name) const
 returns the intermediate image, that is associated with the given name More...
 
virtual void prepareForPatchClassification ()
 this method is called before the patch classification loop is started More...
 
QuadDetectorgetQuadDetector ()
 returns the internal quad-detector More...
 
- Public Member Functions inherited from icl::markers::FiducialDetectorPlugin
 FiducialDetectorPlugin ()
 initializes the plugin with a 0-camera More...
 
virtual ~FiducialDetectorPlugin ()
 virtual Destructor More...
 
virtual void getCenter2D (utils::Point32f &dst, FiducialImpl &impl)
 returns how to compute the markers 2D center More...
 
virtual void getRotation2D (float &dst, FiducialImpl &impl)
 returns how to compute the markers 2D rotation More...
 
virtual void getCorners2D (std::vector< utils::Point32f > &dst, FiducialImpl &impl)
 returns how to compute the markers 2D corners (or significant points on its edges More...
 
virtual void getCenter3D (geom::Vec &dst, FiducialImpl &impl)
 computes a markers 3D center More...
 
virtual void getRotation3D (geom::Vec &dst, FiducialImpl &impl)
 computes a markers 3D rotation euler angles More...
 
virtual void getPose3D (geom::Mat &dst, FiducialImpl &impl)
 computes a markers 3D position and rotation euler angles More...
 
- Public Member Functions inherited from icl::utils::Configurable
virtual ~Configurable ()
 virtual destructor More...
 
 Configurable (const Configurable &other)
 Copy constructor. More...
 
Configurableoperator= (const Configurable &other)
 Assignment operator. More...
 
void setConfigurableID (const std::string &ID)
 sets the ID of this configurable More...
 
const std::string & getConfigurableID () const
 returns the configurables static ID More...
 
bool isOrderedFlagSet () const
 returns whether the ordered flag is set More...
 
void deactivateProperty (const std::string &pattern)
 adds an additional deativation pattern More...
 
void deleteDeactivationPattern (const std::string &pattern)
 removed a formerly added deactivation pattern More...
 
std::vector< std::string > getPropertyListWithoutDeactivated () const
 this returns a filtered list of properties (using all filters added by deactivateProperty) More...
 
virtual void adaptProperty (const std::string &name, const std::string &newType, const std::string &newInfo, const std::string &newToolTip)
 this function can be used to adapt a specific property afterwards More...
 
void registerCallback (const Callback &cb)
 add a callback for changed properties More...
 
void removedCallback (const Callback &cb)
 removes a callback that was registered before More...
 
void syncChangesTo (Configurable *others, int num=1)
 this can be used to let this instance also apply property changes to others More...
 
virtual void setPropertyValue (const std::string &propertyName, const Any &value)
 sets a property value More...
 
virtual std::vector< std::string > getPropertyList () const
 returns a list of All properties, that can be set using setProperty More...
 
virtual bool supportsProperty (const std::string &propertyName) const
 base implementation for property check (seaches in the property list) More...
 
virtual void saveProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) const
 writes all available properties into a file More...
 
virtual void loadProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC)
 reads a camera config file from disc More...
 
virtual std::string getPropertyType (const std::string &propertyName) const
 get type of property More...
 
virtual std::string getPropertyInfo (const std::string &propertyName) const
 get information of a properties valid values More...
 
virtual Any getPropertyValue (const std::string &propertyName) const
 returns the current value of a property or a parameter More...
 
virtual std::string getPropertyToolTip (const std::string &propertyName) const
 returns the tooltip description for a given property More...
 
virtual int getPropertyVolatileness (const std::string &propertyName) const
 Returns whether this property may be changed internally. More...
 

Private Member Functions

 FiducialDetectorPluginART ()
 only the FiducialDetector can instantiate this class More...
 

Private Attributes

Data * data
 

Friends

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

Additional Inherited Members

- Public Types inherited from icl::markers::FiducialDetectorPlugin
enum  SourceImageType { Binary, Gray, Color }
 Enumeration for differnt source image types. More...
 
- Public Types inherited from icl::utils::Configurable
typedef Function< void, const Property & > Callback
 Function type for changed properties. More...
 
- Static Public Member Functions inherited from icl::markers::FiducialDetectorPlugin
static std::vector< int > parse_list_str (const utils::Any &s)
 parses an any instance that is either an int-value, or a range or a list of int-values More...
 
- Static Public Member Functions inherited from icl::utils::Configurable
static std::string create_default_ID (const std::string &prefix)
 this function can be used in subclasses to create a default ID More...
 
static Configurableget (const std::string &id)
 returns configurable by given ID More...
 
static void register_configurable_type (const std::string &classname, Function< Configurable * > creator)
 registers a configurable type More...
 
static std::vector< std::string > get_registered_configurables ()
 returns a list of all registered configurable classnames More...
 
static Configurablecreate_configurable (const std::string &classname)
 creates a configurable by given name More...
 
- Public Attributes inherited from icl::markers::FiducialDetectorPlugin
geom::Cameracamera
 Camera structure for 3D feature estimation. More...
 
geom::CoplanarPointPoseEstimator poseEst
 for 3D pose estimation More...
 
- Static Public Attributes inherited from icl::utils::Configurable
static const std::vector< std::string > EMPTY_VEC
 used as shortcut – just an empty vector of std::strings More...
 
- Protected Member Functions inherited from icl::markers::FiducialDetectorPluginForQuads
 FiducialDetectorPluginForQuads ()
 only the FiducialDetector can instantiate this class More...
 
- Protected Member Functions inherited from icl::utils::Configurable
void addProperty (const std::string &name, const std::string &type, const std::string &info, const Any &value=Any(), const int volatileness=0, const std::string &tooltip=std::string())
 This can be used by derived classes to store supported properties in the internal list. More...
 
void addChildConfigurable (Configurable *configurable, const std::string &childPrefix="")
 This adds another configurable as child. More...
 
void removeChildConfigurable (Configurable *configurable)
 removes the given child configurable More...
 
Propertyprop (const std::string &propertyName)
 this CAN be used e.g. to store a property value in internal property-list More...
 
const Propertyprop (const std::string &propertyName) const
 this CAN be used e.g. to store a property value in internal property-list More...
 
 Configurable (const std::string &ID="", bool ordered=true)
 create this configurable with given ID More...
 
void call_callbacks (const std::string &propertyName, const Configurable *caller) const
 calls all registered callbacks More...
 
- Protected Attributes inherited from icl::utils::Configurable
std::vector< Callbackcallbacks
 internally managed list of callbacks More...
 

Detailed Description

FiducialDetectorPlugin for ARToolkit like markers using binary image patches as marker IDs.

This is just a plugin class that is used by the FiducialDetector. Please refer the icl::markers::FiducialDetector class documentation for more details.

Constructor & Destructor Documentation

◆ FiducialDetectorPluginART()

icl::markers::FiducialDetectorPluginART::FiducialDetectorPluginART ( )
private

only the FiducialDetector can instantiate this class

◆ ~FiducialDetectorPluginART()

icl::markers::FiducialDetectorPluginART::~FiducialDetectorPluginART ( )

Destructor.

Member Function Documentation

◆ addOrRemoveMarkers()

virtual void icl::markers::FiducialDetectorPluginART::addOrRemoveMarkers ( bool  add,
const utils::Any which,
const utils::ParamList params 
)
virtual

loads markers ID's

Parameters
add
whichthis instance of Type icl::Any can be any image filename or filename pattern Please note: internally, all loaded patterns are stored by a unique ID. The unique ID is computed from the image filename by removing the file postfix (e.g. .png) and the files folder prefix (e.g. ./patterns/) In other words, only the image files base-name is used as key. Therefore, the pattern files have to be named differently, even if they have different post-fixes and/or different folders.
All image files are loaded/removed. The images are internally converted to grayscale. Every time the 'match algorithm' property is changed, all loaed patters are processed in order to optimize matching speed.
If markers are removed, again, the filepattern is used to 'glob' all markers that have to be removed. The special Token '*' is used to remove all loaded markers.
The parameter list params must contain the real markers 'size' in mm
params

Implements icl::markers::FiducialDetectorPluginForQuads.

◆ classifyPatch()

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

Identifies the given image patch using bch decoding.

Implements icl::markers::FiducialDetectorPluginForQuads.

◆ createMarker()

virtual core::Img8u icl::markers::FiducialDetectorPluginART::createMarker ( const utils::Any whichOne,
const utils::Size size,
const utils::ParamList params 
)
virtual

creates marker image from given parameters (see FiducialDetector for more details)

Reimplemented from icl::markers::FiducialDetectorPlugin.

◆ getName()

std::string icl::markers::FiducialDetectorPluginART::getName ( const FiducialImpl impl)
virtual

this method is reimplemented here; it returns the impl's file-basename

Reimplemented from icl::markers::FiducialDetectorPlugin.

◆ getQuadRectificationParameters()

virtual void icl::markers::FiducialDetectorPluginART::getQuadRectificationParameters ( utils::Size markerSizeWithBorder,
utils::Size markerSizeWithoutBorder 
)
virtual

describes the special marker image rectificatio parameters

Implements icl::markers::FiducialDetectorPluginForQuads.

Friends And Related Function Documentation

◆ icl::markers::FiducialDetector

friend class icl::markers::FiducialDetector
friend

This class cannot be used.

Member Data Documentation

◆ data

Data* icl::markers::FiducialDetectorPluginART::data
private

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