我们有一台摄像机,距离地面有5米的街道。一架飞机可以安装在街道的每个左侧和右侧的所有建筑物上。假设这些平面垂直于地面并平行于街道道路。而且,假设在相机坐标系中,X轴垂直于街道右侧的建筑物,Y轴平行于街道道路,因此Z轴向上垂直于地面向上。 假设我们有一个分段方法,以强大地将图像段分段为四个区域天空,地面,左壁和右墙。我们希望从地面距离相机2米到高度3米。给定我在高度5的原始位置拍摄的图像,使用i的内容合成新图像j,就像它从地面3米的高度一样。

有帮助吗?

解决方案

您需要的是a 3d投影在2个坐标空间(相机和世界)之间并获得a 视图矩阵,它将表示在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/ 但是您可以还发现了很多其他类似的资源解释了这个过程。它可能已经在您正在服用此特定类的参考文本书中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top