[ Home :
libCVD - computer vision library
libCVD is a very portable and high performance C++ library for computer vision,
image, and video processing. The emphasis is on providing simple and efficient
image and video handling and high quality implementations of common low-level
image processing function. The library is designed in a loosely-coupled manner,
so that parts can be used easily in isolation if the whole library is not
required. The video grabbing module provides a simple, uniform interface for
videos from a variety of sources (live and recorded) and allows easy access to
the raw pixel data. Likewise, the image loading/saving module provides simple,
uniform interfaces for loading and saving images from bitmaps to 64 bit per
channel RGBA images. The image processing routines can be applied easily to
images and video, and accelerated versions exist for platforms supporting SSE.
LibCVD is continually chasing a moving target with operating system and library changes
on a wide variety of systems, so we are not performing traditional numbered releases.
Instead, we release every few months, and name the release number after the date that
it was released on. The releases below are stable: they are not simply nightly
Also, there is an Atom feed on freshmeat
- 07/04/2012: Release of CVD 20150407:
- Switch to 2 clause BSD license.
- Efficient distance transforms (inlcuding Euclidean)
- Canny edge detection
- Improved OpenCV interoperability
- Add colourmaps for visualising images
- Much better compression for bool TIFFS (40x improvement for many masks)
- Lots of platform compatibility and compiler fixes
- Fixes to configure script for some unusual configurations
- Fix bad timestamps on deinterlaced videos
- Bug fix in tensor voting kernel creation. Results will change, but should be better
- Big cleanup removing obsolete code
- Added a regression testing framework and some tests
- Try yet again to correctly include array/tr1::array on all the various platforms.
- 14/02/2013: Integrated with drone.io
- 22/11/2012: Moved to Github
- 10/25/2012: Release of libCVD 20121025:
- New interface to FFMPEG with proper support for seeking
Important bug fixes:
- Fix for 3.x kernels
- Fix for C++11 compilers
- Fix for CLANG++
- Fix for Visual Studio
- Fix for Cygwin
- Support newer autoconfs without heaps of warnings
- Removed a umber of long obsolete files, with associated code and configurations
- Shuffled source tree around to put files in single tree
- Squash a number of C++ warnings.
- 02/02/2012: Release of libCVD 20120202:
Important bug fixes:
- Added arctan camera
- Added GLES heplers
- Allow Zero sized images.
- Make Images more STL like
- NEON optimizations for halfSample and rgb_to_grey
- Sample iOS application
- System for generating VCPROJ build files
- Efficient Second-order Minimization.
- Chainable deinterlacebuffer in open_video_source
- Many misc bug fixes.
- Bug fix in Bayer conversion
- Keep up to date with libraries, platforms and compilers.
- Thread safety for threading constructs
- Removed timer constructs which reduced precision
- Cleanup of image I/O code.
- Cleanup of build system to remove many #ifdefs
- Moved from CVS to git
- 07/10/2011: Switched the source repository to git
- 11/05/2010: Released libCVD 20100511
The use of git, the most recent release or the current snapshot is strongly recommended.
CVD Documentation .
CVD Tutorial .
Mailing list. This list covers everything (commits, general questions, etc...)
Mailing list archives
- GNU make and a modern C++ compiler (gcc version >= 3.1)
- Works on Linux, ucLinux, FreeBSD, OpenBSD, OSX, Solaris, IRIX, Cygwin, MingW
- Cross and native compilation supported.
- Runs on x86, x86-64, ARM, Blackfin, MIPS, SPARC, PPC.
- MinGW and Cygwin
- Visual Studio 2008 with the feature pack
- VS2008 build file builds under VS2010
- The library is very modular and significant parts have been compiled on other systems such as Symbian.
- Doxygen (if you want to build the documentation)
Note, on unix systems there are no required dependencies, but support
for advanced features requires external libraries. Features which come as
standard on certain platforms (like dMedia on IRIX and QuickTime on MacOS X are
Several build configurations are provided for Visual Studio. The dependencies are either nothing; TooN; TooN and libjpeg; or TooN, libjpeg, libpng and libTIFF.
- X11 and OpenGL - required for cheap and cheerful GUI, and for useful GL bindings.
- Version 2.0.0-Beta2 or later required for recent versions of libCVD.
- TooN - numerics support ( TooN needs LAPACK and BLAS for some operations).
- BLAS and LAPACK are available under the vecLib framework on OSX.
- libjpeg-6b - loading and saving of JPEG images.
- libpng - loading and saving of PNG images.
- libTIFF - loading of TIFF images
- ffmpeg - reading of AVI and MPG files (version >= 0.4.9 required).
- libdc1394v2 and
libraw1394 - IIDC firewire camera and IIDC over USB support. Note, this provides better control over the cameras than the Quicktime API (which is also supported).
- ACML - BLAS and LAPACK optimized for AMD processors.
Other useful libraries
- TooN: a numerics library used by libCVD.
- TaG: Extra algorithms for TooN, some of which are useful for computer vision tasks.
- GVars3: A configuration library which integrates well with TooN.
Updated April 7th 2015, 04:31