如何测量图像中的距离?

Laz*_*Laz 6 opencv image-processing photogrammetry

假设我们有一个像这样的图像

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

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

还是书架的高度?你究竟如何放置"规模"和衡量标准.我正在寻找想法.但是,如果答案是OpenCV,那将会有所帮助.

Cri*_*onX 1

这取决于您想要做什么。

您提到您想测量书架的高度。如果您可以认为书架的近距离区域比该行末尾的书架末端的高度“短”,那么您所需要的只是测量距离。选择“像素”单位,然后使用毕达哥拉斯定理测量距离。(x^2+y^2 = z^2)

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

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