cvsamplesoutput.h 1.1 KB
Newer Older
wester committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
#ifndef CVSAMPLESOUTPUT_H
#define CVSAMPLESOUTPUT_H

#include "ioutput.h"

class PngDatasetOutput: public IOutput
{
    friend IOutput* IOutput::createOutput(const char *filename, OutputType type);
public:
    virtual bool write( const CvMat& img,
                        const CvRect& boundingBox);

    virtual ~PngDatasetOutput(){}
private:
    PngDatasetOutput()
        : extension("png")
        , destImgWidth(640)
        , destImgHeight(480)
    {}

    virtual bool init(const char* annotationsListFileName );

    CvRect addBoundingboxBorder(const CvRect& bbox) const;
private:

    char annotationFullPath[PATH_MAX];
    char* annotationFileName;
    char* annotationRelativePath;
    char* imgRelativePath;
    const char* extension;

    int destImgWidth;
    int destImgHeight ;
};

class JpgDatasetOutput: public IOutput
{
    friend IOutput* IOutput::createOutput(const char *filename, OutputType type);
public:
    virtual bool write( const CvMat& img,
                        const CvRect& boundingBox );
    virtual ~JpgDatasetOutput(){}
private:
    JpgDatasetOutput(){}
};
#endif // CVSAMPLESOUTPUT_H