save-images
此示例插件演示了数据容器 API 的使用。当该插件运行时,它会自动将 MVApp 结果 中包含的图像数据保存到磁盘上的可配置目录中。该插件提供一系列丰富的配置选项,可供自定义图像格式、输出目录结构和图像输出条件。此插件的源代码在 MERLIC 安装目录的“examples\communicator_plugins\save-images”目录中提供。
使用插件
可以结合“action-sender”示例插件对该插件进行测试。您可以通过“action-sender”插件发送操作,“save-images”插件会将图像结果存储在您的磁盘上。
请记住,配方中引用的 MERLIC Vision App 至少需要一个表示图像结果的 MVApp 结果。如果没有向 MVApp 结果中添加图像结果,则无法从示例插件中检索到任何图像。
- 打开 MERLIC RTE Setup 并转到“配方”选项卡。
- 导入引用 MERLIC Vision App 的配方,该配方至少包含一个表示图像结果的 MVApp 结果。您也可以使用示例配方“verify_chip_number_recipe.mrcp”进行测试。
- 将该配方设置为默认配方。如果您跳过此步骤,并且在启动插件时未将该配方设置为默认配方,则必须使用命令“python.exe comm-send.py PrepareRecipe <Recipe ID>”通过“action-sender”插件手动加载配方,例如在步骤 9 之后。
- 通过 Windows 开始菜单项“MERLIC 5 RTE with Frontend + Communicator”启动 MERLIC RTE 和 MERLIC Communicator。以下步骤不需要 MERLIC Frontend。因此,如果您愿意,可以关闭 Frontend 窗口。但是,由于这是同时启动 MERLIC RTE 和 MERLIC Communicator 的最简单方法,我们建议使用开始菜单项。
- 在 MERLIC RTE Setup中,转到“通讯”选项卡,将“save-images”插件添加到左侧的插件实例列表中。

- 检查该插件的配置。有关可用配置选项的更多信息,请参阅配置插件部分。
- 单击 MERLIC RTE Setup 底部的“
启动插件”按钮或通过左侧插件实例列表中的相应菜单,启动该插件的执行。要获取有关如何启动和停止插件的更多详细信息,请参阅 MERLIC 手册中的启动和停止 Communicator 插件主题。
- 按照与“save-images”插件相同的方式添加并启动“action-sender”插件。
- 打开命令提示符窗口,切换到“action-sender”插件的目录,即切换到 MERLIC 安装目录中的“examples\communicator_plugins\action-sender”目录。
- 使用 python 脚本“comm-send.py”启动单次执行,如下所示。MVApp 会执行一次,图像结果会被检索并存储在定义的目录中。您也可以输入“python.exe comm-send.py --help”获取更多使用情况信息。复制
python.exe comm-send.py StartSingleJob - 检查“save-images”插件配置中定义的目录中保存的图像。
配置插件
在 MERLIC RTE Setup 的“通讯”选项卡中可以配置示例插件。只需打开 MERLIC RTE Setup 并添加该插件即可查看插件的可用配置选项。请记住,您首先必须启动 MERLIC Communicator 才能启用配置。
选定插件的参数将显示在“通讯”选项卡的右侧。下面将仅介绍“User parameters”部分中的参数,因为这些是可配置参数。
Image Settings
Image format
|
格式 |
描述 |
|---|---|
|
PNG |
以 PNG 图像格式保存图像。如果选择此格式,则参数 PNG compression 将可进行配置。 |
|
JPEG |
以 JPEG 图像格式保存图像。如果选择此格式,则以下其他参数可用: |
|
HALCON Serialized Item |
以 HALCON Serialized Item (即 .hse 文件)格式保存图像。这是一种专有格式,仅可供同时使用 MVTec HALCON 的用户使用。如果要在 HDevelop 中读取此格式的文件,您可以使用以下代码段: open_file('<file path to .hse>', 'input_binary', FileHandle) fread_serialized_item(FileHandle, SerializedItemHandle) deserialize_object(Object, SerializedItemHandle) |
通常,“byte”、“int1”、“uint2”、“int2”、“int4”、“int8”以及“real”类型的所有图像均可导出为 MVApp 结果,并转换为可用的图像格式。但是,“real”类型的图像是个例外,因为它们只能转换为“HALCON Serialized Item”格式。有关图像格式及相应的像素转换的信息,请参阅配置 Communicator 插件主题中的图像结果部分。
Use progressive JPEG
仅当“Image format”参数设为“JPEG”时,此参数才可用。
JPEG quality
仅当“Image format”参数设为“JPEG”时,此参数才可用。它定义压缩为 JPEG 的质量,用百分比表示。默认情况下设置为 50%。
PNG compression
仅当“Image format”参数设为“PNG”时,此参数才可用。它定义压缩为 PNG 的级别。可设置为 0 到 9 之间的值。默认情况下设置为 6。
Image zoom mode
此参数可用于调整结果图像的大小。下表列出了可用选项。根据所选的模式,其他参数将可进行配置。默认情况下,该参数设置为“None”。
|
模式 |
描述 |
|---|---|
|
None |
以原始大小保存图像,不进行任何缩放。 |
|
Fixed width and height |
将图像缩放到 Image width 和 Image height 参数中定义的大小。 |
|
Zoom factor |
系统将根据 Image zoom factor 参数中指定的系数延两个维度调整图像大小。 |
Image width
仅当“Image zoom mode”参数设为“Fixed width and height”时,此参数才可用。它定义结果图像的宽度。
Image height
仅当“Image zoom mode”参数设为“Fixed width and height”时,此参数才可用。它定义结果图像的高度。
Image zoom factor
仅当“Image zoom mode”参数设为“Zoom factor”时,此参数才可用。它定义用于沿两个维度调整图像大小的百分比值。您也可以指定大于 100% 的值。默认情况下,该参数设置为 100%,这表示保留原始图像大小。
Conditional Output
Output condition
此参数定义是否根据特定 MVApp 结果 的值检索图像结果。默认情况下设置为“Always”,图像在保存时会忽略任何 MVApp 结果 值。您可以将此选项用于各种用例,例如,在进行质量检验时只想保存检测到质量不佳的迭代的图像。
|
条件 |
描述 |
|---|---|
|
Always |
保存图像结果时始终忽略任何 MVApp 结果 值。 |
|
On result true |
仅当特定 MVApp 结果 的值为“true”时才保存图像结果。在 Result name 参数中可以定义应进行值检查的 MVApp 结果 的名称。将“Output condition”设置为“On result true”后,它将立即可用。 根据结果值的类型,输出条件会在不同情况下设置为“true”:
|
|
On result false |
仅当特定 MVApp 结果 的值为“false”时才保存图像结果。在 Result name 参数中可以定义应进行值检查的 MVApp 结果 的名称。将“Output condition”设置为“On result false”后,它将立即可用。 根据结果值的类型,输出条件会在不同情况下设置为“false”:
|
Result name
仅当“Output condition”参数设为“On result true”或“On result false”时,此参数才可用。该参数可用于输入应进行值验证的 MVApp 结果 的名称。如果值符合“Output condition”中的参数设置条件,则检索并保存图像。
Output
Image result filter mode
通过此参数可以启用用于确定将检索哪些图像结果的筛选器。您可以选择以下选项。默认情况下设置为“None”。
|
模式 |
描述 |
|---|---|
|
None |
未应用筛选器,将检索所有结果图像。 |
|
Regular expression |
仅检索名称与 Result name filter regex 参数中指定的正则表达式相匹配的结果图像。 |
Result name filter regex
Base directory
此参数定义图像结果的保存目录。您可以通过 按钮(在本地系统上)从文件系统中选择目录,也可以直接在文本字段中输入路径。默认情况下,该参数在 Windows 系统上设置为“%LOCALAPPDATA%/Temp”,在 Linux 系统上设置为“/tmp”。您还可以选择将图像结果保存到特定格式的子目录中。此操作可在Subdirectory format参数中完成。
Subdirectory format
此参数定义保存图像结果的子目录的格式。默认情况下设置为“Recipe ID”。
|
格式 |
描述 |
|---|---|
|
None |
不创建子目录。将图像结果直接保存在“Base directory”参数中定义的位置。 |
|
Recipe ID |
以当前已准备的配方(即引用已执行 MVApp 的配方)的 ID 命名子目录。 |
|
Date |
以执行的当前日期命名子目录。日期格式如下:{year}-{month:02}-{day:02},例如“2022-07-18”。 |
|
Date and recipe ID |
以当前日期和当前已准备的配方的 ID 命名子目录。生成的目录名称格式如下:{year}-{month:02}-{day:02}--{recipeId},例如“2022-07-18-6”。 |
|
Custom |
此选项允许您使用自定义格式的目录名称。所需格式可以在 Subdirectory format string 参数中定义,该参数在选择“Custom”后立即可用。 |
Subdirectory format string
仅当“Subdirectory format”参数设为“Custom”时,此参数才可用。通过该参数可以为保存图像结果的子目录名称定义自定义格式。您可以在输入字段中输入所需的子目录名称,也可以使用表示特定值(如配方 ID)的占位符来定义名称。此类占位符必须在大括号内定义,否则会被解释为常规字符串。
下表显示可用的占位符。
|
格式字符串占位符 |
数据格式 |
描述 |
|---|---|---|
|
{recipeId} |
String |
当前已准备的配方的 ID。 |
|
{resultId} |
Integer |
检索到的图像结果的 ID。 |
|
{resultName} |
String |
相应的 MVApp 图像结果的名称,即在 MERLIC Creator 中向 MVApp 结果 添加图像结果时定义的名称。如果有多个 MVApp 图像结果,则会创建多个子目录;每个子目录用于保存具有相应名称的 MVApp 图像结果。 |
|
{dataIndex} |
Integer |
MVApp 图像结果的索引。它对应于在 MERLIC Creator 的“MVApp 参数和结果”面板中分配给 MVApp 图像结果的位置编号。 |
|
{year} |
Integer |
执行时的当前年份。 |
|
{month} |
Integer |
执行时的当前月份。 |
|
{day} |
Integer |
执行时的当前日期。 |
|
{hour} |
Integer |
执行时的当前小时。 |
|
{minute} |
Integer |
执行时的当前分钟。 |
|
{second} |
Integer |
执行时的当前秒钟。 |
|
{millisecond} |
Integer |
执行时的当前毫秒。 |
|
{<NAME_OF_MVAPP_RESULT>} |
String |
已使用名称“<NAME_OF_MVAPP_RESULT>”定义为 MVApp 结果 的指定工具结果的值。如果要在子目录的名称中使用或添加工具结果值,则此格式很有用。因此,您只能指定不表示图像的 MVApp 结果 的名称。请记住,使用此格式字符串时,请使用 MVApp 结果 名称,不要使用相应工具结果的名称。 |
|
{measId} |
String |
分配给生成图像结果的作业的测量 ID,如果未提供则为“null”。 |
|
{partId} |
String |
分配给生成图像结果的作业的部分 ID,如果未提供则为“null”。 |
所有时间特定的占位符均表示 UTC 时间。您还可以为占位符使用附加格式说明符,即 {<placeholder>:<format specifier>},以更精确地配置名称。例如,如果“Subdirectory format”设置为“Date”,则使用以下占位符和格式说明符:{year}-{month:02}-{day:02}。有关可用的格式说明符的更多详细信息,请参阅 {fmt} 格式设置库文档。
File name format
此参数定义已保存的图像结果的文件名格式。默认情况下设置为“Result ID and data index”。
|
格式 |
描述 |
|---|---|
|
Result ID and data index |
文件名由结果 ID 和数据索引组成。 |
|
Time and data index |
文件名由当前 UTC 时间和数据索引组成,例如“13-20-00-831-0.jpg”。 |
|
Time and result name |
文件名由当前 UTC 时间和相应 MVApp 图像结果的结果名称组成,例如“13-20-00-831-Heatmap.jpg”。 |
|
Result ID and result name |
文件名由相应图像结果的结果 ID 和对应的 MVApp 图像结果的名称组成,例如“37-Heatmap.jpg”。 |
|
Custom |
此选项允许您使用自定义格式的文件名名称。所需格式可以在 File name format string 参数中定义,该参数在选择“Custom”后立即可用。 |
File name format string
仅当“File name format”参数设为“Custom”时,此参数才可用。通过该参数可以为图像结果文件名定义自定义格式。您可以在输入字段中输入所需的文件名,也可以使用表示特定值(如配方 ID)的占位符来定义名称。此类占位符必须在大括号内定义,否则会被解释为常规字符串。有关可用占位符的更多信息,请参阅 Subdirectory format string 参数的说明。