OpenCV
OpenCV (Open Source Computer Vision Library) is a library
of programming functions mainly for real-time computer vision.[1]
Originally developed by Intel, it was later supported by Willow
Garage, then Itseez (which was later acquired by Intel[2]). The
library is cross-platform and licensed as free and open-source
software under Apache License 2. Starting in 2011, OpenCV
features GPU acceleration for real-time operations.[3]
History
Officially launched in 1999 the OpenCV project was initially an
Intel Research initiative to advance CPU-intensive applications,
Original author(s) Intel, Willow
part of a series of projects including real-time ray tracing and 3D
Garage, Itseez
display walls.[4] The main contributors to the project included a
number of optimization experts in Intel Russia, as well as Intel's Initial release June 2000
Performance Library Team. In the early days of OpenCV, the Stable release 4.7.0 /
goals of the project were described[5] as: 29 December
2022
Advance vision research by providing not Repository github.com
only open but also optimized code for basic
vision infrastructure. No more reinventing the /opencv
wheel. /opencv (http
Disseminate vision knowledge by providing s://github.com/
a common infrastructure that developers opencv/openc
could build on, so that code would be more v)
readily readable and transferable.
Written in C, C++,
Advance vision-based commercial
applications by making portable, Python, Java,
performance-optimized code available for assembly
free – with a license that did not require code language
to be open or free itself. Operating system Cross-
platform:
The first alpha version of OpenCV was released to the public at
the IEEE Conference on Computer Vision and Pattern Windows,
Recognition in 2000, and five betas were released between 2001 Linux, macOS,
and 2005. The first 1.0 version was released in 2006. A version 1.1 FreeBSD,
"pre-release" was released in October 2008. NetBSD,
OpenBSD;
The second major release of the OpenCV was in October 2009. Android, iOS,
OpenCV 2 includes major changes to the C++ interface, aiming at
Maemo,
easier, more type-safe patterns, new functions, and better
BlackBerry 10
implementations for existing ones in terms of performance
(especially on multi-core systems). Official releases now occur Platform IA-32, x86-64
every six months[6] and development is now done by an Size ~200 MB
independent Russian team supported by commercial corporations.
In August 2012, support for OpenCV was taken over by a non- Available in English
profit foundation OpenCV.org, which maintains a developer[7] and
Type Library
user site.[8]
License Apache
In May 2016, Intel signed an agreement to acquire Itseez,[9] a Website opencv.org (htt
leading developer of OpenCV.[10] p://opencv.org)
In July 2020, OpenCV announced and began a Kickstarter campaign for the OpenCV AI Kit (https://openc
v.org/introducing-oak-spatial-ai-powered-by-opencv/), a series of hardware modules and additions to
OpenCV supporting Spatial AI.
Applications
OpenCV's application areas include:
2D and 3D feature toolkits
Egomotion estimation
Facial recognition system
Gesture recognition
Human–computer interaction (HCI)
Mobile robotics
Motion understanding
Object detection
Segmentation and recognition
Stereopsis stereo vision: depth perception from 2
cameras openFrameworks running the
OpenCV add-on example
Structure from motion (SFM)
Motion video tracking
Augmented reality
To support some of the above areas, OpenCV includes a statistical machine learning library that contains:
Boosting
Decision tree learning
Gradient boosting trees
Expectation-maximization algorithm
k-nearest neighbor algorithm
Naive Bayes classifier
Artificial neural networks
Random forest
Support vector machine (SVM)
Deep neural networks (DNN)[11]
Programming language
OpenCV is written in the programming language C++, as is its primary interface, but it still retains a less
comprehensive though extensive older C interface. All newer developments and algorithms appear in the
C++ interface. There are language bindings in Python, Java, and MATLAB/Octave. The application
programming interface (API) for these interfaces can be found in the online documentation.[12] Wrapper
libraries in several languages have been developed to encourage adoption by a wider audience. In version
3.4, JavaScript bindings for a selected subset of OpenCV functions were released as OpenCV.js, to be used
for web platforms.[13]
Hardware acceleration
If the library finds Intel's Integrated Performance Primitives on the system, it will use these proprietary
optimized routines to accelerate itself.
A Compute Unified Device Architecture (CUDA) based graphics processing unit (GPU) interface has been
in progress since September 2010.[14]
An OpenCL-based GPU interface has been in progress since October 2012,[15] documentation for version
2.4.13.3 can be found at docs.opencv.org.[16]
Operating system support
OpenCV runs on the desktop operating systems: Windows, Linux, macOS, FreeBSD, NetBSD and
OpenBSD as well as mobile operating systems: Android, iOS, Maemo,[17] BlackBerry 10 and QNX.[18]
The user can get official releases from SourceForge or take the latest sources from GitHub.[19] OpenCV
uses CMake.
See also
Free and open-
source software
portal
AForge.NET – computer vision library for the Common Language Runtime of .NET
Framework and Mono
Robot Operating System (ROS) – uses OpenCV as main vision package
VXL – alternative library written in C++
CVIPtools – complete graphical user interface (GUI) based computer-vision and image-
processing software environment, with C function libraries, a Component Object Model
(COM) based dynamic-link library (DLL), and two utility programs for algorithm development
and batch processing
OpenNN – artificial neural network library written in C++, open-source
List of free and open-source software packages
References
1. Pulli, Kari; Baksheev, Anatoly; Kornyakov, Kirill; Eruhimov, Victor (1 April 2012). "Realtime
Computer Vision with OpenCV" (http://dl.acm.org/citation.cfm?id=2206309). Queue. 10 (4):
40:40–40:56. doi:10.1145/2181796.2206309 (https://doi.org/10.1145%2F2181796.220630
9).
2. Intel acquires Itseez: https://opencv.org/intel-acquires-itseez.html Archived (https://web.archi
ve.org/web/20190214174741/https://opencv.org/intel-acquires-itseez.html) 2019-02-14 at the
Wayback Machine
3. "CUDA" (https://opencv.org/platforms/cuda/). opencv.org. Retrieved 2020-10-15.
4. Adrian Kaehler; Gary Bradski (14 December 2016). Learning OpenCV 3: Computer Vision in
C++ with the OpenCV Library (https://books.google.com/books?id=SKy3DQAAQBAJ&pg=P
T26). O'Reilly Media. pp. 26ff. ISBN 978-1-4919-3800-3.
5. Bradski, Gary; Kaehler, Adrian (2008). Learning OpenCV: Computer vision with the OpenCV
library. O'Reilly Media, Inc. p. 6.
6. OpenCV change logs: http://code.opencv.org/projects/opencv/wiki/ChangeLog Archived (htt
ps://web.archive.org/web/20130115212624/http://code.opencv.org/projects/opencv/wiki/Cha
ngeLog) 2013-01-15 at the Wayback Machine
7. OpenCV Developer Site: http://code.opencv.org Archived (https://archive.today/2013011308
4234/http://code.opencv.org/) 2013-01-13 at archive.today
8. OpenCV User Site: http://opencv.org/
9. "Intel Acquires Computer Vision for IOT, Automotive | Intel Newsroom" (https://newsroom.inte
l.com/editorials/intel-acquires-computer-vision-for-iot-automotive/). Intel Newsroom.
Retrieved 2018-11-26.
10. "Intel acquires Russian computer vision company Itseez" (http://www.ewdn.com/2016/05/31/
intel-acquires-russian-computer-vision-company-itseez/). East-West Digital News. 2016-05-
31. Retrieved 2018-11-26.
11. OpenCV: http://opencv.org/opencv-3-3.html Archived (https://web.archive.org/web/20190214
174857/https://opencv.org/opencv-3-3.html) 2019-02-14 at the Wayback Machine
12. OpenCV C interface: http://docs.opencv.org
13. Introduction to OpenCV.js and Tutorials (https://docs.opencv.org/3.4.0/df/d0a/tutorial_js_intr
o.html)
14. "Cuda GPU port" (https://web.archive.org/web/20160521200940/http://opencv.org/platforms/
cuda.html). Archived from the original (http://opencv.org/platforms/cuda.html) on 2016-05-21.
15. OpenCL Announcement: http://opencv.org/opencv-v2-4-3rc-is-under-way.html Archived (http
s://web.archive.org/web/20190217030256/https://opencv.org/opencv-v2-4-3rc-is-under-way.
html) 2019-02-17 at the Wayback Machine
16. OpenCL-accelerated Computer Vision API Reference:
http://docs.opencv.org/modules/ocl/doc/ocl.html
17. "Port of Intel's Open Source Computer Vision Library (OpenCV) to Maemo" (https://garage.m
aemo.org/projects/opencv). Maemo Garage. 10 August 2011. Retrieved 2023-01-30.
18. hungc (4 September 2019). "Blackberry Port of OpenCV [partial]" (https://github.com/blackbe
rry/OpenCV). GitHub.
19. "opencv/Opencv: Open Source Computer Vision Library" (https://github.com/Itseez/opencv).
GitHub. 21 May 2020.
Retrieved from "https://en.wikipedia.org/w/index.php?title=OpenCV&oldid=1146576754"