I have a bit of a workflow to extract the simplified shapes of fish spines from their whole skeletons, and then align them to one another. (I work on scoliosis & spine morphology.) Here is what I typically do:
Create a Markup list, manually add a series of fiducial landmarks to the narrowest central point of each vertebra (Using Markups).
Create a “Spine Tube” that approximates the width and shape of the spinal column. (Markups-to-Model using the Markup List as the Input > Create Tube > Set Radius = .35mm > Global Moving Polynomial for smoothing). Repeat for each fish from various scans, export the models.
Use the Markup Lists from the fish that I am registering to create “Rigid” Transforms. (Registration>Specialized>Fiducial Registration, Align 2 spines by assigning one as fixed & one as moving, Check “Rigid.”)
Align the Spine Tube Models by applying their corresponding markup transformations.
The problem that I have with this, is that this transformation is scaling my models, even though I am only applying Rigid transforms-- as in, if I align one small fish using the markups from its 32 vertebrae, to a rather big fish that has 32 vertebrae, the small fish ends up just as long as the big one. But “rigid” is checked, so this Transformation shouldn’t scale. (It appears to re-scale the whole model proportionally-- the tube radius of the scaled model ends up looking a little larger, even though I created the tubes with the same radius initially.) Can anyone figure out where this is going wrong?
I can reproduce this issue with a simple synthetic data set. I created a fixed fiducial set by clicking randomly, cloned it, created a scaling transformation, applied it to the clone and hardened it, and Fiducial Registration between the two produced a scaling transformation output even though the “Rigid” option was selected, which is clearly an error.