![](/img/trans.png)
[英]How to disable/modify AutoFocus and AutoWhiteBalance on Android Camera using OpenCV
[英]disable autofocus in android camerax (camera 2)
我正在扫描条形码的项目中,所以我想禁用自动对焦以提高性能。 我尝试了很多方法,但它根本不起作用。 谁能给我一些帮助? 谢谢你。
如果您真的想关闭自动对焦,您可以在 CameraX 上使用Camera2CameraControl
class 执行此操作。 为此,您必须首先将您需要的用例绑定到导致Camera
object 的生命周期,然后您可以使用该相机 object 来获取CameraControl
object,然后让您使用它来设置焦点Camera2CameraControl
模式为CameraMetadata.CONTROL_AF_MODE_OFF
。
val camera : Camera = cameraProvider.bindToLifecycle(
this,
cameraSelector,
imagePreview,
imageCapture,
imageAnalysis
)
val cameraControl : CameraControl = camera.cameraControl
val camera2CameraControl : Camera2CameraControl = Camera2CameraControl.from(cameraControl)
//Then you can set the focus mode you need like this
val captureRequestOptions = CaptureRequestOptions.Builder()
.setCaptureRequestOption(CaptureRequest.CONTROL_AF_MODE, CameraMetadata.CONTROL_AF_MODE_OFF)
.build()
camera2CameraControl.captureRequestOptions = captureRequestOptions
这是在最新的 CameraX 的“1.0.0-rc03”版本上测试的。
我用
disableAutoCancel()
使用 cameraX 1.0.0。 相机对焦一次然后保持锁定,自动对焦不会每隔 X 秒重新启动一次,所以像
val autoFocusAction = FocusMeteringAction.Builder(
autoFocusPoint,
FocusMeteringAction.FLAG_AF or
FocusMeteringAction.FLAG_AE or
FocusMeteringAction.FLAG_AWB
).apply {
disableAutoCancel()
}
}.build()
myCameraControl!!.startFocusAndMetering(autoFocusAction)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.