Metadane zdjęcia w aparacie

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);