![]()  | 
  
    zxhproj v 2.2 
   zxhproj 
   | 
 
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>
  
 Public Member Functions | |
| zxhMetricNV () | |
| constructor  | |
| virtual | ~zxhMetricNV () | 
| destructor  | |
| virtual std::string | GetMetricType () | 
| GetMetricType()=0.  | |
| virtual zxhMetricBase * | Clone (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,  | |
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
| zxhMetricBase * zxhMetricNV::Clone | ( | zxhMetricBase *& | pRet | ) |  [virtual] | 
        
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] | 
        
Reimplemented from zxhMetricBase.
| virtual int zxhMetricNV::GetValue | ( | zxhlfloat & | fValue | ) |  [inline, virtual] | 
        
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] | 
        
| virtual bool zxhMetricNV::SetMetricFromStream | ( | std::ifstream & | ifs | ) |  [inline, virtual] | 
        
Reimplemented from zxhMetricBase.