Getting coregistration perfect when segmentation is not?

Dear experts!

I hope you are all safe and healthy.

Here is my issue on which I’d appreciate a second expert opinion.
I have a lot of scans to coregister, with different resolutions and contrasts.
In some of those scans, the segmentation of the spinal cord works very well, and I can use it to drive a two-step coregistration process, for example:

sct_register_multimodal -i qMT_ON.nii -iseg qMT_ON_seg.nii -d MTw_mean.nii -dseg MTw_mean_seg.nii -param step=1,type=seg,algo=centermass:step=2,algo=syn,type=im,metric=MI,iter=3,slicewise=0 -o qMT_ON_coreg_withseg.nii

In some scans, this is not the case, as the segmentation misses bits either along the z axis (some slices have no segmented cord in them) or along the x-y plane (the cord is not segmented properly). In my limited experience, this results in the coregistration being thrown off.
Segmentation outcome:


Coregistration with segmentation:

sct_register_multimodal -i qMT_OFF.nii -iseg qMT_OFF_seg.nii -d MTw_mean.nii -dseg MTw_mean_seg.nii -param step=1,type=seg,algo=centermass:step=2,algo=syn,type=im,metric=MI,iter=3,slicewise=0 -o qMT_OFF_coreg_withseg.nii
image
image

Without segmentation:

sct_register_multimodal -i qMT_OFF.nii -iseg qMT_OFF_seg.nii -d MTw_mean.nii -dseg MTw_mean_seg.nii -param step=1,algo=syn,type=im,metric=MI,iter=3,slicewise=0 -o qMT_OFF_coreg_noseg.nii

image
image

My current approach is to skip the segmentation-guided coregistration step, and it seems to work for the most part (with some extra tinkering for scans that have a saturation band), but it feels somehow wrong not to use the full feature set of SCT.

It feels like tinkering with the segmentation to get it perfect on a scan and subject-specific basis will introduce more potential for errors than just staying with a single-step coregistration, but maybe I am missing something.

Data here:

Stay safe!

Hi @Daniel_Papp,

If segmentation is unreliable and you want to co-register scans within session (e.g. MTon/MToff), then i would definitely not use the segmentation for the registration. This is also what is recommended in the example batch_processing.sh script (you will notice that the flag -dseg is set, but it is only used for centering each QC panel).

So you’re on the right tracks :+1:

Julien