3D Modeling of Medical Images
By Richard Brickacek and Nathan Ford
Project Outline
CT Scans
The Data Set
Visualisation Techniques
Problems Encountered
Acknowledgements
Prof. Bernard Pailthorpe presented the project at
hand to us. It was to take a given set of CT scanned
images (curtesy of Dr. Tomas Hugh, Royal North Shore
Hospital) and using them to produce a visualisation not
only with better quality images but turning the 2D slices
into a 3D image and that could be manipulate.
A typical CT scan image is shown here.
As one can see it is useful but still lacks the detail that can be obtained and depth which a 3D model can produce.
A CT scanner is called the body scanner, or computerised axial
tomography (CAT or CT) scanner. The scanner shaped like a donut,
rotates 180° around a patient's body, the ring of the CT machine
contains the x-ray tube and other sensitive detectors, sending out
a pencil-thin X-ray beam at 160 different points. Crystals
positioned at the opposite points of the beam pick up and record the
absorption rates of the varying thicknesses of tissue and bone.
This data is then processed by a computer, and turns the information
into a picture on a screen. Using the same dosage of radiation as
that of the conventional X-ray machine, an entire “slice” of the
body is made visible with about 100 times more clarity. The scanner
was invented in 1972 by the British electronics engineer Godfrey
Hounsfield, and was in general use by 1979.
The Data set was given to us by Dr. Thomas Hugh from the Royal North Shore Hospital.
It was given in a file format known as DICOM, which is a format used for medical
imaging but not favoured when it comes to visualisation software where it
isn’t common at all.
Approximately 200 images where obtained in Dicom format of the lower torso.
They were all 512 x 512 pixels in size, and were successive slices at a
displacement of about 3mm of a patient’s torso.
Manipulation of Files
Challenged with the concept of this file format, it was needed to
be converted to a readable format for the visualisation software to be
used, openDX. Packages and programs written to do this type of conversion
from Dicom to ‘rgb’ or ‘tiff’ where downloaded but many programs
written in C would not compile in the Vislab (SGI) environment.
A windows program called MRIcro was found and downloaded which proved
to be successful in the conversion of the Dicom images to ‘tiff’ files.
The images could be manipulated to a certain degree but it still
had its limitations. To do the conversion it was perfect and helped
when it came to the dimensions of the CT scan images.
The visualization program openDX was used in this project.
We chose openDX because it is open-source software and available
for download and for both windows and UNIX environments. Also it
has the capacity to do the types of manipulation that we are interested in.
For each tiff image file, a general file was created. General files
are the way in which to specify how the data is to be read by openDX.
A general file is just a simple text file with the .general extension.
A typical general file that we used can be seen here.
Our openDX network included the ‘Stack’, ‘Isosurface’ and CollectSeries’ modules.
The CollectSeries module creates a dx series object that is passed to the
Stack module. The Stack module creates a series object from its inputs.
In our case we were using it to place the tiff images on top of each other.
The Isosurface module joins points of the same value to create a topological
surface. It was necessary to import the images to be stacked individually
and collect them before proceeding to the Stack and Isosurface modules.
Import network:
Visualization network:
To shorten the computation time for the network, the ‘Reduce’ module
was often used. This module lowers the resolution of a data field by a
user-defined factor. It filters and reduces the number of items in the
data component of the input field and also any components that are position
or connection dependant.
After the images had been successfully displayed as a 3D model,
a histogram was made of the distribution of pixel values for
each of the 256 components. The network to do this was:
IMG SRC="images/image008.png">
Histogram produced:
The first and biggest problem was converting the Dicom images to a
format that could be read by openDX. As explained above, the
program MRIcro was eventually used.
The next problem was stacking the images in openDX. The first
method we tried was to extract the data from each tiff file
using the "tail" command. Then these data chunks were concatenated
together to create one big data file, which unfortunately could not
be correctly read by openDX.
Next we tried to create a dx. series object, that specified where to
find each tiff file, and what order to place the tiff files in.
Again, this was unsuccessful, as openDX complained with module errors,
but given more time, I think this method could be made to work.
Our final approach was to create general files for each of the images
that we were going to use to create the 3D model. We found this to be
necessary as for some reason, a 33 byte offset needed to be specified
from the start of each image, for the images to stack on-top of each
other correctly. We did not discover the source of this oddity.
A final hindrance also became apparent when it was discovered that
the CollectSeries module was limited in the number of inputs to 22
and no other combination of modules could produce the desired behavior of
being able to import an arbitrary number of images.
We would like to thank DR Thomas Hugh for
initiating the project and providing the data that
was used. We would like to thank Prof Bernard Pailthorpe,
Nicole Bordes and Ben Simmons for their supervision. And
finally many thanks go to our tutors, Daniel Mitchell,
Stephen Manos.