Acceso a los datos en el marco del cuerpo
En este artículo se describen los datos contenidos en un armazón corporal y las funciones para tener acceso a esos datos.
Se explican las siguientes funciones:
- 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()
Componentes clave de un armazón corporal
Cada armazón corporal contiene una colección de estructuras del cuerpo, un mapa del índice corporal en 2D y la captura de entrada que generó este resultado.
Acceso a la colección de estructuras del cuerpo
Es posible que se detecten varios cuerpos en una sola captura. Puede consultar el número de cuerpos mediante una llamada a la función k4abt_frame_get_num_bodies().
size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);
Use las funciones k4abt_frame_get_body_id() y k4abt_frame_get_body_skeleton() para recorrer en iteración cada índice corporal para buscar el identificador corporal y la información de posición/orientación de articulaciones.
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);
}
Acceso al mapa del índice corporal
Utilice la función k4abt_frame_get_body_index_map() para tener acceso al mapa del índice corporal. Consulte el mapa del índice corporal para obtener una explicación detallada del mapa del índice corporal. Asegúrese de liberar el mapa del índice corporal cuando ya no sea necesario.
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);
Acceso a la captura de entrada
El seguimiento de personas es una API asincrónica. Es posible que la captura original ya se haya liberado en el momento en que se extrae el resultado. Utilice la función k4abt_frame_get_capture() para consultar la captura de entrada utilizada para generar este resultado de seguimiento corporal. El recuento de referencias para k4a_capture_t aumenta cada vez que se llama a esta función. Use la función k4a_capture_release() cuando ya no se necesite la captura.
k4a_capture_t input_capture = k4abt_frame_get_capture(body_frame);
... // Do your work with the input capture
k4a_capture_release(input_capture);