Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在立体图像中查找匹配关键点的距离_Ios_Opencv_Computer Vision_Triangulation - Fatal编程技术网

Ios 在立体图像中查找匹配关键点的距离

Ios 在立体图像中查找匹配关键点的距离,ios,opencv,computer-vision,triangulation,Ios,Opencv,Computer Vision,Triangulation,我目前正在从ios设备上的相机中提取帧。从这些帧中,我使用ORB查找关键点及其描述符。然后我使用BFMatcher查找图像上关键点之间的匹配 从这里我希望计算出从相机到这些点的距离。我使用的所有点都是平面的(现在我使用墙上的图钉进行测试)。在这一阶段,不需要考虑非平面表面,因此希望这会使它变得容易 我目前有: 关键点 关键点描述符 关键点之间的匹配 基本矩阵 本质矩阵 两台摄像机的投影矩阵(尽管我不确定如何测试第二台摄像机是否正确) 我想我必须以某种形式使用三角测量,但不完全确定这是如何工作

我目前正在从ios设备上的相机中提取帧。从这些帧中,我使用ORB查找关键点及其描述符。然后我使用BFMatcher查找图像上关键点之间的匹配

从这里我希望计算出从相机到这些点的距离。我使用的所有点都是平面的(现在我使用墙上的图钉进行测试)。在这一阶段,不需要考虑非平面表面,因此希望这会使它变得容易

我目前有:

  • 关键点
  • 关键点描述符
  • 关键点之间的匹配
  • 基本矩阵
  • 本质矩阵
  • 两台摄像机的投影矩阵(尽管我不确定如何测试第二台摄像机是否正确)
我想我必须以某种形式使用三角测量,但不完全确定这是如何工作的。我知道我必须将来自每个摄影机(由摄影机投影矩阵定义)的光线通过每个关键点,并找到它们相交(或最接近相交)的点。正如我假设的那样,在3D空间中,每条光线相交的可能性非常小。此外,我的关键点匹配通常相当好,因为我做一些基本的过滤,但有时关键点是错误的,所以我需要考虑这一点

在此之前,我使用Matlab校准了相机,所以我得到了焦距、主点和失真。但是,我从图像中提取的所有点都是二维的。据推测,这是必要的,以表示这些点在三维,但我不知道如何

还是我完全采取了错误的方法


显然,这将在场景中的每个点上完成,但我只是在其中画了一个点。平面(正方形)将始终处于相同的位置,但摄影机的位置将因帧而异。关键点将位于相同的位置,但并非每个帧都拾取每个点。

请参阅Hartley Sturm著名的最佳三角测量,以及:

能否发布一张显示相机和点位置的图纸?这将使它更容易理解……谢谢,我现在就来看看这些^ ^ ^ ^ ^我在很多帮助下实现了线性三角剖分算法。它生成每个关键点的x、y、z、w坐标。我猜是因为它们都在-1到1之间,它们在世界空间中?现在要了解如何将图像投影到这些点:)