第43讲 af自动对焦 第二部分 -凯发k8手机登录

本讲是android camera专题系列的第43讲,我们介绍android camera2 api专题的af自动对焦第二部分。

更多资源:

资源 描述
在线课程
知识星球 星球名称:深入浅出android camera
星球id: 17296815
wechat 极客笔记圈

af trigger

capturerequest控制是否要触发auto focus

control_af_trigger取值 描述
control_af_trigger_idle 未触发auto focus
control_af_trigger_start 触发auto focus,如果是manual focus模式,触发无效。通常我们只需要在单个capturerequest中触发auto focus。如果在repeating的capturerequest中设置了触发,则auto focus会不停地一直重复对焦
control_af_trigger_cancel 取消正常进行中的auto focus,让af state恢复到初始状态

可以在一个capturerequest中同时使能af trigger和ae precapture trigger,hal这边可能会串行完成每类trigger

af regions

control_af_regions

  • 设置af算法的roi
  • 只有当cameracharacteristics#control_max_regions_af > 0时才能设置af regions(通常该值是1)

  • 坐标系同逻辑

af scene change

captureresult#control_af_scene_change

  • 在当前设置的af rois内是否检测到显著的场景变化,需要重新对焦了

注:并非所有设备都支持上报该值,使用前需要检查cameracharacteristics#getavailablecaptureresultkeys

control_af_scene_change取值 描述
control_af_scene_change_detected 比如fov(视场角)发生变化、场景发生明显地运动、光照发生变化
control_af_scene_change_not_detected 未检测到变化

manual focus

是否支持手动控制对焦距离

  • cameracharacteristics#lens_info_minimum_focus_distance
    • 如果该值为0表示不支持手动调整对焦距离
    • manual_sensor capability的camera该值必须 > 0

如何控制对焦距离

  • capturerequest#lens_focus_distance

    • 从镜头最前面的表面测量。
    • 0.0, 表示焦点无穷大

    • 取值范围是:[0.0f, android.lens.info.minimumfocusdistance]

    • 这个设置不会当帧生效,可能需要几帧,镜头才能移动到要求的焦点距离。移动过程中android.lens.state会被设置为moving

focus range

captureresult#lens_focus_range

  • 当前景深范围,以(near, far)表示
  • 该值在某些设备上可能为null

focus range

超焦距点

cameracharacteristics#lens_info_hyperfocal_distance

  • 当前镜头的超焦距点
  • 当你对焦在这个超焦距上时,能够得到在这个光圈和焦距组合下的最大景深范围

lens state

captureresult#lens_state

  • 表示当前镜头是否在移动
lens_state取值 描述
lens_state_stationary 镜头处于静止状态
lens_state_moving 镜头正在移动

focus distance校准质量

cameracharacteristics#lens_info_focus_distance_calibration

  • focus distance的校准质量,描述focus distance相关参数的可靠性(focus distance,focus range,hyperfocaldistance)
lens_info_focus_distance_calibration取值 描述
lens_info_focus_distance_calibration_uncalibrated = 0 未校准过,focus distance没有任何物理含义,相同的focus distance可能有不同的对焦结果。
capturerequest设置的focus distance与最终captureresult生效的focus distance误差不超过25%
lens_info_focus_distance_calibration_approximate = 1 近似校准过,focus distance以屈光度来衡量。相同的focus distance可能有不同的对焦结果。
capturerequest设置的focus distance与最终captureresult生效的focus distance误差不超过10%
lens_info_focus_distance_calibration_calibrated = 2 校准过,focus distance以屈光度来衡量。相同的focus distance有相同的对焦结果。
capturerequest设置的focus distance与最终captureresult生效的focus distance误差不超过5%

camera课程

python教程

java教程

web教程

数据库教程

图形图像教程

办公软件教程

linux教程

计算机教程

大数据教程

开发工具教程

android camera2 api

网站地图