SLAM14讲之第五讲--像素坐标系、畸变、双目相机深度求解

12 篇文章 0 订阅
2 篇文章 0 订阅
本文详细介绍了从三维空间点到像素坐标的变换过程,涉及相机内参数矩阵、径向和切向畸变矫正,并提及了深度在变换中的作用。通过OpenCV库,可以实现图像的去畸变操作,同时提到了双目相机如何通过视差估计深度信息。
摘要由CSDN通过智能技术生成

像素坐标系

在这里插入图片描述
由相似三角形的定义可得:
在这里插入图片描述
这是相对于成像平面的坐标变化,我们实际上所得到的图片还要经历一层成像平面到像素平面的变换,实际上就是相差了一个缩放和原点的平移
如此我们定义:u为横轴向右与x轴平行,v为纵轴向下与y轴平行。
在这里插入图片描述
代入可得
在这里插入图片描述
化为矩阵表示形式:
在这里插入图片描述
我们把中间的量组成的矩阵称为相机的内参数矩阵(Camera Intrinsics) K。Z代表一张点对于成像平面的垂直距离,所以需要深度图来估计,如RGB-D。
在这里插入图片描述

畸变

径向畸变

透镜自身的形状对光线传播的影响所产生的误差。
这类畸变可以用和距中心距离有关的二次及高次多项式函数进行纠正:
在这里插入图片描述

切向畸变

是在机械组装过程中,透镜和成像平面不可能完全平行所造成的误差。
在这里插入图片描述

  1. 将三维空间点投影到归一化图像平面。设它的归一化坐标为 (x,y)T(即除以Z后的坐标点,将三维的非齐次的坐标去掉最后一个1,变成二维的齐次坐标)。
  2. 对归一化平面上的点进行径向畸变和切向畸变纠正
    在这里插入图片描述

深度

在上述的过程中,不论是内参矩阵对于相机坐标系到像素坐标系的变化,都离不开一个值,就是深度Z。单目相机由于其投影射线上的所以点的投影都是一个点的原因,无法估计深度。

双目相机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
d称之为视差。

Opencv

在OpenCV 的彩色图像中,通道的默认顺序是 B,G,R。

  1. 安装

Opencv(http://opencv.org/downloads.html)

sudo apt install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev
cd opencv_download_file
sudo mkdir build && cd build
make ..
sudo make install
  1. example,这里只给出CMakeLists.txt,官网给的代码运行不出来的话,可以参考。
    一、图像去畸变
cmake_minimum_required(VERSION 2.8)

project(imageBasics)

find_package(OpenCV REQUIRED)
include_directories($(OpenCV_INCLUDE_DIRS))

add_executable(imageBasics imageBasics.cpp)
target_link_libraries(imageBasics ${OpenCV_LIBS})

add_executable(distord_image distord_image.cpp)
# 链接OpenCV库
target_link_libraries(distord_image ${OpenCV_LIBS})

二、双目相机点云地图的建立
三、RGB-D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vigigo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值