mi_recognition.hh

00001 #ifndef __MI_RECOGNITION_H
00002 #define __MI_RECOGNITION_H
00003 
00004 #include <map>
00005 #include <mimas/mm_image.h>
00006 #include <mimas/mm_object.h>
00007 #include <mimas/mm_xml_reference.h>
00008 #include <vector>
00009 #include "calibration.hh"
00010 #include "mi_object_type.hh"
00011 #include "mi_scene.hh"
00012 #include "recognition_method.hh"
00013 
00016 
00017 
00023 class mi_recognition: public mimas::mm_object
00024 {
00025 public:
00032   mi_recognition( const mimas::mm_xml_reference< XalanElement >
00033                   &configuration, bool _verbose );
00042   void recognise( const mimas::mm_image< unsigned char > &image,
00043                   double timestamp, mi_scene_ptr scene ) const;
00047   calibration_ptr get_calibration(void) { return calib; }
00053   std::map< std::string, mi_object_type_ptr > &get_object_types(void)
00054     { return object_types; }
00055   /* Add user-defined method (being used for "human recognition").
00056       @param name Name of recognition-method.
00057       @param method The recognition-object. */
00058   /* void add_method( const std::string &name, recognition_method_ptr method )
00059      { methods[ name ] = method; } */
00073   virtual bool human_vision( const std::string &type,
00074                              const mimas::mm_image< unsigned char > &image,
00075                              double timestamp, double *angle,
00076                              int *x, int *y ) const;
00077 protected:
00083   void remove_objects( const std::string &method,
00084                        mi_scene_ptr scene ) const;
00091   void reschedule( const std::string &method,
00092                    mi_scene_ptr scene ) const;
00098   void take_best_matches( std::vector< match > &matches,
00099                           double timestamp,
00100                           mi_scene_ptr scene,
00101                           vision_type method ) const;
00103   calibration_ptr calib;
00105   std::map< std::string, recognition_method_ptr > methods;
00107   std::map< std::string, mi_object_type_ptr > object_types;
00109   bool verbose;
00110 };
00111 
00113 typedef boost::shared_ptr< mi_recognition > mi_recognition_ptr;
00114 
00116 
00117 #endif

doxygen-1.4.5 documentation for micron-vision - Tue Jan 17 15:29:15 2006