Introduction to OpenCV
Vadim Pisarevsky
Senior Software Engineer
Intel Corporation, Software and Solutions Group
Agenda
General Information
Getting Started with OpenCV
Modules Description
Interaction with Intel IPP
Python Interface
Some Usage Examples
Summary
2/67
General Information
3/67
What is OpenCV?
OpenCV stands for Open Source Computer Vision Library
Includes over 500 functions implementing computer vision, image
processing and general-purpose numeric algorithms.
Portable and very efficient (implemented in C/C++)
Has BSD-like license (that is, absolutely free for academic and
commercial use)
Available at http://sourceforge.net/projects/opencvlibrary
4/67
Why OpenCV?
Computer Vision Market is large and continues to grow
There is no standard API (like OpenGL and DirectX in graphics, or
OpenSSL in cryptography), most of CV software is of 3 kinds:
– Research code (slow, unstable, independent/incompatible data types for
every library/toolbox)
– Very expensive commercial toolkits (like Halcon, MATLAB+Simulink, …)
– Specialized solutions bundled with hardware (Video surveillance,
Manufacturing control systems, Medical equipment …)
Standard library would simplify development of new applications and
solutions much easier.
Special optimization for Intel Architectures:
– Creates new usage models by achieving real-time performance for quite
“heavy” algorithms (like face detection)
– Makes Intel platforms attractive for CV developers
5/67
The Project History
“CVL” project was started; the main
goals/features:
• Human-Computer interface is a
main target
• Real-Time Computer Vision Library
for using by UI Developers,
Videoconferences, Games
• Highly optimized for Intel Arch.
First Open
Source Release:
OpenCV alpha 3
at CVPR’00
OpenCV beta 1
with Linux
support:
CVPR’01
OpenCV 1.0
with MacOSX
support
1999/01
2000/06 2000/12
2006/10
Continuous development and
various research projects
6/67
OpenCV Community
The library is actively used by a large number of companies (such as
Intel, IBM, Microsoft, SONY, Siemens, Google,…) and research centers
(Stanford, MIT, CMU, Cambridge, INRIA etc.)
>14000 members of the forum OpenCV@yahoogroups.com, with
average daily traffic ~10-20 messages.
Community contributes to the project: bug reports, patches, new
features (video acquisition, 3d tracking, textures, Python interface)
7/67
Supported Platforms
IA32 (x86)
EM64T (x64)
IA64
(Itanium)
Other (PPC,
Sparc)
Windows (w. IPP;
VS98,VS2005(Op
enMP),ICC,GCC,
BCC)
(w. IPP; GCC,
ICC)
Linux
(w. IPP,
VS98+PSDK,
VS2005(OpenMP))
Partial
Support
N/A
(w. IPP; GCC,
ICC)
(GCC, ICC)
MacOSX (w. IPP, GCC,
native APIs)
? (not tested)
N/A
(iMac G5, GCC,
native APIs)
Others
(BSD,
Solaris…)
8/67
Reported to build
on UltraSparc,
Solaris