Alessandro,
I think what you want is coregistration (for same subject, within or
between modality registration), not realignment (for fMRI). Try using
the first image as the reference, and the second as the image to be
moved, and then click on run. This should bring both images into the
same space. Depending on what you want to do with them, you may or may
not want to reslice them. In any case, there is heaps of information in
the list archives re: transforming voxel to world coordinates. You may
also want to check spm_get_space, which you can use to get, manipulate,
and apply transformation matrices to an image/hdr.
Hope this helps,
Marko
Alessandro Calamuneri wrote:
> Hi all,
> I would like to understand meaning of realignment parameters because I
> need to handle some data coming from a follow up study.
> Let say I have a patient, who came at time t_0; he has been scanned to
> get a /T1old,/ and some datapoints on his scalp have been mapped. Those
> points are in voxel coordinate.
> The same subject came again at time t_1, he has been scanned again and
> new points /Pnew/ have been obtained on the new scan, called /T1new/.
> Now, I would like to overlap new datapoints onto the T1old got at time
> t_0 and compare them somehow with the old datapoints.
> I have used *spm_realign *to get the rigid body transformation of T1new
> to T1old (because the images do differ from one scan to the other)
> Let be *V_rTnew.mat* the voxel2world matrix of the realigned /rT1new/,
> and *V_Told.mat* the voxel2world matrix of *Told*; I can get the
> transformation parameters by typing
>
> *transfparams=spm_imatrix(V_rTnew.mat/V_Told.mat)*
> *
> *
> Now, I can get the affine transformation matrix by using /spm_matrix/
>
> *affineMAT=spm_matrix(transfparams(1:6)); %it is rigid body then only 6
> parameters*
> *
> *
> Eventually. I want to manually transform new datapoints, e.g., *Pnew*,
> in order to be overlapped onto my /Told/ , becamingo finalPnew.
> What is the global transfotmation I have to apply?Would this procedure
> be working?
>
> 1) /VoxPnew/ -> *V_rTnew.mat*[VoxPnew;1]=[MMPnew;1]* (to get the same
> coordinate in millimiters of Tnew space)
> 2) /MMPnew/ -> *affineMAT*[MMPnew;1]=[MMtransfPnew;1]* (to transform the
> coordinates in the same location where they should be in the Told world
> space)
> 3) /MMtrasnfPnew/ -> *inv(V_Told.mat)*[MMtrasnfPnew;1]=[finalP;1]*
>
> I am not sure for two reasons:
> a) I do not know whether my *affineMAT* really maps mm coords of T1new
> to mm coords in Told wrold space
> b) I do not know whether, in step 1), I should use *V_rTnew.mat *or
> *V_Tnew.mat* , i.e., the voxel2world matrix of the realigned new volume
> or the voxel2world matrix of the raw Tnew volume. I am in doubt here
> because I have seen that, in the header info of nifti file Tnew, there
> are three places where a voxel2world matrix is written: *V_Tnew.mat*,
> *V_Tnew.private.mat* and *V_Tnew.private.mat0*, and only the second one
> seems to change in rTnew volume.
>
> Can somebody please help me understanding the whole procedure?
> Thanks,
>
> Alessandro
--
____________________________________________________
PD Dr. med. Marko Wilke
Facharzt für Kinder- und Jugendmedizin
Leiter, Experimentelle Pädiatrische Neurobildgebung
Universitäts-Kinderklinik
Abt. III (Neuropädiatrie)
Marko Wilke, MD, PhD
Pediatrician
Head, Experimental Pediatric Neuroimaging
University Children's Hospital
Dept. III (Pediatric Neurology)
Hoppe-Seyler-Str. 1
D - 72076 Tübingen, Germany
Tel. +49 7071 29-83416
Fax +49 7071 29-5473
[log in to unmask]
http://www.medizin.uni-tuebingen.de/kinder/epn/
____________________________________________________
|