Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CornerDetectorBase.hh
1 /*
2 This file is part of the BIAS library (Basic ImageAlgorithmS).
3 
4 Copyright (C) 2003-2009 (see file CONTACT for details)
5  Multimediale Systeme der Informationsverarbeitung
6  Institut fuer Informatik
7  Christian-Albrechts-Universitaet Kiel
8 
9 
10 BIAS is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14 
15 BIAS is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU Lesser General Public License for more details.
19 
20 You should have received a copy of the GNU Lesser General Public License
21 along with BIAS; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24 
25 
26 #ifndef __CornerDetectorBase_hh__
27 #define __CornerDetectorBase_hh__
28 
29 #include <bias_config.h>
30 
31 #include <string>
32 
33 #include <Base/Image/Image.hh>
34 #include <Base/Geometry/HomgPoint2D.hh>
35 
36 #define QUAL float
37 
38 #define D_CD_SUSAN 0x00000001
39 #define D_CD_SUSAN_QUALITY 0x00000002
40 #define D_CD_WRITE_DEBUG_IM 0x00000004
41 #define D_CD_FEATURES 0x00000008
42 #define D_CD_INIT 0x00000010
43 
44 namespace BIAS {
45 
46  /**
47  @class CornerDetectorBase
48  @ingroup g_feature
49  @brief purly virtual interface defining class for corner detectors
50  @author woelk 09/2004
51  */
52  template <class StorageType>
53  class BIASFeatureDetector_EXPORT CornerDetectorBase : public Debug
54  {
55  public:
56  /** the differnet types of corner detectors */
57  enum ECDType {CDT_Invalid, CDT_Susan, CDT_Harris,
58  CDT_Foerstner, CDT_KLT, CDT_Laplace};
59  public:
61  virtual ~CornerDetectorBase();
62 
63  /** purely virtual interface definition */
64  virtual int Detect(const Image<StorageType>& image,
65  std::vector<HomgPoint2D>& p,
66  std::vector<QUAL>& quality);
67 
68  ///////////////////////////////////////////////////////////////////////
69 
70  inline void SetMaxNumFeatures(const int maxnum)
71  { _MaxNum = maxnum; }
72  /** @brief @author Dennis Herzog */
73  inline int GetMaxNumFeatures()
74  { return _MaxNum; }
75 
76  protected:
77  /** @todo implement tiling mechanism */
78  int _NumTilesX, _NumTilesY;
79 
80  /// maximum number of corners to return
81  int _MaxNum;
82  }; // class
83 
84 
85 } // namespace
86 
87 #endif // __CornerDetectorBase_hh__
void SetMaxNumFeatures(const int maxnum)
ECDType
the differnet types of corner detectors
int _MaxNum
maximum number of corners to return
The image template class for specific storage types.
Definition: Image.hh:78
purly virtual interface defining class for corner detectors