我目前正在ios设备上从相机中拉帧。从这些帧我使用ORB来查找关键点及其描述符。然后我使用BFMatcher查找图像上关键点之间的匹配。
从这里我希望计算从相机到这些点的距离。我使用的所有点都是平面的(现在我使用墙上的针测试)。在这个阶段没有必要考虑非平面表面,所以这有望使它变得容易。
我目前有:
我认为我必须以某种形式使用三角测量,但我不确定它是如何工作的。我知道我必须通过每个关键点从每个摄像机(由摄像机投影矩阵?定义)传递光线,并找到它们相交的点(或最接近交叉点)。正如我在3D空间中所假设的那样,每条射线相交的可能性极小。此外,我的关键点匹配通常非常好,因为我做了一些基本的过滤,但有时关键点是错误的,所以我需要考虑到这一点。
我之前使用Matlab校准了相机,所以我有焦距,主点和失真。但是,我从图像中提取的所有点都是2D。据推测,有必要用3D表示这些点,但我不确定如何。
或者我完全采取了错误的方法吗?
http://i47.tinypic.com/mt88p1.png
显然,这将针对场景中的每个点进行,但我只画了一个点。平面(正方形)将始终处于相同位置,但摄像机位置将因帧而异。关键点将处于相同位置,但不是每个帧都会拾取每个点。