Computer vision libraries in C/C++

Posted by SUYOG PATIL on 11:04 PM in , , ,

You must have got some idea about computer vision by my last post so now let us start the work...
I am listing some of libraries in C/C++ which can be useful in Image processing or Computer Vision depending on application requirement

1)OpenCV-OpenCV means Intel®Open Source Computer Vision Library. It is a collection of C functions and a few C++ classes that implement some popular Image Processing and Computer Vision algorithms.Cross-Platform API of C functions and FREE for commercial and non-commercial uses.You can take advantage of high speed implementations of functions commonly used in Computer Vision/Image Processing.
The open source license for OpenCV has been structured such that you can build a commercial product using all or part of OpenCV.You are under no obligation to opensource your product or to return improvements to the public domain, though we hope you will. In part because of these liberal licensing terms, there is a large user community that includes people from major companies (IBM, Microsoft , Intel, SONY, Siemens, and Google, to name only a few) and research centers (such as Stanford, MIT, CMU, Cambridge, and INRIA). There is a Yahoo groups forum where users can post questions and discussion at http://groups.yahoo.com/group/OpenCV; it has about 20,000 members.

Since its alpha release in January 1999, OpenCV has been used in many applications, products, and research efforts. These applications include stitching images together in satellite and web maps, image scan alignment, medical image noise reduction, object analysis, security and intrusion detection systems, automatic monitoring and safety systems, manufacturing inspection systems, camera calibration, military applications, and unmanned aerial, ground, and underwater vehicles. It has even been used in sound and music recognition, where vision recognition techniques are applied to sound spectrogram images.

 2)VXL The Vision-something-Libraries--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.
As well as the core libraries, there are libraries covering numerical algorithms, image processing, co-ordinate systems, camera geometry, stereo, video manipulation, structure recovery from motion, probability modelling, GUI design, classification, robust estimation, feature tracking, topology, structure manipulation, 3d imaging, and much more.
Each core library is lightweight, and can be used without reference to the other core libraries. Similarly, the non-core libraries don't depend on more than absolutely necessary, so you can compile and link just the libraries you really need.

3)AForge.NET Framework:
 is a C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, robotics, etc.
The framework is comprised by the set of libraries and sample applications, which demonstrate their features:
  • AForge.Imaging - library with image processing routines and filters;
  • AForge.Vision - computer vision library;
  • AForge.Neuro - neural networks computation library;
  • AForge.Genetic - evolution programming library;
  • AForge.Fuzzy - fuzzy computations library;
  • AForge.MachineLearning - machine learning library;
  • AForge.Robotics - library providing support of some robotics kits;
  • AForge.Video - set of libraries for video processing 

4)Camellia Library :
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.
As it uses the CamImage/IplImage structure to describe images, it is a good replacement to the popular but discontinued Intel IPL library and a good complement to the OpenCV library.
This open source software library is an outcome of the Camellia european project (IST-2001-34410). It was developped by the Ecole des Mines de Paris (ENSMP), in coordination with the other partners of the projects (Philips Electronics Nerderland, University of Hannover, University of Las Palmas, Philips Semiconductors Hamburg and Renault). This library was put to Open Source to favor the dissemination of the results obtained in the Camellia project. We hope that new contributions will help to maintain this library at the state of the art.

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.

And many more libraries.......

Among above libraries OpenCV and Camellia are the most used libraries in CV applications.
I prefer to work in OpenCV so I will tell you in next post how to get started in OpenCV and setting up OpenCV in Microsoft Visual Studio 2008/10 .So download trial or free version from Microsoft site.
You can also use Dev compiler which is lightweight but less user friendly.




Post a Comment

Copyright © 2009 ALL ABOUT ROBOTICS!! All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.