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:
https://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.
|
using | Self = DiffusionTensor3D |
|
using | Superclass = SymmetricSecondRankTensor< TComponent, 3 > |
|
using | AccumulateValueType = typename NumericTraits< ValueType >::RealType |
|
using | BaseArray = FixedArray< TComponent, Self::InternalDimension > |
|
using | ComponentArrayType = ComponentType[Self::InternalDimension] |
|
using | ComponentType = TComponent |
|
using | EigenValuesArrayType = FixedArray< TComponent, VDimension > |
|
using | EigenVectorsMatrixType = Matrix< TComponent, VDimension, VDimension > |
|
using | MatrixType = Matrix< TComponent, VDimension, VDimension > |
|
using | RealValueType = typename NumericTraits< ValueType >::RealType |
|
using | Self = SymmetricSecondRankTensor |
|
using | Superclass = FixedArray< TComponent, VDimension *(VDimension+1)/2 > |
|
using | SymmetricEigenAnalysisType = SymmetricEigenAnalysisFixedDimension< Dimension, MatrixType, EigenValuesArrayType, EigenVectorsMatrixType > |
|
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 |
|
|
| DiffusionTensor3D ()=default |
|
template<typename TCoordRepB > |
| DiffusionTensor3D (const DiffusionTensor3D< TCoordRepB > &pa) |
|
RealValueType | GetFractionalAnisotropy () const |
|
RealValueType | GetInnerScalarProduct () const |
|
RealValueType | GetRelativeAnisotropy () const |
|
AccumulateValueType | GetTrace () const |
|
Self & | operator= (const ComponentArrayType r) |
|
Self & | operator= (const ComponentType &r) |
|
Self & | operator= (const Superclass &r) |
|
|
| DiffusionTensor3D (const Superclass &r) |
|
| DiffusionTensor3D (const ComponentType &r) |
|
| DiffusionTensor3D (const ComponentArrayType r) |
|
|
template<typename TCoordRepB > |
Self & | operator= (const DiffusionTensor3D< TCoordRepB > &pa) |
|
void | ComputeEigenAnalysis (EigenValuesArrayType &eigenValues, EigenVectorsMatrixType &eigenVectors) const |
|
void | ComputeEigenValues (EigenValuesArrayType &eigenValues) const |
|
ComponentType | GetNthComponent (int c) const |
|
AccumulateValueType | GetTrace () const |
|
ValueType & | operator() (unsigned int row, unsigned int col) |
|
const ValueType & | operator() (unsigned int row, unsigned int col) const |
|
Self | operator* (const RealValueType &r) const |
|
const Self & | operator*= (const RealValueType &r) |
|
Self | operator+ (const Self &r) const |
|
const Self & | operator+= (const Self &r) |
|
Self | operator- (const Self &r) const |
|
const Self & | operator-= (const Self &r) |
|
Self | operator/ (const RealValueType &r) const |
|
const Self & | operator/= (const RealValueType &r) |
|
Self & | operator= (const ComponentArrayType r) |
|
Self & | operator= (const ComponentType &r) |
|
MatrixType | PostMultiply (const MatrixType &m) const |
|
MatrixType | PreMultiply (const MatrixType &m) const |
|
void | SetIdentity () |
|
void | SetNthComponent (int c, const ComponentType &v) |
|
| SymmetricSecondRankTensor (const ComponentArrayType r) |
|
| SymmetricSecondRankTensor (const ComponentType &r) |
|
| SymmetricSecondRankTensor (const SymmetricSecondRankTensor< TCoordRepB, VDimension > &pa) |
|
| SymmetricSecondRankTensor ()=default |
|
Self & | operator= (const SymmetricSecondRankTensor< TCoordRepB, VDimension > &pa) |
|
Self | Rotate (const Matrix< TMatrixValueType, VDimension, VDimension > &m) const |
|
Self | Rotate (const vnl_matrix_fixed< TMatrixValueType, VDimension, VDimension > &m) const |
|
Self | Rotate (const vnl_matrix< TMatrixValueType > &m) const |
|
Iterator | Begin () |
|
ConstIterator | Begin () const |
|
constexpr const_iterator | begin () const noexcept |
|
constexpr iterator | begin () noexcept |
|
constexpr const_iterator | cbegin () const noexcept |
|
constexpr const_iterator | cend () const noexcept |
|
const_reverse_iterator | crbegin () const |
|
const_reverse_iterator | crend () const |
|
ValueType * | data () |
|
const ValueType * | data () const |
|
Iterator | End () |
|
ConstIterator | End () const |
|
constexpr const_iterator | end () const noexcept |
|
constexpr iterator | end () noexcept |
|
void | Fill (const ValueType &) |
|
| FixedArray ()=default |
|
| FixedArray (const FixedArray< TFixedArrayValueType, VLength > &r) |
|
| FixedArray (const std::array< ValueType, VLength > &stdArray) |
|
| FixedArray (const TScalarValue *r) |
|
ValueType * | GetDataPointer () |
|
const ValueType * | GetDataPointer () const |
|
| ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION (FixedArray) |
|
| itkLegacyMacro (ConstReverseIterator rBegin() const) |
|
| itkLegacyMacro (ConstReverseIterator rEnd() const) |
|
| itkLegacyMacro (ReverseIterator rBegin()) |
|
| itkLegacyMacro (ReverseIterator rEnd()) |
|
FixedArray & | operator= (const FixedArray< TFixedArrayValueType, VLength > &r) |
|
FixedArray & | operator= (const ValueType r[VLength]) |
|
bool | operator== (const FixedArray &r) const |
|
reverse_iterator | rbegin () |
|
const_reverse_iterator | rbegin () const |
|
reverse_iterator | rend () |
|
const_reverse_iterator | rend () const |
|
SizeType | Size () const |
|
constexpr SizeType | size () const |
|
void | swap (FixedArray &other) |
|
| FixedArray (const ValueType r[VLength]) |
|
| FixedArray (const ValueType &) |
|
constexpr reference | operator[] (unsigned int index) |
|
constexpr const_reference | operator[] (unsigned int index) const |
|
void | SetElement (unsigned int index, const_reference value) |
|
const_reference | GetElement (unsigned int index) const |
|