Division of Physiologic Imaging

Department of Radiology

University of Iowa College of Medicine



Welcome to VIDA® (Spanish for life), a comprehensive package for the manipulation, display, and analysis of multidimensional image data sets. Physiologic-based research has traditionally involved highly invasive techniques which may alter the very function being studied. Since the first dynamic volumetric studies were done in the early 1980's on the Dynamic Spatial Reconstructor (DSR), there has been a surge of interest in volumetric and dynamic imaging using a number of tomographic techniques. Knowledge gained in handling DSR image data has been transferred to other volumetric imaging and dynamic imaging quantitation including cine and spiral CT, MR, and PET which led to our development of VIDA®.

VIDA® is written in C, runs under the UNIX operating system, and uses the XView toolkit to conform to the Open Look graphical user interface specification. VIDA®'s shared memory structure allows for the manipulation of multiple image data sets simultaneously. The windowing environment allows execution of multiple processes at once. Available programs include: orthogonal sectioning, oblique sectioning, volume rendering, surface rendering, region of interest analysis, conventional cardiac mechanics analysis, homogeneous strain analysis, tissue blood flow evaluation, interactive image segmentation and editing, algebraic image manipulation, and more. VIDA® is built modularly, allowing new programs to be developed and integrated easily. An emphasis has been placed upon image quantitation for the purpose of physiological evaluation.



Visualizing Image Data



Once loaded into shared memory, the Visualization modules are used for viewing image data sets in 2-D, 3-D, or dynamically (movies).

Orthogonal Sections Display (OSD)

Orthogonal Sections Display (OSD) is a very flexible general purpose 2-D display package used to mix and match images from one or more volumetric data sets. Images can be displayed in a transverse, sagittal, or coronal orientation. Other options include magnification, zooming, window, level, etc. Orthogonal Sections Display is an excellent tool for getting a general overview of image data sets and to visually comparing one image against another. The module's flexible layout scheme allows for many combinations including displaying images on top of one another, side by side, across the full window, or within a region of the window. Image sequence can be prioritized by slice, phase, time, or file. For example, images can be displayed such that all phases at a given slice level are shown in sequence, followed by all phases from the next level, and so on. Another use is to simultaneously display pairs of slices from multiple files.


Oblique Sections Display (OBL)


Oblique Sections Display (OBL) can be used to extract slices at any arbitrary orientation within a volumetric data set. New data sets with slices parallel to a selected oblique angle can be generated after re-sampling and interpolation. Oblique sections can be shipped into shared memory to be used by other modules such as Region Of Interest to make quantitative measurements. Oblique orientation descriptors can be stored to a text file for automatic re-extraction at a later date, or the oblique sections themselves can be saved as a separate image file on disk. Features exist to help visualize where one oblique section intersects others. For example, any oblique section can be placed into a snapshot window with a line superimposed showing where a newly selected oblique intersects this slice. This module can be used, for instance, on a cardiac data set to re-sample and generate slices that are perpendicular to the true short axis of the heart.


Volume Render (VR)



Volume Render (VR) is used for 3-D visualization of structures such as the heart, lungs, vasculature, etc. The 3-D effect is produced by projecting rays from multiple angles of view through the volumetric data set. The rendered object can be scaled and rotated about x, y, and z axes to make animated 3-D displays. Such movies can be saved as disk files for more rapid viewing via the Movie Viewer module. Special attention has been paid to render images very rapidly without the need of any special purpose hardware.

Volume Render uses various mathematical methods in conjunction with a ray casting algorithm to produce different visual effects. Currently included are methods to map the brightest voxel along a ray, the darkest voxel, the average of all the voxels along a ray, or gradient shading. Gradient shading is a technique where a threshold range is identified by the user to select for a structure of interest (i.e. ribs) such that the casted ray stops at the first voxel in its path meeting the threshold range criteria. The distance and angular information is combined and color coded to produce the displayed image.

Surface Render (SR)

Surface Render is designed to create 3-D shaded surface displays of structures that can be segmented by simple thresholding. 2-D Segmentation can be used to pre-process images to ensure that various structures within a data set can be separated by specifying simple threshold ranges. Surface Render also allows setting multiple threshold ranges to identify multiple objects within a volume so that when two or more objects are to be displayed together, each can be assigned unique colors. Similar to the Volume Render module, an extensive movie scripting panel is available to define a sequence of frames (i.e. rotating multiple objects, turning one or another on and off, separating the objects, etc.). For example, consider generating a 3-D surface display of cardiovascular anatomy. First, use 2-D Segmentation to uniquely identify the various chambers of the heart and the great vessels by setting each structure to a unique gray level. Next, interpolate this segmented data to generate cubic voxels. Then, use Surface Render to produce shaded surface displays of the chambers and vessels, coding each component of the cardiovascular system with a separate color. This approach is proving to be particularly powerful in visualizing severely malformed anatomy in congenital heart disease (see work of Dr. Paul Weinberg of the Children's Hospital of Philadelphia).

Movie Viewer

The Movie Viewer uses unique techniques to rapidly display images, including movies made using modules such as Volume Render and Surface Render. Geometric relationships and/or motion (such as myocardial wall motion through a heart beat) are perceived by viewing many frames rapidly, producing animation. This module also has the capability to flip image data sets about the major axes. You can use this module for producing video either by direct video taping of the screen or by using scan converters.



Analizing Images



Once an image has been loaded into shared memory, the Analysis modules can be used for making various regional and global measurements.

Region of Interest (ROI)

Region of Interest (ROI) is designed for interactive image quantitation, one of the current strong points of VIDA®. Several regions of various types (curves, lines, polygons, rectangles, etc.) can be created on a slice by using the mouse buttons and the cursor. Each region type has statistics and graphics options associated with it. Features such as move, rotate, scale, etc. exist to edit and/or reshape defined regions. Regions can also be cut, copied and pasted as desired either on the same slice, across slices, or time. Regions created by freehand can be smoothed and adjusted to fit nearby edges (for example, edges of blood vessels or airways). Once regions have been defined, regional statistics (mean intensity, area, pixel count, length, etc.) can be extracted and stored as text files. Time-intensity plots and other graphs can also be generated for single or multiple regions. All defined regions can be saved to hard disk as .roi files and can be recalled later. Some VIDA® modules, such as Contour-Based Cardiac Mechanics, Homogeneous Strain Analysis, and Imatron Blood Flow, can read .roi files directly to aid further analysis.

Contour-Based Cardiac Mechanics

Contour-Based Cardiac Mechanics imports epicardial and endocardial borders defined in the Region of Interest module and computes regional ejection fractions, regional wall thickness, % wall thickening, etc. There are a number of user selectable parameters, such as fixed or floating centroids, algorithm for calculation of wall thickness, algorithm for identification of centroid, myocardial mass, number and location of wedges to be used for regional analysis, number of samples to be taken within a wedge and so forth. A graphing package within this module can display any of the computed parameters. If you double click on a point within a graph, the module will identify and highlight the image location corresponding to the selected data point.

Homogeneous Strain Analysis

Homogeneous Strain Analysis was developed specifically to evaluate regional myocardial strain by calculating the distortion of triangles generated from nodal points embedded within the myocardium, non-invasively through a magnetic imaging technique known as SPAMM (L.Axel, and L. Daugherty, MR imaging of motion with spatial modulation of magnetization (SPAMM), Radiology, Vol. 171, pp. 841-845, 1989). Nodal points can be manually identified using Region of Interest module by tracking the tag intersections in one time point, copying and pasting the identified intersections to the next time point, and then manually adjusting each point to follow the motion of the SPAMM line intersections. These intersection locations are saved to disk and analyzed along with the slice image within the Homogeneous Strain Analysis module. The set of tracked intersection points can be represented by planar triangular surfaces with vertices at the identified intersection points using Delaunay Triangulation. The final triangles are relatively homogeneous in shape.

The user can print out the strain information for all triangles, or only for selected triangles. The strain information for a particular triangle can be displayed by double clicking on that triangle. A number of options are available to color code the strains, map motion of the triangle centroids throughout the cardiac cycle, display the principle strain vectors, graph strain over time, etc. This module can be used for other 2-D strain calculations in which the user has some other means of tracking nodal points other than those provided by the SPAMM technique.

Tube Geometry Analysis

Tube Geometry Analysis (TGA) is used for making 3-D geometric measurements, such as regional cross-sectional area, regional anterior-posterior length and lateral length of pre-segmented vessels or tubes . Given a pre-segmented non-branching vessel segment of interest (i.e. upper airway, pulmonary artery, etc.) this module first automatically computes a three dimensional center line of the structure using an iterative bisection algorithm specifically developed for this module. Double oblique planes perpendicular to the local vessel's center line are then displayed for making quantitative measurements which are displayed by a graphing package within this module. You can interact with the graph, similar to Contour-Based Cardiac Mechanics, to display interposed lines on a set of standard projections to see where in the anatomy the measurement was derived, and to extract a full grey scale oblique from the original data set.

Image Based Perfusion Analysis (IBPA)

Image Based Perfusion Analysis (IBPA) automates the analysis of cine x-ray CT images, thereby allowing one to rapidly compute physiologic data such as regional blood flow, regional tissue, blood and air contents, mean transit times, etc. This module allows advanced users to incorporate, in addition to the provided blood flow models, essentially any blood flow model utilizing a single input and single output function. Therefore, in principle, one does not need to limit the use of the module to only cine-CT data.

Pointing and clicking on an area of the displayed image in this module produces a graph of the time-intensity curve of that region. After identifying a curve for the main feeding artery, all subsequent clicks use this curve to calculate blood flow and related parameters based upon a user selected model (Wolfkiel, Ritman and Weiss' models are currently available).

The real power of this module, however, is the automated, non-interactive, Batch processing mode for data collection. The program is also designed to quickly respond to changes in selection criteria without having to gather the data all over again.

A text file containing all calculated physiologic parameters is generated and can be saved for later analysis. Color coded images of all physiologic parameters are also generated and may be saved to disk.

A special feature of this module combines the complementary information from high resolution CT (anatomy) and dynamic CT (function) by automatically mapping ANY of the color coded functional images into a corresponding high resolution volumetric scan of the same subject.



Manipulating and Segmenting Image Data



The Image Manipulation modules are used for processing and manipulating image data. Included are various segmentation methods, interactive image editors, and automated analysis libraries.

2-D Segmentation

2-D Segmentation makes manual image segmentation as flexible as possible. One can use 2-D Segmentation to distinguish particular structures from others within the same slice, such as the right vs. the left chambers of the heart. Segmentation is accomplished by altering the gray levels of structures so as to uniquely identify them.

The Regions of interest can be interactively identified on an image using the supplied drawing tools such as brush, freehand sketch, rectangle, ellipse, etc. Operators (multiply, divide, add, set to a fixed value, threshold, etc.) can be applied, singly or in combination, to each selected regions to alter an image region's gray level(s). New operators and filters can be added which might, in specific cases, help select particular structures. The regions created in this module are pixel based, and copies of the regions along with the associated operators can be saved as a mask file. Regions and their operators can be later modified, cut, pasted etc. and the modified image generated and/or its mask set can be saved to a disk file for future use. A macro command tool is available which allows you to customize configurations of the editing tools.

Algebraic Image Manipulation (AIM)

Algebraic Image Manipulation (AIM) can be used for performing image algebra by treating images as simple variables in an equation. Image data can be loaded as one of four variables, a, b, c, and d. Equations (such as out = (a + b)/2) can then be written to manipulate the input data sets as desired. Algebraic Image Manipulation will interpret and execute these equations (written in C code) by performing pixel-by-pixel and slice-by-slice computations on the input images. Results can be computed for the entire data set, or for a selected slice for preview purposes. A few commonly used equations, such as addition, averaging, etc., are provided with the module, but you can create customized equations as well.

IMPROMPTU

Impromptu ( IMage PROcessing Module for Prototyping, Testing, and Utilizing image-analysis processes) provides a graphical user interface system for constructing, testing and executing automatic image analysis processes. Complex image analyses can be performed by constructing a sequence of simpler image processing and analysis functions such as filters, edge detectors, morphological operators, etc. The interface currently links to a library (VIPLIB: Volumetric Image Processing function LIBrary) of 1-D, 2-D, and 3-D image processing and analysis functions being developed by the laboratory of Dr. William Higgins of Pennsylvania State University. Use this module to create customized image processing and analysis scripts by selecting and sequencing operators from the library. These scripts, used in conjunction with VIDA®'s segmentation modules, can automate a series of processes that need to be applied to several data sets. Advanced users can create and add customized functions to the library.

Shape-Based Interpolation (MSBI)

Shape-Based Interpolation (MSBI) is used to form cubic voxels (i.e. voxels whose dimension in the z direction is equal to that in the x and y direction) and to maximize preservation of the structure's apparent original shape. The structure of interest is identified by a unique gray scale range. If the original image data set does not allow for unique identification of the object of interest by thresholding, pre-segmentation using a module such as 2-D Segmentation may be required.

Cubic-Voxel Interpolation (CVI)

Cubic-Voxel Interpolation (CVI) performs a similar task as Shape-Based Interpolation, while preserving an image's gray level information. By using CVI before Surface Render or Volume Render, one reduces the stair step effect associated with thick slices. Use Cubic-Voxel Interpolation to generate a new volumetric data set where the slice thickness equals the in-plane voxel dimensions (i.e., cubic voxels). By default, the slice thickness is made to match the original pixel dimensions. However, you can specify a new pixel dimension to increase or reduce the resulting volume size.

Vessel Segmentation

Vessel Segmentation can be used to segment connected vessels, such as airways or other major conduits, from three dimensional images. The module presents three windows corresponding to each of coronal, transverse and sagittal views of the loaded data set. Draw masks (boundaries) in each of the three views such that the object of interest lies completely within the masks and then specify a threshold range to be used for segmentation. Select a seed point (by clicking the mouse button somewhere on the object of interest) on one of the views to be used as the starting point for a 3-D fill. The 3-D fill algorithm starts at the seed point and continues to fill the structure as long as the contiguous voxels are within the specified threshold and the masked regions. To correct for undesired local fills (such as leaks) an edit facility is provided to locally edit a slice or the whole volume. By careful selection of threshold and masks, accurate segmentation can be achieved.



Manipulating Image Files on Disk



The File Manipulation modules provide tools for creating ANALYZE header files (.hdr) and reorganizing image data within a disk file. These modules may be needed before proceeding to use image data sets in VIDA®. For example an image data set cannot be loaded into VIDA® without an accompanying .hdr file and a header file needs to be created before proceeding. In other cases, it may be necessary to reorganize the sequence in which image slices are stored on hard disk, or flip the orientation of the slices.

Create ANALYZE Header

Create ANALYZE Header is used to create or modify a .hdr file associated with an image data set. As mentioned before, the .hdr contains information such as pixel dimensions, slice thickness, etc. which are necessary to some VIDA® modules.

Image Flipper

The Image Flipper can be used to change the orientation of the images. By saving the flipped image on the hard disk, you can avoid having to flip images every time. This is useful if for some reason, your images appear upside down using the default display parameters in the VIDA® modules,

Sequencer

The Sequencer is used to reshuffle slices on the hard disk and/or to combine multiple files into a single file. For instance, use this module to reorganize a dynamic cardiac data set so that multiple phases are grouped together.

Loading Data from Disk to Memory

Load Image Data allows you to load your image data from the computer hard disk into the computer shared memory (RAM). For historic reasons, we currently support the same file format used by another image processing packaged known as ANALYZE. Since this file format only supports four dimensional data, VIDA®'s Load ANALYZE Format module does not take full advantage of the 5 dimensional nature of the shared memory. We have plans to support ACR-NEMA and Interfile compatible file formats to take full advantage of shared memory capabilities.

Loading Data from Tape to Disk

Tape to Disk translates vendor specific image formats into the ANALYZE file format currently used by VIDA®. This translation occurs while transferring the image data from tape to hard disk. Currently supported file formats include: Imatron, GE 8800 CT, GE 9800 CT, GE Signa MR, Siemens CT, and Siemens MR.

Changing the Display Colors and Contrast of Images and Overlays

Color Scales allows you to select a color scheme for displaying images in VIDA® modules. This module also allows you to window and level your image display and customize the colors used in various overlays in some VIDA® modules. The color scheme, window, and level can be changed at any time.

Manging Shared Memory

Memory Manager allows you to keep track of the image data in the shared memory and the amount of shared memory being used. This module has features for deleting items from shared memory and for saving items from shared memory to a disk file.

Exiting VIDA®

The Quit button allows you to exit VIDA®. When this option is selected, a popup panel will be displayed asking you to confirm the quit operation. If you have image data in shared memory, you will be warned that the image data in shared memory will be lost. If desired, at this time you may cancel the quit operation and save any data from shared memory to disk using the Memory Manager.





©1994-2005 Division of Physiologic Imaging, Dept. of Radiology, Univ. of Iowa


VIDA® | DPI Homepage | NLM | Contact Us | Search