Operator 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,計數器會在每一行的開頭遞增,因此會對輸入連結的行進行計數。例如,取模除數為 4 將會產生以下結果:第 0 行的所有像素值均為 0。第 1 行的像素值將為 1,依此類推。然而,第 4 行的像素值將再次變回零。

如果 CountEntity 設為 FRAME,計數器會在每個影格的開頭遞增。

以下範例說明了此運算子的用法。第一個範例顯示兩個連續的影格,其影像寬度和影像高度為 8 個像素。所有像素值均以數字表示。影格索引 0 代表初始影格,即採集開始之後的第一個影格。

  • 配置: Divisor = 6, CountEntity = PIXEL, AutoClear = EoF

    如本範例所示,當參數 CountEntity 設為 PIXEL 時,計數器會隨著每個像素遞增。由於 Divisor 設為 6,因此結果值的範圍從 0 到 5。在第二個影格中,運算子會再次從零開始,因為計數器會在影格結束時重設。

  • 配置: Divisor = 6, CountEntity = LINE, AutoClear = NONE

    在此範例中,運算子對行進行計數而不是像素。因此,影像的每個像素都代表行號。在此,參數 AutoClear 設為 NONE。因此,運算子會在第二個影格中繼續對行進行計數,而不會在第一個影像行重設。

  • 配置: Divisor = 6, CountEntity = FRAME, AutoClear = NONE

    最後一個範例顯示了對影格進行計數。在此,每個像素的值代表影格編號。

如果在採集期間變更除數參數,新值將在下一個影格開始時生效。對於 1D 輸入,新值將套用於下一行。如果輸入端為 0D 資料,則新的除數值會立即生效。

影像限制

  • Empty Images

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

I/O Properties

Property Value
Operator Type O
Input Link I,Image Input
Output Link O, Data Output

支援的 Link 格式

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 [1, 63]
Arithmetic {unsigned, signed} unsigned
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]。

參數

Divisor
Type static/dynamic write parameter
Default 1
Range [1..2^OutputBitWidth]

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

CountEntity
Type static parameter
Default PIXEL
Range {PIXEL, LINE, FRAME}

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

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

AutoClear
Type static parameter
Default NONE
Range {EoL, EoF, NONE}

AutoClear 選項允許在行結尾、影格結尾將計數器重設為零,或者根本不執行清除。

如果 CountEntity 設為 PIXEL,則可以選擇此參數的所有三個選項。如果 CountEntity 設為 LINE,則可以使用選項 EoF 和 NONE。對於 CountEntity FRAME,無法對運算子進行自動清除。

若使用 VALT_LINE1D image protocol,則無法在影格結束時進行 clear。在 VALT_PIXEL0D 中,無法使用 operator 的 auto clear。

使用範例

以下範例顯示了 ModuloCount operator 的使用方式: