ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itk::CompositeValleyFunction Class Reference

#include <itkCompositeValleyFunction.h>

Detailed Description

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.

+ Inheritance diagram for itk::CompositeValleyFunction:
+ Collaboration diagram for itk::CompositeValleyFunction:

Public Types

using MeasureArrayType = Superclass::MeasureArrayType
 
using MeasureType = Superclass::MeasureType
 
using Superclass = CacheableScalarFunction
 
- Public Types inherited from itk::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
 
- Public Member Functions inherited from itk::CacheableScalarFunction
 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 ()
 
- Protected Member Functions inherited from itk::CacheableScalarFunction
void CreateCache (double lowerBound, double upperBound, SizeValueType sampleSize)
 

Private Attributes

double m_LowerBound {}
 
std::vector< TargetClassm_Targets {}
 
double m_UpperBound {}
 

Member Typedef Documentation

◆ MeasureArrayType

◆ MeasureType

◆ Superclass

Constructor & Destructor Documentation

◆ CompositeValleyFunction()

itk::CompositeValleyFunction::CompositeValleyFunction ( const MeasureArrayType & classMeans,
const MeasureArrayType & classSigmas )

Constructor.

◆ ~CompositeValleyFunction()

itk::CompositeValleyFunction::~CompositeValleyFunction ( )
override

Destructor.

Member Function Documentation

◆ AddNewClass()

void itk::CompositeValleyFunction::AddNewClass ( double mean,
double sigma )
inlineprotected

Definition at line 169 of file itkCompositeValleyFunction.h.

References m_Targets.

◆ Evaluate()

MeasureType itk::CompositeValleyFunction::Evaluate ( MeasureType x)
overridevirtual

Evaluate the function at point x.

Reimplemented from itk::CacheableScalarFunction.

Referenced by operator()().

◆ GetLowerBound()

double itk::CompositeValleyFunction::GetLowerBound ( ) const
inline

Get energy table's lower bound.

Definition at line 133 of file itkCompositeValleyFunction.h.

References m_LowerBound.

◆ GetUpperBound()

double itk::CompositeValleyFunction::GetUpperBound ( ) const
inline

Get energy table's higher bound.

Definition at line 126 of file itkCompositeValleyFunction.h.

References m_UpperBound.

◆ Initialize()

void itk::CompositeValleyFunction::Initialize ( )
protected

calculate and save energy values

◆ operator()()

MeasureType itk::CompositeValleyFunction::operator() ( MeasureType x)
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.

◆ valley()

MeasureType itk::CompositeValleyFunction::valley ( MeasureType d)
inline

Get an energy value for the valley.

Definition at line 162 of file itkCompositeValleyFunction.h.

Member Data Documentation

◆ m_LowerBound

double itk::CompositeValleyFunction::m_LowerBound {}
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()().

◆ m_Targets

std::vector<TargetClass> itk::CompositeValleyFunction::m_Targets {}
private

Storage for tissue classes' statistics.

Definition at line 182 of file itkCompositeValleyFunction.h.

Referenced by AddNewClass().

◆ m_UpperBound

double itk::CompositeValleyFunction::m_UpperBound {}
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()().


The documentation for this class was generated from the following file: