如何找到从对象到我的Android设备的距离

时间:2014-03-18 07:00:57

标签: android camera android-sensors

我想找到从对象到我的Android设备的距离。

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

感谢您的帮助。

听到我的代码,但它没有给出正确的值

  ..........
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

    }

2 个答案:

答案 0 :(得分:0)

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

我认为其他传感器不会告诉你有关距离的信息。

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

如果你想这样,你可以尝试JavaCV

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

答案 1 :(得分:0)

Is it possible to measure distance to object with camera这个问题对于使用相机进行距离有很好的讨论(对于大多数情况来说这不容易或准确)

实际上,通过使用 IR (通常不适用于黑色物体)或超声波传感器,可以更准确地测量距离。

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

如果您希望采用此根,可以考虑使用适当的传感器将ArduinoIOIO附加到手机以测量距离。