我已经成功地计算了旋转,平移与本征相机矩阵的两个相机。我还得到了纠正图像从左和右相机。现在,我想知道如何计算一个点的三维坐标,一个图像中的一个点。在这里,请看绿点。我看了一下方程,但它需要基线,我不知道如何计算。你能告诉我用给定的信息(R,T和内禀矩阵)计算绿点的三维坐标的过程吗?
我也有一个基本矩阵和基本矩阵,以防我们需要它们。2.原始图像大小为960 x 720。校正图为925 x 669 3,左边的绿点为(562,185),右边的为(542,185)。

发布于 2018-09-18 09:14:09
“基线”一词通常只是指翻译。因为您已经有了旋转、平移和本质矩阵(让我们不要使用它们-- R, T和K)。您可以进行三角剖分,并且不需要基本矩阵或基本矩阵(它们可以用于提取R, T等,但您已经拥有它们)。你也不需要你的图像被纠正,因为它并没有改变三角测量的过程那么多。有许多方法可以进行三角测量,每种方法都有各自的优缺点,还有许多实现它们的库。因此,我在这里所能做的就是给出问题和潜在解决方案的概述,以及指向资源的指针,这些资源既可以作为资源,也可以作为编写自己代码的灵感来源。
X,在左图像和右图像中分别有两个观察到的x_1和x_2。如果你反投影它们,你会得到两条射线:
ray_1=K^{1}x_1 rat_2=R*K^{-1}x_2+T //I假设R=T是第二个摄像机的姿态,表示为第一个摄像机的参考值
理想情况下,你会希望这两条射线在X点相遇。因为在实践中,我们总是有一些噪声(离散化噪声,舍入误差等等),两条射线在X上不会相遇,所以最好的答案是点Q,这样就可以了。
Q=argmin_X {d(X,ray_1)^2+d(X,ray_2)^2}
其中d(.)表示直线与点之间的欧几里德距离。你可以把这个问题作为一个常规的最小二乘问题来解决,或者你可以采用几何方法(称为中点)来考虑与ray_1和ray_2垂直的线段ray_1,并把它的中间作为你的解。另一种快速和肮脏的方法是使用DLT。基本上,您重写约束(即X应该尽可能接近两种射线)为线性系统AX=0,并用SVD求解它。
通常,几何(中点)方法的精度较低。基于DLT的方法虽然在数值上不是最稳定的,但通常会产生可接受的结果。https://stackoverflow.com/questions/52341007
复制相似问题