如何在自动对焦模式下计算物体与相机的距离?我曾尝试使用 Camera.Parameters.getFocusDistances(float[]) 方法,但它总是在我的 Galaxy S2 上返回值 .15、1.2 和 Infinity。任何帮助将不胜感激。 这是我正在使用的代码:-
..........
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
}
还有其他方法可以实现吗?
最佳答案
不 :( Check out this other stackoverflow answer. “不。相机只能为您提供图像数据,而单独的图像并不能为您提供足够的信息来为您提供深度信息。如果您有多个图像,甚至有位置信息然后您可以处理视频以三角测量距离,但单独的单个图像不足以为您提供距离”
关于android - 如何从相机android获取物体距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074659/