【OPENCV】常用API函数

一、图像读写与显示

  1. cv2.imread() - 读取图像(支持JPG、PNG等格式)
  2. cv2.imwrite()- 保存图像到文件
  3. cv2.imshow() - 显示图像窗口
  4. cv2.waitKey() - 等待键盘输入(控制窗口显示时间)
  5. cv2.destroyAllWindows() - 关闭所有窗口
  6. cv2.VideoCapture() - 读取视频或摄像头帧
  7. cv2.VideoWriter() - 保存视频文件

二、图像处理基础

像素与颜色操作

  1. cv2.cvtColor() - 颜色空间转换(如BGR转灰度cv2.COLOR_BGR2GRAY
  2. cv2.split() - 分离图像通道(B/G/R)
  3. cv2.merge()- 合并通道
  4. cv2.inRange() - 按颜色范围创建掩膜(用于对象提取)
  5. cv2.threshold() - 全局阈值二值化
  6. cv2.adaptiveThreshold() - 自适应阈值(处理光照不均)

几何变换

  1. cv2.resize() - 调整图像尺寸(支持插值方法)
  2. cv2.warpAffine() - 仿射变换(平移、旋转、缩放)
  3. cv2.getRotationMatrix2D() - 生成旋转矩阵
  4. cv2.flip() - 翻转图像(水平/垂直)
  5. cv2.warpPerspective() - 透视变换(矫正倾斜文档)

三、图像滤波与增强

平滑与降噪

  1. cv2.blur() - 均值滤波(简单去噪)
  2. cv2.GaussianBlur() - 高斯滤波(消除高斯噪声)
  3. cv2.medianBlur() - 中值滤波(去除椒盐噪声)
  4. cv2.bilateralFilter() - 双边滤波(保边去噪)

边缘检测

  1. cv2.Sobel() - Sobel算子(检测水平/垂直边缘)
  2. cv2.Laplacian() - 拉普拉斯算子(二阶导数边缘检测)
  3. cv2.Canny() - Canny边缘检测(多阶段算法,最常用)

四、形态学操作

  1. cv2.erode() - 腐蚀(缩小前景物体)
  2. cv2.dilate()- 膨胀(扩大前景物体)
  3. cv2.morphologyEx() - 高级形态学操作(开运算cv2.MORPH_OPEN、闭运算等)
  4. cv2.getStructuringElement() - 创建形态学核(矩形/椭圆/十字形)

五、特征检测与描述

关键点检测

  1. cv2.goodFeaturesToTrack() - Shi-Tomasi角点检测
  2. cv2.cornerHarris() - Harris角点检测
  3. cv2.SIFT_create() - SIFT特征检测(需OpenCV contrib)
  4. cv2.ORB_create() - ORB特征(快速,适合实时应用)

特征匹配

  1. cv2.BFMatcher() - 暴力匹配器
  2. cv2.drawMatches() - 绘制匹配的关键点

六、图像分割与轮廓分析

轮廓检测

  1. cv2.findContours() - 查找图像轮廓
  2. cv2.drawContours() - 绘制轮廓
  3. cv2.contourArea() - 计算轮廓面积
  4. cv2.arcLength() - 计算轮廓周长
  5. cv2.boundingRect() - 获取轮廓的外接矩形
  6. cv2.minAreaRect() - 最小外接旋转矩形(检测倾斜对象)

图像分割

  1. cv2.watershed() - 分水岭算法(分割重叠对象)
  2. cv2.grabCut() - 交互式前景提取

七、直方图与颜色分析

  1. cv2.calcHist() - 计算图像直方图
  2. cv2.equalizeHist() - 直方图均衡化(增强对比度)
  3. cv2.compareHist() - 比较直方图相似度

八、视频分析

  1. cv2.createBackgroundSubtractorMOG2() - 动态背景减除(检测运动物体)
  2. cv2.calcOpticalFlowPyrLK() - 稀疏光流(跟踪关键点运动)

九、深度学习与模型推理

  1. cv2.dnn.readNetFromTensorflow() - 加载TensorFlow模型
  2. cv2.dnn.readNetFromONNX() - 加载ONNX模型
  3. cv2.dnn.blobFromImage() - 图像预处理(归一化、缩放)
  4. cv2.dnn.NMSBoxes() - 非极大值抑制(消除重复检测框)

十、绘图与标注

  1. cv2.line() - 绘制直线
  2. cv2.rectangle() - 绘制矩形框
  3. cv2.circle() - 绘制圆形
  4. cv2.putText() - 添加文字标签
  5. cv2.polylines() - 绘制多边形

十一、矩阵与数学运算

  1. cv2.add() - 矩阵加法(饱和运算)
  2. cv2.subtract() - 矩阵减法
  3. cv2.bitwise_and() - 按位与(用于掩膜操作)
  4. cv2.bitwise_or() - 按位或
  5. cv2.bitwise_not() - 按位非(取反)

十二、实用工具

  1. cv2.normalize() - 归一化矩阵值范围
  2. cv2.minMaxLoc() - 查找矩阵中的最大值/最小值及其位置
  3. cv2.copyMakeBorder() - 添加图像边框(填充操作)

补充高频函数

  1. cv2.HoughLines() - 霍夫直线检测
  2. cv2.HoughCircles() - 霍夫圆检测
  3. cv2.matchTemplate() - 模板匹配(查找图像中的目标)
  4. cv2.connectedComponents() - 连通域分析
  5. cv2.kmeans()** - K均值聚类(颜色量化)
  6. cv2.convertScaleAbs() - 调整亮度和对比度
  7. cv2.filter2D() - 自定义卷积核滤波
  8. cv2.pyrDown() - 图像金字塔降采样
  9. cv2.pyrUp() - 图像金字塔上采样
  10. cv2.remap() - 像素重映射(畸变矫正)
  11. cv2.phase() - 计算梯度方向
  12. cv2.magnitude() - 计算梯度幅值
  13. cv2.sepFilter2D() - 分离卷积(提升计算效率)
  14. cv2.inpaint() - 图像修复(去除水印)
  15. cv2.ellipse() - 绘制椭圆
  16. cv2.fillPoly() - 填充多边形区域
  17. cv2.getPerspectiveTransform() - 计算透视变换矩阵
  18. cv2.log() - 对数变换(增强暗部细节)
  19. cv2.exp() - 指数变换
  20. cv2.convertScaleAbs() - 调整图像亮度/对比度

扩展应用场景

  • 目标检测cv2.dnn模块 + YOLO/SSD模型
  • 人脸识别cv2.face模块 + LBPH/FisherFace算法
  • AR应用cv2.solvePnP()(3D姿态估计)
  • 图像拼接:特征匹配 + 透视变换

猜你喜欢

转载自blog.csdn.net/a8039974/article/details/147070695
今日推荐