科技觀點/快訊/報導ZED 景深攝影機範例#1/8 - Hello ZED
前言
本文為 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、深度感測參數等等。這些參數只能在攝影機開啟後才能調整,且當攝影機在執行時無法修改。
[pastacode lang="python" manual="%23%20Create%20a%20ZED%20camera%20object%0Azed%20%3D%20sl.Camera()%0A%0A%23%20Set%20configuration%20parameters%0Ainit_params%20%3D%20sl.InitParameters()%0Ainit_params.camera_resolution%20%3D%20sl.RESOLUTION.HD1080%0Ainit_params.camera_fps%20%3D%2030" message="camera configuration - python" highlight="" provider="manual"/]
InitParameters 包含了一些預設設定,您可設定以下初始參數:
- Camera 設定參數:
camera_* (解析度、影像翻轉等)
- SDK 設定參數:
sdk_*(GPU裝置等)
- 深度設定參數:
depth_* (深度模式、最小距離等)
- 座標幀數設定參數:
coordinate_* (座標系統、座標單位等)
- SVO參數:使用ZED SDK 來操作Stereolabs影片檔(檔名、即時模式等)
所有可用的參數請參考
API 文件。
開啟攝影機
初始設定完成之後,請開啟攝影機:
[pastacode lang="python" manual="%23%20Open%20the%20camera%0Aerr%20%3D%20zed.open(init_params)%0Aif%20err%20!%3D%20sl.ERROR_CODE.SUCCESS%3A%0A%20%20%20%20exit()" message="open the camera - python" highlight="" provider="manual"/]
左右兩鏡頭與解析度下的影機參數,包含焦長(focal length)、視野(fov)或立體影像校正等等都可取得。這些數值都整合在
CalibrationParameters 中,並可由
getCameraInformation()語法來存取。您也可透過
Sensors API 來存取 IMU與感測器。
本範例不會開啟影像,只會取得攝影機序號而已:
[pastacode lang="python" manual="%23%20Get%20camera%20information%20(serial%20number)%0Azed_serial%20%3D%20zed.get_camera_information().serial_number%0Aprint(%22Hello!%20This%20is%20my%20serial%20number%3A%20%7B%7D%22.format(zed_serial))" message="retrieve camera info - python" highlight="" provider="manual"/]
關閉攝影機
使用
zed.close() 來正確關閉攝影機並退出程式。
[pastacode lang="python" manual="%23%20Close%20the%20camera%0Azed.close()" message="close the camera - python" highlight="" provider="manual"/]
執行後,可在終端機中看到攝影機序號
下一步
下一個範例要說明如何從 ZED 攝影機取得深度影像。
註:本文經授權之後翻譯自
https://www.stereolabs.com/docs/tutorials/hello-zed/
留言 💬 (0)
還沒有留言,來當第一個。