![]() |
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