![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkAdvancedBSplineDeformableTransform.h>
Deformable transform using a B-spline representation.
This class encapsulates a deformable transform of points from one N-dimensional one space to another N-dimensional space. The deformation field is modeled using B-splines. A deformation is defined on a sparse regular grid of control points and is varied by defining a deformation
of each control point. The deformation
at any point
is obtained by using a B-spline interpolation kernel.
The deformation field grid is defined by a user specified GridRegion, GridSpacing and GridOrigin. Each grid/control point has associated with it N deformation coefficients , representing the N directional components of the deformation. Deformation outside the grid plus support region for the B-spline interpolation is assumed to be zero.
Additionally, the user can specified an addition bulk transform such that the transformed point is given by:
The parameters for this transform is N x N-D grid of spline coefficients. The user specifies the parameters as one flat array: each N-D grid is represented by an array in the same way an N-D image is represented in the buffer; the N arrays are then concatentated together on form a single array.
For efficiency, this transform does not make a copy of the parameters. It only keeps a pointer to the input parameters and assumes that the memory is managed by the caller.
The following illustrates the typical usage of this class:
* typedef AdvancedBSplineDeformableTransform<double,2,3> TransformType; * TransformType::Pointer transform = TransformType::New(); * * transform->SetGridRegion( region ); * transform->SetGridSpacing( spacing ); * transform->SetGridOrigin( origin ); * * // NB: the region must be set first before setting the parameters * * TransformType::ParametersType parameters( * transform->GetNumberOfParameters() ); * * // Fill the parameters with values * * transform->SetParameters( parameters ) * * outputPoint = transform->TransformPoint( inputPoint ); * *
An alternative way to set the B-spline coefficients is via array of images. The grid region, spacing and origin information is taken directly from the first image. It is assumed that the subsequent images are the same buffered region. The following illustrates the API:
* * TransformType::ImageConstPointer images[2]; * * // Fill the images up with values * * transform->SetCoefficientImages( images ); * outputPoint = transform->TransformPoint( inputPoint ); * *
Warning: use either the SetParameters() or SetCoefficientImages() API. Mixing the two modes may results in unexpected results.
The class is templated coordinate representation type (float or double), the space dimension and the spline order.
Definition at line 134 of file itkAdvancedBSplineDeformableTransform.h.
Static Public Member Functions | |
static Pointer | New () |
Protected Types | |
typedef Superclass::JacobianImageType | JacobianImageType |
typedef Superclass::JacobianPixelType | JacobianPixelType |
![]() | |
typedef Image< JacobianPixelType, itkGetStaticConstMacro(SpaceDimension) > | JacobianImageType |
typedef JacobianType::ValueType | JacobianPixelType |
Private Member Functions | |
AdvancedBSplineDeformableTransform (const Self &) | |
void | operator= (const Self &) |
Friends | |
class | MultiBSplineDeformableTransformWithNormal< ScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SplineOrder) > |
typedef SmartPointer< const Self > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ConstPointer |
Definition at line 144 of file itkAdvancedBSplineDeformableTransform.h.
typedef WeightsFunctionType::ContinuousIndexType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ContinuousIndexType |
Definition at line 215 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::DerivativeType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeType |
Definition at line 162 of file itkAdvancedBSplineDeformableTransform.h.
typedef DerivativeWeightsFunctionType::Pointer itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeWeightsFunctionPointer |
Definition at line 220 of file itkAdvancedBSplineDeformableTransform.h.
typedef BSplineInterpolationDerivativeWeightFunction< ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeWeightsFunctionType |
Definition at line 219 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::DirectionType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DirectionType |
Definition at line 199 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::GridOffsetType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GridOffsetType |
Definition at line 201 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::ImagePointer itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ImagePointer |
Definition at line 191 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::ImageType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ImageType |
Definition at line 190 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::IndexType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::IndexType |
Definition at line 196 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::InputCovariantVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputCovariantVectorType |
Definition at line 172 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::InputPointType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputPointType |
Definition at line 165 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::InputVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVectorType |
Definition at line 167 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::InputVnlVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVnlVectorType |
Definition at line 169 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::InternalMatrixType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InternalMatrixType |
Definition at line 184 of file itkAdvancedBSplineDeformableTransform.h.
|
protected |
Definition at line 330 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::JacobianOfSpatialHessianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianOfSpatialHessianType |
Definition at line 183 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::JacobianOfSpatialJacobianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianOfSpatialJacobianType |
Definition at line 180 of file itkAdvancedBSplineDeformableTransform.h.
|
protected |
Definition at line 331 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::JacobianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianType |
Definition at line 163 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::MovingImageGradientType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::MovingImageGradientType |
Definition at line 185 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::MovingImageGradientValueType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::MovingImageGradientValueType |
Definition at line 186 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::NonZeroJacobianIndicesType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::NonZeroJacobianIndicesType |
Definition at line 177 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::NumberOfParametersType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::NumberOfParametersType |
Definition at line 161 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::OriginType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OriginType |
Definition at line 200 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::OutputCovariantVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputCovariantVectorType |
Definition at line 174 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::OutputPointType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputPointType |
Definition at line 166 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::OutputVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVectorType |
Definition at line 168 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::OutputVnlVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVnlVectorType |
Definition at line 170 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::ParameterIndexArrayType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParameterIndexArrayType |
Parameter index array type.
Definition at line 228 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::ParametersType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParametersType |
Typedefs from Superclass.
Definition at line 159 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::ParametersValueType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParametersValueType |
Definition at line 160 of file itkAdvancedBSplineDeformableTransform.h.
typedef SmartPointer< Self > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Pointer |
Definition at line 143 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::RegionType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::RegionType |
Typedefs for specifying the extend to the grid.
Definition at line 194 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::ScalarType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ScalarType |
Definition at line 164 of file itkAdvancedBSplineDeformableTransform.h.
typedef AdvancedBSplineDeformableTransform itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Self |
Standard class typedefs.
Definition at line 140 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::SizeType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SizeType |
Definition at line 197 of file itkAdvancedBSplineDeformableTransform.h.
typedef SODerivativeWeightsFunctionType::Pointer itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SODerivativeWeightsFunctionPointer |
Definition at line 225 of file itkAdvancedBSplineDeformableTransform.h.
typedef BSplineInterpolationSecondOrderDerivativeWeightFunction< ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SODerivativeWeightsFunctionType |
Definition at line 224 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::SpacingType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpacingType |
Definition at line 198 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::SpatialHessianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpatialHessianType |
Definition at line 181 of file itkAdvancedBSplineDeformableTransform.h.
typedef Superclass::SpatialJacobianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpatialJacobianType |
Definition at line 178 of file itkAdvancedBSplineDeformableTransform.h.
typedef AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Superclass |
Definition at line 142 of file itkAdvancedBSplineDeformableTransform.h.
typedef WeightsFunctionType::Pointer itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionPointer |
Definition at line 213 of file itkAdvancedBSplineDeformableTransform.h.
typedef BSplineInterpolationWeightFunction2< ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionType |
Interpolation weights function type.
Definition at line 212 of file itkAdvancedBSplineDeformableTransform.h.
typedef WeightsFunctionType::WeightsType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsType |
Definition at line 214 of file itkAdvancedBSplineDeformableTransform.h.
|
protected |
|
overrideprotected |
|
private |
|
overrideprotectedvirtual |
|
override |
Compute the inner product of the Jacobian with the moving image gradient. The Jacobian is (partially) constructed inside this function, but not returned.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::AdvancedBSplineDeformableTransformBase< double, 3 >.
Reimplemented in itk::GPUAdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder, TParentTransform >, itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, and itk::DeformationVectorFieldTransform< TScalarType, NDimensions >.
|
overridevirtual |
Compute the Jacobian of the transformation.
Implements itk::AdvancedTransform< double, NDimensions, NDimensions >.
|
overridevirtual |
Compute the Jacobian of the spatial Hessian of the transformation.
Implements itk::AdvancedTransform< double, NDimensions, NDimensions >.
|
override |
Compute both the spatial Hessian and the Jacobian of the spatial Hessian of the transformation.
|
overridevirtual |
Compute the Jacobian of the spatial Jacobian of the transformation.
Implements itk::AdvancedTransform< double, NDimensions, NDimensions >.
|
override |
Compute both the spatial Jacobian and the Jacobian of the spatial Jacobian of the transformation.
|
overridevirtual |
|
overridevirtual |
|
inline |
Get number of weights.
Definition at line 245 of file itkAdvancedBSplineDeformableTransform.h.
|
override |
Compute the spatial Hessian of the transformation.
|
override |
Compute the spatial Jacobian of the transformation.
|
protected |
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
NDimensions | |||
) |
Dimension of the domain space.
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::itkStaticConstMacro | ( | SplineOrder | , |
unsigned int | , | ||
VSplineOrder | |||
) |
The B-spline order.
|
static |
New macro for creation of through the object factory.
|
private |
|
overrideprotected |
Print contents of an AdvancedBSplineDeformableTransform.
|
overridevirtual |
This method specifies the region over which the grid resides.
Implements itk::AdvancedBSplineDeformableTransformBase< double, 3 >.
|
protectedvirtual |
Allow subclasses to access and manipulate the weights function.
|
virtual |
Transform points by a B-spline 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.
|
override |
Transform points by a B-spline deformable transformation.
|
protected |
Wrap flat array into images of coefficients.
|
friend |
Definition at line 344 of file itkAdvancedBSplineDeformableTransform.h.
|
protected |
Definition at line 338 of file itkAdvancedBSplineDeformableTransform.h.
|
protected |
Definition at line 339 of file itkAdvancedBSplineDeformableTransform.h.
|
protected |
Pointer to function used to compute B-spline interpolation weights. For each direction we create a different weights function for thread- safety.
Definition at line 337 of file itkAdvancedBSplineDeformableTransform.h.
Generated on 1667476801 for elastix by ![]() |
![]() |