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);