一、图像读写与显示
-
cv2.imread()
- 读取图像(支持JPG、PNG等格式) -
cv2.imwrite()
- 保存图像到文件 -
cv2.imshow()
- 显示图像窗口 -
cv2.waitKey()
- 等待键盘输入(控制窗口显示时间) -
cv2.destroyAllWindows()
- 关闭所有窗口 -
cv2.VideoCapture()
- 读取视频或摄像头帧 -
cv2.VideoWriter()
- 保存视频文件
二、图像处理基础
像素与颜色操作
-
cv2.cvtColor()
- 颜色空间转换(如BGR转灰度cv2.COLOR_BGR2GRAY
) -
cv2.split()
- 分离图像通道(B/G/R) -
cv2.merge()
- 合并通道 -
cv2.inRange()
- 按颜色范围创建掩膜(用于对象提取) -
cv2.threshold()
- 全局阈值二值化 -
cv2.adaptiveThreshold()
- 自适应阈值(处理光照不均)
几何变换
-
cv2.resize()
- 调整图像尺寸(支持插值方法) -
cv2.warpAffine()
- 仿射变换(平移、旋转、缩放) -
cv2.getRotationMatrix2D()
- 生成旋转矩阵 -
cv2.flip()
- 翻转图像(水平/垂直) -
cv2.warpPerspective()
- 透视变换(矫正倾斜文档)
三、图像滤波与增强
平滑与降噪
-
cv2.blur()
- 均值滤波(简单去噪) -
cv2.GaussianBlur()
- 高斯滤波(消除高斯噪声) -
cv2.medianBlur()
- 中值滤波(去除椒盐噪声) -
cv2.bilateralFilter()
- 双边滤波(保边去噪)
边缘检测
-
cv2.Sobel()
- Sobel算子(检测水平/垂直边缘) -
cv2.Laplacian()
- 拉普拉斯算子(二阶导数边缘检测) -
cv2.Canny()
- Canny边缘检测(多阶段算法,最常用)
四、形态学操作
-
cv2.erode()
- 腐蚀(缩小前景物体) -
cv2.dilate()
- 膨胀(扩大前景物体) -
cv2.morphologyEx()
- 高级形态学操作(开运算cv2.MORPH_OPEN
、闭运算等) -
cv2.getStructuringElement()
- 创建形态学核(矩形/椭圆/十字形)
五、特征检测与描述
关键点检测
-
cv2.goodFeaturesToTrack()
- Shi-Tomasi角点检测 -
cv2.cornerHarris()
- Harris角点检测 -
cv2.SIFT_create()
- SIFT特征检测(需OpenCV contrib) -
cv2.ORB_create()
- ORB特征(快速,适合实时应用)
特征匹配
-
cv2.BFMatcher()
- 暴力匹配器 -
cv2.drawMatches()
- 绘制匹配的关键点
六、图像分割与轮廓分析
轮廓检测
-
cv2.findContours()
- 查找图像轮廓 -
cv2.drawContours()
- 绘制轮廓 -
cv2.contourArea()
- 计算轮廓面积 -
cv2.arcLength()
- 计算轮廓周长 -
cv2.boundingRect()
- 获取轮廓的外接矩形 -
cv2.minAreaRect()
- 最小外接旋转矩形(检测倾斜对象)
图像分割
-
cv2.watershed()
- 分水岭算法(分割重叠对象) -
cv2.grabCut()
- 交互式前景提取
七、直方图与颜色分析
-
cv2.calcHist()
- 计算图像直方图 -
cv2.equalizeHist()
- 直方图均衡化(增强对比度) -
cv2.compareHist()
- 比较直方图相似度
八、视频分析
-
cv2.createBackgroundSubtractorMOG2()
- 动态背景减除(检测运动物体) -
cv2.calcOpticalFlowPyrLK()
- 稀疏光流(跟踪关键点运动)
九、深度学习与模型推理
-
cv2.dnn.readNetFromTensorflow()
- 加载TensorFlow模型 -
cv2.dnn.readNetFromONNX()
- 加载ONNX模型 -
cv2.dnn.blobFromImage()
- 图像预处理(归一化、缩放) -
cv2.dnn.NMSBoxes()
- 非极大值抑制(消除重复检测框)
十、绘图与标注
-
cv2.line()
- 绘制直线 -
cv2.rectangle()
- 绘制矩形框 -
cv2.circle()
- 绘制圆形 -
cv2.putText()
- 添加文字标签 -
cv2.polylines()
- 绘制多边形
十一、矩阵与数学运算
-
cv2.add()
- 矩阵加法(饱和运算) -
cv2.subtract()
- 矩阵减法 -
cv2.bitwise_and()
- 按位与(用于掩膜操作) -
cv2.bitwise_or()
- 按位或 -
cv2.bitwise_not()
- 按位非(取反)
十二、实用工具
-
cv2.normalize()
- 归一化矩阵值范围 -
cv2.minMaxLoc()
- 查找矩阵中的最大值/最小值及其位置 -
cv2.copyMakeBorder()
- 添加图像边框(填充操作)
补充高频函数
-
cv2.HoughLines()
- 霍夫直线检测 -
cv2.HoughCircles()
- 霍夫圆检测 -
cv2.matchTemplate()
- 模板匹配(查找图像中的目标) -
cv2.connectedComponents()
- 连通域分析 -
cv2.kmeans()
** - K均值聚类(颜色量化) -
cv2.convertScaleAbs()
- 调整亮度和对比度 -
cv2.filter2D()
- 自定义卷积核滤波 -
cv2.pyrDown()
- 图像金字塔降采样 -
cv2.pyrUp()
- 图像金字塔上采样 -
cv2.remap()
- 像素重映射(畸变矫正) -
cv2.phase()
- 计算梯度方向 -
cv2.magnitude()
- 计算梯度幅值 -
cv2.sepFilter2D()
- 分离卷积(提升计算效率) -
cv2.inpaint()
- 图像修复(去除水印) -
cv2.ellipse()
- 绘制椭圆 -
cv2.fillPoly()
- 填充多边形区域 -
cv2.getPerspectiveTransform()
- 计算透视变换矩阵 -
cv2.log()
- 对数变换(增强暗部细节) -
cv2.exp()
- 指数变换 -
cv2.convertScaleAbs()
- 调整图像亮度/对比度
扩展应用场景
- 目标检测:
cv2.dnn
模块 + YOLO/SSD模型 - 人脸识别:
cv2.face
模块 + LBPH/FisherFace算法 - AR应用:
cv2.solvePnP()
(3D姿态估计) - 图像拼接:特征匹配 + 透视变换