How to do fiber tracking using VTK for DTI?

Hi,
I use ITK to load a DWI and then use itk::DiffusionTensor3DReconstructionImageFilter to calculate the tensor. After that how to do fiber tracking?
I plan to first convert the ITK tensor image to VTK image, then use vtkHyperStreamline to do it.
I am not sure if this is the correct way to do it.
BTW, if I specify multiply seeds for vtkHyperStreamline and if two or three seeds happen to be on the same fiber, does the output of the vtkHyperStreamline filter contain duplicate fibers?

Any suggestions are really appreciated.

Yixun

Have a look at https://dmri.slicer.org/ where all the tractography is done with add-on VTK C++ classes.

Thanks for your response.
I just checked vtkHyperStreamlineDTMRI.cxx under vtkDMRI folder and I think this is the main filter to do the fiber tracking. I have two questions about the use of this filter.

  1. It looks this filter generates one or two hyperstreamlines for one seed. If I have multiple seeds do I need to call this filter multiple times?

  2. This filter works on VTK tensor image. I use ITK to load a NRRD DWI image and then use itk::DiffusionTensor3DReconstructionImageFilter to produce ITK tensor image. How to convert the ITK tensor image to VTK tensor image?

Many thanks.

Yixun

All of the things you mentioned (and a lot more) is already implemented and open source in SlicerDMRI. What I suggest is that you try using it and follow a few tutorials. Then based on the names of the features you can find the source code that implements the features and you can see how everything works.

Thanks a lot for your suggestion.

Many thanks for your suggestion!