Hi,
For my pipeline I use FSL and ANTs and at some point I was converting the ANTs transformations to FSL by doing this:
c3d_affine_tool -ref Template_T2w.nii.gz -src T2w.nii.gz -itk ants_str2Template_0GenericAffine.mat -ras2fsl -o ants_str2Template_affine_flirt.mat
c3d -mcs ants_str2Template_1Warp.nii.gz -oo ants_str2Template_wx.nii.gz ants_str2Template_wy.nii.gz ants_str2Template_wz.nii.gz
fslmaths ants_str2Template_wy -mul -1 ants_str2Template_i_wy
fslmerge -t ants_str2Template_warp_fnirt ants_str2Template_wx ants_str2Template_i_wy ants_str2Template_wz
convertwarp --ref=Template_T2w.nii.gz --premat=ants_str2Template_affine_flirt.mat --warp1=ants_str2Template_warp_fnirt --out=str2Template_warp
This works for my dataset. Reading about if this was the correct way to do it, I found another possibility using connectome workbench:
c3d_affine_tool -ref Template_T2w.nii.gz -src T2w.nii.gz -itk ants_str2Template_0GenericAffine.mat -ras2fsl -o ants_str2Template_affine_flirt.mat
wb_command -convert-warpfield -from-itk ants_str2Template_1Warp.nii.gz -to-fnirt ants_str2Template_warp_fnirt Template_T2w.nii.gz
convertwarp --ref=Template_T2w.nii.gz --premat=ants_str2Template_affine_flirt.mat --warp1=ants_str2Template_warp_fnirt --out=str2Template_warp
The results look identical, but they have some differences in the last decimal numbers in some voxels. My question is: are both methods equivalent in general? or the first case only works in this case because it assumes the images to be in a certain orientation and in this case is true? Thanks in advance.
Best regards,
Manuel