Home | History | Annotate | Download | only in traincascade
      1 #ifndef _OPENCV_IMAGESTORAGE_H_
      2 #define _OPENCV_IMAGESTORAGE_H_
      3 
      4 
      5 class CvCascadeImageReader
      6 {
      7 public:
      8     bool create( const std::string _posFilename, const std::string _negFilename, cv::Size _winSize );
      9     void restart() { posReader.restart(); }
     10     bool getNeg(cv::Mat &_img) { return negReader.get( _img ); }
     11     bool getPos(cv::Mat &_img) { return posReader.get( _img ); }
     12 
     13 private:
     14     class PosReader
     15     {
     16     public:
     17         PosReader();
     18         virtual ~PosReader();
     19         bool create( const std::string _filename );
     20         bool get( cv::Mat &_img );
     21         void restart();
     22 
     23         short* vec;
     24         FILE*  file;
     25         int    count;
     26         int    vecSize;
     27         int    last;
     28         int    base;
     29     } posReader;
     30 
     31     class NegReader
     32     {
     33     public:
     34         NegReader();
     35         bool create( const std::string _filename, cv::Size _winSize );
     36         bool get( cv::Mat& _img );
     37         bool nextImg();
     38 
     39         cv::Mat     src, img;
     40         std::vector<std::string> imgFilenames;
     41         cv::Point   offset, point;
     42         float   scale;
     43         float   scaleFactor;
     44         float   stepFactor;
     45         size_t  last, round;
     46         cv::Size    winSize;
     47     } negReader;
     48 };
     49 
     50 #endif
     51