Android Camera2 —CaptureResult API 详解

一、CaptureResult概述

图像传感器捕获的单个图像结果的子集。
包含捕获硬件(传感器、镜头、闪光灯)、处理管道、控制算法和输出缓冲区的最终配置的子集。
CaptureResults 由 CameraDevice 在处理 CaptureRequest 后生成。 还可以在捕获结果上查询为捕获请求列出的所有属性,以确定用于捕获的最终值。 结果还包括有关拍摄期间相机设备状态的附加元数据。
并非 CameraCharacteristics.getAvailableCaptureResultKeys() 返回的所有属性都一定可用。 有些结果是部分结果,不会包含每个键集。 仅保证总结果具有请求启用的每个可用密钥。
CaptureResult 对象是不可变的。

二、方法

/**

获取捕获结果字段值。
字段定义可以在 CaptureResult 中找到。
多次查询同一键的值将返回与前一次查询的值相等的值。
参数:
key – 要读取的结果字段。
Return:
该键的值,如果未设置该字段则为 null。
Throw:
IllegalArgumentException – 如果密钥无效

*/

@Nullable
public <T> T get(Key<T> key) 

/**

返回此映射中包含的键的列表。
返回的列表不可修改,因此任何修改它的尝试都会抛出 UnsupportedOperationException。
通过 #get 从此列表中的键检索到的所有值都保证为非空。 每个键仅在列表中列出一次。 键的顺序未定义。

*/

@NonNull
public List<Key<?>> getKeys()

/**

获取与此结果关联的请求。
每当使用 CameraCaptureSession.CaptureCallback.onCaptureCompleted 或 CameraCaptureSession.CaptureCallback.onCaptureProgressed 完全或部分捕获请求时,结果的 getRequest() 将返回该请求。
例如,
cameraDevice.capture(someRequest, new CaptureCallback() {
        @Override
       void onCaptureCompleted(CaptureRequest myRequest, CaptureResult myResult) {
           assert(myResult.getRequest.equals(myRequest) == true);
       }
   }, null);
  
返回:
与此结果关联的请求。 永不为空。

*/

@NonNull
public CaptureRequest getRequest()

/**

获取与此结果关联的帧号。
每当处理请求时,无论失败还是成功,它都会获得分配给其未来结果/失败的唯一帧号。
对于相同类型的请求(从相机设备捕获或重新处理),对于每个新结果或失败,该值从 0 开始单调递增,范围是 CameraDevice 的生命周期。 在不同类型的请求之间,帧号可能不是单调递增的。 例如,较新的reprocess 处理结果的帧号可能小于从相机设备capturing 新图像的较旧结果的帧号,但较新的reprocess 处理结果的帧号绝不会小于reprocess 处理较旧结果的帧号。 旧的重新处理结果。
Return:帧数

*/

public long getFrameNumber()

/**

由 CameraCaptureSession.capture 系列函数返回的此失败的序列 ID。
序列 ID 是一个从 0 开始的唯一单调递增值,每次向 CameraDevice 提交一组新请求时都会递增。
Return:int 此捕获结果所属的请求序列的 ID

*/

public int getSequenceId()

猜你喜欢

转载自blog.csdn.net/github_27263697/article/details/131578289