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