This is a visualization I made of a chest cavity using computed tomography (CT) scan data, which I got from a radiology lab on a CD-ROM (as if it were 2002). The data were in a weird and pretty archaic data format called DICOM that is apparently a standard for medical imaging. I used a Python package called pydicom to read it into a 3D numpy array representing the density (or opacity to X-rays or something like that). The array’s shape was 512x512x465 and the values were integers from 0 to 4095. The scan resolution was about 30.2 dpi (which for a 2D document would be extremely poor). Strangely along the z- (spinal-) axis the resolution is slightly different, 33.9 dpi. I used MayaVi to plot an isosurface to my liking. I had to play a lot with the contour value: if too low, too many soft tissues show up, if too high, the costal cartilages doesn’t show (that’s some piece of cartilage that connects each rib to the sternum). Unfortunately even with this careful choice, the 3D model had quite a lot of soft tissues which would have been very difficult to exclude in the Python script. So I exported the model and used Blender to manually remove the soft tissues. This was quite a hassle, but when it’s done it’s relatively easy to set up this rotation animation in Blender and render in high quality.
3D model of a rib cage
PREVIOUSBlock time step storage scheme
NEXTError flower