3drotate -points with tlrc.xfrm


I have been trying to use 3drotate with the -points option to manually transform coordinates according to the output from something like:

➜  T1 cat_matvec 02mnd_anat_train_al+tlrc.HEAD::WARP_DATA   
         1.0303                 0                 0       1.44881
                 0       1.03285     -0.157387       6.64028
                 0       0.14477      0.950072       5.04358

However, when I try and use 3drotate -points with that as input, it throws an error saying that the rotation matrix is not orthogonal.

If I generate polar transformed versions of those coordiantes, with something like:

➜  T1 cat_matvec 02mnd_anat_train_al+tlrc.HEAD::WARP_DATA -P
            1                  0                  0      1.44881
            0      0.988588     -0.150642       6.64028
            0      0.150642      0.988588       5.04358

Then it “works”, in that I do not get the error about it not being orthogonal… but I wonder why this transformation is necessary, or if it’s sensible given my use case. My objective is to do something like adwarp, but to coordinates instead of an MRI volume. Is that transformation done when I apply the parameters to a MRI volume with adwarp? What can I do to make the -points rotation as similar as possible to the adwarp transformation?


I’ve never tried the points option. Instead, I typically use Vecwarp to transform coordinates. Will that work for you?