template<typename TParametersValueType, unsigned int VDimension>
class itk::BSplineExponentialDiffeomorphicTransform< TParametersValueType, VDimension >
Exponential transform using B-splines as the smoothing kernel.
Exponential transform inspired by the work of J. Ashburner (see reference below). Assuming a constant velocity field, the transform takes as input the update field at time point t = 1, \(u\) and smooths it using a B-spline smoothing (i.e. fitting) operation, \(S_{update}\) defined by SplineOrder and NumberOfControlPointsForTheUpdateField. We add that the current estimate of the velocity field and then perform a second smoothing step such that the new velocity field is
\begin{eqnarray*} v_{new} = S_{velocity}( v_{old} + S_{update}( u ) ).
\end{eqnarray*}
We then exponentiate \(v_{new}\) using the class ExponentialDisplacementImageFilter to yield both the forward and inverse displacement fields.
See [4] for more details.
- Author
- Nick Tustison
-
Brian Avants
Definition at line 55 of file itkBSplineExponentialDiffeomorphicTransform.h.
|
| using | ArrayType = typename BSplineFilterType::ArrayType |
| |
| using | ArrayValueType = typename ArrayType::ValueType |
| |
| using | BSplineFilterType = DisplacementFieldToBSplineImageFilter<ConstantVelocityFieldType> |
| |
| using | ConstantVelocityFieldPointer |
| |
| using | ConstantVelocityFieldType |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | DerivativeValueType = typename DerivativeType::ValueType |
| |
| using | DisplacementFieldPointer |
| |
| using | DisplacementVectorType = typename DisplacementFieldType::PixelType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | PointSetType = PointSet<ConstantVelocityFieldType, Dimension> |
| |
| using | Self = BSplineExponentialDiffeomorphicTransform |
| |
| using | SplineOrderType = unsigned int |
| |
| using | Superclass = ConstantVelocityFieldTransform<TParametersValueType, VDimension> |
| |
| using | WeightsContainerType = typename BSplineFilterType::WeightsContainerType |
| |
| using | ConstantVelocityFieldInterpolatorPointer = typename ConstantVelocityFieldInterpolatorType::Pointer |
| |
| using | ConstantVelocityFieldInterpolatorType = VectorInterpolateImageFunction<ConstantVelocityFieldType, ScalarType> |
| |
| using | ConstantVelocityFieldPointer = typename ConstantVelocityFieldType::Pointer |
| |
| using | ConstantVelocityFieldType = Image<OutputVectorType, ConstantVelocityFieldDimension> |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | DirectionType = typename ConstantVelocityFieldType::DirectionType |
| |
| using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
| |
| using | DisplacementFieldType |
| |
| using | IndexType = typename ConstantVelocityFieldType::IndexType |
| |
| using | OptimizerParametersHelperType |
| |
| using | PixelType = typename ConstantVelocityFieldType::PixelType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | PointType = typename ConstantVelocityFieldType::PointType |
| |
| using | RegionType = typename ConstantVelocityFieldType::RegionType |
| |
| using | Self = ConstantVelocityFieldTransform |
| |
| using | SizeType = typename ConstantVelocityFieldType::SizeType |
| |
| using | SpacingType = typename ConstantVelocityFieldType::SpacingType |
| |
| using | Superclass = DisplacementFieldTransform<TParametersValueType, VDimension> |
| |
| using | VelocityFieldType = ConstantVelocityFieldType |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | DerivativeType |
| |
| using | DirectionType = typename DisplacementFieldType::DirectionType |
| |
| using | DisplacementFieldConstPointer = typename DisplacementFieldType::ConstPointer |
| |
| using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
| |
| using | DisplacementFieldType = Image<OutputVectorType, Dimension> |
| |
| typedef OptimizerParameters< FixedParametersValueType > | FixedParametersType |
| |
| typedef double | FixedParametersValueType |
| |
| using | IndexType = typename DisplacementFieldType::IndexType |
| |
| using | InputCovariantVectorType |
| |
| using | InputDiffusionTensor3DType |
| |
| using | InputPointType |
| |
| using | InputTensorEigenVectorType = CovariantVector<ScalarType, InputDiffusionTensor3DType::Dimension> |
| |
| using | InputVectorPixelType |
| |
| using | InputVectorType |
| |
| using | InputVnlVectorType |
| |
| using | InterpolatorType = VectorInterpolateImageFunction<DisplacementFieldType, ScalarType> |
| |
| using | InverseJacobianPositionType |
| |
| using | InverseTransformBasePointer |
| |
| using | JacobianPositionType |
| |
| using | JacobianType |
| |
| typedef IdentifierType | NumberOfParametersType |
| |
| using | OptimizerParametersHelperType |
| |
| using | OutputCovariantVectorType |
| |
| using | OutputDiffusionTensor3DType |
| |
| using | OutputPointType |
| |
| using | OutputTensorEigenVectorType = CovariantVector<ScalarType, OutputDiffusionTensor3DType::Dimension> |
| |
| using | OutputVectorPixelType |
| |
| using | OutputVectorType |
| |
| using | OutputVnlVectorType |
| |
| typedef OptimizerParameters< ParametersValueType > | ParametersType |
| |
| typedef TParametersValueType | ParametersValueType |
| |
| using | PixelType = typename DisplacementFieldType::PixelType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | PointType = typename DisplacementFieldType::PointType |
| |
| using | RegionType = typename DisplacementFieldType::RegionType |
| |
| using | ScalarType |
| |
| using | Self = DisplacementFieldTransform |
| |
| using | SizeType = typename DisplacementFieldType::SizeType |
| |
| using | SpacingType = typename DisplacementFieldType::SpacingType |
| |
| using | Superclass = Transform<TParametersValueType, VDimension, VDimension> |
| |
| typedef TransformBaseTemplateEnums::TransformCategory | TransformCategoryEnum |
| |
| using | VectorImageDisplacementFieldType = VectorImage<TParametersValueType, Dimension> |
| |
| using | ConstPointer |
| |
| using | ConstPointer |
| |
| using | DerivativeType |
| |
| using | DerivativeType |
| |
| using | DirectionChangeMatrix |
| |
| using | DirectionChangeMatrix |
| |
| typedef OptimizerParameters< FixedParametersValueType > | FixedParametersType |
| |
| using | FixedParametersType |
| |
| typedef double | FixedParametersValueType |
| |
| using | FixedParametersValueType |
| |
| using | InputCovariantVectorType |
| |
| using | InputCovariantVectorType |
| |
| using | InputDiffusionTensor3DType |
| |
| using | InputDiffusionTensor3DType |
| |
| using | InputDirectionMatrix |
| |
| using | InputDirectionMatrix |
| |
| using | InputPointType |
| |
| using | InputPointType |
| |
| using | InputSymmetricSecondRankTensorType |
| |
| using | InputSymmetricSecondRankTensorType |
| |
| using | InputVectorPixelType |
| |
| using | InputVectorPixelType |
| |
| using | InputVectorType |
| |
| using | InputVectorType |
| |
| using | InputVnlVectorType |
| |
| using | InputVnlVectorType |
| |
| using | InverseJacobianPositionType |
| |
| using | InverseJacobianPositionType |
| |
| using | InverseTransformBasePointer |
| |
| using | InverseTransformBasePointer |
| |
| using | InverseTransformBaseType |
| |
| using | InverseTransformBaseType |
| |
| using | JacobianPositionType |
| |
| using | JacobianPositionType |
| |
| using | JacobianType |
| |
| using | JacobianType |
| |
| using | MatrixType |
| |
| using | MatrixType |
| |
| typedef IdentifierType | NumberOfParametersType |
| |
| using | NumberOfParametersType |
| |
| using | OutputCovariantVectorType |
| |
| using | OutputCovariantVectorType |
| |
| using | OutputDiffusionTensor3DType |
| |
| using | OutputDiffusionTensor3DType |
| |
| using | OutputDirectionMatrix |
| |
| using | OutputDirectionMatrix |
| |
| using | OutputPointType |
| |
| using | OutputPointType |
| |
| using | OutputSymmetricSecondRankTensorType |
| |
| using | OutputSymmetricSecondRankTensorType |
| |
| using | OutputVectorPixelType |
| |
| using | OutputVectorPixelType |
| |
| using | OutputVectorType |
| |
| using | OutputVectorType |
| |
| using | OutputVnlVectorType |
| |
| using | OutputVnlVectorType |
| |
| typedef OptimizerParameters< ParametersValueType > | ParametersType |
| |
| using | ParametersType |
| |
| typedef TParametersValueType | ParametersValueType |
| |
| using | ParametersValueType |
| |
| using | Pointer |
| |
| using | Pointer |
| |
| using | ScalarType |
| |
| using | ScalarType |
| |
| using | Self |
| |
| using | Self |
| |
| using | Superclass |
| |
| using | Superclass |
| |
| typedef TransformBaseTemplateEnums::TransformCategory | TransformCategoryEnum |
| |
| using | TransformCategoryEnum |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | FixedParametersType = OptimizerParameters<FixedParametersValueType> |
| |
| using | FixedParametersValueType = double |
| |
| using | NumberOfParametersType = IdentifierType |
| |
| using | ParametersType = OptimizerParameters<ParametersValueType> |
| |
| using | ParametersValueType = TParametersValueType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | Self = TransformBaseTemplate |
| |
| using | Superclass = Object |
| |
| using | TransformCategoryEnum = TransformBaseTemplateEnums::TransformCategory |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | Self = Object |
| |
| using | Superclass = LightObject |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | Self = LightObject |
| |
|
| virtual ConstantVelocityFieldPointer | BSplineSmoothConstantVelocityField (const ConstantVelocityFieldType *, const ArrayType &) |
| |
| virtual::itk::LightObject::Pointer | CreateAnother () const |
| |
| virtual const char * | GetNameOfClass () const |
| |
| void | SetMeshSizeForTheConstantVelocityField (const ArrayType &) |
| |
| void | SetMeshSizeForTheUpdateField (const ArrayType &) |
| |
| void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override |
| |
|
| virtual void | SetSplineOrder (SplineOrderType _arg) |
| |
| virtual SplineOrderType | GetSplineOrder () const |
| |
|
| virtual void | SetNumberOfControlPointsForTheConstantVelocityField (ArrayType _arg) |
| |
| virtual ArrayType | GetNumberOfControlPointsForTheConstantVelocityField () const |
| |
|
| virtual void | SetNumberOfControlPointsForTheUpdateField (ArrayType _arg) |
| |
| virtual ArrayType | GetNumberOfControlPointsForTheUpdateField () const |
| |
| virtual void | CalculateNumberOfIntegrationStepsAutomaticallyOff () |
| |
| virtual void | CalculateNumberOfIntegrationStepsAutomaticallyOn () |
| |
| virtual::itk::LightObject::Pointer | CreateAnother () const |
| |
| virtual bool | GetCalculateNumberOfIntegrationStepsAutomatically () const |
| |
| virtual const ModifiedTimeType & | GetConstantVelocityFieldSetTime () const |
| |
| bool | GetInverse (Self *inverse) const |
| |
| InverseTransformBasePointer | GetInverseTransform () const override |
| |
| virtual ScalarType | GetLowerTimeBound () const |
| |
| virtual unsigned int | GetNumberOfIntegrationSteps () const |
| |
| virtual ScalarType | GetUpperTimeBound () const |
| |
| virtual void | IntegrateVelocityField () |
| |
| virtual void | SetCalculateNumberOfIntegrationStepsAutomatically (bool _arg) |
| |
| void | SetFixedParameters (const FixedParametersType &) override |
| |
| virtual void | SetLowerTimeBound (ScalarType _arg) |
| |
| virtual void | SetNumberOfIntegrationSteps (unsigned int _arg) |
| |
| virtual void | SetUpperTimeBound (ScalarType _arg) |
| |
| void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override |
| |
| virtual void | SetConstantVelocityField (ConstantVelocityFieldType *) |
| |
| virtual ConstantVelocityFieldType * | GetModifiableConstantVelocityField () |
| |
| virtual const ConstantVelocityFieldType * | GetConstantVelocityField () const |
| |
| virtual void | SetConstantVelocityFieldInterpolator (ConstantVelocityFieldInterpolatorType *) |
| |
| virtual ConstantVelocityFieldInterpolatorType * | GetModifiableConstantVelocityFieldInterpolator () |
| |
| virtual const ConstantVelocityFieldInterpolatorType * | GetConstantVelocityFieldInterpolator () const |
| |
| void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &point, InverseJacobianPositionType &jacobian) const override |
| |
| virtual void | ComputeJacobianWithRespectToParameters (const IndexType &, JacobianType &j) const |
| |
| void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &j) const override |
| |
| virtual void | ComputeJacobianWithRespectToPosition (const IndexType &index, JacobianPositionType &jacobian) const |
| |
| void | ComputeJacobianWithRespectToPosition (const InputPointType &point, JacobianPositionType &jacobian) const override |
| |
| virtual::itk::LightObject::Pointer | CreateAnother () const |
| |
| virtual const ModifiedTimeType & | GetDisplacementFieldSetTime () const |
| |
| bool | GetInverse (Self *inverse) const |
| |
| virtual void | GetInverseJacobianOfForwardFieldWithRespectToPosition (const IndexType &index, JacobianPositionType &jacobian, bool useSVD=false) const |
| |
| virtual void | GetInverseJacobianOfForwardFieldWithRespectToPosition (const InputPointType &point, JacobianPositionType &jacobian, bool useSVD=false) const |
| |
| InverseTransformBasePointer | GetInverseTransform () const override |
| |
| NumberOfParametersType | GetNumberOfLocalParameters () const override |
| |
| TransformCategoryEnum | GetTransformCategory () const override |
| |
| void | SetFixedParameters (const FixedParametersType &) override |
| |
| virtual void | SetIdentity () |
| |
| void | SetParameters (const ParametersType ¶ms) override |
| |
| OutputPointType | TransformPoint (const InputPointType &inputPoint) const override |
| |
| void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override |
| |
| virtual void | SetDisplacementField (DisplacementFieldType *field) |
| |
| virtual void | SetDisplacementField (VectorImageDisplacementFieldType *field) |
| |
| void | SetDisplacementField (std::nullptr_t)=delete |
| |
| virtual DisplacementFieldType * | GetModifiableDisplacementField () |
| |
| virtual const DisplacementFieldType * | GetDisplacementField () const |
| |
| virtual void | SetInverseDisplacementField (DisplacementFieldType *inverseField) |
| |
| 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 |
| |
| OutputVectorType | TransformVector (const InputVectorType &) const override |
| |
| OutputVectorPixelType | TransformVector (const InputVectorPixelType &) const override |
| |
| OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const override |
| |
| virtual OutputVectorType | TransformVector (const InputVectorType &vector, const InputPointType &point) const |
| |
| virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const |
| |
| OutputDiffusionTensor3DType | TransformDiffusionTensor (const InputDiffusionTensor3DType &) const |
| |
| OutputVectorPixelType | TransformDiffusionTensor (const InputVectorPixelType &) const |
| |
| virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor) const |
| |
| virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &tensor) const |
| |
| virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
| |
| OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override |
| |
| OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &) const override |
| |
| virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const |
| |
| virtual void | SetCoordinateTolerance (double _arg) |
| |
| virtual double | GetCoordinateTolerance () const |
| |
| virtual void | SetDirectionTolerance (double _arg) |
| |
| virtual double | GetDirectionTolerance () const |
| |
| virtual void | ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &cachedJacobian) const |
| |
| virtual void | ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &cachedJacobian) const |
| |
| void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override |
| |
| void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override |
| |
| void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override |
| |
| void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override |
| |
| const FixedParametersType & | GetFixedParameters () const override |
| |
| const FixedParametersType & | GetFixedParameters () const override |
| |
| unsigned int | GetInputSpaceDimension () const override |
| |
| unsigned int | GetInputSpaceDimension () const override |
| |
| bool | GetInverse (Self *inverseTransform) const |
| |
| bool | GetInverse (Self *inverseTransform) const |
| |
| virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
| |
| virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
| |
| NumberOfParametersType | GetNumberOfParameters () const override |
| |
| NumberOfParametersType | GetNumberOfParameters () const override |
| |
| unsigned int | GetOutputSpaceDimension () const override |
| |
| unsigned int | GetOutputSpaceDimension () const override |
| |
| const ParametersType & | GetParameters () const override |
| |
| const ParametersType & | GetParameters () const override |
| |
| TransformCategoryEnum | GetTransformCategory () const override |
| |
| TransformCategoryEnum | GetTransformCategory () const override |
| |
| std::string | GetTransformTypeAsString () const override |
| |
| std::string | GetTransformTypeAsString () const override |
| |
| virtual bool | IsLinear () const |
| |
| virtual bool | IsLinear () const |
| |
| | itkCloneMacro (Self) |
| |
| | itkCloneMacro (Self) |
| |
| void | SetParametersByValue (const ParametersType &p) override |
| |
| void | SetParametersByValue (const ParametersType &p) override |
| |
| virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const |
| |
| virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const |
| |
| virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor) const |
| |
| virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor) const |
| |
| virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
| |
| virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor) const |
| |
| virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor) const |
| |
| std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (TImage *image) const |
| |
| std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (SmartPointer< TImage > image) const |
| |
| std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (TImage *image) const |
| |
| std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (SmartPointer< TImage > image) const |
| |
| virtual const std::string & | GetInputSpaceName () const |
| |
| virtual const std::string & | GetOutputSpaceName () const |
| |
| virtual void | SetInputSpaceName (std::string _arg) |
| |
| virtual void | SetOutputSpaceName (std::string _arg) |
| |
| unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
| |
| unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
| |
| LightObject::Pointer | CreateAnother () const override |
| |
| 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 |
| |
| void | Register () const override |
| |
| void | RemoveAllObservers () |
| |
| void | RemoveObserver (unsigned long tag) const |
| |
| void | SetDebug (bool debugFlag) const |
| |
| void | SetReferenceCount (int) override |
| |
| void | UnRegister () const noexcept override |
| |
| void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
| |
| void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
| |
| virtual void | SetObjectName (std::string _arg) |
| |
| virtual const std::string & | GetObjectName () const |
| |
| Pointer | Clone () const |
| |
| virtual void | Delete () |
| |
| virtual int | GetReferenceCount () const |
| |
| void | Print (std::ostream &os, Indent indent=0) const |
| |