Image Component Library (ICL)
FiducialDetectorPluginForQuads.h
Go to the documentation of this file.
1 /********************************************************************
2 ** Image Component Library (ICL) **
3 ** **
4 ** Copyright (C) 2006-2013 CITEC, University of Bielefeld **
5 ** Neuroinformatics Group **
6 ** Website: www.iclcv.org and **
7 ** http://opensource.cit-ec.de/projects/icl **
8 ** **
9 ** File : ICLMarkers/src/ICLMarkers/FiducialDetectorPluginForQua **
10 ** ds.h **
11 ** Module : ICLMarkers **
12 ** Authors: Christof Elbrechter **
13 ** **
14 ** **
15 ** GNU LESSER GENERAL PUBLIC LICENSE **
16 ** This file may be used under the terms of the GNU Lesser General **
17 ** Public License version 3.0 as published by the **
18 ** **
19 ** Free Software Foundation and appearing in the file LICENSE.LGPL **
20 ** included in the packaging of this file. Please review the **
21 ** following information to ensure the license requirements will **
22 ** be met: http://www.gnu.org/licenses/lgpl-3.0.txt **
23 ** **
24 ** The development of this software was supported by the **
25 ** Excellence Cluster EXC 277 Cognitive Interaction Technology. **
26 ** The Excellence Cluster EXC 277 is a grant of the Deutsche **
27 ** Forschungsgemeinschaft (DFG) in the context of the German **
28 ** Excellence Initiative. **
29 ** **
30 ********************************************************************/
31 
32 #pragma once
33 
34 #include <ICLUtils/CompatMacros.h>
37 
38 namespace icl{
39  namespace markers{
40 
42  class FiducialDetector;
46  class ICLMarkers_API FiducialDetectorPluginForQuads : public FiducialDetectorPlugin{
49  struct Data;
50 
52  Data *data;
53 
54  protected:
55 
58  public:
59 
62 
65 
66  // use the edges
67  virtual void getKeyPoints2D(std::vector<Fiducial::KeyPoint> &dst, FiducialImpl &impl);
68  virtual void getFeatures(Fiducial::FeatureSet &dst);
69  virtual void detect(std::vector<FiducialImpl*> &dst, const core::Img8u &image);
70 
72  virtual SourceImageType getPreProcessing() const { return Gray; }
73 
75 
86  virtual void addOrRemoveMarkers(bool add, const utils::Any &which, const utils::ParamList &params) = 0;
87 
89  std::string getIntermediateImageNames() const;
90 
92 
93  const core::ImgBase *getIntermediateImage(const std::string &name) const ;
94 
96 
100 
102  virtual FiducialImpl *classifyPatch(const core::Img8u &image, int *rot, bool returnRejectedQuads, cv::ImageRegion r) = 0;
103 
105 
106  virtual void getQuadRectificationParameters(utils::Size &markerSizeWithBorder,
107  utils::Size &markerSizeWithoutBorder) = 0;
108 
110  QuadDetector& getQuadDetector();
111 
112  };
113  } // namespace markers
114 }
115 
undocument this line if you encounter any issues!
Definition: Any.h:37
std::bitset<(int) FeatureCount > FeatureSet
FeatureSet class.
Definition: Fiducial.h:80
Tool-class for detecting tilted quads in images.
Definition: QuadDetector.h:62
std::string getIntermediateImageNames() const
returns a list (comma separated) of all available intermediate image results
virtual SourceImageType getPreProcessing() const
this plugin uses the binarisation from the internally used quad-detector
Definition: FiducialDetectorPluginForQuads.h:72
const std::vector< Fiducial > & detect(const core::ImgBase *image)
detects markers in the given and returns all found markers
SourceImageType
Enumeration for differnt source image types.
Definition: FiducialDetectorPlugin.h:117
const core::ImgBase * getIntermediateImage(const std::string &name) const
returns the intermediate result image associated with given name
Utility structure that utilizes an std::map as parameter list.
Definition: ParamList.h:44
virtual void prepareForPatchClassification()
this method is called before the patch classification loop is started
Definition: FiducialDetectorPluginForQuads.h:99
Size class of the ICL.
Definition: Size.h:61
ImageRegion Structure providing region feature information.
Definition: ImageRegion.h:99
Fiducial::FeatureSet getFeatures() const
returns the list of supported features
FiducialDetectorPlugin for quad-markers like ARToolkit and BCH-Code markers.
Definition: FiducialDetectorPluginForQuads.h:47
Hidden implemetation for fiduical classes.
Definition: FiducialImpl.h:76
Data * data
Internal data pointer.
Definition: FiducialDetectorPluginForQuads.h:49
Main Fiducial Detector class.
Definition: FiducialDetector.h:48
#define ICLMarkers_API
Definition: CompatMacros.h:180
Simple generic data type implementation that uses a string based data representation.
Definition: Any.h:109
ImgBase is the Image-Interface class that provides save access to underlying Img-template .
Definition: ImgBase.h:131