Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Komma igång med Azure Kinect DK? Den här snabbstarten hjälper dig att komma igång med enheten!
Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Följande funktioner beskrivs:
k4a_device_get_installed_count()k4a_device_open()k4a_device_get_serialnum()k4a_device_start_cameras()k4a_device_stop_cameras()k4a_device_close()
Förutsättningar
- Konfigurera Azure Kinect DK-enheten.
- Ladda ned och installera Azure Kinect Sensor SDK.
Rubriker
Det finns bara en rubrik som du behöver, och det är k4a.h. Kontrollera att valfri kompilator har konfigurerats med SDK:ets lib- och include-mappar. Du behöver också de k4a.lib och k4a.dll-filer som är länkade. Du kanske vill tänka på när du lägger till Azure Kinect-biblioteket i ditt projekt.
#include <k4a/k4a.h>
Hitta en Azure Kinect DK-enhet
Flera Azure Kinect DK-enheter kan anslutas till datorn. Vi börjar med att ta reda på hur många eller om några alls är anslutna med hjälp av funktionen k4a_device_get_installed_count(). Den här funktionen bör fungera direkt, utan ytterligare installation.
uint32_t count = k4a_device_get_installed_count();
När du har fastställt att det finns en enhet som är ansluten till datorn kan du öppna den med hjälp av k4a_device_open(). Du kan ange indexet för den enhet som du vill öppna, eller så kan du bara använda K4A_DEVICE_DEFAULT för den första.
// Open the first plugged in Kinect device
k4a_device_t device = NULL;
k4a_device_open(K4A_DEVICE_DEFAULT, &device);
Precis som med det mesta i Azure Kinect-biblioteket bör du även stänga det när du är klar med det när du öppnar något! När du stänger av ska du komma ihåg att ringa ett anrop till k4a_device_close().
k4a_device_close(device);
När enheten är öppen kan vi göra ett test för att säkerställa att den fungerar. Så nu ska vi läsa enhetens serienummer!
// 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);
Starta kamerorna
När du har öppnat enheten måste du konfigurera kameran med ett k4a_device_configuration_t objekt. Kamerakonfigurationen har ett antal olika alternativ. Välj de inställningar som passar bäst för ditt eget scenario.
// 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);
Felhantering
För korthet och tydlighet visar vi inte felhantering i vissa infogade exempel. Felhantering är dock alltid viktigt! Många funktioner returnerar en allmän typ av lyckad/misslyckad k4a_result_t, eller en mer specifik variant med detaljerad information som k4a_wait_result_t. Kontrollera dokumenten eller IntelliSense för varje funktion för att se vilka felmeddelanden du bör förvänta dig att se från den!
Du kan använda makrona K4A_SUCCEEDED och K4A_FAILED för att kontrollera resultatet av en funktion. I stället för att bara öppna en Azure Kinect DK-enhet kanske vi skyddar funktionsanropet så här:
// 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;
}
Fullständig källa
#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;
}
Nästa steg
Lär dig hur du hittar och öppnar en Azure Kinect DK-enhet med sensor-SDK