18 #ifndef itkKernelTransform_h
19 #define itkKernelTransform_h
26 #include "vnl/vnl_matrix_fixed.h"
27 #include "vnl/vnl_matrix.h"
28 #include "vnl/vnl_vector.h"
29 #include "vnl/vnl_vector_fixed.h"
30 #include "vnl/algo/vnl_svd.h"
59 template<
typename TParametersValueType,
60 unsigned int NDimensions>
62 public Transform<TParametersValueType, NDimensions, NDimensions>
80 static constexpr
unsigned int SpaceDimension = NDimensions;
132 itkGetModifiableObjectMacro(SourceLandmarks,
PointSetType);
137 itkGetModifiableObjectMacro(TargetLandmarks,
PointSetType);
146 void ComputeWMatrix();
152 using Superclass::TransformVector;
155 itkExceptionMacro( <<
"TransformVector(const InputVectorType &) is not implemented for KernelTransform");
161 itkExceptionMacro( <<
"TransformVector(const InputVnlVectorType &) is not implemented for KernelTransform");
165 using Superclass::TransformCovariantVector;
168 itkExceptionMacro( <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented for KernelTransform");
173 using IMatrixType = vnl_matrix_fixed<TParametersValueType, NDimensions, NDimensions>;
181 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented "
182 "for " << this->GetNameOfClass() );
184 using Superclass::ComputeJacobianWithRespectToPosition;
190 void SetParameters(
const ParametersType &)
override;
197 void SetFixedParameters(
const FixedParametersType &)
override;
200 virtual void UpdateParameters()
const;
203 const ParametersType & GetParameters()
const override;
206 const FixedParametersType & GetFixedParameters()
const override;
227 itkGetConstMacro(Stiffness,
double);
233 void PrintSelf(std::ostream & os,
Indent indent)
const override;
237 using GMatrixType = vnl_matrix_fixed<TParametersValueType, NDimensions, NDimensions>;
258 using AMatrixType = vnl_matrix_fixed<TParametersValueType, NDimensions, NDimensions>;
261 using BMatrixType = vnl_vector_fixed<TParametersValueType, NDimensions>;
264 using RowMatrixType = vnl_matrix_fixed<TParametersValueType, 1, NDimensions>;
371 #ifndef ITK_MANUAL_INSTANTIATION
372 #include "itkKernelTransform.hxx"
375 #endif // itkKernelTransform_h
Light weight base class for most itk classes.
Define numeric traits for std::vector.
typename PointsContainer::ConstIterator PointsContainerConstIterator
typename MeshTraits::PointsContainer PointsContainer
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
typename PointsContainer::Iterator PointsContainerIterator
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
typename MeshTraits::PointIdentifier PointIdentifier
Control indentation during Print() invocation.