【问题标题】:Reverse-projection 2D points into 3D将 2D 点反向投影到 3D
【发布时间】:2010-09-12 19:23:21
【问题描述】:

假设我们有一个 3d 空间,上面有一个平面,上面有一个任意方程:ax+by+cz+d=0 现在假设我们在该平面上选择 3 个随机点: (x0,y0,z0) (x1,y1,z1) (x1,y1,z1)

现在我对这架飞机有不同的观点(相机)。我的意思是我有一台不同的相机,可以从不同的角度观察这架飞机。从该相机的角度来看,这些点具有不同的位置。例如 (x0,y0,z0) 将是 (x0',y0') 从新相机的角度来看,(x1,y1,z1) 将是 (x1',y1') 并且 (x2,y2,z2) 将是 (x2',y2')。

所以这是我的一个小难题!我想从新相机的角度选择一个点,例如(X,Y),并告诉它在那个平面上的位置。我只知道这 3 个点及其在 3d 空间上的位置以及它们在新相机视图上的投影位置。


你知道平面方程的系数和相机位置(连同投影),还是你只有六个点? - 尼尔斯

我知道前 3 个点的位置。因此我们可以计算平面的系数。所以我们从(0,0,0)的角度确切地知道飞机的位置。然后我们有了只能看到点的相机!所以相机看到的唯一东西是 3 个点,而且它知道它们在 3d 空间中的位置(并且肯定它们在 2d 相机视图平面上的位置)。毕竟我想看看相机视图,选择一个点(例如(x1,y1))并告诉那个点在那个平面上的位置。 (当然这个(X,Y,Z)点应该适合平面方程)。我也对相机的位置一无所知。

【问题讨论】:

标签: 3d geometry reverseprojection


【解决方案1】:

不可能给出一个明确的解决方案来解决这个问题。但是,这是我提取不同解决方案的方法:

1) 使用来自原始RANSAC paper 的 P3P(Perspective-3-Point)算法求解相机位置和方向,该算法给出了四种可能的可行解决方案(相机前面的点)。

2) 以相机位置为原点,以(X,Y)为投影在相机中投影一条射线,并计算其与平面的交点。

【讨论】:

【解决方案2】:

您是在问如何使一条线和一个平面相交? 看这里http://paulbourke.net/geometry/pointlineplane/

ps。你的老师知道这个网站!

【讨论】:

猜你喜欢
  • 2010-09-09
  • 2012-09-03
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2019-06-08
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多