相机图片元数据

ARCore 允许您使用 ArImageMetadata 访问相机图片拍摄结果中的元数据键值。部分 您可能需要访问的常见相机图像元数据类型包括焦距、 图片时间戳数据或光线信息。

Android Camera 模块可以记录 160 个或更多与图片相关的参数 具体取决于设备的功能。有关 可能的元数据键,请参阅 NDK Camera 文档

获取单个元数据标记的值

使用ArImageMetadata_getConstEntry() 以获取特定的元数据标记值。以下示例展示了如何获取 ACAMERA_SENSOR_EXPOSURE_TIME 元数据值:

ArSession_update(session, frame);

// Obtain the metadata object from the frame.
ArImageMetadata* ar_metadata;
ArFrame_acquireImageMetadata(session, frame, &ar_metadata);

// Get the exposure time metadata (using ACAMERA_SENSOR_EXPOSURE_TIME in this
// example).
ArImageMetadata_const_entry exposure_entry;
ArImageMetadata_getConstEntry(session, ar_metadata,
                              ACAMERA_SENSOR_EXPOSURE_TIME, &exposure_entry);

获取指定帧的所有元数据标记的列表

使用 ArImageMetadata_getAllKeys() 可获取已捕获的所有元数据键的列表 特定帧。

ArSession_update(session, frame);

// Obtain the metadata object from the frame.
ArImageMetadata* ar_metadata;
ArFrame_acquireImageMetadata(session, frame, &ar_metadata);

// Obtain the list of all the metadata for a given frame.
const uint32_t* all_tags = NULL;
int32_t number_of_tags = -1;

ArImageMetadata_getAllKeys(session, ar_metadata, &number_of_tags, &all_tags);