[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

VIGRA Reference Manual |

- Installation
  how to get started
- Tutorial
  first steps with VIGRA
- Concepts
  generic interface definitions
- Utilities
  Basic helper functionality needed throughout
- Error Reporting
  Exceptions and assertions
- Mathematical Tools
  Number types, mathematical constants and functions, linear algebra etc.
- Pixel Types
  Non-scalar types such as RGBValue and TinyVector
- Image Data Structures and Iterators
  Images, image iterators, and supporting types and functions
- Multi-Dimensional Arrays and Iterators
  Arrays, iterators, and supporting types and functions for arbitrary dimensions
- Chunked arrays
  Store big data (potentially larger than RAM) as a collection of rectangular blocks
- Graph Data Structures and Algorithms
  Graph-based algorithms (e.g. segmentation) and underlying graph classes (e.g. grid graphs for arbitrary dimensions)
- Image Import and Export
  Conversion from and to other image data types
- Color Space Conversions
  Convert between RGB and other color spaces, such as L*u*v*, Y'PbPr
- Image Processing
  Point operators, image arithmetic, convolution, morphology
- Image Registration
  Transforming different images into a common coordinate system
- Image Analysis
  Segmentation and feature extraction algorithms
- Machine Learning
  Classification algorithms
- Examples
  Demonstration programs for VIGRA's usage
- Vigra Matlab
  VIGRA Matlab bindings
- vigranumpy
  VIGRA Python bindings
- Credits and Changelog
  Who contributed what?

# VIGRA - Vision with Generic Algorithms

Version 1.11.0 by Ullrich Köthe

VIGRA is a computer vision library that puts its main emphasis on flexible algorithms, because algorithms represent the principle know-how of this field. The library was consequently built using generic programming as introduced by Stepanov and Musser and exemplified in the C++ Standard Template Library. By writing a few adapters (image iterators and accessors) you can use VIGRA's algorithms on top of your data structures, within your environment. Alternatively, you can also use the data structures provided within VIGRA, which can be easily adapted to a wide range of applications. VIGRA's flexibility comes almost for free: Since the design uses compile-time polymorphism (templates), performance of the compiled program approaches that of a traditional, hand tuned, inflexible, solution.

VIGRA's design is documented in the chapter "Reusable Software in Computer Vision" by Ullrich Köthe, in: B. Jähne, H. Haußecker, P. Geißler: "Handbook on Computer Vision and Applications", volume 3, Academic Press, 1999. If you don't have the book, you may read a draft of this article. A shorter article STL Style Generic Programming with Images describing some of the ideas has appeared in the January 2000 issue of C++ Report Magazine. The most comprehensive source of information is U. Köthe's PhD thesis Generische Programmierung für die Bildverarbeitung, but this is written in German.

VIGRA is subject to this LICENSE.

You can also subscribe to the VIGRA Mailing List to get instant information about new releases, discuss VIGRA's features and development, and ask the experts for help.

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany | html generated using doxygen and Python vigra 1.11.0