What Is OpenCV?
OpenCV [OpenCV] is an open source (see http://opensource.org) computer vision library available from http://SourceForge.net/projects/opencvlibrary. Th e library is written in C and C++ and runs under Linux, Windows and Mac OS X. Th ere is active development on interfaces for Python, Ruby, Matlab, and other languages.
One of OpenCV’s goals is to provide a simple-to-use computer vision infrastructure that helps people build fairly sophisticated vision applications quickly. Th e OpenCV library contains over 500 functions that span many areas in vision, including factory product inspection, medical imaging, security, user interface, camera calibration, stereo vision, and robotics. Because computer vision and machine learning oft en go hand-inhand, OpenCV also contains a full, general-purpose Machine Learning Library (MLL). Th is sublibrary is focused on statistical pattern recognition and clustering. Th e MLL is highly useful for the vision tasks that are at the core of OpenCV’s mission, but it is general enough to be used for any machine learning problem.
OpenCV Structure and Content
OpenCV is broadly structured into fi ve main components, four of which are shown figure below. Th e CV component contains the basic image processing and higher-level computer vision algorithms; ML is the machine learning library, which includes many statistical classifi ers and clustering tools. HighGUI contains I/O routines and functions for storing and loading video and images, and CXCore contains the basic data structures and content. CvAux, which contains both defunct areas (embedded HMM
face recognition) and experimental algorithms (background/foreground segmentation).