Operator ModuloCount

Operator Library: Accumulator

ModuloCounter 用于对输入链路上的像素、行或帧数进行计数。其计数字序列受模数除数(modulo divisor)的限制。计数器在序列重复前可能拥有的唯一状态数由模数除数定义。 模数除数通过 Divisor 参数进行定义。 例如,模数除数为 4 时将执行“n MOD 4”计数,即 0、1、2、3、0、1、2、3、0、1、2、3 ...

输出帧的图像尺寸始终等于输入帧的图像尺寸。 输出端的像素数据表示计数结果。 请注意,不会使用任何像素值。计算时仅考虑像素、行或帧索引。

计数器始终从零开始计数。 可以配置 CountEntity 参数,以对输入链路的每个像素、行或帧进行计数。 例如,如果将 CountEntity 参数设置为 PIXEL,则该 operator 将在输入的每个像素处递增其计数器。

如果将 CountEntity 设置为 LINE,则计数器会在每行的开头递增, 从而对输入链路的行进行计数。 例如,模数除数为 4 时,其结果将是第 0 行的所有像素值均为 0。 第 1 行的像素值将为 1,依此类推。 但是,第 4 行的像素值将再次为零。

如果将 CountEntity 设置为 FRAME, 则计数器会在每帧的开头递增。

以下示例说明了该 operator 的用法。 第一个示例显示了两个连续的帧,其图像宽度和图像高度均为 8 个像素。 所有像素值均以数字形式显示。帧索引 0 表示初始帧,即 Acquisition Start 之后的第一个帧。

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

    从本例中可以看出,当将 CountEntity 参数设置为 PIXEL 时,计数器会随着每个像素而递增。 由于 Divisor 设置为 6,因此结果值在 0 到 5 的范围内。 在第二帧中,operator 再次从零开始,因为计数器在帧结束时被重置。

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

    在此示例中,operator 对行而不是像素进行计数。 因此,图像的每个像素都代表行号。 在此,参数 AutoClear 设置为 NONE。 因此,operator 在第二帧中继续对行进行计数,而不会在第一图像行重置。

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

    最后一个示例显示了帧的计数。 在此,每个像素的值代表帧号。

如果在采集过程中更改了除数参数,则新值将在下一帧开始时生效。 对于 1D 输入,新值将应用于下一行。 如果输入端是 0D 数据,则新的除数将立即生效。

图像限制

  • 空图像

    不允许使用空图像(即不包含像素的图像)。

I/O Property

Property 值
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} 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
键入 静态/动态写入参数
默认 1
范围 [1..2^OutputBitWidth]

此参数定义求模运算的除数。 除数值必须小于或等于 2^OutputBitwidth。

CountEntity
键入 static 参数
默认 PIXEL
范围 {PIXEL, LINE, FRAME}

此参数定义 operator 计数器是针对每个像素、 每个行启用,还是仅针对每帧启用一次。

选项 FRAME 仅适用于图像协议 VALT_IMAGE2D。 LINE 仅适用于图像协议 VALD_IMAGE2D 和 VALT_LINE1D。 对于图像协议 VALT_PIXEL0D,该参数将始终对像素进行计数。

AutoClear
键入 static 参数
默认 NONE
范围 {EoL, EoF, NONE}

通过 AutoClear 选项,可以在行结束、帧结束时或不进行任何清除时将 Counter 重置为零。

如果 CountEntity 设置为 PIXEL,则可以选择该参数的所有三个选项。 如果 CountEntity 设置为 LINE,则可以使用 EoF 和 NONE 选项。 对于 CountEntity FRAME,无法对算子进行自动清除。

如果使用 VALT_LINE1D 图像协议,则无法在帧结束时进行清除。 在 VALT_PIXEL0D 中,该算子没有自动清除功能。

使用示例

以下示例展示了 ModuloCount 算子的用法: