Kamerabild-Metadaten

Mit ARCore kannst du ImageMetadata verwenden, um auf Metadaten-Schlüssel/Wert-Paare aus der Ergebnis der Kameraaufnahme. Einige gängige Arten von Metadaten für Kamerabilder, die Sie sind Brennweite, Bildzeitstempeldaten oder Beleuchtungsprinzip Informationen.

Das Android-Modul Camera kann 160 oder mehr Parameter zum Bild aufzeichnen für jeden aufgenommenen Frame, abhängig von den Funktionen des Geräts. Eine Liste aller mögliche Metadatenschlüssel, siehe ImageMetadata.

Wert eines einzelnen Metadatenschlüssels abrufen

getImageMetadata() verwenden um ein bestimmtes Schlüssel/Wert-Paar für Metadaten abzurufen, und erfassen Sie den MetadataNotFoundException falls nicht verfügbar. Im folgenden Beispiel sehen Sie, SENSOR_EXPOSURE_TIME-Wert des Metadatenschlüssels.

Java

// Obtain the SENSOR_EXPOSURE_TIME metadata value from the frame.
Long getSensorExposureTime(Frame frame) {
  try {
    // Can throw NotYetAvailableException when sensors data is not yet available.
    ImageMetadata metadata = frame.getImageMetadata();

    // Get the exposure time metadata. Throws MetadataNotFoundException if it's not available.
    return metadata.getLong(ImageMetadata.SENSOR_EXPOSURE_TIME);
  } catch (MetadataNotFoundException | NotYetAvailableException exception) {
    return null;
  }
}

Kotlin

// Obtain the SENSOR_EXPOSURE_TIME metadata value from the frame.
fun getSensorExposureTime(frame: Frame): Long? {
  return runCatching {
      // Can throw NotYetAvailableException when sensors data is not yet available.
      val metadata = frame.imageMetadata

      // Get the exposure time metadata. Throws MetadataNotFoundException if it's not available.
      return metadata.getLong(ImageMetadata.SENSOR_EXPOSURE_TIME)
    }
    .getOrNull()
}