stereo
psurf.h
Go to the documentation of this file.
1 #ifndef STEREO_PSURF_H
2 #define STEREO_PSURF_H
3 
4 #include <stereo/config.h>
5 #include <limits>
6 #include "opencv2/features2d/features2d.hpp"
7 #include <base/samples/DistanceImage.hpp>
8 #ifdef PSURF_NEEDS_LEGACY
9 #include <opencv2/legacy/compat.hpp>
10 #endif
11 
12 namespace cv
13 {
14 
15 class CV_EXPORTS_W PSURF : public CvSURFParams
16 {
17 public:
19  CV_WRAP PSURF();
21  CV_WRAP PSURF(double _hessianThreshold, int _nOctaves=4,
22  int _nOctaveLayers=2, bool _extended=false, bool _upright=false);
23 
25  CV_WRAP int descriptorSize() const;
27  CV_WRAP_AS(detect) void operator()(const Mat& img, const Mat& mask,
28  CV_OUT vector<KeyPoint>& keypoints) const;
30  CV_WRAP_AS(detect) void operator()(const Mat& img,
31  const base::samples::DistanceImage *dist_img,
32  const Mat& mask,
33  CV_OUT vector<KeyPoint>& keypoints,
34  CV_OUT vector<float>& descriptors,
35  bool useProvidedKeypoints=false) const;
36 };
37 
38 /*
39  * SurfDescriptorExtractor
40  */
41 class CV_EXPORTS PSurfDescriptorExtractor : public DescriptorExtractor
42 {
43 public:
44  PSurfDescriptorExtractor( int nOctaves=4, int nOctaveLayers=2, bool extended=false, bool upright=false );
45 
46  virtual void read( const FileNode &fn );
47  virtual void write( FileStorage &fs ) const;
48 
49  virtual int descriptorSize() const;
50  virtual int descriptorType() const;
51 
52  void setDistanceImage( const base::samples::DistanceImage *dist_img ) { this->dist_img = dist_img; }
53 
54 protected:
55  virtual void computeImpl( const Mat& image, vector<KeyPoint>& keypoints, Mat& descriptors ) const;
56 
58  const base::samples::DistanceImage *dist_img;
59 };
60 
61 }
62 
63 #endif
Definition: psurf.h:15
void setDistanceImage(const base::samples::DistanceImage *dist_img)
Definition: psurf.h:52
Definition: psurf.cpp:381
const base::samples::DistanceImage * dist_img
Definition: psurf.h:58
Definition: psurf.h:41
PSURF surf
Definition: psurf.h:57