NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkTranslationPCADeformationModelTransform.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkTranslationPCADeformationModelTransform_h
16 #define itkTranslationPCADeformationModelTransform_h
17 
18 #include <iostream>
19 #include <itkImage.h>
20 #include <itkTransform.h>
21 #include <itkExceptionObject.h>
22 #include <itkMatrix.h>
23 
24 #include <itkVectorLinearInterpolateNearestNeighborExtrapolateImageFunction.h>
25 
26 namespace itk
27 {
28 
64 template <
65  class TScalarType=float, // Type for coordinate representation type (float or double)
66  unsigned int NDimensions = 3 > // Number of dimensions
67  class ITK_EXPORT TranslationPCADeformationModelTransform : public PCADeformationModelTransform< TScalarType, NDimensions>
68 {
69 public:
73  typedef SmartPointer<Self> Pointer;
74  typedef SmartPointer<const Self> ConstPointer;
75 
77  typedef typename Superclass::VectorPixelType VectorPixelType;
78  typedef typename Superclass::FieldType FieldType;
79  typedef typename Superclass::DisplacementType DisplacementType;
80 
82  typedef typename Superclass::FieldPointer FieldPointer;
83  typedef typename Superclass::FieldConstPointer FieldConstPointer;
84  typedef typename Superclass::FieldIterator FieldIterator;
85  typedef typename Superclass::FieldConstIterator FieldConstIterator;
86 
87  typedef typename Superclass::FieldConstPointerArray FieldConstPointerArray;
88 
89  typedef typename Superclass::FieldPointerArray FieldPointerArray;
90  typedef typename Superclass::FieldIteratorArray FieldIteratorArray;
91 
92  typedef typename Superclass::ContinuousIndexType ContinuousIndexType;
93 
94  typedef typename Superclass::FieldIndexType FieldIndexType;
95  typedef typename Superclass::FieldRegionType FieldRegionType;
96  typedef typename Superclass::FieldSizeType FieldSizeType;
97 
99  typedef typename Superclass::FieldInterpolatorType FieldInterpolatorType;
100  typedef typename Superclass::FieldInterpolatorPointer FieldInterpolatorPointer;
101  typedef typename Superclass::FieldInterpolatorPointerArray FieldInterpolatorPointerArray;
102 
103 
105  itkNewMacro( Self );
106 
109 
111  virtual void SetNumberOfComponents(unsigned int numberOfComponents);
112 
114  virtual FieldPointer GetSingleDeformationField();
115 
117  itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions);
118 
120  typedef typename Superclass::ScalarType ScalarType;
121 
123  typedef typename Superclass::ParametersType ParametersType;
124 
127 
129  typedef typename Superclass::InputVectorType InputVectorType;
130  typedef typename Superclass::OutputVectorType OutputVectorType;
131 
133  typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
134  typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
135 
137  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
138  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
139 
143 
145  // Removed and to be filled in the future
146  //virtual const JacobianType & GetJacobian( const InputPointType & point ) const;
147 
150  virtual OutputPointType TransformPoint(const InputPointType &point ) const;
151 
154  virtual void Initialize() throw ( ExceptionObject );
155 
156 protected:
159 
161  virtual ~TranslationPCADeformationModelTransform();
162 
164  void PrintSelf(std::ostream &os, Indent indent) const;
165 
166 private:
167  TranslationPCADeformationModelTransform(const Self & other); //purposely not implemented
168  const Self & operator=( const Self & ); //purposely not implemented
169 
170 }; //class TranslationPCADeformationModelTransform
171 
172 } // namespace itk
173 
174 
175 #ifndef ITK_MANUAL_INSTANTIATION
176 #include "itkTranslationPCADeformationModelTransform.txx"
177 #endif
178 
179 
180 #endif /* __itkTranslationPCADeformationModelTransform_h */
Superclass::OutputVnlVectorType OutputVnlVectorType
Definition: itkTranslationPCADeformationModelTransform.h:138
Superclass::DisplacementType DisplacementType
Definition: itkTranslationPCADeformationModelTransform.h:79
Superclass::FieldSizeType FieldSizeType
Definition: itkTranslationPCADeformationModelTransform.h:96
Superclass::FieldIndexType FieldIndexType
Definition: itkTranslationPCADeformationModelTransform.h:94
Superclass::OutputPointType OutputPointType
Definition: itkTranslationPCADeformationModelTransform.h:142
Superclass::FieldInterpolatorPointerArray FieldInterpolatorPointerArray
Definition: itkTranslationPCADeformationModelTransform.h:101
Superclass::InputVectorType InputVectorType
Definition: itkTranslationPCADeformationModelTransform.h:129
Superclass::InputPointType InputPointType
Definition: itkTranslationPCADeformationModelTransform.h:141
Definition: niftkMeshSmoother.cxx:19
Definition: niftkITKAffineResampleImage.cxx:74
itk::Point< double, 2 > InputPointType
Definition: EulerAffine2DJacobianTest.cxx:34
SmartPointer< Self > Pointer
Definition: itkTranslationPCADeformationModelTransform.h:73
Superclass::VectorPixelType VectorPixelType
Definition: itkTranslationPCADeformationModelTransform.h:77
Superclass::InputVnlVectorType InputVnlVectorType
Definition: itkTranslationPCADeformationModelTransform.h:137
Superclass::JacobianType JacobianType
Definition: itkTranslationPCADeformationModelTransform.h:126
Superclass::FieldIterator FieldIterator
Definition: itkTranslationPCADeformationModelTransform.h:84
Superclass::FieldConstIterator FieldConstIterator
Definition: itkTranslationPCADeformationModelTransform.h:85
Superclass::InputCovariantVectorType InputCovariantVectorType
Definition: itkTranslationPCADeformationModelTransform.h:133
Superclass::FieldRegionType FieldRegionType
Definition: itkTranslationPCADeformationModelTransform.h:95
Superclass::ScalarType ScalarType
Definition: itkTranslationPCADeformationModelTransform.h:120
Superclass::FieldConstPointerArray FieldConstPointerArray
Definition: itkTranslationPCADeformationModelTransform.h:87
TranslationPCADeformationModelTransform Self
Definition: itkTranslationPCADeformationModelTransform.h:71
Superclass::FieldInterpolatorPointer FieldInterpolatorPointer
Definition: itkTranslationPCADeformationModelTransform.h:100
PCADeformationModelTransform< TScalarType, NDimensions > Superclass
Definition: itkTranslationPCADeformationModelTransform.h:72
Superclass::FieldPointer FieldPointer
Definition: itkTranslationPCADeformationModelTransform.h:82
Superclass::FieldPointerArray FieldPointerArray
Definition: itkTranslationPCADeformationModelTransform.h:89
Translation + PCA deformation model transformation.
Definition: itkTranslationPCADeformationModelTransform.h:67
Superclass::FieldType FieldType
Definition: itkTranslationPCADeformationModelTransform.h:78
Superclass::ParametersType ParametersType
Definition: itkTranslationPCADeformationModelTransform.h:123
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Definition: itkTranslationPCADeformationModelTransform.h:134
Superclass::FieldConstPointer FieldConstPointer
Definition: itkTranslationPCADeformationModelTransform.h:83
PCA deformation model transformation.
Definition: itkPCADeformationModelTransform.h:71
Superclass::ContinuousIndexType ContinuousIndexType
Definition: itkTranslationPCADeformationModelTransform.h:92
itk::Point< double, 2 > OutputPointType
Definition: EulerAffine2DJacobianTest.cxx:35
Superclass::FieldInterpolatorType FieldInterpolatorType
Definition: itkTranslationPCADeformationModelTransform.h:99
Superclass::OutputVectorType OutputVectorType
Definition: itkTranslationPCADeformationModelTransform.h:130
Superclass::FieldIteratorArray FieldIteratorArray
Definition: itkTranslationPCADeformationModelTransform.h:90
SmartPointer< const Self > ConstPointer
Definition: itkTranslationPCADeformationModelTransform.h:74
itk::Array2D< double > JacobianType
Definition: EulerAffine2DJacobianTest.cxx:28