/** * @file LFReadCache.h * @brief read local features from file * @author Erik Rodner * @date 02/14/2008 */ #ifndef LFReadCacheINCLUDE #define LFReadCacheINCLUDE #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include "core/image/ImageT.h" #include "LocalFeatureRepresentation.h" #include "LFSiftPP.h" #include "core/basics/Config.h" namespace OBJREC { /** read local features from file */ class LFReadCache : public LocalFeatureRepresentation { protected: int numFeatures; const LocalFeatureRepresentation *lfrep; std::string cachedir; int descFormat; int cachemode; template int extractFeaturesTemplate ( const ImageClass & img, NICE::VVector & features, NICE::VVector & positions) const; public: /** constructor * @param conf Configuration * @param lfrep a LocalFeatureRepresentation (i.e. LFColorSande) * @param _numfeatures how many features should be returned (-1 for all) */ LFReadCache( const NICE::Config *conf, const LocalFeatureRepresentation *lfrep, int _numFeatures = -1 ); /** simple destructor */ virtual ~LFReadCache(); int getDescSize () const; /** * extract features for gray images * @param img input image * @param features output features * @param positions position of the features * @return */ int extractFeatures ( const NICE::Image & img, NICE::VVector & features, NICE::VVector & positions ) const; /** * extract features for color images * @param img input image * @param features output features * @param positions position of the features * @return */ int extractFeatures ( const NICE::ColorImage & img, NICE::VVector & features, NICE::VVector & positions ) const; void visualize ( NICE::Image & img, const NICE::Vector & feature ) const; void visualizeFeatures ( NICE::Image & mark, const NICE::VVector & positions, size_t color ) const; }; } // namespace #include "LFReadCache.tcc" #endif