Changes are highlighted by 
The goal of this project is to extend a medical imaging tool, IRIS, that was implemented as a COMP145 project last year. The current version of the software is used to create a segmentation of a 3D data set, composed of 2D slices. It allows for the segmentation of data sets in these 2D slices and provides a 3D rendering of the data. We intend specifically to address issues involving extending the 3D display and manipulation capabilities of the system.
The product should
continue to be platform independent and portable for use on all the major
architectures used within the Computer Science department that have appropriate
supporting libraries (Sun-Solaris, SGI, and Windows NT).
The party of Ashraf Farrag, Amy Henderson, Sean Ho, Robin Munesato, and Ming Yu shall hereafter be collectively referred to as the contractor. The party of Guido Gerig shall hereafter be referred to as the client. The contractor agrees to provide the client with a functional software product that meets the specifications defined below under Primary Requirements. The contractor agrees that the product will be delivered to the client no later than May 4, 2000.
The contractor further agrees that if the Primary Requirements are satisfied before the scheduled delivery date that additional software, as specified under Secondary Requirements, will be developed as time permits, to be deliverable to the client no later than May 4, 2000.
The contractor agrees to provide the client with documentation regarding the design and use of all software delivered to the client no later than May 4, 2000.
The client is
responsible for ensuring the provision of an adequate amount of and correctly
formatted input data sets that are to be used by the product. The client
is also responsible for the provision of functions/libraries which implement
image processing and meshing algorithms (see Resources below), which may
be required for product completion. Additionally, the client is responsible
for providing timely feedback to questions about product specs
Overall Software Development
The delivered software product should be a single source-tree which compiles and runs on Sun Solaris, SGI Irix, and PCs running Windows NT 4.0, with identical functionality, provided the appropriate prerequisite software is installed on the target platform.
Modified Display Features:
Multicolor display: Allow for the inclusion of multiple colors on the 3D surface renderings of the segmented objects. This should be visualized and recorded in the label data-object for later storage and retrieval.
 Select visible objects: Select which of the many segmented objects should be actively shown in the 3D view.
Surface smoothing and simplification: The 3D surface renderings of the segmented objects should be smoothed and simplified (triangle decimation) to aid visualization. The user should be able to control the extent of smoothing and the degree of simplification. Due to the modification/compression/simplification of the 3D data set, a mechanism to maintain accuracy and consistency between the 3D cursor and the orthogonal views must be established, as this is an important use of such a visualization tool.
Modifications of Data Interaction Tools:
Cut planes: The user should be able to specify in the 3D window a plane which will subdivide a segmented object, and
re-label the voxels of the object according to which side of the plane they lie on. The user should be able to specify
which labels are used to recolor each half of the object.
 File input:
Allow for easy input of various grayscale image file formats, including gipl, DICOM, compressed files.
Modifications of Data Interaction Tools:
Geodesic lines: The user may be able to specify a curve on the surface of a segmented object, and a continuous
spacecurve in the label image will be re-colored correspondingly.
Extend the Cut planes to include cut surfaces: The user may be able to specify a surface (perhaps an extruded 2D curve)
which will cut a segmented object, and re-label correspondingly as identified in the plane section.
 Virtual knife: The user may be able to specify a cut surface and a depth to which voxels will be relabeled along the cut surface. An adjustable-width "brush" for painting surface voxels is another possible extension. These and other extensions to the 3D manipulation modules will be discussed in further detail as the project progresses
Integration of Multi-Image Extensions:
IRIS extensions separately written by Cecille Barat to allow visualization of multiple registered images may be integrated
into the IRIS source tree for the final release.
Access to workstations for all desired platforms of deployment for software development (provided by the client).
Provision of an current version of the IRIS software and documentation for the Sun Solaris, SGI Irix and Windows NT 4.0 systems (provided by Martin Styner).
FLTK and VTK documentation and access, or the provision of alternative libraries/functions that might better implement certain advanced Image Processing and Meshing algorithms (provided by the client).
Data sets and the file format description of these data sets (provided by the client).
Specification of the desired output file format (to be discussed by the contractor and client).
Provision of IRIS multi-image extentions (provided by Cecille Barat).
The intuitive selection of lines or patches in 3D is still an open research problem. The contractor will endeavor to devise a natural and practical method for doing this.
Documentation and capabilities of VTK may not be adequate to solve the problems described in the requirements of this project. If so, adequate time to research and select a more appropriate replacement may not be available.
Modifications to IRIS at a later date may exist and cause problems with the changes made by the contractor/team. The contractor/team takes responsibility for compatibility only for the version provided at the beginning of the project.
Some accuracy is inherently lost with surface smoothing, and an acceptable algorithm may not be found that can correlate between the 2D and 3D data.
The primary platform on which this product will be used is a Sun workstation running Unix. Therefore access to and use of the departments Sun compute servers is paramount. If frequent access cannot be granted, then the contractor will endeavor to produce the final product on other architectures running Unix with consideration to its portability to Sun workstations.
HOW IRIS WORKS:
The volume data set is broken up into voxels, which are the 3D equivalent of pixels. Currently the 3D view of the dataset is drawn using voxels, and for this reason, the structure looks blocky.
Labels are used to define different parts of the anatomical structures. They are determined by the user and are stored in the label data-object. (The original dataset is left untouched.)
Voxel - a pixel is an element of a 2D image, a voxel is an element of a 3Dimage. [it's important to note a pixel is a "picture-element" -- it only makes sense in context of an image; it's different from a mathematical point in 2-space]
Grayscale 3D Image - a 3D array of voxels, where at each point of a grid in 3-space there is a grayscale value. In IRIS this is the input image, typically a 3D MRI, CT, PET or ultrasound dataset. This image is typically not modified; the _segmentation_ is kept separate from the grayscale image data.
Segmented Object - An object of interest in the grayscale image, e.g. a tumor, the brain ventricles, a lobe of the brain. In IRIS a segmented object has hard boundaries, so that its surface can easily be rendered in 3D.
Segmentation - The general process of obtaining segmented objects from a grayscale 3D image. IRIS is a tool for _manual_ segmentation, i.e. all ofthe outlining of segmented objects must be done by hand. When used as a noun, the word "segmentation" refers to a single segmented object or a set of segmented objects.
Labels - Tags (typically small integers) which are given to individual voxels to specify which segmented object they will belong to.
Label Image - A 3D array of labels,
typically of the same dimensions as the input grayscale image. At each
voxel in the label image there is a label, which specifies which segmented
object that voxel belongs to. For instance, a voxel with label 1 may indicate
that that voxel is in the left hemisphere of the brain, and label 2 may
indicate the right hemisphere,while label 0 may indicate a voxel in the
background. A label image is IRIS' representation of a group of segmented
objects taken from a single grayscale image.
Guido Gerig – Client
Ashraf Farrag – Contractor
Amy Henderson – Contractor
Sean Ho – Contractor
Robin Munesato – Contractor
Ming Yu – Contractor