Udostępnij za pośrednictwem


Uzyskiwanie dostępu do danych w klatce ciała

W tym artykule opisano dane zawarte w ramce treści i funkcje umożliwiające dostęp do tych danych.

Omówiono następujące funkcje:

Kluczowe składniki ramki ciała

Każda ramka treści zawiera kolekcję struktur treści, mapę indeksu treści 2D i przechwytywanie danych wejściowych, które wygenerowały ten wynik.

Elementy ramki ciała

Uzyskiwanie dostępu do kolekcji struktur treści

W jednym przechwyceniu może zostać wykrytych wiele ciał. Liczbę ciał można wykonywać, wywołując funkcję k4abt_frame_get_num_bodies().

size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);

Używasz funkcji k4abt_frame_get_body_id() i k4abt_frame_get_body_skeleton(), aby iterować po każdym indeksie treści w celu znalezienia identyfikatora treści i informacji o wspólnej pozycji/orientacji.

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

Uzyskiwanie dostępu do mapy indeksu treści

Aby uzyskać dostęp do mapy indeksu treści, należy użyć funkcji k4abt_frame_get_body_index_map( ). Zapoznaj się z mapą indeksu treści , aby uzyskać szczegółowy opis mapy indeksu treści. Pamiętaj, aby zwolnić mapę indeksu treści, gdy nie jest już potrzebna.

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

Uzyskiwanie dostępu do przechwytywania danych wejściowych

Monitor treści jest asynchronicznym interfejsem API. Oryginalne przechwytywanie mogło już zostać zwolnione przez moment, w którym wynik zostanie przekroczony. Użyj funkcji k4abt_frame_get_capture(), aby wykonywać zapytania dotyczące przechwytywania danych wejściowych używanych do generowania wyników śledzenia treści. Liczba odwołań dla k4a_capture_t jest zwiększana za każdym razem, gdy ta funkcja jest wywoływana. Użyj funkcji k4a_capture_release(), gdy przechwytywanie nie jest już potrzebne.

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

Następne kroki