17 #ifndef itkPCADeformationModelTransform_h
18 #define itkPCADeformationModelTransform_h
22 #include <itkTransform.h>
23 #include <itkExceptionObject.h>
24 #include <itkMatrix.h>
26 #include <itkVectorLinearInterpolateNearestNeighborExtrapolateImageFunction.h>
69 class TScalarType=float,
70 unsigned int NDimensions = 3 >
76 typedef Transform< TScalarType, NDimensions, NDimensions >
Superclass;
82 typedef itk::Image< VectorPixelType, NDimensions >
FieldType;
103 typedef VectorLinearInterpolateNearestNeighborExtrapolateImageFunction<FieldType, TScalarType>
FieldInterpolatorType;
115 itkStaticConstMacro(InputSpaceDimension,
unsigned int, NDimensions);
116 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, NDimensions);
119 virtual void SetNumberOfComponents(
unsigned int numberOfParameters);
124 if (this->m_FieldArray[i] != field) {
125 this->m_FieldArray[i] = field;
133 return this->m_FieldArray[i].GetPointer();
137 virtual FieldPointer GetSingleDeformationField();
140 itkStaticConstMacro(SpaceDimension,
unsigned int, NDimensions);
164 typedef Point<TScalarType, itkGetStaticConstMacro(SpaceDimension)>
InputPointType;
169 void SetParameters(
const ParametersType & parameters);
171 const ParametersType & GetParameters(
void )
const;
174 virtual void SetFixedParameters(
const ParametersType & );
177 const ParametersType& GetFixedParameters(
void)
const;
180 virtual const JacobianType GetJacobian(
const InputPointType & point )
const;
181 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType & point,
182 JacobianType & jacobian )
const;
186 virtual OutputPointType TransformPoint(
const InputPointType &point )
const;
192 this->m_Parameters.Fill( 0.0 );
193 m_meanCoefficient = 0.0;
205 virtual void Initialize() throw ( ExceptionObject );
212 virtual ~PCADeformationModelTransform();
215 void PrintSelf(
std::ostream &os, Indent indent) const;
220 TScalarType m_meanCoefficient;
221 unsigned int m_NumberOfFields;
223 FieldPointerArray m_FieldArray;
224 FieldPointer m_SingleField;
227 FieldInterpolatorPointerArray m_Interpolators;
231 PCADeformationModelTransform(const Self & other);
232 const Self & operator=( const Self & );
239 #ifndef ITK_MANUAL_INSTANTIATION
240 #include "itkPCADeformationModelTransform.txx"
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
Definition: niftkMeshSmoother.cxx:19
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
#define niftkitkDebugMacro(x)
Definition: itkUCLMacro.h:29
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
itk::Array2D< double > JacobianType
Definition: EulerAffine2DJacobianTest.cxx:28