【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()、光流

相关推荐
兮℡檬,14 小时前
答题卡识别判卷
开发语言·python·计算机视觉
Techblog of HaoWANG14 小时前
目标检测与跟踪(12)-- Jetson Xavier NX / Orin NX ROS及视觉检测环境配置、移植、部署指南
人工智能·目标检测·计算机视觉·机器人·视觉检测·控制
renhongxia117 小时前
学习如何聚合零样本大型语言模型代理以进行企业披露分类
学习·语言模型·分类
zl_vslam18 小时前
SLAM中的非线性优-3D图优化之IMU预积分SE3推导(二十一)
人工智能·算法·计算机视觉·3d
当交通遇上机器学习19 小时前
IEEEICDE2025 | TimeKD:融合大语言模型与知识蒸馏的时间序列预测方法
人工智能·深度学习·机器学习·计算机视觉·语言模型
sali-tec19 小时前
C# 基于OpenCv的视觉工作流-章43-轮廓匹配
图像处理·人工智能·opencv·算法·计算机视觉
Fleshy数模20 小时前
玩转OpenCV:从角点检测到图像拼接的实战之旅
人工智能·opencv·计算机视觉
大连好光景21 小时前
静态融合特征做分类任务(监督)
深度学习·机器学习·分类
Daydreamer .1 天前
VisionMaster使用OpenCV发现的问题
opencv·c#·visionmaster
nap-joker1 天前
图神经网络与多模态DTI特征用于精神分裂症分类:来自脑网络分析与基因表达的洞见
人工智能·神经网络·分类·图卷积神经网络·图注意力机制·单分支、双分支图卷积网络