00001 /* 00002 * ObjectFinder.H 00003 * 00004 * Uses SIFT/SURF? to find specified images in a camera feed. 00005 */ 00006 #include "Component/ModelManager.H" 00007 #include "Component/OptionManager.H" 00008 #include "Component/ModelComponent.H" 00009 #include "Component/ModelParam.H" 00010 00011 #include "Robots/BeoHawk/vision/VisionBrainComponentI.H" 00012 #include "Image/Image.H" 00013 #include "Image/Pixels.H" 00014 00015 #include "Ice/RobotBrainObjects.ice.H" 00016 #include "Robots/BeoHawk/BeoHawkSimEvents.ice.H" 00017 #include "Ice/RobotSimEvents.ice.H" 00018 #include "Ice/IceImageUtils.H" 00019 #include <IceUtil/Thread.h> 00020 00021 #ifndef OBJECTFINDER_H_ 00022 #define OBJECTFINDER_H_ 00023 00024 class ObjectFinder : public VisionBrainComponentI { 00025 00026 public: 00027 ObjectFinder(OptionManager &mgr, 00028 const std::string &descrName = "ObjectFinder", 00029 const std::string &tagName = "ObjectFinder"); 00030 virtual ~ObjectFinder(); 00031 00032 virtual void registerTopics(); 00033 virtual void updateFrame(Image<PixRGB<byte> > img, bool isFwdCamera); 00034 void buildFeatureDB(); 00035 00036 private: 00037 OModelParam<std::string> imagesDir; 00038 FastFeatureDB featureDB; 00039 00040 00041 00042 }; 00043 00044 #endif /* OBJECTFINDER_H_ */