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]

Represent a diffusion tensor as used in DTI images. More...

#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.

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


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.


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.

typedef ValueType itk::FixedArray< TComponent , 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.

typedef const ValueType* itk::FixedArray< TComponent , VLength >::const_pointer [inherited]

A const pointer to the ValueType.

Definition at line 129 of file itkFixedArray.h.

typedef const ValueType& itk::FixedArray< TComponent , VLength >::const_reference [inherited]

A const reference to the ValueType.

Definition at line 135 of file itkFixedArray.h.

typedef const ValueType* itk::FixedArray< TComponent , VLength >::ConstIterator [inherited]

A const iterator through the array.

Definition at line 83 of file itkFixedArray.h.

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.

typedef ValueType* itk::FixedArray< TComponent , VLength >::Iterator [inherited]

An iterator through the array.

Definition at line 80 of file itkFixedArray.h.

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

Matrix of eigen-vectors.

Definition at line 95 of file itkSymmetricSecondRankTensor.h.

typedef ValueType* itk::FixedArray< TComponent , VLength >::pointer [inherited]

A pointer to the ValueType.

Definition at line 126 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.

typedef ValueType& itk::FixedArray< TComponent , VLength >::reference [inherited]

A reference to the ValueType.

Definition at line 132 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.

typedef unsigned int itk::FixedArray< TComponent , VLength >::SizeType [inherited]

Definition at line 137 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  ) 

Constructor with initialization.

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

Constructor with initialization.

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

Constructor with initialization.


Member Function Documentation

ConstIterator itk::FixedArray< TComponent , VLength >::Begin ( void   )  const [inherited]

Get various iterators to the array.

Iterator itk::FixedArray< TComponent , VLength >::Begin ( void   )  [inherited]

Get various iterators to the array.

Referenced by itk::DTITubeSpatialObjectPoint< TPointDimension >::SetTensorMatrix().

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.

ConstIterator itk::FixedArray< TComponent , VLength >::End ( void   )  const [inherited]

Get various iterators to the array.

Iterator itk::FixedArray< TComponent , VLength >::End ( void   )  [inherited]

Get various iterators to the array.

Referenced by itk::DTITubeSpatialObjectPoint< TPointDimension >::SetTensorMatrix().

void itk::FixedArray< TComponent , VLength >::Fill ( const ValueType &   )  [inherited]

Get various iterators to the array.

static FixedArray itk::FixedArray< TComponent , VLength >::Filled ( const ValueType &   )  [static, inherited]

const ValueType* itk::FixedArray< TComponent , VLength >::GetDataPointer (  )  const [inline, inherited]

Return a pointer to the data.

Definition at line 222 of file itkFixedArray.h.

ValueType* itk::FixedArray< TComponent , VLength >::GetDataPointer (  )  [inline, inherited]

Return a pointer to the data.

Definition at line 221 of file itkFixedArray.h.

const_reference itk::FixedArray< TComponent , VLength >::GetElement ( unsigned short  index  )  const [inline, inherited]

Set/Get element methods are more convenient in wrapping languages

Definition at line 217 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 >.

itk::FixedArray< TComponent , VLength >::itkStaticConstMacro ( Dimension  ,
unsigned  int,
VLength   
) [inherited]

Dimension constant

itk::FixedArray< TComponent , VLength >::itkStaticConstMacro ( Length  ,
unsigned  int,
VLength   
) [inherited]

Length constant

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

Dimension of the vector space.

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

Dimension of the vector space.

bool itk::FixedArray< TComponent , VLength >::operator!= ( const FixedArray< TComponent,NDimension *(NDimension+1)/2 > &  r  )  const [inline, 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.

Definition at line 193 of file itkFixedArray.h.

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

Matrix notation, in const and non-const forms.

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  ) 

Pass-through assignment operator for the Array base class.

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

Pass-through assignment operator for the Array base class.

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

Pass-through assignment operator for the Array base class.

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

Pass-through assignment operator for the Array base class.

bool itk::FixedArray< TComponent , VLength >::operator== ( const FixedArray< TComponent,NDimension *(NDimension+1)/2 > &  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.

const_reference itk::FixedArray< TComponent , VLength >::operator[] ( unsigned long  index  )  const [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 211 of file itkFixedArray.h.

reference itk::FixedArray< TComponent , VLength >::operator[] ( unsigned long  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 210 of file itkFixedArray.h.

const_reference itk::FixedArray< TComponent , VLength >::operator[] ( long  index  )  const [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 209 of file itkFixedArray.h.

reference itk::FixedArray< TComponent , VLength >::operator[] ( long  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 208 of file itkFixedArray.h.

const_reference itk::FixedArray< TComponent , VLength >::operator[] ( unsigned int  index  )  const [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 207 of file itkFixedArray.h.

reference itk::FixedArray< TComponent , VLength >::operator[] ( unsigned int  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 206 of file itkFixedArray.h.

const_reference itk::FixedArray< TComponent , VLength >::operator[] ( int  index  )  const [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 205 of file itkFixedArray.h.

reference itk::FixedArray< TComponent , VLength >::operator[] ( int  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 204 of file itkFixedArray.h.

const_reference itk::FixedArray< TComponent , VLength >::operator[] ( unsigned short  index  )  const [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 203 of file itkFixedArray.h.

reference itk::FixedArray< TComponent , VLength >::operator[] ( unsigned 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 202 of file itkFixedArray.h.

const_reference itk::FixedArray< TComponent , VLength >::operator[] ( short  index  )  const [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 201 of file itkFixedArray.h.

reference itk::FixedArray< TComponent , 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 200 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.

ConstReverseIterator itk::FixedArray< TComponent , VLength >::rBegin (  )  const [inherited]

Get various iterators to the array.

ReverseIterator itk::FixedArray< TComponent , VLength >::rBegin (  )  [inherited]

Get various iterators to the array.

ConstReverseIterator itk::FixedArray< TComponent , VLength >::rEnd (  )  const [inherited]

Get various iterators to the array.

ReverseIterator itk::FixedArray< TComponent , VLength >::rEnd (  )  [inherited]

Get various iterators to the array.

void itk::FixedArray< TComponent , VLength >::SetElement ( unsigned short  index,
const_reference  value 
) [inline, inherited]

Set/Get element methods are more convenient in wrapping languages

Definition at line 215 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[]().

SizeType itk::FixedArray< TComponent , VLength >::Size ( void   )  const [inherited]

Get various iterators to the array.


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

Generated at Tue Sep 15 07:51:31 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000