/*! * \file OxTestImage.h * \author Konrad Werys * \date 2018/07/30 */ #ifndef Tomato_OXTESTImage_H #define Tomato_OXTESTImage_H #include "OxTestData.h" namespace Ox { template< typename MeasureType > class TestImage { public: TestImage(int nCols, int nRows, std::vector filesPaths, std::vector invTimesOrder); TestImage(int nCols, int nRows, std::vector filesPaths); virtual ~TestImage(); int init(int nCols, int nRows, std::vector filesPaths, std::vector invTimesOrder); virtual MeasureType *getInvTimesPtr() ; virtual std::vector getInvTimes() const; virtual MeasureType *getImageMagPtr() const; virtual MeasureType *getImagePhaPtr() const; virtual MeasureType *getImageResultsMolliPtr() const; virtual MeasureType *getImageResultsShmolliPtr() const; virtual int getNCols() const { return _nCols; } virtual int getNRows() const { return _nRows; } virtual int getNSamples() const { return _nSamples; } protected: int _nCols; int _nRows; int _nSamples; std::vector _invTimes; std::vector _invTimesOrder; MeasureType *_imageMag; // nRows * nCols * nSamples, address [iRow][iCol][iSam] iSample * (nRows*nCols) + iCol * nRows + iRow MeasureType *_imagePha; // nRows * nCols * nSamples, address [iRow][iCol][iSam] iSample * (nRows*nCols) + iCol * nRows + iRow MeasureType *_imageResultsMolli; // nCols * nRows * 3 MeasureType *_imageResultsShmolli; // nCols * nRows * 3 }; } // namespace Ox #include "OxTestImage.hxx" #endif //Tomato_OXTESTImage_H