OpenCV 5 covers images, video, geometry, and DNN inference
OpenCV is the general-purpose toolbox many developers reach for when a program has to understand or transform visual data. Its 5.x source tree includes core arrays and math, image codecs and processing, camera calibration, feature matching, geometry, object detection, photo operations, tracking, video input and output, classical machine learning, and a DNN module. A C++ core supports bindings and platform layers for Python, Java, JavaScript, Objective-C, and mobile use.
That breadth is its advantage and its tax. Our measured checkout held 7,356 files, about 1,941,396 lines of source, and occupied 159.6 MB. The main repository also points to opencv_contrib for additional modules, so some familiar algorithms live outside this tree. Before choosing OpenCV, list the handful of modules and input formats the product needs. That list determines the build, redistribution footprint, optional dependencies, and regression suite far more than the generic library name does.
CMake exposes the backends that change runtime behavior
The root CMake configuration can limit the build to named modules and select bundled or system copies of image libraries. It also controls FFmpeg, camera frameworks, CPU instruction dispatch, threading systems, OpenCL, CUDA, cuDNN, and platform-specific acceleration. Two OpenCV builds with the same public version can therefore differ in supported codecs, devices, and execution paths. Save the CMake summary with every production artifact and test the binary you will ship.
Published Python packages make a first experiment much simpler than a custom native build. Still, Python code inherits OpenCV's C++ data model, color ordering, and compiled feature set. Our lab's 32-second dependency install did not install or exercise the complete native project; it prepared the separate documentation environment. Developers who need one wheel for a notebook may be productive quickly, while maintainers targeting Android, embedded Linux, or customized video I/O face a different job.
What happened when we ran it
Our harness selected the Python project in docs_sphinx/ at commit c803222. It installed 71 packages in 32 seconds, using 132 MB, and completed that subproject's build in 5 seconds. The checkout came from a fresh unprivileged Python 3.12 Bookworm container with 3 CPUs, 8 GB of RAM, and no secrets. Those figures say nothing about C++ compilation time or vision performance because the harness did not build the native library.
The documentation project exposed no test script or target, so the lab skipped tests. There is no OpenCV test pass count to report. Pip-audit found 9 known vulnerabilities in the installed Python environment. The supplied measurement does not name the affected packages or severities, so the next action is to inspect a fresh audit report before deploying this documentation toolchain, rather than guessing which dependency needs an update.
The repository scan found 2 CI workflow files, no Dockerfile, and no top-level tests directory. OpenCV does have module-specific testing infrastructure in its source layout, but our measured command did not execute it. The docs_sphinx CMake file currently ties Sphinx to Doxygen output and can add Graphviz diagrams. It also downloads an OpenCV.js asset when absent, which gives isolated documentation builds another network input to pin or mirror.
OpenCV 5.0.0 carries platform-specific package warnings
OpenCV 5.0.0 was released on June 6, 2026, and the project provides a separate 4.x-to-5.x migration guide. Its release note contains an unusually concrete Android warning: the original SDK used an older NDK and includes a C++ library that is not aligned for devices using 16 KB pages. Google Play releases are told to use the package whose name ends in 16kb-page-fix. That detail belongs in an Android release checklist, not in a developer's memory.
The same 5.0.0 note says Windows-on-Arm binaries were validated on Qualcomm Snapdragon devices, then warns that PPL auto-partitioning may fail on devices with private L2 caches. The recommended escape is an OpenMP build. This is a good example of OpenCV's real setup cost: a downloadable SDK can work, yet hardware topology and selected parallel runtime may still change correctness. Mobile and Arm teams should keep a small device matrix.
Current 5.x issues include a 16-bit arithmetic regression
Issue 29893 reports incorrect cv::multiply and cv::pow results for 16-bit unsigned inputs on the 5.x branch. The behavior appears for specific short arrays and for tails of in-place operations on both Arm and x86 configurations described by the reporter, while a compared 4.x build produces the expected result. The report is narrow and reproducible; it does not make every core operation suspect. It does justify application tests around numerical primitives during a major-version migration.
A separate September 9 issue, 29907, reports core arithmetic crashes and accuracy regressions on a RISC-V RVV configuration. OpenCV's current issue activity covers x86, Arm, RISC-V, image codecs, DNN importers, and documentation on the same day. That variety reflects the number of platforms under one API. If the product depends on a less common architecture or optional backend, upstream activity is helpful, but it cannot replace testing on the actual target.
90,786 stars accompany same-day maintenance
GitHub recorded 90,786 stars, 2,780 open issues and pull requests combined, and a last push on September 10, 2026. OpenCV 5.0.0 is the latest release returned by the API. The fresh push and same-day issue discussion show active maintenance, while the large combined queue should be read as the workload of a broad, old project rather than a bug total. Search by module, branch, platform, and backend before filing or upgrading.
OpenCV is still the practical choice when one application needs calibration, image processing, video I/O, and several deployment languages. The decision weakens when the task is only one slice: scikit-image feels more natural in a scientific Python stack, libvips focuses on server image pipelines, and TorchVision stays inside PyTorch. Our docs-only 5-second build cannot settle that choice. Build or install the intended OpenCV artifact, record its enabled features, and run task-specific comparisons on real inputs.

