<blockquote id="76sxc"></blockquote>
<cite id="76sxc"><track id="76sxc"></track></cite>
<legend id="76sxc"></legend>

  • <blockquote id="76sxc"><p id="76sxc"></p></blockquote>
    <sub id="76sxc"><p id="76sxc"></p></sub>

          生成第一個 Femto Bolt 應用程序

          本文內容

          ● 先決條件

          ● 頭文件

          ● 查找 Femto Bolt 設備

          ● 啟動相機

          ● 錯誤處理

          ● 完整源代碼

          ● 后續(xù)步驟

          想要開始使用Femto Bolt?本快速入門指南將幫助你啟動并成功運行該設備!

          本文將介紹以下函數:

          ● k4a_device_get_installed_count()

          ● k4a_device_open()

          ● k4a_device_get_serialnum()

          ● k4a_device_start_cameras()

          ● k4a_device_stop_cameras()

          ● k4a_device_close()


          先決條件

          1. 設置Femto Bolt

          2. 并安裝 SDK了解Orbbec SDK 和 Orbbec SDK K4A Wrapper


          頭文件

          只需要一個頭文件,即 k4a.h。 請確保所選的編譯器設置為使用 SDK 的庫并包含文件夾。 此外,需要鏈接 k4a.lib 和 k4a.dll 文件。

          #include <k4a/k4a.h>


          查找 Femto Bolt 設備

          可將多個 Femto Bolt 設備連接到計算機。 首先,我們將使用 k4a_device_get_installed_count() 函數確定有多少個設備,或者是否連接了任何設備。 此函數應可立即運行,而無需經過附加的設置。

          uint32_t count = k4a_device_get_installed_count();

          確定某個設備已連接到計算機后,可以使用 k4a_device_open() 將其打開。 可以提供想要打開的設備的索引,或者只對第一個設備使用 K4A_DEVICE_DEFAULT

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

          與 Azure Kinect 庫中的大多數內容一樣,當你打開某種內容時,也應該在用完時將其關閉! 關閉時,請記得調用 k4a_device_close()。

          k4a_device_close(device);

          打開設備后,可以進行測試以確保它正常工作。 讓我們讀取設備的序列號!

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


          啟動相機

          打開設備后,需要使用 k4a_device_configuration_t 對象配置相機。 相機配置包含大量不同的選項。 請選擇最適合自己方案的設置。

          // Configure a stream of 3840x2160 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_2160P;
          // 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);


          錯誤處理

          為簡潔起見,我們不會在某些例子中顯示錯誤處理。 但是,錯誤處理始終很重要! 許多函數返回常規(guī)的成功/失敗類型 k4a_result_t,或者包含詳細信息的更具體的變量,比如 k4a_wait_result_t。 請查看每個函數的文檔或 IntelliSense,以了解該函數預期顯示的錯誤消息!

          可以使用 K4A_SUCCEEDED 和 K4A_FAILED 宏檢查函數的結果。 因此,除了打開 Femto Bolt 設備以外,我們還可以按如下所示保護函數調用:

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


          完整源代碼

          #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 3840x2160 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_2160P;
              // 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;
          }

          后續(xù)步驟

          了解如何使用傳感器 SDK 查找并打開 Femto Bolt 設備查找并打開設備

          <blockquote id="76sxc"></blockquote>
          <cite id="76sxc"><track id="76sxc"></track></cite>
          <legend id="76sxc"></legend>

        1. <blockquote id="76sxc"><p id="76sxc"></p></blockquote>
          <sub id="76sxc"><p id="76sxc"></p></sub>

                善交bbw搡bbbb搡bbbb | 在线99 | 欧美乱妇无码A片疯狂的代价 | 伊人精品久久久 | 亚洲好穴 | 亚洲一二三四区 | 伊人五月天 | 99热最新在线 | 日韩伦理在线免费观看 | 操逼操逼操逼逼 |