博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
摄像机模型
阅读量:6486 次
发布时间:2019-06-23

本文共 763 字,大约阅读时间需要 2 分钟。

摄像机是三维空间物体与二维图像之间的一种映射。成像模型就是三维空间物体到二维视平面的投影关系。

针孔模型

透视投影(Perspective Projection)是最常用的成像模型,可以用针孔成像模型来近似表示。透视投影成像模型的特点是所有来自场景的光线均通过一个投影中心,它对应于透镜的中心,经过投影中心且垂直于图像平面(成像平面)的直线称为投影轴或光轴。

中心投影可以非常简单地表示成齐次坐标之间的线性映射。

Z_c*\begin{bmatrix}x\\y\\1\end{bmatrix}=\begin{bmatrix}fX_c\\fY_c\\Z_c\end{bmatrix}=\begin{bmatrix}f&&0&&0&&0\\0&&f&&0&&0\\0&&0&&1&&0\end{bmatrix}*\begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix}

[X_c,Y_c,Z_c] 为摄像机坐标系中的物体坐标 [x,y] 是物体投影在图像平面的位置。

K=\begin{bmatrix}f&&0&&0&&0\\0&&f&&0&&0\\0&&0&&1&&0\end{bmatrix}

则有 x=K*X, 其中K为3*4的摄像机投影矩阵。

摄像机模型

针孔模型的X是相对摄像机坐标系而言的,而往往摄像机是不断运动的(位姿在不断变化),空间点的世界坐标系是恒定不变的。摄像机坐标系和世界坐标系可以通过旋转和平移相联系。

\begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix}=R*(\begin{bmatrix}U\\V\\W\\1\end{bmatrix}-C)

R是摄像机相对于世界坐标系的旋转矩阵,C表示位移。令 t=-RC 得:

Z*\begin{bmatrix}x\\y\\1\end{bmatrix}=K*\begin{bmatrix}R&&t\\0^T&&1\end{bmatrix}*\begin{bmatrix}U\\V\\W\\1\end{bmatrix}

摄像机模型可表示为:

P=K*[R|t]=K*\begin{bmatrix}R&&t\\0^T&&1\end{bmatrix}

x=P*X 此处X是世界坐标系下的位置。

上述推导的摄像机模型是假定图像坐标在两个轴向上有等尺度的欧式坐标。但CCD摄像机的像素可能不是正方形。如果图像坐标以像素来测量,那么需要在每个方向上引入非等量尺度因子。

所以:K=\begin{bmatrix}\alpha_x&&0&&u_0&&0\\0&&\alpha_y&&v_0&&0\\0&&0&&1&&0\end{bmatrix}

其中 \alpha_x=f*m_x\alpha_y=f*m_y ,m分别表示在x和y方向上图像坐标单位距离的像素数, (u_0,v_0) 表示像素量纲上图像的原点。

摄像机模型的参数

x=P*X

P=K*[R|t]

K是内参,R和t成为外参。

R为旋转矩阵

在三维空间中,旋转可以分解为绕各自坐标轴的二维旋转,如果依次绕x,y,x轴旋转角度

R_x(\alpha)=\begin{bmatrix}1&&0&&0\\0&&cos\alpha&&sin\alpha\\0&&-sin\alpha&&cos\alpha\end{bmatrix}

R_y(\beta)=\begin{bmatrix}cos\beta&&0&&-sin\beta\\0&&1&&0\\sin\beta&&0&&cos\beta\end{bmatrix}

R_z(\gamma)=\begin{bmatrix}cos\gamma&&sin\gamma&&0\\-sin\gamma&&cos\gamma&&0\\0&&0&&1\end{bmatrix}

旋转矩阵R可以表示为 R_x, R_y, R_z 的乘机,因此R=R_x(\alpha)*R_y(\beta)*R_z(\gamma) 

t为平移向量

表示摄像机坐标系原点在世界坐标系中的位置。

内外参数

P有10个自由度,3个来自R,3个来自t,4个是K中的内参。另外,由于P为3*4的不可逆矩阵,在已知P的情况下,为了得到空间点的三维世界坐标,就必须有两个或更多的相机构成的视觉系统模型才能实现。

转载地址:http://zliuo.baihongyu.com/

你可能感兴趣的文章
4、输出名称 Exported names
查看>>
Pre-echo(预回声),瞬态信号检测与TNS
查看>>
【转载】如何发送和接收 Windows Phone 的 Raw 通知
查看>>
poj2378
查看>>
Java文件清单列表
查看>>
js url传值中文乱码之解决之道
查看>>
[LeetCode] Reverse String 翻转字符串
查看>>
学习iOS【3】数组、词典和集合
查看>>
Hessian 原理分析--转
查看>>
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
easyui传入map的数据前台展示出tree格式数据
查看>>
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
查看>>
Vitamio中文API文档(4)—— VitamioInstaller
查看>>
yii框架常用url地址
查看>>
python3.4学习笔记(十六) windows下面安装easy_install和pip教程
查看>>
MyGUI 解析
查看>>
Linux中的ls命令详细使用
查看>>
graph-tool文档(一)- 快速开始使用Graph-tool - 2.属性映射、图的IO和Price网络
查看>>
GraphicsLab Project之辉光(Glare,Glow)效果 【转】
查看>>
Linux Curl命令
查看>>