zxhproj v 2.2
zxhproj

zxhMetricNV Class Reference

zxhMetricNV.h: interface for the zxhMetricNV class. metric=1/|v| * sum(cos2) 使用该类需要: setImage 初始化参数: pInterpolator,m_pTransform only for rigid transformation **** TODO NOT implemented in v2.1 zxhtod More...

#include <zxhMetricNV.h>

Inheritance diagram for zxhMetricNV:
zxhMetricBase zxhMetricFFDBase

List of all members.

Public Member Functions

 zxhMetricNV ()
 constructor
virtual ~zxhMetricNV ()
 destructor
virtual std::string GetMetricType ()
 GetMetricType()=0.
virtual zxhMetricBaseClone (zxhMetricBase *&pRet)
virtual std::string GetPrintString ()
virtual bool SetMetricFromStream (std::ifstream &ifs)
virtual int GetValue (zxhlfloat &fValue)
virtual bool SetImage (zxhImageData *pImageTest, zxhImageData *pImageRef)
virtual int GetValueByFFDGrid (zxhlfloat &fValue, int aiCtrPnt[ImageDimensionMax])
virtual int GetValueFromRegion (zxhlfloat &fValue, float xfWorldFrom, float xfWorldTo, float yfWorldFrom, float yfWorldTo, float zfWorldFrom, float zfWorldTo, float tfWorldFrom, float tfWorldTo)
virtual int ComputeConstanceForFFDGradient ()
virtual int GetDiffByFFDGrid (float *afPD, zxhTransformFFDBase *pFFDGrid, int *aiCtrPnt, zxhTransformFFDBase *pDifferential)
virtual int GetDiffByFFDGridOnFFDPhysicalVector (float *afPD, zxhTransformFFDBase *pFFDGrid, int *aiCtrPnt, zxhTransformFFDBase *pDifferential, float *vector)
 currently using finite difference(no AddFiniteDiffPenaltyByFFDGrid yet)
virtual void SetSingleModality (bool b)
virtual bool GetSingleModality ()
zxhImageDataT< float > * testGetLEMvoxelForceImage ()
void testSetNoiseLevel (float f)

Protected Member Functions

virtual void SetFFDMetricBase ()
 this function is to remind of setting m_pMetricBase in non-abstract derived class
virtual void InverseTransformIntensityGradientVector (float fVectorRef[ImageDimensionMax], float fInverseVectorTest[ImageDimensionMax], float *fWorldTest)
virtual void TransformIntensityGradientVectorTo (float fVectorFrom[ImageDimensionMax], float fVectorTo[ImageDimensionMax], float *fWorldFrom)
virtual bool ComputeSigmaFromImageIntensity ()
virtual float ComputeConsineThetaAndConfidenceFunction (float gv1[], float gv2[])

Protected Attributes

zxhImageDataT< float > m_imgVoxelForces [ImageDimensionMax]
float m_fSquareSigma [2]
float m_fStaticNoiseLevel
bool m_bSingleModalityRegistration
 yes a=1, no a=2 in [F(x)*cos]^a,

Detailed Description

zxhMetricNV.h: interface for the zxhMetricNV class. metric=1/|v| * sum(cos2) 使用该类需要: setImage 初始化参数: pInterpolator,m_pTransform only for rigid transformation **** TODO NOT implemented in v2.1 zxhtod


Member Function Documentation

zxhMetricBase * zxhMetricNV::Clone ( zxhMetricBase *&  pRet) [virtual]
Returns:

Reimplemented from zxhMetricBase.

virtual int zxhMetricNV::ComputeConstanceForFFDGradient ( ) [inline, virtual]

Consider checking: Mask images, within Ref image volume, and ROI, outside all zeros will compute values of m_imgVoxelForces

Implements zxhMetricFFDBase.

virtual int zxhMetricNV::GetDiffByFFDGrid ( float *  afPD,
zxhTransformFFDBase pFFDGrid,
int *  aiCtrPnt,
zxhTransformFFDBase pDifferential 
) [inline, virtual]

Consider checking when weighted sum-up: None, because outliers all zeros

Reimplemented from zxhMetricFFDBase.

virtual int zxhMetricNV::GetDiffByFFDGridOnFFDPhysicalVector ( float *  afPD,
zxhTransformFFDBase pFFDGrid,
int *  aiCtrPnt,
zxhTransformFFDBase pDifferential,
float *  vector 
) [inline, virtual]

currently using finite difference(no AddFiniteDiffPenaltyByFFDGrid yet)

1 compute the current trans on current local volume : FreqCurr, PDFCurr = tatal - currentvolume

2 forward

3 backward

4 return to current position

compute the value

Reimplemented from zxhMetricFFDBase.

virtual std::string zxhMetricNV::GetPrintString ( ) [inline, virtual]
Returns:

Reimplemented from zxhMetricBase.

virtual int zxhMetricNV::GetValue ( zxhlfloat &  fValue) [inline, virtual]
Returns:

Implements zxhMetricBase.

virtual int zxhMetricNV::GetValueByFFDGrid ( zxhlfloat &  fValue,
int  aiCtrPnt[ImageDimensionMax] 
) [inline, virtual]

for GetDiffByFFDGrid and GetDiffByFFDGridOnFFDPhysicalVector SHOULD be implemented in derived class when using zxhMetricFFDBase::GetDiffByFFDGrid and GetDiffByFFDGridOnFFDPhysicalVector To compute local similarity

Implements zxhMetricFFDBase.

virtual int zxhMetricNV::GetValueFromRegion ( zxhlfloat &  fValue,
float  xfWorldFrom,
float  xfWorldTo,
float  yfWorldFrom,
float  yfWorldTo,
float  zfWorldFrom,
float  zfWorldTo,
float  tfWorldFrom,
float  tfWorldTo 
) [inline, virtual]

Consider checking: Mask images, within Ref image volume; NOT checking: ROI used in GetValueByFFDGrid and GetValue

virtual bool zxhMetricNV::SetImage ( zxhImageData pImageTest,
zxhImageData pImageRef 
) [inline, virtual]
Returns:
virtual bool zxhMetricNV::SetMetricFromStream ( std::ifstream &  ifs) [inline, virtual]
Returns:

Reimplemented from zxhMetricBase.


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