Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType > Class Template Reference
[Multithreaded FiltersObjects Related to Tensor Images]

This class takes as input a reference image (acquired in the absence of diffusion sensitizing gradients) and 'n' diffusion weighted images and their gradient directions and computes an image of tensors. (with DiffusionTensor3D as the pixel type). Once that is done, you can apply filters on this tensor image to compute FA, ADC, RGB weighted maps etc. The class is templated over the pixel type of the reference and gradient images (expected to be scalar images) and the internal representation of the DiffusionTensor3D pixel (double, float etc). More...

#include <itkDiffusionTensor3DReconstructionImageFilter.h>

Inheritance diagram for itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >:

Inheritance graph
[legend]
Collaboration diagram for itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef DiffusionTensor3DReconstructionImageFilter Self
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef ImageToImageFilter<
Image< TReferenceImagePixelType,
3 >, Image< DiffusionTensor3D<
TTensorPixelType >, 3 > > 
Superclass
typedef TReferenceImagePixelType ReferencePixelType
typedef TGradientImagePixelType GradientPixelType
typedef DiffusionTensor3D<
TTensorPixelType > 
TensorPixelType
typedef Superclass::InputImageType ReferenceImageType
typedef Image< TensorPixelType, 3 > TensorImageType
typedef TensorImageType OutputImageType
typedef Superclass::OutputImageRegionType OutputImageRegionType
typedef Image< GradientPixelType, 3 > GradientImageType
typedef vnl_matrix_fixed<
double, 6, 6 > 
TensorBasisMatrixType
typedef vnl_matrix< double > CoefficientMatrixType
typedef vnl_vector_fixed<
double, 3 > 
GradientDirectionType
typedef VectorContainer< unsigned
int, GradientDirectionType
GradientDirectionContainerType

Public Member Functions

virtual const char * GetNameOfClass () const
void AddGradientImage (const GradientDirectionType &, const GradientImageType *image)
void SetReferenceImage (ReferenceImageType *referenceImage)
virtual ReferenceImageTypeGetReferenceImage ()
virtual GradientImageTypeGetGradientImage (unsigned int idx)
virtual GradientDirectionType GetGradientDirection (unsigned int idx) const
virtual void SetThreshold (ReferencePixelType _arg)
virtual ReferencePixelType GetThreshold ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 DiffusionTensor3DReconstructionImageFilter ()
 ~DiffusionTensor3DReconstructionImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
void ComputeTensorBasis ()
void BeforeThreadedGenerateData ()
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, int)

Detailed Description

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
class itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >

This class takes as input a reference image (acquired in the absence of diffusion sensitizing gradients) and 'n' diffusion weighted images and their gradient directions and computes an image of tensors. (with DiffusionTensor3D as the pixel type). Once that is done, you can apply filters on this tensor image to compute FA, ADC, RGB weighted maps etc. The class is templated over the pixel type of the reference and gradient images (expected to be scalar images) and the internal representation of the DiffusionTensor3D pixel (double, float etc).

The funding for creating this class was largely provided by NAMIC (National Alliance for Medical Image Computing) (http://www.na-mic.org).

References:
C.F.Westin, S.E.Maier, H.Mamata, A.Nabavi, F.A.Jolesz, R.Kikinis, "Processing and visualization for Diffusion tensor MRI", Medical image Analysis, 2002, pp 93-108.
Author:
Based on code from Xiaodong Tao, GE CRD.
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.

See also:
DiffusionTensor3D SymmetricSecondRankTensor

Definition at line 61 of file itkDiffusionTensor3DReconstructionImageFilter.h.


Member Typedef Documentation

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef vnl_matrix< double > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::CoefficientMatrixType
 

Definition at line 104 of file itkDiffusionTensor3DReconstructionImageFilter.h.

Referenced by itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::~DiffusionTensor3DReconstructionImageFilter().

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef SmartPointer<const Self> itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ConstPointer
 

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

Definition at line 70 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef VectorContainer< unsigned int, GradientDirectionType > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GradientDirectionContainerType
 

Container to hold gradient directions of the 'n' DW measurements

Definition at line 111 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef vnl_vector_fixed< double, 3 > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GradientDirectionType
 

Holds each magnetic field gradient used to acquire one DWImage

Definition at line 107 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef Image< GradientPixelType, 3 > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GradientImageType
 

Definition at line 99 of file itkDiffusionTensor3DReconstructionImageFilter.h.

Referenced by itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetGradientImage().

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef TGradientImagePixelType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GradientPixelType
 

Definition at line 84 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef Superclass::OutputImageRegionType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::OutputImageRegionType
 

Superclass typedefs.

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

Definition at line 97 of file itkDiffusionTensor3DReconstructionImageFilter.h.

Referenced by itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::~DiffusionTensor3DReconstructionImageFilter().

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef TensorImageType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::OutputImageType
 

Some convenient typedefs.

Reimplemented from itk::ImageSource< Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

Definition at line 94 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef SmartPointer<Self> itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::Pointer
 

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

Definition at line 69 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef Superclass::InputImageType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ReferenceImageType
 

Reference image data, This image is aquired in teh absence of a diffusion sensitizing field gradient

Definition at line 90 of file itkDiffusionTensor3DReconstructionImageFilter.h.

Referenced by itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetReferenceImage(), and itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::SetReferenceImage().

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef TReferenceImagePixelType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ReferencePixelType
 

Definition at line 82 of file itkDiffusionTensor3DReconstructionImageFilter.h.

Referenced by itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::~DiffusionTensor3DReconstructionImageFilter().

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef DiffusionTensor3DReconstructionImageFilter itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::Self
 

Standard class typedefs.

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

Definition at line 68 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef ImageToImageFilter< Image< TReferenceImagePixelType, 3>, Image< DiffusionTensor3D< TTensorPixelType >, 3 > > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::Superclass
 

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

Definition at line 73 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef vnl_matrix_fixed< double, 6, 6 > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::TensorBasisMatrixType
 

Holds the tensor basis coefficients G_k

Definition at line 102 of file itkDiffusionTensor3DReconstructionImageFilter.h.

Referenced by itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::~DiffusionTensor3DReconstructionImageFilter().

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef Image< TensorPixelType, 3 > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::TensorImageType
 

Definition at line 92 of file itkDiffusionTensor3DReconstructionImageFilter.h.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
typedef DiffusionTensor3D< TTensorPixelType > itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::TensorPixelType
 

Definition at line 86 of file itkDiffusionTensor3DReconstructionImageFilter.h.


Constructor & Destructor Documentation

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::DiffusionTensor3DReconstructionImageFilter  )  [protected]
 

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::~DiffusionTensor3DReconstructionImageFilter  )  [inline, protected]
 

Definition at line 159 of file itkDiffusionTensor3DReconstructionImageFilter.h.

References itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::CoefficientMatrixType, itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::OutputImageRegionType, itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ReferencePixelType, and itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::TensorBasisMatrixType.


Member Function Documentation

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::AddGradientImage const GradientDirectionType ,
const GradientImageType image
 

Set method to add a gradient direction and its corresponding image.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::BeforeThreadedGenerateData void   )  [protected, virtual]
 

If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

Reimplemented from itk::ImageSource< Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ComputeTensorBasis  )  [protected]
 

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
virtual GradientDirectionType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetGradientDirection unsigned int  idx  )  const [inline, virtual]
 

Return the gradient direction. idx is 0 based

Definition at line 139 of file itkDiffusionTensor3DReconstructionImageFilter.h.

References itkExceptionMacro.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
virtual GradientImageType* itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetGradientImage unsigned int  idx  )  [inline, virtual]
 

Return the gradient image. idx is 0 based

Definition at line 128 of file itkDiffusionTensor3DReconstructionImageFilter.h.

References itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GradientImageType, and NULL.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
virtual const char* itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetNameOfClass  )  const [virtual]
 

Runtime information support.

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
virtual ReferenceImageType* itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetReferenceImage void   )  [inline, virtual]
 

Get reference image

Definition at line 124 of file itkDiffusionTensor3DReconstructionImageFilter.h.

References itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ReferenceImageType.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
virtual ReferencePixelType itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::GetThreshold  )  [virtual]
 

Threshold on the reference image data. The output tensor will be a null tensor for pixels in the reference image that have a value less than this threshold.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
Pointer itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::SetReferenceImage ReferenceImageType referenceImage  )  [inline]
 

Set method to set the reference image.

Definition at line 118 of file itkDiffusionTensor3DReconstructionImageFilter.h.

References itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ReferenceImageType.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
virtual void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::SetThreshold ReferencePixelType  _arg  )  [virtual]
 

Threshold on the reference image data. The output tensor will be a null tensor for pixels in the reference image that have a value less than this threshold.

template<class TReferenceImagePixelType, class TGradientImagePixelType, class TTensorPixelType = double>
void itk::DiffusionTensor3DReconstructionImageFilter< TReferenceImagePixelType, TGradientImagePixelType, TTensorPixelType >::ThreadedGenerateData const OutputImageRegionType outputRegionForThread,
int 
[protected, virtual]
 

If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). This superclass will automatically split the output image into a number of pieces, spawn multiple threads, and call ThreadedGenerateData() in each thread. Prior to spawning threads, the BeforeThreadedGenerateData() method is called. After all the threads have completed, the AfterThreadedGenerateData() method is called. If an image processing filter cannot support threading, that filter should provide an implementation of the GenerateData() method instead of providing an implementation of ThreadedGenerateData(). If a filter provides a GenerateData() method as its implementation, then the filter is responsible for allocating the output data. If a filter provides a ThreadedGenerateData() method as its implementation, then the output memory will allocated automatically by this superclass. The ThreadedGenerateData() method should only produce the output specified by "outputThreadRegion" parameter. ThreadedGenerateData() cannot write to any other portion of the output image (as this is responsibility of a different thread).

See also:
GenerateData(), SplitRequestedRegion()

Reimplemented from itk::ImageSource< Image< DiffusionTensor3D< TTensorPixelType >, 3 > >.


The documentation for this class was generated from the following file:
Generated at Thu May 25 00:48:51 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000