ParallelSurfExtractor.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002  *  SurfExtractor.h
00003  *
00004  *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
00005  *           Universitaet Koblenz-Landau
00006  *
00007  *******************************************************************************/
00008 
00009 #ifndef SurfExtractor_H
00010 #define SurfExtractor_H
00011 
00012 #include <vector>
00013 #include <string>
00014 
00015 
00016 #include "Workers/Math/Box2D.h"
00017 #include "Workers/Math/Point2D.h"
00018 
00019 #include "../../Workers/Puma2/ImageMask.h"
00020 #include "../../Workers/Puma2/GrayLevelImage8.h"
00021 
00022 #include "KeyPoint.h"
00023 #include "SurfExtractorBase.h"
00024 
00025 #include "../../Workers/ParallelSurf/KeyPointDetector.h"
00026 #include "threadpool.hpp"
00027 
00028 
00029 
00035 class ParallelSurfExtractor: public SurfExtractorBase
00036 {
00037   public:
00038 
00040    ParallelSurfExtractor( int numThreads=0 );
00041 
00043    ParallelSurfExtractor( const ParallelSurfExtractor& other );
00044 
00046     virtual ~ParallelSurfExtractor();
00047 
00049     ParallelSurfExtractor& operator=( const ParallelSurfExtractor& other );
00050 
00052     virtual void setImage( const puma2::GrayLevelImage8 &pumaImage );
00053 
00055     virtual void setImage( const puma2::ColorImageRGB8 &pumaImage );
00056 
00058     virtual void getKeyPoints ( std::vector< KeyPoint >& keyPoints );
00059     
00060     virtual std::string getName();
00061 
00062   private:
00063 
00064     parallelsurf::Image* m_IntegralImage;
00065     
00066     boost::threadpool::pool *m_ThreadPool;
00067 
00068     // define a Keypoint insertor
00069     class KeyPointVectInsertor : public parallelsurf::KeyPointInsertor
00070     {
00071       public:
00072 
00073         KeyPointVectInsertor ( std::vector<parallelsurf::KeyPoint>& keyPoints ) : m_KeyPoints ( keyPoints ) {};
00074 
00075         inline virtual void operator() ( const parallelsurf::KeyPoint &panoKeyPoint )
00076         {
00077 //           std::cout << ".";
00078           m_KeyPoints.push_back ( panoKeyPoint );
00079         }
00080 
00081       private:
00082 
00083         std::vector<parallelsurf::KeyPoint>& m_KeyPoints;
00084     };
00085 };
00086 
00087 
00088 #endif
00089 


obj_rec_gui
Author(s): AGAS/agas@uni-koblenz.de
autogenerated on Mon Oct 6 2014 02:53:43