orb_detector.cpp
Go to the documentation of this file.
00001 
00024 #include "rgbdtools/features/orb_detector.h"
00025 
00026 namespace rgbdtools {
00027 
00028 OrbDetector::OrbDetector(): FeatureDetector(),
00029   n_features_(400),
00030   threshold_(31.0)
00031 {
00032   mutex_.lock();
00033   
00034   orb_detector_.reset(
00035     new cv::OrbFeatureDetector(n_features_, 1.2f, 8, threshold_, 0, 2, 0, 31));
00036   
00037   mutex_.unlock();
00038 }
00039 
00040 OrbDetector::~OrbDetector()
00041 {
00042 
00043 }
00044 
00045 void OrbDetector::findFeatures(RGBDFrame& frame, const cv::Mat& input_img)
00046 {
00047   mutex_.lock();
00048    
00049   cv::Mat mask(frame.depth_img.size(), CV_8UC1);
00050   frame.depth_img.convertTo(mask, CV_8U);
00051 
00052   orb_detector_->detect(input_img, frame.keypoints, mask);
00053 
00054   if(compute_descriptors_)
00055     orb_descriptor_.compute(
00056       input_img, frame.keypoints, frame.descriptors);
00057   
00058   mutex_.unlock();
00059 }
00060 
00061 void OrbDetector::setThreshold(int threshold)
00062 {
00063   mutex_.lock();
00064   
00065   threshold_ = threshold;
00066 
00067   orb_detector_.reset(
00068     new cv::OrbFeatureDetector(n_features_, 1.2f, 8, threshold_, 0, 2, 0, 31));
00069   
00070   mutex_.unlock();
00071 }
00072 
00073 void OrbDetector::setNFeatures(int n_features)
00074 {
00075   mutex_.lock();
00076   n_features_ = n_features;
00077 
00078   orb_detector_.reset(
00079     new cv::OrbFeatureDetector(n_features_, 1.2f, 8, threshold_, 0, 2, 0, 31));
00080   
00081   mutex_.unlock();
00082 }
00083 
00084 } // namespace rgbdtools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends


lib_rgbdtools
Author(s): Ivan Dryanovski
autogenerated on Tue Aug 27 2013 10:33:54