Old IGES segmentation

Hello to everyone,

I’m actually working on a research project in which shoulder segmentations are needed. As I’m “exhuming” some old bone segmented files, the proprietary software being discontinued since a decade (Surfdriver), it is impossible for me to recover proper geometries. I have however the IGES files with the segmented bony structures as a collection of closed contours. So, my question is: can I use 3D slicer (or any extension) to open these IGES contours and regenerate the surfaces/volumes?

I appreciate any comment that could guide me through this.

Best regards,
Daniel E.

Convert the geometry from IGES to STL using FreeCAD or similar software. You can then load the STL files into Slicer.

Hello Andras,

Thanks for the reply! However, I think I didn’t make myself clear in the past message. I cannot directly (although, this is the objective) convert from IGES to STL because these IGES files are a collection of contours, of the segmented geometry. I’m attaching an example of what I have.

I know I can segment again the original DICOM images in 3D slicer but, if I have already these segmentations in IGES (which I can easily transform to another format for sure), is there any chance to regenerate the surfaces based using the surface generating tools from 3D slicer? Here the main issue is how to “read and interpret” those contours.

Thanks again for your feedback.

Of course, Slicer can help in this, too. In its SlicerRT extension there are sophisticated algorithms to reconstruct closed surfaces from parallel contours, such as your data set.

For example, this is a polydata consisting of parallel contours, shown in Paraview:

You need to save each segment as a .vtp (VTK XML polydata) file, adding field data into each file’s header that indicates that it has to be interpreted as parallel set of contours. The easiest to do it by using a text editor, copy-pasting this into the file header:

<FieldData>
  <Array type="String" Name="Segmentation_MasterRepresentation" NumberOfTuples="1" format="binary">AQAAAACAAAAPAAAAFwAAAA==eJwLyEnMSyxSSM7PK8kvLWIAAC1zBYk=</Array>
</FieldData>

You can also specify segment name, color, etc. in the field data (optional). You can see/edit field data in ParaView using a Spreadsheet view.

Then, you have to create a .vtm file that lists all your .vtp files (using a text editor, it’s a simple text file).

If you drag-and-drop the vtm file into Slicer, then it loads it as segmentation, which you can show and export as closed surface, labelmap, etc. For example, the contour set above imported as segmentation looks like this:

An example set of vtp and vtm files is available here:
https://1drv.ms/u/s!Arm_AFxB9yqHr6RA1XRb1IYmcj1z7Q

Dear Andras,

Thank you so much! This is exactly what I was looking for. It will be only a matter of converting the IGES contours (defined as a collection of points and closed lines) to the VTP structure, I guess in ASCII format. I’ll be working on it, and hopefully I’ll be able to publish soon here an example of the resulting work.

I appreciate your time and your guide.

Best regards,

Daniel E.

1 Like