Go to the documentation of this file.00001
00034 #ifndef __SURF_3D_DETECTOR__
00035 #define __SURF_3D_DETECTOR__
00036
00037 #include "ObjectModel.h"
00038 #include "ObjectDetectorMethod.h"
00039 #include "re_msgs/DetectedObject.h"
00040
00041 #include "DVision.h"
00042 #include <vector>
00043
00044 typedef DVision::SurfSet SurfSet;
00045
00046
00047 #define VOLUME_DEBUG_ENABLED 1
00048
00049 class Surf3DDetector: public ObjectDetectorMethod
00050 {
00051 public:
00052
00053 #if VOLUME_DEBUG_ENABLED
00054 Surf3DDetector(): m_detect_counter(0){}
00055 #else
00056 Surf3DDetector(){}
00057 #endif
00058
00059 virtual ~Surf3DDetector(){}
00060
00069 void detect(ObjectDetectorMethod::DetectionData &data,
00070 ObjectModel &model,
00071 re_msgs::DetectedObject &detection);
00072
00073 protected:
00074
00092 bool detectWithPnP(const SurfSet &scene_surfset,
00093 ObjectModel &model,
00094 ObjectModel::Face &face, const std::vector<int> &model_indices,
00095 const std::vector<int> &scene_indices, const std::vector<float> &distances,
00096 const ObjectDetectorMethod::DetectionData &data,
00097 const double maxReprojectionError, bool doReChecking,
00098 re_msgs::DetectedObject &detection) ;
00099
00100 protected:
00101
00102 #if VOLUME_DEBUG_ENABLED
00103 int m_detect_counter;
00104 std::string m_debug_prefix;
00105 #endif
00106
00107 };
00108
00109 #endif