SLAM十四讲——第五讲相机与图像实践部分

目录

opencv

        简明介绍

        官方手册

        软件的安装方式(重点)

                方法一:安装完ROS之后就自动地将opencv安装了,以下命令是安装ROS的方法

                方法二:ubuntu software——没见过哪个程序员会打开

                方法三:apt install

                方法四:snap install

                方法五:dpkg -i xxx.deb

                方法六:source源码编译安装

        库的安装

        库的调用

示例程序分析 

        图像去畸

        双目模型

RGB-D

相机标定

Docker


opencv

        简明介绍

                对图像进行一些处理,如对图像进行裁剪、旋转、像素值的归一化,去噪,加噪声、像素统计学、读取视频。

        官方手册

                OpenCV: OpenCV modules

        软件的安装方式(重点)

                方法一:安装完ROS之后就自动地将opencv安装了,以下命令是安装ROS的方法

                        wget http://fishros.com/install -O fishros && . fishros

                方法二:ubuntu software——没见过哪个程序员会打开

                方法三:apt install

                        特点1、安全性、依赖性、库版本老旧、依赖冲突

                                   2、常会遇到冲突问题:换源、update、upgrade、手动卸载一些库、安装                                            一些依赖。。。无法一概而论,具体情况具体分析。

                方法四:snap install

                        特点1、容器化、安全、独立、自动更新——很像docker

                                   2、比较时髦的方法,目前身边没人用(其实Ubuntu16已存在)

                方法五:dpkg -i xxx.deb

                        特点安装一些外部工具(源中没有收录的)由软件官网提供如:浏览器、IDE、                                     网盘、音乐、视频、录屏、文本编辑等

                方法六:source源码编译安装

                        cmake

                        make

                        make install

                        特点:安装细则会在cmakelists中,很清楚,很明了,source的版本也可以选择

snap的基本用法 与apt的区别:snap vs apt_snap apt_devilyouwei的博客-CSDN博客

Docker 学习视频推荐:

https://www.bilibili.com/video/BV11L411g7U1/?spm_id_from=333.337.search-card.all.click

        库的安装

                方法一:apt install

                方法二:source 源码安装

                         https://github.com/opencv/opencv

        库的调用

                 1、find_package(OpenCV)       

                 2、cmake-tools自动生成?       

 

 查看OpenCV的cmake配置文档OpenCVConfig.cmake

将文档中的三行加入到编译大型工程项目的CMakelists!

示例程序分析 

        图像去畸

        双目模型

void showPointCloud(
    const vector<Vector4d, Eigen::aligned_allocator<Vector4d>> &pointcloud);

vector容器中存放的是3D点云数据,Vector4d中存放的是(x,y,z,灰度值), Eigen::aligned_allocator<Vector4d>是为了利用Eigen库的加速计算,是一种数据对齐的方式!

cv::Ptr<cv::StereoSGBM> sgbm = cv::StereoSGBM::create(
        0, 96, 9, 8 * 9 * 9, 32 * 9 * 9, 1, 63, 10, 100, 32);

 匹配算法的求解器!

 cv::Mat disparity_sgbm, disparity;

定义两个空图像!

sgbm->compute(left, right, disparity_sgbm);

由左右图像计算视差disparity_sgbm!

disparity_sgbm.convertTo(disparity, CV_32F, 1.0 / 16.0f);

计算偏执后的视差disparity!

vector<Vector4d, Eigen::aligned_allocator<Vector4d>> pointcloud;

生成点云!

// 根据双目模型计算 point 的位置
double x = (u - cx) / fx;
double y = (v - cy) / fy;//计算像平面的坐标
double depth = fx * b / (disparity.at<float>(v, u));//由左右图像计算深度z
point[0] = x * depth;//归一化平面深度信息还原
point[1] = y * depth;
point[2] = depth;

看注释即可!

RGB-D

要在rgb-d相机的CMakelists.txt文件中,加入fmt的引用,否则在make时会报错!

 相机标定

  1. Kalibr 开源ROS标定工具: https://github.com/ethz-asl/kalibr
  2. Kalibr 标定流程:https://www.bilibili.com/video/BV1gA411w7EM/?spm_id_from=333.337.search-card.all.click&vd_source=0da0b7e545e1a65e82836ac4eff73077
  3. 张正友标定法介绍:https://www.bilibili.com/video/BV1k3411T73d/?spm_id_from=333.337.search-card.all.click&vd_source=0da0b7e545e1a65e82836ac4eff73077
  4. matlab 工具标定相机流程:https://blog.csdn.net/weixin_44709392/article/details/124486048
  5. Opencv 标定流程:https://blog.csdn.net/weixin_51229250/article/details/119976417
  6. OpenCV的简单使用教程与基本函数(62条消息) OpenCV的简单使用教程与基本函数(C++版本)_c++ opencv教程_Great Bruce Young的博客-CSDN博客

了解如何使用matlab、opencv标定相机,弄清楚各种标定方法的精度和流程区别!

Docker

https://www.bilibili.com/video/BV11L411g7U1/?spm_id_from=333.337.search-card.all.click

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值