OpenCV 全称 Open Source Computer Vision Library,是一个跨平台的 计算机视觉和图像处理开源库。
最初由 Intel 于 1999 年发起,后来由 Willow Garage 和 Itseez 维护,现在由 OpenCV.org 社区管理。
支持 C++、Python、Java、MATLAB 等多种语言接口,兼容 Windows / Linux / macOS / Android / iOS 等平台。
OpenCV 的主要功能
OpenCV 提供了大量的图像处理和计算机视觉算法,大致分为以下几类:
图像处理
- 图像读取、保存、显示 (cv2.imread, cv2.imwrite, cv2.imshow)
- 几何变换(缩放、旋转、仿射、透视变换)
- 滤波(高斯滤波、均值滤波、边缘检测等)
- 颜色空间转换(RGB ↔ 灰度 ↔ HSV 等)
特征提取与匹配
- 边缘检测(Canny)
- 特征点检测(SIFT、SURF、ORB 等)
- 图像配准、拼接
视频处理
- 视频捕获与解码(支持 RTSP、MP4、摄像头等输入)
- 帧级处理(逐帧分析、保存图片)
- 背景建模、运动检测
目标检测与识别
- Haar / LBP 分类器(早期人脸检测)
- 深度学习接口(DNN 模块,可加载 TensorFlow、Caffe、ONNX 模型)
机器学习模块
- 包含 SVM、KNN、决策树、随机森林等传统算法(但现在更常用深度学习框架)。
3D 视觉
- 立体匹配、三维重建
- 相机标定与姿态估计
OpenCV 的常见应用
- 人脸识别(门禁、考勤系统)
- 视频监控与安防(运动检测、车牌识别)
- 机器视觉(工业检测、缺陷检测)
- AR/VR(物体跟踪、姿态估计)
- 智能交通(车流量统计、车道检测)
- 医学图像处理(细胞计数、X 光图像分析)
Python 示例
import cv2
# 读取图像
img = cv2.imread(“test.jpg”)
# 转灰度
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 边缘检测
edges = cv2.Canny(gray, 100, 200)
# 显示结果
cv2.imshow(“Original”, img)
cv2.imshow(“Gray”, gray)
cv2.imshow(“Edges”, edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
👉 这段代码会把一张图片显示为 原图、灰度图、边缘检测图。
cv2 就是 OpenCV 的 Python 接口包名。