快速结论(先看这里)

  • 推荐用于新项目(在保持 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.02020-10- 许可证迁移至 Apache 2- DNN 增强(OpenVINO/ARM 后端)- OpenCL 多上下文支持 - SIFT 改进 - OpenJPEG 默认 JPEG2000商业合规敏感项目;依赖 OpenVINO/ARM DNN
4.6.02022-06- 引入 OAK(OpenCV AI Kit)后端- 模型基准工具 - Windows on ARM NEON 支持AI 模型部署,ARM Windows 平台
4.7.02022-12- 改进编解码(libjpeg-turbo SIMD、libspng、FFmpeg 5.x 支持)- Orbbec RGB-D 后端 - StackBlur、NanoTrack 算法需要新格式支持、深度相机/视频处理
4.8.02023-07- AVIF 格式支持 - Python typing stub- 新 API (cv::hasNonZero, REDUCE_SUM2)- RISC-V RVV 改进现代图像格式;Python IDE 体验
4.9.02023-12- Android AAR 发布(Maven Central)- ARM/FP16/BF16 优化 - Python binding 改进(只读标志、类型 stub)Android 开发;移动端性能优化
4.10.02024-06- DNN 内存占用显著降低- 模型 pbtxt 导出 - 新增 CV_FP16 数据类型 - CuDNN 9+ & OpenVINO 2024 支持深度学习应用;需要半精度存储
4.11.02025-02- C++20 支持增强- HAL 扩展(Qualcomm SoC, RVV)- DNN blockwise quantization- Core/Calib3d/Imgproc 改进C++20 项目;RISC-V/Qualcomm 平台
4.12.02025-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::hasNonZeroREDUCE_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)

升级/选型建议(按场景)

  1. 新项目(通用、希望拿到最新功能)

    • 推荐:OpenCV 4.12(最新稳定 4.x,支持最新图像格式、更多硬件 HAL、DNN 改进)。务必在 CI 中固定 4.12.x 的具体小版本并做回归测试。(OpenCV)
  2. 移动/Android 应用

    • 若想用官方 AAR(Gradle/Maven 方式引入):至少 4.9+(从 4.9 起提供 AAR 包并优化了 ARM 性能)。推荐 4.12(如果需要新编解码器或最新修复)。(Maven Repository)
  3. 嵌入式 / RISC-V / ARM SoC

    • RISC-V:若用 RVV 指令集建议使用 4.12(有 RVV 1.0 的 HAL),而 4.8/4.10/4.11 也做了 RVV/ARM 优化。(OpenCV)
  4. 依赖特定第三方二进制(CUDA / cuDNN / 旧 Python)

    • 更保守:选 4.10 或 4.11,并在 CI 上验证与你的 CUDA/cuDNN/Python 版本的二进制兼容性(例如 4.10 明确支持 CuDNN 9+)。升级时注意 CUDA ABI/编译器兼容问题。(OpenCV)
  5. 想试试未来特性 / 非生产

    • 可尝试 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/升级记录。

你想按哪条路径继续?