Elastix outputs incorrect transform even though registration is successful

I’m on the stable Windows release: 4.10.2

I’m using the Slicer Elastix module to perform rigid registration. I know the registration is successful because the output volume computed by elastix/transformix is correctly aligned with the reference volume.

However I’m getting a weird bug where the transform output by elastix is incorrect: the image not aligned and I’m also getting lots of scaling even though it’s a rigid transform. Moreover if I invert the transformation in the Transforms module, there are no visible changes in Slicer.

I have been using the same parameter file and images since Oct 2018, when everything was working fine. The only thing that has changed since then is the Slicer version and maybe the Slicer Elastix extension?

Actually I think the problem is in the volume rendering module. In slice view the output transformation aligns the images as expected, but when rendered through the volume rendering module the images don’t line up at all.

Volume renderer does not support dynamic application of non-linear transforms. You need to harden the transform on the volume to make it appear correctly in volume rendering. I’ve added an issue to the bugtracker to communicate this limitation to users better.

1 Like

I’m surprised I haven’t come across this issue before, I’ve been using slicer elastix transforms in Slicer for more than two years and I’m sure I must have used volume rendering at some point to visualize results