Operator ImageInjector

Operator Library: Debugging

算子 ImageInjector 允许您将图像注入到算子的图像数据输出中。 可以直接从文件注入图像(文件格式:*.tif)。 您可以通过 Framegrabber API 或 Framegrabber SDK 工具 microDisplay 发出注入命令。

算子 ImageInjector 的工作方式类似于您在 VisualApplets 中仿真设计时使用的 Simulation Sources — 只不过算子 ImageInjector 用于运行时测试。

支持两种注入方式:插入和替换。

插入模式:当激活其中一个插入模式时,输入链路将被阻塞。

替换模式:当激活其中一个替换模式时, 该算子 在图像注入期间充当图像接收器(Image Sink)。 输入链路不会被阻塞。

注入的图像数据通过写入 WritePixel 和 WriteFlag 寄存器进行逐像素插入。 只有当参数 ReadyForInjection 切换为“yes”时,写寄存器才会启用。(若要了解参数 ReadyForInjection 何时设置为“yes”,请参见参数 Mode。)

在注入图像的每一行末尾(最后一行除外),必须向 WriteFlag 寄存器写入一个 EndOfLine 标志。 当到达最后一行的末尾时,必须向 WriteFlag 寄存器写入一个 EndOfFrame 标志。

CurrXPos 和 CurrYPos 参数 指向当前活动的像素位置。

[注意] 参数 EnableInsertModes 将算子的类型从 M 类型更改为 P 类型

算子 ImageInjector 是一个 M 类型算子。但是,如果将 EnableInsertModes 设置为“no”,VisualApplets 将把该算子当作 P 类型算子处理。

[注意] 停用注入模式

切回默认模式 FlowThrough(即停用所有类型的注入) 仅允许在 参数 ReadyForFlowThrough 设置为“yes”时进行。

[重要] 运行时测试

此算子专为在运行时测试和分析您的设计而设计: 您需要构建(综合)设计、将其加载到目标硬件上并开始实际图像处理, 然后才能使用该算子进行调试。

该算子不适用于 VisualApplets 中的设计仿真。

I/O Properties

财产 值
操作员类型 M
Input Link I,图像数据输入
输出链接 O,图像数据输出

Supported Link Format

链接参数 输入链路 I 输出链路 O
Bit Width [1, 64] as I
Arithmetic {unsigned, signed} as I
Parallelism 1 as I
内核列 1 1
内核行 1 1
图像协议 {VALT_IMAGE2D, VALT_LINE1D} as I
Color Format 任何 as I
颜色口味 任何 as I
Max. Img Width 任何 as I
Max. Img Height 任何 as I

参数

Mode
键入 动态写入参数
默认 FlowThrough
范围 {FlowThrough, InsertAfterEof, InsertAfterEol, ReplaceAfterEof, ReplaceAfterEol}

此模式参数用于启用和禁用图像注入。 在图像注入期间,算子会阻塞输入链路(InsertAfterEof、InsertAfterEol) 或丢弃在注入期间传入的图像数据(ReplaceAfterEof、ReplaceAfterEol)。

Inject:在此模式下,算子会立即阻塞输入链路并将参数 ReadyForInjection 设置为“yes”。 一旦 ReadyForInjection 设置为“yes”,您就可以从文件注入图像。

FlowThrough:禁用图像注入。 切回默认模式 FlowThrough(即停用所有类型的注入)仅允许在参数 ReadyForFlowThrough 设置为“yes”时进行。

InsertAfterEof:设置为此模式时,算子会查找帧结束(EoF)标志。 一旦找到 EoF 标志(即达到当前图像末尾时), 算子就会阻塞输入链路并将参数 ReadyForInjection 设置为“yes”。一旦 ReadyForInjection 设置为“yes”,您就可以从文件注入图像。 此模式不适用于 LINE-1D 图像协议。 只有当参数 EnableInsertModes 设置为“yes”时,此模式才可用, 这也意味着算子类型为 M。

InsertAfterEol:设置为此模式时,算子会查找行结束(EoL)标志。 一旦找到 EoL 标志(即达到当前行末尾时), 算子就会阻塞输入链路并将参数 ReadyForInjection 设置为“yes”。一旦 ReadyForInjection 设置为“yes”,您就可以从文件注入图像。 只有当参数 EnableInsertModes 设置为“yes”时,此模式才可用, 这也意味着算子类型为 M。

当设置为两个可用替换模式中的一个时,算子在图像注入期间充当图像接收器。

ReplaceAfterEof:算子等待当前图像结束。 一旦找到 EoF 标志,算子就会将参数 ReadyForInjection 设置为“yes”。一旦 ReadyForInjection 设置为“yes”,您就可以从文件注入图像。 在注入期间,会丢弃传入的图像数据。 不适用于 LINE-1D 图像协议。

ReplaceAfterEol:算子等待当前行结束。 一旦找到 EoL 标志,算子就会将参数 ReadyForInjection 设置为“yes”。一旦 ReadyForInjection 设置为“yes”,您就可以从文件注入图像。 在注入期间,会丢弃传入的图像数据。

EnableInsertModes
键入 静态写入参数
默认 不
范围 {yes, no}

如果设置为“yes”,参数 Mode 可以设置为插入模式 InsertAfterEof 或 InsertAfterEol。在这种情况下, 算子类型为 M。 如果设置为“no”,则参数 Mode 不允许使用这两个插入模式, 并且算子类型为 P。

ReadyForInjection
键入 动态读取参数
默认 不
范围 {yes, no}

当参数 Mode 处于插入或替换模式时,指示已准备好写入像素或标记。必须将其设置为 "yes" 才能启用参数 WritePixel 和 WriteFlag。

ReadyForFlowThrough
键入 动态读取参数
默认 不
范围 {yes, no}

指示已准备好切换回 FlowThrough 模式(参数 Mode 的模式)。

当参数 WriteFlag

  • 在 IMAGE-2D 模式下写入 EndOfFrame,或
  • 在 LINE-1D 模式下写入 EndOfLine。

CurrXPos
键入 动态读取参数
默认 0
范围 [0, MaxImageWidth-1]

显示当前的行位置。

CurrYPos
键入 动态读取参数
默认 0
范围 [0, MaxImageHeight-1]

显示当前图像高度位置。

WritePixel
键入 动态写入参数
默认 0
范围 [0, 2^BitWidth-1]

像素值。如果使用 24 bit Color Format,则必须应用以下位映射:Red = [0, 7], Green = [9,15], Blue = [16,23]。

WriteFlag
键入 动态写入参数
默认 EndOfLine
范围 {EndOfLine, EndOfFrame}

您需要在注入的每行末尾写入一个 EndOfLine 标记,但图像最后一行末尾除外。

您需要在注入图像的最后一行末尾写入一个 EndOfFrame 标记。

此参数还会影响参数 ReadyForFlowThrough:

当以下情况时,参数 ReadyForFlowThrough 设置为 "yes":

  • 在 IMAGE-2D 模式下写入 EndOfFrame,或
  • 在 LINE-1D 模式下写入 EndOfLine。

[注意] 一次只能使用一个标记

在图像末尾,只能向此参数写入 EndOfFrame 标记。

切勿将 EoL 与 EoF 一起写入。EoF 始终包含 EoL+EoF。

ImageFile
键入 动态写入参数
默认 image.tif
范围

要注入的图像文件。图像尺寸必须小于或等于输出 link Property。 图像文件的每个 Image Components 的像素位深可以是 8 位或 16 位。如果每个 Image Components 的图像像素位深 与 link Property 定义的 Bit Width 不一致,则会对图像 Image Components 进行位移,使其 与 link Property 定义的像素 Image Components 实现最高有效位 (MSB) 对齐。 要在 microDisplay 中进行文件选择,请手动设置文件路径,或右键单击此参数以打开文件选择菜单。

InjectFromFile
键入 动态写入参数
默认 不
范围 {no, yes}

当设置为 "yes" 时,图像文件将被注入到输出 link 中。 在 FlowThrough 模式下禁用(即,当参数 Mode 设置为 FlowThrough 时)。

Examples of Use

以下示例展示了 ImageInjector 算子的使用方法: