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

itk::DiffusionTensor3D< TComponent > Class Template Reference
[Image Representation ObjectsObjects Related to Tensor ImagesGeometry Representation Objects]

#include <itkDiffusionTensor3D.h>

Inheritance diagram for itk::DiffusionTensor3D< TComponent >:

Inheritance graph
[legend]
Collaboration diagram for itk::DiffusionTensor3D< TComponent >:

Collaboration graph
[legend]

List of all members.


Detailed Description

template<typename TComponent>
class itk::DiffusionTensor3D< TComponent >

Represent a diffusion tensor as used in DTI images.

This class implements a 3D symmetric tensor as it is used for representing diffusion of water molecules in Diffusion Tensor Images.

This class derive from the SymmetricSecondRankTensor and from it inherit most of the Tensor related behavior. At this level we add the methods that are specific to 3D and that are closely related to the concept of diffusion.

Author:
Jeffrey Duda from School of Engineering at University of Pennsylvania

Torsten Rohlfing from SRI International Neuroscience Program.

This class was mostly based on files that Jeffrey Duda, Torsten Rohlfing and Martin Styner contributed to the ITK users list during a discussion on support for DiffusionTensorImages. A discussion on the design of this class can be found in the WIKI pages of NAMIC:

http://www.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:ITK-DiffusionTensorPixelType

Note:
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from http://nihroadmap.nih.gov/bioinformatics.

Contributions by Torsten Rohlfing were funded by the following NIH grants

Alcohol, HIV and the Brain, NIAAA AA12999, PI: A. Pfefferbaum

Normal Aging of Brain Structure and Function NIA AG 17919, PI: E.V. Sullivan.

References
E. R. Melhem, S. Mori, G. Mukundan, M. A. Kraut, M. G. Pomper, and P. C. M. van Zijl, "Diffusion tensor MR imaging of the brain and white matter tractography," Am. J. Roentgenol., vol. 178, pp. 3-16, 2002.
See also:
SymmetricSecondRankTensor

Definition at line 79 of file itkDiffusionTensor3D.h.


Public Types

typedef
Superclass::AccumulateValueType 
AccumulateValueType
typedef FixedArray< TComponent,
itkGetStaticConstMacro(InternalDimension)> 
BaseArray
typedef ValueType CArray [VLength]
typedef
Superclass::ComponentArrayType 
ComponentArrayType
typedef Superclass::ComponentType ComponentType
typedef const ValueTypeconst_pointer
typedef const ValueTypeconst_reference
typedef const ValueTypeConstIterator
typedef
Superclass::EigenValuesArrayType 
EigenValuesArrayType
typedef
Superclass::EigenVectorsMatrixType 
EigenVectorsMatrixType
typedef ValueTypeIterator
typedef Matrix< TComponent,
NDimension, NDimension > 
MatrixType
typedef ValueTypepointer
typedef Superclass::RealValueType RealValueType
typedef ValueTypereference
typedef DiffusionTensor3D Self
typedef unsigned int SizeType
typedef
SymmetricSecondRankTensor
< TComponent, 3 > 
Superclass
typedef SymmetricEigenAnalysis
< MatrixType,
EigenValuesArrayType,
EigenVectorsMatrixType
SymmetricEigenAnalysisType
typedef Superclass::ValueType ValueType

Public Member Functions

void ComputeEigenAnalysis (EigenValuesArrayType &eigenValues, EigenVectorsMatrixType &eigenVectors) const
void ComputeEigenValues (EigenValuesArrayType &eigenValues) const
 DiffusionTensor3D ()
RealValueType GetFractionalAnisotropy () const
RealValueType GetInnerScalarProduct () const
ComponentType GetNthComponent (int c) const
RealValueType GetRelativeAnisotropy () const
AccumulateValueType GetTrace () const
 itkStaticConstMacro (Dimension, unsigned int, VLength)
 itkStaticConstMacro (Length, unsigned int, VLength)
Self PostMultiply (const MatrixType &m) const
Self PreMultiply (const MatrixType &m) const
void SetIdentity ()
void SetNthComponent (int c, const ComponentType &v)
ConstIterator Begin () const
Iterator Begin ()
ConstIterator End () const
Iterator End ()
void Fill (const ValueType &)
ConstReverseIterator rBegin () const
ReverseIterator rBegin ()
ConstReverseIterator rEnd () const
ReverseIterator rEnd ()
SizeType Size () const
 DiffusionTensor3D (const ComponentArrayType r)
 DiffusionTensor3D (const ComponentType &r)
 DiffusionTensor3D (const Superclass &r)
 DiffusionTensor3D (const Self &r)
const ValueTypeGetDataPointer () const
ValueTypeGetDataPointer ()
const_reference GetElement (unsigned short index) const
void SetElement (unsigned short index, const_reference value)
 itkStaticConstMacro (InternalDimension, unsigned int, NDimension *(NDimension+1)/2)
 itkStaticConstMacro (Dimension, unsigned int, NDimension)
bool operator!= (const FixedArray &r) const
bool operator== (const FixedArray &r) const
const ValueTypeoperator() (unsigned int row, unsigned int col) const
ValueTypeoperator() (unsigned int row, unsigned int col)
Self operator* (const RealValueType &scalar) const
const Selfoperator*= (const RealValueType &scalar)
Self operator/ (const RealValueType &scalar) const
const Selfoperator/= (const RealValueType &scalar)
Self operator+ (const Self &vec) const
const Selfoperator+= (const Self &vec)
Self operator- (const Self &vec) const
const Selfoperator-= (const Self &vec)
Selfoperator= (const ComponentArrayType r)
Selfoperator= (const ComponentType &r)
Selfoperator= (const Superclass &r)
Selfoperator= (const Self &r)
const_reference operator[] (unsigned long index) const
reference operator[] (unsigned long index)
const_reference operator[] (long index) const
reference operator[] (long index)
const_reference operator[] (unsigned int index) const
reference operator[] (unsigned int index)
const_reference operator[] (int index) const
reference operator[] (int index)
const_reference operator[] (unsigned short index) const
reference operator[] (unsigned short index)
const_reference operator[] (short index) const
reference operator[] (short index)

Static Public Member Functions

static FixedArray Filled (const ValueType &)
static unsigned int GetNumberOfComponents ()

Member Typedef Documentation

template<typename TComponent>
typedef Superclass::AccumulateValueType itk::DiffusionTensor3D< TComponent >::AccumulateValueType

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 94 of file itkDiffusionTensor3D.h.

typedef FixedArray<TComponent , itkGetStaticConstMacro(InternalDimension)> itk::SymmetricSecondRankTensor< TComponent , NDimension >::BaseArray [inherited]

Convenience typedefs.

Definition at line 89 of file itkSymmetricSecondRankTensor.h.

template<typename TValueType, unsigned int VLength = 3>
typedef ValueType itk::FixedArray< TValueType, VLength >::CArray[VLength] [inherited]

A type representing the C-array version of this FixedArray.

Definition at line 77 of file itkFixedArray.h.

template<typename TComponent>
typedef Superclass::ComponentArrayType itk::DiffusionTensor3D< TComponent >::ComponentArrayType

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 92 of file itkDiffusionTensor3D.h.

template<typename TComponent>
typedef Superclass::ComponentType itk::DiffusionTensor3D< TComponent >::ComponentType

Define the component type.

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 88 of file itkDiffusionTensor3D.h.

template<typename TValueType, unsigned int VLength = 3>
typedef const ValueType* itk::FixedArray< TValueType, VLength >::const_pointer [inherited]

A const pointer to the ValueType.

Definition at line 125 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
typedef const ValueType& itk::FixedArray< TValueType, VLength >::const_reference [inherited]

A const reference to the ValueType.

Definition at line 131 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
typedef const ValueType* itk::FixedArray< TValueType, VLength >::ConstIterator [inherited]

template<typename TComponent>
typedef Superclass::EigenValuesArrayType itk::DiffusionTensor3D< TComponent >::EigenValuesArrayType

Array of eigen-values.

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 97 of file itkDiffusionTensor3D.h.

template<typename TComponent>
typedef Superclass::EigenVectorsMatrixType itk::DiffusionTensor3D< TComponent >::EigenVectorsMatrixType

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 98 of file itkDiffusionTensor3D.h.

template<typename TValueType, unsigned int VLength = 3>
typedef ValueType* itk::FixedArray< TValueType, VLength >::Iterator [inherited]

typedef Matrix<TComponent , NDimension, NDimension> itk::SymmetricSecondRankTensor< TComponent , NDimension >::MatrixType [inherited]

Matrix of eigen-vectors.

Definition at line 95 of file itkSymmetricSecondRankTensor.h.

template<typename TValueType, unsigned int VLength = 3>
typedef ValueType* itk::FixedArray< TValueType, VLength >::pointer [inherited]

A pointer to the ValueType.

Definition at line 122 of file itkFixedArray.h.

template<typename TComponent>
typedef Superclass::RealValueType itk::DiffusionTensor3D< TComponent >::RealValueType

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 95 of file itkDiffusionTensor3D.h.

template<typename TValueType, unsigned int VLength = 3>
typedef ValueType& itk::FixedArray< TValueType, VLength >::reference [inherited]

A reference to the ValueType.

Definition at line 128 of file itkFixedArray.h.

template<typename TComponent>
typedef DiffusionTensor3D itk::DiffusionTensor3D< TComponent >::Self

Standard class typedefs.

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 83 of file itkDiffusionTensor3D.h.

template<typename TValueType, unsigned int VLength = 3>
typedef unsigned int itk::FixedArray< TValueType, VLength >::SizeType [inherited]

Definition at line 133 of file itkFixedArray.h.

template<typename TComponent>
typedef SymmetricSecondRankTensor<TComponent, 3> itk::DiffusionTensor3D< TComponent >::Superclass

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 84 of file itkDiffusionTensor3D.h.

Definition at line 105 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent>
typedef Superclass::ValueType itk::DiffusionTensor3D< TComponent >::ValueType

Propagating some typedef from the superclass

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

Definition at line 87 of file itkDiffusionTensor3D.h.


Constructor & Destructor Documentation

template<typename TComponent>
itk::DiffusionTensor3D< TComponent >::DiffusionTensor3D (  ) 

Default Constructor.

template<typename TComponent>
itk::DiffusionTensor3D< TComponent >::DiffusionTensor3D ( const Self r  ) 

Constructor with initialization.

template<typename TComponent>
itk::DiffusionTensor3D< TComponent >::DiffusionTensor3D ( const Superclass r  ) 

template<typename TComponent>
itk::DiffusionTensor3D< TComponent >::DiffusionTensor3D ( const ComponentType r  ) 

template<typename TComponent>
itk::DiffusionTensor3D< TComponent >::DiffusionTensor3D ( const ComponentArrayType  r  ) 


Member Function Documentation

template<typename TValueType, unsigned int VLength = 3>
ConstIterator itk::FixedArray< TValueType, VLength >::Begin (  )  const [inherited]

template<typename TValueType, unsigned int VLength = 3>
Iterator itk::FixedArray< TValueType, VLength >::Begin (  )  [inherited]

void itk::SymmetricSecondRankTensor< TComponent , NDimension >::ComputeEigenAnalysis ( EigenValuesArrayType eigenValues,
EigenVectorsMatrixType eigenVectors 
) const [inherited]

Return an array containing EigenValues, and a matrix containing Eigen vectors.

void itk::SymmetricSecondRankTensor< TComponent , NDimension >::ComputeEigenValues ( EigenValuesArrayType eigenValues  )  const [inherited]

Return an array containing EigenValues.

template<typename TValueType, unsigned int VLength = 3>
ConstIterator itk::FixedArray< TValueType, VLength >::End (  )  const [inherited]

template<typename TValueType, unsigned int VLength = 3>
Iterator itk::FixedArray< TValueType, VLength >::End (  )  [inherited]

template<typename TValueType, unsigned int VLength = 3>
void itk::FixedArray< TValueType, VLength >::Fill ( const ValueType  )  [inherited]

template<typename TValueType, unsigned int VLength = 3>
static FixedArray itk::FixedArray< TValueType, VLength >::Filled ( const ValueType  )  [static, inherited]

template<typename TValueType, unsigned int VLength = 3>
const ValueType* itk::FixedArray< TValueType, VLength >::GetDataPointer (  )  const [inline, inherited]

Definition at line 218 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
ValueType* itk::FixedArray< TValueType, VLength >::GetDataPointer (  )  [inline, inherited]

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::GetElement ( unsigned short  index  )  const [inline, inherited]

Definition at line 213 of file itkFixedArray.h.

template<typename TComponent>
RealValueType itk::DiffusionTensor3D< TComponent >::GetFractionalAnisotropy (  )  const

Get the value of Fractional Anisotropy from the Tensor.

template<typename TComponent>
RealValueType itk::DiffusionTensor3D< TComponent >::GetInnerScalarProduct (  )  const

Get the Inner Scalar Product from the Tensor.

ComponentType itk::SymmetricSecondRankTensor< TComponent , NDimension >::GetNthComponent ( int  c  )  const [inline, inherited]

Return the value for the Nth component.

Definition at line 146 of file itkSymmetricSecondRankTensor.h.

References itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >::operator[]().

static unsigned int itk::SymmetricSecondRankTensor< TComponent , NDimension >::GetNumberOfComponents ( void   )  [inline, static, inherited]

Return the number of components.

Definition at line 140 of file itkSymmetricSecondRankTensor.h.

References itkGetStaticConstMacro.

template<typename TComponent>
RealValueType itk::DiffusionTensor3D< TComponent >::GetRelativeAnisotropy (  )  const

Get the value of Relative Anisotropy from the Tensor.

template<typename TComponent>
AccumulateValueType itk::DiffusionTensor3D< TComponent >::GetTrace (  )  const

Get Trace value

Reimplemented from itk::SymmetricSecondRankTensor< TComponent, 3 >.

template<typename TValueType, unsigned int VLength = 3>
itk::FixedArray< TValueType, VLength >::itkStaticConstMacro ( Dimension  ,
unsigned  int,
VLength   
) [inherited]

Dimension constant

template<typename TValueType, unsigned int VLength = 3>
itk::FixedArray< TValueType, VLength >::itkStaticConstMacro ( Length  ,
unsigned  int,
VLength   
) [inherited]

Length constant

itk::SymmetricSecondRankTensor< TComponent , NDimension >::itkStaticConstMacro ( InternalDimension  ,
unsigned  int,
NDimension *(NDimension+1)/  2 
) [inherited]

itk::SymmetricSecondRankTensor< TComponent , NDimension >::itkStaticConstMacro ( Dimension  ,
unsigned  int,
NDimension   
) [inherited]

Dimension of the vector space.

template<typename TValueType, unsigned int VLength = 3>
bool itk::FixedArray< TValueType, VLength >::operator!= ( const FixedArray< TValueType, VLength > &  r  )  const [inline, inherited]

Definition at line 189 of file itkFixedArray.h.

const ValueType& itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator() ( unsigned int  row,
unsigned int  col 
) const [inherited]

ValueType& itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator() ( unsigned int  row,
unsigned int  col 
) [inherited]

Matrix notation, in const and non-const forms.

Self itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator* ( const RealValueType &  scalar  )  const [inherited]

Arithmetic operations between tensors and scalars

const Self& itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator*= ( const RealValueType &  scalar  )  [inherited]

Arithmetic operations between tensors and scalars

Self itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator+ ( const Self vec  )  const [inherited]

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

const Self& itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator+= ( const Self vec  )  [inherited]

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

Self itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator- ( const Self vec  )  const [inherited]

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

const Self& itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator-= ( const Self vec  )  [inherited]

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

Self itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator/ ( const RealValueType &  scalar  )  const [inherited]

Arithmetic operations between tensors and scalars

const Self& itk::SymmetricSecondRankTensor< TComponent , NDimension >::operator/= ( const RealValueType &  scalar  )  [inherited]

Arithmetic operations between tensors and scalars

template<typename TComponent>
Self& itk::DiffusionTensor3D< TComponent >::operator= ( const ComponentArrayType  r  ) 

template<typename TComponent>
Self& itk::DiffusionTensor3D< TComponent >::operator= ( const ComponentType r  ) 

template<typename TComponent>
Self& itk::DiffusionTensor3D< TComponent >::operator= ( const Superclass r  ) 

template<typename TComponent>
Self& itk::DiffusionTensor3D< TComponent >::operator= ( const Self r  ) 

Pass-through assignment operator for the Array base class.

template<typename TValueType, unsigned int VLength = 3>
bool itk::FixedArray< TValueType, VLength >::operator== ( const FixedArray< TValueType, VLength > &  r  )  const [inherited]

Operators == and != are used to compare whether two arrays are equal. Note that arrays are equal when the number of components (size) is the same, and each component value is equal.

Referenced by itk::FixedArray< LevelSetImageType::PixelType, NVectorDimension >::operator!=().

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::operator[] ( unsigned long  index  )  const [inline, inherited]

Definition at line 207 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
reference itk::FixedArray< TValueType, VLength >::operator[] ( unsigned long  index  )  [inline, inherited]

Definition at line 206 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::operator[] ( long  index  )  const [inline, inherited]

Definition at line 205 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
reference itk::FixedArray< TValueType, VLength >::operator[] ( long  index  )  [inline, inherited]

Definition at line 204 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::operator[] ( unsigned int  index  )  const [inline, inherited]

Definition at line 203 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
reference itk::FixedArray< TValueType, VLength >::operator[] ( unsigned int  index  )  [inline, inherited]

Definition at line 202 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::operator[] ( int  index  )  const [inline, inherited]

Definition at line 201 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
reference itk::FixedArray< TValueType, VLength >::operator[] ( int  index  )  [inline, inherited]

Definition at line 200 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::operator[] ( unsigned short  index  )  const [inline, inherited]

Definition at line 199 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
reference itk::FixedArray< TValueType, VLength >::operator[] ( unsigned short  index  )  [inline, inherited]

Definition at line 198 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
const_reference itk::FixedArray< TValueType, VLength >::operator[] ( short  index  )  const [inline, inherited]

Definition at line 197 of file itkFixedArray.h.

template<typename TValueType, unsigned int VLength = 3>
reference itk::FixedArray< TValueType, VLength >::operator[] ( short  index  )  [inline, inherited]

Allow the FixedArray to be indexed normally. No bounds checking is done. The separate versions are a work-around for an integer conversion bug in Visual C++.

Definition at line 196 of file itkFixedArray.h.

Self itk::SymmetricSecondRankTensor< TComponent , NDimension >::PostMultiply ( const MatrixType m  )  const [inherited]

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

Self itk::SymmetricSecondRankTensor< TComponent , NDimension >::PreMultiply ( const MatrixType m  )  const [inherited]

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

template<typename TValueType, unsigned int VLength = 3>
ConstReverseIterator itk::FixedArray< TValueType, VLength >::rBegin (  )  const [inherited]

template<typename TValueType, unsigned int VLength = 3>
ReverseIterator itk::FixedArray< TValueType, VLength >::rBegin (  )  [inherited]

template<typename TValueType, unsigned int VLength = 3>
ConstReverseIterator itk::FixedArray< TValueType, VLength >::rEnd (  )  const [inherited]

template<typename TValueType, unsigned int VLength = 3>
ReverseIterator itk::FixedArray< TValueType, VLength >::rEnd (  )  [inherited]

template<typename TValueType, unsigned int VLength = 3>
void itk::FixedArray< TValueType, VLength >::SetElement ( unsigned short  index,
const_reference  value 
) [inline, inherited]

Set/Get element methods are more convenient in wrapping languages

Definition at line 211 of file itkFixedArray.h.

void itk::SymmetricSecondRankTensor< TComponent , NDimension >::SetIdentity ( void   )  [inherited]

Set the tensor to an identity tensor. This has 1 in its diagonal elements zero elsewhere

void itk::SymmetricSecondRankTensor< TComponent , NDimension >::SetNthComponent ( int  c,
const ComponentType &  v 
) [inline, inherited]

Set the Nth component to v.

Definition at line 150 of file itkSymmetricSecondRankTensor.h.

References itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >::operator[]().

template<typename TValueType, unsigned int VLength = 3>
SizeType itk::FixedArray< TValueType, VLength >::Size (  )  const [inherited]


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

Generated at Thu May 28 13:46:01 2009 for ITK by doxygen 1.5.5 written by Dimitri van Heesch, © 1997-2000