Kamerabild-Metadaten

Mit ARCore kannst du ArImageMetadata verwenden, um auf Metadaten-Schlüssel/Wert-Paare aus dem Ergebnis der Kamerabildaufnahme zuzugreifen. Gängige Arten von Metadaten von Kamerabildern, auf die Sie möglicherweise zugreifen möchten, sind Brennweite, Bildzeitstempeldaten oder Informationen zur Beleuchtung.

Das Android-Modul Camera kann je nach den Funktionen des Geräts 160 oder mehr Parameter zum Bild für jeden erfassten Frame aufzeichnen. Eine Liste aller möglichen Metadatenschlüssel finden Sie in der NDK-Dokumentation zu Camera.

Wert eines einzelnen Metadaten-Tags abrufen

Verwenden Sie ArImageMetadata_getConstEntry(), um einen bestimmten Metadaten-Tag-Wert abzurufen. Das folgende Beispiel zeigt, wie der Metadatenwert ACAMERA_SENSOR_EXPOSURE_TIME abgerufen wird:

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

Liste aller Metadaten-Tags für einen bestimmten Frame abrufen

Verwenden Sie ArImageMetadata_getAllKeys(), um eine Liste aller Metadatenschlüssel abzurufen, die für einen bestimmten Frame erfasst wurden.

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