18#ifndef itkBSplineBaseTransform_h
19#define itkBSplineBaseTransform_h
33template <
typename TParametersValueType =
double,
unsigned int VDimension = 3,
unsigned int VSplineOrder = 3>
49 static constexpr unsigned int SpaceDimension = VDimension;
52 static constexpr unsigned int SplineOrder = VSplineOrder;
58 using typename Superclass::ScalarType;
61 using typename Superclass::FixedParametersType;
62 using typename Superclass::ParametersType;
65 using typename Superclass::JacobianType;
66 using typename Superclass::JacobianPositionType;
67 using typename Superclass::InverseJacobianPositionType;
70 using typename Superclass::TransformCategoryEnum;
73 using typename Superclass::NumberOfParametersType;
201 return this->m_CoefficientImages;
204 using typename Superclass::DerivativeType;
239 static constexpr unsigned int NumberOfWeights{ WeightsFunctionType::NumberOfWeights };
257 bool & inside)
const = 0;
259#if !defined(ITK_LEGACY_REMOVE)
261 itkLegacyMacro(
unsigned long GetNumberOfWeights()
const) {
return m_WeightsFunction->GetNumberOfWeights(); }
266 using Superclass::TransformVector;
270 itkExceptionMacro(
"Method not applicable for deformable transform.");
279 itkExceptionMacro(
"Method not applicable for deformable transform. ");
284 using Superclass::TransformCovariantVector;
285 OutputCovariantVectorType
288 itkExceptionMacro(
"Method not applicable for deformable transform. ");
304 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented "
308 using Superclass::ComputeJacobianWithRespectToPosition;
311 NumberOfParametersType
321 return Self::TransformCategoryEnum::BSpline;
336 return this->GetNumberOfParameters();
408 static CoefficientImageArray
413#ifndef ITK_MANUAL_INSTANTIATION
414# include "itkBSplineBaseTransform.hxx"
Array2D class representing a 2D array.
Array class with size defined at construction time.
Returns the weights over the support region used for B-spline interpolation/reconstruction.
typename Superclass::OutputType WeightsType
A templated class holding a point in n-Dimensional image space.
A templated class holding a n-Dimensional covariant vector.
An image region represents a structured region of data.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Class to hold and manage different parameter types used during optimization.
TParametersValueType ValueType
A templated class holding a geometric point in n-Dimensional space.
A templated class holding a n-Dimensional vector.
const char * GetNameOfClass() const override
SmartPointer< Self > Pointer
ImageBaseType::DirectionType DirectionType
ImageBaseType::IndexType IndexType
ImageBaseType::PointType PointType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar images