00001 00024 #ifndef RGBDTOOLS_ORB_DETECTOR_H 00025 #define RGBDTOOLS_ORB_DETECTOR_H 00026 00027 #include <opencv2/core/core.hpp> 00028 #include <opencv2/features2d/features2d.hpp> 00029 00030 #include "rgbdtools/features/feature_detector.h" 00031 00032 namespace rgbdtools { 00033 00036 class OrbDetector: public FeatureDetector 00037 { 00038 public: 00039 00042 OrbDetector(); 00043 00046 ~OrbDetector(); 00047 00053 void findFeatures(RGBDFrame& frame, const cv::Mat& input_img); 00054 00058 void setThreshold(int threshold); 00059 00063 void setNFeatures(int n_features); 00064 00065 private: 00066 00067 int n_features_; 00068 double threshold_; 00069 00070 cv::OrbDescriptorExtractor orb_descriptor_; 00071 boost::shared_ptr<cv::OrbFeatureDetector> orb_detector_; 00072 }; 00073 00074 typedef boost::shared_ptr<OrbDetector> OrbDetectorPtr; 00075 00076 } // namespace rgbdtools 00077 00078 #endif // RGBDTOOLS_ORB_DETECTOR_H