#include <LinearFreeFormTransformationTD.h>
Public Member Functions | |
virtual double | ApproximateAsNew (GenericImage< double > **, const double *, const double *, int, bool=false, int=3, int=8) |
virtual void | ApproximateDOFs (const GenericImage< double > *const *, const double *, const double *, int, bool=false, int=3, int=8) |
virtual void | ApproximateDOFs (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int) |
virtual void | ApproximateDOFsGradient (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const |
virtual bool | CanRead (TransformationType) const |
Whether this transformation can read a file of specified type (i.e. format) | |
virtual void | Interpolate (const double *, const double *, const double *) |
LinearFreeFormTransformationTD () | |
Default constructor. | |
LinearFreeFormTransformationTD (const ImageAttributes &, double, double, double, double) | |
Construct free-form transformation for given domain and lattice spacing. | |
LinearFreeFormTransformationTD (const BaseImage &, double, double, double, double) | |
Construct free-form transformation for given target image and lattice spacing. | |
LinearFreeFormTransformationTD (const BSplineFreeFormTransformationTD &) | |
Constructor. | |
LinearFreeFormTransformationTD (const LinearFreeFormTransformationTD &) | |
Copy constructor. | |
virtual bool | LocalInverse (double &, double &, double &, double, double) const |
Transforms a single point using the inverse transformation. | |
virtual void | LocalTransform (double &, double &, double &, double, double) const |
Transforms a single point. | |
virtual void | Print (ostream &, Indent=0) const |
Prints the parameters of the transformation. | |
virtual | ~LinearFreeFormTransformationTD () |
Destructor. | |
Public Member Functions inherited from mirtk::LinearFreeFormTransformation4D | |
virtual double | BendingEnergy (bool=false, bool=true) const |
Approximates the bending energy on the control point lattice. | |
virtual void | BendingEnergyGradient (double *, double=NaN, bool=false, bool=true, bool=true) const |
virtual void | BoundingBox (int, double &, double &, double=1) const |
virtual void | BoundingBox (int, double &, double &, double &, double &, double &, double &, double=1) const |
virtual void | BoundingBox (int, double &, double &, double &, double &, double &, double &, double &, double &, double=1) const |
void | Evaluate (double &, double &, double &, double) const |
Evaluates the free-form transformation at a point in lattice coordinates. | |
void | EvaluateInside (double &, double &, double &, double) const |
Evaluates the free-form transformation at a point in lattice coordinates. | |
void | EvaluateJacobian (Matrix &, double, double, double, double) const |
Calculates the Jacobian of the local transformation w.r.t world coordinates. | |
virtual void | JacobianDOFs (double [3], int, int, int, int, double, double, double, double) const |
Calculates the Jacobian of the transformation w.r.t the transformation parameters. | |
virtual int | KernelSize () const |
Size of support region of the used kernel. | |
LinearFreeFormTransformation4D () | |
Default constructor. | |
LinearFreeFormTransformation4D (double, double, double, double, double, double, double, double, double, double, double, double, double *, double *, double *) | |
Construct free-form transformation for given image domain and lattice spacing. | |
LinearFreeFormTransformation4D (const ImageAttributes &, double=-1, double=-1, double=-1, double=-1) | |
Construct free-form transformation for given image domain and lattice spacing. | |
LinearFreeFormTransformation4D (const BaseImage &, double, double, double, double) | |
Construct free-form transformation for given target image and lattice spacing. | |
LinearFreeFormTransformation4D (const BSplineFreeFormTransformation4D &) | |
Construct free-form transformation from given B-spline FFD. | |
LinearFreeFormTransformation4D (const LinearFreeFormTransformation4D &) | |
Copy Constructor. | |
virtual void | LocalJacobian (Matrix &, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the local transformation w.r.t world coordinates. | |
virtual | ~LinearFreeFormTransformation4D () |
Destructor. | |
Public Member Functions inherited from mirtk::FreeFormTransformation4D | |
void | BoundingBoxCP (int, Point &, Point &, double=1) const |
void | BoundingBoxImage (const GreyImage *, int, int &, int &, int &, int &, int &, int &, double=1) const |
void | GetStatusCP (int, int, int, int, DOFStatus &, DOFStatus &, DOFStatus &) const |
virtual void | Initialize (const ImageAttributes &) |
Initialize free-form transformation. | |
virtual void | JacobianDOFs (Matrix &, int, int, int, int, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t a control point. | |
virtual void | JacobianDOFs (Matrix &, int, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t a control point. | |
virtual void | JacobianDOFs (double [3], int, int, int, int, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t a control point. | |
virtual void | JacobianDOFs (double [3], int, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t a transformation parameter. | |
virtual void | ParametricGradient (const GenericImage< double > *, double *, const WorldCoordsImage *, const WorldCoordsImage *, double=NaN, double=1) const |
void | PutStatusCP (int, int, int, int, DOFStatus, DOFStatus, DOFStatus) |
virtual | ~FreeFormTransformation4D () |
Destructor. | |
Public Member Functions inherited from mirtk::FreeFormTransformation | |
int | ActualNumberOfDOFs () const |
virtual double | Approximate (const Transformation *, int=1, double=.0) |
virtual double | Approximate (const ImageAttributes &, double *, double *, double *, int=1, double=.0) |
virtual double | Approximate (const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0) |
virtual double | Approximate (const double *, const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0) |
virtual double | ApproximateAsNew (const Transformation *, int=1, double=.0) |
Approximate another transformation and return approximation error. | |
virtual double | ApproximateAsNew (const ImageAttributes &, double *, double *, double *, int=1, double=.0) |
virtual ImageAttributes | ApproximationDomain (const ImageAttributes &, const Transformation *) |
const ImageAttributes & | Attributes () const |
Returns attributes of control point grid. | |
virtual double | BendingEnergy (double, double, double, double=0, double=NaN, bool=true) const |
Calculates the bending of the transformation. | |
virtual double | BendingEnergy (const ImageAttributes &attr, double=NaN, bool=true) const |
Approximates the bending energy on the specified discrete domain. | |
void | BoundingBox (double &, double &) const |
Gets the temporal bounding box of the free-form deformation (in ms) | |
void | BoundingBox (double &, double &, double &, double &, double &, double &) const |
Gets the spatial bounding box of the free-form deformation (in mm) | |
void | BoundingBox (Point &, Point &) const |
Gets the spatial bounding box of the free-form deformation (in mm) | |
void | BoundingBox (double &, double &, double &, double &, double &, double &, double &, double &) const |
Gets the spatio-temporal bounding box of the free-form deformation (in mm and ms) | |
void | BoundingBox (Point &, double &, Point &, double &) const |
Gets the spatio-temporal bounding box of the free-form deformation (in mm and ms) | |
void | BoundingBox (int, Point &, Point &, double=1) const |
bool | BoundingBox (const ImageAttributes &, int, int &, int &, int &, int &, int &, int &, double=1) const |
bool | BoundingBox (const ImageAttributes &, int, int &, int &, int &, int &, int &, int &, int &, int &, double=1) const |
bool | BoundingBox (const Image *, int, int &, int &, int &, int &, int &, int &, double=1) const |
bool | BoundingBox (const Image *, int, int &, int &, int &, int &, int &, int &, int &, int &, double=1) const |
void | ControlPointLocation (int, double &, double &) const |
Gets the location of the given control point (in mm) | |
void | ControlPointLocation (int, double &, double &, double &) const |
Gets the location of the given control point (in mm) | |
Point | ControlPointLocation (int) const |
Returns the location of the given control point (in mm) | |
virtual bool | CopyFrom (const Transformation *) |
bool | CropPadPassiveCPs (int=0, bool=false) |
virtual bool | CropPadPassiveCPs (int, int, int=0, int=0, bool=false) |
bool | DOFBoundingBox (const ImageAttributes &, int, int &, int &, int &, int &, int &, int &, double=1) const |
bool | DOFBoundingBox (const Image *, int, int &, int &, int &, int &, int &, int &, double=1) const |
virtual double | DOFGradientNorm (const double *) const |
Get norm of the gradient vector. | |
int | DOFToDimension (int) const |
Get index of dimension corresponding to transformation parameter (DoFs) | |
int | DOFToIndex (int) const |
Get index of control point corresponding to transformation parameter (DoFs) | |
double | EvaluateRMSError (const Transformation *) const |
Evaluates RMS error of transformation at control points compared to another. | |
virtual void | ExtrapolationMode (enum ExtrapolationMode) |
Set extrapolation mode. | |
const CPExtrapolator * | Extrapolator () const |
virtual void | FFDJacobianDetDerivative (double dJ[3], const Matrix &adj, int cp, double x, double y, double z, double=0, double=NaN, bool wrt_world=true, bool use_spacing=true) const |
virtual void | FFDJacobianWorld (Matrix &, double, double, double, double=0, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t either control point displacements or velocities. | |
void | Get (int, Vector &) const |
Gets values of the parameters at a control point. | |
void | Get (int, double &, double &, double &) const |
Gets values of the parameters at a control point. | |
void | Get (int, int, int, double &, double &, double &) const |
Gets values of the parameters at a control point. | |
void | Get (int, int, int, int, double &, double &, double &) const |
Gets values of the parameters at a control point. | |
void | GetOrientation (double *, double *, double *) const |
Gets the orientation of the free-form deformation lattice. | |
void | GetSpacing (double &, double &, double &) const |
Gets the control point spacing (in mm) | |
void | GetSpacing (double &, double &, double &, double &) const |
Gets the control point spacing (in mm) | |
void | GetStatus (int, CPStatus &) const |
Gets status of the parameters at a control point. | |
void | GetStatus (int, int, int, DOFStatus &, DOFStatus &, DOFStatus &) const |
Gets status of the parameters at a control point. | |
void | GetStatus (int, int, int, int, DOFStatus &, DOFStatus &, DOFStatus &) const |
Gets status of the parameters at a control point. | |
int | GetT () const |
Returns the number of control points in t. | |
virtual int | GetTAfterSubdivision () const |
Returns the number of control points in t after subdivision. | |
double | GetTSpacing () const |
Returns the of control point spacing in t. | |
virtual double | GetTSpacingAfterSubdivision () const |
Returns the control point spacing in t after the subdivision. | |
int | GetX () const |
Returns the number of control points in x. | |
virtual int | GetXAfterSubdivision () const |
Returns the number of control points in x after subdivision. | |
double | GetXSpacing () const |
Returns the of control point spacing in x. | |
virtual double | GetXSpacingAfterSubdivision () const |
Returns the control point spacing in x after the subdivision. | |
int | GetY () const |
Returns the number of control points in y. | |
virtual int | GetYAfterSubdivision () const |
Returns the number of control points in y after subdivision. | |
double | GetYSpacing () const |
Returns the of control point spacing in y. | |
virtual double | GetYSpacingAfterSubdivision () const |
Returns the control point spacing in y after the subdivision. | |
int | GetZ () const |
Returns the number of control points in z. | |
virtual int | GetZAfterSubdivision () const |
Returns the number of control points in z after subdivision. | |
double | GetZSpacing () const |
Returns the of control point spacing in z. | |
virtual double | GetZSpacingAfterSubdivision () const |
Returns the control point spacing in z after the subdivision. | |
virtual void | GlobalHessian (Matrix [3], double, double, double, double=0, double=NaN) const |
Calculates the Hessian for each component of the global transformation w.r.t world coordinates. | |
virtual void | GlobalInverse (double &, double &, double &, double=0, double=NaN) const |
Transforms a single point using the inverse of the global transformation only. | |
virtual void | GlobalJacobian (Matrix &, double, double, double, double=0, double=NaN) const |
Calculates the Jacobian of the global transformation w.r.t world coordinates. | |
virtual void | GlobalTransform (double &, double &, double &, double=0, double=NaN) const |
Transforms a single point using the global transformation component only. | |
virtual void | Hessian (Matrix [3], double, double, double, double=0, double=NaN) const |
Calculates the Hessian for each component of the transformation w.r.t world coordinates. | |
void | HessianToWorld (double &, double &, double &) const |
void | HessianToWorld (double &, double &, double &, double &, double &, double &) const |
void | HessianToWorld (Matrix &) const |
void | HessianToWorld (Matrix [3]) const |
void | IndexToDOFs (int, int &, int &) const |
Get indices of transformation parameters (DoFs) | |
void | IndexToDOFs (int, int &, int &, int &) const |
Get indices of transformation parameters (DoFs) | |
void | IndexToLattice (int, int &, int &) const |
Get control point lattice coordinates from index. | |
void | IndexToLattice (int, int &, int &, int &) const |
Get control point lattice coordinates from index. | |
void | IndexToLattice (int, int &, int &, int &, int &) const |
Get control point lattice coordinates from index. | |
void | IndexToWorld (int, double &, double &) const |
Get world coordinates (in mm) of control point. | |
void | IndexToWorld (int, double &, double &, double &) const |
Get world coordinates (in mm) of control point. | |
void | IndexToWorld (int, Point &) const |
Get world coordinates (in mm) of control point. | |
Point | IndexToWorld (int) const |
Get world coordinates (in mm) of control point. | |
void | Initialize (const ImageAttributes &, double, double, double=-1.0, double=-1.0) |
Initialize free-form transformation. | |
void | Initialize (const CPImage &, bool=false) |
Initialize transformation from existing vector field. | |
void | Initialize (const GenericImage< double > &, bool=false) |
Initialize transformation from existing 3D+t vector field. | |
virtual bool | Inverse (double &, double &, double &, double=0, double=NaN) const |
Transforms a single point using the inverse of the transformation. | |
virtual bool | IsActive (int) const |
Whether the control point at given lattice index is active. | |
virtual bool | IsActive (int, int, int=0, int=0) const |
Whether the control point at given lattice coordinates is active. | |
virtual void | Jacobian (Matrix &, double, double, double, double=0, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t world coordinates. | |
virtual void | JacobianDetDerivative (double dJ[3], const Matrix &adj, int cp, double x, double y, double z, double t=0, double t0=NaN, bool wrt_world=true, bool use_spacing=true) const |
virtual void | JacobianDOFs (TransformationJacobian &, double, double, double, double=0, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t the transformation parameters. | |
void | JacobianToWorld (double &, double &) const |
void | JacobianToWorld (double &, double &, double &) const |
void | JacobianToWorld (Matrix &) const |
void | JacobianToWorldOrientation (double &, double &) const |
Reorient 1st order derivatives computed w.r.t 2D lattice coordinates. | |
void | JacobianToWorldOrientation (double &, double &, double &) const |
Reorient 1st order derivatives computed w.r.t 2D lattice coordinates. | |
int | KernelRadius () const |
Radius of support region of the used kernel. | |
int | LatticeToIndex (int, int, int=0, int=0) const |
Get control point index from lattice coordinates. | |
virtual double | LatticeToTime (double) const |
Transforms temporal lattice coordinate to time (in ms) | |
virtual void | LatticeToWorld (double &, double &) const |
Transforms lattice coordinates to world coordinates (in mm) | |
virtual void | LatticeToWorld (double &, double &, double &) const |
Transforms lattice coordinates to world coordinates (in mm) | |
virtual void | LatticeToWorld (Point &) const |
Transforms lattice coordinates to world coordinates (in mm) | |
mirtkPublicAttributeMacro (double, SpeedupFactor) | |
Speedup factor for gradient computation. | |
mirtkReadOnlyAttributeMacro (enum ExtrapolationMode, ExtrapolationMode) | |
Mode used for extrapolation of control point image. | |
int | NumberOfActiveCPs () const |
Number of active control points. | |
int | NumberOfCPs () const |
Number of control points. | |
int | NumberOfPassiveCPs () const |
Number of non-active control points. | |
virtual ParameterList | Parameter () const |
Get (non-DoF) parameters as key/value as string map. | |
virtual void | ParametricGradient (const PointSet &, const Vector3D< double > *, double *, double=0, double=NaN, double=1) const |
void | Put (int, const Vector &) |
Puts values of the parameters at a control point. | |
void | Put (int, double, double, double) |
Puts values of the parameters at a control point. | |
void | Put (int, int, int, double, double, double) |
Puts values of the parameters at a control point. | |
void | Put (int, int, int, int, double, double, double) |
Puts values of the parameters at a control point. | |
void | PutBoundingBox (double, double, double, double, double, double) |
Puts the spatial bounding box for the free-form deformation (in mm) | |
void | PutBoundingBox (const Point &, const Point &) |
Puts the temporal bounding box for the free-form deformation (in mm) | |
void | PutBoundingBox (double, double) |
Puts the temporal bounding box of the free-form deformation (in ms) | |
void | PutBoundingBox (double, double, double, double, double, double, double, double) |
Puts the spatio-temporal bounding box for the free-form deformation (in mm) | |
void | PutOrientation (double *, double *, double *) |
Puts the orientation of the free-form deformation lattice. | |
void | PutStatus (int, const CPStatus &) |
Puts status of the parameters at a control point. | |
void | PutStatus (int, int, int, DOFStatus, DOFStatus, DOFStatus) |
Puts status of the parameters at a control point. | |
void | PutStatus (int, int, int, int, DOFStatus, DOFStatus, DOFStatus) |
Puts status of the parameters at a control point. | |
virtual bool | Set (const char *, const char *) |
Set named (non-DoF) parameter from value as string. | |
virtual void | Subdivide (bool=true, bool=true, bool=true, bool=true) |
Subdivide lattice of free-form transformation. | |
void | Subdivide2D () |
Subdivide lattice in first two dimensions. | |
void | Subdivide3D () |
Subdivide lattice in first three dimensions. | |
void | Subdivide4D () |
Subdivide lattice in all four dimensions. | |
int | T () const |
Returns the number of control points in t. | |
virtual double | TimeToLattice (double) const |
Transforms time (in ms) to temporal lattice coordinate. | |
virtual void | Transform (double &, double &, double &, double=0, double=NaN) const |
Transforms a single point. | |
virtual void | WorldToLattice (double &, double &) const |
Transforms world coordinates (in mm) to lattice coordinates. | |
virtual void | WorldToLattice (double &, double &, double &) const |
Transforms world coordinates (in mm) to lattice coordinates. | |
virtual void | WorldToLattice (Point &) const |
Transforms world coordinates (in mm) to lattice coordinates. | |
int | X () const |
Returns the number of control points in x. | |
int | Y () const |
Returns the number of control points in y. | |
int | Z () const |
Returns the number of control points in z. | |
virtual | ~FreeFormTransformation () |
Destructor. | |
Public Member Functions inherited from mirtk::Transformation | |
virtual void | Add (const DOFValue *) |
Add change to transformation parameters. | |
virtual double | Approximate (const ImageAttributes &, const Transformation *, int=1, double=.0) |
Approximate another transformation and return approximation error. | |
virtual double | Approximate (GenericImage< double > &, int=1, double=.0) |
virtual double | ApproximateAsNew (const ImageAttributes &, const Transformation *, int=1, double=.0) |
Approximate another transformation and return approximation error. | |
virtual double | ApproximateAsNew (GenericImage< double > &, int=1, double=.0) |
virtual double | ApproximateAsNew (const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0) |
virtual double | ApproximateAsNew (const double *, const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0) |
virtual void | ApproximateGradient (const ImageAttributes &, const double *, const double *, const double *, double *, double=1.0) const |
virtual void | ApproximateGradient (const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const |
virtual void | ApproximateGradient (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const |
virtual bool | CanModifyDisplacement (int=-1) const |
virtual void | DeriveJacobianWrtDOF (Matrix &, int, double, double, double, double=0, double=NaN) const |
Calculates the derivative of the Jacobian of the transformation (w.r.t. world coordinates) w.r.t. a transformation parameter. | |
virtual void | Displacement (double &, double &, double &, double=0, double=NaN) const |
Calculates the displacement of a single point. | |
virtual void | Displacement (const ImageAttributes &, double *, double *, double *) const |
virtual void | Displacement (GenericImage< double > &, double=NaN, const WorldCoordsImage *=NULL) const |
Calculates the displacement vectors for a whole image domain. | |
virtual void | Displacement (GenericImage< float > &, double=NaN, const WorldCoordsImage *=NULL) const |
Calculates the displacement vectors for a whole image domain. | |
virtual void | Displacement (GenericImage< double > &, double, double, const WorldCoordsImage *=NULL) const |
virtual void | Displacement (GenericImage< float > &, double, double, const WorldCoordsImage *=NULL) const |
virtual void | DisplacementAfterDOFChange (int dof, double dv, GenericImage< double > &dx, double t, double t0=NaN, const WorldCoordsImage *i2w=NULL) const |
double | EvaluateRMSError (const ImageAttributes &, const Transformation *) const |
Evaluates RMS error of transformation compared to another. | |
double | EvaluateRMSError (const ImageAttributes &, double *, double *) const |
double | EvaluateRMSError (const ImageAttributes &, double *, double *, double *) const |
double | EvaluateRMSError (const double *, const double *, const double *, double, double *, double *, double *, int no) const |
Evaluates RMS error of transformation compared to displacement field. | |
double | EvaluateRMSError (const double *, const double *, const double *, const double *, double *, double *, double *, int no) const |
Evaluates RMS error of transformation compared to given displacement field. | |
virtual double | Get (int) const |
Get value of transformation parameter. | |
virtual void | Get (DOFValue *) const |
Get values of transformation parameters. | |
virtual DOFStatus | GetStatus (int) const |
Get status of transformation parameter. | |
virtual void | GlobalDisplacement (double &, double &, double &, double=0, double=NaN) const |
Calculates the displacement of a single point using the global transformation component only. | |
virtual void | GlobalInverseDisplacement (double &, double &, double &, double=0, double=NaN) const |
Calculates the displacement of a single point using the inverse of the global transformation only. | |
virtual double | GlobalJacobian (double, double, double, double=0, double=NaN) const |
Calculates the determinant of the Jacobian of the global transformation w.r.t world coordinates. | |
virtual bool | HasSameDOFsAs (const Transformation *) const |
Checks whether transformation depends on the same vector of parameters. | |
virtual bool | Inverse (Point &, double=0, double=NaN) const |
Transforms a single point using the inverse of the transformation. | |
virtual int | Inverse (PointSet &, double=0, double=NaN) const |
virtual bool | InverseDisplacement (double &, double &, double &, double=0, double=NaN) const |
Calculates the displacement of a single point using the inverse of the transformation. | |
virtual int | InverseDisplacement (const ImageAttributes &, double *, double *, double *) const |
virtual int | InverseDisplacement (GenericImage< double > &, double=NaN, const WorldCoordsImage *=NULL) const |
virtual int | InverseDisplacement (GenericImage< float > &, double=NaN, const WorldCoordsImage *=NULL) const |
virtual int | InverseDisplacement (GenericImage< double > &, double, double, const WorldCoordsImage *=NULL) const |
virtual int | InverseDisplacement (GenericImage< float > &, double, double, const WorldCoordsImage *=NULL) const |
virtual bool | IsIdentity () const |
Checks whether the transformation is an identity mapping. | |
virtual double | Jacobian (double, double, double, double=0, double=NaN) const |
Calculates the determinant of the Jacobian of the transformation w.r.t world coordinates. | |
virtual void | LocalDisplacement (double &, double &, double &, double=0, double=NaN) const |
Calculates the displacement of a single point using the local transformation component only. | |
virtual void | LocalHessian (Matrix [3], double, double, double, double=0, double=NaN) const |
Calculates the Hessian for each component of the local transformation w.r.t world coordinates. | |
virtual bool | LocalInverseDisplacement (double &, double &, double &, double=0, double=NaN) const |
Calculates the displacement of a single point using the inverse of the local transformation only. | |
virtual double | LocalJacobian (double, double, double, double=0, double=NaN) const |
Calculates the determinant of the Jacobian of the local transformation w.r.t world coordinates. | |
int | NumberOfActiveDOFs () const |
Get number of active transformation parameters. | |
virtual int | NumberOfDOFs () const |
Get number of transformation parameters. | |
int | NumberOfPassiveDOFs () const |
Get number of passive transformation parameters. | |
void | ParametricGradient (const GenericImage< double > *, double *, const WorldCoordsImage *, double=NaN, double=1) const |
void | ParametricGradient (const GenericImage< double > *, double *, double=NaN, double=1) const |
virtual void | ParametricGradient (const GenericImage< double > **, int, double *, const WorldCoordsImage *, const WorldCoordsImage *, const double *=NULL, double=1) const |
void | ParametricGradient (const GenericImage< double > **, int, double *, const WorldCoordsImage *, const double *=NULL, double=1) const |
void | ParametricGradient (const GenericImage< double > **, int, double *, const double *=NULL, double=1) const |
void | Print (Indent=0) const |
Prints information about the transformation. | |
virtual void | Put (int, double) |
Put value of transformation parameter. | |
virtual void | Put (const DOFValue *) |
Put values of transformation parameters. | |
virtual void | PutStatus (int, DOFStatus) |
Put status of transformation parameter. | |
virtual void | Read (const char *) |
Reads a transformation from a file. | |
virtual Cifstream & | Read (Cifstream &) |
Reads a transformation from a file stream. | |
virtual bool | RequiresCachingOfDisplacements () const |
virtual void | Reset () |
Reset transformation. | |
virtual void | Transform (Point &, double=0, double=NaN) const |
Transforms a single point. | |
virtual void | Transform (PointSet &, double=0, double=NaN) const |
Transforms a set of points. | |
virtual void | Transform (int, double *, double *, double *, double=0, double=NaN) const |
Transforms a set of points. | |
virtual void | Transform (int, double *, double *, double *, const double *, double=NaN) const |
Transforms a set of points. | |
virtual void | Transform (WorldCoordsImage &, double=NaN) const |
Transforms world coordinates of image voxels. | |
virtual TransformationType | TypeOfClass () const |
Returns type ID of the instantiated transformation class. | |
virtual double | Update (const DOFValue *) |
Update transformation parameters given parametric gradient. | |
virtual void | Verify () |
virtual void | Write (const char *) const |
Writes a transformation to a file. | |
virtual Cofstream & | Write (Cofstream &) const |
Writes a transformation to a file stream. | |
virtual | ~Transformation () |
Default destructor. | |
Public Member Functions inherited from mirtk::Observable | |
void | AddObserver (Observer &) |
Add observer. | |
void | Broadcast (Event, const void *=NULL) |
Broadcast event to observers. | |
void | ClearObservers () |
Delete all observers. | |
void | DeleteObserver (Observer &) |
Delete observer. | |
void | NotifyObservers (Event, const void *=NULL) |
Notify all observers about given event if this object has changed. | |
int | NumberOfObservers () const |
Number of current observers. | |
virtual | ~Observable () |
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. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual | ~Object () |
Destructor. | |
Protected Member Functions | |
virtual Cifstream & | ReadDOFs (Cifstream &, TransformationType) |
Reads transformation parameters from a file stream. | |
virtual Cofstream & | WriteDOFs (Cofstream &) const |
Writes transformation parameters to a file stream. | |
Protected Member Functions inherited from mirtk::LinearFreeFormTransformation4D | |
double | BendingEnergy (int i, int j, int k, int l) const |
Calculate the bending energy of the transformation at control points. | |
Protected Member Functions inherited from mirtk::FreeFormTransformation4D | |
FreeFormTransformation4D (CPInterpolator &) | |
Default constructor. | |
FreeFormTransformation4D (const FreeFormTransformation4D &, CPInterpolator &) | |
Copy Constructor. | |
Protected Member Functions inherited from mirtk::FreeFormTransformation | |
FreeFormTransformation (CPInterpolator &, CPInterpolator *=NULL) | |
Default constructor. | |
FreeFormTransformation (const FreeFormTransformation &, CPInterpolator &, CPInterpolator *=NULL) | |
Copy constructor. | |
void | InitializeCPs (const ImageAttributes &, bool=true) |
Initialize control points. | |
void | InitializeCPs (const FreeFormTransformation &, bool=true) |
Copy control points from other transformation. | |
void | InitializeInterpolator () |
Initialize interpolator of control points. | |
void | InitializeStatus () |
Initialize status of control points. | |
Cofstream & | WriteCPs (Cofstream &) const |
Writes the control point and status information to a file stream. | |
Protected Member Functions inherited from mirtk::Transformation | |
void | InitializeDOFs (int) |
Initialize transformation parameters. | |
void | InitializeDOFs (const Transformation &, int=-1) |
Copy transformation parameters (DoFs) and their status. | |
Transformation (int=0) | |
Default constructor. | |
Transformation (const Transformation &) | |
Copy constructor. | |
Transformation (const Transformation &, int) | |
Copy constructor. | |
Protected Member Functions inherited from mirtk::Observable | |
Observable () | |
Default constructor. | |
Observable (const Observable &) | |
Copy constructor. | |
Observable & | operator= (const Observable &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Additional Inherited Members | |
Public Types inherited from mirtk::FreeFormTransformation | |
typedef GenericExtrapolateImageFunction< CPImage > | CPExtrapolator |
Base type used for extrapolation of control point data. | |
typedef GenericImage< CPValue > | CPImage |
Type of image representation of free-form transformation. | |
typedef GenericInterpolateImageFunction< CPImage > | CPInterpolator |
typedef Vector3D< DOFStatus > | CPStatus |
Type of vector storing status of control point coefficients. | |
typedef Vector3D< DOFValue > | CPValue |
Type of vector storing the coefficients at a control point. | |
typedef CPValue | Vector |
Public Types inherited from mirtk::Transformation | |
typedef Status | DOFStatus |
Type of transforamtion parameter status. | |
typedef double | DOFValue |
Type of transformation parameter value. | |
Static Public Member Functions inherited from mirtk::FreeFormTransformation | |
static double | Bending3D (const Matrix [3]) |
Calculates the bending of the transformation given the 2nd order derivatives. | |
static ImageAttributes | DefaultAttributes (const ImageAttributes &attr, double dx=-1.0, double dy=-1.0, double dz=-1.0, double dt=-1.0) |
static ImageAttributes | DefaultAttributes (double, double, double, double, double, double, double, double, double, double, double, double, const double *, const double *, const double *) |
Default attributes of free-form transformation lattice. | |
Static Public Member Functions inherited from mirtk::Transformation | |
static bool | CheckHeader (const char *) |
Whether magic number in header of given file. | |
static Transformation * | New (TransformationType) |
static Transformation * | New (const Transformation *) |
static Transformation * | New (const char *) |
static TransformationType | TypeOfClass (const char *) |
Returns type ID corresponding to transformations of the named class. | |
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) |
Protected Attributes inherited from mirtk::LinearFreeFormTransformation4D | |
Interpolator | _FFD |
Interpolates control point values at arbitrary lattice locations. | |
Protected Attributes inherited from mirtk::FreeFormTransformation | |
const ImageAttributes & | _attr |
Control point lattice attributes. | |
CPInterpolator * | _CPFunc |
CPImage | _CPImage |
CPStatus **** | _CPStatus |
CPExtrapolator * | _CPValue |
Infinite discrete representation of free-form transformation coefficients. | |
const double & | _dt |
Read-only reference to _dt attribute of _CPImage. | |
const double & | _dx |
Read-only reference to _dx attribute of _CPImage. | |
const double & | _dy |
Read-only reference to _dy attribute of _CPImage. | |
const double & | _dz |
Read-only reference to _dz attribute of _CPImage. | |
const Matrix & | _matL2W |
Read-only reference to _matI2W of _CPImage. | |
const Matrix & | _matW2L |
Read-only reference to _matW2I of _CPImage. | |
const int & | _t |
Read-only reference to _t attribute of _CPImage. | |
const int & | _x |
Read-only reference to _x attribute of _CPImage. | |
const int & | _y |
Read-only reference to _y attribute of _CPImage. | |
const int & | _z |
Read-only reference to _z attribute of _CPImage. | |
Protected Attributes inherited from mirtk::Transformation | |
int | _NumberOfDOFs |
Number of transformation parameters. | |
DOFValue * | _Param |
Value of each transformation parameter. | |
DOFStatus * | _Status |
Status of each transformation parameter (Active or Passive) | |
Temporal diffeomorphic free-form transformation.
This class implements a free-form transformation which is represented by a time-varying velocity field (3D+t). The 3D displacement field at a specific time is obtained by integrating the velocity field starting at the reference time point. The integration steps are adjusted if necessary in order to ensure that the resulting spatial transformation is diffeomorphic.
For more details about the implementation see De Craene et al. (2012). Temporal diffeomorphic free-form deformation: application to motion and strain estimation from 3D echocardiography. Medical image analysis, 16(2), 427, 2012. doi:10.1016/j.media.2011.10.006
Definition at line 49 of file LinearFreeFormTransformationTD.h.
|
virtual |
Approximate displacements: This function takes a set of 3D displacement fields and corresponding time points and temporal intervals. Given these inputs, it finds a time-varying velocity field which approximates these displacements. The displacements are replaced by the residual displacements of the newly approximated transformation. Returns the approximation error of the resulting FFD.
|
virtual |
Approximate displacements: This function takes a set of 3D displacement fields and corresponding time points and temporal intervals. Given these inputs, it finds a time-varying velocity field which approximates these displacements.
|
virtual |
Approximate displacements: This function takes a set of points and a set of displacements and finds !new! parameters such that the resulting transformation approximates the displacements as good as possible.
Reimplemented from mirtk::LinearFreeFormTransformation4D.
|
virtual |
Finds gradient of approximation error: This function takes a set of points and a set of errors. It finds a gradient w.r.t. the transformation parameters which minimizes the L2 norm of the approximation error and adds it to the input gradient with the given weight.
Reimplemented from mirtk::LinearFreeFormTransformation4D.
|
virtual |
Interpolates displacements: This function takes a set of displacements defined at the control points and finds a time-varying velocity field such that the resulting transformation interpolates these displacements.
Reimplemented from mirtk::LinearFreeFormTransformation4D.