vtkDiffusionTensorMathematics Class Reference

#include <vtkDiffusionTensorMathematics.h>

Inheritance diagram for vtkDiffusionTensorMathematics:
vtkThreadedImageAlgorithm

List of all members.

Public Types

enum  {
  VTK_TENS_TRACE, VTK_TENS_DETERMINANT, VTK_TENS_RELATIVE_ANISOTROPY, VTK_TENS_FRACTIONAL_ANISOTROPY,
  VTK_TENS_MAX_EIGENVALUE, VTK_TENS_MID_EIGENVALUE, VTK_TENS_MIN_EIGENVALUE, VTK_TENS_LINEAR_MEASURE,
  VTK_TENS_PLANAR_MEASURE, VTK_TENS_SPHERICAL_MEASURE, VTK_TENS_COLOR_ORIENTATION, VTK_TENS_D11,
  VTK_TENS_D22, VTK_TENS_D33, VTK_TENS_MODE, VTK_TENS_COLOR_MODE,
  VTK_TENS_MAX_EIGENVALUE_PROJX, VTK_TENS_MAX_EIGENVALUE_PROJY, VTK_TENS_MAX_EIGENVALUE_PROJZ, VTK_TENS_RAI_MAX_EIGENVEC_PROJX,
  VTK_TENS_RAI_MAX_EIGENVEC_PROJY, VTK_TENS_RAI_MAX_EIGENVEC_PROJZ, VTK_TENS_PARALLEL_DIFFUSIVITY, VTK_TENS_PERPENDICULAR_DIFFUSIVITY
}
 

Operation options.

More...

Public Member Functions

void ComputeTensorIncrements (vtkImageData *imageData, vtkIdType incr[3])
void PrintSelf (ostream &os, vtkIndent indent)
void SetOperationToColorByMode ()
void SetOperationToColorByOrientation ()
void SetOperationToD11 ()
void SetOperationToD22 ()
void SetOperationToD33 ()
void SetOperationToDeterminant ()
void SetOperationToFractionalAnisotropy ()
void SetOperationToLinearMeasure ()
void SetOperationToMaxEigenvalue ()
void SetOperationToMaxEigenvalueProjectionX ()
void SetOperationToMaxEigenvalueProjectionY ()
void SetOperationToMaxEigenvalueProjectionZ ()
void SetOperationToMiddleEigenvalue ()
void SetOperationToMinEigenvalue ()
void SetOperationToMode ()
void SetOperationToParallelDiffusivity ()
void SetOperationToPerpendicularDiffusivity ()
void SetOperationToPlanarMeasure ()
void SetOperationToRAIMaxEigenvecX ()
void SetOperationToRAIMaxEigenvecY ()
void SetOperationToRAIMaxEigenvecZ ()
void SetOperationToRelativeAnisotropy ()
void SetOperationToSphericalMeasure ()
void SetOperationToTrace ()
virtual void SetScalarMask (vtkImageData *)
virtual void SetTensorRotationMatrix (vtkMatrix4x4 *)
 vtkBooleanMacro (FixNegativeEigenvalues, int)
 vtkBooleanMacro (MaskWithScalars, int)
 vtkBooleanMacro (ExtractEigenvalues, int)
 vtkGetMacro (MaskLabelValue, int)
 vtkGetMacro (FixNegativeEigenvalues, int)
 vtkGetMacro (MaskWithScalars, int)
 vtkGetMacro (ExtractEigenvalues, int)
 vtkGetMacro (ScaleFactor, double)
 vtkGetMacro (Operation, int)
 vtkGetObjectMacro (ScalarMask, vtkImageData)
 vtkGetObjectMacro (TensorRotationMatrix, vtkMatrix4x4)
 vtkSetClampMacro (Operation, int, VTK_TENS_TRACE, VTK_TENS_PERPENDICULAR_DIFFUSIVITY)
 vtkSetMacro (MaskLabelValue, int)
 vtkSetMacro (FixNegativeEigenvalues, int)
 vtkSetMacro (MaskWithScalars, int)
 vtkSetMacro (ExtractEigenvalues, int)
 vtkSetMacro (ScaleFactor, double)
 vtkTypeMacro (vtkDiffusionTensorMathematics, vtkThreadedImageAlgorithm)

Static Public Member Functions

static void ColorByMode (double w[3], double &R, double &G, double &B)
static double Determinant (double D[3][3])
static int FixNegativeEigenvaluesMethod (double w[3])
static double FractionalAnisotropy (double w[3])
static double LinearMeasure (double w[3])
static double MaxEigenvalue (double w[3])
static double MaxEigenvalueProjectionX (double **v, double w[3])
static double MaxEigenvalueProjectionY (double **v, double w[3])
static double MaxEigenvalueProjectionZ (double **v, double w[3])
static double MiddleEigenvalue (double w[3])
static double MinEigenvalue (double w[3])
static double Mode (double w[3])
static void ModeToRGB (double Mode, double FA, double &R, double &G, double &B)
 Public for access from threads.
static
vtkDiffusionTensorMathematics
New ()
static double ParallelDiffusivity (double w[3])
static double PerpendicularDiffusivity (double w[3])
static double PlanarMeasure (double w[3])
static double RAIMaxEigenvecX (double **v, double w[3])
static double RAIMaxEigenvecY (double **v, double w[3])
static double RAIMaxEigenvecZ (double **v, double w[3])
static double RelativeAnisotropy (double w[3])
static double SphericalMeasure (double w[3])
static int TeemEigenSolver (double **m, double *w, double **v)
static double Trace (double w[3])
static double Trace (double D[3][3])

Protected Member Functions

int FillInputPortInformation (int port, vtkInformation *info)
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual void ThreadedRequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId)
 vtkDiffusionTensorMathematics ()
 ~vtkDiffusionTensorMathematics ()

Protected Attributes

int ExtractEigenvalues
 Scale factor for output scalars.
int FixNegativeEigenvalues
int MaskLabelValue
int MaskWithScalars
 Boolean controls eigenfunction extraction.
int Operation
vtkImageDataScalarMask
double ScaleFactor
 math operation to perform
vtkMatrix4x4 * TensorRotationMatrix

Private Member Functions

void operator= (const vtkDiffusionTensorMathematics &)
 vtkDiffusionTensorMathematics (const vtkDiffusionTensorMathematics &)

Member Enumeration Documentation

anonymous enum

Operation options.

Enumerator:
VTK_TENS_TRACE 
VTK_TENS_DETERMINANT 
VTK_TENS_RELATIVE_ANISOTROPY 
VTK_TENS_FRACTIONAL_ANISOTROPY 
VTK_TENS_MAX_EIGENVALUE 
VTK_TENS_MID_EIGENVALUE 
VTK_TENS_MIN_EIGENVALUE 
VTK_TENS_LINEAR_MEASURE 
VTK_TENS_PLANAR_MEASURE 
VTK_TENS_SPHERICAL_MEASURE 
VTK_TENS_COLOR_ORIENTATION 
VTK_TENS_D11 
VTK_TENS_D22 
VTK_TENS_D33 
VTK_TENS_MODE 
VTK_TENS_COLOR_MODE 
VTK_TENS_MAX_EIGENVALUE_PROJX 
VTK_TENS_MAX_EIGENVALUE_PROJY 
VTK_TENS_MAX_EIGENVALUE_PROJZ 
VTK_TENS_RAI_MAX_EIGENVEC_PROJX 
VTK_TENS_RAI_MAX_EIGENVEC_PROJY 
VTK_TENS_RAI_MAX_EIGENVEC_PROJZ 
VTK_TENS_PARALLEL_DIFFUSIVITY 
VTK_TENS_PERPENDICULAR_DIFFUSIVITY 

Constructor & Destructor Documentation

vtkDiffusionTensorMathematics::vtkDiffusionTensorMathematics (  )  [protected]
vtkDiffusionTensorMathematics::~vtkDiffusionTensorMathematics (  )  [protected]

References ScalarMask, and TensorRotationMatrix.

vtkDiffusionTensorMathematics::vtkDiffusionTensorMathematics ( const vtkDiffusionTensorMathematics  )  [private]

Member Function Documentation

void vtkDiffusionTensorMathematics::ColorByMode ( double  w[3],
double &  R,
double &  G,
double &  B 
) [static]
void vtkDiffusionTensorMathematics::ComputeTensorIncrements ( vtkImageData imageData,
vtkIdType  incr[3] 
)
double vtkDiffusionTensorMathematics::Determinant ( double  D[3][3]  )  [static]
int vtkDiffusionTensorMathematics::FillInputPortInformation ( int  port,
vtkInformation *  info 
) [protected]
int vtkDiffusionTensorMathematics::FixNegativeEigenvaluesMethod ( double  w[3]  )  [static]

Helper functions to perform operations pixel-wise

Referenced by vtkDiffusionTensorMathematicsExecute1Eigen().

double vtkDiffusionTensorMathematics::FractionalAnisotropy ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::LinearMeasure ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::MaxEigenvalue ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::MaxEigenvalueProjectionX ( double **  v,
double  w[3] 
) [static]
double vtkDiffusionTensorMathematics::MaxEigenvalueProjectionY ( double **  v,
double  w[3] 
) [static]
double vtkDiffusionTensorMathematics::MaxEigenvalueProjectionZ ( double **  v,
double  w[3] 
) [static]
double vtkDiffusionTensorMathematics::MiddleEigenvalue ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::MinEigenvalue ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::Mode ( double  w[3]  )  [static]
void vtkDiffusionTensorMathematics::ModeToRGB ( double  Mode,
double  FA,
double &  R,
double &  G,
double &  B 
) [static]

Public for access from threads.

Referenced by ColorByMode().

vtkDiffusionTensorMathematics * vtkDiffusionTensorMathematics::New (  )  [static]
void vtkDiffusionTensorMathematics::operator= ( const vtkDiffusionTensorMathematics  )  [private]
double vtkDiffusionTensorMathematics::ParallelDiffusivity ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::PerpendicularDiffusivity ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::PlanarMeasure ( double  w[3]  )  [static]
void vtkDiffusionTensorMathematics::PrintSelf ( ostream &  os,
vtkIndent  indent 
)

References Operation.

double vtkDiffusionTensorMathematics::RAIMaxEigenvecX ( double **  v,
double  w[3] 
) [static]
double vtkDiffusionTensorMathematics::RAIMaxEigenvecY ( double **  v,
double  w[3] 
) [static]
double vtkDiffusionTensorMathematics::RAIMaxEigenvecZ ( double **  v,
double  w[3] 
) [static]
double vtkDiffusionTensorMathematics::RelativeAnisotropy ( double  w[3]  )  [static]
virtual int vtkDiffusionTensorMathematics::RequestInformation ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
) [protected, virtual]
void vtkDiffusionTensorMathematics::SetOperationToColorByMode (  )  [inline]

Output RGB color according to colormapping of mode, with final RGB being a linear combination of gray and this color. Amount of gray is determined by FA. Thanks to Gordon Lothar Kindlmann for this method.

void vtkDiffusionTensorMathematics::SetOperationToColorByOrientation (  )  [inline]

Output RGB color according to XYZ of eigenvectors. Output A (alpha, or transparency) according to anisotropy (1-spherical measure).

void vtkDiffusionTensorMathematics::SetOperationToD11 (  )  [inline]

Output a matrix (tensor) component

void vtkDiffusionTensorMathematics::SetOperationToD22 (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToD33 (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToDeterminant (  )  [inline]

Output the determinant

void vtkDiffusionTensorMathematics::SetOperationToFractionalAnisotropy (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToLinearMeasure (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToMaxEigenvalue (  )  [inline]

Output a selected eigenvalue

void vtkDiffusionTensorMathematics::SetOperationToMaxEigenvalueProjectionX (  )  [inline]

Output Maxeigenvalue*Maxeigenvec_projection also known as L1Z

void vtkDiffusionTensorMathematics::SetOperationToMaxEigenvalueProjectionY (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToMaxEigenvalueProjectionZ (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToMiddleEigenvalue (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToMinEigenvalue (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToMode (  )  [inline]

This is the skewness of the eigenvalues (thanks to Gordon Lothar (of the Hill People) Kindlmann)

void vtkDiffusionTensorMathematics::SetOperationToParallelDiffusivity (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToPerpendicularDiffusivity (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToPlanarMeasure (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToRAIMaxEigenvecX (  )  [inline]

Output Relative_anisotropy*Maxeigenvec_projection also known as L1z

void vtkDiffusionTensorMathematics::SetOperationToRAIMaxEigenvecY (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToRAIMaxEigenvecZ (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToRelativeAnisotropy (  )  [inline]

Output various anisotropy and shape measures

void vtkDiffusionTensorMathematics::SetOperationToSphericalMeasure (  )  [inline]
void vtkDiffusionTensorMathematics::SetOperationToTrace (  )  [inline]

Output the trace (sum of eigenvalues = sum along diagonal)

virtual void vtkDiffusionTensorMathematics::SetScalarMask ( vtkImageData  )  [virtual]

Scalar mask

virtual void vtkDiffusionTensorMathematics::SetTensorRotationMatrix ( vtkMatrix4x4 *   )  [virtual]

Description This matrix is only used for ColorByOrientation. We transform the tensor orientation by this matrix before setting the output RGB values. This is useful to put the output colors into a standard coordinate system (i.e. RAS) regardless of the data scan order. Example usage is as follows: 1) If tensors are to be displayed in a coordinate system that is not IJK (array-based), and the whole volume is being rotated, each tensor needs also to be rotated. First find the matrix that positions your volume. (This is how the entire volume is positioned, not the matrix that positions an arbitrary reformatted slice.) 2) Remove scaling and translation from this matrix; we just need to rotate each tensor. 3) Set TensorRotationMatrix to this rotation matrix.

double vtkDiffusionTensorMathematics::SphericalMeasure ( double  w[3]  )  [static]
int vtkDiffusionTensorMathematics::TeemEigenSolver ( double **  m,
double *  w,
double **  v 
) [static]
virtual void vtkDiffusionTensorMathematics::ThreadedRequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector,
vtkImageData ***  inData,
vtkImageData **  outData,
int  extent[6],
int  threadId 
) [protected, virtual]
double vtkDiffusionTensorMathematics::Trace ( double  w[3]  )  [static]
double vtkDiffusionTensorMathematics::Trace ( double  D[3][3]  )  [static]
vtkDiffusionTensorMathematics::vtkBooleanMacro ( FixNegativeEigenvalues  ,
int   
)
vtkDiffusionTensorMathematics::vtkBooleanMacro ( MaskWithScalars  ,
int   
)

Description Input scalars are a binary mask: 0 prevents display of tensor quantity at that point

vtkDiffusionTensorMathematics::vtkBooleanMacro ( ExtractEigenvalues  ,
int   
)
vtkDiffusionTensorMathematics::vtkGetMacro ( MaskLabelValue  ,
int   
)
vtkDiffusionTensorMathematics::vtkGetMacro ( FixNegativeEigenvalues  ,
int   
)
vtkDiffusionTensorMathematics::vtkGetMacro ( MaskWithScalars  ,
int   
)
vtkDiffusionTensorMathematics::vtkGetMacro ( ExtractEigenvalues  ,
int   
)
vtkDiffusionTensorMathematics::vtkGetMacro ( ScaleFactor  ,
double   
)
vtkDiffusionTensorMathematics::vtkGetMacro ( Operation  ,
int   
)

Get the Operation to perform.

vtkDiffusionTensorMathematics::vtkGetObjectMacro ( ScalarMask  ,
vtkImageData   
)
vtkDiffusionTensorMathematics::vtkGetObjectMacro ( TensorRotationMatrix  ,
vtkMatrix4x4   
)
vtkDiffusionTensorMathematics::vtkSetClampMacro ( Operation  ,
int  ,
VTK_TENS_TRACE  ,
VTK_TENS_PERPENDICULAR_DIFFUSIVITY   
)
vtkDiffusionTensorMathematics::vtkSetMacro ( MaskLabelValue  ,
int   
)

Label value defining ROI for mask

vtkDiffusionTensorMathematics::vtkSetMacro ( FixNegativeEigenvalues  ,
int   
)
vtkDiffusionTensorMathematics::vtkSetMacro ( MaskWithScalars  ,
int   
)
vtkDiffusionTensorMathematics::vtkSetMacro ( ExtractEigenvalues  ,
int   
)

Turn on/off extraction of eigenvalues from tensor.

vtkDiffusionTensorMathematics::vtkSetMacro ( ScaleFactor  ,
double   
)

Specify scale factor to scale output (float) scalars by. This is not used when the output is RGBA (char color data).

vtkDiffusionTensorMathematics::vtkTypeMacro ( vtkDiffusionTensorMathematics  ,
vtkThreadedImageAlgorithm   
)

Member Data Documentation

Scale factor for output scalars.

Referenced by vtkDiffusionTensorMathematics().

Boolean controls eigenfunction extraction.

Referenced by vtkDiffusionTensorMathematics().

math operation to perform

Referenced by vtkDiffusionTensorMathematics().


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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1