Dear Mark,
Could you confirm my interpretation of your proposal:
1. Register HiRes to LoRes using flirt and save transformation matrix
2. Use flirt to apply transformation to HiRes with HiRes as reference.
The output is HiRes registered to LoRes with orientation information (sform?) of LoRes and resolution of HiRes. (This is the kind of output I want.)
Thank you,
Roman
From: FSL - FMRIB's Software Library [[log in to unmask]] on behalf of Mark Jenkinson [[log in to unmask]]
Sent: Sunday, March 18, 2012 8:34 PM
To: [log in to unmask]
Subject: Re: [FSL] flirt shrinks brain on interpolation
Hi,
Just to add to this.If you want to get high resolution voxel size at your output, then just do the registrationas normal (don't interpolate first) and then use ApplyXFM on the output but specifyingeither the existing highres as the reference (defining FOV and voxel size) or define yourown. This should do what you want and not get you caught in problems associated withthe 0,0,0 alignment being an unwanted shift (since your matrix should have compensated).
If this isn't exactly what you want (either wrt the shift or qform/sform information) then letus know.
All the best,Mark
On 18 Mar 2012, at 09:07, Jesper Andersson wrote:
Dear Roman,
I would like to register hiresT1 to a loresT1 acquired in a different session for further processing. This is an intermediate step to bring hiresT1 to the same orientation as other images in the second scanning session. In doing so, I would like to preserve the original resolution of hiresT1.
To accomplish this, I considered two steps:
1. interpolate loresT1 to hiresT1 using ApplyXFM_gui (which is calling flirt with proper settings) and obtain loresT1_interpolated
2. register hiresT1 to loresT1_interpolated to obtain desired result
However, when I look at loresT1_interpolated, I see that the brain got smaller!!
To investigate, I considered the following crude exercise.
I acquired 4 slice, 7 mm thickness data cutting through the brain. If I now use ApplyXFM_gui to interpolate to 1mm slice thickness and 28 slices to keep the same FOV and keeping in-plane resolution intact, the top 6 slices are empty! That is, the brain became 6mm thinner than the original! I also observe that the first slice of the interpolated set is exactly equal to the first slice of the original, only its thickness is 1 mm instead of 7mm. The last non-empty slice is identical to the last slice of the original. This contradicts to my intuition of what must happen on interpolation.this is actually exactly what will happen with interpolation. When interpolating an images one assumes that the intensity in a voxel pertains to a point exactly at the middle of that voxel. When calculating an interpolated value for a point between two voxels it gets a wighted average of the intensities in those two voxels, the weights depending on the relative distances between the interpolated point and the original points.
That means that as soon as you move "outside" of the last voxel centre you have no way of knowing what the interpolated value should be. Therefore if you have 4 slices each with a thickness of 7mm you can only interpolate over the distance between the voxel centres of the ultimate slices, i.e. 3*7mm.
The reason you lose slices in one direction and not the other is that flirt assumes that the voxel centres of slice 0 (actually point 0,0,0) coincides in the two volumes.
Jesper