/** * @file ImageInfo.h * @brief localization info + image filename + ? * @author Erik Rodner * @date 04/16/2008 */ #ifndef IMAGEINFOINCLUDE #define IMAGEINFOINCLUDE #include "core/image/ImageT.h" #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include "vislearning/cbaselib/Polygon.h" #include "vislearning/cbaselib/BoundingBox.h" #include "vislearning/cbaselib/CategoryInfo.h" #include "LocalizationResult.h" #include #ifdef NICE_USELIB_QT4_XML class QString; class QDomElement; #endif //NICE_USELIB_QT4_XML namespace OBJREC { /** localization info + image filename + ? */ class ImageInfo { protected: std::string imagefn; LocalizationResult *lr; bool localization_info; #ifdef NICE_USELIB_QT4_XML Polygon polyFromData ( QString *aPolyData ); BoundingBox BBoxFromData ( QString *aBBoxData ); void loadLegendFromElement ( QDomElement *anElement ); bool loadCategoryInfo ( QDomElement *anElement ); NICE::ImageT< unsigned int > imageTFromData ( const int &aWidth, const int &aHeight, QString *aPureData ); #endif //NICE_USELIB_QT4_XML public: /** simple constructor */ ImageInfo ( const std::string & _imagefn, LocalizationResult *_lr ) : imagefn ( _imagefn ), lr ( _lr ), localization_info ( true ) {}; ImageInfo() {}; ImageInfo ( const std::string & _imagefn ) : imagefn ( _imagefn ), lr ( NULL ), localization_info ( false ) {}; /** simple destructor */ virtual ~ImageInfo(); const std::string & img () const { return imagefn; }; const LocalizationResult *localization () const { assert ( localization_info ); return lr; }; bool hasLocalizationInfo () const { return localization_info; }; bool loadImageInfo ( const std::string &aFilename ); const std::list< CategoryInfo > * labels() const; const std::list< BoundingBox > * bboxes() const; const std::list< Polygon > * polys() const; NICE::ImageT< unsigned int > labeledImage() const; std::string tags() const; std::string imagePath() const; std::string imageDescription() const; std::string segmentedImagePath() const; private: std::list< CategoryInfo > labels_; std::list< BoundingBox > bboxes_; std::list< Polygon > polys_; NICE::ImageT< unsigned int > labeled_image_; //std::list< std::string > tags_; std::string tags_; std::string image_path_; std::string image_description_; std::string segmented_image_path_; }; } // namespace #endif