Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
itk::OrientationDistributionFunction< TComponent, NOdfDirections > Class Template Reference

Represents an ODF for Q-Ball imaging. More...

#include <itkOrientationDistributionFunction.h>

Inheritance diagram for itk::OrientationDistributionFunction< TComponent, NOdfDirections >:
Collaboration diagram for itk::OrientationDistributionFunction< TComponent, NOdfDirections >:

Public Types

enum  InterpolationMethods { ODF_NEAREST_NEIGHBOR_INTERP, ODF_TRILINEAR_BARYCENTRIC_INTERP, ODF_SPHERICAL_GAUSSIAN_BASIS_FUNCTIONS }
 
typedef OrientationDistributionFunction Self
 
typedef FixedArray< TComponent, NOdfDirections > Superclass
 
typedef FixedArray< TComponent, itkGetStaticConstMacro(InternalDimension)> BaseArray
 
typedef TComponent ComponentType
 
typedef Superclass::ValueType ValueType
 
typedef NumericTraits< ValueType >::RealType AccumulateValueType
 
typedef NumericTraits< ValueType >::RealType RealValueType
 
typedef Matrix< TComponent, NOdfDirections, NOdfDirections > MatrixType
 
typedef vnl_matrix_fixed< double, 3, NOdfDirections > DirectionsType
 
typedef ComponentType ComponentArrayType[itkGetStaticConstMacro(InternalDimension)]
 

Public Member Functions

 itkStaticConstMacro (InternalDimension, unsigned int, NOdfDirections)
 
 OrientationDistributionFunction ()
 
 OrientationDistributionFunction (const ComponentType &r)
 
 OrientationDistributionFunction (const Self &r)
 
 OrientationDistributionFunction (const ComponentArrayType r)
 
Selfoperator= (const Self &r)
 
Selfoperator= (const ComponentType &r)
 
Selfoperator= (const ComponentArrayType r)
 
Self operator+ (const Self &vec) const
 
Self operator- (const Self &vec) const
 
const Selfoperator+= (const Self &vec)
 
const Selfoperator-= (const Self &vec)
 
Self operator* (const RealValueType &scalar) const
 
Self operator/ (const RealValueType &scalar) const
 
const Selfoperator*= (const RealValueType &scalar)
 
const Selfoperator/= (const RealValueType &scalar)
 
ComponentType GetNthComponent (int c) const
 
ComponentType GetInterpolatedComponent (vnl_vector_fixed< double, 3 > dir, InterpolationMethods method) const
 
void SetNthComponent (int c, const ComponentType &v)
 
ValueTypeoperator() (unsigned int row, unsigned int col)
 
const ValueTypeoperator() (unsigned int row, unsigned int col) const
 
void SetIsotropic ()
 
void InitFromTensor (itk::DiffusionTensor3D< TComponent > tensor)
 
void InitFromEllipsoid (itk::DiffusionTensor3D< TComponent > tensor)
 
Self PreMultiply (const MatrixType &m) const
 
Self PostMultiply (const MatrixType &m) const
 
void Normalize ()
 
Self MinMaxNormalize () const
 
Self MaxNormalize () const
 
void L2Normalize ()
 
int GetPrincipleDiffusionDirection () const
 
int GetNthDiffusionDirection (int n, vnl_vector_fixed< double, 3 > rndVec) const
 
TComponent GetGeneralizedFractionalAnisotropy () const
 
TComponent GetGeneralizedGFA (int k, int p) const
 
TComponent GetNormalizedEntropy () const
 
TComponent GetNematicOrderParameter () const
 
TComponent GetStdDevByMaxValue () const
 
ComponentType GetMaxValue () const
 
ComponentType GetMinValue () const
 
ComponentType GetMeanValue () const
 
TComponent GetPrincipleCurvature (double alphaMinDegree, double alphaMaxDegree, int invert) const
 

Static Public Member Functions

static DirectionsTypeGetDirections ()
 
static unsigned int GetNumberOfComponents ()
 
static std::vector< int > GetNeighbors (int idx)
 
static vtkPolyData * GetBaseMesh ()
 
static void ComputeBaseMesh ()
 
static double GetMaxChordLength ()
 
static vnl_vector_fixed< double, 3 > GetDirection (int i)
 

Detailed Description

template<typename TComponent, unsigned int NOdfDirections>
class itk::OrientationDistributionFunction< TComponent, NOdfDirections >

Represents an ODF for Q-Ball imaging.

Reference: David S. Tuch, Q-ball imaging, Magnetic Resonance in Medicine Volume 52 Issue 6, Pages 1358 - 1372

Author
Klaus Fritzsche, MBI

Definition at line 50 of file itkOrientationDistributionFunction.h.

Member Typedef Documentation

template<typename TComponent, unsigned int NOdfDirections>
typedef NumericTraits<ValueType>::RealType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::AccumulateValueType

Definition at line 75 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef FixedArray<TComponent, itkGetStaticConstMacro(InternalDimension)> itk::OrientationDistributionFunction< TComponent, NOdfDirections >::BaseArray

Convenience typedefs.

Definition at line 70 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef ComponentType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::ComponentArrayType[itkGetStaticConstMacro(InternalDimension)]

Definition at line 87 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::ComponentType

Define the component type.

Definition at line 73 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef vnl_matrix_fixed<double, 3, NOdfDirections> itk::OrientationDistributionFunction< TComponent, NOdfDirections >::DirectionsType

Definition at line 80 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef Matrix<TComponent, NOdfDirections, NOdfDirections> itk::OrientationDistributionFunction< TComponent, NOdfDirections >::MatrixType

Definition at line 78 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef NumericTraits<ValueType>::RealType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::RealValueType

Definition at line 76 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef OrientationDistributionFunction itk::OrientationDistributionFunction< TComponent, NOdfDirections >::Self

Standard class typedefs.

Definition at line 62 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef FixedArray<TComponent,NOdfDirections> itk::OrientationDistributionFunction< TComponent, NOdfDirections >::Superclass

Definition at line 63 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
typedef Superclass::ValueType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::ValueType

Definition at line 74 of file itkOrientationDistributionFunction.h.

Member Enumeration Documentation

template<typename TComponent, unsigned int NOdfDirections>
enum itk::OrientationDistributionFunction::InterpolationMethods
Enumerator
ODF_NEAREST_NEIGHBOR_INTERP 
ODF_TRILINEAR_BARYCENTRIC_INTERP 
ODF_SPHERICAL_GAUSSIAN_BASIS_FUNCTIONS 

Definition at line 55 of file itkOrientationDistributionFunction.h.

Constructor & Destructor Documentation

template<typename TComponent, unsigned int NOdfDirections>
itk::OrientationDistributionFunction< TComponent, NOdfDirections >::OrientationDistributionFunction ( )
inline

Default constructor has nothing to do.

Definition at line 83 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
itk::OrientationDistributionFunction< TComponent, NOdfDirections >::OrientationDistributionFunction ( const ComponentType r)
inline

Definition at line 85 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
itk::OrientationDistributionFunction< TComponent, NOdfDirections >::OrientationDistributionFunction ( const Self r)
inline

Pass-through constructor for the Array base class.

Definition at line 90 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
itk::OrientationDistributionFunction< TComponent, NOdfDirections >::OrientationDistributionFunction ( const ComponentArrayType  r)
inline

Definition at line 91 of file itkOrientationDistributionFunction.h.

Member Function Documentation

template<typename TComponent, unsigned int NOdfDirections>
static void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::ComputeBaseMesh ( )
static
template<typename TComponent, unsigned int NOdfDirections>
static vtkPolyData* itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetBaseMesh ( )
inlinestatic
template<typename TComponent, unsigned int NOdfDirections>
static DirectionsType* itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetDirections ( )
inlinestatic
template<typename TComponent, unsigned int NOdfDirections>
TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetGeneralizedFractionalAnisotropy ( ) const
template<typename TComponent, unsigned int NOdfDirections>
TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetGeneralizedGFA ( int  k,
int  p 
) const
template<typename TComponent, unsigned int NOdfDirections>
ComponentType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetInterpolatedComponent ( vnl_vector_fixed< double, 3 >  dir,
InterpolationMethods  method 
) const

Return the value for the Nth component.

template<typename TComponent, unsigned int NOdfDirections>
static double itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetMaxChordLength ( )
static
template<typename TComponent, unsigned int NOdfDirections>
ComponentType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetMaxValue ( ) const
template<typename TComponent, unsigned int NOdfDirections>
ComponentType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetMeanValue ( ) const
template<typename TComponent, unsigned int NOdfDirections>
ComponentType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetMinValue ( ) const
template<typename TComponent, unsigned int NOdfDirections>
static std::vector<int> itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetNeighbors ( int  idx)
static
template<typename TComponent, unsigned int NOdfDirections>
TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetNematicOrderParameter ( ) const
template<typename TComponent, unsigned int NOdfDirections>
TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetNormalizedEntropy ( ) const
template<typename TComponent, unsigned int NOdfDirections>
ComponentType itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetNthComponent ( int  c) const
inline

Return the value for the Nth component.

Definition at line 123 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
int itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetNthDiffusionDirection ( int  n,
vnl_vector_fixed< double, 3 >  rndVec 
) const
template<typename TComponent, unsigned int NOdfDirections>
static unsigned int itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetNumberOfComponents ( )
inlinestatic

Return the number of components.

Definition at line 117 of file itkOrientationDistributionFunction.h.

template<typename TComponent, unsigned int NOdfDirections>
TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetPrincipleCurvature ( double  alphaMinDegree,
double  alphaMaxDegree,
int  invert 
) const
template<typename TComponent, unsigned int NOdfDirections>
int itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetPrincipleDiffusionDirection ( ) const
template<typename TComponent, unsigned int NOdfDirections>
TComponent itk::OrientationDistributionFunction< TComponent, NOdfDirections >::GetStdDevByMaxValue ( ) const
template<typename TComponent, unsigned int NOdfDirections>
void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::InitFromEllipsoid ( itk::DiffusionTensor3D< TComponent >  tensor)

Evaluate diffusion tensor as ellipsoid.

template<typename TComponent, unsigned int NOdfDirections>
void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::InitFromTensor ( itk::DiffusionTensor3D< TComponent >  tensor)
template<typename TComponent, unsigned int NOdfDirections>
itk::OrientationDistributionFunction< TComponent, NOdfDirections >::itkStaticConstMacro ( InternalDimension  ,
unsigned  int,
NOdfDirections   
)

Dimension of the vector space.

template<typename TComponent, unsigned int NOdfDirections>
void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::L2Normalize ( )
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::MaxNormalize ( ) const
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::MinMaxNormalize ( ) const
template<typename TComponent, unsigned int NOdfDirections>
void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::Normalize ( )
template<typename TComponent, unsigned int NOdfDirections>
ValueType& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator() ( unsigned int  row,
unsigned int  col 
)

Matrix notation, in const and non-const forms.

template<typename TComponent, unsigned int NOdfDirections>
const ValueType& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator() ( unsigned int  row,
unsigned int  col 
) const
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator* ( const RealValueType scalar) const

Arithmetic operations between ODFs and scalars

template<typename TComponent, unsigned int NOdfDirections>
const Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator*= ( const RealValueType scalar)
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator+ ( const Self vec) const

Aritmetic operations between pixels. Return a new OrientationDistributionFunction.

template<typename TComponent, unsigned int NOdfDirections>
const Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator+= ( const Self vec)
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator- ( const Self vec) const
template<typename TComponent, unsigned int NOdfDirections>
const Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator-= ( const Self vec)
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator/ ( const RealValueType scalar) const
template<typename TComponent, unsigned int NOdfDirections>
const Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator/= ( const RealValueType scalar)
template<typename TComponent, unsigned int NOdfDirections>
Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator= ( const Self r)

Pass-through assignment operator for the Array base class.

template<typename TComponent, unsigned int NOdfDirections>
Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator= ( const ComponentType r)
template<typename TComponent, unsigned int NOdfDirections>
Self& itk::OrientationDistributionFunction< TComponent, NOdfDirections >::operator= ( const ComponentArrayType  r)
template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::PostMultiply ( const MatrixType m) const

Post-Multiply by a Matrix as ResultingTensor = ThisTensor * Matrix.

template<typename TComponent, unsigned int NOdfDirections>
Self itk::OrientationDistributionFunction< TComponent, NOdfDirections >::PreMultiply ( const MatrixType m) const

Pre-Multiply by a Matrix as ResultingTensor = Matrix * ThisTensor.

template<typename TComponent, unsigned int NOdfDirections>
void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::SetIsotropic ( )

Set the distribution to isotropic.

template<typename TComponent, unsigned int NOdfDirections>
void itk::OrientationDistributionFunction< TComponent, NOdfDirections >::SetNthComponent ( int  c,
const ComponentType v 
)
inline

Set the Nth component to v.

Definition at line 130 of file itkOrientationDistributionFunction.h.


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