类似于鹰眼的 3D 三角测量



如果以前有人问过这个问题,请原谅我,但我想知道从哪里开始实现立体视觉以将 2D 坐标转换为 3D 坐标。 我正在尝试在3D中跟踪像鹰眼这样的球。 我有两个高速摄像头,我能够检测到每个摄像头中的球。 我知道我需要校准相机,同步它们并运行一些算法来消除镜头失真等。 但是,我不知道下一步将2D坐标转换为世界3D坐标是什么。

有没有人知道如何进行三角测量,谁可以帮助我解决这个问题? 此外,相机不会彼此平行,而是以不同的角度,所以不知何故,我需要根据其 3D 坐标知道每个相机的位置。

任何这方面的帮助将不胜感激。

非常感谢

要将两个校准相机的 2D 转换为 3D,请使用以下公式:z = 焦点*基线/视差x = z*u/焦点y = z*v/焦点

哪里焦距 - 相机的焦距(以像素为单位)u = 色谱柱-Cx, Cx~image_width/2 但校准将为您提供更精确的值v = -row+Cy, Cy~image_height/2基线 - 相机之间的水平距离视差 - 两个图像中球的水平位置差异

严格来说,您只需要对密集立体声进行处理时才需要进行校正。对于稀疏立体声,您只需要校准。

我最近发现了《Learning OpenCV》一书的片段。它似乎是关于opencv背后的理论和实现的良好知识来源。虽然书中的 API 已经过时,但通用机制仍然是最新的。综上所述,他们建议:

  1. 消除失真(如果您已经校准了相机,则已经可以执行此操作)
  2. 调整摄像机之间的距离和角度
  3. 在两张图像上找到相同的特征
  4. 通过考虑对象在图像上的位置的简单计算来估计深度。

相关内容

  • 没有找到相关文章

最新更新