Iowa Mental Health Clinical Research Center, University of Iowa Hospitals and Clinics, Iowa City, IA
Introduction
The BRAINS1-2 package was originally designed eight years ago. It was developed to utilize several state-of-the-art features of the Silicon Graphics Inc. (SGI) computers, which had superior graphics capability. The visual interface in this package was based around the proprietary GL (graphics library) developed by SGI to allow for rapid display of images, volumes, and surface rendering. With the ongoing development of the computer field, the GL library is being replaced by an industry standard 3D graphics library known as OpenGL. This report describes the BRAINS2 development project, which utilizes newer industry standard libraries and an object oriented design.
Methods
BRAINS2 is an object oriented rewrite of the original BRAINS package that harvests the power of current industry standard graphics packages: Xll and OpenGL. The use of the OpenGL package allows for rapid display of images and surfaces when library calls are supported in hardware. This allows for real time manipulation of images and surfaces. The graphical user interface (GUI) is built upon XFORMS.3 This package facilitates efficient interface development, using the FormsDesigner, thus allowing more time to be spent in the development of image processing routines.
Before coding began on the software package, a complete specification was developed and written, which provided a substantive outline of the object structure and access functions. The definition and function of kernel calls, and the function of the queue that dispatches kernel calls in a multi-threaded way, was developed to support dynamically loadable objects. In addition, an object and kernel function certification procedure was developed to document a routine's validity, performance, and function. Finally a C-style guide was developed that was based upon the Indian Hills C-Style and Coding Standards and the SDM C Coding Manual. This guide is used to provide a consistent programming style. All coding in this project is POSIX compliant.
The following is a sample of BRAINS2 objects: images, masks, ROIs, surfaces, landmarks, transforms, talairach parameters, talairach boxes, and histograms. Image processing is accomplished by passing objects to kernel calls, which implement various image processing routines. Currently there are a limited number of kernel calls such as thresholding, filtering, generation of histograms, mask operations, and active contours. Work is underway to add other features from BRAINS such as tissue classification, generation of surfaces, and automated segmentation to this new BRAINS2 package. The current software supports multiple data formats using filters that convert the data files into a BRAINS2 native file format.
Application
Since this is an image processing package, the most comprehensive object is the image object. A large number of access functions and kernel calls operate on the object. Any data type can be written to the image object (native type) with a data type specified as the storage type. After an image has been generated any portion of the image can be requested in any data type from unsigned 8 bit data to 64 bit floating point. A standard set of conversion functions exists that have been validated which provide the maximum resolution of the original data type in the requested image type. The image object has support for multiple dimensions and can handle multiple channel data such as complex data or RGB data. The multi channel implementation of the image object supports the new feature of BRAINS2 over the original BRAINS software by allowing "superimage" viewing, which is the display of T1, T2, and PD images simultaneously in an RGB display. This feature has been used to improve the reliability of defining the thalamus and other regions that contain mixtures of tissue type and therefore have boundaries that are difficult to delineate.
Conclusion
BRAINS2 is an object oriented image processing package that uses industry standard libraries allowing for rapid display both of images and surfaces. It is very flexible and increases the ability to develop novel image processing routines. It is designed in such a way that new kernel calls and data file filters can be added dynamically, thereby reducing the memory overhead. Its ability to display multiple channel data has improved the ability to define structures difficult to visualize in a single image modality (e.g., thalamus).
References
1. Andreasen NC, Cohen G, Harris G, et al. J Neuropsychiatry Clin Neurosci 4:125-133, 1992.
2. Andreasen NC, Cizadlo T, Harris G, et al. J Neuropsychiatry Clin Neurosci 5:121-130, 1993.
3. Zhao TC and Ovennars M. Forms Library: A graphical User Interface Toolkit for X11. 1998.