template<typename TParametersValueType, unsigned int NDimensions>
class itk::GaussianExponentialDiffeomorphicTransform< TParametersValueType, NDimensions >
Exponential transform using a Gaussian 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, and smooths it using Gaussian smoothing, defined by GaussianSmoothingVarianceForTheUpdateField
We add that the current estimate of the velocity field and then perform a second smoothing step such that the new velocity field is
We then exponentiate using the class ExponentialDisplacementImageFilter
to yield both the forward and inverse displacement fields.
- J. Ashburner. A Fast Diffeomorphic Image Registration Algorithm. NeuroImage, 38(1):95-113, 2007.
- Author
- Nick Tustison
-
Brian Avants
Definition at line 56 of file itkGaussianExponentialDiffeomorphicTransform.h.
|
using | ConstantVelocityFieldPointer = typename Superclass::ConstantVelocityFieldPointer |
|
using | ConstantVelocityFieldType = typename Superclass::ConstantVelocityFieldType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = typename Superclass::DerivativeType |
|
using | DerivativeValueType = typename DerivativeType::ValueType |
|
using | DisplacementFieldPointer = typename Superclass::DisplacementFieldPointer |
|
using | DisplacementFieldType = typename Superclass::DisplacementFieldType |
|
using | DisplacementVectorType = typename DisplacementFieldType::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = typename Superclass::ScalarType |
|
using | Self = GaussianExponentialDiffeomorphicTransform |
|
using | Superclass = ConstantVelocityFieldTransform< TParametersValueType, NDimensions > |
|
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 | DerivativeType = typename Superclass::DerivativeType |
|
using | DirectionType = typename ConstantVelocityFieldType::DirectionType |
|
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
|
using | DisplacementFieldType = typename Superclass::DisplacementFieldType |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
|
using | IndexType = typename ConstantVelocityFieldType::IndexType |
|
using | InputPointType = typename Superclass::InputPointType |
|
using | InputVectorPixelType = typename Superclass::InputVectorPixelType |
|
using | InputVectorType = typename Superclass::InputVectorType |
|
using | InverseTransformBasePointer = typename Superclass::InverseTransformBasePointer |
|
using | NumberOfParametersType = typename Superclass::NumberOfParametersType |
|
using | OptimizerParametersHelperType = ImageVectorOptimizerParametersHelper< ScalarType, Dimension, ConstantVelocityFieldDimension > |
|
using | OutputPointType = typename Superclass::OutputPointType |
|
using | OutputVectorPixelType = typename Superclass::OutputVectorPixelType |
|
using | OutputVectorType = typename Superclass::OutputVectorType |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | ParametersValueType = typename Superclass::ParametersValueType |
|
using | PixelType = typename ConstantVelocityFieldType::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | PointType = typename ConstantVelocityFieldType::PointType |
|
using | RegionType = typename ConstantVelocityFieldType::RegionType |
|
using | ScalarType = typename Superclass::ScalarType |
|
using | Self = ConstantVelocityFieldTransform |
|
using | SizeType = typename ConstantVelocityFieldType::SizeType |
|
using | SpacingType = typename ConstantVelocityFieldType::SpacingType |
|
using | Superclass = DisplacementFieldTransform< TParametersValueType, NDimensions > |
|
using | TransformCategoryType = typename Superclass::TransformCategoryType |
|
using | VelocityFieldType = ConstantVelocityFieldType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = typename Superclass::DerivativeType |
|
using | DirectionType = typename DisplacementFieldType::DirectionType |
|
using | DisplacementFieldConstPointer = typename DisplacementFieldType::ConstPointer |
|
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
|
using | DisplacementFieldType = Image< OutputVectorType, Dimension > |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
|
using | IndexType = typename DisplacementFieldType::IndexType |
|
using | InputCovariantVectorType = typename Superclass::InputCovariantVectorType |
|
using | InputDiffusionTensor3DType = typename Superclass::InputDiffusionTensor3DType |
|
using | InputPointType = typename Superclass::InputPointType |
|
using | InputTensorEigenVectorType = CovariantVector< ScalarType, InputDiffusionTensor3DType::Dimension > |
|
using | InputVectorPixelType = typename Superclass::InputVectorPixelType |
|
using | InputVectorType = typename Superclass::InputVectorType |
|
using | InputVnlVectorType = typename Superclass::InputVnlVectorType |
|
using | InterpolatorType = VectorInterpolateImageFunction< DisplacementFieldType, ScalarType > |
|
using | InverseJacobianPositionType = typename Superclass::InverseJacobianPositionType |
|
using | InverseTransformBasePointer = typename Superclass::InverseTransformBasePointer |
|
using | JacobianPositionType = typename Superclass::JacobianPositionType |
|
using | JacobianType = typename Superclass::JacobianType |
|
using | NumberOfParametersType = typename Superclass::NumberOfParametersType |
|
using | OptimizerParametersHelperType = ImageVectorOptimizerParametersHelper< ScalarType, OutputVectorType::Dimension, Dimension > |
|
using | OutputCovariantVectorType = typename Superclass::OutputCovariantVectorType |
|
using | OutputDiffusionTensor3DType = typename Superclass::OutputDiffusionTensor3DType |
|
using | OutputPointType = typename Superclass::OutputPointType |
|
using | OutputTensorEigenVectorType = CovariantVector< ScalarType, OutputDiffusionTensor3DType::Dimension > |
|
using | OutputVectorPixelType = typename Superclass::OutputVectorPixelType |
|
using | OutputVectorType = typename Superclass::OutputVectorType |
|
using | OutputVnlVectorType = typename Superclass::OutputVnlVectorType |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | ParametersValueType = typename Superclass::ParametersValueType |
|
using | PixelType = typename DisplacementFieldType::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | PointType = typename DisplacementFieldType::PointType |
|
using | RegionType = typename DisplacementFieldType::RegionType |
|
using | ScalarType = typename Superclass::ScalarType |
|
using | Self = DisplacementFieldTransform |
|
using | SizeType = typename DisplacementFieldType::SizeType |
|
using | SpacingType = typename DisplacementFieldType::SpacingType |
|
using | Superclass = Transform< TParametersValueType, NDimensions, NDimensions > |
|
using | TransformCategoryType = typename Superclass::TransformCategoryType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = Array< ParametersValueType > |
|
using | DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | FixedParametersType = typename Superclass::FixedParametersType |
|
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
|
using | InputCovariantVectorType = CovariantVector< TParametersValueType, NInputDimensions > |
|
using | InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
|
using | InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension > |
|
using | InputPointType = Point< TParametersValueType, NInputDimensions > |
|
using | InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, NInputDimensions > |
|
using | InputVectorPixelType = VariableLengthVector< TParametersValueType > |
|
using | InputVectorType = Vector< TParametersValueType, NInputDimensions > |
|
using | InputVnlVectorType = vnl_vector_fixed< TParametersValueType, NInputDimensions > |
|
using | InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, NInputDimensions, NOutputDimensions > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = Transform< TParametersValueType, NOutputDimensions, NInputDimensions > |
|
using | JacobianPositionType = vnl_matrix_fixed< ParametersValueType, NOutputDimensions, NInputDimensions > |
|
using | JacobianType = Array2D< ParametersValueType > |
|
using | MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | NumberOfParametersType = typename Superclass::NumberOfParametersType |
|
using | OutputCovariantVectorType = CovariantVector< TParametersValueType, NOutputDimensions > |
|
using | OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
|
using | OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension > |
|
using | OutputPointType = Point< TParametersValueType, NOutputDimensions > |
|
using | OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, NOutputDimensions > |
|
using | OutputVectorPixelType = VariableLengthVector< TParametersValueType > |
|
using | OutputVectorType = Vector< TParametersValueType, NOutputDimensions > |
|
using | OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, NOutputDimensions > |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | ParametersValueType = typename Superclass::ParametersValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = ParametersValueType |
|
using | Self = Transform |
|
using | Superclass = TransformBaseTemplate< TParametersValueType > |
|
using | TransformCategoryType = typename Superclass::TransformCategoryType |
|
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 |
|
enum | TransformCategoryType {
UnknownTransformCategory =0,
Linear =1,
BSpline =2,
Spline =3,
DisplacementField =4,
VelocityField =5
} |
|
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 ::itk::LightObject::Pointer | CreateAnother () const |
|
virtual
ConstantVelocityFieldPointer | GaussianSmoothConstantVelocityField (ConstantVelocityFieldType *, ScalarType) |
|
virtual const char * | GetNameOfClass () const |
|
void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override |
|
|
virtual void | SetGaussianSmoothingVarianceForTheConstantVelocityField (ScalarType _arg) |
|
virtual ScalarType | GetGaussianSmoothingVarianceForTheConstantVelocityField () const |
|
|
virtual void | SetGaussianSmoothingVarianceForTheUpdateField (ScalarType _arg) |
|
virtual ScalarType | GetGaussianSmoothingVarianceForTheUpdateField () const |
|
virtual void | CalculateNumberOfIntegrationStepsAutomaticallyOff () |
|
virtual void | CalculateNumberOfIntegrationStepsAutomaticallyOn () |
|
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 &x, InverseJacobianPositionType &j) const override |
|
virtual void | ComputeJacobianWithRespectToParameters (const IndexType &, JacobianType &j) const |
|
void | ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianPositionType &j) const override |
|
virtual void | ComputeJacobianWithRespectToPosition (const IndexType &x, JacobianPositionType &j) const |
|
virtual const ModifiedTimeType & | GetDisplacementFieldSetTime () const |
|
bool | GetInverse (Self *inverse) const |
|
virtual void | GetInverseJacobianOfForwardFieldWithRespectToPosition (const InputPointType &point, JacobianPositionType &jacobian, bool useSVD=false) const |
|
virtual void | GetInverseJacobianOfForwardFieldWithRespectToPosition (const IndexType &index, JacobianPositionType &jacobian, bool useSVD=false) const |
|
InverseTransformBasePointer | GetInverseTransform () const override |
|
NumberOfParametersType | GetNumberOfLocalParameters () const override |
|
TransformCategoryType | GetTransformCategory () const override |
|
void | SetFixedParameters (const FixedParametersType &) override |
|
virtual void | SetIdentity () |
|
OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &) const override |
|
OutputVectorPixelType | TransformDiffusionTensor (const InputVectorPixelType &) const |
|
OutputPointType | TransformPoint (const InputPointType &thisPoint) const override |
|
OutputVectorPixelType | TransformVector (const InputVectorPixelType &) const override |
|
OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const override |
|
void | UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override |
|
virtual void | SetDisplacementField (DisplacementFieldType *field) |
|
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 |
|
OutputVectorType | TransformVector (const InputVectorType &) const override |
|
OutputDiffusionTensor3DType | TransformDiffusionTensor (const InputDiffusionTensor3DType &) const |
|
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override |
|
void | SetParameters (const ParametersType ¶ms) override |
|
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 | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const =0 |
|
virtual void | ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const |
|
void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override |
|
void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override |
|
const FixedParametersType & | GetFixedParameters () const override |
|
unsigned int | GetInputSpaceDimension () const override |
|
bool | GetInverse (Self *) const |
|
virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
|
NumberOfParametersType | GetNumberOfParameters () const override |
|
unsigned int | GetOutputSpaceDimension () const override |
|
const ParametersType & | GetParameters () const override |
|
TransformCategoryType | GetTransformCategory () const override |
|
std::string | GetTransformTypeAsString () const override |
|
virtual bool | IsLinear () const |
|
| itkCloneMacro (Self) |
|
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) |
|
virtual void | ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &) const |
|
| itkLegacyMacro (virtual void ComputeJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
| itkLegacyMacro (virtual void ComputeInverseJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
virtual void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, InverseJacobianPositionType &jacobian) const |
|
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 |
|
void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetReferenceCount (int) override |
|
void | UnRegister () const noexceptoverride |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
|
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 |
|