视觉SLAM十四讲:从理论到实践(Chapter5:相机与图像)

前言

学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可

目标

  1. 理解针孔相机的模型、内参与径向畸变参数。
  2. 理解一个空间点是如何投影到相机成像平面的。
  3. 掌握OpenCV的图像存储与表达方式。
  4. 学会基本的摄像头标定方法。

一、相机模型

1.1 针孔相机模型

针孔相机模型如下图所示:

O':主点

根据针孔相机模型和相似三角形原理,有:关系。为了消除负号,把像面翻转导共轭面位置即可获得:,整理得

成像平面到像素坐标:,(cx,cy)主点坐标,(dx,dy):像元尺寸。矩阵形式如下:

Z:深度,相机坐标系下三维空间点距离光心的距离。

K:内参矩阵。

世界坐标 --> 相机坐标 --> (投影成像) 归一化平面 --> 像素坐标系

T:变换矩阵

1.2 畸变模型

径向畸变:由透镜形状引起的畸变

  • 桶形畸变
  • 枕型畸变

切向畸变:组装时透镜和成像面不是严格平行引入的畸变。

畸变矫正模型:

畸变矫正的流程:

相机标定常用张正友标定法。

当使用Matlab或Opencv进行标定时,畸变系数的排列顺序:(k1,k2,p1,p2,k3)

单目相机成像过程总结:

1.3 双目相机模型

双目相机成像原理:

根据上图的几何关系,有以下关系:

整理后可得:d:视差(disparity),同一点在左右相机相面横坐标之差。

d最小为一个像素,所以双目相机模型的深度z具有最大值:fb

1.4 RGB-D相机模型

不需要计算深度,主动测量深度,按实现原理可分为两类:

  • 结构光(Structured Light)
  • 飞行时间法(Time-of-Flight, ToF)

二、图像

相关推荐
小陈phd1 分钟前
多模态大模型学习笔记(二十一)—— 基于 Scaling Law方法 的大模型训练算力估算与 GPU 资源配置
笔记·深度学习·学习·自然语言处理·transformer
老鼠只爱大米3 分钟前
LeetCode经典算法面试题 #215:数组中的第K个最大元素(快速选择、堆排序、计数排序等多种实现方案详解)
算法·leetcode·堆排序·快速选择·topk·数组中的第k个最大元素
丝斯20114 分钟前
AI学习笔记整理(75)——Python学习4
人工智能·笔记·学习
ID_180079054735 分钟前
小红书笔记详情API深度解析:数据获取与应用实践
笔记
2301_8166512210 分钟前
C++中的享元模式变体
开发语言·c++·算法
逆境不可逃12 分钟前
LeetCode 热题 100 之 35. 搜索插入位置 74. 搜索二维矩阵 34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
m0_5832031313 分钟前
C++中的访问者模式变体
开发语言·c++·算法
JulyLi201914 分钟前
RK3576 yolov8部署笔记
笔记·yolo
小帅学编程15 分钟前
英语学习笔记
java·笔记·学习
浅念-20 分钟前
C ++ 智能指针
c语言·开发语言·数据结构·c++·经验分享·笔记·算法