Partager via


Accéder aux données de l’ossature du corps

Cet article décrit les données contenues dans une image de corps et les fonctions permettant d’accéder à celles-ci.

Voici les fonctions qui sont abordées ici :

Composants clés d’une image de corps

Chaque image de corps se compose d’une collection de structures de corps, d’un mappage d’index de corps 2D et de la capture d’entrée ayant produit ce résultat.

Composants d’image du corps

Accéder à la collection de structures de corps

Plusieurs corps peuvent être détectés dans une seule capture. Vous pouvez interroger le nombre de corps en appelant la fonction k4abt_frame_get_num_bodies().

size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);

Vous utilisez les fonctions k4abt_frame_get_body_id() et k4abt_frame_get_body_skeleton() pour opérer une itération dans chaque index de corps afin de rechercher l’ID de corps et les informations de position/orientation jointes.

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

Accéder au mappage d’index de corps

Vous utilisez la fonction k4abt_frame_get_body_index_map() pour accéder au mappage d’index de corps. Pour une explication détaillée du mappage d’index de corps, consultez Mappage d’index de corps. Veillez à libérer le mappage d’index de corps quand il n’est plus nécessaire.

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

Accéder à la capture d’entrée

Le dispositif de suivi du corps est une API asynchrone. La capture d’origine a peut-être déjà été libérée au moment où le résultat s’affiche. Utilisez la fonction k4abt_frame_get_capture() pour interroger la capture d’entrée utilisée pour générer ce résultat de suivi du corps. Le nombre de références pour k4a_capture_t est augmenté à chaque appel de cette fonction. Utilisez la fonction k4a_capture_release() lorsque la capture n’est plus nécessaire.

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

Étapes suivantes