ITK
6.0.0
Insight Toolkit
|
#include <itkBSplineBaseTransform.h>
A base class with common elements of BSplineTransform and BSplineDeformableTransform.
Definition at line 34 of file itkBSplineBaseTransform.h.
Static Public Attributes | |
static constexpr unsigned int | NumberOfWeights { WeightsFunctionType::NumberOfWeights } |
static constexpr unsigned int | SpaceDimension = VDimension |
static constexpr unsigned int | SplineOrder = VSplineOrder |
Static Public Attributes inherited from itk::Transform< double, 3, 3 > | |
static constexpr unsigned int | InputSpaceDimension |
static constexpr unsigned int | OutputSpaceDimension |
Static Public Attributes inherited from TransformBaseTemplate< double > | |
static constexpr TransformCategoryEnum | BSpline |
static constexpr TransformCategoryEnum | DisplacementField |
static constexpr TransformCategoryEnum | Linear |
static constexpr TransformCategoryEnum | Spline |
static constexpr TransformCategoryEnum | UnknownTransformCategory |
static constexpr TransformCategoryEnum | VelocityField |
Protected Attributes | |
CoefficientImageArray | m_CoefficientImages { Self::ArrayOfImagePointerGeneratorHelper() } |
ParametersType | m_InternalParametersBuffer {} |
WeightsFunctionType::Pointer | m_WeightsFunction { WeightsFunctionType::New() } |
Protected Attributes inherited from itk::Transform< double, 3, 3 > | |
FixedParametersType | m_FixedParameters |
ParametersType | m_Parameters |
Static Private Member Functions | |
static CoefficientImageArray | ArrayOfImagePointerGeneratorHelper () |
Additional Inherited Members | |
Public Attributes inherited from itk::Transform< double, 3, 3 > | |
InverseJacobianPositionType &jacobian | const |
Static Protected Member Functions inherited from itk::Transform< double, 3, 3 > | |
static InverseTransformBasePointer | InvertTransform (const TTransform &transform) |
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::CoefficientImageArray = FixedArray<ImagePointer, VDimension> |
Definition at line 181 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ConstPointer = SmartPointer<const Self> |
Definition at line 43 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ContinuousIndexType = typename WeightsFunctionType::ContinuousIndexType |
Definition at line 236 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::DirectionType = typename ImageType::DirectionType |
Definition at line 225 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ImagePointer = typename ImageType::Pointer |
Definition at line 180 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ImageType = Image<ParametersValueType, Self::SpaceDimension> |
Definition at line 179 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::IndexType = typename RegionType::IndexType |
Definition at line 222 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::InputCovariantVectorType = CovariantVector<TParametersValueType, Self::SpaceDimension> |
Standard covariant vector type for this class.
Definition at line 80 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::InputPointType = Point<TParametersValueType, Self::SpaceDimension> |
Standard coordinate point type for this class.
Definition at line 88 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::InputVectorType = Vector<TParametersValueType, Self::SpaceDimension> |
Standard vector type for this class.
Definition at line 76 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::InputVnlVectorType = vnl_vector_fixed<TParametersValueType, SpaceDimension> |
Standard vnl_vector type for this class.
Definition at line 84 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::MeshSizeType = SizeType |
Definition at line 333 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::OriginType = typename ImageType::PointType |
Definition at line 226 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::OutputCovariantVectorType = CovariantVector<TParametersValueType, Self::SpaceDimension> |
Definition at line 81 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::OutputPointType = Point<TParametersValueType, Self::SpaceDimension> |
Definition at line 89 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::OutputVectorType = Vector<TParametersValueType, Self::SpaceDimension> |
Definition at line 77 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::OutputVnlVectorType = vnl_vector_fixed<TParametersValueType, SpaceDimension> |
Definition at line 85 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ParameterIndexArrayType = FixedArray<unsigned long, NumberOfWeights> |
Parameter index array type.
Definition at line 242 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ParametersValueType = typename ParametersType::ValueType |
Parameters as SpaceDimension number of images.
Definition at line 178 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::PhysicalDimensionsType = typename ImageType::SpacingType |
Definition at line 330 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::PixelType = typename ImageType::PixelType |
Definition at line 331 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::Pointer = SmartPointer<Self> |
Definition at line 42 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::RegionType = ImageRegion<Self::SpaceDimension> |
Typedefs for specifying the extent of the grid.
Definition at line 220 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::Self = BSplineBaseTransform |
Standard class type aliases.
Definition at line 40 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::SizeType = typename RegionType::SizeType |
Definition at line 223 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::SpacingType = typename ImageType::SpacingType |
Definition at line 224 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::Superclass = Transform<TParametersValueType, VDimension, VDimension> |
Definition at line 41 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::WeightsFunctionType = BSplineInterpolationWeightFunction<ScalarType, Self::SpaceDimension, Self::SplineOrder> |
Interpolation weights function type.
Definition at line 233 of file itkBSplineBaseTransform.h.
using itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::WeightsType = typename WeightsFunctionType::WeightsType |
Definition at line 235 of file itkBSplineBaseTransform.h.
|
protecteddefault |
|
overrideprotecteddefault |
|
staticprivate |
void itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::ComputeJacobianFromBSplineWeightsWithRespectToPosition | ( | const InputPointType & | , |
WeightsType & | , | ||
ParameterIndexArrayType & | |||
) | const |
Get Jacobian at a point. A very specialized function just for BSplines
|
overridepure virtual |
|
inlineoverride |
Definition at line 305 of file itkBSplineBaseTransform.h.
References GetNameOfClass().
|
inline |
Get the array of coefficient images.
Definition at line 199 of file itkBSplineBaseTransform.h.
|
overridevirtual |
Get the Transformation Fixed Parameters.
Implements TransformBaseTemplate< double >.
|
protectedvirtual |
Get/Set to allow subclasses to access and manipulate the weights function.
|
override |
unsigned int itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::GetNumberOfAffectedWeights | ( | ) | const |
|
inlineoverridevirtual |
Return the number of local parameters
Reimplemented from itk::Transform< double, 3, 3 >.
Definition at line 337 of file itkBSplineBaseTransform.h.
|
overridepure virtual |
Return the number of parameters that completely define the Transform
Implements TransformBaseTemplate< double >.
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
pure virtual |
Return the number of parameters per dimension
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
overridevirtual |
Get the Transformation Parameters.
Implements TransformBaseTemplate< double >.
|
inlineoverridevirtual |
Get transform category
Implements TransformBaseTemplate< double >.
Definition at line 322 of file itkBSplineBaseTransform.h.
|
protectedpure virtual |
Check if a continuous index is inside the valid region.
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::itkCloneMacro | ( | Self | ) |
implement type-specific clone method
|
overrideprotected |
Print contents of an BSplineBaseTransform.
|
protectedpure virtual |
Construct control point grid size from transform domain information
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
pure virtual |
Set the array of coefficient images.
This is an alternative API for setting the BSpline coefficients as an array of SpaceDimension images. The fixed parameters are taken from the first image. It is assumed that the buffered region of all the subsequent images are the same as the first image. Note that no error checking is done.
Warning: use either the SetParameters() or SetCoefficientImages() API. Mixing the two modes may results in unexpected results.
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
overridepure virtual |
This method sets the fixed parameters of the transform. For a BSpline deformation transform, the fixed parameters are the following: grid size, grid origin, grid spacing, and grid direction. However, all of these are set via the much more intuitive SetTransformDomainXXX() functions
The fixed parameters are the three times the size of the templated dimensions. This function has the effect of make the following non- existing functional calls: transform->SetGridSpacing( spacing ); transform->SetGridOrigin( origin ); transform->SetGridDirection( direction ); transform->SetGridRegion( bsplineRegion );
With recent updates to this transform, however, all these parameters are set indirectly by setting the transform domain parameters unless the user sets them with SetFixedParameters().
This function was added to allow the transform to work with the itkTransformReader/Writer I/O filters.
Implements itk::Transform< double, 3, 3 >.
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
protected |
Construct control point grid from transform domain information
|
protectedpure virtual |
Construct control point grid direction from transform domain information
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
protectedpure virtual |
Construct control point grid origin from transform domain information
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
protectedpure virtual |
Construct control point grid size from transform domain information
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
protectedpure virtual |
Construct control point grid spacing from transform domain information
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
void itk::BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder >::SetIdentity | ( | ) |
This method can ONLY be invoked AFTER calling SetParameters(). This restriction is due to the fact that the BSplineBaseTransform does not copy the array of parameters internally, instead it keeps a pointer to the user-provided array of parameters. This method is also in violation of the const-correctness of the parameters since the parameter array has been passed to the transform on a 'const' basis but the values get modified when the user invokes SetIdentity().
|
overridevirtual |
This method sets the parameters of the transform. For a BSpline deformation transform, the parameters are the BSpline coefficients on a sparse grid.
The parameters are N number of N-D grid of coefficients. Each N-D grid is represented as a flat array of scalars (in the same configuration as an itk::Image). The N arrays are then concatenated to form one parameter array.
For efficiency, this transform does not make a copy of the parameters. It only keeps a pointer to the input parameters. It assumes that the memory is managed by the caller. Use SetParametersByValue to force the transform to call copy the parameters.
This method wraps each grid as itk::Image's using the user specified fixed parameters. NOTE: The transform domain must be set first.
Implements itk::Transform< double, 3, 3 >.
|
override |
This method sets the parameters of the transform. For a BSpline deformation transform, the parameters are the BSpline coefficients on a sparse grid.
The parameters are N number of N-D grid of coefficients. Each N-D grid is represented as a flat array of doubles (in the same configuration as an itk::Image). The N arrays are then concatenated to form one parameter array.
This methods makes a copy of the parameters while for efficiency the SetParameters method does not.
This method wraps each grid as itk::Image's using the user specified fixed parameters. NOTE: The fixed parameters must be set first.
|
protectedvirtual |
Get/Set to allow subclasses to access and manipulate the weights function.
|
inlineoverride |
Definition at line 289 of file itkBSplineBaseTransform.h.
|
pure virtual |
Transform points by a BSpline deformable transformation. On return, weights contains the interpolation weights used to compute the deformation and indices of the x (zeroth) dimension coefficient parameters in the support region used to compute the deformation. Parameter indices for the i-th dimension can be obtained by adding ( i * this->GetNumberOfParametersPerDimension() ) to the indices array.
Implemented in itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, itk::BSplineDeformableTransform< TParametersValueType, VDimension, VSplineOrder >, itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >, and itk::BSplineTransform< TParametersValueType, VDimension, VSplineOrder >.
|
override |
Transform points by a BSpline deformable transformation.
|
inlineoverride |
Definition at line 271 of file itkBSplineBaseTransform.h.
|
inlineoverride |
Method to transform a vnl_vector - not applicable for this type of transform
Definition at line 280 of file itkBSplineBaseTransform.h.
|
override |
Update the transform's parameters by the adding values in update
to current parameter values. We assume update
is of the same length as Parameters. Throw exception otherwise. factor
is a scalar multiplier for each value in update. SetParameters is called at the end of this method, to allow transforms to perform any required operations on the update parameters, typically a conversion to member variables for use in TransformPoint. Derived classes should override to provide specialized behavior.
|
protected |
Wrap flat array into images of coefficients.
|
protected |
Array of images representing the B-spline coefficients in each dimension wrapped from the flat parameters in m_InternalParametersBuffer
Definition at line 402 of file itkBSplineBaseTransform.h.
|
protected |
Internal parameters buffer.
Definition at line 405 of file itkBSplineBaseTransform.h.
|
protected |
Pointer to function used to compute Bspline interpolation weights.
Definition at line 408 of file itkBSplineBaseTransform.h.
|
staticconstexpr |
Number of weights.
Definition at line 239 of file itkBSplineBaseTransform.h.
|
staticconstexpr |
Dimension of the domain space.
Definition at line 49 of file itkBSplineBaseTransform.h.
|
staticconstexpr |
The BSpline order.
Definition at line 52 of file itkBSplineBaseTransform.h.