视觉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)

二、图像

相关推荐
老鼠只爱大米2 小时前
LeetCode经典算法面试题 #78:子集(回溯法、迭代法、动态规划等多种实现方案详细解析)
算法·leetcode·动态规划·回溯·位运算·子集
-Springer-2 小时前
STM32 学习 —— 个人学习笔记5(EXTI 外部中断 & 对射式红外传感器及旋转编码器计数)
笔记·stm32·学习
执着2592 小时前
力扣hot100 - 199、二叉树的右视图
数据结构·算法·leetcode
I_LPL2 小时前
day21 代码随想录算法训练营 二叉树专题8
算法·二叉树·递归
可编程芯片开发2 小时前
基于PSO粒子群优化PI控制器的无刷直流电机最优控制系统simulink建模与仿真
人工智能·算法·simulink·pso·pi控制器·pso-pi
cpp_25012 小时前
P8448 [LSOT-1] 暴龙的土豆
数据结构·c++·算法·题解·洛谷
lcj25112 小时前
深入理解指针(4):qsort 函数 & 通过冒泡排序实现
c语言·数据结构·算法
fie88892 小时前
基于MATLAB的转子动力学建模与仿真实现(含碰摩、不平衡激励)
开发语言·算法·matlab
唐梓航-求职中3 小时前
编程大师-技术-算法-leetcode-1472. 设计浏览器历史记录
算法·leetcode
_OP_CHEN3 小时前
【算法基础篇】(五十八)线性代数之高斯消元法从原理到实战:手撕模板 + 洛谷真题全解
线性代数·算法·蓝桥杯·c/c++·线性方程组·acm/icpc·高斯消元法