Next | Prev | Up | Top | Contents | Index
ImageVision Library
Unlike the graphics libraries, which build a display from a series of geometric objects, image processing applications start with an image consisting of pixel information stored in a file. These images can originate as a photographic image that's scanned or obtained from a Kodak(TM) CD, data obtained from medical imaging equipment, satellite data, or numerous other sources. An image processing application can manipulate this image in ways that are meaningful to the user of the application.
The ImageVision Library (IL) is a set of tools designed for developers of image processing applications. The IL is written in C++ but has interfaces for C and Fortran. You can use this library to import, manipulate, display, and store images.
The IL is an object-oriented toolkit whose modularity provides an easy and efficient means to create and maintain programs that use it for image manipulation and display. This modular structure also makes it easy to extend the IL--for example, to augment the image operators supplied by the IL or to design new ones.
The ImageVision Library contains objects and methods that allow an image processing application to:
- Import images created in a variety of different file types. The supported file formats include TIFF, GIF, Kodak Photo CD(TM), SGI, and FIT.
- Process images using any sequence of the image processing operators supported by the IL. Image processing functions include color conversion, arithmetic operations on pixel data, radiometric and geometric transformations, generation of statistical data for an image, spatial and non-spatial domain transformations, and edge, line, and spot detection.
- Display one or more images in an X Window. The IL provides many ways to control image displays, including stacking images or aligning them side by side, roaming a large image, or doing a wipe to move one edge of an image to reveal what is stacked beneath it.
- Store processed images on disk.
The following figures illustrate an ImageVision Library operation. Figure 6-7 shows an image imported from a Kodak Photo CD.
![](IX5FIRIXX5FProg-70-image-20.gif)
Figure 6-7 : A Display Created by ImageVision Library
Figure 6-8 shows the image created when the ImageVision library performs a geometric transformation called a warp on the image in Figure 6-7.
![](IX5FIRIXX5FProg-70-image-21.gif)
Figure 6-8 : Using the ImageVision Library to Transform an Image
Figure 6-9 illustrates a simple ImageVision application that reads an image from disk, applies a rotation transformation, displays both images on a monitor, and writes the rotated image to disk.
![](IX5FIRIXX5FProg-70-image-22.gif)
Figure 6-9 : A Simple ImageVision Library Application
The ImageVision Library toolkit provides an application program interface (API) that is common across all Silicon Graphics workstations. The IL uses Xlib for window management and allows you to use either IRIS GL or X to render into an X window.
Figure 6-10 shows the architecture of an IL application.
![](IX5FIRIXX5FProg-70-image-23.gif)
Figure 6-10 : Architecture of an ImageVision Library Application
The IL implements an execution model that optimizes memory usage and performance as image data is processed. This execution model
- supports the parallel processing features of Silicon Graphics workstations
- caches image data to minimize file access
- is demand-driven so that only image data needed for output is processed
- chains operations together, which saves time because intermediate results don't have to be stored
- uses hardware acceleration of graphics operations whenever possible to improve performance of IL operations
Next | Prev | Up | Top | Contents | Index