Dear Unal,
If you are making images where only isolated, single voxels are
non-zero and trying to align these images then it will not work.
There just will not be enough overlap to allow the optimisation to
know how best to find the right solution. Also, the interpolation
only governs the generation of the output image and not the
internal interpolation, which is always trilinear. The search range
is also not a limit, it is simply the initial range to try and look, but
if the optimisation sees that there might be a better results outside
of this range then it will continue and try to find it.
Instead, what you want to use is pointflirt which was designed
for exactly this case, of trying to align individual points.
If you cannot get satisfactory results with this then there is
also the tool nudge, which allows you to manually change
registration parameters.
One last comment is that we have previously obtained good
registrations between SPECT and MRI for human subjects,
even when brain extraction did not work. We simply used the
non-brain-extracted images. Have you tried that?
All the best,
Mark
On 4 Nov 2010, at 21:06, Uenal wrote:
> Hi..I have a problem and i need help... I have SPECT images of
> various animals and an MRI template image for that species and I
> would like to coregister the SPECTs to the MRI template. SPECT is
> low res, poor quality but I can still see the outline of the brain/
> head and MRI is hi res and has good quality.
> Since the auto brain extraction does not work on the SPECT image due
> to poor data quality and since we do not want to delineate the brain
> manually for all the animals, I decided I could do the warping just
> by using 3-4 anchor points by FLIRT.
> SPECT is slightly tilted in all three dimensions with respect to MRI
> and they have matching orientations.
> What I first did is picket three anchor points at the center of the
> eyes and at the back tip of the brain on SPECT and on MRI. I just
> selected three voxels per each modality, and used nearest neighbor
> interpolation. It did not work out well. Has anyone done warping/co-
> reg based on a few anchor points? What would be the best options to
> use in FLIRT with this?
> I thought using one voxel per anchor point is the most appropriate
> if I use nearest neighbor method since 1) it is simpler to draw than
> putting more voxels/shapes 2) the voxel sizes in the two modalities
> do not match, so if I drew a volume rather than a voxel, I have to
> make sure the volumes of the shapes matched (which is really hard
> and time-consuming) otherwise any mismatch reflects itself as
> excessive stretch/shrink on the SPECT being warped.
> Here is an example of what I ran:
>
> 1) warping SPECT anchor to MRI anchor:
> flirt -in SPECT-3pointanchor.nii.gz
> -ref MRITemplate-3pointanchor.nii.gz \
> -out SPECT_3ptanchor_warpedto_3ptanchor.nii.gz \
> -omat SPECT_3ptanchor_warpedto_3ptanchor.mat \
> -bins 256 -cost normmi -searchrx -35 35 -searchry -15 15 -searchrz
> -15 15 -dof 12 -interp nearestneighbour
>
> 2)apply that transformation to warp SPECT to MRI:
> flirt -in /SPECT.nii.gz \
> -ref MRITemplate-3pointanchor \
> -out SPECT_warpedwith3ptanchor.nii.gz \
> -applyxfm -init /SPECT_3ptanchor_warpedto_3ptanchor.mat -interp
> trilinear
>
> I used small angles for roll (y) and yaw (z) and big one for
> pitch(x) since I visually know the limits of the tilt of my SPECT
> data...
>
> Any thought and help on this? What should I be careful about when
> using FLIRT with anchor-"points", which flirt options should I use
> or avoid? I would very much appreciate inputs...
> Thanks,
> ..
> Unal
>
|