我是OpenCV的初学者,我想从2D(投影在图像上)找到3D点,并且知道点中三个世界坐标中的两个。
问题变量#1 已知:X,Y未知:Z
问题变体#2 已知:X,Z未知:Y
问题变体#3 已知:Y,Z未知:X
如何找到第三个未知坐标?有可能吗?
答案 0 :(得分:0)
是的,这是可能的。考虑缺少非线性失真的简单情况。令Ki为相机矩阵的倒数,以及世界原点的相机中心(即无旋转或平移)。设p =(u,v,1)为均匀像素坐标。然后通过像素的光线是:
s * P = Ki * p
其中s > 0
是未知比例。但是s * P = [X, Y, Z]
,所以如果您知道X,Y或Z中的任何一个,您可以求解s
并找到丢失的坐标。
对于非零旋转平移,将Ki替换为投影矩阵的倒数。对于非零失真,将Ki替换为完全重投影方程的简单乘法。