Integrating Vision Toolkit
|Original author(s)||by Pedram Azad et al., Karlsruhe Institute of Technology (KIT)|
|Stable release||1.3.15 / October 31, 2011|
|License||BSD (free software)|
The Integrating Vision Toolkit (IVT) is a powerful and fast C++ computer vision library with an easy-to-use object-oriented architecture. It offers its own multi-platform GUI toolkit.
The library is available as free software under a 3-clause BSD license. It is written in pure ANSI C++ and compiles using any available C++ compiler (e.g. any Visual Studio, any gcc, TI Code Composer). It is cross-platform and runs on basically any platform offering a C++ compiler, including Windows, Mac OS X and Linux. The included GUI toolkit offers implementations for Windows (Win32 API), Linux (GTK), Mac OS X (Cocoa) and Qt. The computer vision company Keyetech offers platform specific optimizations of various IVT functions with the Keyetech Performance Primitives (KPP), which are automatically loaded by the IVT.
The IVT has been developed at the formerly named University of Karlsruhe (TH), now Karlsruhe Institute of Technology (KIT). The first version of the IVT was released on Sourceforge on December 22, 2005. Since 2009, the IVT is maintained in cooperation with the company Keyetech (see link below), who also offers training courses for the IVT as well as commercial products and customized solutions using the IVT.
IVT's features include:
- Camera interface and implementation for various cameras (IEEE1394 (CMU1394, Unicap1394), USB webcams (V4L and VfW), Quicktime, PointGrey Dragonfly, Videre SVS, etc.)
- Camera model (monocular and stereo)
- Camera calibration (using OpenCV 1.0)
- Filters (Gaussian Smoothing, Sobel, Prewitt, Canny)
- Color segmentation (HSV color space)
- Hough transform (lines and circles)
- Point operations (affine, thresholding)
- SIFT features
- Harris corner detector
- Stereo vision (disparity map computation, stereo triangulation)
- Linear least squares
- Particle filtering framework
- Data structures (matrices, vectors, kd-tree, dynamic array)
- POSIT (6 DoF pose from 2D-3D point correspondences)
- Own GUI toolkit with implementations for several platforms (by Florian Hecht) (see below)
Relation to OpenCV
Compared to OpenCV the IVT offers an object-oriented software architecture, is easier to read and easier to use. The implementations are as fast or even faster than those from the OpenCV. However, OpenCV offers some functionality that IVT does not offer (e.g. a face detector). Such functionality is integrated by optional OpenCV wrappers.