Bagikan melalui


Mulai cepat: Membangun aplikasi Azure Kinect pertama Anda

Mulai menggunakan Azure Kinect DK? Mulai cepat ini akan membantu Anda menyiapkan dan menjalankan perangkat!

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Fungsi-fungsi berikut ini dibahas:

Prasyarat

  1. Menyiapkan perangkat Azure Kinect DK.
  2. Mengunduh dan menginstal Azure Kinect Sensor SDK.

Header

Hanya ada satu header yang akan Anda butuhkan, yaitu k4a.h. Pastikan compiler pilihan Anda disiapkan dengan pustaka SDK dan sertakan folder. Anda juga memerlukan file k4a.lib dan k4a.dll yang ditautkan. Anda dapat melihat menambahkan pustaka Azure Kinect ke proyek Anda.

#include <k4a/k4a.h>

Menemukan perangkat Azure Kinect DK

Beberapa perangkat Azure Kinect DK dapat disambungkan ke komputer Anda. Pertama-tama kita akan mulai dengan mencari tahu berapa banyak, atau jika ada, perangkat yang tersambung menggunakan fungsi k4a_device_get_installed_count(). Fungsi ini harus seharusnya langsung bekerja, tanpa pengaturan tambahan.

uint32_t count = k4a_device_get_installed_count();

Setelah menentukan ada perangkat yang tersambung ke komputer, Anda dapat membukanya menggunakan k4a_device_open(). Anda dapat menyediakan indeks perangkat yang ingin dibuka, atau Anda bisa menggunakan K4A_DEVICE_DEFAULT untuk yang pertama.

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

Seperti kebanyakan hal di pustaka Azure Kinect, ketika Anda membuka sesuatu, Anda juga harus menutupnya ketika selesai! Ketika mematikan, ingatlah untuk membuat panggilan ke k4a_device_close().

k4a_device_close(device);

Setelah perangkat terbuka, kita dapat melakukan pengujian untuk memastikan perangkat berfungsi. Jadi mari kita baca nomor seri perangkat!

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

Memulai kamera

Setelah membuka perangkat, Anda harus mengonfigurasi kamera dengan objek k4a_device_configuration_t. Konfigurasi kamera memiliki sejumlah opsi yang berbeda. Pilih pengaturan yang paling sesuai dengan skenario Anda.

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

Penanganan kesalahan

Demi keringkasan dan kejelasan, kami tidak menunjukkan penanganan kesalahan dalam beberapa contoh sebaris. Namun, penanganan kesalahan selalu penting! Banyak fungsi akan mengembalikan jenis keberhasilan/kegagalan umum k4a_result_t, atau varian yang lebih spesifik dengan informasi terperinci seperti k4a_wait_result_t. Periksa dokumen atau IntelliSense untuk setiap fungsi guna melihat pesan kesalahan apa yang dapat Anda harapkan untuk dilihat darinya!

Anda bisa menggunakan makro K4A_SUCCEEDED dan K4A_FAILED untuk memeriksa hasil fungsi. Jadi alih-alih hanya membuka perangkat Azure Kinect DK, kita dapat menjaga panggilan fungsi seperti ini:

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

Sumber lengkap

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

Langkah berikutnya

Pelajari cara menemukan dan membuka perangkat Azure Kinect DK menggunakan Sensor SDK