#include <itkCompositeValleyFunction.h>
Multiple valley shaped curve function.
Its functional form f(x) is : sum (valley( (x - mean[i]) / sigma[i] ) ) over i from 0 to the number of target classes where valley(x) = 1 - 1 / (1 + x^2 / 3)
The plotting of the function return shows multiple lowest points at each mean[i] position. There are two more important shape parameters for this function, higher-bound and lower-bound. Upper-bound will be highest mean value among target classes' means + its sigma value * 9, and lower-bound will be lowest mean value among target classes' means - its sigma value * 9
For example, if there are two target classes with their means at 4 and 6. The plotting may look like the following:
| |********* ****** | * * | * * * | * * * * | * * * * | * * * * | * * —+--—+---—*---—*----— | 2 4 6 |
This is a part of the bias correction methods and implementation that was initially developed and implemented by Martin Styner, Univ. of North Carolina at Chapel Hill, and his colleagues.
For more details refer to [122] and [121].
Definition at line 107 of file itkCompositeValleyFunction.h.
Public Types | |
using | MeasureArrayType = Superclass::MeasureArrayType |
using | MeasureType = Superclass::MeasureType |
using | Superclass = CacheableScalarFunction |
![]() | |
using | MeasureArrayType = Array<MeasureType> |
using | MeasureType = double |
Public Member Functions | |
CompositeValleyFunction (const MeasureArrayType &classMeans, const MeasureArrayType &classSigmas) | |
MeasureType | Evaluate (MeasureType x) override |
double | GetLowerBound () const |
double | GetUpperBound () const |
MeasureType | operator() (MeasureType x) |
MeasureType | valley (MeasureType d) |
~CompositeValleyFunction () override | |
![]() | |
CacheableScalarFunction () | |
MeasureType | GetCachedValue (MeasureType x) |
double | GetCacheLowerBound () const |
double | GetCacheUpperBound () const |
double | GetInterval () const |
SizeValueType | GetNumberOfSamples () const |
bool | IsCacheAvailable () const |
virtual | ~CacheableScalarFunction () |
Protected Member Functions | |
void | AddNewClass (double mean, double sigma) |
void | Initialize () |
![]() | |
void | CreateCache (double lowerBound, double upperBound, SizeValueType sampleSize) |
Private Attributes | |
double | m_LowerBound {} |
std::vector< TargetClass > | m_Targets {} |
double | m_UpperBound {} |
Definition at line 115 of file itkCompositeValleyFunction.h.
Cost value type.
Definition at line 114 of file itkCompositeValleyFunction.h.
Superclass to this class.
Definition at line 111 of file itkCompositeValleyFunction.h.
itk::CompositeValleyFunction::CompositeValleyFunction | ( | const MeasureArrayType & | classMeans, |
const MeasureArrayType & | classSigmas ) |
Constructor.
|
override |
Destructor.
|
inlineprotected |
Definition at line 168 of file itkCompositeValleyFunction.h.
References m_Targets.
|
overridevirtual |
Evaluate the function at point x.
Reimplemented from itk::CacheableScalarFunction.
Referenced by operator()().
|
inlinenodiscard |
Get energy table's lower bound.
Definition at line 132 of file itkCompositeValleyFunction.h.
References m_LowerBound.
|
inlinenodiscard |
Get energy table's higher bound.
Definition at line 125 of file itkCompositeValleyFunction.h.
References m_UpperBound.
|
protected |
calculate and save energy values
|
inline |
Gets an energy value for the intensity difference between a pixel and its corresponding bias.
Definition at line 140 of file itkCompositeValleyFunction.h.
References Evaluate(), itk::CacheableScalarFunction::GetCachedValue(), itk::CacheableScalarFunction::IsCacheAvailable(), m_LowerBound, and m_UpperBound.
|
inline |
Get an energy value for the valley.
Definition at line 161 of file itkCompositeValleyFunction.h.
|
private |
The lowest mean value - the sigma of the tissue class which has the lowest mean value * 9.
Definition at line 189 of file itkCompositeValleyFunction.h.
Referenced by GetLowerBound(), and operator()().
|
private |
Storage for tissue classes' statistics.
Definition at line 181 of file itkCompositeValleyFunction.h.
Referenced by AddNewClass().
|
private |
The highest mean value + the sigma of the tissue class which has the highest mean value * 9.
Definition at line 185 of file itkCompositeValleyFunction.h.
Referenced by GetUpperBound(), and operator()().