#笔记,方便日后忘记回看,仅总结,具体推导回看十四讲
先上图:

如图,现实世界中有一个P点和一个相机(光心),描述这个P点的空间坐标首先得有一个坐标系,那么以光心为原点O建一个坐标系,叫相机坐标系
那么就可以在相机坐标系下,设P坐标(x,y,z)和P的投影点P’(x’,y’,z’)。值得一提的是,P’(x’,y’,z’)坐落在物理成像平面像素平面
物理成像平面,像素平面是二维的,他们的坐标系并不一样:
物理成像平面在o’x’y’平面上;
像素平面的原点在那个黑灰色图的左上角(图片的左上角),横轴向右称为u轴,纵轴向下称为v轴。
这样就得到了P’的像素坐标P(u,v),称为Puv。

上面提到了相机坐标系,物理成像平面,像素平面,我都快绕蒙了(一会还有个P的世界坐标),那先讲讲他们的转换关系吧,这里只给出最终的转换公式,具体推导还是回去看十四讲吧…

其中的K是内参;R,t是外参;T可以看作是R,t的另一种表现形式(通过增加维度实现R,t整合得到的一个矩阵,目的是牺牲维度获取线性度,具体看slam十四讲的第三讲)

这样就得到了三个坐标的转换关系了,还没完,还有一个叫归一化坐标的坐标平面。在相机坐标系下,P有X, Y, Z 三个量,如果把它们投影到归一化平面 Z = 1 上,就会得到P的归一化坐标Pc(X/Z, Y/Z, 1)
个人理解,看回去第一张图,假如把PP’连接得到一条直线,PP’与归一化平面的交点,就是我们的Pc。像素平面上的P’这个像素,其实就是PP’这条直线上所有物体的一个投影。

最后得出像素坐标与归一化坐标的转换关系:Puv = KPc

P 的归一化坐标Pc经过内参,就对应到它的像素坐标:Puv = KPc 。

至此,四个坐标系:P的相机坐标系像素平面坐标系世界坐标系归一化坐标系,终于能够写完!

举个例子

已知点P的世界坐标系(Xw,Yw,Zw),像素坐标(u,v)怎么求?
一般的做法是:
世界坐标Pw—>相机坐标Pc—>归一化平面坐标—>物理平面坐标—>像素平面坐标p(像素坐标用小p)
1.Pc = R * Pw + t
2.p = K * Pc
(一般计算不考虑归一化平面和物理平面坐标,因为已经融合到内参了)

下图详细解析这个过程:

内参K涉及相机标定
“两部分相乘得到内参”——实际上这两部分涉及归一化平面,物理平面的转换,下面来详解。

相机坐标系——>归一化平面


归一化平面与相机坐标只相差了一个Zc:

归一化平面——>物理平面

物理平面实际上在光心后面(Z轴的负半轴方向上),但实际中一般可以将其放到光心前面来考虑(Z轴的正半轴方向上)。

归一化平面与物理平面有什么不同呢?
首先,他们都是一个平面,且都是三维点投影过来成像。
唯一的不同是:归一化平面位于Z=1的位置;物理平面位于Z= f 的位置。
如图所示:

显而易见,他们仅仅相差一个倍数 f 。于是直接上相似三角形:

很显然,很直接的一个倍数关系而已,举个例子:
对于归一化平面上的坐标(x,y)、物理平面上的坐标(u,v)
u = f * x
v = f * y
写成矩阵形式:
[ u ]
[ v ] =
[ 1 ]

[ f 0 0 ] [ x ]
[ 0 f 0 ] [ y ]
[ 0 0 1] [ 1 ]

物理平面——>像素平面

这里提及一下物理平面与像素坐标的转换,十四讲中没有详细讲这个内容。
如图,Oo是像素平面坐标原点,O1是物理平面的坐标原点。

二者有一个很重要的区别:
像素平面的基本单位是像素
物理平面的基本单位是毫米(mm)

因此二者的转换需要解决两个点:
(1)基本单位的转换
(2)原点坐标的平移

转换其实也很简单。
其实就是要知道,像素平面上的一个像素,对应了实际物理尺寸(物理平面)的多少毫米。

物理尺寸,举个栗子:
dx=2mm/像素
dy=3mm/像素(dx,dy就是转换的度量)
对于物理平面上的某个点(X,Y)=(10mm , 33mm)

10mm / (2mm/像素) = 5像素
33mm / (3mm/像素) = 11像素
得:(u,v) = (5+u0 , 10+v0)

设物理平面上的点坐标为(X,Y);像素平面上点的坐标是(u,v)
写成公式:

写成矩阵形式:

总结:

注:由于等式两边都是齐次坐标(齐次坐标乘以非零数含义不变),1/Zc可以约去。因为最终都需要保持最后一维的数是1 。


做了缩放后的图像,相机内参如何随之变化:
https://blog.csdn.net/qq_42518956/article/details/108072343

slam十四讲,第五讲中相机坐标系,像素平面坐标系,世界坐标系,归一化坐标系总结相关推荐

  1. 视觉SLAM十四讲笔记-7-2

    视觉SLAM十四讲笔记-7-2 文章目录 视觉SLAM十四讲笔记-7-2 估计相机运动 7.3 2D-2D:对极几何 7.3.1 对极约束 7.3.2 本质矩阵 7.3.3 单应矩阵 7.4 实践:对 ...

  2. [视觉SLAM十四讲]学习笔记1-刚体运动之旋转矩阵与变换矩阵

    [视觉SLAM十四讲]学习笔记1-刚体运动之旋转矩阵与变换矩阵 1点.向量和坐标系 2 坐标系间的欧式变换 2.1 欧式变换之旋转 2.2 欧式变换之平移 3 变换矩阵与齐次坐标 4 Eigen库的简 ...

  3. Ubuntu20/视觉SLAM十四讲踩坑记录

    Ubuntu/视觉SLAM十四讲踩坑记录 Ubuntu(20)/视觉SLAM十四讲踩坑记录: 共性问题: 1.安装OpenCV后,例程仍无法找到OpenCV文件 ch3 visualizeGeomet ...

  4. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机

    第四讲---第五讲学习笔记如下: 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义.指数和对数映射_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模 ...

  5. 视觉SLAM十四讲学习笔记-第五讲-相机模型

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  6. 视觉SLAM十四讲学习笔记——第五讲相机与图像

    文章目录 前言 一.相机模型 针孔相机模型 畸变模型 双目相机模型 RGB-D相机模型 二.图像 三.代码复现 总结 前言 研0学生,放假宅家,本科期间对其感兴趣,故开始学习. 一个人学有点无聊,可以 ...

  7. 视觉SLAM十四讲笔记-第五讲 相机与图像

    目录 Ⅰ.单目相机模型 一.针孔相机模型及公式推导 二.畸变模型 三.成像过程 Ⅱ.双目相机模型 Ⅲ.RGB-D 相机模型 Ⅳ.计算机中图像的表示 Ⅴ.牛刀小试-代码实践 一.读取图像数据(灰度图为例 ...

  8. 《视觉SLAM 十四讲》第五讲 实践:拼接点云-编译遇到的terminate called after throwing an instance of 'pcl::IOException问题及解决方法

    <视觉SLAM 十四讲>第五讲 实践:拼接点云-编译遇到的terminate called after throwing an instance of 'pcl::IOException问 ...

  9. 视觉SLAM十四讲学习记录 第五讲

    之前第四讲的地址 以及第四讲习题的地址 第五讲 相机与图像   前面两讲中,我们介绍了"机器人如何表示自身位姿"的问题,部分地解释了SLAM经典模型中变量的含义和运动方程部分.本讲 ...

最新文章

  1. JavaScript 复习之数据类型
  2. javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
  3. TensorFlowIO操作(一)----线程和队列
  4. python类型错误如何解决_在Python中 出现的错误类型以及解决办法
  5. how is odata metadata request served 故意把configuration file里的GM6改成GM61之后
  6. 【模式识别】特征评价和可分性判据实验报告及MATLAB仿真
  7. java后台调用SOE时,报异常java.io.IOException: Attempted read from closed stream
  8. Android模拟器无法启动
  9. rem 产生的小数像素问题
  10. python 文档字符串标准_Spyder docstrings文档字符串的标准
  11. 计算机攻防必学科目,网络攻防技术课程实验教学大纲doc.doc
  12. cvc降噪和主动降噪_音频知识:CVC降噪和ANC主动降噪的区别和应用
  13. ubuntu服务器系统安装教程,Ubuntu--服务器版本系统安装图解教程
  14. 会议安排问题C++贪心算法
  15. android sd 权限修改,真正免root的sd卡权限修改软件详细使用教程
  16. 瀚高DB兼容MySQL if函数
  17. 空间中球坐标与直角坐标的互化(matlab实现)
  18. UE4 让材质的UV动起来
  19. VMware的更新怎么这么恶心
  20. Connection has been closed BEFORE response异常

热门文章

  1. 斯佩里左右脑分工理论
  2. java用泰勒公式写余弦值_数学基础系列(三)----第一中值定理、微积分基本定理、牛莱公式、泰勒公式...
  3. 核心期刊 CA JST CSCD 含金量_如何选期刊投稿科研论文?如何修改科研论文、回复审稿意见?...
  4. xcode6 如何下载ios7模拟器
  5. 电脑桌面云便签怎么将一个便签分类里内容移动到另一个分类?
  6. 送给那些想辞职 自己开餐馆要当老板的朋友们
  7. 索尼录音笔怎么导出录音内容_商务、学生、记者:有能把录音文件转成文字文档的软件吗?...
  8. linux id和iduser,su userid 和 su - userid的区别
  9. 软件测试工程师对英语要求高吗,软件测试工程师面试英文自我介绍
  10. 苹果的舒适陷阱:避开死亡螺旋,需要强劲对手