OpenCV 4.12.0 发布


OpenCV 2025 年的夏季更新现已发布。此次更新涵盖了CoreImgprocCalib3dDNNObjdetectPhotoVideoIOImgcodecsHighguiG-APIVideoHAL模块,以及 Python、Java 和 JavaScript 语言绑定等众多内容。

此次更新的亮点包括:

  • imgcodecs添加了对 GIF 的编解码支持
  • 显著提升了PNG 和 Animated PNG文件的处理能力
  • 增加了对Animated WebP的支持
  • 特别值得一提的是对 RISC-V RVV 1.0 的新 HAL 实现

完整的更新日志如下:

Core 模块

  • 添加了用户自定义的日志回调功能(#27154) 
  • `cv::Mat` 添加了 `reinterpret()` 方法(#25394)
  • 修复了空的 N 维数组构造问题(#27362)
  • 修复了 `FileStorage` 对 `int64` 支持的 bug(#26846)
  • 修复了大图像中 `cv::meanStdDev` 的溢出问题(#26867)
  • `cv::mean` 函数的 HAL 加速(#26895)
  • 向量化加速 `cv::normalize` 和 `cv::norm`(#26885)
  • 为 `exp` 和 `sqrt` 启用了 `SIMD_SCALABLE`(#26886)
  • 使用通用指令向量化 `normDiff`(#27042)
  • 重构了 `hal_rvv` 中的 `normDiff`,并扩展支持更多数据类型(#27115)
  • 进一步向量化加速带掩码的 `copyTo`(#27145)
  • 修复了 `POWN` 的 OpenCL 实现(#27274)
  • 将遗留的 universal intrinsics 恢复为独立头文件(#27327)
  • 提高了解析三次方程 (`solveCubic`) 的精度(#27331, #27347)
  • 弃用了在 `cv::UMat` 从 `std::vector` 构造时的 `copyData` 参数,并始终复制数据(#27408)

Imgproc 模块

  • 优化并减少了 `cv::findContours` 的内存使用(#26690, #26834)
  • 修复了超大图像中 `cv::HoughLinesProbabilistic` 的整数溢出问题(#26744)
  • 修复了图像变换中多个可能的溢出问题(#26765, #26776)
  • 增强了椭圆拟合的鲁棒性(#26773)
  • 添加 `cv::THRESH_DRYRUN` 标志以在不实际阈值化的情况下获取自适应阈值(#26836)
  • 修复了奇异情况中 `cv::getPerspectiveTransform` 的行为(#26926)
  • 使用 universal intrinsics 优化了 `bayer2Gray`(#26868)
  • 为 `cv::threshold` 添加了可选掩码参数(#26842)
  • 在使用 `cv::WARP_INVERSE_MAP` 时,通过多线程加速 `cv::remap` 计算(#27108) 
  • 重构了 OpenCL 中 HSV 色彩转换表的初始化以避免数据错误(#27287)
  • 修复了双边滤波中 `sigmaColor` 和 `sigmaSpace` 的问题(#27309)
  • 提升了中值滤波 (`medianBlur`) 的性能(#27299)
  • 添加了 `cv::getClosestEllipsePoints` 用于获取椭圆上最近的点(#26299)
  • 修正了 `cv::distanceTransform` 在单线程下的 IPP 实现(#27432)
  • 修复了带掩码时 `cv::matchTemplate` 的崩溃(#26703)
  • 为形态学操作添加了菱形结构元素(#27441, #27492)
  • 提升了 `cv::intersectConvexConvex` 在极端情况中的精度(#26974)

Calib3d 模块

  • 修复了单应性估计中的内点更新问题(#26742)
  • 为鱼眼相机模型添加了 `cv::solvePnPRansac` 实现(#26669)
  • 修复了 `cv::findChessboardCornersSBWithMeta` 在使用 `cv::CALIB_CB_LARGER` 标志时的角点顺序问题
  • 修复了 `FilterSpecklesImpl` 中的逻辑错误(#26996)
  • 优化了鱼眼模型下的反畸变点计算(#26988)
  • 优化了新相机矩阵估计及相关函数(#27001)
  • 为 `cv::drawAxes` 投影轴超出相机视野时添加了警告(#27311)
  • 添加图像尺寸检查以避免 `StereoSGBM` 的非正定(#27305)
  • 修复了 SQPNP 正交化相关 bug 并简化了列向量复制(#27437)

DNN 模块

  • 在 TFLite 解析器中添加了对 `StridedSlice`(无 strides,仅切片)的支持,同时支持 TF 的 strides(#27273)
  • 增加了 conv+eltwise 融合的处理器,适用于多输出节点(如 Split)(#27326)
  • 在 TFLite 解析器中新增了若干操作的导入:SUB、SQRT、DIV、NEG、SQUARED\_DIFFERENCE、SUM(#27307)
  • 修复了 TFLite 解析器中标量和一维张量的支持(#27307)
  • 减少了 NHWC<->NCHW 转换次数(#27307)
  • 在获取网络中最新 layer pin 之前增加了检查(#27353)
  • 添加了 OpenVINO NPU 支持(#27363)
  • 向 CANN 后端添加了更多操作(#24756)

Objdetect 模块

  • 扩展 `ArUcoDetector` 以更高效地支持多字典(#26934)
  • 修复了 Aruco 标记板旋转生成问题(#26753)
  • 修复了图像边缘附近 Aruco 标记检测错误(#26968)
  • 修复了 QR 编码器/解码器中无效向量访问问题(#26532)
  • 修复了 QR 码编码器的自动版本选择(#27244)
  • 添加了 QRCode 的 ECI 编码支持(#24426, #27486)
  • `ChAruco` 棋盘一致性检查现在可选(#26824)

Photo 模块

  • 为 `cv::fastNlMeansDenoising` 添加了 16 位支持并更新了测试(#26831)
  • 优化了本地去色流程(#27041)
  • 修复了 Debevec 算法使用的三角权重在边缘处不为零的问题(#27270)
  • 修复了 HDR 三角权重和色调映射中的 NaN,并更新了教程中的 LDR Ground Truth(#27396)

VideoIO 模块

  • 修复了通过环境变量提供的 FFmpeg 自定义参数处理无效的问题(#26793)
  • 修复了 `cv::CAP_PROP_ORIENTATION_AUTO` 的默认行为(#26800)
  • 在使用 DShow 后端并提供自定义参数时提高了相机打开性能(#26601)
  • 为安卓原生相机捕捉添加了缩放支持(#26837)
  • 修复了非 BGR 输出时的 V4L 帧尺寸问题(#27193)
  • 添加了对 Orbbec Gemini 330 相机的支持(#27230)
  • 修复了 `cv::VideoWriter` 写入无颜色图像时失败的问题(#27153)
  • 修复了 Android 中 `setCameraIndex` 的问题(#27419)

Imgcodecs 模块

  • 扩展图像 I/O API,支持元数据(#27499)
  • 添加了内存中动画编码和解码功能(#27013)
  • 添加了 Animated PNG 的隐藏帧支持(#27127)
  • 为 imgcodecs 添加了 GIF 编解码支持(多个 PR)
  • 添加了 Animated WebP 支持(#25608, #27457)
  • 添加了 GDAL 多通道支持(#27458)
  • 修复了 Windows 下 AVIF 链接问题(#26762)
  • 显著改进了 PNG 和 Animated PNG 文件的处理(多个 PR)
  • 添加了 libspng 集成的多个修复(#27314)
  • 修复了 JpegXL 解码器中的内存泄漏(#26787)
  • 为 JpegXL 添加了 `cv::IMREAD_UNCHANGED` 和其他标志的支持(#26788)
  • 实现了 JpegXL 的 `imdecode()`,支持从内存直接读取(#26844)
  • 添加了 JpegXL 的无损压缩支持(#27384)
  • 修复了使用 libspng 后端读取 16 位 PNG 的问题(#27113)

Highgui 模块

  • `displayOverlay` 超时后不再自动消失(#27082)
  • 修复了 Qt 后端关闭窗口的问题(#27170)
  • 修复了 Qt 窗口调整大小的回归问题(#27282)

G-API 模块

  • 为 OpenVINO Execution Provider 的顺利添加引入了绕过方案:提前创建 `Ort::Env`(#26983)
  • 添加了 `AddRgbFeature()`,提升了 `ComputeRgbDistance` 的鲁棒性(#26682)
  • 在 G-API 中添加了 MS Media Foundation 的可用性检查(#27355)

Video 模块

  • 添加了预加载 DNN 模型的追踪器工厂(#26875)

HAL 模块

  • 将 HAL 实现抽出为独立文件夹(#27252)
  • RISC-V RVV 1.0 实现了新的 HAL
  • 重构 OpenVX 实现为 HAL(多个 PR)
  • 部分重构了 Intel IPP 集成为 HAL(多个 PR)
  • 修复了 HAL 中对 `cv` 命名空间的依赖(#26878)
  • 更新了 ARM 上的 KleidiCV HAL 至版本 0.5
  • 扩展了 Qualcomm 平台的 FastCV HAL(多个 PR)
  • 添加了多个新 HAL 实现(如 `cv::sum`, `copyTo`, `cv::DFT`, `cv::DCT`, `convert`, `cv::norm`, `minMaxIdx`, `cv::calcHist`, `cv::pyrUp`, `cv::remap` 等)

Python, Java, JavaScript 绑定

  • 添加了头文件解析器的条件包含支持(#27325 等)
  • 更新了 `predefined_types.py`(#26826)
  • 添加了动画绑定(#26813)
  • 修复了 `cv::imread` 的错误 Python 类型提示(#26890)
  • 将 `tostring()` 和 `fromstring()` 替换为现代 Python 兼容用法(#26932 等)
  • 替换 `ndarray.ptp()` 为 `np.ptp()` 以兼容 NumPy 2.0(#27133)
  • 扩展了 Java DNN、Features2d 的绑定(多个 PR)
  • 修复了 JS 中 `std::vector<Point3f>` 的处理(#27291)
  • 为 Java 添加了带缓冲流的 `cv::VideoCapture` 构造器(#27284 等)
  • 扩展了 `cv::HoughLinesWithAccumulator` 的绑定(#27377)
  • 修复 Kotlin 2.0 中的不安全强制类型转换错误(#26354)

平台支持

  • 修复了 Linux 上 OpenBLAS 的检测(#27029)
  • 兼容 CMake 4(#27192)
  • 修复了支持 Vulkan 的 Android 构建问题(#26765)
  • 修复了 Power 架构上的 VSX 指令实现(#26750 等)
  • 为 POWER 架构添加了 `getauxval` 和 `elf_aux_info` 的 CMake 检查(#26798)
  • 修复了 OpenBSD 的构建问题(#26803)
  • 添加了对 Nvidia Blackwell GPU 架构的初步支持(#26820)
  • 修复了 Carotene HAL 中对 `cv` 命名空间的依赖(#26878)
  • 统一了各模块的 `_DEBUG/NDEBUG` 处理(#26151)
  • 修复了 QNX 7.0 的构建问题(#26985)
  • 切换为静态链接 FastCV(#26917 等)
  • 在 CUDA 工具包 ≥ 12.8 时强制启用 C++17 标准(#27112 等)
  • 修复了 Windows ARM64EC 的构建(#27416)
  • 修复了 Cygwin 环境下的文件系统支持(#27484)

详细信息可参考:https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120


相關推薦

2024-09-24

宣布其自研统一系统架构MUSA已完成与开源计算机视觉库OpenCV的适配,并正式发布OpenCV-MUSA开源项目。 该项目旨在为开发者和研究人员提供更加高效与便捷的工具,使其在开发基于全功能GPU的各类计算机视觉应用时,能够大幅提

2022-06-08

OpenCV 是 Intel 开源计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 4.6 版本的主要更新内容如下: OpenCV 项目基础设施为 CI 和发布目的迁移到 GitHub Actions 工作流 增加了对 GCC 12、Clang 15 的支持 增

2023-06-30

OpenCV 是 Intel 开源计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 4.8 版本的主要更新内容如下: DNN module patches: #23161、#23409 TFLite 模型支持,包括 int8 量化模型。 #23604 启用 DNN 模

2023-12-30

OpenCV 是 Intel 开源计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 4.9.0 版本的主要更新内容如下: Core Module: #23965 添加cv::broadcast DNN module patches: Experimental transformers 支持 #24476 

2024-06-04

库管理系统如MySQL和PostgreSQL是C语言,开源计算机视觉库OpenCV是C++语言。也就是说,目前大部分计算机领域的基础软件是采用C或C++实现。虽然新型的编程语言Rust很有前景,但尚未成广泛生态。在未来的若干年内,C和C++语言在计

2022-04-24

EasyOCR 1.4.2 发布,该版本更新了 opencv 的依赖,以及解决了 pillow 的一些相关问题,没有其他大的改进。 一个开箱即用的 OCR 工具,支持超过 80 种语言,包括中文:Latin, Chinese, Arabic, Devanagari, Cyrillic, etc. 你可以通过下面地址在线

2025-04-19

: [0.0.16] - 2025-04-17 Added 新增工具插件 新增基于opencv图像OCR能力的图片文字提取工具 新增shell命令状态查询与执行工具 新增通用文件读写工具 新增Tavily智能搜索工具 新增知识Reader与加工组件 新增飞书云文档

2023-03-14

设置管理,更新了国际化,并解决了崩溃问题最后一个 OpenCV 4.7.0 版本。 此版本基于 KDE Frameworks 5.102 和 Qt 5.15.8 LTS,还包括 ExifTool 12.57 和 libjasper 4.0.0,它们提供了重要的稳定性改进和错误修复,使 digiKam 在管理照片库时更加可

2024-08-17

中包括gcc、g++、rustc、systemd、ukui-desktop-environment、ffmpeg、opencv等工具,极大地丰富了openKylin社区RV64G软件生态体系。   中科通量RISC-V AI PC首次面世 自2024年起,AI时代全面开启,PC也步入了更新迭代的关键时刻。中科通量面

2023-06-20

教程在Rust 中创建 HTTP 服务。 这些 plugin 以及对 zlib、OpenCV、tesseract 和 FFMPEG 等其他库的支持,为开发者提供了一个全面的工具集,用于构建复杂的 WasmEdge 应用程序,包括涉及 AI 和多媒体处理的应用程序,例如在 WasmEdge 运行 M

2022-10-10

面、搜索引擎关键词等等流量分析功能。 Matomo 4.12 正式发布,这是一个维护版本,改善了 Matomo 的可靠性和稳定性,同时也包括一些重要的功能和改进。Matomo 4.12 具体更新内容如下: 安全版本 这是一个主要的安全版本。在这

2023-05-30

Neutralinojs 4.12.0 发布了!Neutralinojs 是一个轻量级、便携的桌面应用程序开发框架,可以使用 JavaScript、HTML 和 CSS 开发轻量级跨平台桌面应用程序。 主要更新内容: API: window 添加 window.center ,可使用编程方式使应用程序窗口

2023-03-21

当前版本涉及几个主要更新。 DataCap is released Release Version Release Time 1.7.0 2023-03-20 General 添加其他问题模板 添加路由管理 升级JDK 8 到 11 支持 chatgpt 添加提交 pipeline api Experimenta

2024-06-07

Solon 是什么框架? Java “新的”应用开发框架。开放原子开源基金会,孵化项目。从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态。 追求: 更快、更小、更简单 提倡: 克制、简洁、高效、开放、生态 有