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.
CONGRATULATIONS! On Feb. 7, 2009, OpenCV passed 2000000 downloads on SourceForge! Now (Jul,20, 2009) 2.2 million.
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.
Learning OpenCV: Computer Vision with the OpenCV Library
by Gary Bradski and Adrian Kaehler, O'Reilly Press, October, 2008.
Japanese Translation: 詳解 OpenCV (単行本(ソフトカバー))
Chinese Translation: 学习OpenCV(中文版)(预订中,估价) [新品]
It is a textbook that covers
- Computer vision in general, intuition to the algorithms and theory
- User's guide to OpenCV with pragmatic working examples
- Function specs and tuning intuitions
Announcements
Updates on what's new in OpenCV, particularly what has been added to the SVN:
- Change logs (what changed in the official releases)
- User Group
- Active Developer Twitter
How do I Download OpenCV?
To get the latest SVN code, use: svn co https://code.ros.org/svn/opencv/trunk/opencv To build, see the Install Guide below.
To see the latest SVN revision, run: svn info https://code.ros.org/svn/opencv/trunk/opencv
Next OpenCV Official Release: will probably be called 2.2.0 and is due in October, 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
Getting Started with OpenCV
How do I compile OpenCV and OpenCV programs in Linux? - Also see notes in the Linux section of OS Specific Stuff below
Frequently Asked Questions
Problem Specific Frequently Asked Questions
Is there a user group or forum for OpenCV? Yes: OpenCV Yahoo Group
How to use OpenCV to capture and display images from a camera
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.
Tutorials
POSIT tutorial (3D Pose Estimation using OpenCV and OpenGL)
Tutorial on how to use Philips webcam features with OpenCV on Linux
Small Example Programs 1 2 generated by cvPreProcessor
How to significantly speed up the cvMatchTemplate() function
Примеры (>10) использования OpenCV + С++Builder6 + перевод части документации, форум
Instalasi OpenCV di Borland C++ Builder 6 -- Tutorial Bahasa Indonesia
OpenCV Tutorials and Source code (includes Face Recognition & Shirt Color Detection).
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:
External OpenCV 1.0 API with function search on cs.indiana.edu
External OpenCV 2.0 API with function search on fscience.net
OpenCV Online Resources
The OpenCV China (OpenCV中文站)
To get the latest SVN code, use: svn co https://code.ros.org/svn/opencv/trunk/opencv
To build, see the Install Guide.
We used to use sourceforge where you can still get the released versions from. SourceForge
Note: the bug and patch trackers on sourceforge are not used anymore. Use https://code.ros.org/trac/opencv instead.
The #opencv IRC channel on Freenode -- currently 'Un-official'
OpenCVDotNet - OpenCV wrappers for .NET Framework.
SoftIntegration - OpenCV wrappers for Ch.
OpenCV Naver Community Forum (Korean)
EffortFor3dReconstruction - Community document to bring forward 3D reconstruction in OpenCV
Emgu CV A cross platform .Net wrapper for OpenCV
OpenCvSharp A cross platform .Net wrapper for OpenCV 1.1, written in C#. All CxCore, CvReference, MachineLearning functions wrapped. Documentation of functions included in XML Format
opencv.jp (Reference manuals and sample codes in Japanese)
JavaCV - Contains a Java wrapper for the C API of OpenCV 1.0, 1.1pre1, 2.0, and 2.1 (cxcore, cv, highgui, and cvaux)
AI Shack - Tutorials/articles on OpenCV, computer vision in general and robotics.
Ideas for the Future of OpenCV
* Our SummerOfCode page describes project ideas for the Google Summer of Code. The SummerOfCodeApplication page shows current status of our application to the program.
Mac_OS_X_OpenCV_Port holds specific ideas for OpenCV on Mac OS X
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.
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
ieee1394
video1394
i686 Linux 2.6
from 0.9.6
Format7 tested in selfmade code
ieee1394
video1394
i686 Linux 2.6
from 0.9.6
Format7 tested in selfmade code
PCI Video Grabber
i686 Linux 2.6
CVS, 0.97
Calibrated rig with hardware accelerated stereo
USB
i686 Linux 2.6
CVS, 0.9.7
USB
x86_64 Linux 2.6
CVS
USB
i686 Linux 2.6.8
0.9.7
USB
i686 Linux 2.6
CVS
USB
x86_64 Linux 2.6
CVS
USB
x86_64 Linux 2.6
1.0.0
Test date: 2007-03-20
Acer Crystal Eye
USB
x86_64 Linux 2.6
Learner
1.0.0
With a 25 frm/s frame rate, 640*480 resolution
USB
i686 Linux 2.6
Benjamin Dosch
CVS
ieee1394
video1394
i686 Linux 2.6
CVS
ieee1394
video1394
x86_64 Linux 2.6
CVS
USB
i686 Linux 2.6
CVS
Test date: 2006-01-22
ieee1394
video1394
x86_64 Linux 2.6 and i686 Linux 2.6
Jose Rui Simoes
CVS, 0.9.7
ieee1394
video1394
i686 Linux 2.6
1.0
GigE
Prosilica GigE SDK
i686 Linux 2.6
1.0
USB
spca5xx (v4l)
i686 Linux 2.6
CVS,0.9.7
Test date: 2006-03-29
USB
spca5xx (v4l)
i686 Linux 2.6
CVS
Test date: 03/23/2006
USB
i686 Linux 2.6
CVS
Test date: 03/23/2006
USB
i686 Linux 2.6
CVS
Test date: 03/23/2006
USB
qc-usb-messenger (v4l) or quickcam_messenger (since 2.6.18)
i686 Linux 2.6
CVS
Test date: 03/23/2006
USB
spca5xx (v4l)
i686 Linux 2.6
CVS
Test date: 03/23/2006
Philips Semiconductors SAA7130
PCI Video Grabber
Linux 2.6.15 i686
0.9.6, 0.9.7
The card works well with kernel 2.6.* and OpenCV
USB
pwc (v4l)
i686 Linux 2.6
CVS
Test date: 03/24/2006
Philips PCVC740K Toucam Pro
USB
pwc (v4l)
i686 Linux 2.6
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
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
CVS+patch
Test date: 2006-03-29, patch from OlivierBornet but not yet commited to anonymous access
USB
i686 Linux 2.6
Benjamin Dosch
CVS
LG LIC-300
USB
i686 Linux 2.6
Jose Luis Múgica
1.0.0
Test date 2007-05-09
Bluesky BW200 (Similar to Q-Tec 100)
USB
i686 Linux 2.6
Jose Luis Múgica
1.0.0
Test date 2007-05-17
Dynex 1.3 MP Webcam
USB
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
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
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
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
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
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
2.0.0
Test date: 2010-03-15, Debian Lenny, Plug&Play
Logitech Webcam C120
USB
uvcvideo
i686 Linux 2.6.32-24-generic
Ralph Glass
2.1.0
Test date: 2010-08-07, Ubuntu 10.04, manual ffmpeg&openCV compile necessary
(*) 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
ieee1394
video1394
MacOS X 10.4.8
CVS, 1.0
Test date: 2006-11-07
USB
uvc
MacOS X 10.4.8
Roman Stanchak
1.0
USB
MacOS X 10.4.7
CVS
Test date: 2006-08-09
USB
UVC
MacOS X 10.6.3
2.1.1, SVN
Date: 2010-07-09. r3304. Horizontally flipped.
Windows Version
Windows Compatible Cameras
Camera
Type
Driver
Tested On
Tested By
OpenCV version
Comments
PCI Video Grabber
Windows XP
Beta5
Calibrated rig with hardware accelerated stereo
USB
Windows XP
Beta5
USB
Windows XP
Beta5
Stereo capture with 2 cameras OK
USB
DirectX
Windows XP
Beta5
Cameras OK
IEEE-1394a
Windows 2000 Pro/XP
1.0
GigE Vision
Windows 2000 Pro/XP
1.0
USB
DirectX
Windows XP
1.0
Camera OK, Problems with camera selection in stereo configuration
Bluesky BW200 (Similar to Q-Tec 100)
USB
Windows XP
Jose Luis Múgica
1.0
Works perfect. Test date 2007-05-18
USB
Windows XP/Vista
1.0
Camera OK. Test date 2008-07-15
USB
Windows XP
1.0
camera OK. Test date 2009-02-02
USB
Windows XP
1.0
camera OK. Test date 2009-02-02
USB
Downloadable only with registered product
Windows 7 (32-bit)
2.1
Vertically flipped. Avoid 2.x driver. Date: 2010-06-04
USB
Windows 7 (32-bit)
2.0, SVN
Plug&Play. Horizontally flipped. Date: 2010-04-03
USB
Windows XP
2.0 (bundled with Emgu 2.0.1.0)
Plug&Play. Date: 2010-03-01
USB
Windows XP/Vista/7
2.1
Plug&Play. Be careful of Codecs, YUV works well. Date: 2010-08-26
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
The ongoing project management page for the core development team can be found at OpenCV Development at Willow Garage
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...
Steven Hickson Clemson University, C++/C# OpenCV and FPGA projects with javascript and HTML 5.0
Emrah Basaran-Erciyes University/Turkey [ emrahbsrn@gmail.com ]
Gecko Geek (FRENCH Tutorials, like Color Tracking)
- TerryMay-USA
Alex Karpus - Ottawa, Canada - ported OpenCV 2.0 (cv, cxcore, highgui) to WinCE SDK v6.0 (Project Details, Downloads)
Gennady Gilin [ genady.job@gmail.com ] -
Riza Alaudin Syah SharedSystem Inc. Japan
Randy Cahya Wihandika [ rendicahya@yahoo.com ] - Electronic Engineering Polytechnic Institute of Surabaya - Indonesia
Danang Suharno - Ngadinegaran, Yogyakarta, Indonesia
Fayas A [ fayas.a@gmail.com ]- Phd student
Pratap Vardhan-Computer Vision & Image processing enthusiast, India http://pratapvardhan.blogspot.com/ [ pratapapvr@gmail.com ]
P. Girish, India, Neomagic Semiconductors http://www.neomagic.com
Chris Harris- PHP expert.
Tomasz Kolinko, using OpenCV for AR and marketing games purposes, Mechanekin, Warsaw, Poland
MarkAsbach - working on Mac OS X port, Framework, Python
Michael T. Matibag, michaelmatibag@gmail.com , micmat_aztecx@yahoo.com
- Francisco Bernardo
Sebastian Montabone - Fine Grained Saliency
Le Khanh Thanh,Ha Noi, Viet Nam. comp_vis@yahoo.com
Lismont Kevin, stvv@pandora.be , Belgium
mailto:congthienvn@yahoo.com Pham Cong Thien, Suwon, Korea http://www.hcmuaf.edu.vn/cackhoa/kcntt/nhanvien/pcthien/index.html
OpenCV integration for Prosilica cameras and VC Smart Cameras Antonio Yu, Metron Hong Kong Ltd. http://www.metronhk.com
Jérôme Landré, France - http://pagesperso-orange.fr/jerome.landre/index_en.xhtml
Lee Seongjoo, Republic of Korea Artificial Intellegence Laboratory, Yonsei University
- Son Do-Lenh
TamasUngi - and his tutorial notes
Phan Anh Vu - Hanoi University of Technology - virces931511@yahoo.com - http://cntt.tv
Oscar Deniz Suarez, Spain http://mozart.dis.ulpgc.es/Gias/oscar.html
João Quintas, Portugal - vazamentos
Matthew Bennett - Course Leader of BTEC Games Design at Gloucester College and author of http://colourisation.net
BENABBAS Yassine - OpenCV Tutorials(google knols)- PhD Student at Lille1
Naotoshi Seo - Tutorial - OpenCV haartraining OpenCVX - Yet another OpenCV eXtension functions
Alasdair Swenson - VJ pop-eye alasdairswenson@gmail.com
A. Rahman Rezazadeh - Denmark abr@agrotech.dk Agrotech
brzone on brazilian
Web hosting- Quality resource for web hosting.
Roberto Robot umanoide MecWilly - Italy
Matia Pizzoli Sapienza Università di Roma - Italy
Andrea Carbone Sapienza Università di Roma ALCOR Lab - Italy
Jacopo Parvizi -Student at DIIGA - Università Politecnica delle Marche, Italy
Burak Çayır - Galatasaray University, Istanbul-TURKEY - burakcayir@gmail.com - http://www.gsu.edu.tr
Stephen S. Nestinger - University of California, Davis - USA - ssnestinger@ucdavis.edu
Daniel Cervantes acompanhantes - Spain
WeiYan Ph.D. student- University of Illinois - USA - weiyan2@illinois.edu
Calderon Francisco - calderonf@gmail.com - Universidad Javeriana Bogotá - documentación en español.
Quang Nguyen - quangndba@gmail.com - Fix8.com - [Mobinex Inc.]
Martin Dale - Automotive Development.
Flavio Bernardotti - Computer Vision Encyclopaedic Forum with 30.000 documents, projects with source, opencv papers ...
A.Rahman Rezazadeh abr@agrotech.dk
Claudio Concilio Robotics claudio.concilio@TSKILLS.com - Italy
Juno Seo http://www.nml.t.u-tokyo.ac.jp/~jhseo Visual Servoing nic.seo@gmail.com - Korea
Dr.Srinivas Ganapathyraju - Professor - Canada - Interested in OPENCV applications to robotics- Email: world_hiker@yahoo.com
JIA Pei http://www.visionopen.com Active Appearance Model - UK
Fatih Ömrüuzun - Middle East Technical University, Ankara - TURKEY f.omruuzun@gmail.com http://fscience.net
Calven Eggert - Otimização de sites - Toronto, Canada - iPhone Development
Yannick Verdie - Virginia Tech, USA - working on Mac OS X port, Framework. Vislab website ...
DI Andreas Heindl - Phd Student - working on automated cell detection in various tissues Andreas Heindl
Vijay C Narayan - Robot Enthusiast - Working on Robot vision and navigation Vijay C Narayan
José Alonso Ybanez Zepeda - Computer Vision Research -Email: jaybanez[AT]gmail.com - otimização de sites| Nicole Hogan
Vijay Daniel, rLambda, Chennai, India - Working on Android port
Cem Arslan, Istanbul-Turkey, CodeGear 2009 Project, cemarslan@mac.com
Wang Kang - Nanjing University of Infomation Science and Techlonogy My Tech Blog novertina@aol.com
Walter "Myzhar" Lucetti - Computer/Robotic Engineer Home Rover Project email
Samuel Audet - Author of JavaCV
Burak Ofluoglu - HP-ITU Software Innovation Center Burak Ofluoglu
Fatih Taspinar-The University of Kocaeli, Turkey - realtime object recognition, fatihtsp@gmail.com
Sebastian Müller - study project: realtime ocr for math formulas with webcam (named blackbird) - install and working with opencv/webcam on linux, wiki in german language
Diego Schmaedech - Brazil - Working on Eyetracking System
Ryan Lei - CMLab, NTU, Taiwan - Working on Object Recognition, and Mac OS X Wiki pages here.
Calven Eggert - Criar site - Toronto, Canada - iPhone Development
Wang Wei Da - yester-place - Taiwan - wa114040@gmail.com
- Gonzalez, Jesus - Using OpenCV and uEye Cameras for Aerial Servoing Control. University of Seville- Spain - susogv[at]gmail.com
Anirudh Sharma -touchaddict - using OpenCV for tabletop interactions - anirudhsharma dot crypto at gmail dot com
Jai Pillai - Vision Researcher, University of Maryland - Object tracking, Adaptive smoothing code available at http://www.umiacs.umd.edu/~jsp/Downloads.html
Shervin Emami - Australia - Robotics & Face Detection. OpenCV tutorials & code
Alex Barry - Kitchener, Ontario, Canada - Open source implementation for eye tracking using cheap hardware. Code Repository - Home Page
David J Barnes - Cognitive Vision systems for Robotics, Chicago, IL