Zugriff auf Daten im Körperrahmen

In diesem Artikel werden die in einem Rahmen enthaltenen Daten und die Funktionen für den Zugriff auf diese Daten beschrieben.

Die folgenden Funktionen werden behandelt:

Hauptkomponenten eines Körperrahmens

Jeder Körperrahmen enthält eine Sammlung von Körperstrukturen, eine 2D-Körperindex-Zuordnung und die Eingabeaufnahme, die dieses Ergebnis erzeugt hat.

Körperrahmenkomponenten

Zugreifen auf die Sammlung von Textkörper-Strukturen

Mehrere Körper können in einer einzigen Erfassung erkannt werden. Sie können die Anzahl der Körper abfragen, indem Sie die funktion k4abt_frame_get_num_bodies() aufrufen.

size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);

Sie verwenden die Funktionen k4abt_frame_get_body_id() und k4abt_frame_get_body_skeleton(), um die einzelnen Körperindizes zu durchlaufen und die Körper-ID sowie die Gelenkposition/-orientierung Informationen zu finden.

for (size_t i = 0; i < num_bodies; i++)
{
    k4abt_skeleton_t skeleton;
    k4abt_frame_get_body_skeleton(body_frame, i, &skeleton);
    uint32_t id = k4abt_frame_get_body_id(body_frame, i);
}

Auf die Körperindexkarte zugreifen

Sie verwenden die k4abt_frame_get_body_index_map()-Funktion, um auf die Körperindexkarte zuzugreifen. Ausführliche Erläuterungen zur Körperindexkarte finden Sie in body index map. Stellen Sie sicher, dass Sie die Körperindexkarte freigeben, wenn sie nicht mehr benötigt wird.

k4a_image_t body_index_map = k4abt_frame_get_body_index_map(body_frame);
...  // Do your work with the body index map
k4a_image_release(body_index_map);

Zugreifen auf die Eingabeerfassung

Der Body-Tracker ist eine asynchrone API. Die ursprüngliche Aufnahme wurde möglicherweise bereits freigegeben, bevor das Ergebnis abgerufen wird. Verwenden Sie die k4abt_frame_get_capture() Funktion, um die Eingabeerfassung abzufragen, die zum Generieren dieses Körpererfassungsergebnisses verwendet wird. Die Referenzanzahl für die k4a_capture_t wird jedes Mal erhöht, wenn diese Funktion aufgerufen wird. Verwenden Sie k4a_capture_release() Funktion, wenn die Aufnahme nicht mehr benötigt wird.

k4a_capture_t input_capture = k4abt_frame_get_capture(body_frame);
... // Do your work with the input capture
k4a_capture_release(input_capture);

Nächste Schritte