Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::CompositeValleyFunction Class Reference

#include <itkCompositeValleyFunction.h>

Inheritance diagram for itk::CompositeValleyFunction:

Inheritance graph
Collaboration diagram for itk::CompositeValleyFunction:

Collaboration graph
List of all members.

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 implementaion that was initially developed and implemented by Martin Styner, Univ. of North Carolina at Chapel Hill, and his colleagues.

For more details. refer to the following articles. "Parametric estimate of intensity inhomogeneities applied to MRI" Martin Styner, G. Gerig, Christian Brechbuehler, Gabor Szekely, IEEE TRANSACTIONS ON MEDICAL IMAGING; 19(3), pp. 153-165, 2000, (

"Evaluation of 2D/3D bias correction with 1+1ES-optimization" Martin Styner, Prof. Dr. G. Gerig (IKT, BIWI, ETH Zuerich), TR-197 (

Definition at line 96 of file itkCompositeValleyFunction.h.

Public Types

typedef Superclass::MeasureArrayType MeasureArrayType
typedef Superclass::MeasureType MeasureType
typedef CacheableScalarFunction Superclass

Public Member Functions

 CompositeValleyFunction (const MeasureArrayType &classMeans, const MeasureArrayType &classSigmas)
virtual MeasureType Evaluate (MeasureType x)
MeasureType Evaluate (MeasureType x)
double GetCacheLowerBound ()
double GetCacheUpperBound ()
double GetInterval ()
double GetLowerBound ()
long GetNumberOfSamples ()
double GetUpperBound ()
bool IsCacheAvailable ()
MeasureType operator() (MeasureType x)
MeasureType valley (MeasureType d)
virtual ~CompositeValleyFunction ()
MeasureType GetCachedValue (MeasureType x)

Protected Member Functions

void AddNewClass (double mean, double sigma)
void CreateCache (double lowerBound, double upperBound, long sampleSize)
void Initialize ()

Member Typedef Documentation

typedef Superclass::MeasureArrayType itk::CompositeValleyFunction::MeasureArrayType

Reimplemented from itk::CacheableScalarFunction.

Definition at line 105 of file itkCompositeValleyFunction.h.

typedef Superclass::MeasureType itk::CompositeValleyFunction::MeasureType

Cost value type.

Reimplemented from itk::CacheableScalarFunction.

Definition at line 104 of file itkCompositeValleyFunction.h.

typedef CacheableScalarFunction itk::CompositeValleyFunction::Superclass

Superclass to this class.

Definition at line 101 of file itkCompositeValleyFunction.h.

Constructor & Destructor Documentation

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


virtual itk::CompositeValleyFunction::~CompositeValleyFunction (  )  [inline, virtual]


Definition at line 112 of file itkCompositeValleyFunction.h.

Member Function Documentation

void itk::CompositeValleyFunction::AddNewClass ( double  mean,
double  sigma 
) [inline, protected]

Definition at line 160 of file itkCompositeValleyFunction.h.

void itk::CacheableScalarFunction::CreateCache ( double  lowerBound,
double  upperBound,
long  sampleSize 
) [protected, inherited]

Create the internal cache table and fill it with pre-evaluated values.

virtual MeasureType itk::CacheableScalarFunction::Evaluate ( MeasureType  x  )  [inline, virtual, inherited]

y = f(x) Subclasses of this class should override this member function to provide their own functional operation .

Definition at line 84 of file itkCacheableScalarFunction.h.

MeasureType itk::CompositeValleyFunction::Evaluate ( MeasureType  x  )  [inline]

Evalaute the function at point x.

Definition at line 140 of file itkCompositeValleyFunction.h.

References valley().

MeasureType itk::CacheableScalarFunction::GetCachedValue ( MeasureType  x  )  [inline, inherited]

y = f(x) = (approximately) cache_table(index(x)) Get the function return using the internal cache table NOTE: Since the index calculation needs conversion from double to int, truncation happens. As a result, the return values from Evaluate(x) and GetCachedValue(x) may not be same for the same x.

Definition at line 96 of file itkCacheableScalarFunction.h.

Referenced by operator()().

double itk::CacheableScalarFunction::GetCacheLowerBound (  )  [inline, inherited]

Get the lower-bound of domain that is used for filling the cache table.

Definition at line 79 of file itkCacheableScalarFunction.h.

double itk::CacheableScalarFunction::GetCacheUpperBound (  )  [inline, inherited]

Get the upper-bound of domain that is used for filling the cache table.

Definition at line 76 of file itkCacheableScalarFunction.h.

double itk::CacheableScalarFunction::GetInterval (  )  [inline, inherited]

Gets the interval of each cell between the upper and lower bound

Definition at line 88 of file itkCacheableScalarFunction.h.

double itk::CompositeValleyFunction::GetLowerBound (  )  [inline]

Get energy table's lower bound.

Definition at line 118 of file itkCompositeValleyFunction.h.

long itk::CacheableScalarFunction::GetNumberOfSamples ( void   )  [inline, inherited]

Get the number of samples between the lower-bound and upper-bound of the cache table.

Definition at line 70 of file itkCacheableScalarFunction.h.

double itk::CompositeValleyFunction::GetUpperBound (  )  [inline]

Get energy table's higher bound.

Definition at line 115 of file itkCompositeValleyFunction.h.

void itk::CompositeValleyFunction::Initialize (  )  [protected]

calculate and save energy values

bool itk::CacheableScalarFunction::IsCacheAvailable (  )  [inline, inherited]

Check if the internal cache table and its values are valid.

Definition at line 73 of file itkCacheableScalarFunction.h.

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 122 of file itkCompositeValleyFunction.h.

References itk::CacheableScalarFunction::GetCachedValue().

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

Get an energy value for the valley.

Definition at line 154 of file itkCompositeValleyFunction.h.

Referenced by Evaluate().

The documentation for this class was generated from the following file:
Generated at Thu Nov 6 03:22:22 2008 for ITK by doxygen 1.5.1 written by Dimitri van Heesch, © 1997-2000