ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkSymmetricSecondRankTensor.h>
Public Types | |
typedef NumericTraits < ValueType >::RealType | AccumulateValueType |
typedef FixedArray< TComponent, itkGetStaticConstMacro(InternalDimension) > | BaseArray |
typedef ComponentType | ComponentArrayType [itkGetStaticConstMacro(InternalDimension)] |
typedef TComponent | ComponentType |
typedef FixedArray< TComponent, NDimension > | EigenValuesArrayType |
typedef Matrix< TComponent, NDimension, NDimension > | EigenVectorsMatrixType |
typedef Matrix< TComponent, NDimension, NDimension > | MatrixType |
typedef NumericTraits < ValueType >::RealType | RealValueType |
typedef SymmetricSecondRankTensor | Self |
typedef FixedArray< TComponent, NDimension *(NDimension+1)/2 > | 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 |
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 &scalar) const |
const Self & | operator*= (const RealValueType &scalar) |
Self | operator+ (const Self &vec) const |
const Self & | operator+= (const Self &vec) |
Self | operator- (const Self &vec) const |
const Self & | operator-= (const Self &vec) |
Self | operator/ (const RealValueType &scalar) const |
const Self & | operator/= (const RealValueType &scalar) |
Self & | operator= (const ComponentType &r) |
Self & | operator= (const ComponentArrayType r) |
Self | PostMultiply (const MatrixType &m) const |
Self | PreMultiply (const MatrixType &m) const |
void | SetIdentity () |
void | SetNthComponent (int c, const ComponentType &v) |
SymmetricSecondRankTensor () | |
SymmetricSecondRankTensor (const ComponentType &r) | |
template<typename TCoordRepB > | |
SymmetricSecondRankTensor (const SymmetricSecondRankTensor< TCoordRepB, NDimension > &pa) | |
SymmetricSecondRankTensor (const ComponentArrayType r) | |
template<typename TCoordRepB > | |
Self & | operator= (const SymmetricSecondRankTensor< TCoordRepB, NDimension > &pa) |
Static Public Member Functions | |
static unsigned int | GetNumberOfComponents () |
Static Public Attributes | |
static const unsigned int | Dimension = NDimension |
static const unsigned int | InternalDimension = ( NDimension * ( NDimension + 1 ) / 2 ) |
Represent a symmetric tensor of second rank.
This class implements a ND symmetric tensor of second rank.
Since SymmetricSecondRankTensor is a subclass of FixedArray, you can access its components as:
typedef itk::SymmetricSecondRankTensor< float > TensorPixelType; TensorPixelType tensor;
tensor[0] = 1.233; tensor[1] = 1.456;
for convenience the indexed access is also available as
tensor(0,0) = 1.233; tensor(2,0) = 1.233;
The Tensor in principle represents a NxN matrix, but given that it is always symmetric the representation can be compacted into a N*(N+1)/2 elements array that derives from the itk::FixedArray<T>
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. The funding for creating this class was largely provided by NAMIC (National Alliance for Medical Image Computing) (http://www.na-mic.org). 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
Definition at line 75 of file itkSymmetricSecondRankTensor.h.
typedef NumericTraits< ValueType >::RealType itk::SymmetricSecondRankTensor< TComponent, NDimension >::AccumulateValueType |
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 102 of file itkSymmetricSecondRankTensor.h.
typedef FixedArray< TComponent, itkGetStaticConstMacro(InternalDimension) > itk::SymmetricSecondRankTensor< TComponent, NDimension >::BaseArray |
Convenience typedefs.
Definition at line 90 of file itkSymmetricSecondRankTensor.h.
typedef ComponentType itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComponentArrayType[itkGetStaticConstMacro(InternalDimension)] |
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 118 of file itkSymmetricSecondRankTensor.h.
typedef TComponent itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComponentType |
Define the component type.
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 100 of file itkSymmetricSecondRankTensor.h.
typedef FixedArray< TComponent, NDimension > itk::SymmetricSecondRankTensor< TComponent, NDimension >::EigenValuesArrayType |
Array of eigen-values.
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 93 of file itkSymmetricSecondRankTensor.h.
typedef Matrix< TComponent, NDimension, NDimension > itk::SymmetricSecondRankTensor< TComponent, NDimension >::EigenVectorsMatrixType |
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 97 of file itkSymmetricSecondRankTensor.h.
typedef Matrix< TComponent, NDimension, NDimension > itk::SymmetricSecondRankTensor< TComponent, NDimension >::MatrixType |
Matrix of eigen-vectors.
Definition at line 96 of file itkSymmetricSecondRankTensor.h.
typedef NumericTraits< ValueType >::RealType itk::SymmetricSecondRankTensor< TComponent, NDimension >::RealValueType |
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 103 of file itkSymmetricSecondRankTensor.h.
typedef SymmetricSecondRankTensor itk::SymmetricSecondRankTensor< TComponent, NDimension >::Self |
Standard class typedefs.
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 80 of file itkSymmetricSecondRankTensor.h.
typedef FixedArray< TComponent, NDimension *( NDimension + 1 ) / 2 > itk::SymmetricSecondRankTensor< TComponent, NDimension >::Superclass |
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 81 of file itkSymmetricSecondRankTensor.h.
typedef SymmetricEigenAnalysis< MatrixType, EigenValuesArrayType, EigenVectorsMatrixType > itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricEigenAnalysisType |
Definition at line 106 of file itkSymmetricSecondRankTensor.h.
typedef Superclass::ValueType itk::SymmetricSecondRankTensor< TComponent, NDimension >::ValueType |
The element type stored at each location in the FixedArray.
Reimplemented from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >.
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Definition at line 101 of file itkSymmetricSecondRankTensor.h.
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor | ( | ) | [inline] |
Default constructor has nothing to do.
Definition at line 109 of file itkSymmetricSecondRankTensor.h.
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor | ( | const ComponentType & | r | ) | [inline] |
Definition at line 111 of file itkSymmetricSecondRankTensor.h.
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor | ( | const SymmetricSecondRankTensor< TCoordRepB, NDimension > & | pa | ) | [inline] |
Constructor to enable casting...
Definition at line 115 of file itkSymmetricSecondRankTensor.h.
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor | ( | const ComponentArrayType | r | ) | [inline] |
Pass-through constructor for the Array base class.
Definition at line 121 of file itkSymmetricSecondRankTensor.h.
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComputeEigenAnalysis | ( | EigenValuesArrayType & | eigenValues, |
EigenVectorsMatrixType & | eigenVectors | ||
) | const |
Return an array containing EigenValues, and a matrix containing Eigen vectors.
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComputeEigenValues | ( | EigenValuesArrayType & | eigenValues | ) | const |
Return an array containing EigenValues.
ComponentType itk::SymmetricSecondRankTensor< TComponent, NDimension >::GetNthComponent | ( | int | c | ) | const [inline] |
Return the value for the Nth component.
Definition at line 163 of file itkSymmetricSecondRankTensor.h.
static unsigned int itk::SymmetricSecondRankTensor< TComponent, NDimension >::GetNumberOfComponents | ( | ) | [inline, static] |
Return the number of components.
Definition at line 157 of file itkSymmetricSecondRankTensor.h.
AccumulateValueType itk::SymmetricSecondRankTensor< TComponent, NDimension >::GetTrace | ( | ) | const |
Get Trace value
Reimplemented in itk::DiffusionTensor3D< TComponent >.
ValueType& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator() | ( | unsigned int | row, |
unsigned int | col | ||
) |
Matrix notation, in const and non-const forms.
const ValueType& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator() | ( | unsigned int | row, |
unsigned int | col | ||
) | const |
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator* | ( | const RealValueType & | scalar | ) | const |
Arithmetic operations between tensors and scalars
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator*= | ( | const RealValueType & | scalar | ) |
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator+ | ( | const Self & | vec | ) | const |
Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator+= | ( | const Self & | vec | ) |
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator- | ( | const Self & | vec | ) | const |
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator-= | ( | const Self & | vec | ) |
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator/ | ( | const RealValueType & | scalar | ) | const |
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator/= | ( | const RealValueType & | scalar | ) |
Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator= | ( | const SymmetricSecondRankTensor< TCoordRepB, NDimension > & | pa | ) | [inline] |
Templated Pass-through assignment for the Array base class.
Definition at line 125 of file itkSymmetricSecondRankTensor.h.
Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator= | ( | const ComponentType & | r | ) |
Pass-through assignment operator for the Array base class.
Reimplemented in itk::DiffusionTensor3D< TComponent >.
Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator= | ( | const ComponentArrayType | r | ) |
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::PostMultiply | ( | const MatrixType & | m | ) | const |
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::PreMultiply | ( | const MatrixType & | m | ) | const |
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::SetIdentity | ( | ) |
Set the tensor to an identity tensor. This has 1 in its diagonal elements and zero elsewhere.
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::SetNthComponent | ( | int | c, |
const ComponentType & | v | ||
) | [inline] |
Set the Nth component to v.
Definition at line 166 of file itkSymmetricSecondRankTensor.h.
const unsigned int itk::SymmetricSecondRankTensor< TComponent, NDimension >::Dimension = NDimension [static] |
Dimension of the vector space.
Reimplemented from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >.
Definition at line 84 of file itkSymmetricSecondRankTensor.h.
const unsigned int itk::SymmetricSecondRankTensor< TComponent, NDimension >::InternalDimension = ( NDimension * ( NDimension + 1 ) / 2 ) [static] |
Dimension of the vector space.
Definition at line 85 of file itkSymmetricSecondRankTensor.h.
Referenced by itk::SymmetricSecondRankTensor< TComponent, 3 >::GetNumberOfComponents().