Open Source Computer Vision Libray

Release Notes

Index

Overview

Usage Model and Manual

What's Open What's Not

System Requirements

License

Installation

Directory Structure

Known Problems

Q&A

Contact Info

Overview


This is a community effort, code and algorithm contribution of new and existing algorithms are encouraged. The library targets 3 areas of use.

There are more than 300 functions in OpenCV that are tuned for faster execution on the latest Intel processors. Significant part of the library is optimized using MMX and SSE instructions.

The library performance and functionality are improving quickly.

Read the history file for change history. The OpenCV API has changed. See the list of changes here

Usage model, Manual:

 

Write your code using library functions with reference to our the user manual OpenCV Reference Manual.pdf and the main header file CV.h.

Link against the library files:

 

..\lib\cv.lib

..\OtherLibs\_Ipl\lib\msvc\ipl.lib

 

depending on the demo application, you may also need 

..\lib\HighGUI.lib

..\lib\vlgfmts.lib

..\OtherLibs\_Mkl\lib\Default\Intel\mkl_c.lib

..\DirectShow libraries

 

The dynamic link libraries (dll) must be in the system path, or in the directory that you run your application from.  The location of the dynamic link libraries is:

 

..\bin

..\OtherLibs\_Ipl\bin

 

Of course, if you are making use of DirectShow, you will need it's dll's in the path ..\DirectShow\bin

 

When you run your application, cv.dll and ipl.dll will automagically look up the processor type and swap in the correct optimized dll. If it can't find the correct dll, or if it can't identify the processor type, the optimized C version will be used.  The "code names" for libs and dlls are:

 

cv.dll or cv.lib                                 Dll and import library that can be built from supplied sources (pure C code)

OptCVPX.dll and IppCVPX.dll       code, optimized for any IA32 processor.

OptCVM5.dll and IppCVM5.dll      Pentium MMX assembly optimized code.

OptCVM6.dll and IppCVM6.dll      Pentium II assembly optimized code.

OptCVA6.dll and IppCVA6.dll       Pentium III assembly optimized code.

OptCVW7.dll and IppCVW7.dll      Pentium 4 assembly optimized code.

 

What's open, what's not:

 

Open:

 

All the C++ and C source for the library, DirectShow filters and application demos as well as the Matlab code.

The C++/C library code compiles to build the cvPX.lib and cvPX.dll.

 

Closed:

 

The assembly language optimized versions of the C code for each processor that Intel is contributing to the code base.  

The reason these are not open is that Intel is producing an array of primitive routines covering virtually all of its optimized libraries. These primitives will be freely re-distributable, but they will not be part of the open source computer vision library.  For now, we have ship preliminar (though, stable) versions of these future optimized primitive routines inside the OptCVXX.dlls and IppCVXX.dlls, but we will use the actual primitives when they are released in Q3'2000.  This change will not affect the C code. 

 

If you think you have a good reason for needing the assembly source code please contact us.

 

System Requirements

 

Hardware requirements: A Pentium MMX, Pentium Pro, Pentium II, Pentium III or Pentium 4 processor-based PC. Memory should be appropriate for the image sizes needed. 
Recommended hardware: Pentium III or Pentium 4 processor-based PC with USB ports, camera. 
Software requirements: Win98, WinNT4.0, or Win2000. Microsoft Visual C++ 6.0. The applications require DirectShow to be installed (6.0 for NT4.0 and 7.0+ for Win98, Win2000). The various filters require graphedt.exe to be installed. This may be downloaded with the full (LARGE) DirectShow download from http://microsoft.com/directx/homeuser/downloads/default.asp ~128MB.

or

Linux 2.2.x or 2.4.x, glibc 2.95. The application VMDemo requires Tcl/Tk 8.3 and img widget installed.


Recommended software: Win2000 (comes with DirectShow (runtime only, not SDK)) with graphedt.exe installed.

or

Linux Slackware 7.1 or Linux RedHat 7.0. 

 

 

License Definitions

 

 

Please see the license file license.txt for the license definitions and restrictions on the library. 

 

Installation

Under Win32:

The whole OpenCV delivery is broken up into several smaller packages:

To install each package download it, uncompress and run setup.exe 

Under Linux:

There is a single package for Linux: opencv-linux-b1.tar.gz. The package content is the same as opencv_core_b1.zip, but additionally includes demo application VMDemo.

To install it, do the following steps:

  1. To install the libraries, type:
    ./configure
    make
    make install # as root
    ldconfig # as root
  2. To run demo application VMDemo, you should have TCL/TK 8.3.x and "Img image format extension" widget installed.
    (visit  http://www.scriptics.com to obtain TCL/TK and
    http://members1.chello.nl/~j.nijtmans/img.html to obtain the widget).

Directory Structure

%Root folder%

 |
 + _DSW  // Workspace file for Microsoft Visual Studio and a few Perl utilities for statistics
 |
 + CV    // The library itself
 |  + Include   // External library interface
 |  + _Include  // Internal library interface
 |  + Make      // Project file
 |  + Src       // Source files
 |
 + CVAux // Additional (experimental) stuff.
 |
 + Docs  // documentation
 |  + HTML      // overview documentatation in HTML format
 |
 + Bin   // all the pre-built binaries
 |
 + Lib   // pre-built import and static libraries
 |
 + Apps  // Demo Applications
 |  |
 |  + CamShiftDemo // Application - Wrapper for CamShift Tracker Filter
 |  + VMDemo       // View Morphing demo
 |  + LkDemo       // Lucas-Kanade Pyramid-based Point Tracker
 |  + HMMDemo      // Hidden Markov Models Face Recognition Demo
 |  + StereoGR     // Stereo-based Gesture Recognition App for PointGrey Stereo Cameras
 |  + Hawk         // Scripting Environment
 |  + Common       // CImage and CCamera classes 
 |
 + Filters  // Direct Show filters 
 |  + CalibFilter // Camera Calibration filter 
 |  + CamShift    // CamShift tracker 
 |  + Condens     // ConDensation based tracker 
 |  + Kalman      // Kalman filter based tracker 
 |  + ProxyTrans  // Proxy DirectShow filter  
 |
 + OtherLibs
 |   + _Mkl       // Math Kernel Library - used for tests on matrix functions
 |   + _IPL       // Image Processing Library - base library for the OpenCV
 |   + HighGUI    // Simple GUI library with platform-independed interface
 |   + VlGrFmts   // Library for reading/writing raster images
 |   + GestRec    // Experimental gesture recognition module
 |   + PtGrey     // Interface Module for PointGrey Stereo Camera
 |   
 + Tests// sources for algorithmic tests
 

Known Problems

       Look at FAQs 

Try to select another video format via vidcap utility.

Q&A:

Q: How can I get an answer on my question about OpenCV?

A: Look at FAQs.  

Contact Info

For questions, bug reports, patches and suggestions, send email to OpenCV@yahoogroups.com (it is a mailing list) or to Gary Bradski at gary.bradski@intel.com.  Keep in mind that this is a free library from a research lab when setting your expectations of support.  If you would like to volunteer to become part of the support infrastructure please do contact us.


Back to Top