2014-11-02 135 views
0

你好我使用的是华硕xtion亲现场摄像机为我的目标检测,我也是新来的OpenCV。我试图从相机中获得物体的距离。检测到的对象在2d图像中。林不知道我应该用什么来获取信息,然后跟着计算,以获得相机和对象之间的距离检测。请有人给我建议吗?如何找到华硕xtion亲相机OpenCV的物体距离,ROS

回答

0

总之:你不能。

你失去的深度信息,并在你的相机图像的任何可见的像素基本上变成一个光线从相机始发。

所以,一旦你得到的像素X的对象,所有你知道的是,物体相交的地方在此基础上像素相机的内在/外在参数向量演员。

你基本上需要更多的信息。以下之一应该就足够了:

  • 知道3D点的至少一个坐标(例如,检测到的所有内容位于地面或某个已知平面上)。
  • 知道两个投影点之间的关系:
    • 无论是从不同位置处的相同点它们(之间(已知的照相机运动/偏移)
    • 或两个点处与显著距离像一些人​​员或杆的两个端部)。

一旦你要么,你就可以使用简单的三角函数(三规则)来计算缺失值。


因为我最初错过了这是一个摄像头,一个OpenNI兼容深度传感器,它可以通过definining建库时的预处理器定义WITH_OPENNI建立与这种支持的OpenCV。

+0

噢好吧。所以如果我要在一个已知的平面上检测到固定尺寸的桌面,我将能够找出距离并做类似的事情? https://www.youtube.com/watch?v=35rbeE1c-D4 – user3868279 2014-11-02 09:00:41

+0

如果您知道表格及其位置/方向,那么您可以使用该信息重建您“看到”处于相同位置的任何3D坐标平面(也就是说,你将所提到的相机与已知平面相交的矢量相交)。这实质上就是带有标记的增强现实游戏(例如在3DS上)如何工作。已知的对象/尺寸(标记)用于确定别的东西(在这种情况下为桌子或地面)的位置/方向。 – Mario 2014-11-02 11:21:37

+0

嗨,你能指导我如何找到已知飞机的坐标教程吗? – user3868279 2014-11-06 14:11:12

0

我不喜欢成为一个打破这个给你,但你正在做什么是不可能的或者有一台摄像机非常困难。

你需要有移动摄像机,记录它的视频,并使用complex technique such as this。通常,3d信息是从至少2个来自2个不同地方的2d图像创建的。您还需要非常精确地知道两幅图像之间的距离和旋转。常用技术是使两台相机精确测量两者之间的距离。

0

的Xtion是不是基本的网络摄像头。这是一个类似于Kinect和Primesense的立体视觉深度感应凸轮。主要的API是OpenNI - 请参阅http://structure.io/openni

相关问题