zxhproj v 2.2
zxhproj

zxhMetricBase Class Reference

registration similarity measurement the derivative is computed in gradient object 2010-May-14 add: consider weight function for pixel: m_pWeightModelTest(Ref), GetWeightByWorld; No mask: 1, outlier: 0; More...

#include <zxhMetricBase.h>

Inheritance diagram for zxhMetricBase:
zxhMetricCC zxhMetricJE zxhMetricLogProbability zxhMetricMI zxhMetricNV zxhMetricPhase zxhMetricRMS zxhMetricSquareRootTransform

List of all members.

Public Member Functions

 zxhMetricBase ()
 constructor
virtual ~zxhMetricBase ()
virtual zxhMetricBaseClone (zxhMetricBase *&pRet)
virtual std::string GetMetricType ()=0
 GetMetricType()=0.
virtual bool IsThisMetricType (std::string s)
virtual bool IsThisMetricType (zxhMetricBase *pm)
virtual bool SetImage (zxhImageData *pImageTest, zxhImageData *pImageRef)
 1) set image ; 2) set dimension; 3) set sampling to be consistent
virtual bool SetMaskImage (zxhImageData *pMaskTest, zxhImageData *pMaskRef)
virtual zxhImageDataGetMaskImageTest ()
virtual zxhImageDataGetMaskImageRef ()
virtual bool GetMaskByWorld (zxhImageData *pMaskImage, float fx, float fy, float fz, float ft)
 pixels outside of mask are regarded as background
virtual float GetWeightByWorld (zxhImageModelingBaseT< float, float > *pWeightModel, float fx, float fy, float fz, float ft)
 pixels outside of mask are regarded as background
virtual zxhImageDataGetTestImage ()
virtual zxhImageDataGetRefImage ()
virtual zxhImageModelingBaseT
< float, float > * 
GetWegihtModelRef ()
virtual zxhImageModelingBaseT
< float, float > * 
GetWegihtModelTest ()
virtual void SetWeightModelRef (zxhImageModelingBaseT< float, float > *p)
virtual void SetWeightModelTest (zxhImageModelingBaseT< float, float > *p)
virtual bool SetImageModelingType (zxhImageModelingBase *pModelingTest, zxhImageModelingBase *pModelingRef)
virtual bool SetTransform (zxhTransformBase *pTr)
virtual bool SetForwardComposedTransform (zxhTransformBase *p)
virtual zxhTransformBaseGetForwardComposedTransform ()
virtual zxhTransformBaseGetTransform ()
virtual void SetDimension (int i)
 normall dimension is same to image's, but not guaranteed
virtual int GetDimension ()
virtual void SetSamplingPhysical (float x, float y=1.0f, float z=1.0f, float t=1.0f)
virtual const float * GetSamplingInterval ()
virtual const float * GetSamplingPhysical ()
virtual int GetValue (zxhlfloat &fValue)=0
virtual std::string GetPrintString ()
virtual bool SetMetricFromStream (std::ifstream &ifs)
virtual bool GetWorldRoiFrom (float f[])
 has been set ?
virtual bool GetWorldRoiTo (float f[])
virtual bool SetWorldRoi (float xf, float xt, float yf, float yt, float zf, float zt, float tf, float tt)
 this function just record the two corner points, DO NOT guarantee from < to
virtual bool GetInnerRoiTest (float from[], float to[])
virtual bool WithinWorldROI (float wx, float wy, float wz, float wt)
virtual void PreComputeTransformField ()
virtual void ResampleTestImagesSpacingPhysIntervel ()
 resample test image, and then update SampleIntervel to 1 ; for the use of pre-transform in FFD and FFD2
virtual void ResampleImagesSpacingPhysIntervel ()

Protected Member Functions

virtual bool TransformPointTo (float *from, float *to)
virtual void TransformWorldToWorld (const float *fromWorld, float *toWorld)
virtual bool TransformPointToWorldUsingPreComputed (int x, int y, int z, int t, float wto[])

Protected Attributes

int m_iDimension
zxhImageDatam_pImageTest
zxhImageDatam_pImageRef
zxhImageDatam_pMaskTest
zxhImageDatam_pMaskRef
zxhImageModelingBaseT< float,
float > * 
m_pWeightModelTest
zxhImageModelingBaseT< float,
float > * 
m_pWeightModelRef
zxhImageModelingBasem_pModelingTest
 2010-12-22: model will new an object when setting model, and delete when the object is deleted
zxhImageModelingBasem_pModelingRef
zxhTransformBasem_pTransform
zxhTransformBasem_pForwardComposedTransform
float m_afSamplingInterval [ImageDimensionMax]
 sampling, image grids, when resample test image to m_afSamplingPhysical spacing, sampling interval then equal 1
float m_afSamplingPhysical [ImageDimensionMax]
 sampling, image grids
float m_afRoiWorld [2][ImageDimensionMax]
 the two vertex of roi in world coordinate, NOT guarantee from<to when use this, please convert to test image grid coordinate
bool m_bSetRoiWorld
 if this is true, then use m_afRoiWorld directly
zxhImageData m_imgRefImageOnXindex
 pre-compute: I_f with integer coordinate x -- m_pImageTest; I_f(y) with integer coordinate x-- m_imgMMIrefImage
zxhImageData m_imgMaskTestRefOnXindex
 include outliers of imageref, masktest, and maskref
zxhImageDataT< float > m_aimgRefGradientOnXindex [ImageDimensionMax]
 GradientI_r(y)_1/2/3 with interger coordinate x.
zxhImageDataT< float > m_aimgPreComputeTransformToWorld [ImageDimensionMax]
 should be same dim, size, spacing as m_pImageTest; not displacement, but toworld
bool m_bPreComputeTransformToWorld

Detailed Description

registration similarity measurement the derivative is computed in gradient object 2010-May-14 add: consider weight function for pixel: m_pWeightModelTest(Ref), GetWeightByWorld; No mask: 1, outlier: 0;


Constructor & Destructor Documentation

zxhMetricBase::~zxhMetricBase ( ) [virtual]
Returns:

Member Function Documentation

virtual int zxhMetricBase::GetDimension ( ) [inline, virtual]
Returns:
bool zxhMetricBase::GetInnerRoiTest ( float  from[],
float  to[] 
) [virtual]
Returns:
using Roi on test image grid, Guarantee from < to
std::string zxhMetricBase::GetPrintString ( ) [virtual]
Returns:

Reimplemented in zxhMetricJE, zxhMetricMI, and zxhMetricNV.

virtual zxhImageData* zxhMetricBase::GetRefImage ( ) [inline, virtual]
Returns:
virtual const float* zxhMetricBase::GetSamplingInterval ( ) [inline, virtual]
Returns:
virtual zxhImageData* zxhMetricBase::GetTestImage ( ) [inline, virtual]
Returns:
virtual zxhTransformBase* zxhMetricBase::GetTransform ( ) [inline, virtual]
Returns:
virtual int zxhMetricBase::GetValue ( zxhlfloat &  fValue) [pure virtual]
virtual zxhImageModelingBaseT<float,float>* zxhMetricBase::GetWegihtModelRef ( ) [inline, virtual]
Returns:
void zxhMetricBase::PreComputeTransformField ( ) [virtual]

Transform field image spacing == sample physical to use it the most accuracy in similarity computation. and image info using test image; only used in FFD+MI (including SEMI, FFD2) registration

Transform field image spacing == sample physical to use it the most accuracy in similarity computation. and image info using test image

virtual bool zxhMetricBase::SetForwardComposedTransform ( zxhTransformBase p) [inline, virtual]
Returns:
TransformPointTo = FormerTransform.TransformPointTo(m_pTransform.TransformPointTo) = FormerTransform * m_pTransform(from)
bool zxhMetricBase::SetImageModelingType ( zxhImageModelingBase pModelingTest,
zxhImageModelingBase pModelingRef 
) [virtual]
Returns:
clone modeling type; not setting pointers
bool zxhMetricBase::SetMaskImage ( zxhImageData pMaskTest,
zxhImageData pMaskRef 
) [virtual]
Returns:
resize mask image to test and ref coordinate

Reimplemented in zxhMetricPhaseLocalMatrixConstDiscretePath.

bool zxhMetricBase::SetMetricFromStream ( std::ifstream &  ifs) [virtual]
Returns:

Reimplemented in zxhMetricJE, zxhMetricMI, and zxhMetricNV.

void zxhMetricBase::SetSamplingPhysical ( float  x,
float  y = 1.0f,
float  z = 1.0f,
float  t = 1.0f 
) [virtual]
Returns:
DoNOT allowed sampling virtual void SetSamplingInterval(float x,float y=1.0f,float z=1.0f,float t=1.0f);
sampling

Reimplemented in zxhMetricMIFFD2MultiImage, and zxhMetricMIMultiImage.

virtual bool zxhMetricBase::SetTransform ( zxhTransformBase pTr) [inline, virtual]
Returns:

Reimplemented in zxhMetricMIFFD2MultiImage, and zxhMetricMIMultiImage.

virtual void zxhMetricBase::SetWeightModelRef ( zxhImageModelingBaseT< float, float > *  p) [inline, virtual]
Returns:
bool zxhMetricBase::TransformPointTo ( float *  from,
float *  to 
) [protected, virtual]

collected transformations sum current transform TC with former sum transform TF to a new former transform TS = TC*TF(X) return transform to out lier of ref image ?

virtual bool zxhMetricBase::TransformPointToWorldUsingPreComputed ( int  x,
int  y,
int  z,
int  t,
float  wto[] 
) [inline, protected, virtual]

return inside the m_aimgPreComputeTransformToWorld[ImageDimensionMax] be careful: NOT return is out lier to ref image


Member Data Documentation

int zxhMetricBase::m_iDimension [protected]
Returns:
Returns:
this transform is used as pre-transformation which can be any transformation type, but due practical reason, normally it is zxhTransformFields derived from displacements of former registration steps results T(X) = Tcurr(Tforwardcomposed(X) )
Returns:
Returns:
mask image for computing similarity, if intensity > ZXH_Mask then compute similarity
Returns:
Returns:

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