Global intensity normalization - On dwi or on FOD?

Dear Mrtrix expert,
I’m looking at various pipelines and found that there are at least two ways to perform global intensity normalization. One way is to normalize the DWI data through “dwiintensitynorm” ; The other is to normalize the FODs through “mtnormalise”. Two code samples are attached for your information. What is the difference in terms of effect on the eventual results, like the tracked fibers? And which way is recommended for the fixed based analysis?

Thank you.

dwiintensitynorm -tempdir ${dir_tmp} -nthreads 12 -verbose -force ${dir_DWI} ${dir_BM} ${dir_script}/Normalised FA_template.mif WM_mask.mif|

mtnormalise wmfod.mif wmfod_norm.mif gmfod.mif gmfod_norm.mif csffod.mif csffod_norm.mif –mask mask_den_unr_preproc_unb.mif


Hi @jingleil,

Nowdays, I wouldn’t use dwiintesitynorm. I would use for all the pipelines mtnormalise (even for the single shell data). For the multi shell data is the recommended tool.

For single shell data you have two options: use the dhollander algorithm to calculate the multishell response function, and then use only the WM and CSF responses to create the FODs and use mtnormalise with these FODs, or to use the new SS3T algorithm ( and use the three components to create the FODs and mtnormalise.

Best regards,



Hi Manual
Your answer solved my confusion. Thank you.


Hey @jingleil,

Yes, just for the record: I can fully support @mblesac’s answer here: mtnormalise is much more reliable. Technically you need at least 2 tissues in the model for this to become at least sensible, but in practice I’ve noticed 3 is highly preferable. For lower b-values (or for extremely high b-values actually too) for example, using 2 tissues (WM and CSF, that is) with mtnormalise introduces a few concerns. For reference, I’ve mentioned some of this as well over here and over here on the forum. To avoid these concerns, always use 3 tissues; either using MSMT-CSD or SS3T-CSD, depending on your data and what metric you wish to extract.