template<class TScalar, unsigned int NDimensions>
class itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >
Integrate a time-varying velocity field represented by a B-spline control point lattice.
Diffeomorphisms are topology-preserving mappings that are useful for describing biologically plausible deformations. Mathematically, a diffeomorphism,
, is generated from a time-varying velocity field, v, as described by the integral equation:
In typical registration applications it is computationally more efficient to sample the B-spline transform to its corresponding displacement field. Therefore, the user needs to specify the domain parameters of that displacement field using the following functions:
SetDisplacementFieldSpacing()
SetDisplacementFieldOrigin()
SetDisplacementFieldSize()
SetDisplacementFieldDirection()
It's important that these parameters match up with the fixed parameters of this transform which are defined as the parameters of the (N+1)-D B-spline grid representing the continuous velocity field. This control point lattice is set using SetTimeVaryingVelocityFieldControlPointLattice() or it can be created by setting the fixed parameters.
Note: For readability of the code, it is important to note that we store the control point lattice in the m_VelocityField variable since they are of the same type. It's only when we call IntegrateVelocityField() that a sampled velocity field is created from the control point lattice.
- Author
- Nick Tustison
-
Brian Avants
Definition at line 68 of file itkTimeVaryingBSplineVelocityFieldTransform.h.
|
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef Superclass::DerivativeType | DerivativeType |
| |
typedef
DisplacementFieldType::DirectionType | DisplacementFieldDirectionType |
| |
typedef
DisplacementFieldType::PointType | DisplacementFieldPointType |
| |
typedef
DisplacementFieldType::SizeType | DisplacementFieldSizeType |
| |
typedef
DisplacementFieldType::SpacingType | DisplacementFieldSpacingType |
| |
typedef
Superclass::DisplacementFieldType | DisplacementFieldType |
| |
typedef
DisplacementFieldType::PixelType | DisplacementVectorType |
| |
typedef
Superclass::InterpolatorType | InterpolatorType |
| |
typedef
Superclass::InverseTransformBasePointer | InverseTransformBasePointer |
| |
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
| |
| typedef Superclass::ParametersType | ParametersType |
| |
| typedef ParametersType::ValueType | ParametersValueType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef Superclass::ScalarType | ScalarType |
| |
typedef
TimeVaryingBSplineVelocityFieldTransform | Self |
| |
typedef VelocityFieldTransform
< TScalar, NDimensions > | Superclass |
| |
| typedef VelocityFieldType::Pointer | TimeVaryingVelocityFieldControlPointLatticePointer |
| |
| typedef VelocityFieldType | TimeVaryingVelocityFieldControlPointLatticeType |
| |
typedef
VelocityFieldType::DirectionType | VelocityFieldDirectionType |
| |
typedef
Superclass::VelocityFieldInterpolatorType | VelocityFieldIntegratorType |
| |
typedef
VelocityFieldType::PointType | VelocityFieldPointType |
| |
| typedef VelocityFieldType::SizeType | VelocityFieldSizeType |
| |
typedef
VelocityFieldType::SpacingType | VelocityFieldSpacingType |
| |
typedef
Superclass::VelocityFieldType | VelocityFieldType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef Superclass::DerivativeType | DerivativeType |
| |
typedef
VelocityFieldType::DirectionType | DirectionType |
| |
typedef
DisplacementFieldType::Pointer | DisplacementFieldPointer |
| |
typedef
Superclass::DisplacementFieldType | DisplacementFieldType |
| |
typedef
VelocityFieldType::IndexType | IndexType |
| |
| typedef Superclass::InputPointType | InputPointType |
| |
typedef
Superclass::InputVectorPixelType | InputVectorPixelType |
| |
| typedef Superclass::InputVectorType | InputVectorType |
| |
typedef
Superclass::InverseTransformBasePointer | InverseTransformBasePointer |
| |
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
| |
typedef
ImageVectorOptimizerParametersHelper
< ScalarType, Dimension,
VelocityFieldDimension > | OptimizerParametersHelperType |
| |
| typedef Superclass::OutputPointType | OutputPointType |
| |
typedef
Superclass::OutputVectorPixelType | OutputVectorPixelType |
| |
typedef
Superclass::OutputVectorType | OutputVectorType |
| |
| typedef Superclass::ParametersType | ParametersType |
| |
typedef
Superclass::ParametersValueType | ParametersValueType |
| |
typedef
VelocityFieldType::PixelType | PixelType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
typedef
VelocityFieldType::PointType | PointType |
| |
typedef
VelocityFieldType::RegionType | RegionType |
| |
| typedef Superclass::ScalarType | ScalarType |
| |
| typedef VelocityFieldTransform | Self |
| |
| typedef VelocityFieldType::SizeType | SizeType |
| |
typedef
VelocityFieldType::SpacingType | SpacingType |
| |
typedef
DisplacementFieldTransform
< TScalar, NDimensions > | Superclass |
| |
typedef
Superclass::TransformCategoryType | TransformCategoryType |
| |
typedef
VelocityFieldInterpolatorType::Pointer | VelocityFieldInterpolatorPointer |
| |
typedef
VectorInterpolateImageFunction
< VelocityFieldType,
ScalarType > | VelocityFieldInterpolatorType |
| |
| typedef VelocityFieldType::Pointer | VelocityFieldPointer |
| |
typedef Image
< OutputVectorType,
VelocityFieldDimension > | VelocityFieldType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef Superclass::DerivativeType | DerivativeType |
| |
typedef
DisplacementFieldType::DirectionType | DirectionType |
| |
typedef
DisplacementFieldType::ConstPointer | DisplacementFieldConstPointer |
| |
typedef
DisplacementFieldType::Pointer | DisplacementFieldPointer |
| |
typedef Image
< OutputVectorType, Dimension > | DisplacementFieldType |
| |
typedef
DisplacementFieldType::IndexType | IndexType |
| |
typedef
Superclass::InputCovariantVectorType | InputCovariantVectorType |
| |
typedef
Superclass::InputDiffusionTensor3DType | InputDiffusionTensor3DType |
| |
| typedef Superclass::InputPointType | InputPointType |
| |
typedef CovariantVector
< ScalarType,
InputDiffusionTensor3DType::Dimension > | InputTensorEigenVectorType |
| |
typedef
Superclass::InputVectorPixelType | InputVectorPixelType |
| |
| typedef Superclass::InputVectorType | InputVectorType |
| |
typedef
Superclass::InputVnlVectorType | InputVnlVectorType |
| |
typedef
VectorInterpolateImageFunction
< DisplacementFieldType,
ScalarType > | InterpolatorType |
| |
typedef
Superclass::InverseTransformBasePointer | InverseTransformBasePointer |
| |
| typedef Superclass::JacobianType | JacobianType |
| |
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
| |
typedef
ImageVectorOptimizerParametersHelper
< ScalarType,
OutputVectorType::Dimension,
Dimension > | OptimizerParametersHelperType |
| |
typedef
Superclass::OutputCovariantVectorType | OutputCovariantVectorType |
| |
typedef
Superclass::OutputDiffusionTensor3DType | OutputDiffusionTensor3DType |
| |
| typedef Superclass::OutputPointType | OutputPointType |
| |
typedef CovariantVector
< ScalarType,
OutputDiffusionTensor3DType::Dimension > | OutputTensorEigenVectorType |
| |
typedef
Superclass::OutputVectorPixelType | OutputVectorPixelType |
| |
typedef
Superclass::OutputVectorType | OutputVectorType |
| |
typedef
Superclass::OutputVnlVectorType | OutputVnlVectorType |
| |
| typedef Superclass::ParametersType | ParametersType |
| |
typedef
Superclass::ParametersValueType | ParametersValueType |
| |
typedef
DisplacementFieldType::PixelType | PixelType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
typedef
DisplacementFieldType::PointType | PointType |
| |
typedef
DisplacementFieldType::RegionType | RegionType |
| |
| typedef Superclass::ScalarType | ScalarType |
| |
| typedef DisplacementFieldTransform | Self |
| |
typedef
DisplacementFieldType::SizeType | SizeType |
| |
typedef
DisplacementFieldType::SpacingType | SpacingType |
| |
typedef Transform< TScalar,
NDimensions, NDimensions > | Superclass |
| |
typedef
Superclass::TransformCategoryType | TransformCategoryType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef Array
< ParametersValueType > | DerivativeType |
| |
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> | DirectionChangeMatrix |
| |
typedef CovariantVector
< TScalar, NInputDimensions > | InputCovariantVectorType |
| |
typedef DiffusionTensor3D
< TScalar > | InputDiffusionTensor3DType |
| |
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> | InputDirectionMatrix |
| |
typedef Point< TScalar,
NInputDimensions > | InputPointType |
| |
typedef
SymmetricSecondRankTensor
< TScalar, NInputDimensions > | InputSymmetricSecondRankTensorType |
| |
typedef VariableLengthVector
< TScalar > | InputVectorPixelType |
| |
typedef Vector< TScalar,
NInputDimensions > | InputVectorType |
| |
typedef vnl_vector_fixed
< TScalar, NInputDimensions > | InputVnlVectorType |
| |
typedef
InverseTransformBaseType::Pointer | InverseTransformBasePointer |
| |
typedef Transform< TScalar,
NOutputDimensions,
NInputDimensions > | InverseTransformBaseType |
| |
typedef Array2D
< ParametersValueType > | JacobianType |
| |
typedef Matrix< TScalar,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> | MatrixType |
| |
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
| |
typedef CovariantVector
< TScalar, NOutputDimensions > | OutputCovariantVectorType |
| |
typedef DiffusionTensor3D
< TScalar > | OutputDiffusionTensor3DType |
| |
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> | OutputDirectionMatrix |
| |
typedef Point< TScalar,
NOutputDimensions > | OutputPointType |
| |
typedef
SymmetricSecondRankTensor
< TScalar, NOutputDimensions > | OutputSymmetricSecondRankTensorType |
| |
typedef VariableLengthVector
< TScalar > | OutputVectorPixelType |
| |
typedef Vector< TScalar,
NOutputDimensions > | OutputVectorType |
| |
typedef vnl_vector_fixed
< TScalar, NOutputDimensions > | OutputVnlVectorType |
| |
| typedef Superclass::ParametersType | ParametersType |
| |
typedef
Superclass::ParametersValueType | ParametersValueType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef TScalar | ScalarType |
| |
| typedef Transform | Self |
| |
| typedef TransformBase | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef IdentifierType | NumberOfParametersType |
| |
typedef OptimizerParameters
< ParametersValueType > | ParametersType |
| |
| typedef double | ParametersValueType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef TransformBase | Self |
| |
| typedef Object | Superclass |
| |
| enum | TransformCategoryType {
UnknownTransformCategory =0,
Linear =1,
BSpline =2,
Spline =3,
DisplacementField =4,
VelocityField =5
} |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef Object | Self |
| |
| typedef LightObject | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef LightObject | Self |
| |
|
| virtual const char * | GetNameOfClass () const |
| |
| VelocityFieldType::Pointer | GetTimeVaryingVelocityFieldControlPointLattice () |
| |
| virtual void | IntegrateVelocityField () |
| |
| virtual void | SetTimeVaryingVelocityFieldControlPointLattice (VelocityFieldType *fieldLattice) |
| |
| virtual void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) |
| |
|
| virtual void | SetVelocityFieldOrigin (VelocityFieldPointType _arg) |
| |
| virtual VelocityFieldPointType | GetVelocityFieldOrigin () const |
| |
|
| virtual void | SetVelocityFieldSpacing (VelocityFieldSpacingType _arg) |
| |
| virtual VelocityFieldSpacingType | GetVelocityFieldSpacing () const |
| |
|
| virtual void | SetVelocityFieldSize (VelocityFieldSizeType _arg) |
| |
| virtual VelocityFieldSizeType | GetVelocityFieldSize () const |
| |
|
| virtual void | SetVelocityFieldDirection (VelocityFieldDirectionType _arg) |
| |
| virtual VelocityFieldDirectionType | GetVelocityFieldDirection () const |
| |
|
| virtual void | SetSplineOrder (unsigned int _arg) |
| |
| virtual unsigned int | GetSplineOrder () const |
| |
| virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
| |
| bool | GetInverse (Self *inverse) const |
| |
| virtual InverseTransformBasePointer | GetInverseTransform () const |
| |
| virtual ScalarType | GetLowerTimeBound () const |
| |
| virtual unsigned int | GetNumberOfIntegrationSteps () const |
| |
| virtual ScalarType | GetUpperTimeBound () const |
| |
| virtual const unsigned long & | GetVelocityFieldSetTime () |
| |
| virtual void | SetDisplacementField (DisplacementFieldType *_arg) |
| |
| virtual void | SetFixedParameters (const ParametersType &) |
| |
| virtual void | SetLowerTimeBound (ScalarType _arg) |
| |
| virtual void | SetNumberOfIntegrationSteps (unsigned int _arg) |
| |
| virtual void | SetUpperTimeBound (ScalarType _arg) |
| |
| virtual void | SetVelocityField (VelocityFieldType *) |
| |
| virtual VelocityFieldType * | GetModifiableVelocityField () |
| |
| virtual const VelocityFieldType * | GetVelocityField () const |
| |
| virtual void | SetVelocityFieldInterpolator (VelocityFieldInterpolatorType *) |
| |
virtual
VelocityFieldInterpolatorType * | GetModifiableVelocityFieldInterpolator () |
| |
virtual const
VelocityFieldInterpolatorType * | GetVelocityFieldInterpolator () const |
| |
| virtual void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &j) const |
| |
| virtual void | ComputeJacobianWithRespectToParameters (const IndexType &, JacobianType &j) const |
| |
| virtual void | ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianType &j) const |
| |
| virtual void | ComputeJacobianWithRespectToPosition (const IndexType &x, JacobianType &j) const |
| |
| virtual const ModifiedTimeType & | GetDisplacementFieldSetTime () |
| |
| bool | GetInverse (Self *inverse) const |
| |
| virtual void | GetInverseJacobianOfForwardFieldWithRespectToPosition (const InputPointType &point, JacobianType &jacobian, bool useSVD=false) const |
| |
| virtual void | GetInverseJacobianOfForwardFieldWithRespectToPosition (const IndexType &index, JacobianType &jacobian, bool useSVD=false) const |
| |
| virtual NumberOfParametersType | GetNumberOfLocalParameters (void) const |
| |
| virtual TransformCategoryType | GetTransformCategory () const |
| |
| virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &) const |
| |
| OutputVectorPixelType | TransformDiffusionTensor (const InputVectorPixelType &) const |
| |
| virtual OutputPointType | TransformPoint (const InputPointType &thisPoint) const |
| |
| virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &) const |
| |
| virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const |
| |
| virtual void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) |
| |
| virtual DisplacementFieldType * | GetModifiableDisplacementField () |
| |
virtual const
DisplacementFieldType * | GetDisplacementField () const |
| |
| virtual void | SetInverseDisplacementField (DisplacementFieldType *inverseDisplacementField) |
| |
| virtual DisplacementFieldType * | GetModifiableInverseDisplacementField () |
| |
virtual const
DisplacementFieldType * | GetInverseDisplacementField () const |
| |
| virtual void | SetInterpolator (InterpolatorType *interpolator) |
| |
| virtual InterpolatorType * | GetModifiableInterpolator () |
| |
| virtual const InterpolatorType * | GetInterpolator () const |
| |
| virtual void | SetInverseInterpolator (InterpolatorType *interpolator) |
| |
| virtual InterpolatorType * | GetModifiableInverseInterpolator () |
| |
| virtual const InterpolatorType * | GetInverseInterpolator () const |
| |
| virtual OutputVectorType | TransformVector (const InputVectorType &) const |
| |
| OutputDiffusionTensor3DType | TransformDiffusionTensor (const InputDiffusionTensor3DType &) const |
| |
| virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const |
| |
| virtual void | SetParameters (const ParametersType ¶ms) |
| |
| virtual void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &j) const |
| |
| virtual void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const |
| |
| virtual void | ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const |
| |
| virtual const ParametersType & | GetFixedParameters (void) const |
| |
| unsigned int | GetInputSpaceDimension (void) const |
| |
| bool | GetInverse (Self *) const |
| |
| virtual NumberOfParametersType | GetNumberOfParameters (void) const |
| |
| unsigned int | GetOutputSpaceDimension (void) const |
| |
| virtual const ParametersType & | GetParameters (void) const |
| |
| virtual std::string | GetTransformTypeAsString () const |
| |
| virtual bool | IsLinear () const |
| |
| | itkCloneMacro (Self) |
| |
| virtual void | SetParametersByValue (const ParametersType &p) |
| |
| virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const |
| |
| virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &) const |
| |
| virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const |
| |
| virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const |
| |
| virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &) const |
| |
| virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const |
| |
| virtual OutputPointType | TransformPoint (const InputPointType &) const =0 |
| |
virtual
OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const |
| |
virtual
OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const |
| |
| virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const |
| |
| virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, const InputPointType &point) const |
| |
| virtual OutputVectorType | TransformVector (const InputVectorType &) const |
| |
| virtual OutputVectorType | TransformVector (const InputVectorType &vector, const InputPointType &point) const |
| |
| virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const |
| |
| virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &) const |
| |
| virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const |
| |
| virtual void | UpdateTransformParameters (const DerivativeType &update, TScalarfactor=1.0) |
| |
| virtual void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const |
| |