【问题标题】:How do I measure distances in an image?如何测量图像中的距离?
【发布时间】:2010-05-21 16:41:42
【问题描述】:

假设我们有这样的图像


(来源:curiousexpeditions.org

假设我们已经在这张图片中使用了过滤器和边缘检测算法。现在我的目标是测量距离(不是实际距离,距离可以是任意单位)。 例如:我如何找到大厅的长度? (直到窗外)

还是书架的高度?你究竟如何放置“刻度”和测量。我正在寻找想法。但是,如果答案是关于 OpenCV 的,那将会有所帮助。

【问题讨论】:

  • 您需要一个机器视觉套件,例如 NI MACHINE VISION...顺便问一下,您使用的是什么 c#、vb、LabVIEW?

标签: image-processing opencv photogrammetry


【解决方案1】:

这取决于你想要做什么。

您提到要测量书架的高度。如果您可以考虑书架的近距离区域“短于”行尾的书架末端的高度,那么您所要寻找的只是测量距离。选择一个“像素”单位,然后使用勾股定理测量距离。 (x^2+y^2 = z^2)

您可能真正想要的是让近处书架的高度与远处书架的高度相同。在这种情况下,您必须了解更多信息。您必须进行 2D -> 3D 转换:您有一个 2D 图像,您需要从该图像重建 3D 图片。此时,您需要第三条信息,因为您需要 2 个变量中的 3 个变量(X、y、z)。

如果您正确校准系统并拥有第二个参考点(例如,激光线),您绝对可以使用 OpenCV 做到这一点。这被称为结构光方法 - 有关更多信息,请参阅 this link 或谷歌“机器视觉结构光”

【讨论】:

    【解决方案2】:

    由于您可以假设书架与其下方的书架平行,因此书架之间的实际距离在任何点都是相等的。您可以确定在深度 X 像素后,感知高度减少 Y %。您应该能够快速建立清晰的模式。实际空间中的所有平行线和直角都会使计算变得简单。

    在每个书架的开头和结尾绘制一些起点。您可以在此处找到相关的数学主题:
    http://en.wikipedia.org/wiki/Slope
    http://en.wikipedia.org/wiki/Cartesian_coordinate_system

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多