カメラ画像のメタデータ

ARCore では、ArImageMetadata を使用して、カメラ画像のキャプチャ結果にあるメタデータのキー値にアクセスできます。アクセスが必要な一般的なカメラ画像メタデータとしては、焦点距離、画像のタイムスタンプ データ、照明情報などがあります。

Android Camera モジュールは、デバイスの機能に応じて、キャプチャした各フレームの画像について 160 個以上のパラメータを記録できます。使用可能なすべてのメタデータキーのリストについては、NDK の Camera ドキュメントをご覧ください。

個々のメタデータタグの値を取得する

ArImageMetadata_getConstEntry() を使用して、特定のメタデータタグ値を取得します。次の例は、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);

特定のフレームのすべてのメタデータタグのリストを取得する

ArImageMetadata_getAllKeys() を使用して、特定のフレームでキャプチャされたすべてのメタデータキーのリストを取得します。

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