23 #ifndef otbCzihoSOMLearningBehaviorFunctor_h
24 #define otbCzihoSOMLearningBehaviorFunctor_h
84 template <
unsigned int VDimension>
87 double V0 =
static_cast<double>(sizeInit[0]);
88 for (
unsigned int i = 1; i < VDimension; ++i)
90 if (V0 <
static_cast<double>(sizeInit[i]))
91 V0 =
static_cast<double>(sizeInit[i]);
94 m_IterationThreshold =
static_cast<unsigned int>(
static_cast<double>(iterMax) * (1.0 - 1.0 / ::std::sqrt(V0)));
98 virtual double operator()(
unsigned int currentIteration,
unsigned int numberOfIterations,
double betaInit,
double betaEnd)
const
102 return betaInit * (1.0 -
static_cast<double>(currentIteration) /
static_cast<double>(numberOfIterations));
Beta behavior over SOM training phase.
CzihoSOMLearningBehaviorFunctor()
virtual ~CzihoSOMLearningBehaviorFunctor()
void SetIterationThreshold(const itk::Size< VDimension > &sizeInit, unsigned int iterMax)
unsigned int m_IterationThreshold
virtual double operator()(unsigned int currentIteration, unsigned int numberOfIterations, double betaInit, double betaEnd) const
unsigned int GetIterationThreshold()
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.