38 #ifndef __itkStatisticalModelTransform_h
39 #define __itkStatisticalModelTransform_h
44 #include <itkTransform.h>
45 #include <itkVector.h>
47 #include "Representer.h"
49 #include "itkStatisticalModel.h"
65 template <
class TDataset,
class TScalarType,
unsigned int TInputDimension,
unsigned int TOutputDimension = TInputDimension >
67 public itk::Transform< TScalarType , TInputDimension, TOutputDimension> {
71 typedef itk::Transform< TScalarType , TInputDimension, TOutputDimension> Superclass;
72 typedef SmartPointer<Self> Pointer;
73 typedef SmartPointer<const Self> ConstPointer;
75 typedef vnl_vector<statismo::ScalarType> VectorType;
76 typedef vnl_matrix<statismo::ScalarType> MatrixType;
83 another->m_StatisticalModel = m_StatisticalModel;
84 another->m_coeff_vector = m_coeff_vector;
85 another->m_usedNumberCoefficients = m_usedNumberCoefficients;
86 another->m_FixedParameters = m_FixedParameters;
87 another->m_Parameters = this->m_Parameters;
95 itkStaticConstMacro(SpaceDimension,
unsigned int, TInputDimension);
96 itkStaticConstMacro(InputSpaceDimension,
unsigned int, TInputDimension);
97 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, TOutputDimension);
101 typedef typename Superclass::ParametersType ParametersType;
102 typedef typename Superclass::JacobianType JacobianType;
103 typedef typename Superclass::ScalarType ScalarType;
104 typedef typename Superclass::InputPointType InputPointType;
105 typedef typename Superclass::OutputPointType OutputPointType;
106 typedef typename Superclass::InputVectorType InputVectorType;
107 typedef typename Superclass::OutputVectorType OutputVectorType;
108 typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
109 typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
110 typedef typename Superclass::InputCovariantVectorType
111 InputCovariantVectorType;
112 typedef typename Superclass::OutputCovariantVectorType
113 OutputCovariantVectorType;
119 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType &pt, JacobianType & jacobian)
const;
128 virtual OutputPointType TransformPoint(
const InputPointType &pt)
const = 0;
133 virtual void SetIdentity(
void);
138 virtual void SetParameters(
const ParametersType & );
143 virtual const ParametersType& GetParameters(
void)
const;
157 return this->m_FixedParameters;
165 return m_coeff_vector;
173 m_coeff_vector = coefficients;
184 typename StatisticalModelType::ConstPointer GetStatisticalModel()
const;
192 m_usedNumberCoefficients = n;
199 return m_usedNumberCoefficients;
207 void PrintSelf(std::ostream &os, Indent indent)
const;
209 typename StatisticalModelType::ConstPointer m_StatisticalModel;
210 VectorType m_coeff_vector;
211 unsigned m_usedNumberCoefficients;
212 ParametersType m_FixedParameters;
214 StatisticalModelTransformBase(
const Self& obj);
215 void operator=(
const Self& rhs);
225 #ifndef ITK_MANUAL_INSTANTIATION
226 # include "itkStatisticalModelTransformBase.hxx"
A trivial representer, that does no representation at all, but works directly with vectorial data...
Definition: TrivialVectorialRepresenter.h:83
ITK Wrapper for the statismo::StatisticalModel class.
Definition: itkStatisticalModel.h:62