在 Google 街景中距地面的 Height/Elevation 个像素

Height/Elevation of a pixel from ground in Google Street View

我想找到 google 街景中每个像素距地面的高度。

我知道可以计算的几件事是:

  1. Pitch of a pixel

  2. Depth map of every pixel from camera

    还有一个javascript library可以获取深度图。

是否可以将两者放在一起计算一个像素离地面的实际高度?

如果我们知道相机的高度,那么这就变成了一个简单的三角函数问题。

tan(angle) = height-above-camera / depth

所以

height-above-camera = depth * tan(angle)

如果已知相机距离地面 8 英尺,那么我们可以得到一个像素的实际高度

height = 8ft + depth * tan(angle)

整个计算取决于深度图的质量。

您可以利用的另一件事是假设深度图中的块在地面结束。然后 运行 对图像进行边缘检测。

这里我使用了一个在线的Canny Edge detection,它正在挑选右侧方块的底部。一点三角应该得到高度。

如果允许交互式使用,比使用图像处理更好,让用户单击对象的底部和对象的顶部。知道底部点的间距可以计算距离。