zoukankan      html  css  js  c++  java
  • 针孔相机模型

      相机将三维世界中的坐标点映射到二维图像平面的过程能够用一个几何模型进行描述。这个模型有很多种,其中最简单的称为针孔模型。

      在现实生活中,针孔相机是由前方有 一个小洞(针孔)所构成。现实世界中源于某个物体的光线穿过此洞,会在摄像机的底板或图像平面上形成一幅倒立的图像。略为不便的是针孔相机的图像是倒置的。因此,我们换一种方式,对针孔前方图像平面的虚拟图像加以考虑。当然,从物理层面构造这样一种摄像机是不可能的但是在数学层面上这与真实的针孔模型是等价的(除了图像是倒置的以外)。

    坐标系约定

    1、世界坐标系:$X_{w},Y_{w},Z_{w}$

    2、摄像机坐标系:$X_{c},Y_{c},Z_{c}$

    3、图像坐标系:$[u,v] [x,y]$

     说明:为了校正成像畸变,用理想图像坐标系$[X_{u},Y_{u}]$和真实图像坐标系$[X_{d},Y_{d}]$分别描述畸变前后的坐标关系

    相机光学成像过程的四个步骤

      摄像机并非总是位于世界坐标系的原点,通常我们可能想要定义一个任意的世界坐标系,这种坐标系可能使用于多个摄像机。为此,我们可以使用刚体变换描述世界坐标系到摄像机坐标系的转换。实际上,摄像机坐标系是未知的,更多的作用是用于数学模型描述。

    刚体变换公式

    $left[egin{matrix}x_{c} \ y_{c} \ z_{c} end{matrix} ight] = R left[egin{matrix}x_{w} \ y_{w} \ z_{w}end{matrix} ight] + t$

    齐次坐标形式

    $left[egin{matrix}x_{c} \ y_{c} \ z_{c} \ 1end{matrix} ight] = left[egin{matrix}R & t \ 0^T_{3} & 1end{matrix} ight] left[egin{matrix}x_{w} \ y_{w} \ z_{w} \ 1 end{matrix} ight]$

     中心透视投影模型

    图像数字化

      有些文献中将图像数字化和中心透视投影合在一起(内参数)写成如下矩阵形式:

    $left[egin{matrix}Φ_{x} & γ & δ_{x} \ 0 & Φ_{y} & δ_{y} \ 0 & 0 & 1 end{matrix} ight]$

    线性摄像机成像模型(忽略畸变)

       我们把$K$称为相机的内参数矩阵(Camera Intrinsics)。通常认为,相机的内参在出厂之后是固定的,不会在使用过程中发生变化。有的相机生产厂商会告诉相机的内参,而有时候需要自己确定相机的内参,也就是所谓的标定。相机的位姿$R,t$又称为相机的外参数(Camera Extrinsics)。相比不变的内参, 外参会随着相机运动发生改变。注意,上式隐含了一次齐次坐标到非齐次坐标的转换,外参数矩阵与世界坐标相乘后是一个4维的向量。

    参考文献

    【1】视觉SLAM十四讲

    【2】计算机视觉模型、学习和推理

    【3】中科院自动化所机器视觉教程PPT

  • 相关阅读:
    loader加载png,并复制多份
    FLVPlayback应用
    Android自定义ExpandableListView
    Android startActivityForResult的使用
    Android中ExpandableListView的使用
    Android基础 获取手机分辨率、状态栏、标题栏高度
    Java 字符串拼接方式
    Java String字符串拼接,截取,查找及日期转换
    android中使用startActivityForResult回传数据
    android tabhost位于底部
  • 原文地址:https://www.cnblogs.com/majiale/p/9293499.html
Copyright © 2011-2022 走看看