Library of programming functions mainly aimed at real-time vision

OpenCV

OpenCV

  -  177 MB  -  Open Source
  • Latest Version

    OpenCV 4.11.0 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows XP / Vista / Windows 7 / Windows 8 / Windows 10

  • User Rating

    Click to vote
  • Author / Product

    OpenCV Team / External Link

  • Filename

    opencv-4.11.0-windows.exe

OpenCV (Open Source Computer Vision Library) is an open-source software library designed for real-time computer vision and machine learning applications.

Originally developed by Intel, OpenCV has grown into one of the most widely used frameworks for image processing, object detection, facial recognition, and deep learning tasks.

It provides a robust and efficient platform for developers, researchers, and engineers working in fields such as robotics, augmented reality, surveillance, and medical imaging.

Key Features

Extensive Computer Vision Capabilities – Offers a vast range of image processing techniques, including edge detection, segmentation, and feature extraction.

Machine Learning Integration – Supports deep learning models via frameworks like TensorFlow, PyTorch, and Caffe.

Multi-Language Support – Works with Python, C++, Java, and MATLAB, making it versatile for developers.

Cross-Platform Compatibility – Runs on Windows, Linux, macOS, iOS, and Android.

Optimized for Performance – Utilizes hardware acceleration via OpenCL, CUDA, and Intel’s MKL.

Video Processing – Features real-time video capture, processing, and motion detection.

3D Reconstruction – Offers tools for depth estimation, stereo vision, and point cloud generation.

Augmented Reality and Facial Recognition – Provides functionalities for AR applications and biometric identification.

User Interface

Since OpenCV is a library, it does not have a traditional graphical user interface (GUI).

Instead, it is used via command-line interfaces and integrated into development environments such as Visual Studio, PyCharm, and Jupyter Notebook.

Various wrapper libraries, such as OpenCV GUI (Qt-based) and OpenCV-Python, enable visualization of image and video processing tasks.

Installation and Setup

Building from Source:
  • Install CMake, Visual Studio, and Ninja.
  • Configure using CMake, enabling CUDA or OpenCL if necessary.
  • Compile and integrate with Python or C++.
FAQ

Is OpenCV free?
Yes, OpenCV is open-source and licensed under Apache 2.0, meaning it's free for both personal and commercial use.

What programming languages does OpenCV support?
It supports C++, Python, Java, and MATLAB, making it accessible for a wide range of developers.

Can OpenCV be used with deep learning models?
Yes, it integrates with TensorFlow, PyTorch, and Caffe for deep learning applications.

Does OpenCV support GPU acceleration?
Yes, it supports CUDA, OpenCL, and Vulkan for GPU acceleration.

What industries use OpenCV?
OpenCV is used in healthcare, robotics, security, automotive, and entertainment industries for tasks like facial recognition, autonomous driving, and AR applications.

System Requirements
  • OS: Windows 10 or Windows 11
  • Processor: Intel or AMD 64-bit CPU
  • RAM: Minimum 4GB (8GB+ recommended)
  • Storage: ~1GB for the base library; more for additional models and dependencies
  • GPU: Optional, but NVIDIA CUDA-supported GPUs can improve performance
PROS
  • Free and open-source with an active community.
  • Extensive features for image processing, video analysis, and AI.
  • High performance with GPU acceleration.
  • Compatible with multiple programming languages.
  • Works on various platforms including Windows, Linux, and macOS.
CONS
  • No built-in GUI, making it challenging for beginners.
  • Requires coding knowledge to utilize fully.
  • Some features have a steep learning curve.
  • GPU acceleration setup can be complex.
  • Lacks official technical support (community-driven help only).
Conclusion

OpenCV remains one of the most powerful and versatile tools for computer vision and machine learning applications on Windows. While it may not be the most user-friendly option for beginners, it offers unparalleled flexibility and performance for developers working on AI-driven image processing projects.

With its strong community support, cross-platform functionality, and continuous improvements, OpenCV is an essential tool for anyone involved in computer vision.

Also Available: Download OpenCV for Mac

  • OpenCV 4.11.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    OpenCV 4.11.0 Screenshot 1
  • OpenCV 4.11.0 Screenshot 2
  • OpenCV 4.11.0 Screenshot 3
  • OpenCV 4.11.0 Screenshot 4

What's new in this version:

Generic:
- Internal C API cleanup and back-ports for 5.x
- RISC-V/AArch64: disable CPU features detection
- Support C++20 standard
- algoHint parameter for some functions to allow potentially faster, but not bit-exact implementation

Core Module:
- Added int64 data type support for FileStorage
- Fixed invalid attribute value handling in FileStorage
- Extended LUT for FP16 support
- Fixed stdDev tail filling with zeros with HAL in meanStdDev
- Set and check allocator pointer for all cv::Mat instances
- Improved accuracy of Rect::contains
- Fixed result offset in minMaxIdx with HAL in some cases
- Replaced C++ operators with wrapper functions on universal intrinsics backends
- Extended cv::TickMeter
- Rewrote OpenCL-OpenGL-interop device discovery routine without extensions and with Apple support
- Marked cv::Mat(Mat&&) as noexcept
- Multiple Eigen library interop improvements

Calib3d module:
- Multiple chessboard detector improvements
- Enabled checkerboard detection with a central / corner marker on a black tile
- Fixed Rodrigues CV_32F and CV_64F type mismatch in projectPoints
- Added fisheye::distort with non-identity projection matrix
- SQPnP solver updates
- Fixed vector access in USAC

Imgproc Module:
- Added a new function that approximates the polygon bounding a convex hull with a certain number of sides
- Added Weighted Hough Transform
- Fixed bug in contours approximation
- Fixed bug in divSpectrums
- Fixed result buffer overflow in intersectConvexConvex_ for non-convex input
- Added flag to GaussianBlur for faster but not bit-exact implementation
- Added flag to cvtColor for faster but not bit-exact implementation
- Fixed fillPoly drawing over boundaries

DNN Module:
- [GSoC] Blockwise quantization support
- Faster implementation of blobFromImages for cpu nchw output
- DNN optimization with RISC-V RVV
- Added DepthToSpace and SpaceToDepth
- Yolo v10 support and related samples
- Parallel implementation of nary elementwise operations
- Support for Unflatten operation required by Attention layer
- Erf and GELU layers optimization
- Activations optimization with v_exp
- Fixed compilation errors with different OpenVINO versions
- Fixed matmul crash with CuDNN
- Fixed CuDNN runtime version check for CuDNN 9+
- Added ONNX TopK
- Fixed buffer allocation in einsum (fixed random crash on 32-bit platforms)
- Added Leaky RELU support for TFLite
- Switched to run-time dispatcher for Winograd

Objdetect module:
- Properly check markers when none are provided
- Fixed invalid vector access in QR decoder and encoder

Highgui module:
- Added new Highgui backend on top of Framebuffer
- Fixed HWND_TOP window handling on Windows
- [GSoC] Added OpenGL support with GTK3
- Several OpenGL related fixed on Linux
- Fixed leak in cvGetWindowRect_COCOA

Imgcodecs module:
- [GSoC] New API for Animations with WEBP, AVIF and Animated PNG support
- [GSoC] Add GIF decode and encode for imgcodecs
- Added experimental JPEG XL (jxl) codec support
- Initial RGB layout support in imread and imdecode
- Fixed imread output type for some cases
- Fixed file descriptor leak in HDR decoder
- Fixed corrupted JPEG decoding
- Improved error handling in image codecs
- Fixed Bayer2Gray SIMD for U8
- Avoid uninitialized value read in AVIF
- Implemented imencodemulti()
- Fixed compatibility with different OpenEXR versions

VideoIO module:
- Added VideoCapture constructor for in-memory data stream
- Fixed bugs in native video encoding on Android
- Added BGRA streams support in GStreamer back-end
- Updated materials for Orbbec cameras support
- Fixed cv::VideoWriter with FFmpeg timestamps encapsulation
- Fixed memory leak in Dshow back-end
- Fixed V4L NV12 color conversion
- Android native camera feature enhancements
- AndroidMediaNdkCapture pixel format enhancement
- Fixed VideoCapture fails to read single image with digits in name
- Fixed writer setProperty with FFmpeg plugin

Video module:
- Fixed VitTrack in the case where crop size grows until out-of-memory when the input is black
- Features2d:
- Fixed out of bounds access in SIFT

G-API module:
- Fixed input buffer read overflow in vectorized G-API convertTo implementation
- Extended G-API onnx::Params to pass arbitrary session options
- Handling I32/I64 data types in G-API ONNX back-end
- G-API: Introduce level optimization flag for ONNXRT backend

Optimizations:
- New FastCV-based HAL for Qualcomm SoCs (-DWITH_FASTCV=ON CMake option)
- Added own vectorized version of v_exp
- KleidiCV HAL for ARM updated to KleidiCV 0.3
- Initial version of HAL for RISC-V RVV 1.0 and RISC-V RVV 0.7.1 extensions
- Used LMUL=2 in the RISC-V Vector (RVV) backend of Universal Intrinsic.
- More functions in NDSRVP HAL for RISC-V P extension
- Updated built-in IPP to version 2021.12. Fixed build issues with old and new Intel IPP layouts

Platforms:
- HWAsan support on Android
- Several CUDA fixes for old GPUs without FP16 support
- Added getStdAllocator() to cv::cuda::GpuMat
- Updated NPP calls to use the new NppStreamContext API if available
- More convenient GpuMatND constructor
- Added run-time GPU check to haveCUDA
- Add support for QNX

OpenCV.js:
- Extended API white-list and added more tests
- Split white-list per module. Added opportunity to cover opencv_contrib modules
- Fix incorrect string format in js build script
- Emscripten build fixes with SIMD intrinsics
- Added more public types for USAC support
- Rename Mat::clone binding because it is used in Emscripten
- Fixed C preprocessor stringification
- Fix enum generation issues
- Multiple test improvements