ARCore pozwala używać ArImageMetadata
aby uzyskać dostęp do par klucz-wartość metadanych z wyniku przechwytywania obrazu aparatu. Niektóre
typ metadanych obrazu z aparatu, z których warto skorzystać, to
ogniskowa,
sygnaturze czasowej czy informacjami o oświetleniu.
Moduł Camera
na Androidzie może rejestrować co najmniej 160 parametrów obrazu
dla każdej przechwyconej klatki, w zależności od możliwości urządzenia. Lista wszystkich
możliwe klucze metadanych znajdziesz w dokumentacji NDK Camera
.
Uzyskiwanie wartości pojedynczego tagu metadanych
Użyj formatu ArImageMetadata_getConstEntry()
aby uzyskać określoną wartość tagu metadanych. Poniższy przykład pokazuje uzyskiwanie wartości metadanych ACAMERA_SENSOR_EXPOSURE_TIME
:
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);
Pobieranie listy wszystkich tagów metadanych dotyczących danej klatki
Użyj usługi ArImageMetadata_getAllKeys()
, aby uzyskać listę wszystkich przechwyconych kluczy metadanych
dla danej klatki.
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);