FeaturesFinder

来源:互联网 发布:python 小脚本实例 编辑:程序博客网 时间:2024/05/20 18:52
class CV_EXPORTS FeaturesFinder{public:    virtual ~FeaturesFinder() {}    void operator ()(const Mat &image, ImageFeatures &features);    void operator ()(const Mat &image, ImageFeatures &features, const std::vector<cv::Rect> &rois);    virtual void collectGarbage() {}protected:    virtual void find(const Mat &image, ImageFeatures &features) = 0;};class CV_EXPORTS SurfFeaturesFinder : public FeaturesFinder{public:    SurfFeaturesFinder(double hess_thresh = 300., int num_octaves = 3, int num_layers = 4,                       int num_octaves_descr = /*4*/3, int num_layers_descr = /*2*/4);private:    void find(const Mat &image, ImageFeatures &features);    Ptr<FeatureDetector> detector_;    Ptr<DescriptorExtractor> extractor_;    Ptr<Feature2D> surf;};class CV_EXPORTS OrbFeaturesFinder : public FeaturesFinder{public:    OrbFeaturesFinder(Size _grid_size = Size(3,1), int nfeatures=1500, float scaleFactor=1.3f, int nlevels=5);private:    void find(const Mat &image, ImageFeatures &features);    Ptr<ORB> orb;    Size grid_size;};#ifdef HAVE_OPENCV_GPUclass CV_EXPORTS SurfFeaturesFinderGpu : public FeaturesFinder{public:    SurfFeaturesFinderGpu(double hess_thresh = 300., int num_octaves = 3, int num_layers = 4,                          int num_octaves_descr = 4, int num_layers_descr = 2);    void collectGarbage();private:    void find(const Mat &image, ImageFeatures &features);    gpu::GpuMat image_;    gpu::GpuMat gray_image_;    gpu::SURF_GPU surf_;    gpu::GpuMat keypoints_;    gpu::GpuMat descriptors_;    int num_octaves_, num_layers_;    int num_octaves_descr_, num_layers_descr_;};#endif

原创粉丝点击