Android - 测量目标对象的距离

时间:2013-10-18 22:33:27

标签: android camera zoom distance

有人可以提供帮助,我需要做这种应用,但更简单。所以你拍照并计算距离......

https://play.google.com/store/apps/details?id=com.potatotree.manualdistance

是否有推荐的好教程? 谢谢。

2 个答案:

答案 0 :(得分:1)

实际上并没有物理方法来获得单点图像的距离。你需要某种视差来确定它有多远。

这就是为什么当你遮住一只眼睛时会失去深度感知 - 当你这样做时你会失去视差(两个参考点之间的距离)。

你需要知道至少一面才能估计三角形的长度。

激光测距仪通过测量激光脉冲的返回时间来解决这个问题,而不是扫描图像。

答案 1 :(得分:1)

有一种简单方法,但我认为非常不准确。看看这个三角形: triangle

现在,想象一下有一个人站在a

  1. 如果此人将相机对准A,然后使用SensorManager.getOrientation(),您可以获得α角度。
  2. 如果您询问用户他的身高,您还可以获得a
  3. 在这种情况下,tan(α)=a/b。因此,距离等于b= a/tan(α)
  4. 这似乎很容易但是在过程中总结的所有错误都会使结果几乎完全无法使用。而且它只能在平地上“工作”。当它很陡时,你必须知道人与测量点之间的垂直差异,并做出更多的计算。

    所以,是的,你可以让它变得简单,但你真的想要吗?