#include <itkMultiBSplineDeformableTransformWithNormal.h>
This transform is a composition of B-spline transformations, allowing sliding motion between different labels.
Detailed explanation ...
Definition at line 42 of file itkMultiBSplineDeformableTransformWithNormal.h.
Public Types | |
using | BaseType = Vector<VectorType, Self::SpaceDimension> |
using | ConstPointer = SmartPointer<const Self> |
using | ContinuousIndexType = ContinuousIndex<ScalarType, SpaceDimension> |
using | DirectionType = typename ImageType::DirectionType |
using | GridOffsetType = IndexType |
using | ImageBasePointer = typename ImageBaseType::Pointer |
using | ImageBaseType = Image<BaseType, Self::SpaceDimension> |
using | ImageLabelInterpolator = itk::NearestNeighborInterpolateImageFunction<ImageLabelType, TScalarType> |
using | ImageLabelInterpolatorPointer = typename ImageLabelInterpolator::Pointer |
using | ImageLabelPointer = typename ImageLabelType::Pointer |
using | ImageLabelType = Image<unsigned char, Self::SpaceDimension> |
using | ImagePointer = typename ImageType::Pointer |
using | ImageType = Image<PixelType, Self::SpaceDimension> |
using | ImageVectorPointer = typename ImageVectorType::Pointer |
using | ImageVectorType = Image<VectorType, 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 = MultiBSplineDeformableTransformWithNormal |
using | SizeType = typename RegionType::SizeType |
using | SpacingType = typename ImageBase<NDimensions>::SpacingType |
using | Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions> |
using | VectorType = Vector<TScalarType, Self::SpaceDimension> |
using | WeightsFunctionType = BSplineInterpolationWeightFunction2<ScalarType, Self::SpaceDimension, VSplineOrder> |
using | WeightsType = typename WeightsFunctionType::WeightsType |
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 |
const ParametersType & | GetFixedParameters () const override |
virtual DirectionType | GetGridDirection () const |
virtual OriginType | GetGridOrigin () const |
virtual RegionType | GetGridRegion () const |
virtual SpacingType | GetGridSpacing () const |
bool | GetHasNonZeroSpatialHessian () const override |
virtual bool | GetHasNonZeroSpatialJacobian () const |
void | GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &) const override |
void | GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override |
void | GetJacobianOfSpatialHessian (const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override |
void | GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override |
void | GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
virtual ImageLabelType * | GetLabels () const |
virtual ImageBaseType * | GetLocalBases () const |
virtual unsigned char | GetNbLabels () const |
virtual unsigned int | GetNumberOfAffectedWeights () const |
NumberOfParametersType | GetNumberOfNonZeroJacobianIndices () const override |
NumberOfParametersType | GetNumberOfParameters () const override |
virtual NumberOfParametersType | GetNumberOfParametersPerDimension () const |
const ParametersType & | GetParameters () const override |
void | GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override |
void | GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override |
virtual const RegionType & | GetValidRegion () |
virtual bool | HasNonZeroJacobianOfSpatialHessian () const |
virtual bool | HasNonZeroJacobianOfSpatialJacobian () const |
bool | IsLinear () const override |
ITK_DISALLOW_COPY_AND_MOVE (MultiBSplineDeformableTransformWithNormal) | |
itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions) | |
itkStaticConstMacro (SplineOrder, unsigned int, VSplineOrder) | |
void | SetFixedParameters (const ParametersType ¶meters) override |
virtual void | SetGridDirection (const DirectionType &spacing) |
virtual void | SetGridOrigin (const OriginType &origin) |
virtual void | SetGridRegion (const RegionType ®ion) |
virtual void | SetGridSpacing (const SpacingType &spacing) |
void | SetIdentity () |
void | SetLabels (ImageLabelType *labels) |
void | SetParameters (const ParametersType ¶meters) override |
void | SetParametersByValue (const ParametersType ¶meters) override |
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 |
void | UpdateLocalBases () |
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 |
ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform) | |
itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions) | |
itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions) | |
Static Public Member Functions | |
static Pointer | New () |
Protected Types | |
using | TransformType = AdvancedBSplineDeformableTransform<TScalarType, Self::SpaceDimension, VSplineOrder> |
Protected Member Functions | |
MultiBSplineDeformableTransformWithNormal () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~MultiBSplineDeformableTransformWithNormal () override=default | |
Protected Member Functions inherited from itk::AdvancedTransform< double, 3, 3 > | |
AdvancedTransform ()=default | |
~AdvancedTransform () override=default | |
Protected Attributes | |
const ParametersType * | m_InputParametersPointer {} |
ParametersType | m_InternalParametersBuffer {} |
ImageLabelPointer | m_Labels {} |
ImageLabelInterpolatorPointer | m_LabelsInterpolator {} |
ImageVectorPointer | m_LabelsNormals {} |
int | m_LastJacobian {} |
ImageBasePointer | m_LocalBases {} |
unsigned char | m_NbLabels {} |
std::vector< ParametersType > | m_Para {} |
std::vector< typename TransformType::Pointer > | m_Trans {} |
Protected Attributes inherited from itk::AdvancedTransform< double, 3, 3 > | |
bool | m_HasNonZeroJacobianOfSpatialHessian |
bool | m_HasNonZeroSpatialHessian |
Private Member Functions | |
void | DispatchParameters (const ParametersType ¶meters) |
void | PointToLabel (const InputPointType &p, int &l) const |
Static Private Attributes | |
static constexpr unsigned | NumberOfWeights = TransformType::NumberOfWeights |
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::BaseType = Vector<VectorType, Self::SpaceDimension> |
Definition at line 239 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ConstPointer = SmartPointer<const Self> |
Definition at line 52 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ContinuousIndexType = ContinuousIndex<ScalarType, SpaceDimension> |
This typedef should be equal to the typedef used in derived classes based on the weightsfunction.
Definition at line 367 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::DirectionType = typename ImageType::DirectionType |
Definition at line 198 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GridOffsetType = IndexType |
Definition at line 200 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageBasePointer = typename ImageBaseType::Pointer |
Definition at line 243 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageBaseType = Image<BaseType, Self::SpaceDimension> |
Definition at line 242 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelInterpolator = itk::NearestNeighborInterpolateImageFunction<ImageLabelType, TScalarType> |
Definition at line 234 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelInterpolatorPointer = typename ImageLabelInterpolator::Pointer |
Definition at line 235 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelPointer = typename ImageLabelType::Pointer |
Definition at line 232 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelType = Image<unsigned char, Self::SpaceDimension> |
Typedef of the label image.
Definition at line 231 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImagePointer = typename ImageType::Pointer |
Definition at line 171 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageType = Image<PixelType, Self::SpaceDimension> |
Definition at line 170 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageVectorPointer = typename ImageVectorType::Pointer |
Definition at line 241 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageVectorType = Image<VectorType, Self::SpaceDimension> |
Definition at line 240 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::IndexType = typename RegionType::IndexType |
Definition at line 195 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::OriginType = typename ImageType::PointType |
Definition at line 199 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ParameterIndexArrayType = Array<unsigned long> |
Parameter index array type.
Definition at line 260 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::Pointer = SmartPointer<Self> |
Definition at line 51 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::RegionType = ImageRegion<Self::SpaceDimension> |
Get the array of coefficient images. 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 SetCoefficientImages() API. Mixing the two modes may results in unexpected results. Typedefs for specifying the extend to the grid.
Definition at line 193 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::Self = MultiBSplineDeformableTransformWithNormal |
Standard class typedefs.
Definition at line 49 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SizeType = typename RegionType::SizeType |
Definition at line 196 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SpacingType = typename ImageBase<NDimensions>::SpacingType |
Definition at line 197 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions> |
Definition at line 50 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 493 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::VectorType = Vector<TScalarType, Self::SpaceDimension> |
Typedef of the Normal Grid.
Definition at line 238 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionType = BSplineInterpolationWeightFunction2<ScalarType, Self::SpaceDimension, VSplineOrder> |
Interpolation weights function type.
Definition at line 88 of file itkMultiBSplineDeformableTransformWithNormal.h.
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::WeightsType = typename WeightsFunctionType::WeightsType |
Definition at line 89 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
|
overrideprotecteddefault |
|
private |
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::AdvancedTransform< double, 3, 3 >.
|
override |
Get the Transformation Fixed Parameters.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
inlineoverridevirtual |
Reimplemented from itk::AdvancedTransform< double, 3, 3 >.
Definition at line 353 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
inlinevirtual |
Whether the advanced transform has nonzero matrices.
Definition at line 339 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
overridevirtual |
Compute the Jacobian matrix of the transformation at one point. Compute the Jacobian of the transformation.
Implements itk::AdvancedTransform< double, 3, 3 >.
|
inlineoverridevirtual |
Implements itk::AdvancedTransform< double, 3, 3 >.
Definition at line 400 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
overridevirtual |
Implements itk::AdvancedTransform< double, 3, 3 >.
|
overridevirtual |
Implements itk::AdvancedTransform< double, 3, 3 >.
|
overridevirtual |
Implements itk::AdvancedTransform< double, 3, 3 >.
|
virtual |
|
virtual |
|
virtual |
|
inlinevirtual |
Definition at line 324 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
inlineoverridevirtual |
Reimplemented from itk::AdvancedTransform< double, 3, 3 >.
Definition at line 331 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
override |
Return the number of parameters that completely define the Transform.
|
virtual |
Return the number of parameters per dimension
|
override |
Get the Transformation Parameters.
|
overridevirtual |
Compute the spatial Hessian of the transformation.
Implements itk::AdvancedTransform< double, 3, 3 >.
|
overridevirtual |
Compute the spatial Jacobian of the transformation.
Implements itk::AdvancedTransform< double, 3, 3 >.
|
inlinevirtual |
Return the region of the grid wholly within the support region
Definition at line 305 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
inlinevirtual |
Definition at line 360 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
inlinevirtual |
Definition at line 346 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
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 317 of file itkMultiBSplineDeformableTransformWithNormal.h.
itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ITK_DISALLOW_COPY_AND_MOVE | ( | MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder > | ) |
itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
NDimensions | ) |
Dimension of the domain space.
itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::itkStaticConstMacro | ( | SplineOrder | , |
unsigned int | , | ||
VSplineOrder | ) |
The BSpline order.
|
static |
New macro for creation of through the object factory.
|
private |
|
overrideprotected |
Print contents of an MultiBSplineDeformableTransformWithNormal.
|
override |
This method sets the fixed parameters of the transform. For a BSpline 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.
|
virtual |
This method specifies the region over which the grid resides.
|
virtual |
This method specifies the grid spacing or resolution.
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::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().
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetLabels | ( | ImageLabelType * | labels | ) |
This method specifies the label image.
|
override |
This method sets the parameters of the transform. For a BSpline deformation transform, the parameters are the BSpline coefficients on a sparse grid.
The parameters are N number of N-D grid of coefficients. Each N-D grid is represented as a flat array of doubles (in the same configuration as an itk::Image). The N arrays are then concatenated to form one parameter array.
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 BSpline deformation transform, the parameters are the BSpline coefficients on a sparse grid.
The parameters are N number of N-D grid of coefficients. Each N-D grid is represented as a flat array of doubles (in the same configuration as an itk::Image). The N arrays are then concatenated to form one parameter array.
This methods makes a copy of the parameters while for efficiency the SetParameters method does not.
This method wraps each grid as itk::Image's using the user specified 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 288 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
override |
Transform points by a BSpline deformable transformation.
|
inlineoverride |
Method to transform a vector - not applicable for this type of transform.
Definition at line 266 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
inlineoverride |
Method to transform a vnl_vector - not applicable for this type of transform.
Definition at line 277 of file itkMultiBSplineDeformableTransformWithNormal.h.
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::UpdateLocalBases | ( | ) |
Update Local Bases : call to it should become automatic and the function should become private
|
protected |
Wrap flat array into images of coefficients. Convert an input point to a continuous index inside the BSpline grid. Check if a continuous index is inside the valid region. The bulk transform. Array of images representing the B-spline coefficients in each dimension. Variables defining the coefficient grid extend. Variables defining the interpolation support region. Odd or even order BSpline. Keep a pointer to the input parameters.
Definition at line 471 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Jacobian as SpaceDimension number of images. Keep track of last support region used in computing the Jacobian for fast resetting of Jacobian to zero. Array holding images wrapped from the flat parameters. Internal parameters buffer.
Definition at line 491 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 496 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 497 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 498 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
mutableprotected |
Definition at line 501 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 502 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 495 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 500 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
protected |
Definition at line 499 of file itkMultiBSplineDeformableTransformWithNormal.h.
|
staticconstexprprivate |
The number of weights.
Definition at line 510 of file itkMultiBSplineDeformableTransformWithNormal.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |