Python cv2 库:OpenCV 图像处理与计算机视觉基础
cv2 是 OpenCV 的 Python 接口。OpenCV(Open Source Computer Vision Library)是一个跨平台、开源的计算机视觉库,由 Intel 最早开发,现已广泛应用于图像处理、机器视觉、实时检测、视频分析等领域。借助 cv2,开发者可以轻松实现图像读写、滤波变换、特征提取、人脸识别、目标追踪等各类视觉任务。
安装
推荐使用 pip 安装预编译版本:
pip install opencv-python
如需视频/编解码支持:
pip install opencv-python-headless
如需完整扩展(含 contrib 模块):
pip install opencv-contrib-python
常见应用场景
- 图像读取、保存与格式转换。
- 图像滤波、灰度化、二值化、边缘检测。
- 图像几何变换(缩放、旋转、仿射等)。
- 视频读取与逐帧处理。
- 摄像头捕获与实时画面处理。
- 图像特征提取(角点、边缘、轮廓)。
- 人脸检测与识别、目标检测。
- OCR、姿态估计、手势识别等高级视觉任务。
核心概念
- 图像是 NumPy 数组:在 cv2 中,图像被读入为三维 NumPy 数组(形如 (H, W, 3)),每个像素值通常是 uint8 类型,通道顺序为 BGR(蓝绿红),而非常见的 RGB。
- 实时处理友好:OpenCV 对实时场景优化良好,结合摄像头、OpenCL、GPU 或嵌入式设备使用广泛。
- API 接口统一:无论是图像、视频还是实时流,大部分函数接口保持一致性,便于快速上手和调试。
应用举例
例 1:读取图像并显示
import cv2
img = cv2.imread("cat.jpg") # 读取图片
cv2.imshow("Cat", img) # 打开窗口显示
cv2.waitKey(0) # 等待按键
cv2.destroyAllWindows() # 关闭所有窗口
例 2:保存图像
cv2.imwrite("output.jpg", img) # 将 NumPy 图像保存为文件
例 3:图像预处理(灰度、模糊、边缘)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blur, 50, 150)
cv2.imshow("Edges", edges)

