OpenCV (Open Source Computer Vision Library) is a BSD-licensed open-source library providing over 2,500 optimised algorithms for real-time computer vision, image processing, and machine learning, originally developed by Intel and now maintained by the OpenCV Foundation. It supports C++, Python, Java, and JavaScript bindings and runs on Linux, Windows, macOS, iOS, and Android. The library encompasses classical algorithms for feature detection, camera calibration, stereo vision, optical flow, and object tracking, as well as deep learning inference through the DNN module, which supports models from TensorFlow, PyTorch, and ONNX. OpenCV is the de facto standard toolkit for robotics perception pipelines, augmented reality applications, and embedded vision systems.

Content

  • OpenCV was initiated by Gary Bradski at Intel Research in 1999, first released publicly in 2000, and transferred to the OpenCV Foundation in 2012. Its core is written in optimised C++ with intrinsic SIMD operations for x86 and ARM, enabling real-time performance on commodity hardware. The Python bindings (cv2) have made OpenCV the entry point for computer vision in the data science community, with NumPy array interoperability allowing seamless integration with scientific Python workflows.
  • The library is organised into functional modules: core (matrix operations and basic data structures), imgproc (filtering, morphology, geometric transforms), highgui (display and I/O), calib3d (camera calibration, stereo, 3D reconstruction), features2d (keypoint detectors and descriptors), objdetect (Haar cascades, HOG detectors), video (optical flow, background subtraction), and dnn (deep neural network inference). The modular design enables selective deployment on resource-constrained embedded platforms.
  • OpenCV’s DNN module supports a growing range of model formats including ONNX, TensorFlow frozen graphs, Caffe models, and Darknet weights. It provides hardware-accelerated backends through OpenCL, CUDA (via the opencv_contrib CUDA modules), and Vulkan, enabling GPU-accelerated inference without requiring a full deep learning framework at runtime. This makes OpenCV the preferred deployment path for embedded Perception System applications where TensorRT or ONNX Runtime may be unavailable.
  • The opencv_contrib repository extends the core library with experimental and specialised modules including ArUco marker detection (critical for Augmented Reality calibration), SLAM utilities, structured light, and quality assessment metrics. The library’s ecosystem includes OpenCV.js for browser-based vision, OpenCV for Android and iOS enabling mobile Augmented Reality, and integration with ROS (Robot Operating System) through cv_bridge, making it indispensable in robotics research and industrial automation.