资源经验分享照相机的成像变换

照相机的成像变换

2019-09-18 | |  108 |   0

原标题:照相机的成像变换

原文来自:CSDN      原文链接:https://blog.csdn.net/h763247747/article/details/100880129


1 变换过程

照相机的成像变换过程可以分为3步:世界坐标系——>相机坐标系——>图像坐标系——>像素坐标系

 

2 世界坐标系——>相机坐标系

景物从世界坐标系转换到相机坐标系需要使用到刚体变换(物体不发生变形,对一个几何物体做旋转或平移)

20190916105554772.png20190916105619272.png

刚体变换如下图所示:

20190916110057464.png

变换的数学表达式为:

20190916114320287.png

简化:

20190916114225693.png

其中,mathbf{X_c, Y_c, Z_c}代表相机坐标系,mathbf{X, Y, Z}代表世界坐标系,

矩阵mathbf{R}代表旋转变换,向量mathbf{t}代表平移。mathbf{R, t}称为相机的外参数,与相机无关。

 

旋转变换由3种变换组成:绕 x 轴旋转,绕 y 轴旋转和绕 z 轴旋转,用公式表示为:

mathbf{R}=mathbf{r_1*r_2*r_3}

其中mathbf{r_1, r_2, r_3}分别表示绕 x 轴旋转,绕 y 轴旋转和绕 z 轴旋转的旋转矩阵。

jA2ODItMjYzNDA4NjQucG5n.jpg

 

3 相机坐标系——>图像坐标

此变换通过小孔成像实现,其原理如下图所示:

20190916111634794.png

简化其投影过程,

20190916111833803.png

已知位于相机坐标系的一个点P=(x, y, z), 投影到图像的点P'=(x', y'),由相似三角形:

可得:

用矩阵表示:

zbegin{bmatrix} x' y'  end{bmatrix}=begin{bmatrix} f & 0& 0&0  0& f& 0& 0 0& 0& 1& 0 end{bmatrix}begin{bmatrix} x y  z  1 end{bmatrix}

 

4 图像坐标系——>像素坐标系

下方图像标注了两种坐标系:

O_1-xy表示图像坐标系,其坐标是连续的;

O_0-uv代表像素坐标系,其坐标只能是大于零的整数,中心像素点的坐标为(u_0, v_0)

每一个像素点的长宽为:dx, dy, 即为感光芯片上像素的实际大小。

20190916113151819.png

从图像坐标系到像素坐标系的变换公式为:

用矩阵表示:

 

5 相机坐标系——>像素坐标系

综合3和4两部分,隐去图像坐标系,直接求取从相机坐标系到像素坐标系的变换矩阵

zbegin{bmatrix} u v  1 end{bmatrix}=begin{bmatrix} frac{1}{dx} & 0 & u_0  0& frac{1}{dy} & v_0  0& 0 & 1 end{bmatrix}begin{bmatrix} f & 0& 0 &0  0& f& 0& 0 0& 0& 1& 0 end{bmatrix}begin{bmatrix} xy  z  1 end{bmatrix}

为了去掉z,转换为其次矩阵

begin{bmatrix} u v  z end{bmatrix}=begin{bmatrix} frac{1}{dx} & 0 & u_0  0& frac{1}{dy} & v_0  0& 0 & 1 end{bmatrix}begin{bmatrix} f & 0& 0 &0  0& f& 0& 0 0& 0& 1& 0 end{bmatrix}begin{bmatrix} xy  z  1 end{bmatrix}

简化:

P'=begin{bmatrix} u v  z end{bmatrix}=begin{bmatrix}alpha & 0 & u_0&0  0& beta & v_0&0  0& 0 & 1&0 end{bmatrix}begin{bmatrix} xy  z  1 end{bmatrix}=MP=begin{bmatrix}alpha & 0 & u_0  0& beta & v_0 0& 0 & 1 end{bmatrix}begin{bmatrix} mathbf{I} & mathbf{0} end{bmatrix}P=mathbf{K}begin{bmatrix} mathbf{I} & mathbf{0} end{bmatrix}P

其中

alpha =frac{f}{dx}

beta =frac{f}{dy}

K 为相机的矫正矩阵(calibration matrix)

如果算入图像的倾斜度K为:

这里的cx,cy即为u0, v0

 

6 世界坐标系——>像素坐标系

由2和5部分的分析,可得:

20190916210233661.png

简化:

M 为一个3*4的矩阵,11个未知参数,其中

5个未知参数来自内参矩阵(intrinsic matrix)

3个来自外参旋转

3个来自外参平移

 

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:使用Ptorch中的DataLoader加载自己的图片数据集以及简单的处理

下一篇:使用harbor

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...