Hızlı Başlangıç: İlk Azure Kinect oluşturma

Azure Kinect DK ile çalışmaya mı başlıyorsunuz? Bu hızlı başlangıç sizi cihazla birlikte çalıştırmaya hazırlar!

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Aşağıdaki işlevler kapsamındadır:

Önkoşullar

  1. Azure Kinect DK cihazı ayarlayın.
  2. Azure Kinect Sensor SDK'yı indirin ve yükleyin.

Üst Bilgiler

Yalnızca bir üst bilgi gerekir ve bu da k4a.h olur. Tercih edilen derleyicinizin SDK'nın lib ve include klasörleriyle ayarlanmış olduğundan emin olun. Ayrıca ve dosyalarının da k4a.lib bağlı olarak bağlı olduğu k4a.dll gerekir. Azure Kinect kitaplığını projenize eklemek için başvurabilirsiniz.

#include <k4a/k4a.h>

Azure Kinect DK cihazı bulma

Bilgisayarınıza Kinect birden çok Azure Kinect DK cihazı bağlanabilir. İlk olarak kaç tane olduğunu veya işlevini kullanarak herhangi bir bağlantı olup ola bir şey olup ola bir şey olduğunu k4a_device_get_installed_count() bularak başlayacağız. Bu işlev herhangi bir ek kurulum olmadan hemen çalışmalı.

uint32_t count = k4a_device_get_installed_count();

Bilgisayara bağlı bir cihaz olduğunu belirlediktan sonra kullanarak k4a_device_open() açabilirsiniz. Açmak istediğiniz cihazın dizinini veya yalnızca ilki için K4A_DEVICE_DEFAULT kullanabilirsiniz.

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

Azure Kinect kitaplığında olduğu gibi, bir şeyi açıp bitirdikten sonra da kapatmanız gerekir! Kapatıyorsanız çağrısı yapma hakkında daha fazla şey k4a_device_close() unutmayın.

k4a_device_close(device);

Cihaz açıldıktan sonra, çalışa olduğundan emin olmak için bir teste devam edebilirsiniz. Şimdi cihazın seri numarasını okuyabilirsiniz!

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

Kameraları başlatma

Cihazı açtıktan sonra kamerayı bir nesnesiyle yapılandırmanız k4a_device_configuration_t gerekir. Kamera yapılandırmasının bir dizi farklı seçeneği vardır. Kendi senaryonıza en uygun ayarları seçin.

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

Hata işleme

Daha fazla bilgi ve netlik sağlamak için bazı satır içi örneklerde hata işleme göster yok. Ancak hata işleme her zaman önemlidir! Birçok işlev, gibi ayrıntılı bilgilerle genel bir başarı/hata türü veya k4a_result_t daha belirli bir varyantı dönüşecek. k4a_wait_result_t Her işlev için belgeleri veya IntelliSense'i kontrol edin ve bu işlevden hangi hata iletilerini görmeyi beklediğinizi kontrol edin!

bir işlevin K4A_SUCCEEDED sonucu kontrol etmek için ve K4A_FAILED makrolarını kullanabilirsiniz. Bu nedenle bir Azure Kinect DK cihazı açmak yerine işlev çağrısını şu şekilde korumamız gerekir:

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

Tam kaynak

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

Sonraki adımlar

Algılayıcı SDK'sı kullanarak Azure Kinect DK cihazı bulma ve açma hakkında bilgi edinin