• <rt id="2awkm"><noscript id="2awkm"></noscript></rt>
      <rt id="2awkm"><noscript id="2awkm"></noscript></rt>
    • <dfn id="2awkm"></dfn>
      <menu id="2awkm"><acronym id="2awkm"></acronym></menu>
      
      
      <rt id="2awkm"></rt><dfn id="2awkm"><code id="2awkm"></code></dfn>
    • <dd id="2awkm"><s id="2awkm"></s></dd>
      <tbody id="2awkm"></tbody>
    • <dfn id="2awkm"></dfn>
      <menu id="2awkm"><noscript id="2awkm"></noscript></menu>

      Depth Preset 更新

      1. 目的

      Gemini 330 新增了支持深度Preset 的更新,由于相機自帶的Preset存放有限;因此我們支持3個Optional Depth Preset的更新,用戶可以根據自身的具體應用場景在奧比提供的Depth Preset release 頁面去下載對應的Preset 更新到相機進行使用,以便提供對應場景的更好深度性能。


      2. 適用范圍

      適用于Gemini 330 系列固件版本1.4.60及以上的所有產品,SDK版本要求2.3.x及以上版本.


      3. 如何更新Preset

      3.1 如何通過Orbbec Viewer 更新Preset?

      ① 相機連接Orbbec Viewer 后點擊Device Control,點擊Optional depth preset 的Update 按鈕,選擇需要加載的Preset 文件,注意:一次最多同時支持3個Preset 的加載,加載后點擊Update 即可更新到Device Preset 中,同時會顯示在Optional depth preset 列表中。

      image.png


      更新成功:

      image.png

      ② Optional depth preset 最大支持同時加載3個Preset 的更新,每次更新將覆蓋替代之前的Optional depth preset


      異常處理:

      ①如果導入存在重復Preset ,會提示存在重復配置,相同僅生效一個

      image.png

      ②固件版本不支持或如導入機器不匹配:會提示"Error! The depth preset file are invalid ,Please select again"

      image.png


      3.2 如何通過SDK更新Preset?

      參考sample:https://github.com/orbbec/OrbbecSDK_v2/blob/main/examples/2.device.optional_depth_presets_update/device.optional_depth_presets_update.cpp

      /// 1.Create a context to access the connected devices
      std::shared_ptr<ob::Context> context = std::make_shared<ob::Context>();
      
      #if defined(__linux__)
      // On Linux, it is recommended to use the libuvc backend for device access as v4l2 is not always reliable on some systems for preset update.
      context->setUvcBackendType(OB_UVC_BACKEND_TYPE_LIBUVC);
      #endif
      
      /// 2. Access the connected devices
      auto deviceList = context->queryDeviceList();
      std::shared_ptr<ob::Device> device;
      if (deviceList->getCount() > 0) {
          device = deviceList->getDevice(0);
      }
      
      /// 3. update optional depth presets
      // Enter your preset file path, please enter 1-3
      std::vector<std::string> pathList = {
          "/home/user/preset1.bin",
          "/home/user/preset2.bin",
          "/home/user/preset3.bin"
      };
      
      uint8_t index = 0;
      uint8_t count = static_cast<uint8_t>(pathList.size());
      
      // OB_PATH_MAX is defined as 1024
      char(*filePaths)[OB_PATH_MAX] = new char[count][OB_PATH_MAX];
      
      // copy paths
      for(const auto &path: pathList) {
        strcpy(filePaths[index++], path.c_str());
      }
      
      // update optional depth presets
      try {
          device->updateOptionalDepthPresets(filePaths, count, [&](OBFwUpdateState state, const char *message, uint8_t percent) {
          std::cout << "Message: " << message 
                    << " percent: " << percent << "%" << std::endl;
        });
      
        // No exception if the upgrade is successful
        delete[] filePaths;
        filePaths = nullptr;
      }
      catch(ob::Error &e) {
        // Receive an exception if an error occurs
        std::cerr << "Error message: " << e.what() << "\n" << std::endl;
        delete[] filePaths;
        filePaths = nullptr;
      }


      • <rt id="2awkm"><noscript id="2awkm"></noscript></rt>
        <rt id="2awkm"><noscript id="2awkm"></noscript></rt>
      • <dfn id="2awkm"></dfn>
        <menu id="2awkm"><acronym id="2awkm"></acronym></menu>
        
        
        <rt id="2awkm"></rt><dfn id="2awkm"><code id="2awkm"></code></dfn>
      • <dd id="2awkm"><s id="2awkm"></s></dd>
        <tbody id="2awkm"></tbody>
      • <dfn id="2awkm"></dfn>
        <menu id="2awkm"><noscript id="2awkm"></noscript></menu>
        日韩色情中文字幕二区 | 欧美一区二区三区四区视频 | 操逼操逼网站操逼网站呢 | 五月婷婷亚洲综合 | 免费做爰姿势视频 |