Hello,
me again :-)
I have rerun mcflirt on one of my datasets that I have already run feat on; I have just added '-mats' flag so that I can view the transformation matrices.
Now, if I look at MAT_0054 (reference volume) the transformation matrix, as expected, is an identity matrix. MAT_0053 is as follows
1.000000 0.000432 0.000000 -0.025673
-0.000432 1.000000 0.000719 -0.005124
0.000000 -0.000719 1.000000 0.117482
0.000000 0.000000 0.000000 1.000000
The way I understand homogeneous coordinate transformation matrices is that the fourth column represents the transformations -> [ x_trans y_trans z_trans 1] (written as a row vector). Also, in this case, this should represent the transformation between volumes 53 and 54. (And in MAT_0022 the transformation values would be the transformation between volumes 22 and 54 - right?). Further, if I wanted to calculate new coordinates of a voxel it would be: new_coordinates[mm] = matrix * old_coordinates[mm]. (I quote from a previous email on fsl list: "...the matrices always use mm coordinates."). So, in case of translation only it would look something like this:
x1 1 0 0 tx x x+tx
y1 = 0 1 0 ty * y = y+ty
z1 0 0 1 tz z z+tz
1 0 0 0 1 1 1
and if (x,y,z) are in mm, and (tx,ty,tz) are in mm - everything works fine. Ok, but...
On the other hand, prefiltered_func_data_mcf.par is said to hold values of rotations and translation in rad and mm, respectively. If I look at the *.par file, in the row corresponding to volume 53, the transformation values are (translations only):
0.0203309 -0.0237613 0.0408271
which is completely different from the fourth column in the matrix above (not just the values, but also the signs). Shouldn't these be the same values as in the matrix? Or am I completely missing the point? (or it is maybe lack of food...)
Thank you, again!
Zrinka
|