Tomato
OxTestItkImagesFactory.h
1 
7 #ifndef Tomato_itkOxTestItkImagesFactory_H
8 #define Tomato_itkOxTestItkImagesFactory_H
9 
10 #include "CmakeConfigForTomato.h"
11 #ifdef USE_ITK
12 #ifdef USE_YAML
13 
14 #include "itkImage.h"
15 #include "itkImageRegionIteratorWithIndex.h"
16 
17 #include "OxTestImage.h"
18 
19 
20 namespace Ox {
21 
22 
23  template< typename MeasureType >
24  class TestItkImagesFactory {
25 
26  public:
27 
28  typedef itk::Image< MeasureType, 3 > TImageIn;
29  typedef itk::Image< MeasureType, 2 > TImageOut;
30 
31  TestItkImagesFactory(int nRows, int nCols, std::vector <std::string> filesPaths, std::vector<int> invTimesOrder);
32  TestItkImagesFactory(int nRows, int nCols, std::vector <std::string> filesPaths);
33  virtual ~TestItkImagesFactory();
34 
35  virtual int getNSamples() const;
36  virtual MeasureType *getInvTimesPtr() ;
37  virtual std::vector<MeasureType> getInvTimes() const;
38  virtual vnl_vector<MeasureType> getInvTimesVnl() const;
39 
40  virtual typename itk::Image< MeasureType, 3 >::Pointer generateImageMag();
41  virtual typename itk::Image< MeasureType, 3 >::Pointer generateImagePha();
42  virtual typename itk::Image< MeasureType, 2 >::Pointer generateImageResultsMolliA();
43  virtual typename itk::Image< MeasureType, 2 >::Pointer generateImageResultsMolliB();
44  virtual typename itk::Image< MeasureType, 2 >::Pointer generateImageResultsMolliT1star();
45  virtual typename itk::Image< MeasureType, 2 >::Pointer generateImageResultsShmolliA();
46  virtual typename itk::Image< MeasureType, 2 >::Pointer generateImageResultsShmolliB();
47  virtual typename itk::Image< MeasureType, 2 >::Pointer generateImageResultsShmolliT1star();
48 
49  protected:
50 
51  TestImage<MeasureType>* _testImage;
52 
53  typename itk::Image< MeasureType, 2 >::Pointer generateImage2d();
54  typename itk::Image< MeasureType, 3 >::Pointer generateImage3d();
55 
56  void copyBufferToImage2d(typename itk::Image< MeasureType, 2 >::Pointer image, MeasureType* buffer);
57  void copyBufferToImage3d(typename itk::Image< MeasureType, 3 >::Pointer image, MeasureType* buffer);
58 
59  };
60 } // namespace Ox
61 
62 
63 #include "OxTestItkImagesFactory.hxx"
64 
65 #endif // USE_YAML
66 #endif // USE_ITK
67 
68 #endif // Tomato_itkOxTestItkImagesFactory_H
Definition: OxCalculator.h:19