Sct_register_multimodal - interpolation without registration

To register or not to register… that is the question!
(Sorry… I had to… :wink: )

@jcohenadad - I’m sorry if this question has been asked previously, but I can’t find it when I search this forum…

I would like to ‘register’ dataset A to B, but I already know that they are in the same physical space and thus only wish to interpolate the lower-res dataset (A) to match the higher-res dataset (B) – with no translation, scaling, shrinkage, or deformation whatsoever. I have read the help documentation for sct_register_multimodal several times, but am unconvinced, with the brief verbiage provided, that I understand how to do this with 100% certainty. Use of the option -identity 1 alone suggests that this may be all that I need, though when I use it the output says:

[0mRegistration parameters: [0m
[0m type … im [0m
[0m algo … syn [0m
[0m slicewise … 0 [0m
[0m metric … MI [0m
[0m iter … 0 [0m
[0m smooth … 0 [0m
[0m laplacian … 0 [0m
[0m shrink … 1 [0m
[0m gradStep … 0.5 [0m
[0m deformation … 1x1x0 [0m
[0m init … [0m
[0m poly … 5 [0m
[0m dof … Tx_Ty_Tz_Rx_Ry_Rz [0m
[0m smoothWarpXY … 2 [0m
[0m rot_method … pca [0m

… and it makes me a bit nervous that gradStep is non-zero, or MI is listed as the metric, if it is truly not doing any registration.

Or do I need to do a bit more work with this command, like:

sct_register_multimodal -i A.nii -d B.nii -identity 1 -v 1 -x spline -param step=0,deformation=0x0x0,shrink=0,gradStep=0 -o C.nii

Or should I use another function for this purpose?

I am using the most recent version of the SCT, obtained with git pull on 2019-07-16. Any insight would be greatly appreciated. Thanks!


Hi Rob,

you had it right:

sct_register_multimodal -i <file> -d <file> -identity 1

Don’t pay attention to the SyN parameters of “Step 0” because SyN is not applied here (you notice the iter=0). This is a “hack” to have ANTs estimate an affine matrix without actually running SyN…


1 Like