当前位置: 首页 > backend >正文

OpenCV中的重要、常用知识点汇总(图像处理、特征检测与匹配、图像分割与轮廓分析、视频处理与分析和机器学习与深度学习等)

OpenCV(Open Source Computer Vision Library)是一个广泛使用的开源计算机视觉和机器学习软件库,提供了丰富的功能模块,涵盖了图像处理、视频分析、计算机视觉、机器学习等多个领域。下面对一些重要、常用的 OpenCV 知识点汇总:

1. 图像基本操作

  • 图像读写

    • cv::imread():读取图像。
    • cv::imwrite():保存图像。
    • cv::imshow():显示图像。
    • cv::cvtColor():颜色空间转换(如 RGB 转灰度图)。
  • 图像属性

    • cv::Mat:图像数据存储结构,二维矩阵,支持各种图像类型(如灰度图、彩色图等)。
  • 图像处理基础

    • 图像大小:img.rowsimg.colsimg.size()
    • 通道数:img.channels()
    • 图像深度:img.depth()

2. 图像变换

  • 几何变换

    • cv::resize():图像缩放。
    • cv::rotate():图像旋转。
    • cv::warpAffine():仿射变换。
    • cv::warpPerspective():透视变换。
  • 图像裁剪与填充

    • 使用 cv::Rect 来裁剪图像。
    • cv::copyTo():用于复制图像区域。

3. 图像滤波

  • 平滑

    • cv::blur():均值滤波。
    • cv::GaussianBlur():高斯滤波。
    • cv::medianBlur():中值滤波。
    • cv::bilateralFilter():双边滤波(保持边缘的同时进行平滑)。
  • 边缘检测

    • cv::Canny():Canny 边缘检测。
    • cv::Sobel():Sobel 算子。
    • cv::Laplacian():拉普拉斯算子。

4. 图像特征检测与匹配

  • 角点检测

    • cv::cornerHarris():Harris 角点检测。
    • cv::goodFeaturesToTrack():Shi-Tomasi 角点检测。
  • 特征点检测

    • cv::ORB()cv::SIFT()cv::SURF():特征检测与描述符提取。
    • cv::AKAZE():快速的 AKAZE 特征。
  • 特征匹配

    • cv::BFMatcher():暴力匹配。
    • cv::FlannBasedMatcher():基于 FLANN 的匹配器。
    • cv::findHomography():基于 RANSAC 的单应性矩阵求解。

5. 图像分割与轮廓分析

  • 阈值化

    • cv::threshold():图像阈值化。
    • cv::adaptiveThreshold():自适应阈值化。
  • 轮廓检测

    • cv::findContours():查找轮廓。
    • cv::drawContours():绘制轮廓。
    • cv::approxPolyDP():多边形拟合。
  • 图像分水岭算法

    • cv::watershed():分水岭算法,图像分割。

6. 图像形态学操作

  • 基本形态学操作

    • cv::erode():腐蚀。
    • cv::dilate():膨胀。
    • cv::morphologyEx():开运算、闭运算等。
  • 结构元素

    • cv::getStructuringElement():获取结构元素。

7. 视频处理与分析

  • 视频读写

    • cv::VideoCapture():读取视频。
    • cv::VideoWriter():写入视频。
  • 背景分离与运动检测

    • cv::BackgroundSubtractorMOG2():背景减除。
    • cv::optFlow():光流法,运动检测。
  • 目标跟踪

    • cv::TrackerKCF::create():KCF 跟踪器。
    • cv::TrackerCSRT::create():CSRT 跟踪器。

8. 机器学习与深度学习

  • 支持向量机(SVM)

    • cv::ml::SVM::train():训练 SVM 模型。
    • cv::ml::SVM::predict():SVM 分类。
  • 决策树与随机森林

    • cv::ml::DTrees:决策树。
    • cv::ml::RandomTrees:随机森林。
  • 神经网络与深度学习

    • OpenCV DNN 模块:支持 Caffe、TensorFlow、Torch 等框架的模型加载和推理。
    • cv::dnn::readNet():加载模型。
    • cv::dnn::blobFromImage():将图像转换为网络输入。

9. 相机标定与立体视觉

  • 相机标定

    • cv::calibrateCamera():相机标定。
    • cv::findChessboardCorners():查找棋盘格角点。
  • 立体匹配

    • cv::StereoBM():块匹配算法。
    • cv::StereoSGBM():半全局块匹配算法。

10. 三维重建与点云处理

  • 立体匹配与深度图

    • cv::stereoCalibrate():立体标定。
    • cv::reprojectImageTo3D():将深度图重建为三维点云。
  • 结构光与激光扫描

    • 使用 cv::triangulatePoints() 进行三角测量。

11. OpenCV 与其他库的集成

  • 与 Qt 集成:OpenCV 可以与 Qt 配合使用,开发基于 GUI 的图像处理应用。
  • 与 GStreamer 集成:处理视频流时,OpenCV 与 GStreamer 的结合可以提升视频捕获和处理性能。

12. OpenCV 实用工具

  • 调试与优化

    • cv::getTickCount()cv::getTickFrequency():用于测量时间,性能优化。
  • 图像显示与保存

    • 支持多种格式,如 BMP、PNG、JPEG 等。

这些是 OpenCV 中的一些基本知识点,涵盖了图像处理、特征检测、视频分析、机器学习等方面。

http://www.xdnf.cn/news/10029.html

相关文章:

  • 强化学习的前世今生(五)— SAC算法
  • WPF的交互核心:命令系统(ICommand)
  • golang 实现基于redis的并行流量控制(计数锁)
  • Joern项目第三方库依赖分析
  • 系统架构设计综合知识与案例分析
  • 深入 RAG(检索增强生成)系统架构:如何构建一个能查资料的大语言模型系统
  • MCU STM32搭配存储SD NAND(贴片式T卡)于智能皮电手环(Galvanic Skin Response, GSR 手环)的全方位评测
  • 硬件工程师笔记——运算放大电路Multisim电路仿真实验汇总
  • 三格电子——如何解决消防设备联网问题
  • [JVM] JVM内存调优
  • 黑河流域30弧秒分辨率月尺度地表水及地下水灌溉量数据集(1981-2013)
  • Redis Sorted Set 深度解析:从原理到实战应用
  • GitLens 教学(学习更新中)
  • (一)微服务(垂直API)
  • SpringBoot+vue+SSE+Nginx实现消息实时推送
  • 0-EATSA-GNN:基于图节点分类师生机制的边缘感知和两阶段注意力增强图神经网络(code)
  • grounded_sam2 使用踩坑笔记
  • gbase8s数据库+mybatis问题记录
  • 【JUC】深入解析 JUC 并发编程:单例模式、懒汉模式、饿汉模式、及懒汉模式线程安全问题解析和使用 volatile 解决内存可见性问题与指令重排序问题
  • Java处理动态的属性:字段不固定、需要动态扩展的 JSON 数据结构
  • 爬虫--以爬取小说为例
  • android协程异步编程常用方法
  • B端产品经理如何快速完成产品原型设计
  • 【仿生机器人】机器人情绪系统的深度解析
  • 晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册
  • Redis 插入中文乱码键
  • Centos7安装gitlab
  • Vehicle HAL(1)--整体介绍
  • InnoDB中的锁
  • 龙虎榜——20250529