Freigeben über


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