Freigeben über


Schnellstart: Erstellen Ihrer ersten Azure Kinect-Anwendung

Erste Schritte mit Azure Kinect DK? Diese Schnellstartanleitung bringt Sie mit dem Gerät auf den Laufenden!

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Die folgenden Funktionen werden behandelt:

Voraussetzungen

  1. Richten Sie das Azure Kinect DK-Gerät ein.
  2. Laden Sie das Azure Kinect Sensor SDK herunter, und installieren Sie es.

Überschriften

Es gibt nur eine Kopfzeile, die Sie benötigen, und das ist k4a.h. Stellen Sie sicher, dass Der Compiler der Wahl mit der Lib des SDK eingerichtet ist und Ordner enthält. Sie benötigen auch die Dateien k4a.lib und k4a.dll, die verknüpft sind. Möglicherweise möchten Sie auf das Hinzufügen der Azure Kinect-Bibliothek zu Ihrem Projekt verweisen.

#include <k4a/k4a.h>

Suchen eines Azure Kinect DK-Geräts

Mehrere Azure Kinect DK-Geräte können mit Ihrem Computer verbunden werden. Zunächst werden wir herausfinden, wie viele oder ob überhaupt eine Verbindung über die k4a_device_get_installed_count() Funktion besteht. Diese Funktion sollte sofort ohne zusätzliche Einrichtung funktionieren.

uint32_t count = k4a_device_get_installed_count();

Nachdem Sie festgestellt haben, dass ein Gerät mit dem Computer verbunden ist, können Sie es mit k4a_device_open()öffnen. Sie können den Index des Geräts bereitstellen, das Sie öffnen möchten, oder Sie können nur für das erste Gerät verwenden K4A_DEVICE_DEFAULT .

// Open the first plugged in Kinect device
k4a_device_t device = NULL;
k4a_device_open(K4A_DEVICE_DEFAULT, &device);

Wie bei den meisten Dingen in der Azure Kinect-Bibliothek sollten Sie sie auch schließen, wenn Sie damit fertig sind! Wenn Sie herunterfahren, denken Sie daran, zu k4a_device_close() einen Anruf zu tätigen.

k4a_device_close(device);

Sobald das Gerät geöffnet ist, können wir einen Test durchführen, um sicherzustellen, dass es funktioniert. Also lesen wir die Seriennummer des Geräts!

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

Starten der Kameras

Nachdem Sie das Gerät geöffnet haben, müssen Sie die Kamera mit einem k4a_device_configuration_t Objekt konfigurieren. Die Kamerakonfiguration verfügt über eine Reihe verschiedener Optionen. Wählen Sie die Einstellungen aus, die für Ihr eigenes Szenario am besten geeignet sind.

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

Fehlerbehandlung

Aus Platzgründen und Klarheit zeigen wir in einigen Inlinebeispielen keine Fehlerbehandlung. Die Fehlerbehandlung ist jedoch immer wichtig! Viele Funktionen geben einen allgemeinen Erfolgs-/Fehlertyp k4a_result_t oder eine spezifischere Variante mit detaillierten Informationen wie k4a_wait_result_t zurück. Überprüfen Sie die Dokumentation oder IntelliSense für jede Funktion, um zu sehen, welche Fehlermeldungen Sie erwarten können!

Mit den K4A_SUCCEEDED Makros K4A_FAILED können Sie das Ergebnis einer Funktion überprüfen. Anstatt also einfach ein Azure Kinect DK-Gerät zu öffnen, können wir den Funktionsaufruf wie folgt schützen:

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

Vollständige Quelle

#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ächste Schritte

Erfahren Sie, wie Sie ein Azure Kinect DK-Gerät mithilfe des Sensor SDK suchen und öffnen.