#include <itkBSplineDeformableTransform.h>
Inheritance diagram for itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >:
Public Types | |
typedef BSplineDeformableTransform | Self |
typedef Transform< TScalarType, NDimensions, NDimensions > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::ScalarType | ScalarType |
typedef Superclass::ParametersType | ParametersType |
typedef Superclass::JacobianType | JacobianType |
typedef ParametersType::ValueType | PixelType |
typedef Image< PixelType, itkGetStaticConstMacro(SpaceDimension) | ImageType ) |
typedef ImageType::Pointer | ImagePointer |
typedef Array< unsigned long > | ParameterIndexArrayType |
typedef Vector< TScalarType, itkGetStaticConstMacro(SpaceDimension) | InputVectorType ) |
typedef Vector< TScalarType, itkGetStaticConstMacro(SpaceDimension) | OutputVectorType ) |
typedef CovariantVector< TScalarType, itkGetStaticConstMacro(SpaceDimension) | InputCovariantVectorType ) |
typedef CovariantVector< TScalarType, itkGetStaticConstMacro(SpaceDimension) | OutputCovariantVectorType ) |
typedef vnl_vector_fixed< TScalarType, itkGetStaticConstMacro(SpaceDimension) | InputVnlVectorType ) |
typedef vnl_vector_fixed< TScalarType, itkGetStaticConstMacro(SpaceDimension) | OutputVnlVectorType ) |
typedef Point< TScalarType, itkGetStaticConstMacro(SpaceDimension) | InputPointType ) |
typedef Point< TScalarType, itkGetStaticConstMacro(SpaceDimension) | OutputPointType ) |
typedef ImageRegion< itkGetStaticConstMacro(SpaceDimension) | RegionType ) |
typedef RegionType::IndexType | IndexType |
typedef RegionType::SizeType | SizeType |
typedef FixedArray< double, itkGetStaticConstMacro(SpaceDimension) | SpacingType ) |
typedef FixedArray< double, itkGetStaticConstMacro(SpaceDimension) | OriginType ) |
typedef Transform< ScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SpaceDimension) | BulkTransformType ) |
typedef BulkTransformType::ConstPointer | BulkTransformPointer |
typedef BSplineInterpolationWeightFunction< ScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SplineOrder) | WeightsFunctionType ) |
typedef WeightsFunctionType::WeightsType | WeightsType |
typedef WeightsFunctionType::ContinuousIndexType | ContinuousIndexType |
Public Member Functions | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions) | |
itkStaticConstMacro (SplineOrder, unsigned int, VSplineOrder) | |
void | SetParameters (const ParametersType ¶meters) |
virtual const ParametersType & | GetParameters (void) const |
virtual ImagePointer * | GetCoefficientImage () |
virtual void | SetCoefficientImage (ImagePointer images[]) |
OutputPointType | TransformPoint (const InputPointType &point) const |
void | TransformPoint (const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const |
unsigned long | GetNumberOfWeights () const |
virtual const JacobianType & | GetJacobian (const InputPointType &point) const |
virtual unsigned int | GetNumberOfParameters (void) const |
unsigned int | GetNumberOfParametersPerDimension (void) const |
virtual RegionType | GetValidRegion () const |
virtual void | SetGridRegion (const RegionType ®ion) |
virtual RegionType | GetGridRegion () |
virtual void | SetGridSpacing (const SpacingType &spacing) |
virtual SpacingType | GetGridSpacing () |
virtual void | SetGridOrigin (const OriginType &origin) |
virtual OriginType | GetGridOrigin () |
virtual void | SetBulkTransform (const BulkTransformType *_arg) |
virtual const BulkTransformType * | GetBulkTransform () |
virtual OutputVectorType | TransformVector (const InputVectorType &) const |
virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const |
virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const |
Static Public Member Functions | |
Pointer | New () |
Protected Member Functions | |
void | PrintSelf (std::ostream &os, Indent indent) const |
BSplineDeformableTransform () | |
~BSplineDeformableTransform () |
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 BSpline 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 BSplineDeformableTransform<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 SetCoefficientImage() 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 110 of file itkBSplineDeformableTransform.h.
|
Typedef of the bulk transform. Definition at line 241 of file itkBSplineDeformableTransform.h. |
|
Typedef of the bulk transform. Definition at line 240 of file itkBSplineDeformableTransform.h. |
|
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 118 of file itkBSplineDeformableTransform.h. |
|
Interpolation weights function type. Definition at line 259 of file itkBSplineDeformableTransform.h. |
|
Definition at line 195 of file itkBSplineDeformableTransform.h. |
|
Definition at line 194 of file itkBSplineDeformableTransform.h. |
|
Typedefs for specifying the extend to the grid. Definition at line 217 of file itkBSplineDeformableTransform.h. |
|
Standard covariant vector type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 150 of file itkBSplineDeformableTransform.h. |
|
Standard coordinate point type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 164 of file itkBSplineDeformableTransform.h. |
|
Standard vector type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 143 of file itkBSplineDeformableTransform.h. |
|
Standard vnl_vector type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 157 of file itkBSplineDeformableTransform.h. Referenced by itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfWeights(). |
|
Standard Jacobian container. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 139 of file itkBSplineDeformableTransform.h. |
|
Typedefs for specifying the extend to the grid. Definition at line 220 of file itkBSplineDeformableTransform.h. |
|
Standard covariant vector type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 152 of file itkBSplineDeformableTransform.h. |
|
Standard coordinate point type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 166 of file itkBSplineDeformableTransform.h. |
|
Standard vector type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 145 of file itkBSplineDeformableTransform.h. |
|
Standard vnl_vector type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 159 of file itkBSplineDeformableTransform.h. Referenced by itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfWeights(). |
|
Parameter index array type. Definition at line 263 of file itkBSplineDeformableTransform.h. |
|
Standard parameters container. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 136 of file itkBSplineDeformableTransform.h. |
|
Parameters as SpaceDimension number of images. Definition at line 193 of file itkBSplineDeformableTransform.h. |
|
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 117 of file itkBSplineDeformableTransform.h. |
|
Typedefs for specifying the extend to the grid. Definition at line 216 of file itkBSplineDeformableTransform.h. |
|
Standard scalar type for this class. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 133 of file itkBSplineDeformableTransform.h. |
|
Standard class typedefs. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 115 of file itkBSplineDeformableTransform.h. |
|
Typedefs for specifying the extend to the grid. Definition at line 218 of file itkBSplineDeformableTransform.h. |
|
Typedefs for specifying the extend to the grid. Definition at line 219 of file itkBSplineDeformableTransform.h. |
|
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 116 of file itkBSplineDeformableTransform.h. |
|
Interpolation weights function type. Definition at line 257 of file itkBSplineDeformableTransform.h. |
|
Interpolation weights function type. Definition at line 258 of file itkBSplineDeformableTransform.h. |
|
|
|
|
|
This method specifies the bulk transform to be applied. The default is the identity transform. |
|
Run-time type information (and related methods). Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Get the array of coefficient images. Definition at line 198 of file itkBSplineDeformableTransform.h. |
|
This method specifies the grid origin. |
|
This method specifies the region over which the grid resides. |
|
This method specifies the grid spacing or resolution. |
|
Compute the Jacobian Matrix of the transformation at one point Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Return the number of parameters that completely define the Transfom Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Return the number of parameters per dimension |
|
Get number of weights. Definition at line 279 of file itkBSplineDeformableTransform.h. References itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVnlVectorType, itkExceptionMacro, and itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVnlVectorType. |
|
Get the Transformation Parameters. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Return the region of the grid wholly within the support region |
|
The BSpline order. |
|
Dimension of the domain space. |
|
New macro for creation of through the object factory. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Print contents of an BSplineDeformableTransform. Reimplemented from itk::Object.
|
|
This method specifies the bulk transform to be applied. The default is the identity transform. |
|
Set the array of coefficient images. This is an alternative API for setting the BSpline 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 SetCoefficientImage() API. Mixing the two modes may results in unexpected results. |
|
This method specifies the grid origin. |
|
This method specifies the region over which the grid resides. |
|
This method specifies the grid spacing or resolution. |
|
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. 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. 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. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Method to transform a CovariantVector - not applicable for this type of transform Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 299 of file itkBSplineDeformableTransform.h. |
|
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. |
|
Transform points by a BSpline deformable transformation. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
|
|
Method to transform a vnl_vector - not applicable for this type of transform Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 291 of file itkBSplineDeformableTransform.h. |
|
Method to transform a vector - not applicable for this type of transform. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. Definition at line 283 of file itkBSplineDeformableTransform.h. |