【问题标题】:How to measure distance between camera and an object?如何测量相机和物体之间的距离?
【发布时间】:2022-11-23 08:43:49
【问题描述】:

我是 OpenCV 初学者,只是想知道哪种方法最适合测量 给定视频中相机与对象之间的距离。

我在导师之前遇到的每个教程都是先使用相机校准,然后再对相机镜头进行反失真。但是在这种情况下我没有使用自己的相机,那么我是否有必要使用这些功能呢?

另外,我记录了一些摄像头的数据,比如:

  • (fx,fy) = 焦距
  • (cx,cy) = 原理点
  • (width,height) = 图像形状
  • 径向 = 径向畸变
  • (t1,t2) = 切向畸变。

【问题讨论】:

  • 你知道物体的尺寸吗?如果您可以将图像平面上的公制测量值链接到表观像素测量值,是的,您可以计算出该物体到相机的距离。
  • 感谢您的快速回答,但这并没有回答我的问题。我必须使用相机校准和/或不失真吗?
  • 您将必须参加有关计算机视觉的课程或阅读合适书籍的章节。 szeliski.org/Book是免费的
  • @WhiteDragon 没有镜头畸变校正,只要您依赖像素测量(像素的大小/位置),就会出现错误。如果这是一个问题取决于你想要达到的准确性。

标签: python opencv


【解决方案1】:

通常,人们确实会测量单个相机与具有物体先验知识的物体之间的距离。它可以是平面图案的尺寸或边缘的 3D 位置,可以使用图像分析轻松自动检测到。

计算物体相对于相机的位置通常是通过解决 PnP 问题来完成的。

https://en.m.wikipedia.org/wiki/Perspective-n-Point

求解 PnP 方程确实需要相机参数(至少是固有矩阵,理想情况下是畸变系数以获得更高的精度)。

这些参数可以通过校准相机来估计。 OpenCV 提供了一些可用于校准单目相机的函数。或者,您可以使用像CalibPro 这样的平台来为您计算这些参数。

[免责声明] 我是 Calibpro 的创始人。我很乐意帮助您使用该平台,我希望您能就使用该平台的体验提供反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2014-11-10
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多