Metadatos de la imagen de la cámara

ARCore te permite usar ImageMetadata para acceder a los valores clave de metadatos desde el resultado de la captura de imágenes de la cámara. Algunos tipos comunes de metadatos de la imagen de la cámara a los que puedes acceder son la longitud focal, los datos de marca de tiempo de la imagen o la información de iluminación.

El módulo Camera de Android puede registrar 160 o más parámetros sobre la imagen para cada fotograma capturado, según las capacidades de un dispositivo. Para obtener una lista de todas las claves de metadatos posibles, consulta ImageMetadata.

Obtén el valor de una clave de metadatos individual

Usa getImageMetadata() para obtener un valor de clave de metadatos específico y detecta la MetadataNotFoundException si no está disponible. En el siguiente ejemplo, se muestra cómo obtener el valor de clave de metadatos 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()
}