2024年10月27日 第43讲 AF自动对焦 第二部分 极客笔记
本讲是Android Camera专题系列的第43讲,我们介绍Android Camera2 API专题的AF自动对焦第二部分。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
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恢复到初始状态 |
CONTROL_AF_REGIONS
只有当CameraCharacteristics#CONTROL_MAX_REGIONS_AF > 0时才能设置AF Regions(通常该值是1)
坐标系同AE regions逻辑
CaptureResult#CONTROL_AF_SCENE_CHANGE
CONTROL_AF_SCENE_CHANGE取值 | 描述 |
---|---|
CONTROL_AF_SCENE_CHANGE_DETECTED | 比如FOV(视场角)发生变化、场景发生明显地运动、光照发生变化 |
CONTROL_AF_SCENE_CHANGE_NOT_DETECTED | 未检测到变化 |
MANUAL_SENSOR capability的Camera该值必须 > 0
CaptureRequest#LENS_FOCUS_DISTANCE
0.0, 表示焦点无穷大
取值范围是:[0.0f, android.lens.info.minimumFocusDistance]
这个设置不会当帧生效,可能需要几帧,镜头才能移动到要求的焦点距离。移动过程中android.lens.state会被设置为moving
CaptureResult#LENS_FOCUS_RANGE
该值在某些设备上可能为NULL
CameraCharacteristics#LENS_INFO_HYPERFOCAL_DISTANCE
当你对焦在这个超焦距上时,能够得到在这个光圈和焦距组合下的最大景深范围
CaptureResult#LENS_STATE
LENS_STATE取值 | 描述 |
---|---|
LENS_STATE_STATIONARY | 镜头处于静止状态 |
LENS_STATE_MOVING | 镜头正在移动 |
CameraCharacteristics#LENS_INFO_FOCUS_DISTANCE_CALIBRATION
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% |
本文链接:http://so.lmcjl.com/news/16316/