我想找到从对象到我的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
}
答案 0 :(得分:0)
如果您知道物体的实际尺寸,相机可以为您提供距离的估计值。
我认为其他传感器不会告诉你有关距离的信息。
使用相机,您需要进行一些图像处理,并找出区域或其他尺寸参数。了解实际尺寸和感知尺寸后,如果物体易于检测到相机,则可以计算距离(近似但足够好)。
如果你想这样,你可以尝试JavaCV。
希望这有帮助。
祝你好运。
答案 1 :(得分:0)
Is it possible to measure distance to object with camera这个问题对于使用相机进行距离有很好的讨论(对于大多数情况来说这不容易或准确)
实际上,通过使用 IR (通常不适用于黑色物体)或超声波传感器,可以更准确地测量距离。
在这两种情况下,您都需要将Android连接到微控制器,以控制和读取这些外部传感器的值。