Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
mirtk::SimilarityTransformation Class Reference

#include <SimilarityTransformation.h>

Inheritance diagram for mirtk::SimilarityTransformation:
Inheritance graph
Collaboration diagram for mirtk::SimilarityTransformation:
Collaboration graph

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 CofstreamWrite (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 MatrixGetInverseMatrix () const
 Gets the inverse transformation matrix.
 
const MatrixGetMatrix () 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 CifstreamRead (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 TransformationNew (TransformationType)
 
static TransformationNew (const Transformation *)
 
static TransformationNew (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 CifstreamReadDOFs (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 CofstreamWriteDOFs (Cofstream &) const
 Writes transformation parameters to a file stream.
 
- Protected Member Functions inherited from mirtk::Observable
 Observable ()
 Default constructor.
 
 Observable (const Observable &)
 Copy constructor.
 
Observableoperator= (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)
 

Detailed Description

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.

Member Function Documentation

§ ApproximateDOFs()

virtual void mirtk::SimilarityTransformation::ApproximateDOFs ( const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
int   
)
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.

§ CopyFrom()

virtual bool mirtk::SimilarityTransformation::CopyFrom ( const Transformation )
virtual

Copy active transformation parameters (DoFs) from given transformation if possible and return false, otherwise

Reimplemented from mirtk::HomogeneousTransformation.

Reimplemented in mirtk::AffineTransformation.


The documentation for this class was generated from the following file: