二维码识别

本节内容包含:

模块原理

二维码识别算法是实现对二维码的译码过程。首先对码的位置进行定位,完成姿态修正后对码图像进行预处理以提高码图像质量,然后进行译码,并保证一定的容错率。

使用方法

二维码识别模块用于识别目标图像中的二维码,将读取的二维码信息以字符的形式输出。一次可以高效准确地识别多个二维码,目前只支持QR码和DataMatrix码。该模块对码质量要求较高。

该模块无固定搭配使用模块,前序模块可以搭配仿射变换、形态学处理等图像处理模块对码成像做优化,然后输入到二维码识别模块中进行读码,后序模块可以利用二维码信息及位置进行定位、通信等处理。

参数配置

QR码/DataMatrix码

开启相应按钮可以识别该类型的码,当不确定码类型时,建议均开启。

二维码个数

期望查找并输出的二维码最大数量,若实际查找到的个数小于该参数,则输出实际数量的二维码。

说明:

有些场景中二维码个数不确定,若要识别所有出现的二维码,则该参数可设置为场景中二维码个数最大值。在部分应用中,背景纹理较复杂,当前参数值可以适当大于需要识别的二维码个数。

极性

包含任意、白底黑码和黑底白码三种形式,可根据实际情况进行选择。

边缘类型

包含连续型、离散型和兼容模式三种类型,如下图所示。左边表示连续型,右边表示离散型,兼容模式可兼容其他两种类型。

图 1 边缘类型
降采样倍数

图像降采样系数,数值越大,算法效率越高,但二维码的识别率降低。

码宽范围

二维码所占的像素宽度,码宽范围包含最大最小码的像素宽度。

镜像模式

包括任意、镜像和非镜像三种模式。当采集图像是从反射的镜子中等情况下采集到的图像,可选择镜像

QR畸变

包括畸变和非畸变两种。当要识别的二维码打印在瓶体上或者类似物流的软包上有褶皱时,可选择畸变

超时退出时间

算法运行时间超出该值,则直接退出。当设置为0时,以实际所需算法耗时为准,单位ms。

应用模式
  • 普通模式:正常场景下采用普通模式。

  • 专家模式:二维码较难识别时可选。

  • 极速模式:需要极性边缘类型以及DM码类型等参数均不为“兼容模式”时才可生效。

DM码类型

包括正方形、长方形和兼容模式三种类型。

模块结果

该模块的模块结果介绍请见二维码识别