我正在使用Android相机2 API。
在手动对焦模式下,我可以使用LENS_FOCUS_DISTANCE获取对焦距离值。然而,在自动对焦模式下,该属性始终为零。是否有办法在自动对焦模式下获取对焦距离?
我正在使用Android相机2 API。
在手动对焦模式下,我可以使用LENS_FOCUS_DISTANCE获取对焦距离值。然而,在自动对焦模式下,该属性始终为零。是否有办法在自动对焦模式下获取对焦距离?
最短的距离,即可将镜头前表面带入清晰对焦状态。
如果镜头是固定对焦,则该值为0。
http://developer.android.com/intl/es/reference/android/hardware/camera2/CameraCharacteristics.html
在另一方面,如果您想管理焦点,请记住LENS_INFO_MINIMUM_FOCUS_DISTANCE
给您最小的对焦距离,但要获得“最大”对焦距离,您必须使用LENS_INFO_HYPERFOCAL_DISTANCE
。float yourMinFocus = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
float yourMaxFocus = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_HYPERFOCAL_DISTANCE);
如果您使用CameraX,以下是2021年如何查找相机特性(例如LENS_INFO_MINIMUM_FOCUS_DISTANCE)的方法:
theCamera = cameraProvider.bindToLifecycle(...
CameraCharacteristics camChars = Camera2CameraInfo
.extractCameraCharacteristics(theCamera.getCameraInfo());
float discoveredMinFocusDistance = camChars
.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
Log.i("dev", "min focus is " + discoveredMinFocusDistance);
LENS_INFO_MINIMUM_FOCUS_DISTANCE
的值为0,则表示它是固定焦距并不支持手动对焦。
有限的功能 - 出现在所有报告至少为HARDWARE_LEVEL_LIMITED
的相机设备上。