#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 108 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 116 of file itkCompositeValleyFunction.h.
Cost value type.
Definition at line 115 of file itkCompositeValleyFunction.h.
Superclass to this class.
Definition at line 112 of file itkCompositeValleyFunction.h.
itk::CompositeValleyFunction::CompositeValleyFunction | ( | const MeasureArrayType & | classMeans, |
const MeasureArrayType & | classSigmas ) |
Constructor.
|
override |
Destructor.
|
inlineprotected |
Definition at line 169 of file itkCompositeValleyFunction.h.
References m_Targets.
|
overridevirtual |
Evaluate the function at point x.
Reimplemented from itk::CacheableScalarFunction.
Referenced by operator()().
|
inline |
Get energy table's lower bound.
Definition at line 133 of file itkCompositeValleyFunction.h.
References m_LowerBound.
|
inline |
Get energy table's higher bound.
Definition at line 126 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 141 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 162 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 190 of file itkCompositeValleyFunction.h.
Referenced by GetLowerBound(), and operator()().
|
private |
Storage for tissue classes' statistics.
Definition at line 182 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 186 of file itkCompositeValleyFunction.h.
Referenced by GetUpperBound(), and operator()().