2012-12-03 36 views
2

我目前正在从ios设备上的相机中拉出帧。从这些框架中,我使用ORB来查找关键点及其描述符。然后我使用BFMatcher来查找图像上关键点之间的匹配。查找立体图像中匹配关键点的距离

从这里我希望计算从相机到这些点的距离。我使用的所有点都是平面的(现在我使用墙上的引脚进行测试)。在这个阶段没有必要考虑非平面表面,所以这应该很容易。

我目前有:

  • 关键点
  • 关键点描述符
  • 关键点之间的较量
  • 基本矩阵
  • 本质矩阵
  • 投影矩阵,两个摄像头(虽然我不确定如何测试第二台相机是否正确)

我认为我必须以某种形式使用三角测量,但我不确定它是如何工作的。我知道我必须通过每个关键点从每个相机传递一个光线(如相机投影矩阵定义的?),并找到它们相交(或最接近相交)的点。正如我在3D空间中假设的那样,每条光线相交的几率不太可能。另外,我的关键点匹配通常很好,因为我做了一些基本的过滤,但有时候关键点是错误的,所以我需要对此进行说明。

我之前使用Matlab校准过相机,所以我有焦距,主点和失真。但是,我从图像中提取的所有点都是2D。据推测,这是必要的3D代表这些点,但我不知道如何。

或者我完全错误的做法?

http://i47.tinypic.com/mt88p1.png

显然,这将场景中的每个点进行,但我只是画了一个点。这些飞机(正方形)总是在相同的位置,但相机的位置也会从帧改变帧。关键点将处于相同的位置,但不是每个点都会被拾起。

+0

你能发布展示您的相机和你的点位绘图?这将使这**更容易理解.... – lnafziger

回答

2

见哈特利 - 斯特姆最优三角的著名paper,以及Kanatani's variant

+0

谢谢,我现在看看那些^ __^ – Zoosmell

+0

我实施了线性三角测量算法,并提供了很多帮助。它产生每个关键点的x,y,z,w坐标。我猜是因为它们都在-1到1范围内,这些都在世界空间中?现在要弄清楚如何将图像投影到这些点上:) – Zoosmell