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