Difference between revisions of "NAMIC Wiki:DTI:ITK"

From NAMIC Wiki
Jump to: navigation, search
m (Update from Wiki)
m (Update from Wiki)
Line 1: Line 1:
== ITK Data Structure for DT Images ==
+
=== DTITubeSpatialObject and DTITubeSpatialObjectPoint ===
  
Since the itk::Image class is templated over pixel type and dimension, specifying a DT image is simply a matter of instantiating the image class over the appropriate tensor pixel type. However, there may be factors that we need to consider to make such an image practical.
+
See [[NAMIC_Wiki:DTI:Fiber_format|Fiber format]] for a discussion of the DTITubeSpatialObject as a file format.
  
If we are focusing on 3D symmetric tensors, then each pixel at a minimum needs to store 6 floating point values to describe the tensor. To avoid calculating eigenvalues and eigenvectors multiple times for a given tensor during the course of an algorithm or pipeline of algorithms, there is a temptation to cache the eigenvalue and eigenvectors associated with a tensor. Processing DTI could quickly exhaust physical memory.
+
An itk::DTITubeSpatialObjectPoint represents DTI information at a physical coordinate. DTITubeSpatialObjectPoints are used to build itk::DTITubeSpatialObjects which can be connected into a tube network.
  
Some ideas to consider:
+
DTITubeSpatialObjectPoint stores the following information:
  
* Does every pixel in an DT image need to be stored? Are there pixels in the DT image that are outside the anatomical region of interest?
+
* Tensor.
** If so, the DT pixel should have minimum storage, perhaps just an internal pointer to the tensor data. That pointer could be null if the tensor for that pixel is not needed.
+
** Assumed to be a symmetric tensor of dimension 3.
* Should the DT pixel be able to cache structure information (eigenvalues and eigenvectors)?
+
** 6 floating point values.
** The DT pixel could cache this information is the algorithm requested.
+
* Eigenvalues
** Tensor::ComputeEigenSystem(cache = true)
+
** 3 floating point values
** Could have methods to destroy cached data
+
* Eigenvectors
** Or should caching this type of information be left to the algorithm developer. An algorithm could separate data structures for caching eigenvalues and eigenvectors.
+
** 3 vectors each with 3 floating point values
* Should the DT pixel type store FA and ADC?
+
* FA
 +
** float
 +
* GA
 +
** float
 +
* ADC
 +
** float
 +
* MRI.
 +
** 5 floating point values.
 +
* Interpolation flag
 +
** int
 +
* Number of dimensions
 +
** unsigned short

Revision as of 14:06, 18 December 2006

Home < NAMIC Wiki:DTI:ITK

DTITubeSpatialObject and DTITubeSpatialObjectPoint

See Fiber format for a discussion of the DTITubeSpatialObject as a file format.

An itk::DTITubeSpatialObjectPoint represents DTI information at a physical coordinate. DTITubeSpatialObjectPoints are used to build itk::DTITubeSpatialObjects which can be connected into a tube network.

DTITubeSpatialObjectPoint stores the following information:

  • Tensor.
    • Assumed to be a symmetric tensor of dimension 3.
    • 6 floating point values.
  • Eigenvalues
    • 3 floating point values
  • Eigenvectors
    • 3 vectors each with 3 floating point values
  • FA
    • float
  • GA
    • float
  • ADC
    • float
  • MRI.
    • 5 floating point values.
  • Interpolation flag
    • int
  • Number of dimensions
    • unsigned short