ARCore позволяет использовать ArImageMetadata
для доступа к значениям ключей метаданных из результата захвата изображения с камеры. Некоторые распространенные типы метаданных изображения камеры, к которым вам может понадобиться доступ, — это фокусное расстояние, данные временной метки изображения или информация об освещении.
Модуль Camera
Android может записывать 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);