#include <BSplineFreeFormTransformation4D.h>
Public Member Functions | |
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 double | BendingEnergy (double, double, double, double=0, double=NaN, bool=true) const |
Calculates the bending of the transformation. | |
virtual double | BendingEnergy (bool=false, bool=true) const |
Approximates the bending energy on the control point lattice. | |
virtual double | BendingEnergy (const ImageAttributes &, double=NaN, bool=true) const |
Approximates the bending energy on the specified discrete domain. | |
virtual void | BendingEnergyGradient (double *, double=1.0, 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 |
BSplineFreeFormTransformation4D () | |
Default constructor. | |
BSplineFreeFormTransformation4D (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. | |
BSplineFreeFormTransformation4D (const ImageAttributes &, double=-1, double=-1, double=-1, double=-1) | |
Construct free-form transformation for given image domain and lattice spacing. | |
BSplineFreeFormTransformation4D (const BaseImage &, double, double, double, double) | |
Construct free-form transformation for given target image and lattice spacing. | |
BSplineFreeFormTransformation4D (const BSplineFreeFormTransformation4D &) | |
Copy Constructor. | |
virtual bool | CanRead (TransformationType) const |
Whether this transformation can read a file of specified type (i.e. format) | |
void | Evaluate (double &, double &, double &, double) const |
Calculates the FFD (for a point in FFD coordinates) | |
void | EvaluateHessian (Matrix [3], int, int, int, int) const |
Calculates the Hessian of the FFD at a point in lattice coordinates. | |
void | EvaluateHessian (Matrix [3], double, double, double, double) const |
Calculates the Hessian of the FFD at a point in lattice coordinates. | |
void | EvaluateHessianWorld (Matrix [3], double, double, double, double) const |
void | EvaluateInside (double &, double &, double &, double) const |
Evaluates the FFD at a point in lattice coordinates inside the FFD domain. | |
void | EvaluateJacobian (Matrix &, int, int, int, int) const |
Calculates the spatial Jacobian of the FFD at a point in lattice coordinates. | |
void | EvaluateJacobian (Matrix &, double, double, double, double) const |
Calculates the spatial Jacobian of the FFD at a point in lattice coordinates. | |
void | EvaluateJacobianDOFs (double [3], int, int, int, int, double, double, double, double) const |
void | EvaluateJacobianDOFs (TransformationJacobian &jac, double, double, double, double) const |
void | EvaluateJacobianWorld (Matrix &, double, double, double, double) const |
void | EvaluateLaplacian (double [3], int, int, int, int) const |
Calculates the Laplacian of the FFD at a point in lattice coordinates. | |
void | EvaluateLaplacian (double [3], int, int, int, double) const |
Calculates the Laplacian of the FFD at a point in lattice coordinates. | |
void | EvaluateLaplacian (double [3], double, double, double, double) const |
Calculates the Laplacian of the FFD at a point in lattice coordinates. | |
void | EvaluateLaplacian (double &, double &, double &, double) const |
Calculates the Laplacian of the FFD at a point in lattice coordinates. | |
virtual int | GetTAfterSubdivision () const |
Number of control points in t after subdivision. | |
virtual double | GetTSpacingAfterSubdivision () const |
Returns the control point spacing in t after the subdivision. | |
virtual int | GetXAfterSubdivision () const |
Number of control points in x after subdivision. | |
virtual double | GetXSpacingAfterSubdivision () const |
Returns the control point spacing in x after the subdivision. | |
virtual int | GetYAfterSubdivision () const |
Number of control points in y after subdivision. | |
virtual double | GetYSpacingAfterSubdivision () const |
Returns the control point spacing in y after the subdivision. | |
virtual int | GetZAfterSubdivision () const |
Number of control points in z after subdivision. | |
virtual double | GetZSpacingAfterSubdivision () const |
Returns the control point spacing in z after the subdivision. | |
virtual void | Interpolate (const double *, const double *, const double *) |
virtual void | JacobianDOFs (Matrix &, int, int, int, int, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the transformation w.r.t the transformation parameters. | |
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 the transformation parameters. | |
virtual void | JacobianDOFs (TransformationJacobian &, double, double, double, double, double=NaN) 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. | |
virtual void | LocalHessian (Matrix [3], double, double, double, double, double=NaN) const |
Calculates the Hessian for each component of the local transformation w.r.t world coordinates. | |
virtual void | LocalJacobian (Matrix &, double, double, double, double, double=NaN) const |
Calculates the Jacobian of the local transformation w.r.t world coordinates. | |
virtual void | LocalTransform (double &, double &, double &, double, double=NaN) const |
Transforms a single point using the local transformation component only. | |
virtual void | ParametricGradient (const GenericImage< double > *, double *, const WorldCoordsImage *, const WorldCoordsImage *, double=NaN, double=1.0) const |
virtual void | Print (ostream &, Indent=0) const |
Prints the parameters of the transformation. | |
virtual void | Subdivide (bool=true, bool=true, bool=true, bool=true) |
Subdivide FFD lattice in the specified dimensions. | |
virtual | ~BSplineFreeFormTransformation4D () |
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, 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. | |
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. | |
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. | |
double | GetTSpacing () const |
Returns the of control point spacing in t. | |
int | GetX () const |
Returns the number of control points in x. | |
double | GetXSpacing () const |
Returns the of control point spacing in x. | |
int | GetY () const |
Returns the number of control points in y. | |
double | GetYSpacing () const |
Returns the of control point spacing in y. | |
int | GetZ () const |
Returns the number of control points in z. | |
double | GetZSpacing () const |
Returns the of control point spacing in z. | |
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 |
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. | |
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 bool | LocalInverse (double &, double &, double &, double=0, double=NaN) const |
Transforms a single point using the inverse of the local transformation only. | |
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 Attributes | |
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) | |
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. | |
Protected Member Functions inherited from mirtk::FreeFormTransformation4D | |
FreeFormTransformation4D (CPInterpolator &) | |
Default constructor. | |
FreeFormTransformation4D (const FreeFormTransformation4D &, CPInterpolator &) | |
Copy Constructor. | |
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::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 |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Class for free-form transformations based on tensor product B-splines.
This class implements 4D free-form transformation using B-splines.
For more details about the implementation see Lee, Wolberg and Shin, IEEE Transactions on Visualization and Computer Graphics, Vol. 3, No. 3, 1997.
Definition at line 41 of file BSplineFreeFormTransformation4D.h.
|
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::Transformation.
Reimplemented in mirtk::BSplineFreeFormTransformationTD.
|
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::Transformation.
Reimplemented in mirtk::BSplineFreeFormTransformationTD.
|
virtual |
Approximates the gradient of the bending energy on the control point lattice w.r.t the transformation parameters and adds it with the given weight
Reimplemented from mirtk::FreeFormTransformation.
|
virtual |
Gets the temporal bounding box for a control point. The last parameter specifies what fraction of the bounding box to return. The default is 1 which equals 100% of the bounding box.
Reimplemented from mirtk::FreeFormTransformation.
|
virtual |
Gets the spatial bounding box for a control point. The last parameter specifies what fraction of the bounding box to return. The default is 1 which equals 100% of the bounding box.
Implements mirtk::FreeFormTransformation.
|
virtual |
Gets the spatio-temporal bounding box for a control point. The last parameter specifies what fraction of the bounding box to return. The default is 1 which equals 100% of the bounding box.
Reimplemented from mirtk::FreeFormTransformation.
|
inline |
Calculates the Hessian of the FFD at a point in lattice coordinates and converts the resulting Hessian to derivatives w.r.t world coordinates
Definition at line 374 of file BSplineFreeFormTransformation4D.h.
|
inline |
Calculates the Jacobian of the FFD at a point in lattice coordinates w.r.t the control point with lattice coordinates (i, j, k, l)
Definition at line 314 of file BSplineFreeFormTransformation4D.h.
|
inline |
Calculates the Jacobian of the FFD at a point in lattice coordinates w.r.t the parameters. The resulting Jacobian matrix contains one column for each parameter, but only non-zero columns, i.e., of control points for whom the point is in the local support region, are actually stored.
Definition at line 325 of file BSplineFreeFormTransformation4D.h.
|
inline |
Calculates the spatial Jacobian of the FFD at a point in lattice coordinates and converts the resulting Jacobian to derivatives w.r.t world coordinates
Definition at line 306 of file BSplineFreeFormTransformation4D.h.
|
virtual |
Interpolates displacements: This function takes a set of displacements defined at the control points and finds a FFD which interpolates these displacements.
Implements mirtk::FreeFormTransformation.
Reimplemented in mirtk::BSplineFreeFormTransformationTD.
|
virtual |
Applies the chain rule to convert spatial non-parametric gradient to a gradient w.r.t the parameters of this transformation
Reimplemented from mirtk::FreeFormTransformation4D.
Reimplemented in mirtk::BSplineFreeFormTransformationTD.