| 簡短描述 | |
|---|---|
|
檔案: \examples\Processing\Loop\RollingAverage\rollingAverage_Loop.vad |
|
|
預設平台: imaFlex CXP-12 Quad |
|
|
簡短說明 在不造成幀延遲的情況下,對即時影像串流實施滑動平均運算。 系統會計算最近 N 張黑白影像的平均值,並以此將與 當前影像之間的差異以彩色呈現。 用於計算平均值的影像張數預設為 128 張,但可進行調整。 |
|
此設計將展示移動平均的運作方式。 但其核心要素是一個迴圈,該迴圈將能支援更多應用程式與機器視覺操作。 若要理解迴圈的運作原理及其實現方式,此範例是個絕佳的起點。
會針對每個像素計算平均值,並將其歸一化至 8 位元的輸入值範圍內。 為此,會將每個接收到的幀與其前幾個幀相加,再除以接收到的幀數。 若滾動平均序列達到設定長度,則會從總和中減去已儲存且延遲的幀。 藉此,從第一張影像開始便已生成輸出影像。
在設計中,有兩個條件決定了滾動平均序列的長度。 這兩個數值皆稱為 N_rolling,且必須設定為相同的數值。 其中一個用於處理減法影像的延遲儲存過程,另一個則用於像素值的歸一化。
運算子 RxImageLink 和 TxImageLink 用於啟用迴圈處理。 輸入影像序列的未歸一化平均總和將在一個迴圈中處理。 另需一個迴圈來儲存輸入的幀,以便日後進行數值減法運算。 每個迴圈都必須與傳入的相機幀同步。 這會觸發一個 SYNC 運算子,其中必須滿足一個開始條件。 開始條件本身由 `InsertImage ` 處理,其中首次執行會引入單一的最小幀。 所使用的 SYNC 會將幀尺寸最大化至所需值。
由於平均處理量需要儲存一定數量的幀,因此使用了 ImageBufferMultiRoiDyn 運算子。 前幾張影像僅是簡單地儲存起來,同時透過產生最少數量的幀來滿足同步需求。
透過 VA 模擬,將有助於詳細了解這在 SYNC 中的運作原理。 一般來說,一連串的人工最小幀負責進行同步。
實作了兩種不同的視覺化方式。第一種會產生一張 24 位元 RGB 影像,其中:
- 飛機 - 內容
- RED - 當前圖片
- 綠色 - 一般畫質
- BLUE - 差異圖像
第二種方法是基於 HSL 色彩空間,之後再轉換為 24 位元 RGB :
- 飛機 - 內容
- 色相/色角——差異圖,其中綠色代表最小值
- 飽和度 - 設定為最大值
- 輕盈感 — 當前圖片
第二種方法可透過將 EffectEnable 設為 1 來啟用。 可用動態增益係數對所有色相(Hue)色角進行差異縮放。
範例「rollingAverage_Loop.vad」是針對採用基本配置的單色 CameraLink 攝影機所設計,其解析度 為 1024x1024,每像素 8 位元。

上一頁

