我目前正在从 iOS 设备上的相机中提取帧。我使用 ORB 从这些帧中查找关键点及其描述符。然后,我使用 BFMatcher 查找图像上关键点之间的匹配项。
从这里我希望计算从相机到这些点的距离。我使用的所有点都是平面的(现在我使用墙上的销钉进行测试)。在此阶段没有必要考虑非平面表面,因此这应该会让事情变得容易。
我目前有:
- 要点
- 关键点描述符
- 关键点之间的匹配
- 基本矩阵
- 基本矩阵
- 两个摄像头的投影矩阵(尽管我不确定如何测试第二个摄像头是否正确)
我认为我必须以某种形式使用三角测量,但我不确定它是如何工作的。我知道我必须将来自每个摄像机的光线(由摄像机投影矩阵定义?)穿过每个关键点并找到它们相交(或最接近相交)的点。正如我假设的那样,在 3D 空间中,每条光线相交的可能性极小。另外,我的关键点匹配通常非常好,因为我做了一些基本的过滤,但有时关键点是错误的,所以我需要考虑到这一点。
在此之前我使用 Matlab 校准了相机,因此我有焦距、主点和畸变。然而,我从图像中提取的所有点都是二维的。据推测,为此有必要以 3D 形式表示这些点,但我不确定如何表示。
或者我是否采取了完全错误的方法?
显然,这将为场景中的每个点完成,但我只是画了一个点。平面(正方形)将始终处于相同的位置,但相机位置会因帧而异。关键点将位于相同的位置,但并非每帧都会拾取每个点。
最佳答案
参见 Hartley-Sturm 著名的 paper关于最佳三角测量,以及 Kanatani's variant :
关于ios - 查找立体图像中匹配关键点的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13676574/