Acessar dados na estrutura corporal
Este artigo descreve os dados contidos em uma estrutura corporal e as funções para acessar esses dados.
As seguintes funções são cobertas:
- 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()
Principais componentes de uma estrutura corporal
Cada estrutura corporal contém uma coleção de structs do corpo, um mapa de índice de corpo 2D e a captura de entrada que gerou esse resultado.
Acessar a coleção de structs do corpo
Vários corpos podem ser detectados em uma única captura. Você pode consultar o número de corpos chamando a função k4abt_frame_get_num_bodies().
size_t num_bodies = k4abt_frame_get_num_bodies(body_frame);
Use as funções k4abt_frame_get_body_id() e k4abt_frame_get_body_skeleton() para iterar por meio de cada índice de corpo para localizar a ID do corpo e as informações de posição/orientação da articulação.
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);
}
Acessar o mapa do índice do corpo
Use a função k4abt_frame_get_body_index_map() para acessar o mapa do índice do corpo. Veja o mapa do índice do corpo para obter uma explicação detalhada do mapa do índice do corpo. Certifique-se de liberar o mapa do índice do corpo quando ele não for mais necessário.
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);
Acessar a captura de entrada
O rastreador de corpo é uma API assíncrona. A captura original pode já ter sido liberada no momento em que o resultado é exibido. Use a função k4abt_frame_get_capture() para consultar a captura de entrada usada para gerar esse resultado de acompanhamento do corpo. A contagem de referências para o k4a_capture_t aumenta sempre que essa função é chamada. Use a função k4a_capture_release() quando a captura não for mais necessária.
k4a_capture_t input_capture = k4abt_frame_get_capture(body_frame);
... // Do your work with the input capture
k4a_capture_release(input_capture);