【OpenCV】OpenCV算子功能分类

在 OpenCV 中,算子(Operators)可以根据功能分类为不同的类别,主要包括图像处理、特征检测、几何变换等。以下是 OpenCV 算子的主要分类:


1️⃣ 图像处理算子(Image Processing Operators)

用于对图像进行平滑、锐化、边缘检测等操作。

📌 滤波与去噪

  • cv2.blur() ------ 均值滤波
  • cv2.GaussianBlur() ------ 高斯滤波
  • cv2.medianBlur() ------ 中值滤波
  • cv2.bilateralFilter() ------ 双边滤波(保留边缘)
  • cv2.fastNlMeansDenoising() ------ 非局部均值去噪

📌 边缘检测

  • cv2.Sobel() ------ Sobel 算子
  • cv2.Scharr() ------ Scharr 算子(更精确的 Sobel 变种)
  • cv2.Laplacian() ------ 拉普拉斯算子
  • cv2.Canny() ------ Canny 边缘检测

2️⃣ 形态学算子(Morphological Operators)

用于处理二值图像(如去噪、骨架化、填充等)。

  • cv2.erode() ------ 腐蚀
  • cv2.dilate() ------ 膨胀
  • cv2.morphologyEx() ------ 形态学变换(包括开运算、闭运算、梯度、顶帽、黑帽)
    • cv2.MORPH_OPEN ------ 开运算(去除小噪点)
    • cv2.MORPH_CLOSE ------ 闭运算(填充小孔洞)
    • cv2.MORPH_GRADIENT ------ 形态梯度
    • cv2.MORPH_TOPHAT ------ 顶帽
    • cv2.MORPH_BLACKHAT ------ 黑帽

3️⃣ 颜色空间转换算子(Color Space Operators)

用于颜色空间变换。

  • cv2.cvtColor() ------ 颜色空间转换(RGB ↔ 灰度、HSV、YCrCb、Lab 等)
  • cv2.split() ------ 拆分通道
  • cv2.merge() ------ 合并通道

常见的转换模式:

  • cv2.COLOR_BGR2GRAY ------ BGR → 灰度
  • cv2.COLOR_BGR2HSV ------ BGR → HSV
  • cv2.COLOR_BGR2LAB ------ BGR → LAB
  • cv2.COLOR_BGR2YCrCb ------ BGR → YCrCb

4️⃣ 几何变换算子(Geometric Transform Operators)

用于图像的缩放、旋转、平移、透视变换等。

  • cv2.resize() ------ 图像缩放
  • cv2.warpAffine() ------ 线性变换(平移、旋转、仿射变换)
  • cv2.warpPerspective() ------ 透视变换
  • cv2.getRotationMatrix2D() ------ 生成旋转矩阵
  • cv2.getAffineTransform() ------ 生成仿射变换矩阵
  • cv2.getPerspectiveTransform() ------ 生成透视变换矩阵

5️⃣ 特征检测与匹配(Feature Detection & Matching)

用于检测关键点、描述子、匹配特征点等。

📌 角点检测

  • cv2.cornerHarris() ------ Harris 角点检测
  • cv2.goodFeaturesToTrack() ------ Shi-Tomasi 角点检测

📌 关键点检测

  • cv2.SIFT_create() ------ SIFT(尺度不变特征变换)
  • cv2.SURF_create() ------ SURF(加速鲁棒特征,OpenCV 3.4 以上需手动编译)
  • cv2.ORB_create() ------ ORB(快速、免专利)
  • cv2.BRISK_create() ------ BRISK
  • cv2.AKAZE_create() ------ AKAZE

📌 特征匹配

  • cv2.BFMatcher() ------ 暴力匹配
  • cv2.FlannBasedMatcher() ------ FLANN(快速最近邻搜索)

6️⃣ 轮廓检测(Contour Detection)

用于检测图像中的闭合轮廓。

  • cv2.findContours() ------ 轮廓检测
  • cv2.drawContours() ------ 画出轮廓
  • cv2.approxPolyDP() ------ 轮廓近似
  • cv2.convexHull() ------ 计算凸包
  • cv2.boundingRect() ------ 计算最小外接矩形
  • cv2.minEnclosingCircle() ------ 计算最小外接圆

7️⃣ 直线和形状检测(Line & Shape Detection)

用于检测图像中的直线、圆等几何形状。

  • cv2.HoughLines() ------ 经典霍夫变换检测直线
  • cv2.HoughLinesP() ------ 概率霍夫变换(更快)
  • cv2.HoughCircles() ------ 霍夫圆检测
  • cv2.fitEllipse() ------ 拟合椭圆
  • cv2.fitLine() ------ 拟合直线

8️⃣ 直方图处理(Histogram Processing)

用于图像对比度增强、均衡化等。

  • cv2.calcHist() ------ 计算直方图
  • cv2.equalizeHist() ------ 直方图均衡化
  • cv2.createCLAHE() ------ 自适应直方图均衡化(CLAHE)

9️⃣ 机器学习相关(ML & DNN)

📌 传统机器学习

  • cv2.ml.KNearest_create() ------ kNN
  • cv2.ml.SVM_create() ------ SVM
  • cv2.ml.DTrees_create() ------ 决策树
  • cv2.ml.ANN_MLP_create() ------ 多层感知机(神经网络)

📌 深度学习(DNN 模块)

  • cv2.dnn.readNet() ------ 读取预训练神经网络
  • cv2.dnn.blobFromImage() ------ 预处理图像以输入神经网络

🔟 视频处理(Video Processing)

用于视频的帧处理、背景建模等。

  • cv2.VideoCapture() ------ 读取视频/摄像头
  • cv2.VideoWriter() ------ 保存视频
  • cv2.calcOpticalFlowPyrLK() ------ Lucas-Kanade 光流
  • cv2.calcOpticalFlowFarneback() ------ Farneback 光流
  • cv2.createBackgroundSubtractorMOG2() ------ 背景建模

📝 总结

类别 主要算子
图像处理 滤波、边缘检测(Sobel、Canny)
形态学处理 腐蚀、膨胀、开闭运算
颜色空间转换 cvtColor()(RGB ↔ HSV)
几何变换 resize()warpAffine()
特征检测 Harris、SIFT、ORB
轮廓检测 findContours()drawContours()
形状检测 霍夫变换、椭圆拟合
直方图处理 直方图均衡化(CLAHE)
机器学习 SVM、kNN、DNN
视频处理 VideoCapture()、光流

相关推荐
紫雾凌寒1 小时前
计算机视觉基础|从 OpenCV 到频域分析
深度学习·opencv·计算机视觉·傅里叶变换·频域分析
小屁孩大帅-杨一凡2 小时前
如何实现使用DeepSeek的CV模型对管道内模糊、低光照或水渍干扰的图像进行去噪、超分辨率重建。...
图像处理·人工智能·opencv·计算机视觉·超分辨率重建
高力士等十万人4 小时前
OpenCV形态学操作
人工智能·python·opencv·计算机视觉
道剑剑非道4 小时前
QT开发技术 【opencv图片裁剪,平均哈希相似度判断,以及获取游戏窗口图片】
qt·opencv·哈希算法
埃菲尔铁塔_CV算法4 小时前
基于 C++ OpenCV 图像灰度化 DLL 在 C# WPF 中的拓展应用
c++·图像处理·人工智能·opencv·机器学习·计算机视觉·c#
游王子4 小时前
OpenCV(5):图像形态学操作
人工智能·opencv·计算机视觉
道剑剑非道4 小时前
QT开发技术 [opencv加载onnx模型,dnn推理]
qt·opencv·dnn
AI技术控15 小时前
计算机视觉算法实战——表面缺陷检测(主页有源码)
计算机视觉
Erekys15 小时前
视觉分析之边缘检测算法
人工智能·计算机视觉·音视频
唔皇万睡万万睡15 小时前
数字水印嵌入及提取系统——基于小波变换GUI
人工智能·计算机视觉