计算机视觉中的坐标系之间的转换原理,以及OpenCV坐标原点的确定

在这里插入图片描述
作为一个正在做计算机视觉项目的体育学在读硕士,面对完全不熟悉的领域,跟看天书没什么两样。这个时候关于计算机和工科的一些概念能帮助我很好地了解进入这个领域。

本文先详细了解相机标定涉及的原理和相关概念,为后期的立体视觉(多目成像)以及视差与深度信息的获取打下基础。

1.摄像机的成像原理

1.小孔成像原理:

想了解相机的成像原理,先了解小孔成像原理,如图。

在这里插入图片描述
物体通过暗箱的小孔后会在投影平面上形成倒像。由于光的直线传播特性,物体上方的点经过小孔后会成像在投影平面下方,物体下方的点会成像在投影平面上方,左右同理。因此小孔成像获得的影像是上下左右颠倒的。

2.相机成像原理:

本质上就是小孔成像,相机的光圈就是小孔,相机的感光元件就是投影平面,如图:
在这里插入图片描述
可以列出如下等式:
在这里插入图片描述

2.坐标系之间的转换

1.常用的有四个坐标系:

可以画在一张图上,如图所示(给了不同的角度,选择适合的角度学习):
在这里插入图片描述
在这里插入图片描述
1.世界坐标系(未标出):客观三维世界的绝对坐标系,也成为客观坐标系,可以任意指定。因为相机安放在三维空间中,所以需要世界坐标系这个基准坐标系来描述相机的位置,用(xw,yw,zw)表示其坐标值。

2.相机坐标系 (蓝色标注):以相机的光圈(小孔位置)为坐标原点,x轴和y轴分别平行于图像坐标系的x轴和y轴,相机的光轴为z轴,用(xc,yc,zc)表示其坐标值。

3.图像坐标系 (绿色标注):光轴和感光元x件(投影面)的交点为坐标原点,轴和轴分别和投影面的两边平行,用(xp,yp)表示其坐标值。

4.像素坐标系 (红色标注):从小孔向投影面方向看,投影左上角为原点Opix,xpix轴和ypix轴和投影面两边重合,用(xpix,ypix)表示其坐标值。

2.四个坐标系之间的转换:

要说明的是,可能会涉及一些数学知识(矩阵变换等),但都不难。

1.世界坐标系和相机坐标系
这两个坐标系都是三维坐标系,所以两者之间的转化属于刚性变换,即在三维空间中,只有物体的位置(平移变化)和朝向(旋转变换)发生改变,形状不变。

假设 某点在世界坐标系中坐标为Pw,在相机坐标系系中为Pc,则:
P w = [ X w , Y w , Z w ] T , P c = [ X c , Y c , Z c ] T Pw =[Xw, Yw,Zw]^T, Pc = [Xc,Yc,Zc]^T Pw=[Xw,Yw,Zw]TPc=[Xc,Yc,Zc]T
两者的关系是:

[ X c Y c Z c ]   = [ R T 0 1 ]   [ X w Y w Z w ]   \left[\begin{matrix} Xc \\ Yc \\ Zc \end{matrix}\right] \ = \left[\begin{matrix} R & T \\ 0 & 1 \\ \end{matrix}\right] \ \left[\begin{matrix} Xw \\ Yw \\ Zw \end{matrix}\right] \ XcYcZc =[R0T1] XwYwZw 

其中,R是正交旋转矩阵(包含绕x、y、z轴旋转矩阵R1, R2, R3,即R=R1 R2 R3),T是平移矩阵(包括在x、y、z轴方向的平移)。

由此,我们发现,确定R需要三个参数,确定T也需要三个参数,共需要6个参数,这6个参数称为相机的外部参数

2.相机坐标系与图像坐标系
相机坐标系是三维坐标系,图像坐标系是二维坐标系,两者的变化是从3D到2D的变换,属于透视投影变换。

这个过程因为涉及到三维所以理解起来比较抽象,就做了三维图。将相机坐标系的P点投射到图像坐标系下的P1点。

在这里插入图片描述
截取其中一张比较好观察的角度,开始分析。

在这里插入图片描述
根据相似三角形原理可知:
在这里插入图片描述
3.图像坐标系与像素坐标系
两者都是二维坐标系,两者属于简单的二维变换。

sx表示xpix方向上单位mm的像素数,单位是pix/mm

sy表示ypix方向上单位mm的像素数,单位同上。

x0,y0表示投影平面中心在像素坐标轴中的坐标。

在这里插入图片描述
4.世界坐标系到像素坐标系
把上面的内容整合起来,就可以得到世界坐标系和像素坐标系的转换。

在这里插入图片描述
用矩阵表达一下,其中,分别表示在xpix和ypix方向上的等效焦距。
在这里插入图片描述

3.总结

单目摄像机需要标定参数就是,这四个参数。

  • fx,fy,x0,y0是摄像机的内部参数,这些参数只和摄像机本身参数有关,和摄像机的位置和具体使用场景无关。
  • R、T内部的6个参数是外部参数,只要摄像机的位置发生变化,R和T就会发生变化。
  • 所谓的摄像机标定过程就是,已知某点在像素坐标系和世界坐标系的坐标,求解摄像机内部参数的过程。
  • 此外,在实际使用过程中,摄像机往往会加上凸透镜(因为针孔透过光线太少)。但是加上凸透镜后,会导致成像畸变,所以我们往往还需要矫正透镜畸变,在这里我就不过多介绍了。
  • 摄像头的标定工具常用的有OpenCV和Matlab标定工具箱。
    计算机视觉领域,原点的位置统一很关键,OpenCV中的图像结构,原点的位置一般是左上角。

关于OpenCV图像原点:
很多人,包括我,在一开始接触计算机视觉的时候,对OpenCV中窗口显示的图像坐标原点在哪不太清楚。
我参考了很多文章,得知OpenCV中的图像结构有个很重要的成员origin,它指明了图像的原点位置,可以有两种取值:IPL_ORIGIN_TL和IPL_ORIGIN_BL,其中TL意思是:TopLeft,即左上;BL意思是:BottomLeft,即左下。其实这两个都是整形常量,IPL_ORIGIN_TL就是0,IPL_ORIGIN_BL就是1。

参考博客:
https://blog.csdn.net/xuelabizp/article/details/50314633
https://blog.csdn.net/masibuaa/article/details/7821950

欢迎关注公众号:追求极简主义的程序媛,更多精彩内容不容错过!在这里插入图片描述

  • 12
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
增强现实坐标系转换涉及到现实世界和虚拟世界之间转换,需要考虑到不同的坐标系坐标系之间转换。 一般来说,增强现实会用到以下几种坐标系: 1. 世界坐标系(World Coordinate System):是现实世界坐标系,通常以某个物体为参考系,例如地球坐标系。在增强现实,需要将现实世界的坐标系转换为虚拟世界的坐标系。 2. 相机坐标系(Camera Coordinate System):是指相机本身的坐标系,通常以相机光轴为 Z 轴,从相机心向外的方向为正方向。在增强现实,需要将现实世界坐标系转换为相机坐标系,以便进行图像处理和跟踪。 3. 图像坐标系(Image Coordinate System):是指相机拍摄到的图像的坐标系,通常以图像的左上角为原点,向右为 X 轴正方向,向下为 Y 轴正方向。在增强现实,需要将相机坐标系的点映射到图像坐标系。 4. 屏幕坐标系(Screen Coordinate System):是指显示屏幕上的坐标系,通常以屏幕的左上角为原点,向右为 X 轴正方向,向下为 Y 轴正方向。在增强现实,需要将图像坐标系的点映射到屏幕坐标系。 在进行坐标系转换时,需要考虑到不同坐标系之间转换矩阵,例如从世界坐标系到相机坐标系转换矩阵、从相机坐标系到图像坐标系转换矩阵等等。这些转换矩阵可以通过相机的内参和外参进行计算得到。在实际应用,通常使用计算机视觉库(如 OpenCV)来进行坐标系转换

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值