I want to register two objects. One is an ellipsoid represented as a model (Figure 1). It was created using “Create Models” and “Surface Toolbox” modules with specific dimensions (4.5×4.0×1.0). The other one is a few high density markers represented as segment (labelled in green on Figure 2). It was segmented using “Segment Editor” module within breast region.
I would like to register the two objects and make the markers as close to the surface of the ellipsoid as possible. Theoretically, the markers represented the margin/edge of the tumor resection cavity (modelled by ellipsoid). And I want to determine the location of ellipsoid through registration (rigid, translate or rotate).
I don’t think there is any registration tool that will do this automatically for you. However, if you can place 4-5 manual landmarks on each of the structures that you will like to register, you can use the Fiducial Registration Wizard in the SlicerIGT extension. It can create rigid, similarity, affine or warping transforms.
Hello,
One thing that I did in the past that could work for you is to transform your segmentation in a volume by exporting it to a labelmap. I guess that you can do the same thing with you model.
This way you can use all the toolbox made to register volumes on them.
Once you have your registration, you can just apply it to the model.
Thanks for your advice. I have tried “Fiducial Registration Wizard” and the result is pretty good. I would like to know more about the registration algorithm. And I wonder what to reference if the work is prepared for research paper.
Thanks for your inspiring suggestions. I wonder what registration module did you use in your task. I could only perform “General Registration (BRAINS)” and “General Registration (ANTs)” for registration of the two labelmap volume. Is there any other registration module that I could have a try?
That’s the nice thing about open source, you can look under the hood to see what they are using. I am not familiar with technical aspects of Fiducial Registration Wizard module, but quick look to the source code, found this section ComputedPairedPointMapping:
which looks like traditional point correspondence algorithm that tries to minimize the total sum of squares between two sets of corresponding points. I am not sure if there is a specific paper you can cite.
Thanks for your reply. I have used Elastix before to register pre- and post-CT images in my previous research work. But now in this task there are two labelmap volume on the same CT image. As shown in Figure 1, the ellipsoid is labeled in yellow and the markers are labeled in green. And I don’t know where to put the two labelmap volume in Elastix. The GUI is presented in Figure 2.
Thanks for your time. I wonder if the algorithm still be effective when the fiducials are not paired correspondingly. I have placed 8 manual landmarks on markers (the geometric center). However, I could only randomIy choose 8 fiducials on the surface of the ellipsoid. That is, I could not ensure the exact correspondence of the two fiducial lists. Will the registration method still be effective?
Hope for your reply. Your help is highly appreciated.
You need to convert the labelmap to a volume
To do this you can use “Mask Scalar volume”
From memory, you can put the labelmap as “input volume” and “Mask Volume”
Then the output is the same that your labelisation but as a volume