gpt4 book ai didi

android - 在 Camera2 API 中实现点击对焦

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:46 25 4
gpt4 key购买 nike

我想在我的自定义相机中实现点击对焦功能。这是谷歌提供的基础代码https://github.com/googlesamples/android-Camera2Basic

这是我认为应该添加我的功能的代码 fragment 如果有人实现了 Camera2 API,请帮忙!

  private void lockFocus() {
try {
// This is how to tell the camera to lock focus.
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER,
CameraMetadata.CONTROL_AF_TRIGGER_START);
// Tell #mCaptureCallback to wait for the lock.
mState = STATE_WAITING_LOCK;
mCaptureSession.capture(mPreviewRequestBuilder.build(), mCaptureCallback,
mBackgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}

最佳答案

您需要将自动对焦和自动曝光区域设置为用户点击的区域。

键是CONTROL_AF_REGIONSCONTROL_AE_REGIONS .

它们的单位在传感器中 active array coordinate system ,因此您必须将 UI 触摸坐标转换为相对于预览 View 的坐标,然后从那里转换为 Activity 数组坐标。

如果预览的纵横比与传感器的纵横比相匹配,那就很简单了;如果不是,则必须针对创建预览输出所做的裁剪进行调整。目前关于裁剪如何工作的最佳图表是 here .请注意,如果您还应用缩放,则需要在计算中也包括缩放系数。

计算区域后,您可能希望将 AF 模式设置为 AUTO(而不是通常用于普通预览的 CONTINUOUS_PICTURE),然后触发 AF。收敛 AF(查看拍摄结果中的 AF 状态,等待 AF_STATE_FOCUSED_LOCKED)后,您就可以拍摄合焦的照片了。如果您想在一段时间后返回正常操作或用户取消触摸对焦,请将 AF 模式切换回 CONTINUOUS_PICTURE。

关于android - 在 Camera2 API 中实现点击对焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151244/

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