Non-rigid registration between DICOM volume and .stl alias volume

Hello,

I have a CT volume of a homerus and I have a alias generic humerus (.stl file) that I have to adapt to the CT volume.
So I thought about doing a sort of non-rigid/elastic registration of my alias with the CT volume and then having this new deformed volume, that is very similar to the real homerus from CT data.

Does somebody know how I could do this kind of registration?

Thanks,
Davide

1 Like

There are many ways of doing non-rigid warping in Slicer.

Simplest is landmark registration: you mark the same set of anatomical points on the CT and the STL model and use Fiducial registration wizard module in SlicerIGT extension to register the two (there is rigid and non-rigid option).

Another approach is to segment the humerus from the CT using Segment editor, import the model into segmentation node, and then register them automatically using Segment registration extension.

Thanks for your answer Andras.

With Landmark registration I have a problem: I can’t upload my .stl file as a volume. But if I upload it as a model, it works (see figures). So when in Landmark registration module asks for “moving volume” I can’t select the .stl volume.
slicer1
slicer2
slicer3
slicer4

Then I tried with Segment registration extension: I segmented both the dicom data and the .stl file and keep them in the same segmentation node; I’m not sure what “fixed image” and “moving image” are, but then I performed the registration.
slicer5
slicer6

Is it possible to export the new registrated and warped volume as a file (possibly a .stl)?

Thanks

Davide Bassano

As I wrote above, for landmark-based registration of a volume and model, use Fiducial registration wizard module in SlicerIGT extension.

Segment registration asks for “volumes” but I don’t have any volumes from my segmentations, I only have models and segmentations. What can I do?

Thanks

Segment registration requires segmentations as input. You can import any model into a segmentation using Segmentations module.

What does “segment registration” give as output after you “perform registration”?
Does it modify the moving segmentation or create a new segmentation?

Thanks

I downloaded SlicerElastix extension. Would it be useful for what I have to do?

It computes a transform, which aligns/warps the moving segment to the fixed segment. It does not modify the segment, just puts the moving segment under that transform to show the effect of the transformation. You can then decide to harden that transform (permanently modify the segmentation using that transform), or apply it to other volumes, models, point sets, etc.

SlicerElastix extension is set up to perform intensity-based image registration. I don’t think there is a preset that would work for binary images (that’s how segments are represented as images).

1 Like