STL models comparison

Operating system: macOS Catalina v10.15
Slicer version: 4.10.2
Expected behavior: How to compare and analyse two STL models of the same patients at T1 and T2.
Actual behavior: I have done a CBCT superimposition using a voxel based registration.

1 Like

First of all, I recommend using a recent preview version, because 4.10.2 is very old, and we’re approaching 5.0 so the previews are quite stable, and contain many improvements since 4.10.2.

I think to compare models, especially if you have the corresponding volumetric images (the T1 and T2 MRIs), the best is if you convert the models to segmentations, and use the Segment Comparison module. This is a generic answer to a generic question, so if you describe your needs in more detail, then we can help you better.

A few things that would help a lot:

  • Where do these STLs coming from? If they are segmentations, then you could do the segmentations in Slicer where we have great tools now for that, so you don’t need to convert-export-import-convert (resulting in data loss)
  • Are the data spatially registered? Do you need to register them after importing in Slicer?

Thank you for your answer.

  1. I converted two cone beam CTs from DICOM files to GIPL with ITK SNAP
  2. I performed segmentation of the anterior skull base with ITK SNAP of scans T1 and T2
  3. I loaded on 3D slicer: T1 scan, t2 scan, segmentation of the skull base of T1, segmentation of the skull base on T2. I then used the CMF Registration module and chose the Voxel (non growing registration) function. I set the options and applied by obtaining an Output Registered Seg and an Output Registered Scan.

At this point I would like to quantify through a colormap the changes obtained at the level of the maxillary bones. Do I have to proceed by segmenting my Output Registered Scan and then converting the segmentations into 3D surface models?

Also how can I spatially record stl files after importing them into slicer? Is there a tutorial?

Kind regards

First of all, I recommend using a recent preview version, because 4.10.2 is very old, and we’re approaching 5.0 so the previews are quite stable, and contain many improvements since 4.10.2.

I think to compare models, especially if you have the corresponding volumetric images (the T1 and T2 MRIs), the best is if you convert the models to segmentations, and use the Segment Comparison module. This is a generic answer to a generic question, so if you describe your needs in more detail, then we can help you better.

A few things that would help a lot:

  • Where do these STLs coming from? If they are segmentations, then you could do the segmentations in Slicer where we have great tools now for that, so you don’t need to convert-export-import-convert (resulting in data loss)
  • Are the data spatially registered? Do you need to register them after importing in Slicer?


Previous Replies
Operating system: macOS Catalina v10.15
Slicer version: 4.10.2
Expected behavior: How to compare and analyse two STL models of the same patients at T1 and T2.
Actual behavior: I have done a CBCT superimposition using a voxel based registration.


Visit Topic or reply to this email to respond.
To stop receiving emails about this topic, category, or all discussions, click here to unsubscribe.

PRIVACY: In ottemperanza con il nuovo Regolamento Europeo GDPR n. 679/2016, le informazioni
contenute in questo messaggio sono riservate. Il loro utilizzo è consentito esclusivamente al
destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la
persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema ed a
distruggere le varie copie o stampe, dandocene gentilmente immediata comunicazione anche
inviando un messaggio di ritorno all’indirizzo e-mail del mittente. Ogni utilizzo improprio è
contrario ai principi del nuovo Regolamento Europeo GDPR n. 679/2016.
Si avvisa che il presente messaggio ed eventuali risposte potrebbero essere letti da soggetti
appartenenti all’Amministrazione differente dal mittente.
L’Università degli Studi Magna Graecia di Catanzaro opera in conformità al nuovo Regolamento
Europeo GDPR n. 679/2016. Per qualsiasi informazione a riguardo si prega di contattare l’indirizzo
e-mail: dirgen@unicz.it

Thanks for the detailed explanation!

Your workflow seems to be more complicated than necessary, and in the process data may be lost. Conversion of DICOM to non-DICOM data incurs loss in data, most importantly (based on what I found about the format you use) the spatial information that is key. Also, the Segment Editor module offers more advanced tools and can provide higher accuracy than ITK-SNAP (we have put in immense efforts into this in the past few years), and can be used as an integrated workflow as it’s in Slicer. What I’d recommend instead:

  1. Load your DICOM data in Slicer
  2. Do the registration first. I recommend the SlicerElastix extension
  3. Segment both images using Segment Editor
  4. Evaluate the segmentations

There is no need to handle any STL file, nor do conversions. The segmentations infrastructure in Slicer will take care of this.
I didn’t understand some of your questions, so let us know when you are at the last step and tell us how you want to do the comparison.

I was probably not clear on explaining my problems.

My goal is to measure the linear and volumetric change of a jaw before and after an orthognathic surgery (therefore comparing the pre and post CBCT).

Following the tutorial I found on the DCBIA team website, I made the segmentation of the anterior skull base at t0 and t1 with the ITK-SNAP software.

Screenshot 2020-06-01 at 10.17.19.png

Then I do the landmarks approximation about the two scans with Slicer and subsequently the recording performed on voxel relating to the skull base (using: basaline scan - T1; basaline segmentation - segmentation of anterior skull base at T1; follow-up scan - T2landmarks; follow-up segmentation - segmentation of skull base at T2landmarks).

Screenshot 2020-06-01 at 15.17.41.png

After the registration I have segmented the first mandible on the t1 scan and the second mandible on the t2 scan obtained from the voxel recording. Then I transformed the segmentations of the two mandible into 3D surface models. I uploaded the two models on Slicer and I apply the module “model to model distance”.

Screenshot 2020-06-01 at 15.54.00.png

I use the module “Shape Analysis Viewer” to obtain a color map.

Screenshot.png

Now I would like to take a statistic analysis about this, but I don’t know how I can do. Can you help me?

The flow that I have use is correct?

I cannot see any images, only their empty frames. Is it only me?

Right - I see just frames too.

Sorry for the mistake, below I written the whole tesxt with the imagines again.

My goal is to measure the linear and volumetric change of a jaw before and after an orthognathic surgery (therefore comparing the pre and post CBCT).

Following the tutorial I found on the DCBIA team website, I made the segmentation of the anterior skull base at t0 and t1 with the ITK-SNAP software.

Then I do the landmarks approximation about the two scans with Slicer and subsequently the recording performed on voxel relating to the skull base (using: basaline scan - T1; basaline segmentation - segmentation of anterior skull base at T1; follow-up scan - T2landmarks; follow-up segmentation - segmentation of skull base at T2landmarks).

After the registration I have segmented the first mandible on the t1 scan and the second mandible on the t2 scan obtained from the voxel recording. Then I transformed the segmentations of the two mandible into 3D surface models. I uploaded the two models on Slicer and I apply the module “model to model distance”.

I use the module “Shape Analysis Viewer” to obtain a color map.

Now I would like to take a statistic analysis about this, but I don’t know how I can do. Can you help me?

The flow that I have use is correct?

Thanks again for the support. Hoping that now you can view the images.

1 Like

Thanks! At this point this is a question on how to get a histogram for a shape analysis, but I don’t have experience with that specific extension.

My recommendation, however, about using Slicer for segmentation still stands, because your fragmented workflow leaves more than necessary room for inaccuracies.

2 Likes

Thanks for the information.
I have another questions, what kind of informations Can I obtain from the color map and how can I get them?

In broad terms, the workflow appears correct. But the devil is always in the detail. I also second that trying to do everything Slicer.

You can’t run statistics on a single specimen with two time points. If your goal is to show that after the surgery mandible is more ‘normal’ looking, you at least need a sample of normal mandibles to calculate that statistic.

With a single sample and two time points, the simplest is to highlight the differences as color maps, and interpret them in light of the surgery conducted.

2 Likes

Thanks for the answer.
I have a single sample and two time points available, so I would like to obtain distance measurements in millimeter terms through the color map. How can I get them? could you explain to me how to set the correct range?

Thanks a lot

The ModelToModelDistance extension will compute a point by point Hausdorff distance between two models. The distance array can be visualized as a heat map on the output model.

1 Like

I used modeltomodel, but what is the error that i do?

1 Like