00001 #ifndef __GEOMETRIC_VOTING_H 00002 #define __GEOMETRIC_VOTING_H 00003 00004 #include <map> 00005 #include <string> 00006 #ifndef NDEBUG 00007 #include <mimas/mm_image_qtoutput.h> 00008 #endif 00009 #include <mimas/mm_xml_reference.h> 00010 #include "geometric_map.hh" 00011 #include "recognition_method_4dof.hh" 00012 #include "tools.hh" 00013 #include "voting_table.hh" 00014 00023 class geometric_voting_plugin: public recognition_method_4dof 00024 { 00025 public: 00034 geometric_voting_plugin( const calibration_ptr &_calib, 00035 const mimas::mm_xml_reference< XalanElement > 00036 &configuration, 00037 bool _verbose ); 00042 virtual std::vector< match > recognise 00043 ( const mimas::mm_image< unsigned char > &image, 00044 double timestamp, 00045 mi_scene_ptr scene ) const; 00046 protected: 00050 int fringe; 00054 int sampling_rate; 00056 double timeout; 00058 short int min_gradient; 00062 std::map< std::string, voting_table_ptr > models; 00063 #ifndef NDEBUG 00065 mutable mimas::mm_image_qtoutput< mimas::mm_rgba< unsigned char > > display; 00066 #endif 00067 }; 00068 00069 #endif