00001 #include "Component/ModelManager.H" 00002 #include "Component/OptionManager.H" 00003 00004 #include "Component/ModelComponent.H" 00005 #include "Component/ModelParam.H" 00006 #include "Media/FrameSeries.H" 00007 #include "Transport/FrameInfo.H" 00008 #include "Raster/GenericFrame.H" 00009 #include "Image/Image.H" 00010 #include "GUI/XWinManaged.H" 00011 #include "GUI/ImageDisplayStream.H" 00012 #include "Image/Pixels.H" 00013 #include "Robots/SeaBeeIII/VisionBrainComponentI.H" 00014 00015 #include "VFAT/segmentImage2.H" 00016 00017 #include "Ice/RobotBrainObjects.ice.H" 00018 #include "Ice/RobotSimEvents.ice.H" 00019 #include "Ice/IceImageUtils.H" 00020 #include <IceUtil/Thread.h> 00021 00022 #define IMG_WIDTH 320 00023 #define IMG_HEIGHT 240 00024 00025 #ifndef COLORSEGEMENTERI_H 00026 #define COLORSEGEMENTERI_H 00027 00028 00029 class ColorSegmenterI : public VisionBrainComponentI 00030 { 00031 public: 00032 ColorSegmenterI(OptionManager& mgr, 00033 const std::string& descrName = "ColorSegmenter", 00034 const std::string& tagName = "ColorSegmenter"); 00035 00036 ~ColorSegmenterI(); 00037 00038 void updateFrame(Image<PixRGB<byte> > img, bool isFwdCamera); 00039 00040 //Get rid of this function! There should only be one update frame... 00041 void updateFrame(Image<PixRGB<byte> > img, string cameraId); 00042 00043 virtual void registerTopics(); 00044 //virtual void updateMessage(const RobotSimEvents::EventMessagePtr&, 00045 // const Ice::Current&); 00046 00047 private: 00048 00049 bool itsInit; 00050 bool itsRunning; 00051 segmentImage2 itsBuoySegmenter; 00052 segmentImage2 itsPipeSegmenter; 00053 }; 00054 00055 #endif