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 "KeyPoint.h"
00020 #include "SurfExtractorBase.h"
00021 
00022 #include "../ParallelSurf/KeyPointDetector.h"
00023 
00024 #include "threadpool.hpp"
00025 
00026 
00027 
00033 class ParallelSurfExtractor: public SurfExtractorBase
00034 {
00035   public:
00036 
00038    ParallelSurfExtractor( int numThreads=0 );
00039 
00041    ParallelSurfExtractor( const ParallelSurfExtractor& other );
00042 
00044     virtual ~ParallelSurfExtractor();
00045 
00047     ParallelSurfExtractor& operator=( const ParallelSurfExtractor& other );
00048 
00050     virtual void setImage( const cv::Mat &image );
00051 
00053     virtual void getKeyPoints ( std::vector< KeyPoint >& keyPoints );
00054     
00055     virtual std::string getName();
00056 
00057   private:
00058 
00059     parallelsurf::Image* m_IntegralImage;
00060     
00061     boost::threadpool::pool *m_ThreadPool;
00062 
00063     // define a Keypoint insertor
00064     class KeyPointVectInsertor : public parallelsurf::KeyPointInsertor
00065     {
00066       public:
00067 
00068         KeyPointVectInsertor ( std::vector<parallelsurf::KeyPoint>& keyPoints ) : m_KeyPoints ( keyPoints ) {};
00069 
00070         inline virtual void operator() ( const parallelsurf::KeyPoint &panoKeyPoint )
00071         {
00072 //           std::cout << ".";
00073           m_KeyPoints.push_back ( panoKeyPoint );
00074         }
00075 
00076       private:
00077 
00078         std::vector<parallelsurf::KeyPoint>& m_KeyPoints;
00079     };
00080 };
00081 
00082 
00083 #endif
00084 


or_libs
Author(s): raphael
autogenerated on Mon Oct 6 2014 02:53:18