Metadati immagine fotocamera

ARCore ti consente di utilizzare ImageMetadata per accedere alle coppie chiave-valore dei metadati dal risultato dell'acquisizione di immagini con la fotocamera. Alcuni tipi comuni di metadati delle immagini delle videocamere che potresti voler accedere sono: lunghezza focale, dati timestamp dell'immagine o illuminazione informazioni.

Il modulo Camera per Android può registrare almeno 160 parametri relativi all'immagine per ogni fotogramma acquisito, in base alle funzionalità del dispositivo. Per un elenco di tutte possibili chiavi di metadati, consulta ImageMetadata.

Visualizzare il valore di una singola chiave di metadati

Utilizza getImageMetadata() per ottenere una coppia chiave-valore specifica dei metadati e rilevare il MetadataNotFoundException se non sono disponibili. L'esempio seguente mostra come ottenere il Valore chiave dei metadati SENSOR_EXPOSURE_TIME.

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()
}