CT Scan from 2D to 3D

skullCT

Last week my dad got his brain scanned at the hospital, and I couldn't resist the temptation to render his data in 3D. The hospital gave me his data on a disc with its own viewer, but I wanted to take it one step further and give him a 3D model of his brain.

I quickly searched for some tutorials online and found these two to be the most helpful.

  1. How to convert medical scan data into a 3D print model http://www.instructables.com/id/How-to-convert-medical-scan-data-into-a-3D-printab/?ALLSTEPS
  2. Convert CT- or MRI-scan with 2D DICOM files to STL and gcode http://fablabamersfoort.nl/en/fabpublication/convert-ct-or-mri-scan-2d-dicom-files-stl-and-gcode

The first tutorial uses Osirix (for Mac users) whereas the second tutorial uses InVesalius (for PC users). Both are open source, by the way. It has been long enough since I've used Osirix, the "3D Rendering" and "Export" options weren't available then. I'm curious if Osirix now offers threshold selections and mask creations like InVesalius.

I found InVesalius fairly straightforward, especially since I have used Mimics, which has the same functions along with a lot more tools that I don't use. The user interface practically guides your work flow. I only have 32 slices in my data and use a fast computer. It still slows down or crashes occasionally. Usually that happens when I become impatient and start clicking on random buttons when I should just leave it alone.

The basic steps here are 1. data import, 2. create masks, 3. create 3D volume model, and 4. export data. When loading the data, select the folder that contains the data and it should load automatically. Next, select a preset threshold (think of this as the grayscale on the image) to isolate the anatomical structure you want to render and then adjust as needed. When you click "Create surface," a volume is created from this selection, or "mask".

Be sure to rename both the masks and the 3D surfaces that you create into something descriptive, and note that the "masks" and "3D surfaces" are not the same. Masks are simply the selection you start with, while the 3D surfaces are created from on the masks and can contain fewer regions than the original mask. On the screen, the masks are the highlighted regions in the 2D views, and the 3D surfaces are displayed in the "Volume" window.

So far there's been two things I dislike. In step 2, under "Advanced Editing Tools," you are able to add to or subtract from the threshold selections using a paint brush. However, once you make any edits to the masks, you can no longer create a surface using the default method. My advice is to render the best surface you can, export it, then edit the rest in a modeling software of your choice.

The second thing I dislike is the lack of Boolean functions. I would like to be able to select multiple masks and subtract them from each other. So far the closest thing is in step 3, under "Advanced Options," where you can "select regions of interest" or "split all disconnected surfaces." I haven't figured out how to select a region of interest, and attempting to split all surfaces may not be a good idea when there are hundreds of small artifacts.

My goal is to isolate the brain and so far I have been unsuccessful at isolating it from the rest of the soft tissue. Overall I'm still pretty satisfied with the experience. It only took an hour to become familiar with the interface and the results are beyond satisfactory.

The 3D volume model on the lower right corner is based on the default threshold for "skin." The pink parts denote a selection of a different threshold (grayscale).

The 3D volume model on the lower right corner is based on the default threshold for "skin." The pink parts denote a selection of a different threshold (grayscale).