ModuloCount 運算子

Operator Library: Accumulator

ModuloCounter 用於統計輸入鏈路上的像素、行或幀數。其計數 序列受模數除數的限制。計數器在序列重複之前可能具有的 唯一狀態數,由模數除數決定。 模數由「Divisor」參數定義。 例如,模數為 4 時,計數結果將為「n MOD 4」,即 0、1、2、3、0、1、2、3、0、1、2、3……

輸出幀的影像尺寸始終等於輸入幀的影像尺寸。 輸出端的像素資料代表計數結果。 請注意,計算時並未使用任何像素值,僅將像素、行或幀索引納入計算考量。

計數器總是從零開始計數。 CountEntity參數可設定為 計數輸入連結中的每個像素、每條線或每幀。 例如,若將CountEntity參數設定為 PIXEL,則該運算子 將隨著輸入的每個像素而遞增其計數器。

若將CountEntity設定為LINE,計數器 將在每行開頭遞增 ,因此可統計輸入連結的行數。 舉例來說,若採用模四運算,結果將是 第零行的所有像素值皆為 0。 第一行的像素值將為 1,以此類推。 然而,第四行的像素值將再次變為 0。

若CountEntity設定為FRAME, 計數器將在每個幀的開始時遞增。

以下範例說明此運算子的用法。 第一個範例顯示兩個連續的幀,其影像寬度 與影像高度皆為八像素。 所有像素值均以數字表示。幀索引 0 代表 初始幀,即開始擷取後的第一個幀。

  • 設定: 除數 = 6, 計數單位 = PIXEL, 自動清除 =EoF

    如本範例所示,當參數 CountEntity設定為 PIXEL 時,計數器會隨著每個像素而遞增 。 由於除數(Divisor)設定為六,結果值範圍為零至五。 由於計數器會在幀結束時重置,因此在第二幀中,運算子會再次從零開始。

  • 設定: 除數 = 6, 實體類型 = LINE, 自動清除 = 無

    在此範例中,運算子計數的是行數而非像素。 因此,影像中的每個像素皆代表一行號。 此處,參數AutoClear設定為 NONE。 因此,運算子在第二幀中會繼續計數行數,而不會在第一行處重置計數。

  • 設定: 除數 = 6, 實體計數 = FRAME, 自動清除 = 無

    最後一個範例展示了幀數的計數方式。 在此,每個像素的數值代表幀號。

若在擷取過程中變更了「除數」參數,新值將自下一幀開始生效。 對於一維輸入,新值將自下一行開始生效。 若輸入端為零維資料,新除數值將立即生效。

圖片限制

  • 空白影像

    不允許使用空圖像,即沒有像素的圖像。

I/O Properties

Property Value
Operator Type O
Input Link I,影像輸入
Output Link O,資料輸出

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 [1, 63]
Arithmetic {unsigned, signed} 無號數
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I
Color Format any VAF_GRAY
Color Flavor any FL_NONE
Max. Img Width any as I
Max. Img Height any as I

1

輸入 Bit Width 的範圍為 [1, 64]。 對於有號輸入,範圍為 [2, 64]。 對於無號彩色輸入,範圍為 [3, 63],而對於有號彩色,範圍則為 [6, 63]。

Parameters

除數
Type 靜態/動態寫入參數
Default 1
Range [1..2^輸出位元寬度]

此參數用以定義模運算的除數。 除數的值必須小於或等於 2^OutputBitwidth。

CountEntity
Type 靜態參數
Default PIXEL
Range {像素、線、幀}

此參數用以定義運算子計數器是針對每個像素、 每行啟用,還是僅針對每幀啟用一次。

選項 FRAME 僅適用於影像協定 VALT_IMAGE2D。 LINE 僅適用於影像協定 VALD_IMAGE2D 和 VALT_LINE1D。 對於影像協定 VALT_PIXEL0D,該參數將始終以像素為單位進行計數。

AutoClear
Type 靜態參數
Default 無
Range {行尾、文件末尾、無}

「自動清除」選項可讓計數器在行尾、幀尾時重置為零,或 完全不進行清除。

若 CountEntity 設定為 PIXEL,則此參數的三個選項皆可選取。 若 CountEntity 設定為 LINE,則可使用 EoF 和 NONE 選項。 當 CountEntity 設定為 FRAME 時,無法自動清除運算子。

若使用 VALT_LINE1D 影像協定,則無法在幀結束時進行清除。 在 VALT_PIXEL0D 中,操作員無法進行自動清除。

Examples of Use

以下範例展示了 ModuloCount 運算子的使用方式: