gpt4 book ai didi

android - 点击以在 CameraX 中调整焦点/曝光

转载 作者:行者123 更新时间:2023-12-03 09:39:53 27 4
gpt4 key购买 nike

我想实现标准的用户体验,在预览中点击一个点,以将自动对焦和自动曝光点调整到他们点击的位置。我找到了 Preview.focus() 函数,但是它说它需要“传感器坐标系”中的尺寸,我假设它与 TextureView 的 TouchEvent 像素坐标不同。

如何从 TextureView 预览的触摸坐标转换为 Preview.focus() 预期的“传感器坐标框架”?

如果这个示例是示例代码的一部分,那就太好了,因为它似乎是一个几乎每个人都会期望的非常常见的用例。

最佳答案

TextureView 的坐标与传感器坐标不同。请引用示例代码 here (请注意,“CameraView”在 maven 存储库中尚未公开。所以我们不鼓励您现在使用它)。我们知道这些工作量很大,因此 CameraX 团队也在开发对开发人员更友好的对焦/测光 API 版本。

基本流程如下:
(1) 从 View 触摸事件中获取 x, y。
(2) 使用设备方向和camera2 CameraCharacteristics.SENSOR_ORIENTATION计算相对相机方向。该值表示传感器图像在当前设备方向上需要旋转到直立的顺时针角度。
(3) 将 x, y 交换为 90/270 度,并通过方向适本地反转 x, y。反转 x 进行镜像(前置摄像头)
(4) 使用 CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE) 转换为传感器坐标,查看宽度/高度。

注意:对于相机 ID,现在您可以在 mCameraManager.getCameraIdList() 中找到第一个 camera_id 并具有正确的镜头朝向。但是算法可以改变。

关于android - 点击以在 CameraX 中调整焦点/曝光,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56383955/

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