Go to the documentation of this file.00001
00024 #include "rgbdtools/features/surf_detector.h"
00025
00026 namespace rgbdtools {
00027
00028 SurfDetector::SurfDetector():FeatureDetector()
00029 {
00030 surf_detector_.reset(
00031 new cv::SurfFeatureDetector(threshold_, 4, 2, true, false));
00032 }
00033
00034 SurfDetector::~SurfDetector()
00035 {
00036
00037 }
00038
00039 void SurfDetector::findFeatures(RGBDFrame& frame, const cv::Mat& input_img)
00040 {
00041 cv::Mat mask(frame.depth_img.size(), CV_8UC1);
00042 frame.depth_img.convertTo(mask, CV_8U);
00043
00044 surf_detector_->detect(input_img, frame.keypoints, mask);
00045
00046 if(compute_descriptors_)
00047 surf_descriptor_.compute(
00048 input_img, frame.keypoints, frame.descriptors);
00049 }
00050
00051 void SurfDetector::setThreshold(double threshold)
00052 {
00053 threshold_ = threshold;
00054
00055 surf_detector_.reset(
00056 new cv::SurfFeatureDetector(threshold_, 4, 2, true, false));
00057 }
00058
00059 }