代码之家  ›  专栏  ›  技术社区  ›  Laz

如何测量图像中的距离?

  •  5
  • Laz  · 技术社区  · 14 年前

    假设我们有这样的图像

    alt text http://www.curiousexpeditions.org/North%20Reading%20Room,%20UC%20Berkeley,%20California,%20USA.jpg

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

    或者书架的高度?你如何准确地放置“刻度”和测量。我在找主意。但是,如果答案是以opencv的形式给出的,那将有所帮助。

    2 回复  |  直到 12 年前
        1
  •  0
  •   CrimsonX    14 年前

    这取决于你想做什么。

    你提到你想测量书架的高度。如果你认为书架的近距离区域比行末书架的高度“短”,那么你所要找的就是测量距离。选择“像素”单位,然后使用勾股定理测量距离。(x^ 2+y^ 2=z ^ 2)

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

    如果您正确校准了系统并有第二个参考点(例如,激光线),那么您一定可以使用opencv进行此操作。这就是所谓的结构光方法-参见 this link 更多信息或谷歌“机器视觉结构光”

        2
  •  0
  •   Dinah SLaks    14 年前

    因为你可以假设一个书架与它下面的一个平行,那么书架之间的实际距离在任何点上都是相等的。您可以确定在深度为x个像素之后,感知的高度降低了y%。你应该能够快速建立一个清晰的模式。所有的平行线和直角在你的实际空间将使数学容易。

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

    推荐文章