Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
¿Introducción a Azure Kinect DK? Esta guía de inicio rápido le ayudará a ponerse en marcha con el dispositivo.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Se tratan las siguientes funciones:
k4a_device_get_installed_count()k4a_device_open()k4a_device_get_serialnum()k4a_device_start_cameras()k4a_device_stop_cameras()k4a_device_close()
Prerrequisitos
- Configure el dispositivo Azure Kinect DK.
- Descargue e instale el SDK del sensor de Azure Kinect.
encabezados
Solo hay un encabezado que necesitará y es k4a.h. Asegúrese de que el compilador que prefiera esté configurado con la biblioteca del SDK e incluya carpetas. También necesitará los archivos k4a.lib y k4a.dll enlazados. Es posible que quiera hacer referencia a la adición de la biblioteca de Azure Kinect al proyecto.
#include <k4a/k4a.h>
Búsqueda de un dispositivo Azure Kinect DK
Se pueden conectar varios dispositivos Azure Kinect DK al equipo. En primer lugar, empezaremos por averiguar cuántos, o si alguno está conectado en absoluto, mediante la función k4a_device_get_installed_count(). Esta función debe funcionar inmediatamente, sin ninguna configuración adicional.
uint32_t count = k4a_device_get_installed_count();
Una vez que haya determinado que hay un dispositivo conectado al equipo, puede abrirlo mediante k4a_device_open(). Puede proporcionar el índice del dispositivo que desea abrir o simplemente usar K4A_DEVICE_DEFAULT para el primero.
// Open the first plugged in Kinect device
k4a_device_t device = NULL;
k4a_device_open(K4A_DEVICE_DEFAULT, &device);
Al igual que con la mayoría de las cosas de la biblioteca de Azure Kinect, cuando abra algo, también debe cerrarlo cuando haya terminado de hacerlo. Cuando se cierre, recuerde realizar una llamada a k4a_device_close().
k4a_device_close(device);
Una vez abierto el dispositivo, podemos realizar una prueba para asegurarse de que funciona. Así que vamos a leer el número de serie del dispositivo.
// Get the size of the serial number
size_t serial_size = 0;
k4a_device_get_serialnum(device, NULL, &serial_size);
// Allocate memory for the serial, then acquire it
char *serial = (char*)(malloc(serial_size));
k4a_device_get_serialnum(device, serial, &serial_size);
printf("Opened device: %s\n", serial);
free(serial);
Iniciar las cámaras
Una vez que haya abierto el dispositivo, deberá configurar la cámara con un k4a_device_configuration_t objeto . La configuración de la cámara tiene una serie de opciones diferentes. Elija la configuración que mejor se adapte a su propio escenario.
// Configure a stream of 4096x3072 BRGA color data at 15 frames per second
k4a_device_configuration_t config = K4A_DEVICE_CONFIG_INIT_DISABLE_ALL;
config.camera_fps = K4A_FRAMES_PER_SECOND_15;
config.color_format = K4A_IMAGE_FORMAT_COLOR_BGRA32;
config.color_resolution = K4A_COLOR_RESOLUTION_3072P;
// Start the camera with the given configuration
k4a_device_start_cameras(device, &config);
// ...Camera capture and application specific code would go here...
// Shut down the camera when finished with application logic
k4a_device_stop_cameras(device);
Control de errores
Por motivos de brevedad y claridad, no se muestra el control de errores en algunos ejemplos en línea. Sin embargo, el control de errores siempre es importante. Muchas funciones devolverán un tipo k4a_result_tde éxito o error general, o una variante más específica con información detallada, como k4a_wait_result_t. Consulte la documentación o el IntelliSense para cada función para ver qué mensajes de error debe esperar recibir de ella.
Puede usar las K4A_SUCCEEDED macros y K4A_FAILED para comprobar el resultado de una función. Por lo tanto, en lugar de simplemente abrir un dispositivo Azure Kinect DK, podríamos proteger la llamada a la función de la siguiente manera:
// Open the first plugged in Kinect device
k4a_device_t device = NULL;
if ( K4A_FAILED( k4a_device_open(K4A_DEVICE_DEFAULT, &device) ) )
{
printf("Failed to open k4a device!\n");
return;
}
Origen completo
#pragma comment(lib, "k4a.lib")
#include <k4a/k4a.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
uint32_t count = k4a_device_get_installed_count();
if (count == 0)
{
printf("No k4a devices attached!\n");
return 1;
}
// Open the first plugged in Kinect device
k4a_device_t device = NULL;
if (K4A_FAILED(k4a_device_open(K4A_DEVICE_DEFAULT, &device)))
{
printf("Failed to open k4a device!\n");
return 1;
}
// Get the size of the serial number
size_t serial_size = 0;
k4a_device_get_serialnum(device, NULL, &serial_size);
// Allocate memory for the serial, then acquire it
char *serial = (char*)(malloc(serial_size));
k4a_device_get_serialnum(device, serial, &serial_size);
printf("Opened device: %s\n", serial);
free(serial);
// Configure a stream of 4096x3072 BRGA color data at 15 frames per second
k4a_device_configuration_t config = K4A_DEVICE_CONFIG_INIT_DISABLE_ALL;
config.camera_fps = K4A_FRAMES_PER_SECOND_15;
config.color_format = K4A_IMAGE_FORMAT_COLOR_BGRA32;
config.color_resolution = K4A_COLOR_RESOLUTION_3072P;
// Start the camera with the given configuration
if (K4A_FAILED(k4a_device_start_cameras(device, &config)))
{
printf("Failed to start cameras!\n");
k4a_device_close(device);
return 1;
}
// Camera capture and application specific code would go here
// Shut down the camera when finished with application logic
k4a_device_stop_cameras(device);
k4a_device_close(device);
return 0;
}
Pasos siguientes
Obtenga información sobre cómo buscar y abrir un dispositivo Azure Kinect DK mediante el SDK de sensor.