前言
本文為 ZED 景深攝影機原廠範例,共有八個範例,請根據 ZED 的範例程式頁面,取得 C++ / Python / C# 等範例原始碼。說明如下:
- Hello ZED: 入門範例,說明如何連接 ZED 攝影機,並於終端機中顯示裝置序列編號。
- Image Capture: 開啟 ZED 攝影機,取得影像,並於終端機中顯示時間戳記、影像尺寸。
- Depth Perception: 取得畫面的深度資料與點雲,並於終端機中顯示指定點的距離。
- Camera Tracking: 啟用位置追蹤,可即時更新攝影機的位置與指向。
- Spatial Mapping: 啟用地圖繪製,可擷取環境的網格或融合點雲。
- 3D Object Detection: 偵測畫面中的物體,並進行 3D 定位 (只適用於 ZED 2 機型)。
- Using Sensors: 取得攝影機的 IMU、氣壓計與磁力感測器資料。
- Body Tracking: 追蹤人體骨架
範例01 – Hello ZED
本範例單純說明如何設定並開啟 ZED 攝影機,並在顯示自身序號之後關閉攝影機。這個範例非常簡單,適合做為您操作 ZED SDK 的起點。
註:原廠頁面每段都提供了 C++ / Python / C# 的範例程式,在此只列出 Python 範例
前置作業
- 下載最新版的 ZED SDK (請點我)
- 下載 Hello ZED 範例程式,提供 C++, Python 與 C# 等版本
- 在 Windows 或 Linux OS上,建置 C++ 環境(請點我) 或執行 Python 範例,本系列文章將使用 Python (教學請點我)。
範例總覽
ZED API 提供了對於自家攝影機在控制與設定的低階存取設定。如果要在您的程式中操作 ZED 硬體,您需要建立並開啟一個 Camera 物件。API 支援兩種影像輸入:ZED live video (即時模式),或 .svo 影片檔 (回放模式)。
攝影機設定
設定攝影機時,須建立一個 Camera
物件並指定 InitParameters
,後者可用於調整解析度、FPS、深度感測參數等等。這些參數只能在攝影機開啟後才能調整,且當攝影機在執行時無法修改。
InitParameters
包含了一些預設設定,您可設定以下初始參數:
- Camera 設定參數:
camera_*
(解析度、影像翻轉等) - SDK 設定參數:
sdk_*(
GPU裝置等) - 深度設定參數:
depth_*
(深度模式、最小距離等) - 座標幀數設定參數:
coordinate_*
(座標系統、座標單位等) - SVO參數:使用ZED SDK 來操作Stereolabs影片檔(檔名、即時模式等)
所有可用的參數請參考 API 文件。
開啟攝影機
初始設定完成之後,請開啟攝影機:
取得攝影機資訊
左右兩鏡頭與解析度下的影機參數,包含焦長(focal length)、視野(fov)或立體影像校正等等都可取得。這些數值都整合在 CalibrationParameters
中,並可由 getCameraInformation()
語法來存取。您也可透過 Sensors API 來存取 IMU與感測器。
本範例不會開啟影像,只會取得攝影機序號而已:
關閉攝影機
使用 zed.close()
來正確關閉攝影機並退出程式。
執行後,可在終端機中看到攝影機序號
下一步
下一個範例要說明如何從 ZED 攝影機取得深度影像。
註:本文經授權之後翻譯自 https://www.stereolabs.com/docs/tutorials/hello-zed/