像素坐标系、图像坐标系、相机坐标系、世界坐标系

文章目录

  • 像素坐标系、图像坐标系、相机坐标系、世界坐标系
    • 1、图像坐标系 → \rightarrow →​像素坐标系
    • 2、图像坐标系 → \rightarrow →​相机坐标系
    • 3、相机坐标系 → \rightarrow →​世界坐标系
    • 总结
    • References

上周发现对这四个坐标系之间的转换没有一个清晰的概念,这个下午写第一篇博客重新学习记录一下。

图片来源:《视觉SLAM十四讲》第二版P91


1、图像坐标系 → \rightarrow →​像素坐标系

像素坐标系通常的定义方式是:原点 o ′ o~' o ′位于图像的左上角, u u u轴向右与 x x x轴平行, v v v轴向下与 y y y轴平行。

图像坐标系在这里指的是成像平面坐标系,在《视觉SLAM十四讲》中像素坐标系和图像坐标系是一样的(第一版 P72)。

像素坐标系与图像坐标系之间相差了一个缩放和平移,由此图像坐标系 P ′ P~' P ′的坐标 [ X ′ , Y ′ ] [X~',Y~'] [X ′,Y ′]与像素坐标 [ u , v ] [u,v] [u,v]的关系为:
{ u = α X ′ + c x v = β Y ′ + c y \begin{cases} u=\alpha X'+c_x \\ v=\beta Y'+c_y \end{cases} {u=αX′+cx​v=βY′+cy​​


2、图像坐标系 → \rightarrow →​相机坐标系

由于三角形相似关系有(去掉负号):
Z f = X X ′ = Y Y ′ {Z \over f} = {X \over {X'}} = {Y \over {Y'}} fZ​=X′X​=Y′Y​
所以式(1)变为:
{ u = f x X Z + c x v = f y Y Z + c y \begin{cases} u=f_x {X \over Z}+c_x \\ v=f_y {Y \over Z}+c_y \end{cases} {u=fx​ZX​+cx​v=fy​ZY​+cy​​
转换为矩阵形式为:
( u v 1 ) = 1 Z ( f x 0 c x 0 f y c y 0 0 1 ) ( X Y Z ) ≜ 1 Z K P \left(\begin{array}{l} u \\ v \\ 1 \end{array}\right)={1 \over Z} \left(\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right)\left(\begin{array}{l} X \\ Y \\ Z \end{array}\right) \triangleq \boldsymbol{{1 \over Z}KP} ⎝ ⎛​uv1​⎠ ⎞​=Z1​⎝ ⎛​fx​00​0fy​0​cx​cy​1​⎠ ⎞​⎝ ⎛​XYZ​⎠ ⎞​≜Z1​KP

Z ( u v 1 ) = ( f x 0 c x 0 f y c y 0 0 1 ) ( X Y Z ) ≜ K P Z\left(\begin{array}{l} u \\ v \\ 1 \end{array}\right)=\left(\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right)\left(\begin{array}{l} X \\ Y \\ Z \end{array}\right) \triangleq \boldsymbol{KP} Z⎝ ⎛​uv1​⎠ ⎞​=⎝ ⎛​fx​00​0fy​0​cx​cy​1​⎠ ⎞​⎝ ⎛​XYZ​⎠ ⎞​≜KP

其中, K K K为内参数矩阵(Camera Intrinsics)。


3、相机坐标系 → \rightarrow →​世界坐标系

齐次坐标下,相机坐标和世界坐标的关系为
p c = T c w p w = T w c − 1 p w p_c=T_{cw}p_w=T_{wc}^{-1}p_w pc​=Tcw​pw​=Twc−1​pw​
非齐次坐标下,相机坐标和世界坐标的关系为
P c = R P w + t P_c=RP_w+t Pc​=RPw​+t
其中,相机的位姿 R , t R,t R,t称为相机的外参数矩阵(Camera Extrinsics)。

所以式(4)转化为
Z P u v = Z [ u v 1 ] ≜ K P = K ( R P w + t ) = K T P w Z{P_{uv}} = Z\left[ {\begin{matrix} u \cr v \cr 1 \cr \end{matrix} } \right] \triangleq \boldsymbol{KP} = \boldsymbol{K(R{P_w} + t) = KT{P_w}} ZPuv​=Z⎣ ⎡​uv1​⎦ ⎤​≜KP=K(RPw​+t)=KTPw​
注意最后一个式子隐含了一次其次坐标到非齐次坐标的转换。


总结

最后简单归纳关系图如下:

单目相机的成像过程(P90):


References

像素坐标系与图像坐标系_在路上DI蜗牛的博客-CSDN博客_图像坐标系

世界坐标系,相机坐标系,图像坐标系,像素坐标系的转换 - 知乎 (zhihu.com)

像素坐标系、图像坐标系、相机坐标系、世界坐标系相关推荐

  1. 关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解

    关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解 前言 一.各坐标系的含义 二.坐标系转换 1.世界坐标系与相机坐标系(旋转与平移) 2.相机坐标系与图像坐标系(透视) 3.图像坐标系与像 ...

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

    #笔记,方便日后忘记回看,仅总结,具体推导回看十四讲 先上图: 如图,现实世界中有一个P点和一个相机(光心),描述这个P点的空间坐标首先得有一个坐标系,那么以光心为原点O建一个坐标系,叫相机坐标系. ...

  3. 世界坐标系/相机坐标系/图像坐标系 转换

    目录 一.各坐标系简要介绍 二.坐标系转换 2.1 世界坐标系转为相机坐标系 2.2 相机坐标系转为物理图像坐标系 2.3 物理图像坐标系转为图像坐标系 2.4 总结 2.5 为什么要使用齐次坐标 参 ...

  4. 相机标定 2D图像到3D坐标转换 像素坐标转到世界坐标时相机坐标系中的Zc值求解:线结构光平面标定法

    线激光平面拟合图像 在单目视觉中会丢失掉焊缝的深度信息,为了后续求解焊缝的世界坐标则需要先求解出焊缝的深度信息才可以进行坐标计算. 在α和β平面分别对标定板进行拍照多幅图片(我采集了13幅)进行相机标 ...

  5. 相机光心在世界坐标系下的坐标(相机坐标系原点在世界坐标系下的坐标与c2w的关系)

    例子 如下图所示,右边的坐标系是相机坐标系,左边的是世界坐标系. 假设他们只有 x 轴方向上的平移. 相机坐标系原点在相机坐标系下的坐标是 (0,0,0), 假设相机坐标系在世界坐标系沿 x 轴正方向 ...

  6. 小杨说事-基于Halcon的多相机坐标系统一原理个人理解

    大家好呀,时隔两年小杨说事系列又开始更新了,打工人在苦逼的自动化行业里面挣扎着,工作了三年看到还有很多朋友在学习机器视觉,尤其是定位类型项目,旋转中心,分离轴,多相机标定等概念还是剪不断,里还乱的状态 ...

  7. 【Android Camera1】Camera1 对焦(一) UI坐标系和相机坐标系

    一.简介 本篇文章为对焦系列文章的第一篇:主要讲解UI坐标系和相机坐标系.后续其他相关文章如下: 相关文章: Camera1 对焦(二) 对焦区域计算的几种方式(Touch to Focus) Cam ...

  8. 【自动驾驶】16.计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换

    本篇博客为转载,我对其中的细节添加了一些说明. 原文链接:https://blog.csdn.net/chentravelling/article/details/53558096 0.前言 最近整理 ...

  9. 单目视觉标定:世界坐标系、相机坐标系、图像坐标系、像素坐标系——简单粗暴,粗暴

    转:https://blog.csdn.net/chentravelling/article/details/53558096 1.正文 图像处理.立体视觉等等方向常常涉及到四个坐标系:世界坐标系.相 ...

最新文章

  1. vb6 数据自动生成excel文件_Excel随机生成数据
  2. 游戏框架View以及简单的运用
  3. Geoffrey Hinton那篇备受关注的Capsule论文
  4. 一个好用的基于若干静态图片生成gif图片的在线工具
  5. Highcharts图表-ajax-获取json数据生成图表
  6. C++编程笔记:贪心算法实现活动安排问题
  7. 你经常使用计算机吗这样的问题其主要缺点是,2015年10月自考02326操作系统模拟试题及答案3...
  8. linux目标机无法连接到网络,linux 安装了xunsearch服务,但是PHP连接显示:目标计算机积极拒绝...
  9. matlab中if语句多个_MATLAB入门教程 | 003基础知识
  10. java swing有趣编程_java(swing编程)如何这个简单效果?
  11. 税控服务器管理系统已签名未上传,增值税发票管理系统升级后发票上传失败、勾选平台插件设置、勾选签名问题、勾选规则等热点问题...
  12. Abaqus帮助文档翻译(一)快速介绍有限元
  13. Abaqus槽钢杆受力有限元分析
  14. MFC之打开(开发)映美精相机
  15. Qt进程-QProcess使用总结
  16. MDK 出现#68-D: integer conversion resulted in a change of sign
  17. 笔记本电脑通过手机蓝牙上网
  18. 【第59题】输入、输出系列7-压缩文件相关技术2
  19. CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM开源项目收藏
  20. 赋范线性空间上的有界线性算子

热门文章

  1. 最新车载以太网解决方案,你知多少?
  2. JS中怎样使用Date对象加减日期
  3. java 之 xml 解析工具
  4. Bugku流量分析题目总结
  5. ST-Link SWD接口接线
  6. mysql 密码忘记办法
  7. 机器性能测试与显卡价格报表
  8. 用Latex排版论文(2)《自动化学报》Latex模版使用时需要注意的问题
  9. 并发编程系列之Semaphore
  10. oracle分区表的作用