ANIMA  4.0
animaAtlasInitializer.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <itkImageRegionIterator.h>
5 #include <itkImageRegionConstIterator.h>
6 
7 namespace anima
8 {
9 
13 template <typename TInputImage, typename TMaskImage, typename TAtlasImage = TInputImage>
15 {
16 public:
17 
20  typedef itk::ProcessObject Superclass;
21  typedef itk::SmartPointer <Self> Pointer;
22  typedef itk::SmartPointer <const Self> ConstPointer;
23 
25  itkNewMacro(Self);
26 
28  itkTypeMacro(AtlasInitializer, itk::ProcessObject);
29 
31  typedef TInputImage InputImageType;
32  typedef typename InputImageType::ConstPointer InputImageConstPointer;
33  typedef typename itk::ImageRegionConstIterator< InputImageType > InputConstIteratorType;
34 
36  typedef TMaskImage MaskImageType;
37  typedef typename MaskImageType::ConstPointer MaskImageConstPointer;
38  typedef typename itk::ImageRegionConstIterator< MaskImageType > MaskConstIteratorType;
39 
40 
42  typedef TAtlasImage AtlasImageType;
43  typedef typename AtlasImageType::ConstPointer AtlasImageConstPointer;
44  typedef typename itk::ImageRegionIterator< AtlasImageType > AtlasIteratorType;
45  typedef typename itk::ImageRegionConstIterator< AtlasImageType > AtlasConstIteratorType;
46 
47  typedef double NumericType;
48  typedef itk::VariableSizeMatrix<NumericType> DoubleVariableSizeMatrixType;
49 
50 
54  void Update() ITK_OVERRIDE;
55 
57  void SetInputImage1(const TInputImage* image);
58  void SetInputImage2(const TInputImage* image);
59  void SetInputImage3(const TInputImage* image);
60 
62  void SetAtlasImage1(const TAtlasImage* image);
63  void SetAtlasImage2(const TAtlasImage* image);
64  void SetAtlasImage3(const TAtlasImage* image);
65 
68  void SetMask(const TMaskImage* mask);
69  typename TMaskImage::ConstPointer GetMask();
70 
71 
72 protected:
73 
74  AtlasInitializer(const Self&); //purposely not implemented
75  void operator=(const Self&); //purposely not implemented
76 
77  typename TAtlasImage::ConstPointer GetAtlasImage1();
78  typename TAtlasImage::ConstPointer GetAtlasImage2();
79  typename TAtlasImage::ConstPointer GetAtlasImage3();
80 
81  typename TInputImage::ConstPointer GetInputImage1();
82  typename TInputImage::ConstPointer GetInputImage2();
83  typename TInputImage::ConstPointer GetInputImage3();
84 
86  {
87  this->SetNumberOfRequiredInputs(7);
88  m_Modalities = 3;
89  }
90  virtual ~AtlasInitializer(){}
91 
92  std::vector<InputImageConstPointer > m_ImagesVector;
93  std::vector<AtlasImageConstPointer > m_AtlasVector;
94  unsigned int m_Modalities;
95 
96 };
97 
98 }
99 
100 #include "animaAtlasInitializer.hxx"
void SetAtlasImage2(const TAtlasImage *image)
MaskImageType::ConstPointer MaskImageConstPointer
TInputImage::ConstPointer GetInputImage3()
void SetAtlasImage1(const TAtlasImage *image)
itk::ProcessObject Superclass
TInputImage::ConstPointer GetInputImage1()
void SetMask(const TMaskImage *mask)
itk::ImageRegionIterator< AtlasImageType > AtlasIteratorType
itk::SmartPointer< const Self > ConstPointer
void Update() ITK_OVERRIDE
calculate parameters of gaussians from images with the probability of the different classes [csf] [gm...
void SetInputImage1(const TInputImage *image)
std::vector< InputImageConstPointer > m_ImagesVector
void SetInputImage2(const TInputImage *image)
TMaskImage::ConstPointer GetMask()
itk::ImageRegionConstIterator< MaskImageType > MaskConstIteratorType
void SetInputImage3(const TInputImage *image)
Gaussian model initializers Model Initializer represents the processes computing a gaussian model tha...
TAtlasImage::ConstPointer GetAtlasImage3()
InputImageType::ConstPointer InputImageConstPointer
TAtlasImage::ConstPointer GetAtlasImage2()
void SetAtlasImage3(const TAtlasImage *image)
TInputImage::ConstPointer GetInputImage2()
itk::ImageRegionConstIterator< AtlasImageType > AtlasConstIteratorType
AtlasImageType::ConstPointer AtlasImageConstPointer
TAtlasImage::ConstPointer GetAtlasImage1()
itk::ImageRegionConstIterator< InputImageType > InputConstIteratorType
std::vector< AtlasImageConstPointer > m_AtlasVector
itk::SmartPointer< Self > Pointer
itk::VariableSizeMatrix< NumericType > DoubleVariableSizeMatrixType