NIRALUser / DTIProcessToolkit

DTIProcess is a DTI processing and analysis toolkit developed in UNC and University of Utah
http://www.nitrc.org/projects/dtiprocess
Apache License 2.0
7 stars 8 forks source link

ENH: Prefer ITK filters to local version #9

Closed hjmjohnson closed 9 years ago

hjmjohnson commented 9 years ago

Investigated differences between ITK version and local version.

The itkSymmetricEigenAnalsysImageFilter and the local itkFastSymmetricEigenAnalsysImageFilter were nearly identical. Upon inspection it is clear that at some point one of these files was a direct copy of the other.

The local version directly called vnl_symmetric_eigensystem, which is appearently not thread safe. The ITK version uses a the itkSymmetricEigenAnalysis class (A thread safe alternative to vnl_symmetric_eigensystem) to do the computations:

\brief Find Eigen values of a real 2D symmetric matrix. It serves as a thread-safe alternative to the class: vnl_symmetric_eigensystem, which uses netlib routines. * Additionally, itkSymmetricEigenAnalysis has a desired default behavior of ordering eigen values. The ITK version also provides mechanisms for choosing other ordering behavior (And respects the choice given!).

Finally, this itkSymmetricEigenAnalysis is used in Slicer, so this would allow Slicer and DTIProcess to use the same underlying code.

resolves gh-7 https://github.com/NIRALUser/DTIProcessToolkit/issues/7

hjmjohnson commented 9 years ago

Note: All test that use this code pass. The one failing test is unrelated and fixed in a different patch.