繁体   English   中英

将 2D 点反向投影到 3D

[英]Reverse-projection 2D points into 3D

假设我们有一个 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),并告诉它在那个平面上的位置。 我所知道的是 3D 空间上的 3 个点及其位置以及它们在新相机视图上的投影位置。


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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM