现在位置: 首页 > OpenCV 教程 > 正文

OpenCV 基础模块

OpenCV 是一个功能强大的计算机视觉库,包含多个模块,每个模块专注于不同的功能。

OpenCV 是由多个模块组成的,每个模块都提供了不同的功能。

以下是 OpenCV 中最常用的一些模块:

  • cv2.core: 核心模块,包含了图像处理的基础功能(如图像数组的表示和操作)。
  • cv2.imgproc: 图像处理模块,提供图像的各种操作,如滤波、图像变换、形态学操作等。
  • cv2.highgui: 图形用户界面模块,提供显示图像和视频的功能。
  • cv2.video: 提供视频处理的功能,如视频捕捉、视频流的处理等。
  • cv2.features2d: 特征检测与匹配模块,包含了角点、边缘、关键点检测等。
  • cv2.ml: 机器学习模块,提供了多种机器学习算法,可以进行图像分类、回归、聚类等。
  • cv2.calib3d : 相机校准和 3D 重建模块。
  • cv2.objdetect : 目标检测模块。
  • cv2.dnn : 深度学习模块。

1. Core 模块

功能: 提供 OpenCV 的核心功能,包括基本数据结构、矩阵操作、绘图函数等。

主要类和函数:

  • Mat: OpenCV 中用于存储图像和矩阵的基本数据结构。

  • Scalar: 用于表示颜色或像素值。

  • Point、Size、Rect: 用于表示点、尺寸和矩形。

  • 基本绘图函数: cv.line()cv.circle()cv.rectangle()cv.putText() 等。

应用场景:

  • 图像的基本操作(如创建、复制、裁剪)。

  • 绘制几何图形和文本。


2. Imgproc 模块

功能: 提供图像处理功能,包括图像滤波、几何变换、颜色空间转换等。

主要类和函数:

  • 图像滤波: cv.blur()cv.GaussianBlur()cv.medianBlur() 等。

  • 几何变换: cv.resize()cv.warpAffine()cv.warpPerspective() 等。

  • 颜色空间转换: cv.cvtColor()(如 BGR 转灰度、BGR 转 HSV)。

  • 阈值处理: cv.threshold()cv.adaptiveThreshold()

  • 边缘检测: cv.Canny()cv.Sobel()cv.Laplacian()

应用场景:

  • 图像平滑、锐化、边缘检测。

  • 图像缩放、旋转、仿射变换。

  • 图像二值化、颜色空间转换。


3. HighGUI 模块

功能: 提供高层 GUI 和媒体 I/O 功能,用于图像的显示和交互。

主要类和函数:

  • 图像显示: cv.imshow()cv.waitKey()cv.destroyAllWindows()

  • 视频捕获: cv.VideoCapture()cv.VideoWriter()

  • 鼠标和键盘事件: cv.setMouseCallback()

应用场景:

  • 显示图像和视频。

  • 捕获摄像头或视频文件。

  • 处理用户交互(如鼠标点击、键盘输入)。


4. Video 模块

功能: 提供视频分析功能,包括运动检测、目标跟踪等。

主要类和函数:

  • 背景减除: cv.createBackgroundSubtractorMOG2()cv.createBackgroundSubtractorKNN()

  • 光流法: cv.calcOpticalFlowPyrLK()

  • 目标跟踪: cv.TrackerKCF_create()cv.TrackerMOSSE_create()

应用场景:

  • 视频中的运动检测。

  • 目标跟踪(如行人、车辆跟踪)。


5. Calib3d 模块

功能: 提供相机校准和 3D 重建功能。

主要类和函数:

  • 相机校准: cv.calibrateCamera()cv.findChessboardCorners()

  • 3D 重建: cv.solvePnP()cv.reprojectImageTo3D()

应用场景:

  • 相机标定(用于去除镜头畸变)。

  • 3D 重建(如从 2D 图像恢复 3D 信息)。


6. Features2d 模块

功能: 提供特征检测和描述功能。

主要类和函数:

  • 特征检测: cv.SIFT_create()cv.ORB_create()cv.SURF_create()

  • 特征匹配: cv.BFMatcher()cv.FlannBasedMatcher()

  • 关键点绘制: cv.drawKeypoints()

应用场景:

  • 图像特征提取和匹配。

  • 图像拼接、物体识别。


7. Objdetect 模块

功能: 提供目标检测功能。

主要类和函数:

  • Haar 特征分类器: cv.CascadeClassifier()(用于人脸检测)。

  • HOG 特征分类器: 用于行人检测。

应用场景:

  • 人脸检测、行人检测。


8. ML 模块

功能: 提供机器学习算法。

主要类和函数:

  • 支持向量机 (SVM): cv.ml.SVM_create()

  • K 均值聚类 (K-Means): cv.kmeans()

  • 神经网络 (ANN): cv.ml.ANN_MLP_create()

应用场景:

  • 图像分类、聚类分析。


9. DNN 模块

功能: 提供深度学习功能,支持加载和运行预训练的深度学习模型。

主要类和函数:

  • 模型加载: cv.dnn.readNetFromCaffe()cv.dnn.readNetFromTensorflow()

  • 前向传播: net.forward()

应用场景:

  • 图像分类、目标检测、语义分割。


10. 其他模块

  • Flann: 快速近似最近邻搜索。

  • Photo: 图像修复和去噪。

  • Stitching: 图像拼接。

  • Shape: 形状匹配和距离计算。