#include <SimilarityTransformation.h>
Public Member Functions | |
virtual void | ApproximateDOFs (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int) |
virtual bool | CanRead (TransformationType) const |
Whether this transformation can read a file of specified type (i.e. format) | |
virtual bool | CopyFrom (const Transformation *) |
virtual void | DeriveJacobianWrtDOF (Matrix &, int, double, double, double, double=0, double=-1) const |
Calculates the derivative of the Jacobian of the transformation (w.r.t. world coordinates) w.r.t. a transformation parameter. | |
virtual double | GetScale () const |
Gets scaling factor. | |
virtual void | JacobianDOFs (double [3], int, double, double, double, double=0, double=-1) const |
Calculates the Jacobian of the transformation w.r.t the parameters. | |
virtual void | Print (ostream &, Indent=0) const |
Prints the parameters of the transformation. | |
virtual void | PutScale (double) |
Puts scaling factor. | |
SimilarityTransformation () | |
Default constructor. | |
SimilarityTransformation (const RigidTransformation &) | |
Copy constructor. | |
SimilarityTransformation (const SimilarityTransformation &) | |
Copy constructor. | |
virtual Cofstream & | Write (Cofstream &) const |
Writes transformation to a file stream. | |
virtual | ~SimilarityTransformation () |
Destructor. | |
Public Member Functions inherited from mirtk::RigidTransformation | |
double | GetRotationX () const |
Gets rotation angle around the x-axis. | |
double | GetRotationY () const |
Gets rotation angle around the y-axis. | |
double | GetRotationZ () const |
Gets rotation angle around the z-axis. | |
double | GetTranslationX () const |
Gets translation along the x-axis. | |
double | GetTranslationY () const |
Gets translation along the y-axis. | |
double | GetTranslationZ () const |
Gets translation along the z-axis. | |
void | PutRotationX (double) |
Puts rotation angle around the x-axis (transformation matrix is updated) | |
void | PutRotationY (double) |
Puts rotation angle around the y-axis (transformation matrix is updated) | |
void | PutRotationZ (double) |
Puts rotation angle around the z-axis (transformation matrix is updated) | |
void | PutTranslationX (double) |
Puts translation along the x-axis (transformation matrix is updated) | |
void | PutTranslationY (double) |
Puts translation along the y-axis (transformation matrix is updated) | |
void | PutTranslationZ (double) |
Puts translation along the z-axis (transformation matrix is updated) | |
RigidTransformation () | |
Default constructor. | |
RigidTransformation (const RigidTransformation &) | |
Copy constructor. | |
virtual void | Rotate (double &x, double &y, double &z) const |
Transforms a single point by the rotation part of the rigid transformation. | |
void | SetParameters (double *params) |
virtual void | Translate (double &x, double &y, double &z) const |
Transforms a single point by the translation part of the rigid transformation. | |
virtual | ~RigidTransformation () |
Destructor. | |
Public Member Functions inherited from mirtk::HomogeneousTransformation | |
virtual void | Add (const DOFValue *) |
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 | Approximate (const Matrix &) |
Approximate given homogeneous coordinate transformation matrix. | |
virtual double | ApproximateAsNew (const Matrix &) |
Approximate given homogeneous coordinate transformation matrix. | |
const Matrix & | GetInverseMatrix () const |
Gets the inverse transformation matrix. | |
const Matrix & | GetMatrix () const |
Gets the transformation matrix. | |
virtual void | GlobalInverse (double &, double &, double &, double=0, double=-1) const |
Transforms a single point using the inverse of the global transformation only. | |
virtual void | GlobalJacobian (Matrix &, double, double, double, double=0, double=-1) const |
Calculates the Jacobian of the global transformation w.r.t world coordinates. | |
virtual void | GlobalTransform (double &, double &, double &, double=0, double=-1) const |
Transforms a single point using the global transformation component only. | |
HomogeneousTransformation () | |
Default constructor. | |
HomogeneousTransformation (const Matrix &) | |
Construct from 4x4 transformation matrix (without checks) | |
HomogeneousTransformation (const HomogeneousTransformation &) | |
Copy Constructor. | |
virtual bool | Inverse (double &, double &, double &, double=0, double=-1) const |
Transforms a single point using the inverse of the transformation. | |
void | Invert () |
Inverts the transformation. | |
virtual bool | IsIdentity () const |
Checks whether transformation is an identity mapping. | |
virtual void | Jacobian (Matrix &, double, double, double, double=0, double=-1) const |
Calculates the Jacobian of the transformation w.r.t world coordinates. | |
virtual bool | LocalInverse (double &, double &, double &, double=0, double=-1) const |
Transforms a single point using the inverse of the local transformation only. | |
virtual void | LocalJacobian (Matrix &, double, double, double, double=0, double=-1) const |
Calculates the Jacobian of the local transformation w.r.t world coordinates. | |
virtual void | LocalTransform (double &, double &, double &, double=0, double=-1) const |
Transforms a single point using the local transformation component only. | |
virtual void | Put (int, DOFValue) |
Puts a transformation parameter. | |
virtual void | Put (const DOFValue *) |
Puts transformation parameters. | |
void | PutMatrix (const Matrix &) |
virtual void | Reset () |
Reset transformation. | |
virtual void | Transform (double &, double &, double &, double=0, double=-1) const |
Transforms a single point. | |
virtual double | Update (const DOFValue *) |
void | UpdateParameter () |
virtual | ~HomogeneousTransformation () |
Destructor. | |
Public Member Functions inherited from mirtk::Transformation | |
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 ImageAttributes &, double *, double *, 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 | ApproximateDOFsGradient (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const |
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 | 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 |
virtual 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. | |
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 | 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 | 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 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. | |
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 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. | |
virtual ParameterList | Parameter () const |
Get (non-DoF) parameters as key/value as string map. | |
virtual void | ParametricGradient (const GenericImage< double > *, double *, const WorldCoordsImage *, const WorldCoordsImage *, double=NaN, double=1) const |
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 |
virtual void | ParametricGradient (const PointSet &, const Vector3D< double > *, double *, double=0, double=NaN, double=1) const |
void | Print (Indent=0) const |
Prints information about the transformation. | |
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 bool | Set (const char *, const char *) |
Set named (non-DoF) parameter from value as string. | |
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 void | Verify () |
virtual void | Write (const char *) const |
Writes a transformation to a file. | |
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. | |
Static Public Member Functions | |
static Matrix | DOFs2Matrix (const double *) |
Construct a matrix based on parameters passed in the array. | |
Static Public Member Functions inherited from mirtk::RigidTransformation | |
static Matrix | DOFs2Matrix (const double *) |
Construct a matrix based on parameters passed in the array. | |
static void | Matrix2DOFs (const Matrix &, double *) |
Return an array with parameters corresponding to a given matrix. | |
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 | |
virtual Cifstream & | ReadDOFs (Cifstream &, TransformationType) |
Reads transformation from a file stream. | |
SimilarityTransformation (int) | |
Default constructor with given number of parameters. | |
SimilarityTransformation (const RigidTransformation &, int) | |
Copy constructor with given number of parameters. | |
SimilarityTransformation (const SimilarityTransformation &, int) | |
Copy constructor with given number of parameters. | |
virtual void | UpdateDOFs () |
Update transformation parameters after change of matrix. | |
virtual void | UpdateMatrix () |
Update transformation matrix after change of parameter. | |
Protected Member Functions inherited from mirtk::RigidTransformation | |
RigidTransformation (int) | |
Default constructor with given number of parameters. | |
RigidTransformation (const RigidTransformation &, int) | |
Copy constructor with given number of parameters. | |
void | UpdateRotationSineCosine () |
Update cached sine and cosine of rotation angles. | |
Protected Member Functions inherited from mirtk::HomogeneousTransformation | |
HomogeneousTransformation (int) | |
Default constructor with given number of parameters. | |
HomogeneousTransformation (const HomogeneousTransformation &, int) | |
Copy constructor with given number of parameters. | |
void | Update (AttributeSelector) |
Update transformation parameters and/or matrices. | |
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. | |
virtual Cofstream & | WriteDOFs (Cofstream &) const |
Writes transformation parameters to a file stream. | |
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::Transformation | |
typedef Status | DOFStatus |
Type of transforamtion parameter status. | |
typedef double | DOFValue |
Type of transformation parameter value. | |
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::RigidTransformation | |
double | _cosrx |
Cosine of rotation angle rx. | |
double | _cosry |
Cosine of rotation angle ry. | |
double | _cosrz |
Cosine of rotation angle rz. | |
double | _sinrx |
Sine of rotation angle rx. | |
double | _sinry |
Sine of rotation angle ry. | |
double | _sinrz |
Sine of rotation angle rz. | |
Protected Attributes inherited from mirtk::HomogeneousTransformation | |
Matrix | _inverse |
Inverse 4x4 transformation matrix for homogeneous coordinates. | |
Matrix | _matrix |
4x4 transformation matrix for homogeneous coordinates | |
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) | |
Class for similarity transformations.
This class defines and implements similarity transformations. In addition to the rigid body transformation parameters, similarity transformations are parameterized by a global scaling parameter. The scaling parameter defines the scaling along all axis of the coordinate transformations.
Definition at line 37 of file SimilarityTransformation.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::RigidTransformation.
Reimplemented in mirtk::AffineTransformation.
|
virtual |
Copy active transformation parameters (DoFs) from given transformation if possible and return false
, otherwise
Reimplemented from mirtk::HomogeneousTransformation.
Reimplemented in mirtk::AffineTransformation.