questions > how to reverse gantry tilt correction
Showing 1-2 of 2 posts
Jul 10, 2019 09:07 AM | alpha beta
how to reverse gantry tilt correction
Hello, we are using the dcm2niix conversion tool and trying to
reverse the effects of the gantry tilt correction for overlaying
some processed information onto the original dicom. However for
working on the data, we use the tilt corrected output. I have tried
using the information of the slice thickness to calculate the new
sizes but cannot figure it out. here is the relevant data:
dcm: 512x512x158; slice thickness: 0.9
gantry tilt: -18.5
tilt_corrected_nii: 512x617x158; slice thickness: 0.9483
dcm: 512x512x158; slice thickness: 0.9
gantry tilt: -18.5
tilt_corrected_nii: 512x617x158; slice thickness: 0.9483
Jul 10, 2019 04:07 PM | Chris Rorden
RE: how to reverse gantry tilt correction
I think you have two options:
1.) Normalize the tilt-corrected image to the raw (distorted) image and apply the transform to the processed images. Choose a normalization tool that allows you to apply a full affine (12 parameter model) transform (9 parameter transforms are insufficient, you are correcting for a shear). FSL's FLIRT would be an excellent tool for this.
2.) Write a script that removes the shear from the tilt-corrected image. The function is described on these pages, as well as the dcm2niix code:
https://github.com/rordenlab/dcm2niix/is...
https://raw.githubusercontent.com/rorden...
float GNTtanPx = tan(gantryTiltDeg / (180/M_PI))/hdrIn.pixdim[2]; //tangent(degrees->radian)
1.) Normalize the tilt-corrected image to the raw (distorted) image and apply the transform to the processed images. Choose a normalization tool that allows you to apply a full affine (12 parameter model) transform (9 parameter transforms are insufficient, you are correcting for a shear). FSL's FLIRT would be an excellent tool for this.
2.) Write a script that removes the shear from the tilt-corrected image. The function is described on these pages, as well as the dcm2niix code:
https://github.com/rordenlab/dcm2niix/is...
https://raw.githubusercontent.com/rorden...
float GNTtanPx = tan(gantryTiltDeg / (180/M_PI))/hdrIn.pixdim[2]; //tangent(degrees->radian)