图像处理——4个坐标系及相关转换图像像素坐标系 图像物理坐标系 相机坐标系 世界坐标系

♥♥相机标定(1)——四个坐标系_白水煮蝎子-CSDN博客_相机四个坐标系

(五十三)通俗易懂理解——针孔相机模型原理+张正友标定原理 - 知乎

CCD感光元件_百度百科

相关参考可细看转载文章,本文仅在学习的基础上,进一步整理笔记。

概述

二维图像能够提供丰富的环境信息或空间信息:

1.图像上每一点的亮度与物体某个表面点的反射光的强度的关系

2.图像点在图像平面上的位置与相机与空间物体的相对方位的关系:

  • 相机与空间物体的相对方位的关系
  • 相机内部结构关系

利用这些信息,可以实现如:测距、测量、识别、地图构建、定位、相机运动和姿态估计等方面的工作。

相机标定:求解参数的过程称为。因为描述相机的几何成像关系、需要进行数学建模,这些几何参数就是相机参数,包括内参和外参。

本文学习的是相机模型是计算机视觉中广泛使用的针孔模型(The basic pinhole model)。该模型在数学上是三维空间到二维平面(image plane or focal plane)的中心投影:

  • 由一个3×4的投影矩阵P=K\left [ R|t \right ]^{2}来描述,
  • K为相机内参(internal camera parameters),[R|t]为外参(external parameters)。

针孔相机模型

四个坐标系

  • 图像像素坐标系:表示三维空间物体在图像平面上的投影,像素是离散化的,其坐标原点在CCD图像平面的左上角,u轴平行于CCD平面水平向右,v轴垂直于u轴向下,坐标使用(u,v)来表示。图像宽度W,高度H。
  • 图像物理坐标系:坐标原点在CCD图像平面的中心x,y轴分别平行于图像像素坐标系的(u,v)轴,坐标用(x,y)表示。
  • 相机坐标系:以相机的光心为坐标系原点,X_{c}Y_{c}轴平行于图像坐标系的x,y轴,相机的光轴为Z_{c}轴,坐标系满足右手法则。相机的光心可理解为相机透镜的几何中心
  • 世界坐标系:用于表示空间物体的绝对坐标,使用\left ( X_{w} ,Y_{w},Z_{w} \right )表示,世界坐标系可通过旋转和平移得到相机坐标系。

 1.世界坐标系-相机坐标系

刚体变换只改变物体的空间位置(平移)和朝向(旋转),而不改变其形状的变换,可用两个变量来描述:正交单位旋转矩阵R,三维平移矢量t。世界坐标系到相机坐标系的转换关系也是如此:

世界和相机坐标系之间的欧式变换  

 平移比较好理解,世界坐标系原点移动到相机坐标系原点;

旋转一共有3个自由度,及绕x,y,z旋转,根据旋转角度可以分别得到三个方向上的旋转矩阵R_{x} ,R_{y},R_{z},而旋转矩阵即为他们的乘积,R=R_{x} \times R_{y}\times ,R_{z}。以绕X轴旋转为例,得到R_{x}

齐次坐标下,可以用两个点 p, q 的齐次坐标叉乘结果来表达一条直线。

2 相机坐标系-图像坐标系

 相机坐标系到图像坐标系是透视关系,利用相似三角形:

 3 图像坐标系-像素坐标系

像素坐标系是图像坐标系的离散化表示,实际CCD相机每个像素对应一个感光点,是个矩形,假设其物理尺寸为dx宽,dy高。以CCD传感器的左上角为坐标原点建立的坐标系与以成像平面中心建立的坐标系的转换关系如下。

 由于制造工艺的限制,一般情况下,CCD 摄像机数字离散化后的像素不是一个矩形而是一个平行四边形,四边形的一边平行于u轴,而另一边与u轴形成一个θ 角。则内参矩阵中会出现一个扭曲因子s。感兴趣可进一步阅读Reference1中相关章节。

总结

补充

CCD平面(感光元件)

CCD:Charge-coupled Device,中文全称:电荷耦合元件。可以称为CCD图像 传感器。一种半导体器件,能够把光学影像转化为数学信号。CCD上植入的微小光敏物质称作像素,一块CCD上包含的像素数越多,其提供的画面分辨率也就越高。CCD的作用就像胶片一样,但它是把图像像素转换成数字信号。CCD上有许多排列整齐电容,能感应光线,并将影像转变成数字信号。经由外部电路的控制,每个小电容能将其所带的电荷转给它相邻的电容。

 CCD广泛应用在数码摄影、天文学,尤其是光学遥测技术、光学与频谱望远镜,和高速摄影技术如Lucky imaging。CCD在摄像机、数码相机和扫描仪中应用广泛,只不过摄像机中使用的是点阵CCD,即包括x、y两个方向用于摄取平面图像,而扫描仪中使用的是线性CCD,它只有x一个方向,y方向扫描由扫描仪的机械装置来完成。

相机的光心可理解为相机透镜的几何中心

  • 51
    点赞
  • 268
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是世界坐标系相机坐标系图像坐标系像素坐标之间的转换代码: 1. 世界坐标系相机坐标系: ``` import numpy as np def world_to_camera(world_point, R, t): """ 世界坐标系相机坐标系 :param world_point: 世界坐标系中的点,shape=(3,) :param R: 相机姿态的旋转矩阵,shape=(3, 3) :param t: 相机姿态的平移向量,shape=(3,) :return: 相机坐标系中的点,shape=(3,) """ camera_point = np.dot(R, world_point) + t return camera_point ``` 2. 相机坐标系世界坐标系: ``` import numpy as np def camera_to_world(camera_point, R, t): """ 相机坐标系世界坐标系 :param camera_point: 相机坐标系中的点,shape=(3,) :param R: 相机姿态的旋转矩阵,shape=(3, 3) :param t: 相机姿态的平移向量,shape=(3,) :return: 世界坐标系中的点,shape=(3,) """ world_point = np.dot(np.linalg.inv(R), camera_point - t) return world_point ``` 3. 相机坐标系图像坐标系: ``` import numpy as np def camera_to_image(camera_point, K): """ 相机坐标系图像坐标系 :param camera_point: 相机坐标系中的点,shape=(3,) :param K: 相机内参矩阵,shape=(3, 3) :return: 图像坐标系中的点,shape=(2,) """ image_point = np.dot(K, camera_point[:3]) image_point = image_point[:2] / image_point[2] return image_point ``` 4. 图像坐标系像素坐标: ``` def image_to_pixel(image_point): """ 图像坐标系像素坐标 :param image_point: 图像坐标系中的点,shape=(2,) :return: 像素坐标中的点,shape=(2,) """ pixel_point = np.round(image_point).astype(int) return pixel_point ``` 5. 像素坐标图像坐标系: ``` def pixel_to_image(pixel_point): """ 像素坐标图像坐标系 :param pixel_point: 像素坐标中的点,shape=(2,) :return: 图像坐标系中的点,shape=(2,) """ image_point = pixel_point.astype(float) return image_point ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值