相机模型坐标系关系及转换

简介

相机模型是以后一切标定算法的关键,简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程,由投影过程求出相机的外参数和内参数。

四个坐标系

  • 世界坐标系(world coordinate)(Xw,Yw,ZwXw,Yw,ZwX_w,Y_w,Z_w),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。
  • 相机坐标系(camera coordinate)(Xc,Yc,ZcXc,Yc,ZcX_c,Y_c,Z_c),也是一个三维直角坐标系,原点位于镜头光心处,X、y轴分别与相面的两边平行,Z轴为镜头光轴,与像平面垂直。
  • 成像平面坐标系 (X,Y)(X,Y)(X,Y):像素坐标系不利于坐标变换,因此需要建立图像坐标系XOY,其坐标轴的单位通常为毫米(mm),原点是相机光轴与相面的交点(称为主点),即图像的中心点,X轴、Y轴分别与U轴、V轴平行。故两个坐标系实际是平移关系,即可以通过平移就可得到。
  • 像素坐标系 (U,VU,VU,V)是一个二维直角坐标系,反映了相机CCD/CMOS芯片中像素的排列情况。原点O位于图像的左上角,U轴、V轴分别于像面的两边平行。像素坐标系中坐标轴的单位是像素(整数)。

标定过程

  1. 世界坐标系转换到相机坐标系,这是三维到三维点的转换,包括R,t(相机外参,确定了相机在某个三维空间中的位置和朝向)等参数

  2. 从相机坐标系转换为成像平面坐标系(像素坐标系),这是三维点到二维点的转换,包括K(相机内参,对相机物理特性的近似)等参数

坐标转换

世界坐标系转换为相机坐标系

⎡⎣⎢⎢⎢XcYcZc1⎤⎦⎥⎥⎥=[ROTt1]⎡⎣⎢⎢⎢XwYwZw1⎤⎦⎥⎥⎥[XcYcZc1]=[RtOT1][XwYwZw1]

\left[\begin{matrix}X_c \\ Y_c \\Z_c\\1\end{matrix}\right] = \left[\begin{matrix}R & t \\ O^T & 1\end{matrix}\right]\left[\begin{matrix} X_w \\ Y_w \\ Z_w \\ 1\end{matrix}\right]

其中R∈R3∗3R∈ℝ3∗3R\inℝ^{3*3}为正交旋转矩阵,t∈R3∗1t∈ℝ3∗1t\inℝ^{3*1} 为三维平移向量

相机坐标系转化为成像平面坐标系

设成像平面上一点坐标m(x,y)m(x,y)m(x,y) ,对应相机坐标系点M(xc,yc,zc)M(xc,yc,zc)M(x_c,y_c,z_c)相机焦距f(相机坐标系原点与成像平面原点的距离),由三角形相似原理得

x=fxcZc,y=fyczcx=fxcZc,y=fyczc

x=f \frac {x_c}{Z_c},y=f\frac {y_c}{z_c}

换成矩阵形式

Zc⎡⎣⎢XY1⎤⎦⎥=⎡⎣⎢f000f0001000⎤⎦⎥⎡⎣⎢⎢⎢XcYcZc1⎤⎦⎥⎥⎥Zc[XY1]=[f0000f000010][XcYcZc1]

Z_c\left[\begin{matrix}X\\Y\\1\end{matrix}\right]=\left[\begin{matrix}f&0&0&0\\0&f&0&0\\0&0&1&0\end{matrix}\right]\left[\begin{matrix}X_c\\Y_c\\Z_c\\1\end{matrix}\right]

成像平面坐标系转换为像素坐标系

假定每个像素在U,V轴方向上的物理尺寸为dx,dy(实际表示感光芯片上像素的实际大小,可以理解为一个像素所表示的成像平面的尺寸大小)

U−U0=xdx,V−V0=ydyU−U0=xdx,V−V0=ydy

U-U_0=\frac{x}{dx} , V-V_0=\frac{y}{dy} 得

⎡⎣⎢UV1⎤⎦⎥=⎡⎣⎢⎢1dx0001dy0u0v01⎤⎦⎥⎥⎡⎣⎢XY1⎤⎦⎥[UV1]=[1dx0u001dyv0001][XY1]

\left[\begin{matrix}U\\V\\1\end{matrix}\right]=\left[\begin{matrix}\frac{1}{dx}&0&u_0\\0&\frac{1}{dy}&v_0\\0&0&1\end{matrix}\right]\left[\begin{matrix}X\\Y\\1\end{matrix}\right]

世界坐标系转像素坐标系

结合上上述三个矩阵变换可得最后转换矩阵为

Zc⎡⎣⎢UV1⎤⎦⎥=⎡⎣⎢⎢1dx0001dy0u0v01⎤⎦⎥⎥⎡⎣⎢f000f0001000⎤⎦⎥[ROTt1]⎡⎣⎢⎢⎢XwYwZw1⎤⎦⎥⎥⎥=⎡⎣⎢αx000αy0u0v01000⎤⎦⎥[ROTt1]⎡⎣⎢⎢⎢XwYwZw1⎤⎦⎥⎥⎥=M1M2Xw=MXwZc[UV1]=[1dx0u001dyv0001][f0000f000010][RtOT1][XwYwZw1]=[αx0u000αyv000010][RtOT1][XwYwZw1]=M1M2Xw=MXw

Z_c\left[\begin{matrix}U\\V\\1\end{matrix}\right]=\left[\begin{matrix}\frac{1}{dx}&0&u_0\\0&\frac{1}{dy}&v_0\\0&0&1\end{matrix}\right]\left[\begin{matrix}f&0&0&0\\0&f&0&0\\0&0&1&0\end{matrix}\right] \left[\begin{matrix}R & t \\ O^T & 1\end{matrix}\right]\left[\begin{matrix} X_w \\ Y_w \\ Z_w \\ 1\end{matrix}\right]=\left[\begin{matrix}\alpha_x&0&u_0&0\\0&\alpha_y&v_0&0\\0&0&1&0\end{matrix}\right] \left[\begin{matrix}R & t \\ O^T & 1\end{matrix}\right]\left[\begin{matrix} X_w \\ Y_w \\ Z_w \\ 1\end{matrix}\right]=M_1M_2X_w=MX_w

其中M1,M2M1,M2M_1,M_2 为相机的内参和外参

相机模型坐标系关系及转换相关推荐

  1. 【Revit二次开发】链接模型坐标系/族坐标系与模型坐标系转换

    前因:因做管线分布时,参照线选择Revit链接文件中的构件(墙,梁,柱,管等)后,调整的管距离参照线的距离不对,经测试是坐标系不同导致.查了很多资料,故总结如下 Revit中坐标系有哪几种(原文链接: ...

  2. 相机成像---世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系

    新学期第一天开始写的这篇文章,看看我啥时候能把他发出去.假期当然是啥也没干了,之前还信誓旦旦说回家一定能学习,学个毛线.开始学习啦,去年年末把环境配置好了之后,实验发现他不准,用的D435i摄像头是红 ...

  3. 三维视觉基础之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系

    三维视觉基础之世界坐标系.相机坐标系.图像坐标系和像素坐标系之间的转换关系 一.各坐标系介绍 二.世界坐标系和相机坐标系之间的转换 三.相机坐标系和图像坐标系之间的转换 四.图像坐标系和像素坐标系之间 ...

  4. 相机参数和相机模型各个坐标系(世界坐标系、相机坐标系、图像坐标系、像素坐标系之间变换)

    坐标系变换 1. 几个坐标系: 世界坐标系(world coordinate system): 用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入.单位为m. 相机坐标系(camer ...

  5. 三维坐标系之间的转换关系详解与推导

    文章目录 前言 三维坐标系之间的转换关系:R(旋转矩阵) .T(平移矩阵) 数学模型描述 布尔莎模型:前提是旋转角为微小旋转角 罗德里格矩阵模型 尺度相同: 存在的一些问题: 主要参考来源: 前言 三 ...

  6. 通过两个坐标系对应点计算转换关系

    通过两个坐标系对应点计算转换关系 应用 三维重建方法通常会自己估计相机的 R,T R,T矩阵,这些矩阵定义了一个世界坐标系,在使用客观的评估方法如Middlebury来评估精度时,需要使用评估方法提供 ...

  7. 世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换

    世界坐标系.相机坐标系.图像坐标系.像素坐标系之间的转换 图像处理.立体视觉等方向常常涉及到四个坐标系:世界坐标系.相机坐标系.图像坐标系.像素坐标系.例如下图: 构建世界坐标系只是为了更好的描述相机 ...

  8. OpenCV——将针孔相机模型图片转换成鱼眼相机模型图片

    一 理论基础 关于针孔相机模型,参考博客: 关于鱼眼相机模型,参考参考文献[1][2]. 这里只需要知道我们这里使用的鱼眼相机模型是等距投影的鱼眼相机模型,即r=fθ(1),而针孔相机模型是透视投影, ...

  9. RationalDMIS 7.1 模型坐标系转换

    "设置模型默认坐标系"的使用规则 模型导入后在MCS下不能移动:然后通过理论元素或者理论距离移动到你希望的位置后,然后右键选择设置模型默认坐标系:这样就改过来了. CAD坐标系的转 ...

  10. 已知同一组点在不同坐标系下的坐标,如何求解两个坐标系之间的转换关系

    问题描述: 已知同一组点在不同坐标系下的坐标(例如有点ABCDEF六个点在坐标系1下的坐标A1,B1,C1,D1,E1,F1同时又已知ABCDEF六个点在坐标系2下的坐标A2,B2,C2,D2,E2, ...

最新文章

  1. 【算法】八大经典排序算法详解
  2. c# AutoMapper 使用方式和再封装
  3. pthread 线程退出时自动释放资源
  4. 免费测试英语发音的软件,2020英语音标免费版
  5. 可编程CDN – EdgeScript应用场景、语言速览和实操演示
  6. oracle 查看数据库性能,oracle 11G使用statspack查看数据库的性能
  7. 安装配置远程工具Xmanager
  8. 不必仰望他人,用自己的方式活着就好
  9. 现代通信原理4.1:随机变量
  10. 计算机专业英语词汇缩写,计算机专业英语词汇中英文对照其他缩写,外语网
  11. ps总结(一)-无失真的放大图片
  12. android桌面隐藏功能,如何开启 安卓10 隐藏的桌面模式并或者显示器拓展支持
  13. TDTX云笔记--TDTX个人简历
  14. 前端的debug调试
  15. 访问控制模型总结(DAC MAC RBAC ABAC)
  16. g54y6huj6yh
  17. C语言大一课设:旭日苑菜品管理系统
  18. offictab,word ,excel多窗口插件
  19. 微信小程序集成WeUI组件库
  20. SSH CA User Key实验

热门文章

  1. 西门子PLC是怎么控制伺服电机的?
  2. linux下安装asio4ks,FL Studio 第一步 初始化 2020-10-01
  3. 用vue做一个app
  4. 分布式光纤管道泄漏监测系统管道泄漏检测技术分析
  5. 黑马程序员_银行调度系统
  6. MOS管功率放大器电路图与原理图文及其解析
  7. 【毕业设计】基于stm32的智能温控风扇设计与实现 - 物联网 单片机
  8. java map是有序的吗_java中map、set、list是否有序
  9. 计算机网络技术练习,计算机网络技术基础各章节综合练习题及答案
  10. STEAM 自动安装时提示C++ 安装不了等问题