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.