#include <itkAdvancedBSplineDeformableTransformBase.h>
Base class for deformable transform using a B-spline representation.
This class is the base for the encapsulation of a deformable transform of points from one N-dimensional one space to another N-dimensional space.
This class is not templated over the spline order, which makes the use of different spline orders more convenient in subsequent code.
Definition at line 41 of file itkAdvancedBSplineDeformableTransformBase.h.
Public Types | |
using | ConstPointer = SmartPointer<const Self> |
using | ContinuousIndexType = ContinuousIndex<ScalarType, SpaceDimension> |
using | DirectionType = typename ImageType::DirectionType |
using | GridOffsetType = IndexType |
using | ImagePointer = typename ImageType::Pointer |
using | ImageType = Image<PixelType, Self::SpaceDimension> |
using | IndexType = typename RegionType::IndexType |
using | OriginType = typename ImageType::PointType |
using | ParameterIndexArrayType = Array<unsigned long> |
using | Pointer = SmartPointer<Self> |
using | RegionType = ImageRegion<Self::SpaceDimension> |
using | Self = AdvancedBSplineDeformableTransformBase |
using | SizeType = typename RegionType::SizeType |
using | SpacingType = typename ImageType::SpacingType |
using | Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions> |
Public Types inherited from itk::AdvancedTransform< double, 3, 3 > | |
using | ConstPointer |
using | InternalMatrixType |
using | InverseTransformBaseType |
using | JacobianOfSpatialHessianType |
using | JacobianOfSpatialJacobianType |
using | MovingImageGradientType |
using | MovingImageGradientValueType |
using | NonZeroJacobianIndicesType |
using | Pointer |
using | Self |
using | SpatialHessianType |
using | SpatialJacobianType |
using | Superclass |
using | TransformType |
using | TransformTypeConstPointer |
using | TransformTypePointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
virtual const ImagePointer * | GetCoefficientImages () const |
const FixedParametersType & | GetFixedParameters () const override |
virtual DirectionType | GetGridDirection () const |
virtual OriginType | GetGridOrigin () const |
virtual RegionType | GetGridRegion () const |
virtual SpacingType | GetGridSpacing () const |
virtual unsigned int | GetNumberOfAffectedWeights () const =0 |
NumberOfParametersType | GetNumberOfNonZeroJacobianIndices () const override=0 |
NumberOfParametersType | GetNumberOfParameters () const override |
virtual NumberOfParametersType | GetNumberOfParametersPerDimension () const |
const ParametersType & | GetParameters () const override |
unsigned | GetSplineOrder () const |
TransformCategoryEnum | GetTransformCategory () const override |
virtual const RegionType & | GetValidRegion () |
bool | IsLinear () const override |
ITK_DISALLOW_COPY_AND_MOVE (AdvancedBSplineDeformableTransformBase) | |
itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions) | |
virtual void | SetCoefficientImages (ImagePointer images[]) |
void | SetFixedParameters (const FixedParametersType ¶meters) override |
virtual void | SetGridDirection (const DirectionType &direction) |
virtual void | SetGridOrigin (const OriginType &origin) |
virtual void | SetGridRegion (const RegionType ®ion)=0 |
virtual void | SetGridSpacing (const SpacingType &spacing) |
void | SetIdentity () |
void | SetParameters (const ParametersType ¶meters) override |
void | SetParametersByValue (const ParametersType ¶meters) override |
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override |
OutputVectorType | TransformVector (const InputVectorType &) const override |
OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const override |
Public Member Functions inherited from itk::AdvancedTransform< double, 3, 3 > | |
void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override |
virtual void | EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const |
virtual bool | GetHasNonZeroJacobianOfSpatialHessian () const |
virtual bool | GetHasNonZeroSpatialHessian () const |
virtual void | GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0 |
virtual void | GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0 |
virtual void | GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0 |
virtual void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0 |
virtual void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0 |
virtual void | GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const=0 |
virtual void | GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const=0 |
ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform) | |
itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions) | |
itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions) | |
Static Public Member Functions | |
template<template< class, unsigned, unsigned > class TBSplineDeformableTransform> | |
static Pointer | Create (const unsigned splineOrder) |
Static Public Attributes | |
static constexpr unsigned int | NumberOfFixedParameters = NDimensions * (NDimensions + 3) |
Protected Types | |
using | JacobianImageType = Image<JacobianPixelType, Self::SpaceDimension> |
using | JacobianPixelType = typename JacobianType::ValueType |
Protected Member Functions | |
AdvancedBSplineDeformableTransformBase ()=delete | |
AdvancedBSplineDeformableTransformBase (const unsigned splineOrder) | |
virtual void | ComputeNonZeroJacobianIndices (NonZeroJacobianIndicesType &nonZeroJacobianIndices, const RegionType &supportRegion) const =0 |
virtual bool | InsideValidRegion (const ContinuousIndexType &index) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
ContinuousIndexType | TransformPointToContinuousGridIndex (const InputPointType &point) const |
void | UpdateGridOffsetTable () |
void | UpdatePointIndexConversions () |
void | WrapAsImages () |
~AdvancedBSplineDeformableTransformBase () override=default | |
Protected Member Functions inherited from itk::AdvancedTransform< double, 3, 3 > | |
AdvancedTransform ()=default | |
~AdvancedTransform () override=default | |
Private Attributes | |
const unsigned | m_SplineOrder {} |
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ConstPointer = SmartPointer<const Self> |
Definition at line 51 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ContinuousIndexType = ContinuousIndex<ScalarType, SpaceDimension> |
This typedef should be equal to the typedef used in derived classes based on the weights function.
Definition at line 331 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::DirectionType = typename ImageType::DirectionType |
Definition at line 229 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::GridOffsetType = IndexType |
Definition at line 231 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ImagePointer = typename ImageType::Pointer |
Definition at line 200 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ImageType = Image<PixelType, Self::SpaceDimension> |
Definition at line 199 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::IndexType = typename RegionType::IndexType |
Definition at line 226 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 402 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Jacobian as SpaceDimension number of images.
Definition at line 401 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::OriginType = typename ImageType::PointType |
Definition at line 230 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ParameterIndexArrayType = Array<unsigned long> |
Parameter index array type.
Definition at line 258 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::Pointer = SmartPointer<Self> |
Definition at line 50 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::RegionType = ImageRegion<Self::SpaceDimension> |
Typedefs for specifying the extend to the grid.
Definition at line 224 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::Self = AdvancedBSplineDeformableTransformBase |
Standard class typedefs.
Definition at line 48 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::SizeType = typename RegionType::SizeType |
Definition at line 227 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::SpacingType = typename ImageType::SpacingType |
Definition at line 228 of file itkAdvancedBSplineDeformableTransformBase.h.
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions> |
Definition at line 49 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protecteddelete |
|
explicitprotected |
|
overrideprotecteddefault |
|
protectedpure virtual |
Implemented in itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >.
|
inlinestatic |
Definition at line 92 of file itkAdvancedBSplineDeformableTransformBase.h.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::AdvancedTransform< double, 3, 3 >.
Reimplemented in itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::DeformationVectorFieldTransform< TScalarType, NDimensions >, itk::GPUAdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder, TParentTransform >, and itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >.
|
inlinevirtual |
Get the array of coefficient images.
Definition at line 204 of file itkAdvancedBSplineDeformableTransformBase.h.
|
override |
Get the Transformation Fixed Parameters.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
pure virtual |
|
overridepure virtual |
Reimplemented from itk::AdvancedTransform< double, 3, 3 >.
Implemented in itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, and itk::AdvancedBSplineDeformableTransform< float, 3, 3 >.
|
override |
Return the number of parameters that completely define the Transform.
|
virtual |
Return the number of parameters per dimension
|
override |
Get the Transformation Parameters.
|
inline |
Definition at line 114 of file itkAdvancedBSplineDeformableTransformBase.h.
|
inlineoverride |
Indicates the category transform. e.g. an affine transform, or a local one, e.g. a deformation field.
Definition at line 316 of file itkAdvancedBSplineDeformableTransformBase.h.
|
virtual |
Return the region of the grid wholly within the support region
|
protectedvirtual |
Check if a continuous index is inside the valid region.
|
inlineoverride |
Indicates that this transform is linear. That is, given two points P and Q, and scalar coefficients a and b, then
T( a*P + b*Q ) = a * T(P) + b * T(Q)
Definition at line 307 of file itkAdvancedBSplineDeformableTransformBase.h.
itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ITK_DISALLOW_COPY_AND_MOVE | ( | AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions > | ) |
itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
NDimensions | ) |
Dimension of the domain space.
|
overrideprotected |
Print contents of an AdvancedBSplineDeformableTransformBase.
|
virtual |
Set the array of coefficient images.
This is an alternative API for setting the B-spline coefficients as an array of SpaceDimension images. The grid region spacing and origin is taken from the first image. It is assume 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.
|
override |
This method sets the fixed parameters of the transform. For a B-spline deformation transform, the parameters are the following: Grid Size, Grid Origin, and Grid Spacing
The fixed parameters are the three times the size of the templated dimensions. This function has the effect of make the following calls: transform->SetGridSpacing( spacing ); transform->SetGridOrigin( origin ); transform->SetGridDirection( direction ); transform->SetGridRegion( bsplineRegion );
This function was added to allow the transform to work with the itkTransformReader/Writer I/O filters.
|
virtual |
This method specifies the grid directions .
|
virtual |
This method specifies the grid origin.
|
pure virtual |
This method specifies the region over which the grid resides.
Implemented in itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, and itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >.
|
virtual |
This method specifies the grid spacing or resolution.
void itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::SetIdentity | ( | ) |
This method can ONLY be invoked AFTER calling SetParameters(). This restriction is due to the fact that the AdvancedBSplineDeformableTransform 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().
|
override |
This method sets the parameters of the transform. For a B-spline 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.
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 grid region, spacing and origin. NOTE: The grid region, spacing and origin must be set first.
|
override |
This method sets the parameters of the transform. For a B-spline 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 grid region, spacing and origin. NOTE: The grid region, spacing and origin must be set first.
|
inlineoverride |
Method to transform a CovariantVector - not applicable for this type of transform.
Definition at line 284 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Convert an input point to a continuous index inside the B-spline grid.
|
inlineoverride |
Method to transform a vector - not applicable for this type of transform.
Definition at line 264 of file itkAdvancedBSplineDeformableTransformBase.h.
|
inlineoverride |
Method to transform a vnl_vector - not applicable for this type of transform.
Definition at line 274 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
|
protected |
|
protected |
Wrap flat array into images of coefficients.
|
protected |
Array of images representing the B-spline coefficients in each dimension.
Definition at line 372 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 377 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 379 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 378 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Variables defining the coefficient grid extend.
Definition at line 375 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 376 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 387 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Keep a pointer to the input parameters.
Definition at line 398 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Internal parameters buffer.
Definition at line 415 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 404 of file itkAdvancedBSplineDeformableTransformBase.h.
|
mutableprotected |
Keep track of last support region used in computing the Jacobian for fast resetting of Jacobian to zero.
Definition at line 409 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Variables defining the interpolation support region.
Definition at line 393 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 381 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 382 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 385 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 386 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 388 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 383 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 384 of file itkAdvancedBSplineDeformableTransformBase.h.
|
private |
Definition at line 362 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 390 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 394 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Definition at line 395 of file itkAdvancedBSplineDeformableTransformBase.h.
|
protected |
Array holding images wrapped from the flat parameters.
Definition at line 412 of file itkAdvancedBSplineDeformableTransformBase.h.
|
staticconstexpr |
The number of fixed parameters. For Grid size, origin, spacing, and direction.
Definition at line 60 of file itkAdvancedBSplineDeformableTransformBase.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |