template<typename TParametersValueType, unsigned int NDimensions>
class itk::TimeVaryingBSplineVelocityFieldTransform< TParametersValueType, 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::FixedParametersType | FixedParametersType |
|
typedef FixedParametersType::ValueType | FixedParametersValueType |
|
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< TParametersValueType, 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 Superclass::FixedParametersType | FixedParametersType |
|
typedef Superclass::FixedParametersValueType | FixedParametersValueType |
|
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< TParametersValueType, 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 Superclass::FixedParametersType | FixedParametersType |
|
typedef Superclass::FixedParametersValueType | FixedParametersValueType |
|
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< TParametersValueType, 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 Superclass::FixedParametersType | FixedParametersType |
|
typedef Superclass::FixedParametersValueType | FixedParametersValueType |
|
typedef CovariantVector< TParametersValueType, NInputDimensions > | InputCovariantVectorType |
|
typedef DiffusionTensor3D< TParametersValueType > | InputDiffusionTensor3DType |
|
typedef Matrix< double, itkGetStaticConstMacro(InputSpaceDimension), itkGetStaticConstMacro(InputSpaceDimension)> | InputDirectionMatrix |
|
typedef Point< TParametersValueType, NInputDimensions > | InputPointType |
|
typedef SymmetricSecondRankTensor< TParametersValueType, NInputDimensions > | InputSymmetricSecondRankTensorType |
|
typedef VariableLengthVector< TParametersValueType > | InputVectorPixelType |
|
typedef Vector< TParametersValueType, NInputDimensions > | InputVectorType |
|
typedef vnl_vector_fixed< TParametersValueType, NInputDimensions > | InputVnlVectorType |
|
typedef InverseTransformBaseType::Pointer | InverseTransformBasePointer |
|
typedef Transform< TParametersValueType, NOutputDimensions, NInputDimensions > | InverseTransformBaseType |
|
typedef Array2D< ParametersValueType > | JacobianType |
|
typedef Matrix< TParametersValueType, itkGetStaticConstMacro(OutputSpaceDimension), itkGetStaticConstMacro(InputSpaceDimension)> | MatrixType |
|
typedef Superclass::NumberOfParametersType | NumberOfParametersType |
|
typedef CovariantVector< TParametersValueType, NOutputDimensions > | OutputCovariantVectorType |
|
typedef DiffusionTensor3D< TParametersValueType > | OutputDiffusionTensor3DType |
|
typedef Matrix< double, itkGetStaticConstMacro(OutputSpaceDimension), itkGetStaticConstMacro(OutputSpaceDimension)> | OutputDirectionMatrix |
|
typedef Point< TParametersValueType, NOutputDimensions > | OutputPointType |
|
typedef SymmetricSecondRankTensor< TParametersValueType, NOutputDimensions > | OutputSymmetricSecondRankTensorType |
|
typedef VariableLengthVector< TParametersValueType > | OutputVectorPixelType |
|
typedef Vector< TParametersValueType, NOutputDimensions > | OutputVectorType |
|
typedef vnl_vector_fixed< TParametersValueType, NOutputDimensions > | OutputVnlVectorType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef Superclass::ParametersValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ParametersValueType | ScalarType |
|
typedef Transform | Self |
|
typedef TransformBaseTemplate< TParametersValueType > | Superclass |
|
typedef Superclass::TransformCategoryType | TransformCategoryType |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef OptimizerParameters< FixedParametersValueType > | FixedParametersType |
|
typedef double | FixedParametersValueType |
|
typedef IdentifierType | NumberOfParametersType |
|
typedef OptimizerParameters< ParametersValueType > | ParametersType |
|
typedef TParametersValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef TransformBaseTemplate | 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 ::itk::LightObject::Pointer | CreateAnother () const |
|
virtual const char * | GetNameOfClass () const |
|
VelocityFieldType * | GetTimeVaryingVelocityFieldControlPointLattice () |
|
virtual void | IntegrateVelocityField () override |
|
virtual void | SetTimeVaryingVelocityFieldControlPointLattice (VelocityFieldType *fieldLattice) |
|
virtual void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override |
|
|
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 () const |
|
bool | GetInverse (Self *inverse) const |
|
virtual InverseTransformBasePointer | GetInverseTransform () const override |
|
virtual ScalarType | GetLowerTimeBound () const |
|
virtual unsigned int | GetNumberOfIntegrationSteps () const |
|
virtual ScalarType | GetUpperTimeBound () const |
|
virtual const unsigned long & | GetVelocityFieldSetTime () const |
|
virtual void | SetFixedParameters (const FixedParametersType &) override |
|
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 | SetDisplacementField (DisplacementFieldType *displacementField) override |
|
virtual void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &j) const override |
|
virtual void | ComputeJacobianWithRespectToParameters (const IndexType &, JacobianType &j) const |
|
virtual void | ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianType &j) const override |
|
virtual void | ComputeJacobianWithRespectToPosition (const IndexType &x, JacobianType &j) const |
|
virtual const ModifiedTimeType & | GetDisplacementFieldSetTime () const |
|
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 override |
|
virtual TransformCategoryType | GetTransformCategory () const override |
|
virtual void | SetIdentity () |
|
virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &) const override |
|
OutputVectorPixelType | TransformDiffusionTensor (const InputVectorPixelType &) const |
|
virtual OutputPointType | TransformPoint (const InputPointType &thisPoint) const override |
|
virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &) const override |
|
virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const override |
|
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 override |
|
OutputDiffusionTensor3DType | TransformDiffusionTensor (const InputDiffusionTensor3DType &) const |
|
virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override |
|
virtual void | SetParameters (const ParametersType ¶ms) override |
|
virtual void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &j) const override |
|
virtual void | SetCoordinateTolerance (double _arg) |
|
virtual double | GetCoordinateTolerance () const |
|
virtual void | SetDirectionTolerance (double _arg) |
|
virtual double | GetDirectionTolerance () const |
|
virtual void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const |
|
virtual void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const =0 |
|
virtual void | ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const |
|
virtual void | ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const |
|
virtual void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override |
|
virtual void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override |
|
virtual const FixedParametersType & | GetFixedParameters (void) const override |
|
unsigned int | GetInputSpaceDimension (void) const override |
|
bool | GetInverse (Self *) const |
|
virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
|
virtual NumberOfParametersType | GetNumberOfParameters (void) const override |
|
unsigned int | GetOutputSpaceDimension (void) const override |
|
virtual const ParametersType & | GetParameters (void) const override |
|
virtual std::string | GetTransformTypeAsString () const override |
|
virtual bool | IsLinear () const |
|
| itkCloneMacro (Self) |
|
virtual void | SetParametersByValue (const ParametersType &p) override |
|
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, ParametersValueType factor=1.0) |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) const |
|
virtual void | DebugOff () const |
|
virtual void | DebugOn () const |
|
Command * | GetCommand (unsigned long tag) |
|
bool | GetDebug () const |
|
MetaDataDictionary & | GetMetaDataDictionary () |
|
const MetaDataDictionary & | GetMetaDataDictionary () const |
|
virtual ModifiedTimeType | GetMTime () const |
|
virtual const TimeStamp & | GetTimeStamp () const |
|
bool | HasObserver (const EventObject &event) const |
|
void | InvokeEvent (const EventObject &) |
|
void | InvokeEvent (const EventObject &) const |
|
virtual void | Modified () const |
|
virtual void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
virtual void | SetReferenceCount (int) override |
|
virtual void | UnRegister () const noexcept override |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
| itkCloneMacro (Self) |
|
void | Print (std::ostream &os, Indent indent=0) const |
|