Features2d.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the Universite de Sherbrooke nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FEATURES2D_H_
29 #define FEATURES2D_H_
30 
31 #include "rtabmap/core/RtabmapExp.h" // DLL export/import defines
32 
33 #include <opencv2/highgui/highgui.hpp>
34 #include <opencv2/core/core.hpp>
35 #include <opencv2/features2d/features2d.hpp>
36 #include <list>
39 
40 #if CV_MAJOR_VERSION < 3
41 namespace cv{
42 class SURF;
43 class SIFT;
44 namespace gpu {
45  class SURF_GPU;
46  class ORB_GPU;
47  class FAST_GPU;
48 }
49 }
50 typedef cv::SIFT CV_SIFT;
51 typedef cv::SURF CV_SURF;
52 typedef cv::FastFeatureDetector CV_FAST;
53 typedef cv::FREAK CV_FREAK;
54 typedef cv::GFTTDetector CV_GFTT;
55 typedef cv::BriefDescriptorExtractor CV_BRIEF;
56 typedef cv::BRISK CV_BRISK;
57 typedef cv::gpu::SURF_GPU CV_SURF_GPU;
58 typedef cv::gpu::ORB_GPU CV_ORB_GPU;
59 typedef cv::gpu::FAST_GPU CV_FAST_GPU;
60 #else
61 namespace cv{
62 namespace xfeatures2d {
63 class FREAK;
64 class DAISY;
65 class BriefDescriptorExtractor;
66 #if CV_MAJOR_VERSION < 3 || (CV_MAJOR_VERSION == 4 && CV_MINOR_VERSION <= 3) || (CV_MAJOR_VERSION == 3 && (CV_MINOR_VERSION < 4 || (CV_MINOR_VERSION==4 && CV_SUBMINOR_VERSION<11)))
67 class SIFT;
68 #endif
69 class SURF;
70 }
71 namespace cuda {
72 class FastFeatureDetector;
73 class ORB;
74 class SURF_CUDA;
75 }
76 }
77 #if CV_MAJOR_VERSION < 3 || (CV_MAJOR_VERSION == 4 && CV_MINOR_VERSION <= 3) || (CV_MAJOR_VERSION == 3 && (CV_MINOR_VERSION < 4 || (CV_MINOR_VERSION==4 && CV_SUBMINOR_VERSION<11)))
78 typedef cv::xfeatures2d::SIFT CV_SIFT;
79 #else
80 typedef cv::SIFT CV_SIFT; // SIFT is back in features2d since 4.4.0 / 3.4.11
81 #endif
82 typedef cv::xfeatures2d::SURF CV_SURF;
83 typedef cv::FastFeatureDetector CV_FAST;
84 typedef cv::xfeatures2d::FREAK CV_FREAK;
85 typedef cv::xfeatures2d::DAISY CV_DAISY;
86 typedef cv::GFTTDetector CV_GFTT;
87 typedef cv::xfeatures2d::BriefDescriptorExtractor CV_BRIEF;
88 typedef cv::BRISK CV_BRISK;
89 typedef cv::ORB CV_ORB;
90 typedef cv::cuda::SURF_CUDA CV_SURF_GPU;
91 typedef cv::cuda::ORB CV_ORB_GPU;
92 typedef cv::cuda::FastFeatureDetector CV_FAST_GPU;
93 #endif
94 
95 namespace rtabmap {
96 
97 class ORBextractor;
98 class SPDetector;
99 
100 class Stereo;
101 #if CV_MAJOR_VERSION < 3
102 class CV_ORB;
103 #endif
104 
105 // Feature2D
107 public:
108  enum Type {kFeatureUndef=-1,
109  kFeatureSurf=0,
110  kFeatureSift=1,
111  kFeatureOrb=2,
112  kFeatureFastFreak=3,
113  kFeatureFastBrief=4,
114  kFeatureGfttFreak=5,
115  kFeatureGfttBrief=6,
116  kFeatureBrisk=7,
117  kFeatureGfttOrb=8, //new 0.10.11
118  kFeatureKaze=9, //new 0.13.2
119  kFeatureOrbOctree=10, //new 0.19.2
120  kFeatureSuperPointTorch=11, //new 0.19.7
121  kFeatureSurfFreak=12, //new 0.20.4
122  kFeatureGfttDaisy=13, //new 0.20.6
123  kFeatureSurfDaisy=14}; //new 0.20.6
124 
125  static std::string typeName(Type type)
126  {
127  switch(type){
128  case kFeatureSurf:
129  return "SURF";
130  case kFeatureSift:
131  return "SIFT";
132  case kFeatureOrb:
133  return "ORB";
134  case kFeatureFastFreak:
135  return "FAST+FREAK";
136  case kFeatureFastBrief:
137  return "FAST+BRIEF";
138  case kFeatureGfttFreak:
139  return "GFTT+Freak";
140  case kFeatureGfttBrief:
141  return "GFTT+Brief";
142  case kFeatureBrisk:
143  return "BRISK";
144  case kFeatureGfttOrb:
145  return "GFTT+ORB";
146  case kFeatureKaze:
147  return "KAZE";
148  case kFeatureOrbOctree:
149  return "ORB-OCTREE";
150  case kFeatureSuperPointTorch:
151  return "SUPERPOINT";
152  case kFeatureSurfFreak:
153  return "SURF+Freak";
154  case kFeatureGfttDaisy:
155  return "GFTT+Daisy";
156  case kFeatureSurfDaisy:
157  return "SURF+Daisy";
158  default:
159  return "Unknown";
160  }
161  }
162 
163  static Feature2D * create(const ParametersMap & parameters = ParametersMap());
164  static Feature2D * create(Feature2D::Type type, const ParametersMap & parameters = ParametersMap()); // for convenience
165 
166  static void filterKeypointsByDepth(
167  std::vector<cv::KeyPoint> & keypoints,
168  const cv::Mat & depth,
169  float minDepth,
170  float maxDepth);
171  static void filterKeypointsByDepth(
172  std::vector<cv::KeyPoint> & keypoints,
173  cv::Mat & descriptors,
174  const cv::Mat & depth,
175  float minDepth,
176  float maxDepth);
177  static void filterKeypointsByDepth(
178  std::vector<cv::KeyPoint> & keypoints,
179  cv::Mat & descriptors,
180  std::vector<cv::Point3f> & keypoints3D,
181  float minDepth,
182  float maxDepth);
183 
184  static void filterKeypointsByDisparity(
185  std::vector<cv::KeyPoint> & keypoints,
186  const cv::Mat & disparity,
187  float minDisparity);
188  static void filterKeypointsByDisparity(
189  std::vector<cv::KeyPoint> & keypoints,
190  cv::Mat & descriptors,
191  const cv::Mat & disparity,
192  float minDisparity);
193 
194  static void limitKeypoints(std::vector<cv::KeyPoint> & keypoints, int maxKeypoints);
195  static void limitKeypoints(std::vector<cv::KeyPoint> & keypoints, cv::Mat & descriptors, int maxKeypoints);
196  static void limitKeypoints(std::vector<cv::KeyPoint> & keypoints, std::vector<cv::Point3f> & keypoints3D, cv::Mat & descriptors, int maxKeypoints);
197  static void limitKeypoints(const std::vector<cv::KeyPoint> & keypoints, std::vector<bool> & inliers, int maxKeypoints);
198  static void limitKeypoints(const std::vector<cv::KeyPoint> & keypoints, std::vector<bool> & inliers, int maxKeypoints, const cv::Size & imageSize, int gridRows, int gridCols);
199 
200  static cv::Rect computeRoi(const cv::Mat & image, const std::string & roiRatios);
201  static cv::Rect computeRoi(const cv::Mat & image, const std::vector<float> & roiRatios);
202 
203  int getMaxFeatures() const {return maxFeatures_;}
204  float getMinDepth() const {return _minDepth;}
205  float getMaxDepth() const {return _maxDepth;}
206  int getGridRows() const {return gridRows_;}
207  int getGridCols() const {return gridCols_;}
208 
209 public:
210  virtual ~Feature2D();
211 
212  std::vector<cv::KeyPoint> generateKeypoints(
213  const cv::Mat & image,
214  const cv::Mat & mask = cv::Mat());
215  cv::Mat generateDescriptors(
216  const cv::Mat & image,
217  std::vector<cv::KeyPoint> & keypoints) const;
218  std::vector<cv::Point3f> generateKeypoints3D(
219  const SensorData & data,
220  const std::vector<cv::KeyPoint> & keypoints) const;
221 
222  virtual void parseParameters(const ParametersMap & parameters);
223  virtual const ParametersMap & getParameters() const {return parameters_;}
224  virtual Feature2D::Type getType() const = 0;
225 
226 protected:
227  Feature2D(const ParametersMap & parameters = ParametersMap());
228 
229 private:
230  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat()) = 0;
231  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const = 0;
232 
233 private:
236  float _maxDepth; // 0=inf
237  float _minDepth;
238  std::vector<float> _roiRatios; // size 4
241  double _subPixEps;
244  // Stereo stuff
246 };
247 
248 //SURF
249 class RTABMAP_EXP SURF : public Feature2D
250 {
251 public:
252  SURF(const ParametersMap & parameters = ParametersMap());
253  virtual ~SURF();
254 
255  virtual void parseParameters(const ParametersMap & parameters);
256  virtual Feature2D::Type getType() const {return kFeatureSurf;}
257 
258 private:
259  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
260  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
261 
262 private:
266  bool extended_;
267  bool upright_;
270 
271  cv::Ptr<CV_SURF> _surf;
272  cv::Ptr<CV_SURF_GPU> _gpuSurf;
273 };
274 
275 //SIFT
276 class RTABMAP_EXP SIFT : public Feature2D
277 {
278 public:
279  SIFT(const ParametersMap & parameters = ParametersMap());
280  virtual ~SIFT();
281 
282  virtual void parseParameters(const ParametersMap & parameters);
283  virtual Feature2D::Type getType() const {return kFeatureSift;}
284 
285 private:
286  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
287  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
288 
289 private:
293  double sigma_;
294  bool rootSIFT_;
295 
296  cv::Ptr<CV_SIFT> _sift;
297 };
298 
299 //ORB
300 class RTABMAP_EXP ORB : public Feature2D
301 {
302 public:
303  ORB(const ParametersMap & parameters = ParametersMap());
304  virtual ~ORB();
305 
306  virtual void parseParameters(const ParametersMap & parameters);
307  virtual Feature2D::Type getType() const {return kFeatureOrb;}
308 
309 private:
310  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
311  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
312 
313 private:
315  int nLevels_;
318  int WTA_K_;
321  bool gpu_;
322 
325 
326  cv::Ptr<CV_ORB> _orb;
327  cv::Ptr<CV_ORB_GPU> _gpuOrb;
328 };
329 
330 //FAST
331 class RTABMAP_EXP FAST : public Feature2D
332 {
333 public:
334  FAST(const ParametersMap & parameters = ParametersMap());
335  virtual ~FAST();
336 
337  virtual void parseParameters(const ParametersMap & parameters);
338  virtual Feature2D::Type getType() const {return kFeatureUndef;}
339 
340 private:
341  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
342  virtual cv::Mat generateDescriptorsImpl(const cv::Mat &, std::vector<cv::KeyPoint> &) const {return cv::Mat();}
343 
344 private:
347  bool gpu_;
353  int fastCV_;
354 
358  uint32_t* fastCVCorners_= NULL;
359  uint32_t* fastCVCornerScores_ = NULL;
360  void* fastCVTempBuf_ = NULL;
361 
362  cv::Ptr<cv::FeatureDetector> _fast;
363  cv::Ptr<CV_FAST_GPU> _gpuFast;
364 };
365 
366 //FAST_BRIEF
368 {
369 public:
370  FAST_BRIEF(const ParametersMap & parameters = ParametersMap());
371  virtual ~FAST_BRIEF();
372 
373  virtual void parseParameters(const ParametersMap & parameters);
374  virtual Feature2D::Type getType() const {return kFeatureFastBrief;}
375 
376 private:
377  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
378 
379 private:
380  int bytes_;
381 
382  cv::Ptr<CV_BRIEF> _brief;
383 };
384 
385 //FAST_FREAK
387 {
388 public:
389  FAST_FREAK(const ParametersMap & parameters = ParametersMap());
390  virtual ~FAST_FREAK();
391 
392  virtual void parseParameters(const ParametersMap & parameters);
393  virtual Feature2D::Type getType() const {return kFeatureFastFreak;}
394 
395 private:
396  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
397 
398 private:
403 
404  cv::Ptr<CV_FREAK> _freak;
405 };
406 
407 //GFTT
408 class RTABMAP_EXP GFTT : public Feature2D
409 {
410 public:
411  GFTT(const ParametersMap & parameters = ParametersMap());
412  virtual ~GFTT();
413 
414  virtual void parseParameters(const ParametersMap & parameters);
415 
416 private:
417  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
418 
419 private:
421  double _minDistance;
424  double _k;
425 
426  cv::Ptr<CV_GFTT> _gftt;
427 };
428 
429 //GFTT_BRIEF
431 {
432 public:
433  GFTT_BRIEF(const ParametersMap & parameters = ParametersMap());
434  virtual ~GFTT_BRIEF();
435 
436  virtual void parseParameters(const ParametersMap & parameters);
437  virtual Feature2D::Type getType() const {return kFeatureGfttBrief;}
438 
439 private:
440  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
441 
442 private:
443  int bytes_;
444 
445  cv::Ptr<CV_BRIEF> _brief;
446 };
447 
448 //GFTT_FREAK
450 {
451 public:
452  GFTT_FREAK(const ParametersMap & parameters = ParametersMap());
453  virtual ~GFTT_FREAK();
454 
455  virtual void parseParameters(const ParametersMap & parameters);
456  virtual Feature2D::Type getType() const {return kFeatureGfttFreak;}
457 
458 private:
459  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
460 
461 private:
466 
467  cv::Ptr<CV_FREAK> _freak;
468 };
469 
470 //SURF_FREAK
472 {
473 public:
474  SURF_FREAK(const ParametersMap & parameters = ParametersMap());
475  virtual ~SURF_FREAK();
476 
477  virtual void parseParameters(const ParametersMap & parameters);
478  virtual Feature2D::Type getType() const {return kFeatureSurfFreak;}
479 
480 private:
481  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
482 
483 private:
488 
489  cv::Ptr<CV_FREAK> _freak;
490 };
491 
492 //GFTT_ORB
493 class RTABMAP_EXP GFTT_ORB : public GFTT
494 {
495 public:
496  GFTT_ORB(const ParametersMap & parameters = ParametersMap());
497  virtual ~GFTT_ORB();
498 
499  virtual void parseParameters(const ParametersMap & parameters);
500  virtual Feature2D::Type getType() const {return kFeatureGfttOrb;}
501 
502 private:
503  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
504 
505 private:
507 };
508 
509 //BRISK
511 {
512 public:
513  BRISK(const ParametersMap & parameters = ParametersMap());
514  virtual ~BRISK();
515 
516  virtual void parseParameters(const ParametersMap & parameters);
517  virtual Feature2D::Type getType() const {return kFeatureBrisk;}
518 
519 private:
520  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
521  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
522 
523 private:
524  int thresh_;
525  int octaves_;
527 
528  cv::Ptr<CV_BRISK> brisk_;
529 };
530 
531 //KAZE
532 class RTABMAP_EXP KAZE : public Feature2D
533 {
534 public:
535  KAZE(const ParametersMap & parameters = ParametersMap());
536  virtual ~KAZE();
537 
538  virtual void parseParameters(const ParametersMap & parameters);
539  virtual Feature2D::Type getType() const { return kFeatureKaze; }
540 
541 private:
542  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
543  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
544 
545 private:
546  bool extended_;
547  bool upright_;
548  float threshold_;
552 
553 #if CV_MAJOR_VERSION > 2
554  cv::Ptr<cv::KAZE> kaze_;
555 #endif
556 };
557 
558 //ORB OCTREE
560 {
561 public:
562  ORBOctree(const ParametersMap & parameters = ParametersMap());
563  virtual ~ORBOctree();
564 
565  virtual void parseParameters(const ParametersMap & parameters);
566  virtual Feature2D::Type getType() const {return kFeatureOrbOctree;}
567 
568 private:
569  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
570  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
571 
572 private:
574  int nLevels_;
579 
580  cv::Ptr<ORBextractor> _orb;
581  cv::Mat descriptors_;
582 };
583 
584 //SuperPointTorch
586 {
587 public:
588  SuperPointTorch(const ParametersMap & parameters = ParametersMap());
589  virtual ~SuperPointTorch();
590 
591  virtual void parseParameters(const ParametersMap & parameters);
592  virtual Feature2D::Type getType() const { return kFeatureSuperPointTorch; }
593 
594 private:
595  virtual std::vector<cv::KeyPoint> generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
596  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
597 
598  cv::Ptr<SPDetector> superPoint_;
599 
600  std::string path_;
601  float threshold_;
602  bool nms_;
604  bool cuda_;
605 };
606 
607 //GFTT_DAISY
609 {
610 public:
611  GFTT_DAISY(const ParametersMap & parameters = ParametersMap());
612  virtual ~GFTT_DAISY();
613 
614  virtual void parseParameters(const ParametersMap & parameters);
615  virtual Feature2D::Type getType() const {return kFeatureGfttDaisy;}
616 
617 private:
618  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
619 
620 private:
625 
626 #if CV_MAJOR_VERSION > 2
627  cv::Ptr<CV_DAISY> _daisy;
628 #endif
629 };
630 
631 //SURF_DAISY
633 {
634 public:
635  SURF_DAISY(const ParametersMap & parameters = ParametersMap());
636  virtual ~SURF_DAISY();
637 
638  virtual void parseParameters(const ParametersMap & parameters);
639  virtual Feature2D::Type getType() const {return kFeatureSurfDaisy;}
640 
641 private:
642  virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector<cv::KeyPoint> & keypoints) const;
643 
644 private:
649 
650 #if CV_MAJOR_VERSION > 2
651  cv::Ptr<CV_DAISY> _daisy;
652 #endif
653 };
654 
655 }
656 
657 #endif /* FEATURES2D_H_ */
GLM_FUNC_DECL genIType mask(genIType const &count)
#define NULL
virtual Feature2D::Type getType() const
Definition: Features2d.h:500
int fastCVLastImageHeight_
Definition: Features2d.h:357
int nOctaveLayers_
Definition: Features2d.h:550
virtual Feature2D::Type getType() const
Definition: Features2d.h:307
double gpuKeypointsRatio_
Definition: Features2d.h:348
virtual Feature2D::Type getType() const
Definition: Features2d.h:478
double _qualityLevel
Definition: Features2d.h:420
cv::Ptr< CV_FREAK > _freak
Definition: Features2d.h:404
cv::SIFT CV_SIFT
Definition: Features2d.h:50
double edgeThreshold_
Definition: Features2d.h:292
virtual Feature2D::Type getType() const
Definition: Features2d.h:338
float getMinDepth() const
Definition: Features2d.h:204
cv::Ptr< CV_ORB > _orb
Definition: Features2d.h:326
cv::Ptr< CV_FREAK > _freak
Definition: Features2d.h:467
float scaleFactor_
Definition: Features2d.h:314
cv::BriefDescriptorExtractor CV_BRIEF
Definition: Features2d.h:55
cv::Ptr< ORBextractor > _orb
Definition: Features2d.h:580
bool nonmaxSuppression_
Definition: Features2d.h:346
std::map< std::string, std::string > ParametersMap
Definition: Parameters.h:43
double contrastThreshold_
Definition: Features2d.h:291
std::vector< float > _roiRatios
Definition: Features2d.h:238
int nOctaveLayers_
Definition: Features2d.h:290
cv::Ptr< CV_BRISK > brisk_
Definition: Features2d.h:528
cv::Ptr< CV_ORB_GPU > _gpuOrb
Definition: Features2d.h:327
virtual Feature2D::Type getType() const
Definition: Features2d.h:283
Definition: Features2d.h:41
cv::FastFeatureDetector CV_FAST
Definition: Features2d.h:52
int getMaxFeatures() const
Definition: Features2d.h:203
float getMaxDepth() const
Definition: Features2d.h:205
cv::SURF CV_SURF
Definition: Features2d.h:51
virtual Feature2D::Type getType() const
Definition: Features2d.h:517
virtual Feature2D::Type getType() const
Definition: Features2d.h:437
cv::Ptr< CV_FAST_GPU > _gpuFast
Definition: Features2d.h:363
#define RTABMAP_EXP
Definition: RtabmapExp.h:38
cv::BRISK CV_BRISK
Definition: Features2d.h:56
cv::Ptr< SPDetector > superPoint_
Definition: Features2d.h:598
virtual Feature2D::Type getType() const
Definition: Features2d.h:539
int getGridRows() const
Definition: Features2d.h:206
virtual Feature2D::Type getType() const
Definition: Features2d.h:566
cv::Ptr< CV_FREAK > _freak
Definition: Features2d.h:489
cv::Rect RTABMAP_EXP computeRoi(const cv::Mat &image, const std::string &roiRatios)
Definition: util2d.cpp:1113
int getGridCols() const
Definition: Features2d.h:207
static std::string typeName(Type type)
Definition: Features2d.h:125
cv::gpu::SURF_GPU CV_SURF_GPU
Definition: Features2d.h:57
int fastThreshold_
Definition: Features2d.h:323
float patternScale_
Definition: Features2d.h:526
double sigma_
Definition: Features2d.h:293
cv::Ptr< CV_BRIEF > _brief
Definition: Features2d.h:382
detail::uint32 uint32_t
Definition: fwd.hpp:916
cv::Mat descriptors_
Definition: Features2d.h:581
cv::Ptr< CV_SURF > _surf
Definition: Features2d.h:271
int nOctaveLayers_
Definition: Features2d.h:265
float gpuKeypointsRatio_
Definition: Features2d.h:268
cv::FREAK CV_FREAK
Definition: Features2d.h:53
cv::Ptr< CV_BRIEF > _brief
Definition: Features2d.h:445
cv::Ptr< CV_SIFT > _sift
Definition: Features2d.h:296
int fastCVMaxFeatures_
Definition: Features2d.h:356
float threshold_
Definition: Features2d.h:548
virtual Feature2D::Type getType() const
Definition: Features2d.h:592
virtual Feature2D::Type getType() const
Definition: Features2d.h:456
bool fastCVinit_
Definition: Features2d.h:355
virtual Feature2D::Type getType() const
Definition: Features2d.h:393
double _minDistance
Definition: Features2d.h:421
bool gpuVersion_
Definition: Features2d.h:269
int edgeThreshold_
Definition: Features2d.h:316
cv::gpu::ORB_GPU CV_ORB_GPU
Definition: Features2d.h:58
virtual const ParametersMap & getParameters() const
Definition: Features2d.h:223
cv::GFTTDetector CV_GFTT
Definition: Features2d.h:54
cv::gpu::FAST_GPU CV_FAST_GPU
Definition: Features2d.h:59
virtual Feature2D::Type getType() const
Definition: Features2d.h:256
bool nonmaxSuppresion_
Definition: Features2d.h:324
virtual Feature2D::Type getType() const
Definition: Features2d.h:639
virtual cv::Mat generateDescriptorsImpl(const cv::Mat &, std::vector< cv::KeyPoint > &) const
Definition: Features2d.h:342
cv::Ptr< cv::FeatureDetector > _fast
Definition: Features2d.h:362
double hessianThreshold_
Definition: Features2d.h:263
virtual Feature2D::Type getType() const
Definition: Features2d.h:615
cv::Ptr< CV_GFTT > _gftt
Definition: Features2d.h:426
ParametersMap parameters_
Definition: Features2d.h:234
bool _useHarrisDetector
Definition: Features2d.h:423
cv::Ptr< CV_SURF_GPU > _gpuSurf
Definition: Features2d.h:272
virtual Feature2D::Type getType() const
Definition: Features2d.h:374


rtabmap
Author(s): Mathieu Labbe
autogenerated on Mon Dec 14 2020 03:34:58