In this post we provide an overview of the workflow to create a 3D-printable mesh from a 3D medical image. The steps involved are:
- Segmentation of the anatomical structure of interest.
- Mesh creation based on the segmented region.
- Mesh repairing such as smoothing and hole filling.
- Exporting the mesh in a format that can be read by a 3D printer such as STL or OBJ.
Step 1: Segmentation
Different techniques for segmentation exist and they can be categorized into manual, semi-automatic and automatic methods. Each of these methods is worth a blog post by itself; in this post we illustrate segmentation using a technique called threshold-based segmentation.
Threshold-based segmentation requires a threshold to be set which describes the grey-scale intensities of the voxels within the region of interest. For instance, in Rhino3DMedical, two thresholds, an upper and lower one, can be set such that all voxels values between them will be labeled. The thresholds can be set by directly typing the number in the corresponding field in the interface or by adjusting a number slider which updates in real-time the labeling in the image.
Step 2: Mesh Creation
Based on the thresholded region a mesh can be created through the Rhino3DMedical Create Surface from Threshold button found in the Segmentation tab. Different options to visualize the mesh are available; it can be viewed as wireframe or rendered with different color and material properties.
Step 3: Mesh Repair
After the initial mesh is created it needs to be prepared for 3D printing. This step is typically referred to as mesh repairing. For example, in the above image several artefacts are clearly visible, which need to be removed. Rhino3DMedical offers a large tool set for mesh repairing in order to select and remove mesh sub-parts, individual mesh faces and regions to perform boolean operations and more. These tools are found in the Mesh Repair tab with additional features listed under the Rhino Mesh menu. Yet often, simply selecting the largest connected region already significantly improves the result. For this purpose, Rhino3DMedical offers a button Extract largest region.
Only the largest connected mesh region remains and the mesh already looks much cleaner. The ultimate requirement to create a 3D-printable mesh, however, is to have a closed mesh. In Rhino3DMedical, typing the command What in the command line reveals the mesh properties.
In the image above, we see that the mesh is an open polygon mesh. Also the number of vertices and faces are indicated in the property editor. To create a closed polygon mesh a button called Fill Mesh Holes is available in Rhino3DMedical.
After hitting the Fill Mesh Holes button we see in the property editor that now the mesh is closed.
Step 4: Export Mesh as 3D-Printable File
The final mesh can now be exported through the Rhino –> File –> Export menu, which allows to export a wide range of file formats. STL or OBJ are the standard file formats that can be read by 3D printers.
All in all, the concept to create 3D-printable meshes only involves the four steps explained in this post. However, depending on the anatomy, the segmentation step can be the most challenging.