Přístup k datům ve snímku těla
Tento článek popisuje data obsažená v rámci těla a funkce pro přístup k datům.
Probírané jsou následující funkce:
- k4abt_frame_get_body_id()
- k4abt_frame_get_body_index_map()
- k4abt_frame_get_body_skeleton()
- k4abt_frame_get_capture()
- k4abt_frame_get_num_bodies()
- k4abt_frame_get_device_timestamp_usec()
Klíčové součásti základního rámce
Každý rámec těla obsahuje kolekci struktur těla, 2D mapu indexu těla a vstupní záznam, který vygeneroval tento výsledek.
Přístup ke kolekci struktur těla
V jednom záznamu může být zjištěno více těl. Počet těl můžete dotazovat voláním funkce k4abt_frame_get_num_bodies().
size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);
Pomocí funkcí k4abt_frame_get_body_id() a k4abt_frame_get_body_skeleton() můžete iterovat jednotlivé indexy těla, abyste našli ID těla a informace o společné pozici/orientaci.
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);
}
Přístup k mapě základního indexu
Funkci k4abt_frame_get_body_index_map() použijete pro přístup k mapě základního indexu. Podrobné vysvětlení mapy základního indexu najdete v mapě body indexu. Pokud už mapu základního indexu nepotřebujete, nezapomeňte ji uvolnit.
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);
Přístup ke vstupnímu zachytávání
Sledování těla je asynchronní rozhraní API. Původní zachytávání již mohlo být uvolněno v době, kdy se výsledek otevře. Pomocí funkce k4abt_frame_get_capture() můžete dotazovat vstupní záznam použitý k vygenerování tohoto výsledku sledování těla. Počet odkazů pro k4a_capture_t se zvyšuje při každém zavolání této funkce. Funkci k4a_capture_release() použijte, když už není potřeba zachytávání.
k4a_capture_t input_capture = k4abt_frame_get_capture(body_frame);
... // Do your work with the input capture
k4a_capture_release(input_capture);