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