Hi Daniel and others,
I have the same problem as Daniel, where my output is an image with just zeroes. I was so excited when I thought forcing the output to be float would work based on this thread but my output is still all zeroes. Let me elaborate what I want to achieve and have tried from the start:
I have a 2D low resolution image (low_res, 3x3x5 mm3) and a high resolution 3D T1 structural image (T1, 1x1x1 mm3). I would like to transfer the partial volume estimate of GM and WM generated from fast to my low resolution image space for further processing. Since I have visually checked the PVEs generated from the T1 image and they look perfectly good to me, I will not list the commands I have used to achieve that. Then I extracted the T1 and PVEs which corresponding to my 2D low_res, let's call that extracted_T1 and extracted_T1_PVE (check these visually too, they look fine). After that, I followed the way Daniel did:
(1) register my low resolution image to extracted T1 slice to get the transformation matrix
flirt -in low_res.nii.gz -ref extracted_T1.nii.gz -out low_res2extracted_T1.nii.gz -omat low_res2extracted_T1.mat -2D
- I checked the registered output image with the reference, it matched very well.
(2) invert the transformation matrix
convert_xfm -omat extracted_T12low_res.mat -inverse low_res2extracted_T1.mat
(3) use applywarp to transfer the extracted PVEs to the low resolution image space
applywarp --ref=low_res.nii.gz --in=extracted_T1_PVE.nii.gz --out=Output.nii.gz --datatype=float --premat=extracted_T12low_res.mat --super --superlevel=4 --interp=spline
My Output.nii.gz is a 2D image with zero values. I have tried to vary the options in applywarp but the output is always a 2D zero matrix. So my question is can this be applied to a 2D image? If yes, am I missing any important step? If not, what is the proper way of doing this?
Hope to hear from the experts soon. Thanks in advance for the help. :)
T
|