swh:1:snp:e6d42e6731ce66e3c09de07ac49964c03139e990
Tip revision: 9ee6be436b4cbf61c6badcba756dd3a286de28d7 authored by Konrad Werys on 28 May 2019, 13:12:50 UTC
feat: optional SD maps calculation
feat: optional SD maps calculation
Tip revision: 9ee6be4
OxImageCalculatorT1.h
/*!
* \file OxImageCalculator.h
* \author Konrad Werys
* \date 2018/08/07
*/
#ifndef Tomato_OXIMAGECALCULATORT1_H
#define Tomato_OXIMAGECALCULATORT1_H
#include "CmakeConfigForTomato.h"
#ifndef CXX_STANDARD_98
#include <thread>
#endif
#include "OxCalculatorT1.h"
namespace Ox {
template<typename MeasureType>
class ImageCalculatorT1 {
public:
ImageCalculatorT1();
virtual ~ImageCalculatorT1(){};
void setUseThreads(bool _useThreads);
void setNCols(int _nCols);
void setNRows(int _nRows);
void setNSamples(int _nSamples);
void setInvTimes(MeasureType *_invTimes);
void setImageMag(MeasureType *_imageMag);
void setImagePha(MeasureType *_imagePha);
void setImageResults(MeasureType *_imageResults);
void setCalculatorT1(CalculatorT1<MeasureType> *_calculatorT1);
MeasureType *getImageResults() const;
virtual int calculate();
virtual int calculateOneThread(int posStart, int posStop);
protected:
bool _useThreads;
int _nCols;
int _nRows;
int _nSamples;
MeasureType* _invTimes; // nSamples
MeasureType* _imageMag; // nCols * nRows * nSamples, address [iCol][iRow][iSam] iSample * (nCols*nRows) + iRow * nCols + iCol
MeasureType* _imagePha; // nCols * nRows * nSamples, address [iCol][iRow][iSam] iSample * (nCols*nRows) + iRow * nCols + iCol
MeasureType* _imageResults; // nCols * nRows * nDims, address [iCol][iRow][iDim] iDim * (nCols*nRows) + iRow * nCols + iCol
MeasureType phaseRange;
CalculatorT1<MeasureType> *_calculatorT1;
};
} // namespace Ox
#ifdef TomatoLib_EXPORTS
#include "OxImageCalculatorT1.hxx"
#endif //TomatoLib_EXPORTS
#endif //Tomato_OXIMAGECALCULATORT1_H