How to save ThinPlateSplineTransform (from IGT Fiducial registration) as a deformation field?

Hi, I was able to successfully use IGT Fiducial registration wizard for manually registering images (with “Transform” option set to “Warping”, which uses thin plate splines) . Next I would like to use the generated transform file independently to map separate set of points from ‘From/Source’ image space to ‘Target’ image space (and vice versa).

I tried two approach:

  1. Trying to export transform as deformation field nrrd-> Fails with an error “Cannot save FILENAME to FILENAME.nrrd”
  2. Trying to load the saved transform into using itk::TransformFileReader → ITK seems to not recognizing this type of transform - “ThinPlateSplineKernelTransform_double_3_3”

It’s looking like my only recourse would be to bypass the transform file entirely and only store the fiducial points and load them in ITK and create the transform there directly.

Thank you for the wonderful tool! Would appreciate any more direct way to resolve this issue.

A TPS transform cannot be saved as a displacement field, but you can convert it to a grid transform in Transforms module Convert section to convert it to a grid transform (can be saved as an ITK transform or nrrd file) or a vector image (can be saved as a nrrd file). See some information here. If the instructions are not clear or detailed enough then let us know and we’ll improve the documentation accordingly.

You can save the transform to ITK transform file and ITK can read it. This is how we save and load the transforms in Slicer. Make sure your ITK is built with ThinPlateSplineKernelTransform registered in the transform IO factory (if you don’t build ITK then you can request this from the maintainer of your ITK distribution).