Hello,
I seem to have solved my problem. I do like the situation that
Karsten presents. That does work well and accomplishes what I would like.
I was also able to modify John's reorient code so that the images are
resliced in their native dimensions, instead of at 1x1x1mm resloution. I
have attached the modified version. This version does save a mat file for
each 'r' image; however the mat file has no influence over the image. The
new 'r' images can now be exported to other programs without any
dependence on their respective mat files. There is one catch though. The
new 'r' images have their origin set back to the center of the image. This
may present a problem it may not.
To test this I took an image with no mat file and made gross rotations to
it using the display tool and hit the reorient image... button. This
created a mat file for the image. I then ran mod_reorient on the image and
a new
image was created. When this image is opened in some other tool (MRIcro)
which doesnt use the mat files the image has the gross rotations. Where as
if the original image is opened in SPM it will show the gross rotations
(when in world space) whereas the same image opened in MRIcro will not
show the rotations.
I hope that this helps and may apply to the other current thread
"reorient peculiarities."
Jason.
On Thu, 29 Aug 2002, Karsten Specht wrote:
> Dear Jason,
>
> I would suggest, that the following procedure will be more successful for
> you:
> 1) Realignment with 'coregister & reslice'
> 2) Take the anatomical image and coregister it to the realigned data (the
> 'mean' image for example)
> 3) Rewrite the anatomical image with John's tool. I guess, it should be
> okay, that the anatomical image has now 1x1x1mm. Otherwise, you can select
> the 'coregister & reslice' option also in the coregistration procedure and
> your anatomical image will have the same resolution as the EPI-scans.
>
> You will end up with realigned image and a coregistered anatomical image.
> I guess, the realigned images will still have the *.mat file, but in
> contrast to the procedure you mentioned, they will have all the same
> information and you don't need to export them into the other program.
>
> Hopefully, this will do, what you want.
>
> Good luck,
>
> Karsten
>
> ----------------------------------
> Karsten Specht
>
> fMRI Section
> Department of Neuroradiology
> Medical Center Bonn
> Spessartstrasse 9
> 53119 Bonn
> Germany
>
> Phone: ++49-(0)228/90 81-178
> Fax: ++49-(0)228/90 81-190
> E-Mail: [log in to unmask]
> WWW: http://www.mcbonn.de/Praxis/praxis15/fmri1.htm
>
> > What I want to do:
> > 1)I want to take a time series of EPI volumes and realign them
> > 2)Take the realigned time series and coregister it to its anatomical image
> > using mutual information.
> > 3)Reslice the images to have a new set of 'r' images without the
> > rfilename.mat files
> >
> > I have tried to do point 3) using the realign 'reslice only' option
> > (applied to the EPI images) but
> > the .mat files are created and the 'r' images are the same as the original
> > images. I even checked the .mat file contents for the original image and
> > its 'r' image and the .mat files are the same.
> > My problem with this is that I would like to
> > export these realigned and coregisterd images to another program. The
> > problem is that the other program doesnt use the .mat files so that the
> > realignment and coregistration actually are not applied.
> >
> > I have looked through the archives and I found John's 'reorient' code
> > which does what I want but ... I would like to keep the same voxel size
> > and image dimensions as the original image. John's code changes the images
> > to 1x1x1mm voxels.
>
Jason Steffener, RTS V
Department of Psychiatry
New Jersey Medical School
Newark, NJ USA
(973) 972-1604
http://www.umdnj.edu/~steffejr
function mod_reorient(PP)
% Re-orient images
% The function reslices the input images to a resolution of 1mm.
% Output images (with the prefix "r") are written in the transverse
% orientation (using information from the ".mat" files).
%_______________________________________________________________________
%
% John Ashburner %E%
%
%modified by Jason Steffener
%Modification involves reslicing images in their native
%voxel size and dimensions.
%Note this program now resets the origin back to the center
%of the image.
%This now interpolates using a 9x9x9 sinc window
%
if nargin<1,
PP = spm_get(Inf,'*.img','Select file to reorient');
end;
VV = spm_vol(PP);
for V=VV',
mn=V.dim(1:3)/(-2);
vox = spm_imatrix(V.mat);
vox = vox(7:9);
mat = spm_matrix([0 0 0 0 0 0 vox])*spm_matrix([mn]);
dim=V.dim(1:3);
VO = V;
[lpath,name,ext] = fileparts(V.fname);
VO.fname = fullfile(lpath,['r' name ext]);
VO.dim(1:3) = dim(1:3);
VO.mat = mat;
spm_progress_bar('Init',dim(3),'reslicing...','planes completed');
VO = spm_create_image(VO);
for i=1:dim(3),
M = inv(spm_matrix([0 0 -i])*inv(VO.mat)*V.mat);
img = spm_slice_vol(V,M,dim(1:2),-9); %The -9 represents sinc
spm_write_plane(VO,img,i); %interpolation with a
spm_progress_bar('Set',i) %9x9x9 window.
end;
spm_progress_bar('Clear');
end;
return;
|