Loading...
Searching...
No Matches
elastix::BSplineStackTransform< TElastix > Class Template Reference
Components » Transforms

`#include <elxBSplineStackTransform.h>`

## Detailed Description

template<class TElastix>
class elastix::BSplineStackTransform< TElastix >

A B-spline transform based on the itkStackTransform.

This transform is a B-spline transformation, with for every time point a separate D-1 dimensional B-spline transform. Calls to TransformPoint and GetJacobian are redirected to the appropriate sub transform based on the last dimension (time) index.

This transform uses the size, spacing and origin of the last dimension of the fixed image to set the number of sub transforms the origin of the first transform and the spacing between the transforms.

When supplying the B-spline parameters (grid) make sure to provide dimension - 1 elements.

The parameters used in this class are:

Parameters

  Transform: Select this transform as follows:
  (Transform "BSplineStackTransform")

  BSplineTransformSplineOrder: choose a B-spline order 1,2, or 3.
  example: (BSplineTransformSplineOrder 3)
  Default value: 3 (cubic B-splines).

  FinalGridSpacingInVoxels: the grid spacing of the B-spline transform for each dimension.
  example: (FinalGridSpacingInVoxels 8.0 8.0 8.0)
  If only one argument is given, that factor is used for each dimension. The spacing is not in millimeters, but in "voxel size units". The default is 16.0 in every dimension.

  FinalGridSpacingInPhysicalUnits: the grid spacing of the B-spline transform for each dimension.
  example: (FinalGridSpacingInPhysicalUnits 8.0 8.0 8.0)
  If only one argument is given, that factor is used for each dimension. The spacing is specified in millimeters. If not specified, the FinalGridSpacingInVoxels is used, or the FinalGridSpacing, to compute a FinalGridSpacingInPhysicalUnits. If those are not specified, the default value for FinalGridSpacingInVoxels is used to compute a FinalGridSpacingInPhysicalUnits. If an affine transformation is provided as initial transformation, the control grid will be scaled to cover the fixed image domain in the space defined by the initial transformation.

  GridSpacingSchedule: the grid spacing downsampling factors for the B-spline transform for each dimension and each resolution.
  example: (GridSpacingSchedule 4.0 4.0 2.0 2.0 1.0 1.0)
  Which is an example for a 2D image, using 3 resolutions.
  For convenience, you may also specify only one value for each resolution:
  example: (GridSpacingSchedule 4.0 2.0 1.0 )
  which is equivalent to the example above.

  PassiveEdgeWidth: the width of a band of control points at the border of the B-spline coefficient image that should remain passive during optimisation.
  Can be specified for each resolution.
  example: (PassiveEdgeWidth 0 1 2)
  The default is zero for all resolutions. A value of 4 will avoid all deformations at the edge of the image. Make sure that 2*PassiveEdgeWidth < ControlPointGridSize in each dimension.

The transform parameters necessary for transformix, additionally defined by this class, are:

Transform Parameters

  GridSize: stores the size of the B-spline grid.
  example: (GridSize 16 16 16)

  GridIndex: stores the index of the B-spline grid.
  example: (GridIndex 0 0 0)

  GridSpacing: stores the spacing of the B-spline grid.
  example: (GridSpacing 16.0 16.0 16.0)

  GridOrigin: stores the origin of the B-spline grid.
  example: (GridOrigin 0.0 0.0 0.0)

  GridDirection: stores the direction cosines of the B-spline grid.
  example: (GridDirection 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.1)

  BSplineTransformSplineOrder: stores the B-spline order 1,2, or 3.
  example: (BSplineTransformSplineOrder 3) Default value: 3 (cubic B-splines).

  StackSpacing: stores the spacing between the sub transforms.
  exanoke: (StackSpacing 1.0)

  StackOrigin: stores the origin of the first sub transform.
  exanoke: (StackOrigin 0.0)

  NumberOfSubTransforms: stores the number of sub transforms.
  exanoke: (NumberOfSubTransforms 10)

Todo
  It is unsure what happens when one of the image dimensions has length 1.

Definition at line 112 of file elxBSplineStackTransform.h.

Inheritance diagram for elastix::BSplineStackTransform< TElastix >:
[legend]

## Public Types

using | BSplineTransformBasePointer = typename BSplineTransformBaseType::Pointer
using | BSplineTransformBaseType
using | CombinationTransformType = typename Superclass2::CombinationTransformType
using | ConstPointer = itk::SmartPointer<const Self>
using | CoordRepType
using | DirectionType = typename BSplineTransformBaseType::DirectionType
using | FixedImageType
using | GridScheduleComputerPointer = typename GridScheduleComputerType::Pointer
using | GridScheduleComputerType = itk::GridScheduleComputer<CoordRepType, ReducedSpaceDimension>
using | GridScheduleType = typename GridScheduleComputerType ::VectorGridSpacingFactorType
using | GridUpsamplerPointer = typename GridUpsamplerType::Pointer
using | GridUpsamplerType = itk::UpsampleBSplineParametersFilter<ParametersType, ReducedDimensionImageType>
using | ImagePointer = typename BSplineTransformBaseType::ImagePointer
using | ImageType = typename BSplineTransformBaseType::ImageType
using | IndexType = typename BSplineTransformBaseType::IndexType
using | ITKBaseType = typename Superclass2::ITKBaseType
using | MovingImageType
using | OriginType = typename BSplineTransformBaseType::OriginType
using | ParameterMapType
using | ParameterValueType = std::vector<std::string>
using | Pointer = itk::SmartPointer<Self>
using | ReducedDimensionBSplineTransformBasePointer = typename ReducedDimensionBSplineTransformBaseType::Pointer
using | ReducedDimensionBSplineTransformBaseType
using | ReducedDimensionDirectionType = typename ReducedDimensionImageType::DirectionType
using | ReducedDimensionImageType = itk::Image<PixelType, Self::ReducedSpaceDimension>
using | ReducedDimensionIndexType = typename ReducedDimensionRegionType::IndexType
using | ReducedDimensionOriginType = typename ReducedDimensionImageType::PointType
using | ReducedDimensionRegionType = itk::ImageRegion<Self::ReducedSpaceDimension>
using | ReducedDimensionSizeType = typename ReducedDimensionRegionType::SizeType
using | ReducedDimensionSpacingType = typename ReducedDimensionImageType::SpacingType
using | RegionType = typename BSplineTransformBaseType::RegionType
using | Self = BSplineStackTransform
using | SizeType = typename BSplineTransformBaseType::SizeType
using | SpacingType = typename BSplineTransformBaseType::SpacingType
using | Superclass1
using | Superclass2 = elx::TransformBase<TElastix>
Public Types inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions >
using | ConstPointer = SmartPointer<const Self>
using | CurrentTransformConstPointer = typename CurrentTransformType::ConstPointer
using | CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer
using | CurrentTransformInverseTransformBaseType = typename CurrentTransformType::InverseTransformBaseType
using | CurrentTransformPointer = typename CurrentTransformType::Pointer
using | CurrentTransformType = Superclass
using | InitialTransformConstPointer = typename InitialTransformType::ConstPointer
using | InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer
using | InitialTransformInverseTransformBaseType = typename InitialTransformType::InverseTransformBaseType
using | InitialTransformPointer = typename InitialTransformType::Pointer
using | InitialTransformType = Superclass
using | InternalMatrixType
using | InverseTransformBaseType = typename Superclass::InverseTransformBaseType
using | JacobianOfSpatialHessianType
using | JacobianOfSpatialJacobianType
using | MovingImageGradientType
using | MovingImageGradientValueType
using | NonZeroJacobianIndicesType
using | Pointer = SmartPointer<Self>
using | Self = AdvancedCombinationTransform
using | SpatialHessianType
using | SpatialJacobianType
using | Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions>
using | TransformType = typename Superclass::TransformType
using | TransformTypeConstPointer = typename TransformType::ConstPointer
using | TransformTypePointer = typename TransformType::Pointer
Public Types inherited from itk::AdvancedTransform< TScalarType, 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 Types inherited from elastix::TransformBase< TElastix >
using | CombinationTransformType = itk::AdvancedCombinationTransform<CoordRepType, Self::FixedImageDimension>
using | CommandLineArgumentMapType = Configuration ::CommandLineArgumentMapType
using | CommandLineEntryType = Configuration ::CommandLineEntryType
using | ComponentDescriptionType = ComponentDatabase::ComponentDescriptionType
using | CoordRepType = ElastixBase::CoordRepType
using | DeformationFieldImageType = itk::Image<VectorPixelType, FixedImageDimension>
using | FixedImageType = typename TElastix::FixedImageType
using | InitialTransformType = typename CombinationTransformType::InitialTransformType
using | InputPointType = typename ITKBaseType::InputPointType
using | ITKBaseType = CombinationTransformType
using | ITKRegistrationType = typename RegistrationType::ITKBaseType
using | MovingImageType = typename TElastix::MovingImageType
using | OptimizerType = typename ITKRegistrationType::OptimizerType
using | OutputPointType = typename ITKBaseType::OutputPointType
using | ParameterMapType = typename TElastix::ParameterMapType
using | ParametersType = itk::OptimizerParameters<ValueType>
using | PtrToCreator = ComponentDatabase::PtrToCreator
using | RegistrationType
using | ScalesType = itk::Optimizer::ScalesType
using | Self = TransformBase
using | SpatialJacobianDeterminantImageType = itk::Image<float, FixedImageDimension>
using | SpatialJacobianMatrixImageType
using | Superclass = BaseComponentSE<TElastix>
using | ValueType = double
using | VectorPixelType = itk::Vector<float, FixedImageDimension>
Public Types inherited from elastix::BaseComponentSE< TElastix >
using | ElastixType = TElastix
using | RegistrationType = typename ElastixType::RegistrationBaseType
using | Self = BaseComponentSE
using | Superclass = BaseComponent

## Public Member Functions

int | BeforeAll () override
void | BeforeEachResolution () override
void | BeforeRegistration () override
| elxClassNameMacro ("BSplineStackTransform")
virtual const char * | GetClassName () const
virtual void | IncreaseScale ()
| ITK_DISALLOW_COPY_AND_MOVE (BSplineStackTransform)
| itkStaticConstMacro (ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1)
| itkStaticConstMacro (SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
void | ReadFromFile () override
virtual void | SetOptimizerScales (const unsigned int edgeWidth)
Public Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions >
void | EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
const FixedParametersType & | GetFixedParameters () const override
bool | GetHasNonZeroSpatialHessian () const override
bool | GetInverse (Self *inverse) const
void | GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void | GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void | GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
const TransformTypePointer | GetNthTransform (SizeValueType n) const
NumberOfParametersType | GetNumberOfNonZeroJacobianIndices () const override
NumberOfParametersType | GetNumberOfParameters () const override
SizeValueType | GetNumberOfTransforms () const
const ParametersType & | GetParameters () const override
void | GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override
void | GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override
TransformCategoryEnum | GetTransformCategory () const override
virtual bool | GetUseAddition () const
virtual bool | GetUseComposition () const
bool | HasNonZeroJacobianOfSpatialHessian () const
bool | IsLinear () const override
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedCombinationTransform)
| itkGetModifiableObjectMacro (CurrentTransform, CurrentTransformType)
| itkGetModifiableObjectMacro (InitialTransform, InitialTransformType)
| itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
void | SetCurrentTransform (CurrentTransformType *_arg)
void | SetFixedParameters (const FixedParametersType &fixedParam) override
void | SetInitialTransform (InitialTransformType *_arg)
void | SetParameters (const ParametersType &param) override
void | SetParametersByValue (const ParametersType &param) override
void | SetUseAddition (bool _arg)
void | SetUseComposition (bool _arg)
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override
OutputPointType | TransformPoint (const InputPointType &point) const override
OutputVectorType | TransformVector (const InputVectorType &) const override
OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const override
Public Member Functions inherited from itk::AdvancedTransform< TScalarType, 3, 3 >
void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
virtual bool | GetHasNonZeroJacobianOfSpatialHessian () const
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
| itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
Public Member Functions inherited from elastix::TransformBase< TElastix >
int | BeforeAllTransformix ()
void | ComputeAndWriteSpatialJacobianDeterminantImage () const
void | ComputeAndWriteSpatialJacobianMatrixImage () const
SpatialJacobianDeterminantImageType::Pointer | ComputeSpatialJacobianDeterminantImage () const
SpatialJacobianMatrixImageType::Pointer | ComputeSpatialJacobianMatrixImage () const
void | CreateTransformParameterMap (const ParametersType &param, ParameterMapType &parameterMap, const bool includeDerivedTransformParameters=true) const
ITKBaseType * | GetAsITKBaseType ()
const ITKBaseType * | GetAsITKBaseType () const
| ITK_DISALLOW_COPY_AND_MOVE (TransformBase)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
void | ReadInitialTransformFromFile (const std::string &transformParameterFileName)
void | SetFinalParameters ()
void | SetInitialTransform (InitialTransformType *_arg)
void | SetReadWriteTransformParameters (const bool _arg)
void | SetTransformParameterFileName (const std::string &filename)
template<typename TMesh>
TMesh::Pointer | TransformMesh (const TMesh &mesh) const
void | TransformPoints () const
void | WriteToFile (std::ostream &transformationParameterInfo, const ParametersType &param) const
Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void | AddTargetCellToIterationInfo (const char *const name)
const Configuration * | GetConfiguration () const
ElastixType * | GetElastix () const
auto & | GetIterationInfoAt (const char *const name)
RegistrationType * | GetRegistration () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
void | RemoveTargetCellFromIterationInfo (const char *const name)
void | SetConfiguration (const Configuration *_arg)
void | SetElastix (ElastixType *_arg)
Public Member Functions inherited from elastix::BaseComponent
virtual void | AfterEachIteration ()
virtual void | AfterEachIterationBase ()
virtual void | AfterEachResolution ()
virtual void | AfterEachResolutionBase ()
virtual void | AfterRegistration ()
virtual void | BeforeEachResolutionBase ()
virtual const char * | elxGetClassName () const
const char * | GetComponentLabel () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
| itkTypeMacroNoParent (BaseComponent)
void | SetComponentLabel (const char *label, unsigned int idx)

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions >
static Pointer | New ()
Static Public Member Functions inherited from elastix::BaseComponent
template<typename TBaseComponent>
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType())
static void | InitializeElastixExecutable ()
static bool | IsElastixLibrary ()

## Protected Member Functions

| BSplineStackTransform ()
virtual void | PreComputeGridInformation ()
| ~BSplineStackTransform () override=default
Protected Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions >
| AdvancedCombinationTransform ()
void | EvaluateJacobianWithImageGradientProductNoCurrentTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void | EvaluateJacobianWithImageGradientProductNoInitialTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void | EvaluateJacobianWithImageGradientProductUseAddition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void | EvaluateJacobianWithImageGradientProductUseComposition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void | GetJacobianNoCurrentTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void | GetJacobianNoInitialTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void | GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void | GetJacobianUseAddition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void | GetJacobianUseComposition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void | GetSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
void | GetSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
void | GetSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh) const
void | GetSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh) const
void | GetSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
void | GetSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
void | GetSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
void | GetSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
OutputPointType | TransformPointNoCurrentTransform (const InputPointType &point) const
OutputPointType | TransformPointNoInitialTransform (const InputPointType &point) const
OutputPointType | TransformPointUseAddition (const InputPointType &point) const
OutputPointType | TransformPointUseComposition (const InputPointType &point) const
void | UpdateCombinationMethod ()
| ~AdvancedCombinationTransform () override=default
Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, 3, 3 >
| AdvancedTransform ()=default
| ~AdvancedTransform () override=default
Protected Member Functions inherited from elastix::TransformBase< TElastix >
void | AutomaticScalesEstimation (ScalesType &scales) const
void | AutomaticScalesEstimationStackTransform (const unsigned int numSubTransforms, ScalesType &scales) const
bool | HasITKTransformParameters () const
| TransformBase ()=default
| ~TransformBase () override=default
Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
| BaseComponentSE ()=default
| ~BaseComponentSE () override=default
Protected Member Functions inherited from elastix::BaseComponent
| BaseComponent ()=default
virtual | ~BaseComponent ()=default

## Private Types

using | StackTransformType = itk::BSplineStackTransform<SpaceDimension>

## Private Member Functions

ParameterMapType | CreateDerivedTransformParameterMap () const override
unsigned int | InitializeBSplineTransform ()
void | InitializeTransform ()

## Private Attributes

| elxOverrideGetSelfMacro
ReducedDimensionBSplineTransformBasePointer | m_DummySubTransform
GridScheduleComputerPointer | m_GridScheduleComputer
GridUpsamplerPointer | m_GridUpsampler
unsigned int | m_NumberOfSubTransforms
unsigned int | m_SplineOrder
double | m_StackOrigin
double | m_StackSpacing
const StackTransformType::Pointer | m_StackTransform { StackTransformType::New() }

## Additional Inherited Members

Protected Attributes inherited from itk::AdvancedTransform< TScalarType, 3, 3 >
bool | m_HasNonZeroJacobianOfSpatialHessian
bool | m_HasNonZeroSpatialHessian
Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
Configuration::ConstPointer | m_Configuration {}
itk::WeakPointer< TElastix > | m_Elastix {}
RegistrationType * | m_Registration {}

## Member Typedef Documentation

## BSplineTransformBasePointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::BSplineTransformBasePointer = typename BSplineTransformBaseType::Pointer

Definition at line 150 of file elxBSplineStackTransform.h.

## BSplineTransformBaseType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::BSplineTransformBaseType

Initial value:
itk::AdvancedBSplineDeformableTransformBase<typename elx::TransformBase<TElastix>::CoordRepType,
Self::SpaceDimension>
itk::AdvancedBSplineDeformableTransformBase
Base class for deformable transform using a B-spline representation.
Definition itkAdvancedBSplineDeformableTransformBase.h:43

The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform.

Definition at line 147 of file elxBSplineStackTransform.h.

## CombinationTransformType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::CombinationTransformType = typename Superclass2::CombinationTransformType

Definition at line 181 of file elxBSplineStackTransform.h.

## ConstPointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 126 of file elxBSplineStackTransform.h.

## CoordRepType

template<class TElastix>

using elastix::TransformBase< TElastix >::CoordRepType

Elastix typedef's.

Definition at line 156 of file elxTransformBase.h.

## DirectionType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::DirectionType = typename BSplineTransformBaseType::DirectionType

Definition at line 172 of file elxBSplineStackTransform.h.

## FixedImageType

template<class TElastix>

using elastix::TransformBase< TElastix >::FixedImageType

Definition at line 157 of file elxTransformBase.h.

## GridScheduleComputerPointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::GridScheduleComputerPointer = typename GridScheduleComputerType::Pointer

Definition at line 194 of file elxBSplineStackTransform.h.

## GridScheduleComputerType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::GridScheduleComputerType = itk::GridScheduleComputer<CoordRepType, ReducedSpaceDimension>

Typedef's for the GridScheduleComputer and the UpsampleBSplineParametersFilter.

Definition at line 193 of file elxBSplineStackTransform.h.

## GridScheduleType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::GridScheduleType = typename GridScheduleComputerType ::VectorGridSpacingFactorType

Definition at line 195 of file elxBSplineStackTransform.h.

## GridUpsamplerPointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::GridUpsamplerPointer = typename GridUpsamplerType::Pointer

Definition at line 197 of file elxBSplineStackTransform.h.

## GridUpsamplerType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::GridUpsamplerType = itk::UpsampleBSplineParametersFilter<ParametersType, ReducedDimensionImageType>

Definition at line 196 of file elxBSplineStackTransform.h.

## ImagePointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ImagePointer = typename BSplineTransformBaseType::ImagePointer

Definition at line 166 of file elxBSplineStackTransform.h.

## ImageType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ImageType = typename BSplineTransformBaseType::ImageType

Definition at line 165 of file elxBSplineStackTransform.h.

## IndexType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::IndexType = typename BSplineTransformBaseType::IndexType

Definition at line 168 of file elxBSplineStackTransform.h.

## ITKBaseType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 180 of file elxBSplineStackTransform.h.

## MovingImageType

template<class TElastix>

using elastix::TransformBase< TElastix >::MovingImageType

Definition at line 158 of file elxTransformBase.h.

## OriginType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::OriginType = typename BSplineTransformBaseType::OriginType

Definition at line 171 of file elxBSplineStackTransform.h.

## ParameterMapType

template<class TElastix>

using elastix::TransformBase< TElastix >::ParameterMapType

Typedef that is used in the elastix dll version.

Definition at line 199 of file elxTransformBase.h.

## ParameterValueType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ParameterValueType = std::vector<std::string>

Typedef's creation of parameter map

Definition at line 200 of file elxBSplineStackTransform.h.

## Pointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 125 of file elxBSplineStackTransform.h.

## ReducedDimensionBSplineTransformBasePointer

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionBSplineTransformBasePointer = typename ReducedDimensionBSplineTransformBaseType::Pointer

Definition at line 156 of file elxBSplineStackTransform.h.

## ReducedDimensionBSplineTransformBaseType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionBSplineTransformBaseType

Initial value:
itk::AdvancedBSplineDeformableTransformBase<typename elx::TransformBase<TElastix>::CoordRepType,
Self::ReducedSpaceDimension>

The ITK-class for the sub transforms, which have a reduced dimension.

Definition at line 153 of file elxBSplineStackTransform.h.

## ReducedDimensionDirectionType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionDirectionType = typename ReducedDimensionImageType::DirectionType

Definition at line 189 of file elxBSplineStackTransform.h.

## ReducedDimensionImageType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionImageType = itk::Image<PixelType, Self::ReducedSpaceDimension>

Reduced dimension image typedefs.

Definition at line 184 of file elxBSplineStackTransform.h.

## ReducedDimensionIndexType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionIndexType = typename ReducedDimensionRegionType::IndexType

Definition at line 187 of file elxBSplineStackTransform.h.

## ReducedDimensionOriginType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionOriginType = typename ReducedDimensionImageType::PointType

Definition at line 190 of file elxBSplineStackTransform.h.

## ReducedDimensionRegionType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionRegionType = itk::ImageRegion<Self::ReducedSpaceDimension>

Definition at line 185 of file elxBSplineStackTransform.h.

## ReducedDimensionSizeType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionSizeType = typename ReducedDimensionRegionType::SizeType

Definition at line 186 of file elxBSplineStackTransform.h.

## ReducedDimensionSpacingType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::ReducedDimensionSpacingType = typename ReducedDimensionImageType::SpacingType

Definition at line 188 of file elxBSplineStackTransform.h.

## RegionType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::RegionType = typename BSplineTransformBaseType::RegionType

Definition at line 167 of file elxBSplineStackTransform.h.

## Self

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::Self = BSplineStackTransform

Standard ITK-stuff.

Definition at line 121 of file elxBSplineStackTransform.h.

## SizeType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::SizeType = typename BSplineTransformBaseType::SizeType

Definition at line 169 of file elxBSplineStackTransform.h.

## SpacingType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::SpacingType = typename BSplineTransformBaseType::SpacingType

Definition at line 170 of file elxBSplineStackTransform.h.

## StackTransformType

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::StackTransformType = itk::BSplineStackTransform<SpaceDimension>

private

The deleted copy constructor and assignment operator. Typedef for stack transform.

Definition at line 278 of file elxBSplineStackTransform.h.

## Superclass1

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::Superclass1

Initial value:
itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
elx::TransformBase<TElastix>::FixedImageDimension>
elastix::TransformBase
This class is the elastix base class for all Transforms.
Definition elxTransformBase.h:138
itk::AdvancedCombinationTransform
This class combines two transforms: an 'initial transform' with a 'current transform'.
Definition itkAdvancedCombinationTransform.h:57

Definition at line 122 of file elxBSplineStackTransform.h.

## Superclass2

template<class TElastix>

using elastix::BSplineStackTransform< TElastix >::Superclass2 = elx::TransformBase<TElastix>

Definition at line 124 of file elxBSplineStackTransform.h.

## Constructor & Destructor Documentation

## BSplineStackTransform()

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::BSplineStackTransform | ( |  | ) |

inline protected

The constructor.

Definition at line 252 of file elxBSplineStackTransform.h.

## ~BSplineStackTransform()

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::~BSplineStackTransform | ( |  | ) |

override protected default

The destructor.

## Member Function Documentation

## BeforeAll()

template<class TElastix>

int elastix::BSplineStackTransform< TElastix >::BeforeAll | ( |  | ) |

override virtual

Execute stuff before anything else is done:

- Initialize the right BSplineTransform.
- Initialize the right grid schedule computer.
- Initialize upsample filter.

Reimplemented from elastix::BaseComponent.

## BeforeEachResolution()

template<class TElastix>

void elastix::BSplineStackTransform< TElastix >::BeforeEachResolution | ( |  | ) |

override virtual

Execute stuff before each new pyramid resolution:

- In the first resolution call InitializeTransform().
- In next resolutions upsample the B-spline grid if necessary (so, call IncreaseScale())

Reimplemented from elastix::BaseComponent.

## BeforeRegistration()

template<class TElastix>

void elastix::BSplineStackTransform< TElastix >::BeforeRegistration | ( |  | ) |

override virtual

Execute stuff before the actual registration:

- Create an initial B-spline grid.
- Set the stack transform parameters.
- Set initial sub transforms.
- Create initial registration parameters.
- PrecomputeGridInformation. Initially, the transform is set to use a 1x1x1 grid, with deformation (0,0,0). In the method BeforeEachResolution() this will be replaced by the right grid size. This seems not logical, but it is required, since the registration class checks if the number of parameters in the transform is equal to the number of parameters in the registration class. This check is done before calling the BeforeEachResolution() methods.

Reimplemented from elastix::BaseComponent.

## CreateDerivedTransformParameterMap()

template<class TElastix>

ParameterMapType elastix::BSplineStackTransform< TElastix >::CreateDerivedTransformParameterMap | ( |  | ) | const

override private virtual

Creates a map of the parameters specific for this (derived) transform type.

Implements elastix::TransformBase< TElastix >.

## elxClassNameMacro()

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::elxClassNameMacro | ( | "BSplineStackTransform< TElastix >" |  | ) |

Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "BSplineStackTransform")

## GetClassName()

template<class TElastix>

virtual const char * elastix::BSplineStackTransform< TElastix >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::AdvancedCombinationTransform< TScalarType, NDimensions >.

## IncreaseScale()

template<class TElastix>

virtual void elastix::BSplineStackTransform< TElastix >::IncreaseScale | ( |  | ) |

virtual

Method to increase the density of the B-spline grid.

- Determine the new B-spline coefficients that describe the current deformation field for all sub transforms.
- Set these coefficients as InitialParametersOfNextLevel in the registration object. Called by BeforeEachResolution().

## InitializeBSplineTransform()

template<class TElastix>

unsigned int elastix::BSplineStackTransform< TElastix >::InitializeBSplineTransform | ( |  | ) |

private

Initialize the right B-spline transform based on the spline order.

## InitializeTransform()

template<class TElastix>

void elastix::BSplineStackTransform< TElastix >::InitializeTransform | ( |  | ) |

private

Method to set the initial B-spline grid and grid scheduler and initialize the parameters (to 0).

- Define the initial grid region, origin and spacing, using the precomputed grid information.
- Set the initial parameters to zero and set then as InitialParametersOfNextLevel in the registration object. Called by BeforeEachResolution().

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | BSplineStackTransform< TElastix > |  | ) |

## itkStaticConstMacro() [1/2]

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::itkStaticConstMacro | ( | ReducedSpaceDimension | ,
|  | unsigned int | ,
|  | Superclass2::FixedImageDimension - | 1 )

## itkStaticConstMacro() [2/2]

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::itkStaticConstMacro | ( | SpaceDimension | ,
|  | unsigned int | ,
|  | Superclass2::FixedImageDimension | )

(Reduced) dimension of the fixed image.

## New()

template<class TElastix>

Pointer elastix::BSplineStackTransform< TElastix >::New | ( |  | ) |

static

Method for creation through the object factory.

## PreComputeGridInformation()

template<class TElastix>

virtual void elastix::BSplineStackTransform< TElastix >::PreComputeGridInformation | ( |  | ) |

protected virtual

Read user-specified gridspacing and call the itkGridScheduleComputer.

## ReadFromFile()

template<class TElastix>

void elastix::BSplineStackTransform< TElastix >::ReadFromFile | ( |  | ) |

override virtual

Function to read transform-parameters from a file.

Reimplemented from elastix::TransformBase< TElastix >.

## SetOptimizerScales()

template<class TElastix>

virtual void elastix::BSplineStackTransform< TElastix >::SetOptimizerScales | ( | const unsigned int | edgeWidth | ) |

virtual

Set the scales of the edge B-spline coefficients to zero.

## Field Documentation

## elxOverrideGetSelfMacro

template<class TElastix>

elastix::BSplineStackTransform< TElastix >::elxOverrideGetSelfMacro

private

Definition at line 262 of file elxBSplineStackTransform.h.

## m_DummySubTransform

template<class TElastix>

ReducedDimensionBSplineTransformBasePointer elastix::BSplineStackTransform< TElastix >::m_DummySubTransform

private

Dummy sub transform to be used to set sub transforms of stack transform.

Definition at line 284 of file elxBSplineStackTransform.h.

## m_GridScheduleComputer

template<class TElastix>

GridScheduleComputerPointer elastix::BSplineStackTransform< TElastix >::m_GridScheduleComputer

private

Grid schedule computer and grid upsampler.

Definition at line 287 of file elxBSplineStackTransform.h.

## m_GridUpsampler

template<class TElastix>

GridUpsamplerPointer elastix::BSplineStackTransform< TElastix >::m_GridUpsampler

private

Definition at line 288 of file elxBSplineStackTransform.h.

## m_NumberOfSubTransforms

template<class TElastix>

unsigned int elastix::BSplineStackTransform< TElastix >::m_NumberOfSubTransforms

private

Stack variables.

Definition at line 294 of file elxBSplineStackTransform.h.

## m_SplineOrder

template<class TElastix>

unsigned int elastix::BSplineStackTransform< TElastix >::m_SplineOrder

private

Variable to remember order of B-spline transform.

Definition at line 291 of file elxBSplineStackTransform.h.

## m_StackOrigin

template<class TElastix>

double elastix::BSplineStackTransform< TElastix >::m_StackOrigin

private

Definition at line 295 of file elxBSplineStackTransform.h.

## m_StackSpacing

template<class TElastix>

double elastix::BSplineStackTransform< TElastix >::m_StackSpacing

private

Definition at line 295 of file elxBSplineStackTransform.h.

## m_StackTransform

template<class TElastix>

const StackTransformType::Pointer elastix::BSplineStackTransform< TElastix >::m_StackTransform { StackTransformType::New() }

private

The B-spline stack transform.

Definition at line 281 of file elxBSplineStackTransform.h.

Generated on 1768596610 for elastix by 1.15.0 |