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

itk::CompositeValleyFunction Class Reference

Multiple valley shaped curve function. More...

#include <itkCompositeValleyFunction.h>

Inheritance diagram for itk::CompositeValleyFunction:

Inheritance graph
[legend]
Collaboration diagram for itk::CompositeValleyFunction:

Collaboration graph
[legend]

List of all members.

Public Types

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

Public Member Functions

 CompositeValleyFunction (const MeasureArrayType &classMeans, const MeasureArrayType &classSigmas)
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 ()


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, (http://www.cs.unc.edu/~styner/docs/tmi00.pdf)

"Evaluation of 2D/3D bias correction with 1+1ES-optimization" Martin Styner, Prof. Dr. G. Gerig (IKT, BIWI, ETH Zuerich), TR-197 (http://www.cs.unc.edu/~styner/docs/StynerTR97.pdf)

Definition at line 96 of file itkCompositeValleyFunction.h.


Member Typedef Documentation

Reimplemented from itk::CacheableScalarFunction.

Definition at line 105 of file itkCompositeValleyFunction.h.

Cost value type.

Reimplemented from itk::CacheableScalarFunction.

Definition at line 104 of file itkCompositeValleyFunction.h.

Superclass to this class.

Definition at line 101 of file itkCompositeValleyFunction.h.


Constructor & Destructor Documentation

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

Constructor.

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

Destructor.

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.

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

Evalaute the function at point x.

Reimplemented from itk::CacheableScalarFunction.

Definition at line 140 of file itkCompositeValleyFunction.h.

References valley().

Referenced by operator()().

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 (  )  [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.

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

References Evaluate(), itk::CacheableScalarFunction::GetCachedValue(), and itk::CacheableScalarFunction::IsCacheAvailable().

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 Tue Sep 15 07:18:18 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000