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 oraz przechwytywanie danych wejściowych, które wygenerowało 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 wykonać, wywołując funkcję k4abt_frame_get_num_bodies().

size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);

Funkcje k4abt_frame_get_body_id() i k4abt_frame_get_body_skeleton() służą do iterowania poszczególnych indeksów treści w celu znalezienia identyfikatora treści i wspólnych informacji o 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ółowe wyjaśnienie 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ć wydane przez czas, w jaki wynik zostanie przekroczony. Funkcja k4abt_frame_get_capture() umożliwia wykonywanie zapytań dotyczących przechwytywania danych wejściowych używanych do generowania wyniku ś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