#include <ScalingAndSquaring.h>
Public Types | |
typedef GenericNearestNeighborExtrapolateImageFunction< ImageType > | Extrapolator |
Type of image extrapolation function. | |
typedef GenericImage< TReal > | ImageType |
Image type of input, output, and intermediate images. | |
typedef GenericLinearInterpolateImageFunction< ImageType > | VectorField |
Type of vector field interpolator. | |
typedef GenericFastCubicBSplineInterpolateImageFunction< ImageType > | VelocityField |
Type of input velocity field interpolator. | |
Public Member Functions | |
virtual void | Run () |
Compute output deformation/displacement field and its derivatives. | |
ScalingAndSquaring () | |
Constructor. | |
virtual | ~ScalingAndSquaring () |
Destructor. | |
Public Member Functions inherited from mirtk::Object | |
virtual const char * | NameOfClass () const =0 |
Get name of class, which this object is an instance of. | |
virtual ParameterList | Parameter () const |
Get parameter name/value pairs. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual bool | Set (const char *name, const char *value) |
virtual | ~Object () |
Destructor. | |
Protected Member Functions | |
virtual void | Finalize () |
Finalize filter. | |
void | FinalizeDetJacobian () |
Finalize output Jacobian determinants. | |
void | FinalizeDisplacement () |
Finalize output displacement field. | |
void | FinalizeJacobian () |
Finalize output Jacobian field. | |
void | FinalizeLogJacobian () |
Finalize log-transformed output Jacobian determinants. | |
virtual void | Initialize () |
Initialize filter. | |
void | Resample (ImageType *, ImageType *, bool=false) |
Resample intermediate filter output. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Additional Inherited Members | |
Static Public Member Functions inherited from mirtk::Object | |
static const char * | NameOfType () |
Get name of this class type. | |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Computes the exponential map of a SVF and its derivatives
This class implements an image filter which computes the exponential map of a stationary velocity field using the scaling and squaring method. The result is a diffeomorphic displacement field. Additionally, this filter computes also the derivatives of the exponential map with respect to the spatial coordinate.
The exponentiation of a voxel-based image similarity gradient follows the computation outlined in Modat et al., "Parametric non-rigid registration using a stationary velocity field", MMBIA, 145–150, 2012. See also the derivation in the appendix of Ashburner, "A fast diffeomorphic image registration algorithm", NeuroImage, 38(1), 95–113, 2007.
This image filter is in particular used by the BSplineFreeFormTransformationSV class of the Transformation module.
Definition at line 52 of file ScalingAndSquaring.h.