核心概念#
擷取生命週期#
心智模型#
- 相機以非同步方式執行。
- Python 以同步方式進行擷取。
- 緩衝區將兩個網域解耦。
阻塞行為#
GenICam 節點#
什麼是 GenICam 節點?#
一個 GenICam 節點代表相機的單一可設定功能或屬性。節點是在 GenICam 標準中定義的,該標準提供了一種統一的方式來存取相機功能,且與硬體廠商無關。
每個節點的行為都類似於強型別參數,並公開各種資訊:
- 名稱(例如:
ExposureTime) - 資料類型(例如:Float、Integer、Enumeration 等)
- 存取權限(唯讀或讀/寫)
- 有效數值範圍或選項
在 pypylon 中,節點是以相機物件的屬性形式進行存取,並提供如下所示的方法:
exposure_time = camera.ExposureTime # Read exposure time in microseconds.
camera.ExposureTime.Value = 3000 # Value is in microseconds. Check Increment and ValueRange for valid values.
常見節點類型#
| 參數 | 範例 | 描述 |
|---|---|---|
| Float | ExposureTime | 對應至離散硬體設定的連續值 |
| 整數 | Width | 離散值 |
| Enumeration | TriggerMode | 預先定義的字串值 |
| 布林值 | AcquisitionFrameRateEnable | True/False |
| 命令 | ExecuteSoftwareTrigger | 執行動作 |
理解節點至關重要,因為 pypylon 中的所有相機組態都是透過節點進行的。
pylon 參數#
pylon 參數包裝了 GenICam 節點,並提供了一個擴充且一致的介面來讀取和寫入數值。它們還處理型別轉換、範圍檢查和存取模式處理。
如果找不到節點,則會傳回 pylon.PlaceholderParameter ,這可讓您的程式碼妥善處理遺失的節點。在不同相機型號或韌體版本可能具有不同可用功能的設定中,這通常是一種常見的情況。