在MATLAB中模拟相机运动

时间:2014-06-04 12:12:22

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

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

1 个答案:

答案 0 :(得分:0)

您需要的是两个坐标空间(相机和世界)之间的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/,但您也可以找到许多其他类似资源来解释该过程。它可能已经出现在你正在参加的这门课程的参考教科书中。