快速结论(先看这里)
- 推荐用于新项目(在保持 API 稳定性且不追 5.x 的前提下):优先使用 OpenCV 4.12(最新 4.x 稳定),因为它包含最新编解码器支持(GIF/APNG/Animated WebP)、更多 HAL/平台支持与 DNN 改进。(OpenCV)
- 如果你针对 Android 开发并希望用官方 AAR 包:从 4.9 起 引入 AAR 发布(Maven)。(Maven Repository)
- 如果你需要更保守、与很多第三方/老环境兼容(比如特定 CUDA/cuDNN/老 Python 版本),可以考虑 4.10 / 4.11 并在 CI 中固定小版本后再升级。(OpenCV)
- OpenCV 5.0 有 alpha(技术预览),不建议在生产中使用。(GitHub)
OpenCV 4.5 – 4.12 主要改动对比表
| 版本 | 发布时间 | 核心变化 | 主要受益场景 |
|---|---|---|---|
| 4.5.0 | 2020-10 | - 许可证迁移至 Apache 2- DNN 增强(OpenVINO/ARM 后端)- OpenCL 多上下文支持 - SIFT 改进 - OpenJPEG 默认 JPEG2000 | 商业合规敏感项目;依赖 OpenVINO/ARM DNN |
| 4.6.0 | 2022-06 | - 引入 OAK(OpenCV AI Kit)后端- 模型基准工具 - Windows on ARM NEON 支持 | AI 模型部署,ARM Windows 平台 |
| 4.7.0 | 2022-12 | - 改进编解码(libjpeg-turbo SIMD、libspng、FFmpeg 5.x 支持)- Orbbec RGB-D 后端 - StackBlur、NanoTrack 算法 | 需要新格式支持、深度相机/视频处理 |
| 4.8.0 | 2023-07 | - AVIF 格式支持 - Python typing stub- 新 API (cv::hasNonZero, REDUCE_SUM2)- RISC-V RVV 改进 | 现代图像格式;Python IDE 体验 |
| 4.9.0 | 2023-12 | - Android AAR 发布(Maven Central)- ARM/FP16/BF16 优化 - Python binding 改进(只读标志、类型 stub) | Android 开发;移动端性能优化 |
| 4.10.0 | 2024-06 | - DNN 内存占用显著降低- 模型 pbtxt 导出 - 新增 CV_FP16 数据类型 - CuDNN 9+ & OpenVINO 2024 支持 | 深度学习应用;需要半精度存储 |
| 4.11.0 | 2025-02 | - C++20 支持增强- HAL 扩展(Qualcomm SoC, RVV)- DNN blockwise quantization- Core/Calib3d/Imgproc 改进 | C++20 项目;RISC-V/Qualcomm 平台 |
| 4.12.0 | 2025-07 | - GIF / APNG / Animated WebP 支持 - RISC-V RVV 1.0 HAL 实现 - DNN/Objdetect/VideoIO/HighGUI 多模块修复 - Python/Java/JS binding 更新 | 需要动图支持;RISC-V 平台;跨语言项目 |
逐版详细改动(要点摘要)
注:下面每个版本只列「对工程最有影响/最常被关注」的改动(模块、平台、重要 API/数据类型、打包发布/兼容性)。每节末尾附上官方发布页或 changelog 引用,欲看完整变更请点开对应链接。
OpenCV 4.5.0(2020-10-16)
- 许可证变更:从之前的 BSD 系列向 Apache 2 迁移(公告提及)。这对商用合规可能有影响。(OpenCV)
- DNN 模块有多项改进(OpenVINO 支持、ARM 推理后端等)。(OpenCV)
- 支持多个 OpenCL 上下文、改进 SIFT,加入对 OpenJPEG 作为 JPEG2000 的默认支持;GSoC 合入多项优化(RISC-V、Julia 绑定等)。(OpenCV)
OpenCV 4.6.0(2022-06-07)
- 新增 OpenCV AI Kit(OAK)后端 支持并加入模型基准/流水线建模工具(便于 DNN 性能评测)。(OpenCV)
- 为 Windows on ARM 增加 NEON 支持(提升 ARM 平台性能)。(OpenCV)
- 若使用 DNN / 嵌入式 ARM 设备,4.6 带来若干实用改进(见发布说明)。(OpenCV)
OpenCV 4.7.0(2022-12-29)
- 图像/视频编解码器:对多页图像格式加入迭代器式 API、在内置 libjpeg-turbo 中启用 SIMD 加速;引入 libspng;改进 FFmpeg 5.x 集成,增加 GRAY16 支持。(OpenCV)
- 增强 Android 的 H264/H265 支持,新增 Orbbec RGB-D 摄像头后端,以及 GStreamer 的音频输入改进。(OpenCV)
- 新算法/模块更新:例如 StackBlur、NanoTrack 等(具体见 changelog)。(OpenCV)
OpenCV 4.8.0(2023-07-02)
- 新图像容器/格式:加入 AVIF 支持(通过 libavif)。(OpenCV)
- 生成 Python typing stub(使 IDE 自动补全和静态类型检查更好)。(OpenCV)
- 新增
cv::hasNonZero、REDUCE_SUM2模式等若干 API;更新 RISC-V RVV 兼容性(LLVM/GCC 兼容)。(OpenCV)
OpenCV 4.9.0(2023-12-28)
- Android 分发改进:自 4.9 起 OpenCV 在 Maven Central 上提供 AAR 包,方便 Android 开发者直接用 Gradle 引入。(Maven Repository)
- 针对 ARM(NEON/FP16/BF16、Winograd FP16 等)和移动端有多项性能改进(面向移动部署的优化)。(opencv.ai)
- Python 绑定改进(类型 stub、Numpy 数组只读标志处理等)。(GitHub)
OpenCV 4.10.0(2024-06-03)
- DNN 改进:显著降低内存占用;新增把模型 dump 为 pbtxt(便于 Netron 可视化);支持更多 TFLite/ONNX/OpenVINO 层;增强现代 YOLO 检测器支持;加入 CuDNN 9+ 与 OpenVINO 2024 的支持。(OpenCV)
- Core:新增
CV_FP16数据类型到cv::Mat(在需要半精度存储时有帮助)。(OpenCV) - HAL 扩展:扩展了 HAL API(minMaxIdx、LUT、meanStdDev 等)以便硬件后端优化。(OpenCV)
OpenCV 4.11.0(2025-02-18)
- C++20 支持:项目对 C++20 的兼容/支持增强(如果你的项目打算使用 C++20,可考虑本版)。(OpenCV)
- 新增
algoHint参数以便在某些算法中选择优化路径;HAL(硬件抽象层)扩充,对 Qualcomm SoC / RISC-V RVV 扩展支持更好。(OpenCV) - DNN:引入 blockwise quantization 等以提升推理效率;Core/Calib3d/Imgproc 等模块也有准确性与健壮性改进。(OpenCV)
OpenCV 4.12.0(2025-07-09)
- 编解码器/格式:加入 GIF 解码/编码、Animated PNG (APNG)、animated WebP 支持(对需要处理动图的应用非常重要)。(OpenCV)
- HAL / RISC-V:新增针对 RISC-V RVV 1.0 的 HAL(硬件抽象层)实现,便于在 RVV 平台上做加速。(OpenCV)
- 多个模块(Core、Imgproc、Calib3d、DNN、Objdetect、Photo、VideoIO、HighGUI、G-API 等)均有大量 bug 修复与功能增强;Python/Java/JS 绑定也更新。(OpenCV)
升级/选型建议(按场景)
-
新项目(通用、希望拿到最新功能)
- 推荐:OpenCV 4.12(最新稳定 4.x,支持最新图像格式、更多硬件 HAL、DNN 改进)。务必在 CI 中固定
4.12.x的具体小版本并做回归测试。(OpenCV)
- 推荐:OpenCV 4.12(最新稳定 4.x,支持最新图像格式、更多硬件 HAL、DNN 改进)。务必在 CI 中固定
-
移动/Android 应用
- 若想用官方 AAR(Gradle/Maven 方式引入):至少 4.9+(从 4.9 起提供 AAR 包并优化了 ARM 性能)。推荐 4.12(如果需要新编解码器或最新修复)。(Maven Repository)
-
嵌入式 / RISC-V / ARM SoC
- RISC-V:若用 RVV 指令集建议使用 4.12(有 RVV 1.0 的 HAL),而 4.8/4.10/4.11 也做了 RVV/ARM 优化。(OpenCV)
-
依赖特定第三方二进制(CUDA / cuDNN / 旧 Python)
- 更保守:选 4.10 或 4.11,并在 CI 上验证与你的 CUDA/cuDNN/Python 版本的二进制兼容性(例如 4.10 明确支持 CuDNN 9+)。升级时注意 CUDA ABI/编译器兼容问题。(OpenCV)
-
想试试未来特性 / 非生产
- 可尝试 OpenCV 5.0 alpha 作实验,但不要在生产环境直接切换。(GitHub)
实务提示(升级清单要点)
- 固定小版本号(例如
4.12.0/4.12.1),别只写4.x。 - 若用
opencv-contrib,确保与 core 的小版本完全匹配。 - 对 GPU/CUDA 构建:核对 CUDA / cuDNN /编译器(GCC/Clang) 的兼容矩阵,并在容器/CI 上预先构建二进制。社区有不少 4.9/4.10 CUDA 构建问题帖,升级前要做预构建测试。(OpenCV)
- 若使用 Python:先确认
opencv-python/opencv-contrib-python对应版本的 wheel 是否覆盖你的 Python 版本(wheel 发布信息见 opencv-python 仓库)。(GitHub)
如果你愿意,我可以立刻:
- 根据你的项目环境(OS、Python 版本、是否用 CUDA、是否用 contrib、是否是 Android/iOS/嵌入式)给出一条明确的版本选择与升级步骤(例如:CMake 配置、要注意的宏、测试用例清单);
- 或把上面要点整理成 对比表(CSV/Markdown) 以便做 PR/升级记录。
你想按哪条路径继续?