May 1, 1998
In the past, system developers had few choices when selecting image-processing software-development tools. Although C-based callable libraries are available from several vendors, they are often tied to that company`s image-processing hardware, thereby locking in the developer to both hardware and software products from that vendor.


By Andrew Wilson, Editor at Large

In the past, system developers had few choices when selecting image-processing software-development tools. Although C-based callable libraries are available from several vendors, they are often tied to that company`s image-processing hardware, thereby locking in the developer to both hardware and software products from that vendor.

At the other extreme, application-specific image-processing packages, tailored for such applications as machine vision and microscopy, allow developers to

quickly configure and link routines to perform specific functions. Although such packages are useful, they are generally not designed as image-processing development tools.

Recently, however, the demands of system developers for easy-to-use software tools have led to the development of icon-based dataflow packages. For example, Orincon Technologies (San Diego, CA), Image Integration GmbH (Gernlinden, Germany), and Logical Vision (Burnaby, BC, Canada) have all pioneered image-processing software based on icons that can be used to create image-processing applications. Despite different levels of complexity, all these packages present a similar graphical user interface (GUI).

Development process

To develop an image-processing-software system, the designer first selects the icons that represent the functions to be performed on the source image. By linking a series of these functions, the designer can produce a visual data graph that shows the flow of the image-processing program.

One such package, Rippen by Orincon, provides a graphical programming tool for development and execution in real-time multiprocessor applications. Rippen includes a run-time environment that consists of a small kernel running on each processor in the target platform.

Selecting from a library of functions that include both signal- and image-processing functions, the system developer can produce a graphical script of block functions. This script automatically specifies the flow of data from one function to the next and across the multiple processors in the system (see Fig. 1). Because Rippen can provide real-time performance in a heterogeneous, multiprocessing environment, it automatically addresses real-time issues such as data queuing, synchronization, and load balancing.

As one of the pioneers in graphical dataflow environments for image processing and analysis, Logical Vision has developed WiT software, which contains imaging graphs that consist of icons and links, called igraphs, that can be used to solve an imaging problem (see Fig. 2). Providing more than 200 operators for filtering, morphology, segmentation, geometry, and measurement, the package offers features to interface the final igraph into Visual Basic using a dynamic link library (DLL) for custom front-end design.

Such functionality for Windows-based systems can also be found in the Image++ V2.0 tool from Image Integration. In operation, this software tool loads both images and operators as elements on an operator graph. By interactively linking the image and the operators, the dataflow and image operations can be observed interactively. For development ease, the operators in the package, which include filtering, thresholding, and rotation, are implemented as C++ files. They can be combined, modified, or re-written in a C++ editing window within the application. To test a modification, Microsoft`s C++ compiler can be started to produce a new DLL (see

Fig. 3). The new operator can then be used as an element in the GUI of the Image++ V2.0 package.

Active controls

By using Microsoft Corp. (Redmond, WA) Visual Basic common object-oriented programming software, system developers can evolve software applications with objects from independent software vendors. This nonproprietary approach to a graphical programming environment has led to the introduction of numerous image-processing packages based on ActiveX controls.

ActiveX controls (also called OCX controls) are software components based on Microsoft`s 32-bit component object module interface. These controls can be dropped into a development environment, such as Visual Basic or Visual C++, in modular fashion. Using this approach, system developers can implement controls from several vendors to write a single application. Working in such an environment, developers gain access to powerful features such as standard graphical property pages, context-sensitive help, and standard conventions for programming the controls.

Imaging impact

"OCX controls simplify the development process by taking advantage of object-oriented architecture and graphical developments," says Dennis Flanagan, imaging-products manager at Optimas (Bothell, WA), developer of XCaliper4, a set of 32-bit vision libraries packaged as OCX components. "Applications are created by dragging and dropping OCX components and configuring them with graphical property sheets. At run time, the tools are executed and examined using a standard interface of properties, methods, and events (see Fig. 4). As a result, vision applications can be created more rapidly using fewer lines of code," says Flanagan.

Targeted at machine-vision applications such as gauging, assembly verification, and optical character recognition (OCR), Optimas` XCaliper package includes pattern recognition and alignment, edge finding, caliper measurement, and OCR algorithms packaged as OCX components. The XCaliber package provides the ability to train any OCR font and to find patterns or character strings at any angle of orientation and in a variety of different scales. It also includes more than 25 Mbytes of code examples in Visual Basic and Visual C++ to give developers a head start in writing their object-oriented vision applications.

Other software suppliers, such as Synoptics (Cambridge, England), Integral Vision (Farmington Hills, MI), and Matrox (Dorval, Quebec, Canada), do or will offer sets of OCX-based image-processing tools that can be added into Visual Basic. Synoptics` Image Objects (IO) package includes functions such as image analysis, Fourier transforms (FTs), and morphological operations. Supplied as a set of OLE automation objects and OCXs, the Image Objects controls appear as additional OCXs on the toolbar of Visual Basic, can be dropped on the Visual Basic form, or accessed from Visual Basic code. To promote its IO package, Synoptics is offering a free demonstration compact disk that contains fully functional OCXs and examples written in Visual Basic and Visual C++.

At the recent Nepcon Show (Anaheim, CA; March 17-19), Integral Vision announced that it would provide developers with a free 14-day trial of its VisionBlox machine-vision application-development tools. With this set of OCX-based tools, system developers can use Microsoft`s development environments to customize machine-vision applications. The VisionBlox package provides icon controls for image-processing routines that include linear and nonlinear enhancement, morphology, caliper, and template measurement. It also features three-axis integrated motion controls, distortion-correcting calibration routines, color-processing algorithms, and two-dimensional and three-dimensional geometric reconstruction functions.

Last year, Matrox unveiled ActiveMIL-Lite 1.0, a collection of ActiveX controls for building Windows-based imaging applications using tools such as Visual Basic. ActiveMIL-Lite handles image capture, transfer, and display using Matrox frame grabbers and image processors, integrates into visual development environments, and gives access to the algorithms of the Matrox Imaging Library (MIL; see Fig. 5).

Currently, ActiveMIL-Lite represents the first phase of a two-phase plan to implement the high-level `C` functions of the MIL as ActiveX controls. Phase two is expected to bring the power of this library with more than 200 high-level `C` functions for image processing, blob analysis, pattern matching, gauging/measurement, and OCR functions to bear on development environments.

Developing controls

Using graphical development tools such as Visual Basic, system developers can more easily create reusable ActiveX imaging controls. "A key advantage of ActiveX controls over Java applets and Netscape plug-ins is that ActiveX controls can be used in applications written in many programming languages, including all the Microsoft programming and database languages," states Nancy Cluts, a Microsoft development technology engineer.

Moreover, the Visual Basic and Visual C++ programming languages allow developers to add more functionality into their OCX-based systems using publicly available image-processing packages. These packages include the Image Processing Library from Intel Corp. (Santa Clara, CA) and a CD-ROM of image-processing tools from Network Cybernetics Corp. (Irving, TX).

The Intel library, for example, runs on Intel-processor PCs under Windows operating systems and integrates into applications or libraries written in C or C++. Providing such image-processing functions as filtering, thresholding, arithmetic, and morphological operations, the library is also capable of detecting a specific processor and loading the appropriate DLL.

Although not processor-specific, the Network Cybernetics CD-ROM serves as an imaging reference source. Containing software and source code for image-processing algorithms, the CD-ROM is compatible with DOS and UNIX operating systems and Macintosh computers.

Merging technologies

While graphical development packages such as those from Orincon, Logical Vision, and Image Integration allow the linking of image-processing routines without writing code, systems developers still need to write code when linking OCX modules in packages from Optimas, Synoptics, and Integral Vision. Although considered a routine programming task, this linking process is expected to be automated by software vendors wishing to offer developers a faster way to bring image-processing systems to market. In doing so, however, companies offering dataflow software, such as Logical Vision, are unlikely to take a backward step and make their libraries of functions available as ActiveX controls. Rather, the igraphs themselves will be made into Active X controls (see Fig. 2). In this approach, system developers working with igraphs in Visual Basic will automatically be linked to the WiT design environment.

"Any language can load the WiT run-time environment," says Terry Arden, director of Logical Vision. "Using multithreaded scheduling, WiT uses separate threads within a larger application to perform the imaging task and report results. Because Visual Basic runs while WiT runs, a user can interact with Visual Basic while WiT is processing and sending decisions from igraphs at the same time," he adds. The same technology can be exploited in embedded processor systems where igraphs are downloaded to a WiT scheduler.

Although WiT is currently not ActiveX-compliant, company plans are underway for such a development. "Imagine designing an application inside your Web browser by drawing igraphs and running them over a network," says Arden. When this happens, system developers will be presented with the best of both worlds: reusable graphical components that can be linked using Active X container applications such as Visual Basic or Web browsers.

Click here to enlarge image

FIGURE 1. Using the Rippen real-time interactive programming and processing software from Orincon Technologies, system developers can assign signal- and image-processing tasks using flow-graphs. Because this software-development tool has been designed for a multiprocessing environment, system developers can also assign processing tasks to specific processors in the system.

Click here to enlarge image
Click here to enlarge image
Click here to enlarge image

FIGURE 2. Using dataflow diagrams called igraphs, the WiT visual programming environment from Logical Vision uses icons that can be linked to form entire imaging algorithms. In the displayed screen, a computer tomographic image has been read, smoothed, and displayed as a surface plot.

Click here to enlarge image

FIGURE 3. Image++, an object-oriented graphic development tool from Image Integration, uses both operators and images to highlight the flow of image-processing functions being performed. In addition, Image++ shows the source code of the implemented functions as a C++ class library. These functions assist in the modification and re-compilation of code using C++ compilers.

Click here to enlarge image

FIGURE 4. Using Visual Basic as its development platform, the XCaliper 4 modular vision software from Optimas is based on a series of reconfigurable OCX functions known as ImageDevices. In this example, an ImageDevices function has been placed on a new Visual Basic form, and a template image has been loaded.

Click here to enlarge image

FIGURE 5. Rapid application environments such as Microsoft`s Visual Basic and ActiveX controls such as Matrox`s ActiveMIL-Lite both allow system developers to configure Windows-based imaging applications by dragging-and-dropping icons from a tool bar onto a workspace and then to configure the functionality assigned to these objects by selecting settings from the property page, rather than writing code. In the displayed screen, the system developer has set the scaling factor for video that will be digitized later.

Voice Your Opinion

To join the conversation, and become an exclusive member of Vision Systems Design, create an account today!