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"
60 template <
typename TParametersValueType,
unsigned int NDimensions>
79 static constexpr
unsigned int SpaceDimension = NDimensions;
132 itkGetModifiableObjectMacro(SourceLandmarks,
PointSetType);
138 itkGetModifiableObjectMacro(TargetLandmarks,
PointSetType);
156 using Superclass::TransformVector;
160 itkExceptionMacro(<<
"TransformVector(const InputVectorType &) is not implemented for KernelTransform");
167 itkExceptionMacro(<<
"TransformVector(const InputVnlVectorType &) is not implemented for KernelTransform");
171 using Superclass::TransformCovariantVector;
172 OutputCovariantVectorType
176 <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented for KernelTransform");
181 using IMatrixType = vnl_matrix_fixed<TParametersValueType, NDimensions, NDimensions>;
190 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented "
192 << this->GetNameOfClass());
194 using Superclass::ComputeJacobianWithRespectToPosition;
201 SetParameters(
const ParametersType &)
override;
209 SetFixedParameters(
const FixedParametersType &)
override;
213 UpdateParameters()
const;
216 const ParametersType &
217 GetParameters()
const override;
220 const FixedParametersType &
221 GetFixedParameters()
const override;
226 TransformCategoryEnum
229 return Self::TransformCategoryEnum::Spline;
243 itkGetConstMacro(Stiffness,
double);
250 PrintSelf(std::ostream & os,
Indent indent)
const override;
254 using GMatrixType = vnl_matrix_fixed<TParametersValueType, NDimensions, NDimensions>;
275 using AMatrixType = vnl_matrix_fixed<TParametersValueType, NDimensions, NDimensions>;
278 using BMatrixType = vnl_vector_fixed<TParametersValueType, NDimensions>;
281 using RowMatrixType = vnl_matrix_fixed<TParametersValueType, 1, NDimensions>;
395 #ifndef ITK_MANUAL_INSTANTIATION
396 # include "itkKernelTransform.hxx"
399 #endif // itkKernelTransform_h