gpt4 book ai didi

安卓相机2 : Auto Focus and Exposure

转载 作者:行者123 更新时间:2023-11-29 14:35:11 26 4
gpt4 key购买 nike

在我的 Android 相机应用程序中,我使用的是 Camera2 API。该应用程序不显示相机的预览,我已经以某种方式实现了它,当按下 UI 上的按钮时,它会拍摄图像。但问题在于自动对焦和自动曝光。简而言之,我需要始终将相机聚焦在其 View 的中间。因此,在构建请求时,我添加了以下属性:

captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO);
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
captureBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CaptureRequest.CONTROL_AWB_MODE_AUTO);
captureBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START);
captureBuilder.set(CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER, CameraMetadata.CONTROL_AE_PRECAPTURE_TRIGGER_START);

但问题仍然是图像没有聚焦。

我有几个问题:

我是否需要在 CameraCaptureSession.CaptureCallback 中的方法中实现一些检查?

我还注意到,在 ImageReader.OnImageAvailableListener 中调用 onImageAvailable 时,CameraCaptureSession.CaptureCallback< 的 onCaptureProgressed 方法被调用 未触发。

我在这里遗漏了什么要点?我是否需要实现一个线程来等待相机对焦,这将在按下拍照按钮时启动。

请注意,此应用程序没有相机预览。

最佳答案

您是否只发送一个捕获请求?或者您是否在后台运行重复请求,然后仅在按下按钮时发出高分辨率捕获?

前者不会真正起作用 - 您必须有一个请求流才能使自动曝光、对焦和白平衡算法收敛到良好的值。单次捕获不会被正确计量或聚焦。

请看Camera2Basic样本;如果您仅用 SurfaceTexture 替换该示例中的 TextureView(给它一个随机纹理 ID 并且不调用 updateTexImage),那么您将无法进行预览。但它正确地实现了聚焦和预捕获触发,这对您来说至关重要。其一,触发器只能根据一个请求设置,然后您确实需要观察返回的捕获结果以查看曝光/聚焦状态何时更改为 FOCUSED 或 CONVERGED。

我还建议使用 CONTINUOUS_PICTURE 对焦模式而不是 AUTO;它可能会让您更快地获得聚焦图像。

关于安卓相机2 : Auto Focus and Exposure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com