Metadane zdjęcia w aparacie

ARCore pozwala używać ArImageMetadata, aby uzyskiwać dostęp do par klucz-wartość metadanych z wyniku zrobienia zdjęcia aparatem. Do popularnych typów metadanych obrazu z aparatu, do których masz dostęp, należą: ogniskowa, dane sygnatury czasowej obrazu i informacje o oświetleniu.

W zależności od możliwości urządzenia moduł Camera Androida może rejestrować do 160 parametrów obrazu dla każdej zarejestrowanej klatki. Listę wszystkich możliwych kluczy metadanych znajdziesz w dokumentacji pakietu NDK Camera.

Uzyskiwanie wartości pojedynczego tagu metadanych

Aby uzyskać konkretną wartość tagu metadanych, użyj ArImageMetadata_getConstEntry(). Poniższy przykład ilustruje, jak uzyskać wartość 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 dla danej ramki

Użyj narzędzia ArImageMetadata_getAllKeys(), aby uzyskać listę wszystkich kluczy metadanych przechwyconych w przypadku 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);