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

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


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

        3.1 认识图像数据

        3.2 图像滤波

        3.3 图像变换

        3.4 图像特征点提取

...

更多精彩内容,持续更新中......


大家如有任何技术问题,欢迎加入QQ技术群(117698356),进群一起交流讨论

图像处理是利用计算机对图像进行计算分析的技术,包括数字图像处理和计算机视觉两大技术领域。数字图像处理通过滤波、压缩、变换等算法对图像进行预处理;计算机视觉的目标是利用人工智能算法从图像中获取信息,比如图像识别、图像跟踪、图像测量等。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章是本书的编程基础篇,学习完这三章后,接下来的章节将正式对机器人的硬件构造进行讲解。

参考文献

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

你可能感兴趣的:(一起自学SLAM算法,图像处理,opencv,c++,自动驾驶,计算机视觉)