计算机视觉-相机内参数和外参数
2016-05-24 22:29
387 查看
相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等;相机的外参数是在世界坐标系中的参数,比如相机的位置、旋转方向等。在这一部分我们不考虑只有满足一定关系才能聚焦的限制和真实镜头的畸变效果。
则点P的坐标描述为:
考虑到世界坐标系中,坐标的单位是m,像平面坐标系中,坐标的单位是像素,由于制造工艺的差异,不同相机的像素可能是正方形或者矩形,所以实际的变换矩阵横坐标和纵坐标需要再增加一个缩放参数k和l。于是相机成像模型变换为:
其中,f是焦距,单位是m,k与l的单位是pixel/m,相机的像素尺寸为:
相机参数k、l、f不是独立的,我们引入同一的缩放因子
通常意义上,像平面坐标系的原点在像平面的左下角或者左上角,而不是我们之前讨论的位于像平面的中心,因此我们引入位置点c0(x0,y0)来定义坐标系中心点,于是相机模型演化为:
最后,由于相机制造工艺的误差,相机的成像坐标系的夹角可能并不是90度,于是相机成像模型又演化为:
结合前面的公式,我们可以得到:
把上面的等式带入内参数推导的变换矩阵,得到:
需要注意的是,等式中的Z与矩阵M和P是有关系的。
事实上,投影变换公式可以写成如下形式:
最后结合内外参数转换矩阵,统一起来,可以得到如下形式:
刚体变换和齐次坐标
我们用齐次坐标来表达二维空间或者三维空间的一点,假设一点P在坐标系(F)=(O,i,j,k)中的坐标为:则点P的坐标描述为:
相机内参数
根据相机成像转换过程如下:考虑到世界坐标系中,坐标的单位是m,像平面坐标系中,坐标的单位是像素,由于制造工艺的差异,不同相机的像素可能是正方形或者矩形,所以实际的变换矩阵横坐标和纵坐标需要再增加一个缩放参数k和l。于是相机成像模型变换为:
其中,f是焦距,单位是m,k与l的单位是pixel/m,相机的像素尺寸为:
相机参数k、l、f不是独立的,我们引入同一的缩放因子
通常意义上,像平面坐标系的原点在像平面的左下角或者左上角,而不是我们之前讨论的位于像平面的中心,因此我们引入位置点c0(x0,y0)来定义坐标系中心点,于是相机模型演化为:
最后,由于相机制造工艺的误差,相机的成像坐标系的夹角可能并不是90度,于是相机成像模型又演化为:
结合前面的公式,我们可以得到:
相机的外参数
相机内参数是基于相机坐标系推导的,相机的外参数主要解决世界坐标系到相机坐标系的映射。把上面的等式带入内参数推导的变换矩阵,得到:
需要注意的是,等式中的Z与矩阵M和P是有关系的。
事实上,投影变换公式可以写成如下形式:
最后结合内外参数转换矩阵,统一起来,可以得到如下形式:
相关文章推荐
- python读取串口、网络编程、文本处理与文件操作
- Java 网络编程 练习
- Xutils使用手册(四)——网络请求
- Java实现简单的RPC调用(基于TCP协议)
- javaweb中Http协议详解
- USACO4.2 网络流模板题
- 网络编程之五种I/O模型
- 看鸟哥写的计算机概论收获
- 共同学习Java源代码--数据结构--ArrayList类(五)
- HTTP协议详解
- 单周期CPU设计
- 采用retrofit获取网络数据
- http之错误码
- 基于TCP协议的socket编程
- 解决在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
- 第13章 网络应用编程技术
- 《图解HTTP》学习笔记(五)-与HTTP协作的Web服务器
- 数据结构课后题源码
- python网络爬虫 - 设定重试次数内反复抓取
- 训练深度神经网络的时候需要注意的一些小技巧【转载】