【问题标题】:Simulating Camera Movement in MATLAB在 MATLAB 中模拟相机运动
【发布时间】:2014-07-25 02:03:11
【问题描述】:

我们在距离地面 5 米高的街道上安装了摄像头。街道左右两侧的所有建筑物都可以安装一架飞机。假设这些平面垂直于地面并平行于街道。另外,假设在摄像机坐标系中,x 轴垂直于街道右侧的建筑物,y 轴平行于街道道路,因此 z 轴向上垂直于地面。 假设我们有一种分割方法可以将图像稳健地分割为天空、地面、左墙和右墙四个区域。我们想将相机下降 2 米,达到离地面 3 米的高度。给定我在原始位置高度 5 拍摄的图像,使用 I 的内容合成新图像 J,就好像它是从距离地面 3 米的高度拍摄的一样。

【问题讨论】:

    标签: matlab image-processing computer-vision simulation camera-calibration


    【解决方案1】:

    您需要的是在 2 个坐标空间(相机和世界)之间的3D projection,并获得一个视图矩阵,它将表示您的视图在 y 轴上平移后的变换。

    由于不涉及轮换,您的任务应该不会那么难。 以下是您应该遵循的步骤:

    • 通过定位和定向相机来设置相机空间并从中导出矩阵(相机空间)
    • 构造一个矩阵,将世界空间(您已经拥有)映射到相机空间
    • 将给定的顶点(您的图像像素位置)从世界空间映射到相机空间
    • 使用平移矩阵平移这些位置

    在你的情况下应该是:

           [ 1  0  0 ]  # notice that y axis is
    T =    [ 0 -2  0 ]  # translated while the 
           [ 0  0  1 ]  # other two stay the same
    
    • 将翻译后的点映射回世界空间并享受您的新视图

    此链接很有用http://schabby.de/view-matrix/,但您也可以找到许多其他类似的资源来解释该过程。它可能已经在你正在学习的这个特定课程的参考教科书中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-19
      • 2020-09-02
      • 2013-09-12
      • 1970-01-01
      • 2017-10-24
      • 2013-01-06
      • 2013-09-05
      相关资源
      最近更新 更多