QR Code Reader vTool#
QR Code Reader 可以检测并解码通过图像输入引脚接收的图像中的二维码。它通过区域和文本输出引脚来输出结果。
区域输出包含找到二维码的区域。文本输出是由二维码编码的文本字符串。
如果您在检测前使用 ROI Creator vTool 指定感兴趣区域,则 QR Code Reader 会通过其 Roi 输入引脚接受 ROI 数据。这样可减少 QR Code Reader 在其中搜索二维码的图像区域,从而有助于消除错误候选码。同时,这也会让处理速度更快且更稳定。
QR Code Reader 版本#
有三个版本的 QR Code Reader 可用。下表显示了版本之间的差异。单击表标题中的版本可直接跳转到本主题中的相关部分。
Starter | Basic | Pro | |
---|---|---|---|
您可以检测到多少二维码? | 3 | 3 | 不受限制 |
您是否可以检测到 GS1 和微二维码? | 无 | 是 | 是 |
您可以指定检测的超时时间吗? | 无 | 是 | 是 |
允许哪些模块大小? | 边长介于 2–80 个像素之间 | 边长介于 6–20 个像素之间 | 边长介于 2–100 个像素之间 |
模块之间是否允许存在间隙? | 是的,小间隙 | 是的,小间隙 | 是的,大间隙 |
有多少定位图案必须可见? (仅适用于二维码,不适用于微二维码。) | 三个都可见 | 三个都可见 | 2 |
您是否可以检测到前亮后暗二维码? | 否 这需要一个预处理步骤。 | 否 这需要一个预处理步骤。 | 是 |
您是否可以检测到镜像的二维码? | 是 | 是 | 是 |
图像中的对比度是否有限制? | 暗图像部分和亮图像部分之间需要足够的对比度。 | 暗图像部分和亮图像部分之间需要足够的对比度。 | 图像的明暗部分之间的差异必须至少为 10 个灰度值。 |
是否可以使用强化检测模式? | 无 | 无 | 是 |
ROI 输入引脚的有效数据类型 | RectangleF | RectangleF、RectangleF 数组、区域、区域数组 | RectangleF、RectangleF 数组、区域、区域数组 |
运作原理#
信息
QR Code Reader Starter vTool 不支持 GS1 或微二维码检测。
视 QR Code Reader 的版本而定,您可以在图像中检测到多达三个或无限数量的二维码。
在 Basic 和 Pro 版本中,您可以指定超时时间以在一定时间后结束检测。如果您知道您的图像仅包含一个二维码,则配置 QR Code Reader 只寻找一个代码可以节省处理时间。
常见用例#
- Reading 二维码:在这种情况下,您只需连接 Texts 输出引脚,即可输出解码后的字符串。
- 确定二维码的 positions:使用从 Regions 输出引脚返回的二维码的位置和大小进行后续处理。
QR Code Reader Starter#
您可以在图像中检测到多达三个二维码。将数量限制为图像中的预期代码数量可以节省处理时间。不支持检测 GS1 或微二维码。若要进行检测,您需要 Basic 或 Pro 版的 vTool。
检测标准#
二维码必须满足以下标准,才能检测到并成功解码:
- 代码结构:QR Code Reader 支持 1 到 40 个符号的标准范围,对应于 21 x 21 到 177 x 177 个模块。
- 模块大小:代码中各个模块的边长必须在 2 和 80 像素之间。
- 模块之间的间隙:模块之间允许存在小间隙。
- 查找器图案数量:二维码包含 3 个查找器图案。所有 3 个查找器图案都必须可见才能读取代码。
- 极性:二维码必须是明暗模式。对于前亮后暗模式,请运行预处理步骤来反转输入图像,例如,使用 Gray Value Transformer vTool。
- 镜像:可以检测到垂直和/或水平镜像的二维码。
- 对比度:暗图像部分和亮图像部分之间需要足够的对比度。
- 易读性:代码必须没有视觉缺陷,例如,没有反射或污迹,并且必须具有足够的分辨率和对比度。
配置 vTool#
要配置 QR Code Reader Starter vTool:
- 在 vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
QR Code Reader Starter 对话框即打开。 - 在 Number of QR Codes 区域中,选择要检测的二维码数量。
您可以在引脚数据视图中查看 QR Code Reader Starter 的结果。在这里,您可以选择要显示的输出。
QR Code Reader Basic#
您可以在图像中检测到多达三个二维码。将数量限制为图像中的预期代码数量可以节省处理时间。
检测标准#
二维码必须满足以下标准,才能检测到并成功解码:
- 代码结构:QR Code Reader 支持 1 到 40 个符号的标准范围,对应于 21 x 21 到 177 x 177 个模块。
- 模块大小:代码中各个模块的边长必须在 2 和 100 像素之间。
- 模块之间的间隙:模块之间允许存在小间隙。
- 查找器图案数量:二维码包含 3 个查找器图案。所有 3 个查找器图案都必须可见才能读取代码。
- 极性:二维码必须是明暗模式。对于前亮后暗模式,请运行预处理步骤来反转输入图像,例如,使用 Gray Value Transformer vTool。
- 镜像:可以检测到垂直和/或水平镜像的二维码。
- 对比度:暗图像部分和亮图像部分之间需要足够的对比度。
- 易读性:代码必须没有视觉缺陷,例如,没有反射或污迹,并且必须具有足够的分辨率和对比度。
数据代码类型#
数据代码类型下拉列表允许您选择要查找的数据代码类型:
- 二维码
- GS1 二维码
- 微二维码
二维码和 GS1 二维码的符号结构完全相同,但其编码方案不同。
在对标准二维码进行解码时,QR Code Reader 会输出原始字符串。如果选择的是 GS1 二维码,QR Code Reader 将以符合 GS1 标准的格式解码字符串。
超时#
对于时间要求严格的应用程序,您可以指定超时。在处理时间变化或无法预见的情况下,超时会有所帮助,例如,如果图像不包含二维码。一旦超过指定的超时时间,检测过程就会停止,并继续处理下一个图像。
Basler 建议将超时设置为略低于所需的时间限制。这是因为 vTool 不会立即停止检测过程。因此,将超时设置为所需时间限制的 70%-80%。
配置 vTool#
配置 QR Code Reader Basic vTool:
- 在 vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
QR Code Reader Basic 对话框即打开。 - 在数据代码类型下拉列表中,选择所需的数据代码类型。
- 在 Number of QR Codes 区域中,选择要检测的二维码数量。
- 在 Timeout 区域中,指定是否要在一定时间后结束检测。如果要指定超时,请清除 No timeout 复选框并在输入字段中输入所需的超时。
您可以在引脚数据视图中查看 QR Code Reader Basic 的结果。在这里,您可以选择要显示的输出。
QR Code Reader Pro#
您可以在图像中检测到无限数量的二维码。将数量限制为图像中的预期代码数量可以节省处理时间。
检测标准#
二维码必须满足以下标准,才能检测到并成功解码:
- 代码结构:QR Code Reader 支持 1 到 40 个符号的标准范围,对应于 21 x 21 到 177 x 177 个模块。
- 模块大小:代码中各个模块的边长必须在 2 和 100 像素之间。
- 模块之间的间隙:模块之间允许存在大间隙。
- 查找器图案数量:二维码包含 3 个查找器图案。必须有 2 个查找器图案可见才能读取代码。
- 极性:二维码可以是前暗后亮图案或前亮后暗图案或两者的混合。
- 镜像:可以检测到垂直和/或水平镜像的二维码。
- 对比度:图像的明暗部分之间的差异必须至少为 10 个灰度值。
- 易读性:对比可以检测到具有视觉缺陷(例如反射或污迹)且分辨率或对比度偏低的代码。
数据代码类型#
数据代码类型下拉列表允许您选择要查找的数据代码类型:
- 二维码
- GS1 二维码
- 微二维码
二维码和 GS1 二维码的符号结构完全相同,但其编码方案不同。
在对标准二维码进行解码时,QR Code Reader 会输出原始字符串。如果选择的是 GS1 二维码,QR Code Reader 将以符合 GS1 标准的格式解码字符串。
检测模式#
在强化检测模式下,QR Code Reader 对二维码的质量更宽容。这意味着仍然会检测到不符合所有检测标准的代码。启用此选项会减慢检测过程。
超时#
对于时间要求严格的应用程序,您可以指定超时。在处理时间变化或无法预见的情况下,超时会有所帮助,例如,如果图像不包含二维码。一旦超过指定的超时时间,检测过程就会停止,并继续处理下一个图像。
Basler 建议将超时设置为略低于所需的时间限制。这是因为 vTool 不会立即停止检测过程。因此,将超时设置为所需时间限制的 70%-80%。
配置 vTool#
配置 QR Code Reader Pro vTool:
- 在 vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
QR Code Reader Pro 对话框即打开。 - 在数据代码类型下拉列表中,选择所需的数据代码类型
- 在二维码数量区域中,选择要检测的二维码数量。如果不知道要检测的最大代码数量,请选择无限制。
- 如果需要,请选中使用强化检测复选框。
- 在极性下拉列表中,选择适合您应用的选项。
如果您的应用中的代码具有特定的极性,请相应地选择设置。如果图像中代码的极性未知或出现多个具有不同极性的代码,请选择任意。 - 在 Timeout 区域中,指定是否要在一定时间后结束检测。如果要指定超时,请清除 No timeout 复选框并在输入字段中输入所需的超时。
您可以在引脚数据视图中查看 QR Code Reader Pro 的结果。在这里,您可以选择要显示的输出。
输入#
图像#
直接从 Camera vTool 或从输出图像的 vTool(例如 Image Format Converter vTool)接受图像。
- 数据类型:图像
- 图像格式:8 位单色或彩色图像。彩色图像在内部转换为单色图像。
ROI#
从 ROI Creator vTool 或任何其他可输出区域或矩形的 vTool 中接受感兴趣区域。多个矩形或区域在内部合并以形成单个感兴趣区域。Starter 版本仅接受 RectangleF。
- 数据类型:RectangleF、RectangleF 数组、区域、区域数组
输出#
文本#
返回以二维码编码的文本字符串。
- 数据类型:字符串数组
区域#
返回找到的每个二维码的区域。该区域为矩形。它可以用于可视化目的或用于后续的特征提取。
- 数据类型:区域数组
相关的 vTools#
典型前置项#
典型后置项#
- Region Feature Extraction vTool
允许您确定找到的二维码的中心、大小和方向。