2500+ 优化算法
经典与前沿的计算机视觉、机器学习方法的完整组合,覆盖人脸检测、目标识别、动作分类、运动跟踪、3D 重建与全景拼接。
import cv2
img = cv2.imread("cat.jpg") # 读取图像(BGR 顺序)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150) # Canny 边缘检测
cv2.imshow("edges", edges)
cv2.waitKey(0)更多语言入口见示例代码
在 4.x 基础上构建的重大版本。
经典与前沿的计算机视觉、机器学习方法的完整组合,覆盖人脸检测、目标识别、动作分类、运动跟踪、3D 重建与全景拼接。
提供 C++、Python、Java、JavaScript(OpenCV.js)接口,可运行于 Windows、Linux、macOS、Android 与 iOS。
通过 SIMD(Universal Intrinsics 2.0:SSE/AVX/NEON/SVE/RISC-V)、CUDA、OpenCL 与 Vulkan 加速计算。
最低要求 C++17,移除 Python 2 与遗留 C API;新增 CV_16BF 等数据类型;calib3d 拆分为 geometry、calib、stereo、ptcloud。
ONNX 规范覆盖率从不足 23% 提升至 80% 以上,集成 ONNX Runtime,模型托管于 Hugging Face。
图像 warp 加速 10% 至 300%+;USAC 成为鲁棒估计默认框架;Vulkan 计算支持。
典型应用领域一览。
objdetect 中的 Haar/DNN 人脸、眼睛、微笑检测,以及人脸识别流水线。
滤波、边缘检测、形态学、几何变换、直方图均衡、色彩空间转换。
背景减除、光流、Meanshift/Camshift、KCF/CSRT 目标跟踪。
通过 dnn 模块运行 YOLO、SSD、EfficientDet 等检测模型。
棋盘格标定、立体校正、视差计算、PnP 位姿估计、点云处理。
stitching 模块:特征匹配、柱面/球面投影、多带融合生成全景图。
SIFT、ORB、AKAZE 等检测描述子与 FLANN 匹配,用于图像检索与拼接。
photo 模块:去噪、HDR、卡通化、图像修复(inpainting)。
OpenCV.js 将核心算法编译为 WebAssembly,在浏览器中实时处理。
同一套算法,四种语言入口。
#include <opencv2/imgcodecs.hpp>
auto img = cv::imread("cat.jpg");import cv2
img = cv2.imread("cat.jpg")Mat img = Imgcodecs.imread("cat.jpg");let img = cv.imread("canvas");| 方面 | OpenCV 4.x | OpenCV 5.0 |
|---|---|---|
| C++ 标准 | C++11 起步 | 最低 C++17 |
| Python | 2/3(部分版本) | 仅 Python 3.6+ |
| C API | 已弃用 | 完全移除 |
| 数据类型 | CV_8U ~ CV_64F、CV_16F | 新增 CV_16BF、CV_32U、CV_64U、CV_64S、CV_Bool;支持 0D/1D 数组 |
| 模块划分 | calib3d 单一模块 | 拆分为 geometry / calib / stereo / ptcloud |
| DNN | ONNX 覆盖 < 23% | ONNX 覆盖 > 80%;ONNX Runtime 集成;Hugging Face 模型 |
| 性能 | Universal Intrinsics 1.x | 2.0(含 SVE/RISC-V);warp 加速 10%~300%+;Vulkan 计算;USAC 默认 |