NAMIC Wiki:DTI:ITK-DiffusionTensorImageType
From NAMIC Wiki
Home < NAMIC Wiki:DTI:ITK-DiffusionTensorImageType
ITK Data Structure for DT Images
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.
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.
Some ideas to consider:
- 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?
- 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.
- Should the DT pixel be able to cache structure information (eigenvalues and eigenvectors)?
- The DT pixel could cache this information is the algorithm requested.
- Tensor::ComputeEigenSystem(cache = true)
- Could have methods to destroy cached data
- Or should caching this type of information be left to the algorithm developer. An algorithm could separate data structures for caching eigenvalues and eigenvectors.
- Should the DT pixel type store FA and ADC?