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 source forge! 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.
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
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
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
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 OpenCV 1.0, 1.1pre1, and 2.0 (cxcore, cv, and highgui)
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 |
(*) 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 |
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 |
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...
essay writers - TerryMay-USA
Slamet Riyadi - Univ. Muhammadiyah Yogyakarta - Indonesia - ViROB - Medical informatics & imaging research group - Univ. Kebangsaan Malasyia
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 ] - Computer vision software development
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://techqe.blogspot.com/ [ pratapapvr@gmail.com ]
P. Girish, India, Neomagic Semiconductors http://www.neomagic.com
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
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
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
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 - 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
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