Métadonnées de l'image de la caméra

ARCore vous permet d'utiliser ArImageMetadata pour accéder aux clés-valeurs de métadonnées à partir du résultat de la capture d'image de la caméra. Parmi les types courants de métadonnées d'image d'appareil photo auxquels vous souhaiterez peut-être accéder, la longueur focale, les données d'horodatage de l'image ou les informations d'éclairage sont des exemples.

Le module Android Camera peut enregistrer au moins 160 paramètres sur l'image pour chaque image capturée, en fonction des fonctionnalités de l'appareil. Pour obtenir la liste de toutes les clés de métadonnées possibles, consultez la documentation Camera du NDK.

Obtenir la valeur d'une balise de métadonnées individuelle

Utilisez ArImageMetadata_getConstEntry() pour obtenir une valeur de balise de métadonnées spécifique. L'exemple suivant montre comment obtenir la valeur de métadonnées 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);

Obtenir la liste de toutes les balises de métadonnées pour une image donnée

Utilisez ArImageMetadata_getAllKeys() pour obtenir la liste de toutes les clés de métadonnées capturées pour une image donnée.

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