00001 00024 #ifndef CCNY_RGBD_SURF_DETECTOR_H 00025 #define CCNY_RGBD_SURF_DETECTOR_H 00026 00027 #include <opencv2/nonfree/features2d.hpp> 00028 00029 #include "ccny_rgbd/rgbd_util.h" 00030 #include "ccny_rgbd/features/feature_detector.h" 00031 00032 namespace ccny_rgbd { 00033 00036 class SurfDetector: public FeatureDetector 00037 { 00038 public: 00039 00042 SurfDetector(); 00043 00046 ~SurfDetector(); 00047 00053 void findFeatures(RGBDFrame& frame, const cv::Mat& input_img); 00054 00058 void setThreshold(double threshold); 00059 00060 private: 00061 00062 double threshold_; 00063 00065 boost::shared_ptr<cv::SurfFeatureDetector> surf_detector_; 00066 00067 cv::SurfDescriptorExtractor surf_descriptor_; 00068 }; 00069 00070 typedef boost::shared_ptr<SurfDetector> SurfDetectorPtr; 00071 00072 } //namespace ccny_rgbd 00073 00074 #endif // CCNY_RGBD_SURF_DETECTOR_H