zxhproj v 2.2
zxhproj

zxhTransformMultipleAffines Class Reference

zxhTransformMultipleAffines.h: interface for all transformations using multiple affine transformations. multiple affine = global affine + local affines More...

#include <zxhTransformMultipleAffines.h>

Inheritance diagram for zxhTransformMultipleAffines:
zxhTransformAffine zxhTransformBase zxhGradientBase zxhTransformLocalAffines zxhTransformLocalAffines2

List of all members.

Public Member Functions

 zxhTransformMultipleAffines ()
 constructor
virtual ~zxhTransformMultipleAffines ()
 deconstructor
virtual zxhTransformBaseClone (zxhTransformBase *&pRet)
virtual std::string GetPrintString ()
 local affine could a matrix type, so be careful when using SetTransformFromStream
virtual std::string GetTransformType ()
virtual bool SetLocalMatrixFromFile (const char *pFile)
 from file
virtual bool SetTransformFromStream (std::ifstream &ifs)
 from stream (all affine, no matrix type)
virtual bool SetTransformIdentity ()
 set transformation as a identity transform, affine doesn't change centre
virtual bool SetTransformAlignByCentre (int iCentre)
virtual bool SetTransformAlignByCentre (std::string sCentre)
virtual bool SetImage (zxhImageData *pTest, zxhImageData *pRef)
 set image then set the rotate centre(Worldical coordinate) to the centre of the test image
virtual void SetLocalAffineRotateCentre (int iLocal, float *afwCenter)
virtual bool SetTransformPara (float f)
 operator
virtual bool GetAdd (zxhTransformBase *, zxhTransformBase *)
 A+B.
virtual bool Add (zxhTransformBase *)
 +
virtual bool GetSubtract (zxhTransformBase *, zxhTransformBase *)
 A-B.
virtual bool Subtract (zxhTransformBase *)
 

virtual bool GetMultiply (zxhTransformBase *, float)
 A*f.
virtual bool Multiply (float)
 *f
virtual bool GetMultiplyByPara (zxhTransformBase *, zxhTransformBase *)
 A*B.
virtual bool MultiplyByPara (zxhTransformBase *)
 *B
virtual bool GetCompareByPara (zxhTransformBase *, float f=0)
 threshold to -1 0 and 1 compare with f
virtual bool CompareByPara (float f=0)
 threshold to -1 0 and 1 compare with f
virtual float GetMagnitudeAsVector (void)
 transformation treated as vector
virtual float GetMaxLocalMagnitudeAndNormalisation (bool bNormalisationByLocalMagnitude)
 for optimisation step length normalisation
virtual float GetMaxAbsValueFromParameters (void)
virtual float GetPointMutiplyAsVector (zxhTransformBase *)
 get
virtual void UpdateMatrix ()
 Update transformation matrix for linear transformation.
virtual int GetDegreeOfFreedom ()
 get transforms DOF
virtual int GetDOFWithValue (float f)
 get parameter value >= f , dof
virtual bool SetLocalAffines (zxhTransformAffine **p)
virtual bool SetNoOfLocalAffines (int n)
 Set (reset) number of local affines, without setting type, default affine.
virtual bool SetNoOfLocalMatrix (int n)
 Set (reset) number of local matrix.
virtual bool SetNoOfLocalAffines (int n, zxhTransformAffine *type)
 Set (reset) number of local affines, with type.
virtual int GetNoLocalAffines ()
virtual zxhTransformAffine ** GetLocalAffines ()
virtual bool AdvanceStep (zxhTransformBase *p, float f=1)
 for registration optimization
virtual int GetNoParameters ()
virtual float GetParameters (int index)
 0~3translate 4~7rotate 8~11scaling 12~15center 16~21 skew
virtual bool SetParameterValue (int index, float f)
virtual void InitialGradientDifferentialStep (zxhTransformAffine *pGrad, float TranslateScale, float RotateScale, float ScalingScale, float factor=1)
 c. f. zxhTransformAffine, the settings are only for local affines, NOT global
virtual void InitialGradientDifferentialStep (zxhTransformAffine *pGrad, float TranslateScale[], float RotateScale[], float ScalingScale[], float SkewScale, float factor=1)
virtual bool ComputeMetricGradient (zxhMetricBase *pMetric, zxhTransformBase *pInfluence=0)

Protected Member Functions

virtual bool ComputeMetricGradientGlobalAffine (zxhMetricBase *pMetric, zxhTransformBase *pInfluence=0)

Protected Attributes

int m_nNoLocalAffines
zxhTransformAffinem_apLocalAffines [ZXH_LocalAffineMaxNumber]
 local affines/matrix, every time keep own copies by clone (could be affine or matrix type)

Detailed Description

zxhTransformMultipleAffines.h: interface for all transformations using multiple affine transformations. multiple affine = global affine + local affines


Constructor & Destructor Documentation

zxhTransformMultipleAffines::zxhTransformMultipleAffines ( )

constructor

roi region


Member Function Documentation

zxhTransformBase * zxhTransformMultipleAffines::Clone ( zxhTransformBase *&  pRet) [virtual]
Returns:

Reimplemented from zxhTransformAffine.

Reimplemented in zxhTransformLocalAffines, and zxhTransformLocalAffines2.

bool zxhTransformMultipleAffines::ComputeMetricGradient ( zxhMetricBase pMetric,
zxhTransformBase pInfluence = 0 
) [virtual]

computer gradient, influence control status for optimisation if infl==0, then use m_fDifferentialStep

Reimplemented from zxhTransformAffine.

Reimplemented in zxhTransformLocalAffines.

virtual int zxhTransformMultipleAffines::GetNoParameters ( ) [inline, virtual]

Get partial differential of transformation [Y1 Y2 Y3]=T(x), with respect to the transformation parameter Ti with index return whether success, results (e.g. 3D, [d(Y1)/d(Ti) d(Y2)/d(Ti) d(Y3)/d(Ti)]) returned in g[4]

Reimplemented from zxhTransformAffine.

virtual std::string zxhTransformMultipleAffines::GetTransformType ( ) [inline, virtual]
Returns:

Reimplemented from zxhTransformAffine.

Reimplemented in zxhTransformLocalAffines.

bool zxhTransformMultipleAffines::SetParameterValue ( int  index,
float  f 
) [virtual]

set transformation parameter value, if the transformation model need pre-computation from parameters for efficiency such as affine, then re-implement this function to call the pre-computation method after set the value

Reimplemented from zxhTransformAffine.

bool zxhTransformMultipleAffines::SetTransformAlignByCentre ( int  iCentre) [virtual]

set pretransformation by aligning the image size centre "centre" (2) or gray level centre "gcentre" (3) test and ref images should be set

Reimplemented from zxhTransformAffine.

bool zxhTransformMultipleAffines::SetTransformFromStream ( std::ifstream &  ifs) [virtual]

from stream (all affine, no matrix type)

set pretransformation by aligning the image size centre "centre" (2) or gray level centre "gcentre" (3) test and ref images should be set default: local affines are Affine (not Matrix) type

Reimplemented from zxhTransformAffine.

Reimplemented in zxhTransformLocalAffines, and zxhTransformLocalAffines2.

bool zxhTransformMultipleAffines::SetTransformPara ( float  f) [virtual]

operator

set

Reimplemented from zxhTransformAffine.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs