3D Modeling of Medical Images
By Richard Brickacek and Nathan Ford


  • Project Outline

  • CT Scans

  • The Data Set

  • Visualisation Techniques

  • Problems Encountered

  • Acknowledgements

  • 
    

    Project Outline

    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.

    CT Scans

    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

    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.

    Visualisation Techniques

    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:

    Problems Encountered

    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.

    Acknowledgements

    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.