一、版本概览
OpenCV 4.13.0 是 4.x 系列在 2025 年的年度压轴版本。该版本重点体现在以下几个方面:
• 核心模块输入输出机制全面修复与增强
• ARM(Windows ARM、RISC-V、SVE、RVV)平台性能大幅优化
• 图像处理、视频处理算法精度和稳定性显著提升
• DNN、Python、Java、JS 绑定持续完善
• 构建系统支持最新编译器、CUDA、工具链
Core 模块在 4.13.0 中主要聚焦于API 正确性、跨平台稳定性和性能:
• 改进 InputArray 和 OutputArray 对
std::vector与std::vector的处理精度• 让
cuda::GpuMatND正式兼容 InputArray / OutputArray• 当 API 明确定义时,强制为空矩阵指定输出类型
• 新增 InputArray / OutputArray 的
std::vector长度检查• 新增 16 位 LUT 支持以及对应的 HAL 接口
• 新增
cv::Mat::copyAt,用于 ROI 拷贝操作• 扩展 JSON 支持:
• 支持 null 解析
• 支持转义反斜杠
• 修复
cv::solveCubic的数值不稳定问题(系数归一化)• 修复 Windows 下临时文件竞争条件
• 并行框架失败尝试时恢复原始名称
• 移除 OPENCV_FOR_OPENMP_DYNAMIC_DISABLE,改用标准 OMP_DYNAMIC
• 启用 FP16 转换,但在 Windows ARM 上禁用 NEON FP16 运算
• 修复 Windows ARM64 下点积累计误差导致的 NORM 测试失败
• 为 Windows ARM 添加多项性能优化
• 修复 POWER9 平台因 VSX 不支持 float64 转换导致的问题
• 修复 RISC-V RVV 平台 HAL 中就地 flip 错误
• 新增 inRange 的 HAL 入口
• 禁用 cv::compare 中 AVX512 IPP 路径以避免性能回退
该模块是 4.13.0 更新最密集的模块之一:
• 新增迭代相位相关算法
• 新增
cv::minEnclosingConvexPolygon• 改进
cv::convexHull在近零凸性场景下的处理• 在可能情况下保持 convexHull 输出索引单调
• 修复连通组件中的溢出问题
• 修正
cv::minAreaRect:角度范围强制在 [-90, 0)• 使用 double 提升 minAreaRect 精度
• CLAHE 新增 BitShift 选项
• 修复
cv::minEnclosingCircle多个问题• 修复 HoughLines 中 rho 的偏移问题
• 修复 drawContours 中 LINE_4 / LINE_8 交换错误
• 修复 approxPolyDP 算法:距离应计算到线段而非直线
• 高斯模糊性能优化(含 AVX512)
• blur 与 bilateralFilter 多项性能提升
• pointSetBoundingRect 新增可扩展 SIMD 分支
• RISC-V RVV 新增 Canny、Scharr、Sobel HAL 实现
• 优化 ThickLine 在远距离点之间的绘制
• 修复 stackBlur 中的堆缓冲区溢出
• 修复 bilateralFilter 在 32F 图像中的越界读取
• 修复 IPP warp 函数中的内存泄漏
• 限制 IPP 双边滤波 tile 数避免过小 tile
• 修复 IPP HAL 中 warp perspective 多线程实现错误
• 新增无状态 HAL,用于滤波和形态学操作
• 扩展 JPEG、PNG、WebP、AVIF 的元数据支持(ICCP、XMP、cICP)
• 新增 OpenEXR 多光谱读写支持
• 严格校验编码参数
• 放宽多种格式的解码尺寸限制(超过 1GB)
• PNG 新增 IMWRITE_PNG_ZLIBBUFFER_SIZE 选项
• 修复 WebP 内存泄漏
• 修复旧版 GDAL FITS 图像翻转问题
• 新增 32bpp BMP(BI_BITFIELDS)支持
• 修复 BMP 中多处溢出和越界
• 修复 PNG 相关模糊测试发现的潜在崩溃
• 修复 PNG 多处溢出和错误处理
• 修复 PNG 混合时 alpha 通道处理
• AVIF 单色图像设置 matrixCoefficients 为 UNSPECIFIED
• 增强 AVIF 编解码安全性
• 支持通过 FFmpeg 按索引打开摄像头
• 新增 FFmpeg 8.0 支持
• Orbbec SDK 新增时间戳、自定义帧率分辨率及畸变参数
• Aravis SDK 支持系统级安装并修复像素格式问题
• macOS 新增 Orbbec Gemini330 支持
• 修复 FFmpeg 后端负 DTS 时帧定位错误
• 修复 VideoCapture 设置再获取属性异常
• 新增 Raspberry Pi 4/5 HEVC 硬件加速
• FFmpeg VideoCapture 支持 swscale 线程优化
• 修复 VideoWriter writeFrame 返回码
• 新增跳过 FFmpeg 日志回调选项
• 支持无 libavdevice 编译
• 捕获 _com_error 防止调试器刷屏
• 修复 FFmpeg 硬件解码时 picture_sw 泄漏
• 修复 DirectShow 白平衡映射错误
• 修复 iOS 下 VideoWriter::release 崩溃
• 修复 ORB 掩码非 255 值导致的不一致
• 修复 BRISK 指针运算
• FAST 特征点缓存分配启发式优化
• Windows ARM 上 AGAST 性能优化
• RISC-V RVV 新增 FAST HAL
• ArUco 新增基于像素的置信度
• 改进多二维码检测与解码
• 防止退化点集导致 QR 解码异常
• 修复 QRCodeDetector 多处崩溃
• 移除角度计算中的浮点运算
• ChArUco 通过减少临时拷贝提速
• 修复栈作用域错误
• HOG 在近似提示下启用线性 resize 快路径
• 新增 ONNX、TFLite 多种算子支持
• 允许 protobuffer 使用 LITE_RUNTIME
• 修复 ONNX 卷积隐式 kernel 解析问题
• 修复 Winograd 标志处理
• ARM NEON / SVE fastGEMM1T 优化
• 修复 DNN 层中的堆缓冲区溢出
• softmax_3d 循环展开优化
• 新增 estimateTranslation2D
• 替换 P3P 算法实现
• stereoCalibrate 新增 QR 分解选项
• fisheye::undistortPoints 收敛性改进
• 修复 USAC 与 PnP 越界访问
• 修复多带融合内存泄漏
• warp 参数按值传递避免 CUDA 竞态
• Windows ARM 下 fast.cpp 循环展开优化
• 修复 Qt 6.9 及更新版本链接问题
• 修复外部 QApplication 生命周期冲突
• 修复 Qt 后端窗口内存泄漏
• 新增 Python 中的 G-API 自定义流输入源
• 为 OpenVINO 参数新增 cfgEnsureNamedTensors 选项
• 为 OpenVINO 参数新增 cfgClampOutputs 选项
• 重命名 WorkloadType::notify() 为 WorkloadType::set()
• 支持在 OpenVINO 与 ONNX OVEP 中动态设置工作负载类型
• 修复 G-API 有状态算子中的空指针解引用
• 更新已弃用的 ov::element::undefined
• findTransformECC 与 computeECC 新增多通道支持
• findTransformECC 新增可选模板掩码
• 后景分离器新增可选“已知前景掩码”
• DISOpticalFlow 新增 setCoarsestScale 接口
• 修复 Farneback 光流中潜在的指针溢出问题
• 修复 ml::KDTree::findNearest 的错误实现
• merge 系列函数新增 16U 与 32F 数据类型支持
• 新增将 opencv_contrib 一并打包进 JS 绑定的选项
• 修复 JS 生成器中的字符串属性绑定
• helpers.js 新增 .delete 支持
• Mat.clone() 新增深拷贝行为
• 移除废弃的 DEMANGLE_SUPPORT 选项
• 针对 WASM 调整 CONV_NR_FP32 的尺寸
• 新增用于 fastconv 的大标量卷积核
• 修复函数返回类型在命名空间中的生成问题
• 修复命名空间 Ptr 工厂返回类型的 JS 绑定
• 调整 Python 绑定的日志系统
• 在 Python 类型标注中将 Feature2D.detectAndCompute 的 mask 标记为可选
• calib3d 相关接口中,将 distCoeffs / R / D 标记为可选
• 新增 DLPACK 数据交互支持
• 修复 Python 绑定中的内存泄漏
• 新增 PathLike 类型标注,用于文件路径参数
• 修复 PathLike 参数在 pyopencv_to 中的内存泄漏
• 类型生成优化:使用 export_name 作为 AliasTypeNode 的解析类型名
• 修复 pytest-cov 的误报警告
• 修复 Python 标量类型推导问题
• 修复绑定头文件解析器中 ifdef 状态机错误
• 包装 cv::findCirclesGrid 参数结构体中的 GridType 字段
• 新增选项:生成基于新 Cleaners 接口或传统 finalize 的 Java 包装代码
• 启用 Vec4i 的 Java 包装生成
• 新增 Java 对 List 的支持
• 交互式相机标定工具改进:
• 新增选择相机后端选项
• 扩展标定标志
• 灰度相机预览效果改进
• 对齐标定工具与示例输出字段,便于后续复用
• 仅在适用场景启用标定板不完美度修正
• ArUco 图案生成器新增索引偏移选项
• 将图案生成器移动至 apps 并重写教程
• 修复 generate_pattern.py 中的 charuco_board_pattern
• 更新教程中完全相同图像的 PSNR 说明
• 集成 KleidiCV 0.7,支持 macOS 与 Linux,默认启用
• 集成支持 AVX512 的 IPP ICV
• 修复多项静态代码分析工具发现的问题
• 新增对 Visual Studio 2026 的支持
• 新增 CUDA 13.0 支持,并修复与现代 CUDA 的兼容问题
• 修复 OpenBLAS 探测逻辑
• 新增可复现构建支持(可选忽略宿主系统版本)
• 修复旧版 GCC 的构建问题
• 修复 Qt 下 Unicode 跟踪符号问题
• 修复 Eigen 在 3.4.0 之后版本中的诊断问题
• 新增 CMake 选项,用于强制在 IPP HAL 中使用 IPP 调用
代码地址:github.com/opencv/opencv
OpenCV 4.13.0 是一个工程质量与平台适配并重的重大版本更新:
• 在Windows ARM、RISC-V、SVE、RVV等新兴架构上投入大量优化
• 图像处理算法在精度、稳定性和性能上全面加强
• 多语言绑定(Python / Java / JavaScript)持续成熟
• 构建系统紧跟最新编译器、CUDA 与工业级工具链
对于正在使用 OpenCV 4.x 的开发者来说,4.13.0 是一个非常值得升级的年终版本。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
热门跟贴