It is indeed amazing how it was possible to combine work of very smart people (Luca Antiga’s centerline extraction in VMTK, David Gobbi’s transformation framework in VTK, @piper’s idea of generating a dense displacement field using 4 corner points of a series of slices) to create a robust and powerful curved planar reformat approach, which is distortion free (within in the straightened volume slices and along the centerline), fast, and it is also invertible, so any objects (positions, lines, curves, images, models) defined in the straightened space can be transformed to the original space and vice versa. There is a chance that this has not been done like this before, but I did not have the time to do literature search and write up a paper about this.
If you were interested in having a highly cited an impactful academic paper then you could write up how this module works and evaluate its performance on a few use cases. I would not spend time with writing this by myself, but would be happy to help someone writing it.
As it turns out, it is actually not a Frenet-Serret frame. That would be unusable, as it is undefined where the curve has low curvature and there are huge spins in the frame at inflection points. Instead, when Frenet-Serret class is used with “consistency” option enabled, then actually it computes a parallel transport frame.
That’s an ITK filter and all it does is that it resamples an image with a displacement field specified by a transform. The transform is a grid transform created from 4 corner points of slice planes determined by parallel transfer frame. The illustrations here explain the method quite nicely: GitHub - PerkLab/SlicerSandbox: Collection of utilities that are not polished implementations but can be useful to users
We don’t use thin-plate spline for this at all, mostly because it would be hard to control distortion.
We just rely on the parallel transport frame to determine minimum-rotation frame, then use this to extract an exact, non-distorted frame from the original image space. The advantage of this that there is no distortion within the “z” slices of the straightened volume (so you can make accurate measurements anywhere within a z slice), all the distance measurements are correct along the centerline, and distortion gradually increases as you get farther from the centerline, so you can make pretty good 3D measurements close to the centerline.
If you have very tortuous centerline then some regions will be simply duplicated, but these regions are always lie farther from the centerline, so that you can safely ignore them. They can only cause problems with the inverse computation (as one region in the original image is mapped to several regions in the straightened image), so if you need inverse computation then it is advisable to reduce the slice size.