Computer vision libraries

Allikas: Digilabor




The Open Computer Vision Library has > 500 algorithms, documentation and sample code for real time computer vision. Tutorial documentation is in O'Reilly Book: Learning OpenCV

  • paljud kiidavad
  • pidi kannatama kiiruses, kuna sisaldab üldisi funktsioone



VXL (the Vision-something-Libraries) is a collection of C++ libraries designed for computer vision research and implementation. It was created from TargetJr and the IUE with the aim of making a light, fast and consistent system. VXL is written in ANSI/ISO C++ and is designed to be portable over many platforms. The core libraries in VXL are:

  • vnl (numerics): Numerical containers and algorithms. e.g. matrices, vectors, decompositions, optimisers.
  • vil (imaging): Loading, saving and manipulating images in many common file formats, including very large images.
  • vgl (geometry): Geometry for points, curves and other elementary objects in 1, 2 or 3 dimensions.
  • vsl (streaming I/O), vbl (basic templates), vul (utilities): Miscellaneous platform-independent functionality.



OpenVIDIA projects implement computer vision algorithms on computer graphics hardware, using OpenGL, Cg and CUDA. The project provides useful example programs which run real time computer vision algorithms on single or parallel graphics processing units(GPUs).

  • Paistab nvidia kaartide keskne olevat



RAVL - Recognition And Vision Library - provides a base C++ class library together with a range of computer vision, pattern recognition, audio and supporting tools.


Some of the features that set RAVL apart from other C++ libraries are:

  • SMP/thread-safe reference counting, allowing easy construction of large programs that takes full advantage of multiprocessor servers.
  • Powerful I/O mechanism, allowing issues for file formats and type conversion to be handled transparently, separately from the main code.
  • JAVA-like class interfaces which largely avoid the direct use of pointers, allowing code to be written in a clear, readable style.
  • Easy-to-use and powerful make system suitable for building both large and small projects.



The Camellia Library is an open source Image Processing & Computer Vision library. Written in plain C, it is cross-platform (Unix / Linux, Windows) and robust. It already includes a lot of functions for image processing (filtering, morphological mathematics, labelling, warping, drawing, project/backproject, color conversion, loading/saving images, etc.), most of them being highly speed-optimized. It is also doxygen-documented and examples of use are provided.



VIGRA stands for "Vision with Generic Algorithms". It's a novel computer vision library that puts its main emphasize on customizable algorithms and data structures. By using template techniques similar to those in the C++ Standard Template Library, you can easily adapt any VIGRA component to the needs of your application, without thereby giving up execution speed.

Main features

  • Fully interoperable with OpenCV, though easier to use.
  • Object-oriented interface when using C++.
  • Full interface to Ruby, a nice scripting language, including garbage collection and exception support. Compatible with FXRuby, a nice GUI toolkit based on FOX.
  • Support for 1-bit and 8-bits to 16-bits depth images.
  • Support for in-place processing, Region of Interest (ROI) and bit masking in most functions.
  • Exclusive RLE (Run-Length Encoded) image processing algorithms, for faster than light image processing.
  • Exclusive algorithms, including Hierarchical Watershed and 3DRS Motion Estimation.
  • Exclusive optimisations, especially for morphological operations.
  • Can be easily compiled on any 32-bits or 64-bits platform with any ANSI C compiler.




Blepo is an open-source C/C++ library to facilitate computer vision research and education. Its goals are threefold:

1. to enable researchers to focus on algorithm development rather than low-level details such as memory management, reading/writing files, capturing images, and visualization, without sacrificing efficiency;

2. to provide a common platform for computer vision research, so that researchers can more easily share their latest algorithms with each other for comparison and extension; and

3. to capture a repository of the more mature, well-established algorithms to enable their use by others both within and without the community to avoid having to reinvent the wheel.



TLIB is an image processing library written specifically for real-time object tracking. It is meant for people with basic C/C++ programming and image processing skills. TLIB aims at fulfilling several goals:

  • Efficiency

While real-time computer vision-based tracking usually requires highly optimized code, writing optimized code is not a trivial task and can be quite time consuming. TLIB's intention is to provide a wrap-up to optimized low-level functions so that the programmer does not have to worry about it.

  • Ease-of-use

Other libraries exist that offer a set of optimized image processing functions, in particular the Intel OpenCV library. However, and even though they are very powerful tools, these libraries make it hard to rapidly develop a simple code for people with basic programming skills. TLIB is designed to offer a high-level interface that makes abstraction of the low-level optimized code, making it very well suited for rapid image processing application development and student training.

  • Portability

TLIB is written in ANSI C/C++, mostly independant of OS specific libraries. Only the image acquisition and display classes are OS dependant. Thus, TLIB can be ported to any OS with little effort. Current distribution supports MS Windows and Linux.

  • Educational

TLIB offers high-level and overloaded routines, along with simple and straightforward data structures that make the code look compact and clean. It simplifies the dataflow design and the understanding of the software for the programmer, and is a good introduction to more complex image processing software.

  • Use of multiple sources

TLIB is designed to work with various image acquisition hardware and image formats, in particular with color and stereoscopic images. The TLIB image formats support several standard and provide a wrapper to a stereo algorithm. It is also possible to design your own image format from multiple sources, along with algorithms dedicated to your custom format.

Thus, TLIB has been designed to make it easy for most programmers to include efficient computer vision code into their applications rapidly, in particular for applications that require vision-based detection and tracking.




This library is aimed at doing computer vision by finding ‘blobs’ on an image , that is to say areas whose brightness is above or below a particular value.

It allows to compute blobs’edges as well as blobs’bounding box. However, this library does not perform blob tracking, it only tries to find all blobs each frame it was fed with.

It was primarly developped for Processing (Beta) but can be used in any java programs.



flob is a fast flood-fill multi-blob detector that works in processing.

tracks blobs in image streams.

aims at fast code, still no id detection, and more goodies later



The LTI-Lib is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. It has been developed at the Chair of Technical Computer Science (Lehrstuhl fuer Technische Informatik) LTI at the Aachen University of Technology, as part of many research projects in computer vision dealing with robotics, object recognition and sing language and gesture recognition.

The main goal of the LTI-Lib is to provide an object oriented library in C++, which simplifies the code sharing and maintenance, but still providing fast algorithms that can be used in real applications.



GPUCV is a free GPU-accelerated library for image processing and computer vision. It offers an Intel OPENCV-like programming interface for easily porting existing applications.



  • read/write basic image formats (pgm, ppm, gif, tif, jpeg)
  • basic image processing and feature extraction algorithms such as rotation, flip, photometric normalisations (Histogram Equalization, Multiscale Retinex, Self-Quotient Image or Gross-Brajovic), edge detection, 2D DCT, 2D FFT, 2D Gabor, PCA to do Eigen-Faces, LDA to do Fisher-Faces
  • various metrics (Euclidean, Mahanalobis, ChiSquare, NormalizeCorrelation, TangentDistance, ...)
  • face detection using MLP, cascade of Haar-like classifiers
  • 2D objects manipulation and drawing
  • video file decoding/encoding, image capture from a frame grabber or from USB
  • Sony pan/tilt/zoom camera control using VISCA interface



What is it

The MPT stands for "Machine Perception Toolbox" and is pronounced ``Empty, ``Empty Box, or "Mu". It supplies cross-platform libraries for real-time perception primitives, including face detection, eye detection, blink detection, color tracking. Soon it will also include expression recognition, predictive color tracking, and tracking based on multisensor fusion. In addition, it supplies many example which show how to embed the MPT functions in applications. It also provides applications (eyedetection, real time face tracking in video ...) which are useful applications in their own right. Finally, Matlab .mex interfaces are provided for many of these core libraries for those who like using Matlab. See



Üsna hea lehekülg, sisaladb lühikirjeldust erinevatest teekidest ja programmidest:

Veel üks lehekülg softwarega:

Lehekülg, mis sisaldab kirjandust ja õpetusi

Personaalsed tööriistad