如何在我的安卓设备上测量物体距离?

3

我想要找到物体到我的安卓设备的距离。

我想使用相机或传感器,但我不知道如何使用它们。

谢谢帮助。

这是我的代码,但它没有给出正确的值。

  ..........
cam=Camera.open();
Camera.Parameters pa=cam.getParameters();
pa.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
cam.setParameters(pa);
cam.startPreview();
cam.autoFocus(this);
..........


@Override
public void onAutoFocus(boolean arg0, Camera arg1) {
    // TODO Auto-generated method stub
        float f[]=new float[3];
        arg1.getParameters().getFocusDistances(f);
        text.setText(""+f[1]);  //Always returns 1.2
        t2.setText(""+f[0]);    //Always returns .15
        t3.setText(""+f[2]);    //Always returns Infinity

    }

需要更多的澄清...到目前为止你尝试了什么? - Lokesh
如果我使用相机,它会找到距离相机最近的物体距离。 - saritha
2个回答

0

如果您知道物体的实际大小,相机可以为您提供距离的估计。

我认为其他传感器不会告诉您任何关于距离的信息。

使用相机,您需要进行一些图像处理,并找出面积或其他尺寸参数。如果相机容易检测到物体,则知道实际和感知大小,您可以计算距离(近似但足够好)。

如果您想走这条路,可以尝试JavaCV

希望这有所帮助。
祝你好运。


0

使用相机测量物体距离是否可行这个问题有一个关于使用相机测量距离的讨论(对于大多数情况来说,这并不容易或准确)

实际上,通过使用红外线(通常无法用于黑色物体)或超声波传感器,可以更可靠地测量距离,并且精度更高。

在这两种情况下,您需要将您的安卓手机连接到微控制器,以便控制和读取这些外部传感器的值。

如果您希望采用这种方法,可以考虑使用ArduinoIOIO将适当的传感器连接到您的手机上,以测量距离。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接