将二维点反投影到三维空间

13
假设我们有一个带有任意方程的平面在3D空间中:ax+by+cz+d=0,现在假设我们在该平面上选择了3个随机点:(x0,y0,z0)(x1,y1,z1)(x2,y2,z2) 现在我有一个不同的视角(相机),用于观察此平面。也就是说,我有一个从不同视角观察这个平面的不同相机。从该相机的视角看,这些点具有不同的位置。例如,(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)点应适合于平面方程)。此外,我对相机位置一无所知。

5
如果你需要一个答案,我会提供一份悬赏金。 - Michael Schmidt
另请参阅:如何将2D点反投影到3D空间? - hippietrail
2个回答

1

坏链接 - 当前页面:http://paulbourke.net/geometry/pointlineplane/ 存档页面:http://web.archive.org/web/20080907223405/http://local.wasp.uwa.edu.au/~pbourke/geometry/planeline/ - oPless
我认为所询问的问题可以重新表述为一条直线和一个平面的交点。搜索的点在二维屏幕上线性映射((x,y) = Q1xX + Q2xY+Q3*z),其中x、y是二维坐标,而X、Y、Z是所搜索点的坐标。 - Ion Andrei Bara

1

这个问题无法给出一个明确的解决方案。然而,以下是我如何提取不同解决方案的方法:

1)使用原始RANSAC论文中的P3P(透视三点)算法求解相机位置和方向,该算法可以给出最多四个可能的可行解(与相机前面的点)。

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


2
如果您有4个点,请使用单应性矩阵 - Cfr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接