Other Languages : Chinese(中文)


Welcome to the Full OpenCV Wiki

This Wiki is intended to support the OpenCV community. The main objective is to share experiences and improve the documentation. Feel free to contribute to it. (Note: if you want more information about WikiWikiWeb systems, look at HelpContents)

Started on 14 Feb 2006. Moved to hosting at Willow Garage 27 Oct 2008.


Page Contents


Introduction

What is OpenCV?

OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real time computer vision.

Example applications of the OpenCV library are Human-Computer Interaction (HCI); Object Identification, Segmentation and Recognition; Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); Stereo and Multi-Camera Calibration and Depth Computation; Mobile Robotics.

OpenCV book

Contributors

Tutorials, Talks

Announcements

How do I Download OpenCV?

  • The current release is: 2.0.0 Linux/Mac, Windows.

  • To get the latest SVN code, use: svn co https://code.ros.org/svn/opencv/trunk/opencv To build, see the Install Guide below.

  • Next OpenCV Official Release: 2.1.0 is due March 31st, 2010.

Release Numbering Philosophy:

  • The convention OpenCV follows for release numbering is:

Major Number

.

Minor Number

.

Patch Number

Reserved for major changes in API or functionality

Incremental improvements, minor new features, bug fixes

Signifies just bug fixes

  • We will try to loosely follow Linux minor number even-odd release conventions where the API for new functionality is less stable/documented on odd minor numbers and more stable/documented on the even numbers.

Installing OpenCV

  1. Installing OpenCV on Linux, Windows or MacOS

Getting Started with OpenCV

  1. Using Visual C++ and OpenCV

  2. Using Eclipse IDE and OpenCV

  3. Using C++ Builder IDE and OpenCV

  4. Using DevCpp IDE and OpenCV

  5. C/C++ interpreter Ch and OpenCV.

  6. How do I compile OpenCV and OpenCV programs in Linux? - Also see notes in the Linux section of OS Specific Stuff below

  7. Using OpenCV with Visual C++ and Microsoft's DirectShow

  8. How do I compile OpenCV and OpenCV programs on Mac OS/X?

Frequently Asked Questions

Problem Specific Frequently Asked Questions

  1. Beginners/Newbie FAQ's (how to access a pixel etc.)

  2. Is there a user group or forum for OpenCV? Yes: OpenCV Yahoo Group

  3. How to use OpenCV to capture and display images from a camera

  4. Which video file formats can I use with OpenCV?

  5. How do I use OpenCV to Detect Faces?

  6. Using OpenCV for Face Recognition

  7. How to use OpenCV to Detect Objects?

  8. How to use the OpenCV Blob Extraction Library

  9. How do I correctly refresh my HighGUI application?

  10. Where to download DirectShow?

  11. How to Display more than one image in a single window?

  12. CodingStyleGuide

  13. VideoSurveillance

  14. Where do I report a bug or request new features or raise documentation issues?

    • In general, you can go to https://code.ros.org/trac/opencv/wiki/

      • You will first need to register at https://code.ros.org/gf/ (This is only for spam control, your name is not given out). Then:

      • Click on "new ticket" to file a new bug report or feature request, or submit a patch.
      • Click on "view tickets" or "search" to look for existing tickets - probably your problem is already known or even fixed in the latest SVN version.
    • Bug Notes:

      • Do the work: Submit as much information as you can (what OS, what compiler, what OpenCV version).
      • To help rapidly fix the bug, it is preferable to also attach a short program plus data that reproduces the problem.
      • You can and should submit bugs for documentation. Again, be specific (C, C++, Python). What exactly was missing, confusing or wrong.
        • If you know how the documentation should be fixed, submit that too.
  15. Help! I can't get my code to compile!

Tutorials

  1. OpenCV_Talks

  2. Using OpenCV with Microsoft's DirectShow

  3. POSIT tutorial

  4. A short introduction to programming with OpenCV

  5. Tutorial on how to use Philips webcam features with OpenCV on Linux

  6. Introduction to OpenCV (in Turkish) 1 2 3 4 5

  7. Introduction to programming with OpenCV and IPP - (2003)

  8. Sample program for Face Recognition

  9. SamplesPrograms

  10. Small Example Programs 1 2 generated by cvPreProcessor

  11. DCTmod2 Feature For Face recognition

  12. How to significantly speed up the cvMatchTemplate() function

  13. Примеры (>10) использования OpenCV + С++Builder6 + перевод части документации, форум

  14. Instalasi OpenCV di Borland C++ Builder 6 -- Tutorial Bahasa Indonesia

  15. OpenSourceComputerVisionCVPR2010

Full


Support, Documentation & Resources

Technical Support

There is no formal technical support for OpenCV, but there is a very active OpenCV Forum at Yahoo Groups where you are welcome to post your questions. A mirror of the group archive can be found at Gmane.

Bug Report Page

  • Submit bugs: Report a bug or request new features or raise documentation issues on our bug tracking page.

    • You will first need to register at https://code.ros.org/gf/ (This is only for spam control, your name is not given out). Then:

    • Click on "new ticket" to file a new bug report or feature request, or submit a patch.
    • Click on "view tickets" or "search" to look for existing tickets - probably your problem is already known or even fixed in the latest SVN version.
  • Bug Notes:

    • Do the work: Submit as much information as you can (what OS, what compiler, what OpenCV version).
    • To help rapidly fix the bug, it is preferable to also attach a short program plus data that reproduces the problem.
    • You can and should submit bugs for documentation. Again, be specific (C, C++, Python). What exactly was missing, confusing or wrong.
      • If you know how the documentation should be fixed, submit that too.

Documentation of Functions

Other:

OpenCV Online Resources

Ideas for the Future of OpenCV


OS Specific Stuff

Linux Version

  • In beta 5, test programs are not built by default. To build, run "make check" (see CxTest for more information on running and writing tests).

  • The current distribution of OpenCV (0.9.7 beta 5) does *NOT* work with GCC 4.0 or 4.1. Before compiling, you will have to run the configure script as follows: CXXFLAGS=-fno-strict-aliasing ./configure . GCC 4.0 will *NOT* (but 4.1 will) give *ANY* warning whatsoever that something is wrong (it is a bug of GCC 4.0), but it will *NOT* work, so you have been warned. If this option is not used with GCC 4.0 or 4.1, the resulting library has lots of errors as evidenced by failed tests in the test programs and the test programs segfaulting. Alternatively, you can also use the CVS version. The aliasing bugs are fixed in the CVS version.

  • Building will fail on x86_64 platforms and GCC 4.0.2 using the beta 5 release with errors about various SSE things like "'__m128d' was not declared" . Since GCC 4 and beta 5 are broken anyway, use the CVS version. GCC 3.2.3 may also work.

  • Sometimes the configure script may generate a bad makefile for your system if it was generated by a version of autoconf/automake/etc that is too old for your system. For example, you may get linking errors for the library files on x86_64. To fix this, run autoreconf in the root opencv directory (where configure is) to regenerate the scripts. Then run make distclean and run the newly generated configure to generate new makefiles.

  • Compiling OpenCV and OpenCV programs on Linux

Linux OpenCV Camera Compatibility

  • For some cameras (e.g. Quickcam Express) try running "v4lctl -c /dev/video0 setinput X" to get a valid list of inputs and then set it appropriately with the same command.

Camera

Type

Driver

Tested On

Tested By

OpenCV version

Comments

Basler A301/302/311/312 f/c

ieee1394

video1394

i686 Linux 2.6

MarioVigliar

from 0.9.6

Format7 tested in selfmade code

Basler A601/602 f/c

ieee1394

video1394

i686 Linux 2.6

MarioVigliar

from 0.9.6

Format7 tested in selfmade code

Focus Robotics nDepth Stereo Camera

PCI Video Grabber

fr3 (v4l2)

i686 Linux 2.6

FocusRobotics

CVS, 0.97

Calibrated rig with hardware accelerated stereo

Logitech QuickCam for Notebooks Pro

USB

pwc

i686 Linux 2.6

OlivierBornet

CVS, 0.9.7

Logitech QuickCam for Notebooks Pro

USB

pwc

x86_64 Linux 2.6

OlivierBornet

CVS

Logitech QuickCam Pro 4000

USB

pwc

i686 Linux 2.6.8

DominiqueBelhachemi

0.9.7

Logitech QuickCam for Notebooks Pro (new version)

USB

uvc

i686 Linux 2.6

OlivierBornet

CVS

Logitech QuickCam Fusion

Logitech QuickCam Pro 5000

Logitech QuickCam for Notebooks Pro (new version)

USB

uvc

x86_64 Linux 2.6

OlivierBornet

CVS

Logitech QuickCam Fusion

Logitech QuickCam Pro 5000

Logitech QuickCam Sphere MP

USB

uvc

x86_64 Linux 2.6

ScottTsai

1.0.0

Test date: 2007-03-20

Acer Crystal Eye

USB

uvc

x86_64 Linux 2.6

Learner

1.0.0

With a 25 frm/s frame rate, 640*480 resolution

Labtec Webcam Pro

USB

spca5xx

i686 Linux 2.6

Benjamin Dosch

CVS

Apple iSight

ieee1394

video1394

i686 Linux 2.6

OlivierBornet

CVS

Apple iSight

ieee1394

video1394

x86_64 Linux 2.6

OlivierBornet

CVS

Apple Macbook iSight (built-in)

USB

uvc

i686 Linux 2.6

RomanStanchak

CVS

Test date: 2006-01-22

1394Imaging DFK 21BF04

ieee1394

video1394

x86_64 Linux 2.6 and i686 Linux 2.6

Jose Rui Simoes

CVS, 0.9.7

Prosilica firewire cameras

ieee1394

video1394

i686 Linux 2.6

Antonio Yu

1.0

Prosilica GigE cameras

GigE

Prosilica GigE SDK

i686 Linux 2.6

Antonio Yu

1.0

Creative NX Ultra

USB

spca5xx (v4l)

i686 Linux 2.6

LucStepniewski

CVS,0.9.7

Test date: 2006-03-29

Creative Vista

USB

spca5xx (v4l)

i686 Linux 2.6

kecsap

CVS

Test date: 03/23/2006

Genius VideoCam NB

USB

spca5xx (v4l) sn9c10x (v4l2)

i686 Linux 2.6

kecsap

CVS

Test date: 03/23/2006

Trust SpaceCam 120

USB

spca5xx (v4l) sn9c10x (v4l2)

i686 Linux 2.6

kecsap

CVS

Test date: 03/23/2006

Logitech QuickCam Messenger

USB

qc-usb-messenger (v4l) or quickcam_messenger (since 2.6.18)

i686 Linux 2.6

kecsap

CVS

Test date: 03/23/2006

Logitech QuickCam Express

USB

spca5xx (v4l)

i686 Linux 2.6

kecsap

CVS

Test date: 03/23/2006

Philips Semiconductors SAA7130

PCI Video Grabber

saa7134

Linux 2.6.15 i686

Shiqi Yu

0.9.6, 0.9.7

The card works well with kernel 2.6.* and OpenCV

Logitech QuickCam Zoom

USB

pwc (v4l)

i686 Linux 2.6

kecsap

CVS

Test date: 03/24/2006

Philips PCVC740K Toucam Pro

USB

pwc (v4l)

i686 Linux 2.6

kecsap

CVS

Test date: 03/24/2006

bt848 based TV/Video Grabber

PCI TV/Video Grabber

bttv driver from stock kernel (v4l2)

i686 Linux 2.6

OlivierBornet

CVS

Test date: 2006-03-29

bt878 rev 2 based TV/Video Grabber

PCI TV/Video Grabber

bttv driver from stock kernel (v4l2)

i686 Linux 2.6

LucStepniewski

CVS+patch

Test date: 2006-03-29, patch from OlivierBornet but not yet commited to anonymous access

Philips SPC900NC

USB

pwc

i686 Linux 2.6

Benjamin Dosch

CVS

LG LIC-300

USB

spca5xx

i686 Linux 2.6

Jose Luis Múgica

1.0.0

Test date 2007-05-09

Bluesky BW200 (Similar to Q-Tec 100)

USB

spca5xx

i686 Linux 2.6

Jose Luis Múgica

1.0.0

Test date 2007-05-17

Dynex 1.3 MP Webcam

USB

uvc

i686 Linux 2.6

Bernie Elayda

1.1pre1

Test date 2009-08-09

Logitech, Inc. QuickCam Pro 9000

USB

uvcvideo

i686 Linux 2.6.28-15-generic

Lubos Rendek

1.0.0

Test date: 2009-10-25, Ubuntu 9.04, uvcvideo module comes with default installation, whole procedure is rather Plug&Play

Playstation 3 Eye camera

USB

gspca_ov534

i686 Linux 2.6.25.20-0.5-pae and 2.6.27.29-0.1-pae

Filipe Almeida

2.0.0

Test date: 2009-10-15, OpenSuse 11.0 and 11.1 - compiled latest version of v4l/dvb from http://linuxtv.org/hg/v4l-dvb/ (*)

Playstation 3 Eye camera

USB

gspca_ov534

i686 Linux 2.6.31.5-0.1

Filipe Almeida

2.0.0

Test date: 2009-11-13, OpenSuse 11.2 - works out of the box (*)

Logitech, Inc. QuickCam E1000

USB

gspca_zc3xx

i686 Linux 2.6.27.29-0.1-pae

Filipe Almeida

2.0.0

Test date: 2009-10-27, OpenSuse 11.1, compiled latest version of v4l/dvb from http://linuxtv.org/hg/v4l-dvb/

Logitech, Inc. QuickCam E1000

USB

gspca_zc3xx

i686 Linux 2.6.31.5-0.1

Filipe Almeida

2.0.0

Test date: 2009-11-13, OpenSuse 11.2 - works out of the box

Logitech, Inc. QuickCam Pro 9000

USB

uvcvideo

2.6.26-2-686 #1 SMP

Lubos Rendek

2.0.0

Test date: 2010-03-15, Debian Lenny, Plug&Play

(*) If you have problems with synchronization while using cvQueryFrame using PS3Eye please contact me: there's a workaround

MacOS X Version

OpenCV 2.0 for Mac/Linux/Unix is available on the files section of SourceForge.

Until the next release of OpenCV, there is now a pre-built version (universal binary Private Framework, together with a demo application). Have a look at the PrivateFramework page or download it from http://www.ient.rwth-aachen.de/cms/software/opencv/.

Additional information on building and on the current state of development can be found on the Mac_OS_X_OpenCV_Port page.

MacOS X Compatible Cameras

Camera

Type

Driver

Tested On

Tested By

OpenCV version

Comments

Apple iSight

ieee1394

video1394

MacOS X 10.4.8

Thijs Triemstra

CVS, 1.0

Test date: 2006-11-07

Apple Macbook iSight (built-in)

USB

uvc

MacOS X 10.4.8

Roman Stanchak

1.0

Logitech QuickCam Zoom

USB

Download Here

MacOS X 10.4.7

Thijs Triemstra

CVS

Test date: 2006-08-09

Windows Version

Windows Compatible Cameras

Camera

Type

Driver

Tested On

Tested By

OpenCV version

Comments

Focus Robotics nDepth Stereo Camera

PCI Video Grabber

fr3 (v4l2)

Windows XP

FocusRobotics

Beta5

Calibrated rig with hardware accelerated stereo

Logitech QuickCam Messenger

USB

Download Here

Windows XP

Parameswaran

Beta5

Creative WebCam Live! Ultra for Notebooks

USB

Download Here

Windows XP

MiguelFigueiredo AlexandraRibeiro

Beta5

Stereo capture with 2 cameras OK

Philips WebCam !

USB

DirectX

Windows XP

MoaathAlrajab

Beta5

Cameras OK

Prosilica firewire cameras

IEEE-1394a

Download Here

Windows 2000 Pro/XP

Antonio Yu

1.0

Prosilica GigE cameras

GigE Vision

Download Here

Windows 2000 Pro/XP

Antonio Yu

1.0

Genius Slim 320 USB 2.0 330K !

USB

DirectX

Windows XP

BotovAnton

1.0

Camera OK, Problems with camera selection in stereo configuration

Bluesky BW200 (Similar to Q-Tec 100)

USB

Download here

Windows XP

Jose Luis Múgica

1.0

Works perfect. Test date 2007-05-18

LifeCam VX-6000

USB

Download here

Windows XP/Vista

Roberto

1.0

Camera OK. Test date 2008-07-15

Logitech Orbit AF

USB

Download here

Windows XP

Marc Castejon

1.0

camera OK. Test date 2009-02-02

Creative Live! Cam Video IM

USB

Download here

Windows XP

Marc Castejon

1.0

camera OK. Test date 2009-02-02

DirectShow without the hassle

You can use the video input library at http://muonics.net/school/spring05/videoInput/ to avoid the messiness of dealing with DirectShow. It even works for direct capture to the imageData field of an IPL image, though I found that the result was upsidedown and had red and blue switched. (Note from author of videoInput: new version out! With option to have RGB or BGR pixels and loads of other features)

Firewire 1394 cameras without Direct X

You can install the CMU 1394 driver for your camera and then use the API of this driver to capture video from the camera. In this way, you can avoid the use of DirectX. See example for details.

VC Smart Cameras

OpenCV can run on VC Smart Cameras now. Vision Components + OpenCV


Development

This page is to describe serious development aimed at inclusion or expansion of OpenCV.

Willow Garage Development

OpenCV 2009 Summer Release

The feature list and plan for the next major release of OpenCV is here: OpenCV 2009/08

Ideas that one could work on OpenCV Ideas 2009

Other


People

Feel free to add yourself here...



OpenCVWiki: FullOpenCVWiki (last edited 2009-09-23 01:31:00 by GaryBradski)