Hello,
The first 3 elements in the last column are just the translations from the reference space to the target space ( the centre-to-centre transformation is implicit in how the matrices are used ), but the quickest way to decompose the affine into the values you want is to use the avscale command.
Hope this helps,
Kind Regards
Matthew
--------------------------------
Dr Matthew Webster
FMRIB Centre
John Radcliffe Hospital
University of Oxford
> On 1 Dec 2017, at 09:19, Richard Buschbeck <[log in to unmask]> wrote:
>
> Dear FSL community,
>
> I am registering a series of 3D MRI images to a reference image (the first in the series) using FLIRT. I use 6 degrees of freedom, i.e. rigid-body registrations with rotations and translations only.
>
> In the end, FLIRT gives me a 4x4 transformation matrix for every image that was registered to the reference. The FAQ page of FLIRT says that the first three elements in the last column of the transformation matrices represent a shift from the corner voxel of the FOV to the centre of mass in the FOV.
> My question is, how can I compute the motion parameters of a transformation matrix with respect to the centre of the FOV instead of the centre of mass of the FOV? My initial guess would be to multiply another transformation matrix (representing the shift from centre of mass of the FOV to the actual centre of the FOV) to the FLIRT matrix and then extract the rotation angles and the translations. However, when I try to do that the results are completely unreasonable.
>
> Also, one of my transformation matrices shows the following elements for the translations: [-7.975840079, -1.187841589, 10.75424982]. As far as I understand, these values are supposed to represent the shift (in mm) from the corner voxel of the FOV to the centre of mass in the FOV. However, they seem too small given that the head lies roughly in the centre of the FOV and the FOV is 240mm in every direction, right?
>
> Can anybody help me solve my misunderstanding?
>
> Cheers,
> Richard Buschbeck
|