MRtrix3 provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density
As part of this change, I decided that the "b=0 threshold" is more appropriate in dwi/gradient.h rather than dwi/shells.h, since it may be applied to individual volumes rather than shells. Here it's used to say "if two images both have a b=0 volume here, then their diffusion gradient tables are compatible; I don't care if their unit directions are different".
Also fixed some transitive includes in the process.
The new tests should hopefully demonstrate the fix:
Without this PR, the two "dw_scheme" entries only have to differ by one least significant digit to result in the whole diffusion gradient table being discarded.
But conversely, if two images undergo an operation and their diffusion gradient tables are totally incompatible, it'll still be dropped.
(They also neatly demonstrate why having just a list of tests per command is restrictive;
with ctest I'll be able to name these tests according to what they are actually evaluating,
which isn't specific to any one command)
Closes #3015.
As part of this change, I decided that the "b=0 threshold" is more appropriate in
dwi/gradient.h
rather thandwi/shells.h
, since it may be applied to individual volumes rather than shells. Here it's used to say "if two images both have a b=0 volume here, then their diffusion gradient tables are compatible; I don't care if their unit directions are different".Also fixed some transitive includes in the process.
The new tests should hopefully demonstrate the fix:
dw_scheme
" entries only have to differ by one least significant digit to result in the whole diffusion gradient table being discarded.(They also neatly demonstrate why having just a list of tests per command is restrictive; with
ctest
I'll be able to name these tests according to what they are actually evaluating, which isn't specific to any one command)