Article

Supporting Image Algebra in the C++ Language

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

Image algebra has been implemented in a variety of programming languages designed specifically to support the development of image processing and computer vision programs. The University of Florida has been associated with implementations supporting the languages FORTRAN, Ada, and Lisp. Our current work involves the implementation of a class library, iac++, that supports image algebra programming in C++. Because of the widespread acceptance of the C and C++ programming languages in the computer vision community, this new implementation offers exciting possibilities for supporting a large group of users. The tight control over an object's computational resources provided to the class designer by C++ means that the image algebra class library can employ efficient representations for the operands and operations of the algebra. The paper discusses the relation of the iac++ class library to previous implementations of image algebra. The paper assumes a rudimentary knowledge of C++ and obj...

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

... Several image algebra programming languages have been developed. These include image algebra Fortran (IAF) [68], an image algebra Ada (IAA) translator [65], image algebra Connection Machine *Lisp [67,19], an image algebra language (IAL) implementation on transputers [9,10], and an image algebra C++ class library (iac++) [66,62]. Unfortunately, there is often a tendency among engineers to confuse or equate these languages with image algebra. ...
... Several image algebra programming languages have been developed. These include image algebra Fortran (IAF) [45], an image algebra Ada (IAA) translator [46], image algebra Connection Machine *Lisp [47,48], an image algebra language (IAL) implementation on transputers [49,50], and an image algebra C++ class library (iac++) [51,52]. Unfortunately, there is often a tendency among engineers to confuse or equate these languages with image algebra. ...
Article
Full-text available
The present edition differs from the first in several significant aspects. Typographical errors as well as several mathematical errors have been removed. In a number of places the text has been revised to enhance clarity. Several additional algorithms have been included as well as an entire new chapter on geometric image transformations. By popular demand, and in order to provide a better understanding of image algebra, numerous exercises have been added at the end of the each chapter. Starred exercises at the end of a chapter depend on knowledge of material from subsequent chapters.
... Several image algebra programming languages have been developed. These include image algebra Fortran (IAF) [45], an image algebra Ada (IAA) translator [46], image algebra Connection Machine *Lisp [47,48], an image algebra language (IAL) implementation on transputers [49,50], and an image algebra C++ class library (iac++) [51,52]. Unfortunately, there is often a tendency among engineers to confuse or equate these languages with image algebra. ...
Book
Full-text available
Image algebra is a comprehensive, unifying theory of image transformations, image analysis, and image understanding. In 1996, the bestselling first edition of the Handbook of Computer Vision Algorithms in Image Algebra introduced engineers, scientists, and students to this powerful tool, its basic concepts, and its use in the concise representation of computer vision algorithms. Updated to reflect recent developments and advances, the second edition continues to provide an outstanding introduction to image algebra. It describes more than 80 fundamental computer vision techniques and introduces the portable iaC++ library, which supports image algebra programming in the C++ language. Revisions to the first edition include a new chapter on geometric manipulation and spatial transformation, several additional algorithms, and the addition of exercises to each chapter. The authors-both instrumental in the groundbreaking development of image algebra-introduce each technique with a brief discussion of its purpose and methodology, then provide its precise mathematical formulation. In addition to furnishing the simple yet powerful utility of image algebra, the Handbook of Computer Vision Algorithms in Image Algebra supplies the core of knowledge all computer vision practitioners need. It offers a more practical, less esoteric presentation than those found in research publications that will soon earn it a prime location on your reference shelf.
... The environment keeps developers at a comfortable level of abstraction, specifying algorithms symbolically and algebraically, while automatically partitioning the image data and scheduling operations to achieve optimal performance. Speci cally, we discuss the use of the retargetable Image Algebra C++ object library iac++ 23] for image processing on the Lockheed Martin pal-i computer, a ne-grained, simd-parallel computer. Modifying the iac++ library to provide e cient simd execution on the pal system requires the development of a new image representation class, implementation of a client-server system, development of a strategy to reduce data transfers, and creation of a cost measure to control that strategy. ...
Article
Full-text available
SIMD parallel computers have been employed for image related applications since their inception. They have been leading the way in improving processing speed for those applications [1]. However, current parallel programming technologies have not kept pace with the performance growth and cost decline of parallel hardware. A highly usable parallel software development environment is needed. This chapter presents a computing environment that integrates a simd mesh architecture with image algebra for high-performance image processing applications. The environment describes parallel programs through a machine-independent, retargetable image algebra object library that supports simd execution on the Lockheed Martin, pal-i parallel computer. Program performance on this machine is improved through on-the-fly execution analysis and scheduling. We describe the relevant elements of the system structure, outline the scheme for execution analysis, and provide examples of the current cost model and ...
Article
Image algebra is a rigorous, concise notation that unifies linear and nonlinear mathematics in the image domain. Image algebra was developed under DARPA and US Air Force sponsorship at University of Florida for over 15 years beginning in 1984. Image algebra has been implemented in a variety of programming languages designed specifically to support the development of image processing and computer vision algorithms and software. The University of Florida has been associated with development of the languages FORTRAN, Ada, Lisp, and C++. The latter implementation involved a class library, iac++, that supported image algebra programming in C++. Since image processing and computer vision are generally performed with operands that are array-based, the Matlab™ programming language is ideal for implementing the common subset of image algebra. Objects include sets and set operations, images and operations on images, as well as templates and image-template convolution operations. This implementation, called Image Algebra Matlab (IAM), has been found to be useful for research in data, image, and video compression, as described herein. Due to the widespread acceptance of the Matlab programming language in the computing community, IAM offers exciting possibilities for supporting a large group of users. The control over an object's computational resources provided to the algorithm designer by Matlab means that IAM programs can employ versatile representations for the operands and operations of the algebra, which are supported by the underlying libraries written in Matlab. In a previous publication, we showed how the functionality of IAC++ could be carried forth into a Matlab implementation, and provided practical details of a prototype implementation called IAM Version 1. In this paper, we further elaborate the purpose and structure of image algebra, then present a maturing implementation of Image Algebra Matlab called IAM Version 2.3, which extends the previous implementation of IAM to include polymorphic operations over different point sets, as well as recursive convolution operations and functional composition. We also show how image algebra and IAM can be employed in image processing and compression research, as well as algorithm development and analysis.
Article
An ever-increasing proportion of the algorithms employed in image processing are being translated into the language of image algebra. The aspects of this algebra of particular interest in electron optics are presented and the advantages of adopting it as a lingua franca are described.
ResearchGate has not been able to resolve any references for this publication.