Open Source Computer Vision (OpenCV) is an open source computer programming library developed to support applications that use computer vision. It provides hundreds of functions for the capture, analysis, and manipulation of visual data and can eliminate some of the hassle programmers face when developing applications that rely on computer vision. Portions of the library also provide user interface and pattern recognition functions. OpenCV has been employed in both practical and creative applications including self-piloting vehicles and new forms of digital art.
Programming libraries provide common functions or complex capabilities that developers can use in their programs. The OpenCV library contains hundreds of functions that support the capture, analysis, and manipulation of visual information fed to a computer by webcams, video files, or other types of devices. Simple functions might be used to draw a line or other shape on a screen, while the more advanced portions of the library contain algorithms for detecting faces, tracking motion, and analyzing shapes. Many of this library’s algorithms are related to specific uses of computer vision including product inspection, medical imaging, robotics, facial and gesture recognition, and human-computer interaction (HCI). As an open source programming library, OpenCV can be used with very few restrictions in both commercial and hobbyist projects.
With OpenCV, a developer can eliminate some of the complex and tedious work that goes into making computer vision function reliably and focus on building the application. Rather than creating algorithms for facial recognition and the like, a programmer can add just a few lines of code to have a program access the appropriate library function. It also means a programmer does not need to master every aspect of computer vision to build a program that uses it.
In addition to the core video and image processing functionality, OpenCV contains secondary modules intended to support other areas of an application. One of these modules includes machine learning algorithms that can analyze and predict visual patterns. The HighGUI module provides user interface elements as well as functions for storing and accessing video and image files.
The OpenCV library can be found at the heart of some vary ambitious projects. Along with an assortment of sensors, computer hardware, and custom tailored software, it powered a heavily modified sport utility vehicle that navigated a 132 mile (212 km) desert race course without human intervention. Not all projects that rely on the library’s resources are so practical, however. Some members of the creative coding movement, a loose confederacy of people who view programming as a form of expression, have used the library to create new forms of digital art. Others have hacked existing devices containing cameras and opened up new possibilities for gaming, interactive computing, and even telepresence.