zxhproj v 2.2
zxhproj
|
optimizers search for the optimal value of the metric within the transformation follow gradient direction More...
#include <zxhOptimizerGradient.h>
Public Member Functions | |
zxhOptimizerGradient (void) | |
constructor | |
~zxhOptimizerGradient (void) | |
deconstructor | |
virtual void | SetTransform (zxhTransformBase *p) |
will new a gradient type using transformation type | |
virtual void | SetGradientClassUsingObjectType (zxhTransformBase *pClassObject) |
set gradient type | |
virtual std::string | GetPrintString () |
virtual bool | SetOptimizerFromStream (std::ifstream &ifs) |
from stream | |
virtual zxhOptimizerBase * | Clone (zxhOptimizerBase *&pRet) |
virtual void | SetRegularRate (float f) |
gradient optimizer property | |
virtual float | GetRegularRate (void) |
get | |
virtual void | SetSearchLength (float f) |
set | |
virtual float | GetSearchLength (void) |
get | |
virtual void | SetRegularMinStepLength (float f) |
set | |
virtual float | GetRegularMinStepLength (void) |
get | |
virtual void | SetRegriddingPortion (float f) |
set | |
virtual float | GetRegriddingPortion (void) |
get | |
virtual void | Run () |
for running registration to search optimal | |
virtual float | AdvanceAlongGradient (zxhTransformBase *pGradientInfCur) |
return no. of steps advanced (may advance fractional steps in future) | |
virtual void | SetSearchOptimalAlongGradient (int i) |
virtual int | GetSearchOptimalAlongGradient () |
virtual void | SetMaxLineSearchStep (int n) |
virtual int | GetMaxLineSearchStep () |
virtual bool | AdjustParameters (bool forceconcatenation=false) |
virtual bool | ConcatenateTransforms () |
this is fluid regridding or ( forward composition in localmatrix) | |
virtual bool | ConcatenateFinalTransforms () |
virtual bool | ConcatenateTransformsNUpdate () |
Protected Member Functions | |
virtual float | ComputeAndUpdateConjugateDirection (zxhTransformBase *gk_1, zxhTransformBase *gk, zxhTransformBase *dk_1, zxhTransformBase *dk) |
g(k-1),g(k), d(k-1), d(k) from TMI, vol16,no12,pp2879 | |
Protected Attributes | |
zxhGradientBase * | m_pGradient |
float | m_fRegularRate |
float | m_fSearchLength |
float | m_fRegularMinStepLength |
float | m_fRegriddingPortion |
int | m_iSearchOptimalAlongGradient |
int | m_nMaxLineSearchStep |
optimizers search for the optimal value of the metric within the transformation follow gradient direction
bool zxhOptimizerGradient::AdjustParameters | ( | bool | forceconcatenation = false | ) | [virtual] |
adjust transform, metric, gradient, differentialstep, ...., Concatenation 1) normal FFDs one2one or ZXHTO test jacobian 2) directional FFDs (set m_pConcatenatedTransformsByRegridding ) return whether regridding
Reimplemented in zxhOptimizerGradientLocalAffines.
zxhOptimizerBase * zxhOptimizerGradient::Clone | ( | zxhOptimizerBase *& | pRet | ) | [virtual] |
Reimplemented from zxhOptimizerBase.
Reimplemented in zxhOptimizerGradientField, zxhOptimizerGradientLocalAffines, and zxhOptimizerGradientLocalMatrix.
std::string zxhOptimizerGradient::GetPrintString | ( | ) | [virtual] |
virtual int zxhOptimizerGradient::GetSearchOptimalAlongGradient | ( | ) | [inline, virtual] |
0 only advance one step --- defaul 1 advance one step and then forward search until maximal without setting m_bStop 2 search optimal along the gradient and set m_bStop if curr is optimum
void zxhOptimizerGradient::Run | ( | ) | [virtual] |
for running registration to search optimal
1. check to stop if non-increase for some steps
2. compute gradient
3. regular gradient ascent
5. advance along gradient
4. normalise gradient for heart reg
Implements zxhOptimizerBase.
Reimplemented in zxhOptimizerGradientField, and zxhOptimizerGradientLocalAffines.
virtual void zxhOptimizerGradient::SetSearchOptimalAlongGradient | ( | int | i | ) | [inline, virtual] |
0 only advance one step --- defaul 1 advance one step and then forward search until maximal without setting m_bStop 2 search optimal along the gradient and set m_bStop if curr is optimum
float zxhOptimizerGradient::m_fRegriddingPortion [protected] |
float zxhOptimizerGradient::m_fRegularMinStepLength [protected] |
float zxhOptimizerGradient::m_fRegularRate [protected] |
float zxhOptimizerGradient::m_fSearchLength [protected] |
int zxhOptimizerGradient::m_iSearchOptimalAlongGradient [protected] |
0 only advance one step --- defaul 1 advance one step and then forward search until maximal without setting m_bStop 2 search optimal along the gradient and set m_bStop if curr is optimum