Introduction: 3D Printed Cervical Spine
This is an entry in the
Epilog Challenge 9
Technology is moving to made available a large number of medical self-diagnosis systems in the near future.
I discovered 3D printing in the 2014 and since then I have constantly tried to find all its possible applications, so, when I was subjected to a CT scan, I serch the web to understand if it was possible to reconstruct a 3d model starting from sliced images. I found available several and also free softwares capable of doing that: InVesalius, 3D Slicer, ITK Snap, Seg3D2, OsiriX Lite.
In this Instructables I'll describe how to easily obtain a 3D printable model of an uman cervical spine using InVesalius 3.1 and Meshmixer to refine the model
what do you need :
- Dicom files from a TC or MR
- InVesalius software
- Meshmixer to process and refine the mesh
Step 1: Software to Generate the Mesh
InVesalius is a free and multiplatform software developed by Centro de Tecnologia da Informação Renato Archer (CTI), in Brazil, with the support of the Ministry of Health of the Latin American country.
It is a 3D medical imaging reconstruction software that is able to open files in DICOM format, and then create a 3D surface that can be exported in several 3d format (binary and ASCII STL, PLY, OBJ, VRML, Inventor).
Once you get an .STL file it can be printed
InVesalius can be downloaded from:
following the step in brief to produce a 3D mesh from InVesalius
- · DICOM images import
- · generate a mask selecting the interested areas
- · generate a 3D surface
- · export the surface to an STL file
Step 2: InVesalius Process
Start InVesalius and import DICOM files (a) selecting the directory containing data
Import a selected group of images (b) or the whole directory
Once loaded you'll get a view splitted in four areas with the axial, sagittal and coronal slices and the volume
The software can provide an instant 3D representation of the data driven by various presets. To get this press the skull icon on the right (c)
You can choose the type of visualization from the list of presets, to enlarge the window, press the small square at the right top of the window
This is only a 3D visualization and is not useful for creating a printable 3D mesh
To obtain a printable 3D model you have to generate a mask to make the software understand the areas to be connected for the volume interpolation
The mask is generated automatically once the data are loaded and is managed in the tab n ° 2 (select region of interest) on the left. You can decide the name the color and a series of presets (d) related to the type of tissue to be identified. Then you can adjust the in and out threshold by moving the slider (e)
It is also possible to adjust the mask by drawing or deleting manually some areas (f) You can adjust the shape and the size of the brush. Threshold works adding or removing a region that follows the threshold range.
To scroll through the layers and verify the mask coverage use the slider on the right of the windows or the mouse wheel. Once satisfied with the mask cover we can proceed to the generation of the 3d surface pressing the "Generate Surface" button (g)
If thresholding segmentation is used without any manual modification to the mask, the Default method is enabled. This method does not use the mask image, but the raw image, and generates a smoother surface.
If you have manually edited the mask are available only the Binary and the Context Aware smooting (g). The Binary generates a surface with a blocky aspect. The second method start with the binary then uses an algorithm to smooth the surface to avoid staircases
When the surface is generated you can manage it in the next tab on le left panel: 3 Configure 3D surface. You can change the color and adjust the transparency. In the advanced options you can manage disconnected surfaces to mantain the greater volume, selected surfaces only, or split all in indipendent meshes. Results are available on the lower left panel below Data tab (h)
At the end of the process if we are satisfied of the obtained surface, to make it printable we have to export into stl format. From the left panel tab 4. Export data click on export 3d surface, type the file name and select the desired exported format (stl) then click Save.
Step 3: Refining in Meshmixer
Having obtained a 3d model from InVesalius does not mean that this is printable
To make a 3d model printable we have to make sure that is "watertight", made from Front-Facing Polygons and avoid "non manifold" models
Meshmixer can fix automatically surface errors and make the model printable
In meshmixer import the stl generated with InVesalius
In the “Analysis” tab, click on “Inspector” (a). Many pins will appear showing the problems related to the 3d model. Blue pins indicate holes in the 3D mesh. Red pins "non manifold" areas. Magenta Pins indicate small disconnected parts.
To fix errors you can select pins one by one or you can correct the entire model by clicking on the “Auto Repair All” button. (b)
After this, if we are not satisfied with the model, we can increase smoothing on the surface: click on the tab "Select" then CTRL+A to select the entire model (model highlighted) then deform and then smooth (c)
A dialog box will appear. You can choose the type of smooting and make adjustment with a set of slider. I suggest to leave the default "Shape preserving" and try to experimentate only with the smoothing scale keeping values around 4 (e)
Now the model is fixed and could be printed
Step 4: Final Print
At this point we are near to obtain the result of our job
We have to go into the3D printing process that starts importing the 3d model into 3d printer software
In my case I used Repetier Host and a selfbuilt Prusa i3 for doing the job.
It takes about 4-5 hours of printing time to finish.
At the end it tooks me some time also of deburring for removing the supports
But at the end I can proudly hold in my hand my own cervical spine ;-)
Hope this was helpful for you
have a look at my webpage www.eezyrobots.it
We have a be nice policy.
Please be positive and constructive.
Anyone understand how exact the model generated is? I was wondering - would it show cervical scoliosis (turning/twisting of the neck spine) - from an MRI that was taken upright?