ITK  5.2.0
Insight Toolkit
Public Types | Public Member Functions | List of all members

#include <itkDiffusionTensor3D.h>

+ Inheritance diagram for itk::DiffusionTensor3D< TComponent >:
+ Collaboration diagram for itk::DiffusionTensor3D< TComponent >:

Public Types

using AccumulateValueType = typename Superclass::AccumulateValueType
 
using ComponentArrayType = typename Superclass::ComponentArrayType
 
using ComponentType = typename Superclass::ComponentType
 
using EigenValuesArrayType = typename Superclass::EigenValuesArrayType
 
using EigenVectorsMatrixType = typename Superclass::EigenVectorsMatrixType
 
using RealValueType = typename Superclass::RealValueType
 
using Self = DiffusionTensor3D
 
using Superclass = SymmetricSecondRankTensor< TComponent, 3 >
 
using ValueType = typename Superclass::ValueType
 
- Public Types inherited from itk::SymmetricSecondRankTensor< TComponent, 3 >
using AccumulateValueType = typename NumericTraits< ValueType >::RealType
 
using BaseArray = FixedArray< TComponent, Self::InternalDimension >
 
using ComponentType = TComponent
 
using EigenValuesArrayType = FixedArray< TComponent, NDimension >
 
using EigenVectorsMatrixType = Matrix< TComponent, NDimension, NDimension >
 
using MatrixType = Matrix< TComponent, NDimension, NDimension >
 
using RealValueType = typename NumericTraits< ValueType >::RealType
 
using Self = SymmetricSecondRankTensor
 
using Superclass = FixedArray< TComponent, NDimension *(NDimension+1)/2 >
 
using SymmetricEigenAnalysisType = SymmetricEigenAnalysisFixedDimension< Dimension, MatrixType, EigenValuesArrayType, EigenVectorsMatrixType >
 
using ValueType = typename Superclass::ValueType
 
using ComponentArrayType = ComponentType[Self::InternalDimension]
 
- Public Types inherited from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >
using CArray = ValueType[VLength]
 
using const_iterator = const ValueType *
 
using const_pointer = const ValueType *
 
using const_reference = const ValueType &
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using ConstIterator = const ValueType *
 
using Iterator = ValueType *
 
using iterator = ValueType *
 
using pointer = ValueType *
 
using reference = ValueType &
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using SizeType = unsigned int
 
using ValueType = TComponent
 

Public Member Functions

 DiffusionTensor3D ()=default
 
 DiffusionTensor3D (const Superclass &r)
 
 DiffusionTensor3D (const ComponentType &r)
 
 DiffusionTensor3D (const ComponentArrayType r)
 
template<typename TCoordRepB >
 DiffusionTensor3D (const DiffusionTensor3D< TCoordRepB > &pa)
 
Selfoperator= (const Superclass &r)
 
Selfoperator= (const ComponentType &r)
 
Selfoperator= (const ComponentArrayType r)
 
template<typename TCoordRepB >
Selfoperator= (const DiffusionTensor3D< TCoordRepB > &pa)
 
AccumulateValueType GetTrace () const
 
RealValueType GetFractionalAnisotropy () const
 
RealValueType GetRelativeAnisotropy () const
 
RealValueType GetInnerScalarProduct () const
 
- Public Member Functions inherited from itk::SymmetricSecondRankTensor< TComponent, 3 >
 SymmetricSecondRankTensor ()
 
 SymmetricSecondRankTensor (const SymmetricSecondRankTensor &)=default
 
 SymmetricSecondRankTensor (SymmetricSecondRankTensor &&)=default
 
 SymmetricSecondRankTensor (const ComponentType &r)
 
 SymmetricSecondRankTensor (const SymmetricSecondRankTensor< TCoordRepB, NDimension > &pa)
 
 SymmetricSecondRankTensor (const ComponentArrayType r)
 
SymmetricSecondRankTensoroperator= (const SymmetricSecondRankTensor &)=default
 
SymmetricSecondRankTensoroperator= (SymmetricSecondRankTensor &&)=default
 
Selfoperator= (const SymmetricSecondRankTensor< TCoordRepB, NDimension > &pa)
 
Selfoperator= (const ComponentType &r)
 
Selfoperator= (const ComponentArrayType r)
 
 ~SymmetricSecondRankTensor ()=default
 
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
 
void SetNthComponent (int c, const ComponentType &v)
 
ValueTypeoperator() (unsigned int row, unsigned int col)
 
const ValueTypeoperator() (unsigned int row, unsigned int col) const
 
void SetIdentity ()
 
AccumulateValueType GetTrace () const
 
void ComputeEigenValues (EigenValuesArrayType &eigenValues) const
 
void ComputeEigenAnalysis (EigenValuesArrayType &eigenValues, EigenVectorsMatrixType &eigenVectors) const
 
Self Rotate (const Matrix< TMatrixValueType, NDimension, NDimension > &m) const
 
Self Rotate (const vnl_matrix_fixed< TMatrixValueType, NDimension, NDimension > &m) const
 
Self Rotate (const vnl_matrix< TMatrixValueType > &m) const
 
MatrixType PreMultiply (const MatrixType &m) const
 
MatrixType PostMultiply (const MatrixType &m) const
 
- Public Member Functions inherited from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >
 FixedArray ()=default
 
 FixedArray (const FixedArray &)=default
 
 FixedArray (FixedArray &&)=default
 
 FixedArray (const ValueType r[VLength])
 
 FixedArray (const ValueType &)
 
 FixedArray (const std::array< ValueType, VLength > &stdArray)
 
 FixedArray (const FixedArray< TFixedArrayValueType, VLength > &r)
 
 FixedArray (const TScalarValue *r)
 
FixedArrayoperator= (const FixedArray &)=default
 
FixedArrayoperator= (FixedArray &&)=default
 
FixedArrayoperator= (const FixedArray< TFixedArrayValueType, VLength > &r)
 
FixedArrayoperator= (const ValueType r[VLength])
 
 ~FixedArray ()=default
 
bool operator== (const FixedArray &r) const
 
bool operator!= (const FixedArray &r) const
 
reference operator[] (short index)
 
const_reference operator[] (short index) const
 
reference operator[] (unsigned short index)
 
const_reference operator[] (unsigned short index) const
 
reference operator[] (int index)
 
const_reference operator[] (int index) const
 
reference operator[] (unsigned int index)
 
const_reference operator[] (unsigned int index) const
 
reference operator[] (long index)
 
const_reference operator[] (long index) const
 
reference operator[] (unsigned long index)
 
const_reference operator[] (unsigned long index) const
 
reference operator[] (long long index)
 
const_reference operator[] (long long index) const
 
reference operator[] (unsigned long long index)
 
const_reference operator[] (unsigned long long index) const
 
void SetElement (unsigned int index, const_reference value)
 
const_reference GetElement (unsigned int index) const
 
ValueTypeGetDataPointer ()
 
const ValueTypeGetDataPointer () const
 
ValueTypedata ()
 
const ValueTypedata () const
 
Iterator Begin ()
 
ConstIterator Begin () const
 
Iterator End ()
 
ConstIterator End () const
 
 itkLegacyMacro (ReverseIterator rBegin())
 
 itkLegacyMacro (ConstReverseIterator rBegin() const)
 
 itkLegacyMacro (ReverseIterator rEnd())
 
 itkLegacyMacro (ConstReverseIterator rEnd() const)
 
const_iterator cbegin () const noexcept
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
const_iterator cend () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator crbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crend () const
 
SizeType Size () const
 
SizeType size () const
 
void Fill (const ValueType &)
 
void swap (FixedArray &other)
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::SymmetricSecondRankTensor< TComponent, 3 >
static unsigned int GetNumberOfComponents ()
 
- Static Public Member Functions inherited from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >
static FixedArray Filled (const ValueType &)
 
- Static Public Attributes inherited from itk::SymmetricSecondRankTensor< TComponent, 3 >
static constexpr unsigned int Dimension
 
static constexpr unsigned int InternalDimension
 
- Static Public Attributes inherited from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >
static constexpr unsigned int Dimension
 
static constexpr unsigned int Length
 

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 derives from the SymmetricSecondRankTensor, inheriting 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://commonfund.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

◆ AccumulateValueType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::AccumulateValueType = typename Superclass::AccumulateValueType

Definition at line 91 of file itkDiffusionTensor3D.h.

◆ ComponentArrayType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::ComponentArrayType = typename Superclass::ComponentArrayType

Definition at line 89 of file itkDiffusionTensor3D.h.

◆ ComponentType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::ComponentType = typename Superclass::ComponentType

Definition at line 88 of file itkDiffusionTensor3D.h.

◆ EigenValuesArrayType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::EigenValuesArrayType = typename Superclass::EigenValuesArrayType

Definition at line 94 of file itkDiffusionTensor3D.h.

◆ EigenVectorsMatrixType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::EigenVectorsMatrixType = typename Superclass::EigenVectorsMatrixType

Definition at line 95 of file itkDiffusionTensor3D.h.

◆ RealValueType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::RealValueType = typename Superclass::RealValueType

Definition at line 92 of file itkDiffusionTensor3D.h.

◆ Self

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::Self = DiffusionTensor3D

Standard class type aliases.

Definition at line 83 of file itkDiffusionTensor3D.h.

◆ Superclass

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

Definition at line 84 of file itkDiffusionTensor3D.h.

◆ ValueType

template<typename TComponent>
using itk::DiffusionTensor3D< TComponent >::ValueType = typename Superclass::ValueType

Propagating some type alias from the superclass

Definition at line 87 of file itkDiffusionTensor3D.h.

Constructor & Destructor Documentation

◆ DiffusionTensor3D() [1/5]

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

Default Constructor.

◆ DiffusionTensor3D() [2/5]

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

Constructor with initialization.

◆ DiffusionTensor3D() [3/5]

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

Constructor with initialization.

◆ DiffusionTensor3D() [4/5]

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

Constructor with initialization.

◆ DiffusionTensor3D() [5/5]

template<typename TComponent>
template<typename TCoordRepB >
itk::DiffusionTensor3D< TComponent >::DiffusionTensor3D ( const DiffusionTensor3D< TCoordRepB > &  pa)
inline

Constructor to enable casting...

Definition at line 108 of file itkDiffusionTensor3D.h.

Member Function Documentation

◆ GetFractionalAnisotropy()

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

Get the value of Fractional Anisotropy from the Tensor.

◆ GetInnerScalarProduct()

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

Get the Inner Scalar Product from the Tensor.

◆ GetRelativeAnisotropy()

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

Get the value of Relative Anisotropy from the Tensor.

◆ GetTrace()

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

Get Trace value

◆ operator=() [1/4]

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

Constructor with initialization.

◆ operator=() [2/4]

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

Constructor with initialization.

◆ operator=() [3/4]

template<typename TComponent>
template<typename TCoordRepB >
Self& itk::DiffusionTensor3D< TComponent >::operator= ( const DiffusionTensor3D< TCoordRepB > &  pa)
inline

Templated Pass-through assignment for the Array base class.

Definition at line 125 of file itkDiffusionTensor3D.h.

References itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator=().

◆ operator=() [4/4]

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

Pass-through assignment operator for the Array base class.


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