【OpenCV】OpenCV算子功能分类

ops/2025/2/21 8:54:08/

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


http://www.ppmy.cn/ops/160195.html

相关文章

基于springboot校园健康系统的设计与实现(源码+文档)

大家好我是风歌,今天要和大家聊的是一款基于springboot的园健康系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于springboot校园健康系统的设计与实现的主要使用者管理员具有最高的权限,通…

【Linux】文件管理

个人主页~ 文件管理 一、回顾C文件管理二、系统文件IO0、序1、open函数flags标识位的方法 2、文件描述符fd3、重定向(一)dup2(二)标准输出vs标准错误 一、回顾C文件管理 有关于c文件操作的详细内容可阅拙作《C语言文件操作》 特…

Visual Studio Code 集成 Baidu Comate

文章目录 安装Baidu Comate插件 安装Baidu Comate插件 从左主侧栏中 点击 【扩展】这个图标,然后在上方输入栏中输入 baidu comate —>选中列出的Bai Comate —>点击 【安装】按钮,等待安装完毕…

rust学习六、简单的struct结构

一、结构定义 struct-翻译为结构/结构体 总体上有两种定义方式:带有详细属性名的;不带属性名(元组) 从工程角度出发,并不推荐不带属性的定义方式,因为不友好。希望rust后面不要搞类似好像很友好&#xff…

汉化VScode

第一步 打开开发工具, 点扩展按钮 第二步 在输入框内输入Chinese 第三步 点击(Chinese)中文插件 第四步 点击 install(安装) 安装好后, 关掉开发工具, 重新打开, 就汉化成功了 .

《DAMA数据管理知识体系指南》第一章 数据管理读书笔记

《DAMA数据管理知识体系指南》第一章 数据管理读书笔记 《DAMA数据管理知识体系指南》第一章围绕数据管理展开多方面论述,涵盖DAMA与DMBOK概述、数据管理基础概念、原则、挑战、战略及框架等内容,为数据管理专业人员提供全面指导,对理解和实践数据管理意义重大。 一、DAMA…

洛谷 P10726 [GESP202406 八级] 空间跳跃 C++ 完整题解

一、题目链接 P10726 [GESP202406 八级] 空间跳跃 - 洛谷 二、解题思路 我们要对输入的挡板进行排序,按高度从高到低(从小到大)。 排序之后s和t都要更新。 struct Baffle {int l, r;int h;int id; } b[1005];void Sort() {sort(b 1, b 1 n…

本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6

部署MindSearch到 hugging face Spaces上——L2G6 任务1 在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下,Space 名称中需要包含 MindSearch 关键词,请在必要的步骤以及成功的对话测试结果当中 实现过程如下: 2.1 MindSearch 简…