一起自学SLAM算法:第3章-OpenCV图像处理

2023-05-16

 连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

        3.1 认识图像数据

        3.2 图像滤波

        3.3 图像变换

        3.4 图像特征点提取

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

第13章-机器人SLAM导航综合实战


图像处理是利用计算机对图像进行计算分析的技术,包括数字图像处理和计算机视觉两大技术领域。数字图像处理通过滤波、压缩、变换等算法对图像进行预处理;计算机视觉的目标是利用人工智能算法从图像中获取信息,比如图像识别、图像跟踪、图像测量等。OpenCV是一个实现数字图像处理和计算机视觉通用算法的开源跨平台库,其采用经实时性优化的C/C++代码编写,同时还支持Python、Matlab等接口调用。本书后续视觉SLAM相关章节中大量使用OpenCV库,因此本章需要让大家高屋建瓴,对OpenCV有一个整体的把握后,好对这些算法进行修改和创新。

由于第1章中利用虚拟机运行Ubuntu系统,并安装了ROS。又由于本书安装的ROS melodic默认就装好了OpenCV3的库,版本号是3.2.0,所以后续的例程将使用这个版本展开。但是从OpenCV3开始,像SIFT、SURF这些高级的算法被移到了opencv_contrib中。因此还需要重新安装一遍OpenCV,将opencv_contrib中的功能包含进来。安装也很简单,先去GitHub下载opencv-3.2.0和opencv_contrib-3.2.0的源码,然后放在一起编译安装就行了,关于这方面的教程网上很多,就不具体展开了,安装源码下载地址如下:

  • opencv-3.2.0下载:https://github.com/opencv/opencv/tree/3.2.0
  • opencv_contrib-3.2.0下载:https://github.com/opencv/opencv_contrib/tree/3.2.0

3.1 认识图像数据

        3.1.1 获取图像数据

        3.1.2 访问图像数据

3.2 图像滤波

        3.2.1 线性滤波

        3.2.2 非线性滤波

        3.2.3 形态学滤波

3.3 图像变换

        3.3.1 射影变换

        3.3.2 霍夫变换

        3.3.3 边缘检测

        3.3.4 直方图均衡

3.4 图像特征点提取

        3.4.1 SIFT特征点

        3.4.2 SURF特征点

        3.4.3 ORB特征点


本章从认识图像数据、图像滤波、图像变换和图像特征点提取逐步对OpenCV图像处理的知识进行学习。其中需要重点掌握图像特征点提取中的SIFT、SURF和ORB三种特征点。SIFT是最早被提出和广泛使用的特征,SURF是针对SIFT的改进版,ORB是针对SIFT和SURF在性能表现上更优的升级版。同时ORB特征也是后面视觉SLAM章节中ORB_SLAM算法的核心内容,所以一定要搞懂这里面的原理。

第1,2,3章是本书的编程基础篇,学习完这三章后,接下来的章节将正式对机器人的硬件构造进行讲解。

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一起自学SLAM算法:第3章-OpenCV图像处理 的相关文章

随机推荐

  • 数据结构之二叉树(C语言附详细代码)

    目录 一 xff0c 树和二叉树 1 树 定义 关于树的一些概念 2 二叉树 定义 特殊的二叉树 二叉树的性质 二叉树的存储结构 顺序结构 只适用于完全二叉树 二叉树的遍历 二 xff0c 二叉树操作代码 1 头文件 2 函数代码 创建二叉
  • 共享内存(进程间的通信方式)

    目录 1 共享内存的特点 2 函数接口 3 有关共享内存的系统命令 1 共享内存的特点 xff08 1 xff09 共享内存是一种最高效的进程间的通信方式 xff0c 进程可以直接读写内存 xff0c 而进程之间不需要通过任何数据的拷贝 x
  • Linux-C语言编写-TCP服务端接收消息流程(含代码)简介(1)

    目录 服务端 第一步socket 第二步struct sockaddr in 第三步 可以与第二步合为一个步骤 bind 第四步listen 第五步accept 第六步recv 第七步close 详细代码 服务端 第一步socket 1 操
  • Linux-C语言编写-TCP客户端发送消息流程(含代码)简介(2)

    目录 第一步socket 第二步struct sockaddr in 第三步connect 第四步send 第五步close 详细代码 第一步socket 1 操作 xff1a 创建流式套接字 xff1b 2 所用函数 xff1a sock
  • 基于Linux下的Nand (Nor) Flash读写速度测试

    https blog csdn net qq 39721016 article details 117993088 基于Linux下的Nand xff08 Nor xff09 Flash读写速度测试 1 打开内核测试模块2 编译内核 xff
  • 关于结构体赋值的一个小知识点

    一 xff0c 如果结构体中定义了一个字符数组的成员变量 xff0c struct test int num char ch 32 TEST 当我们需要给字符数组赋值时 xff0c 我们可能会选择下列某种方式进行初始化 xff1a 1 可以
  • lighttpd服务器搭建教程

    目录 一 xff0c 下载安装 二 xff0c 配置服务器 1 创建目录以及移动文件位置 2 修改配置文件 三 xff0c 运行测试 四 xff0c 常见错误 环境 xff1a linux虚拟机 xff1b 一 xff0c 下载安装 1 下
  • 牛客中C++/C语言的一道练习题详解

    解题思路及涉及知识点 xff1a 先简单判断一下 xff0c 程序最终是要打印k的值 xff1b k的值由两次循环中的fun函数的返回值决定 xff1b fun函数中 xff0c 变量c是静态的 xff1b fun函数中第三行代码a 61
  • QT基本组件与常用类

    目录 一 设计师 Designer xff08 掌握 xff09 二 布局 Layout 2 1 布局的基本使用 xff08 掌握 xff09 2 2 布局属性 xff08 掌握 xff09 2 3 伸展器 xff08 掌握 xff09 2
  • QT多窗口编程与文件IO编程

    目录 一 消息对话框 QMessageBox xff08 掌握 xff09 二 常用窗口类 xff08 掌握 xff09 三 主窗口类 QMainWindow xff08 重点 xff09 四 parent参数 xff08 掌握 xff09
  • QT数据库-网络编程-打包

    目录 一 讲解之前 二 数据库基本操作 三 模糊查询 二 编程之前 三 通信结构 一 设置应用图标 xff08 熟悉 xff09 二 Debug和Release模式 xff08 掌握 xff09 三 动态链接库 xff08 掌握 xff09
  • Visual Studio 2022 的安装和创建C++项目

    下面我们来讲一下如何下载安装VS 2022并且创建C 43 43 项目 1 下载 首先 xff0c 我们来到VS的微软官网下载地址 xff1a https visualstudio microsoft com zh hans vs 然后点击
  • 一起自学SLAM算法:写在前面

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:第1章-ROS入门必备知识

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.3 ROS系统架构

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 关于NAND FLASH调试的一点总结

    https www freesion com article 5033494883 很久没接触过 nandflash 驱动 xff0c 最近工作又摸了 xff0c 于是顺便整理总结一下 nandflash 在我看来算是比较落后的存储设备 x
  • 一起自学SLAM算法:1.6 ROS其他重要概念

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.7 ROS2.0展望

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:第2章-C++编程范式

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 2 1 C 43 43 工程组织结构 2 2 C 43 43 代码编译方法 2 3 C 43 43 编
  • 一起自学SLAM算法:第3章-OpenCV图像处理

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 3 1 认识图像数据 3 2 图像滤波 3 3 图像变换 3 4 图像特