CN117131897B - 二维码图形的解码方法、装置、设备及介质 - Google Patents
二维码图形的解码方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117131897B CN117131897B CN202311352576.XA CN202311352576A CN117131897B CN 117131897 B CN117131897 B CN 117131897B CN 202311352576 A CN202311352576 A CN 202311352576A CN 117131897 B CN117131897 B CN 117131897B
- Authority
- CN
- China
- Prior art keywords
- pattern
- area
- dimensional code
- information
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000001514 detection method Methods 0.000 claims abstract description 157
- 238000000605 extraction Methods 0.000 claims abstract description 20
- 238000012937 correction Methods 0.000 claims description 91
- 230000006870 function Effects 0.000 claims description 46
- 238000010586 diagram Methods 0.000 claims description 43
- 238000000926 separation method Methods 0.000 claims description 29
- 230000005484 gravity Effects 0.000 claims description 13
- 239000003086 colorant Substances 0.000 claims description 9
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 2
- 238000007639 printing Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 4
- 230000007935 neutral effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Character Input (AREA)
- Image Analysis (AREA)
Abstract
本申请提供一种二维码图形的解码方法、装置、设备及介质。该方法包括:获取包含待解码二维码的图形,并对图形进行线性扫描,以获取图形中的二维码区域;根据第一预设比例将二维码区域旋转到标准位置,并确定二维码图形中的位置探测图形和辅助寻像图形;根据位置探测图形和辅助寻像图形的位置确定二维码图形的信息区的位置以及模块的模块尺寸;根据模块尺寸以及预设的第一提取顺序依次提取信息区中每一模块对应的第一字符信息,并将第一字符信息组合成信息位流;按照预设位数的二进制字符为一组,对信息位流进行解码,以确定二维码图形对应的解码信息。本申请的方法,可以对设置在印制面积较小的物品上的二维码进行解码,并且成功率和准确性高。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种二维码图形的解码方法、装置、设备及介质。
背景技术
二维码是一种用某种特定的几何图形按一定规律在平面(二维方向)上分布的、黑白相间的图形,它能够存储一定的信息。常见的二维码可以分为QR码、DM码、PDF码、MC码和汉信码等几大类。
二维码图形通常包括功能区和信息区,功能区一般设置有用于寻找二维码图形的寻像图形以及用于图形校正的校正图形,信息区用于存储编码之后的二维数据信息。信息区通常存储有对用户想要获取的信息进行编码之后的数据码字,以及对数据码字进行纠错的纠错码字。
由于较大的功能区图形以及存储信息的限制,使得现有的二维码图形通常较大,不能设置在笔杆、芯片、线缆等印制面积较小的物品上,也不存在对相应的小面积的二维码进行解码的方案。
发明内容
本申请提供一种二维码图形的解码方法、装置、设备及介质,用以对设置在印制面积较小的物品上的二维码进行解码。
第一方面,本申请提供一种二维码图形的解码方法,包括:
获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对所述图形进行线性扫描,以获取所述图形中的二维码区域;
根据所述第一预设比例将所述二维码区域旋转到标准位置,并在所述标准位置确定二维码图形中的位置探测图形和辅助寻像图形,所述位置探测图形和辅助寻像图形位于所述二维码图形的顶角,所述位置探测图形为由M×M个模块组成的矩形,所述辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数;
根据所述位置探测图形和辅助寻像图形的位置确定所述二维码图形的信息区的位置,并且根据所述位置探测图形或者所述辅助寻像图形的大小确定所述二维码图形中模块的模块尺寸;
根据所述模块尺寸以及预设的第一提取顺序依次提取所述信息区中每一模块对应的第一字符信息,并将所述第一字符信息组合成信息位流,所述信息位流由二进制字符组成;
按照预设位数的二进制字符为一组,对所述信息位流进行解码,以确定所述二维码图形对应的解码信息,所述预设位数小于汉信码转换数据码字时对应的字符位数。
在一种可能的实施方式中,所述根据符合第一预设比例的扫描特征,对所述图形进行线性扫描,以获取所述图形中的二维码区域,具体包括:
对所述图形进行水平方向和垂直方向的线性扫描,以寻找扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的扫描线,每个特征比例段取值的容许偏差为0.5× [(M-P)/2],其中,所述位置探测图形由M×M个模块组成,所述位置探测图形的第一区域由P×P个模块组成;
若在水平方向和垂直方向没有找到符合所述第一预设比例的特征比例段序列的扫描线,则将进行线性扫描的原扫描线旋转45度进行扫描,直至找到符合所述第一预设比例的特征比例段序列的扫描线;
根据符合所述第一预设比例的特征比例段序列的扫描线,获取所述图形中的二维码区域。
在一种可能的实施方式中,所述根据符合所述第一预设比例的特征比例段序列的扫描线,获取所述图形中的二维码区域,具体包括:
在含有所述第一预设比例的特征比例段序列的扫描线中,确定特征比例段符合P的线段,并根据所述特征比例段符合P的线段进行多方位多角度的线性扫描,以找到扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段;
根据所述目标扫描线段,确定特征比例段符合P的集合区域的重心、符合第一预设比例的扫描特征的扫描线的在水平和垂直两个正交方向的角平分线,并计算模块的宽度和高度;
根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,探测所述二维码图形四周的由浅色模块组成的空白区、位置探测图形以及辅助寻像区,并根据所述空白区、位置探测图形以及辅助寻像区获取所述图形中的二维码区域。
在一种可能的实施方式中,所述根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,探测所述二维码图形四周的由浅色模块组成的空白区、位置探测图形以及辅助寻像区,具体包括:
根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,探测所述二维码图形四周的由浅色模块组成的空白区;
根据所述第一预设比例、所述特征比例段符合P的集合区域的重心以及所述模块的宽度和高度,确定所述二维码图形中的位置探测图形,所述位置探测图形包括由P×P个模块组成的第一区域、设置在所述第一区域两侧的第二区域以及设置在所述第二区域两侧的第三区域;
根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,确定所述二维码图形中的辅助寻像图形,所述辅助寻像图形包括由Q个模块组成的第四区域以及设置在所述第四区域外侧的第五区域,所述第一区域中模块的颜色与所述第三区域以及所述第四区域中模块的颜色相同,并与所述第二区域以及所述第五区域中模块的颜色相反,所述辅助寻像图形包括第一辅助寻像图形、第二辅助寻像图形和第三辅助寻像图形;
其中,M>P>N>Q,P,Q均为正整数。
在一种可能的实施方式中,所述根据所述第一预设比例将所述二维码区域旋转到标准位置,并在所述标准位置确定二维码图形中的位置探测图形和辅助寻像图形,具体包括:
根据符合所述第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段,将所述二维码区域旋转至标准位置,使得处于所述标准位置的二维码图形中,所述位置探测图位于所述二维码图形的左下顶角,所述第一辅助寻像图形位于所述二维码图形的右上顶角,所述第二辅助寻像图形位于所述二维码图形的左上顶角,所述第三辅助寻像图形位于所述二维码图形的右下顶角;
所述位置探测图形的第一区域位于所述二维码图形的左下顶角,所述位置探测图的第二区域和所述第三区域均为Q个模块宽的倒L形,所述第二区域位于所述第一区域的右侧和上侧,所述第三区域位于所述第二区域的右侧和上侧;
所述第一辅助寻像图形的第四区域位于所述二维码图形的右上顶角,所述第一辅助寻像图形的第五区域为Q个模块宽的L形,并且位于所述第四区域的左侧和下侧,所述第二辅助寻像图形是所述第一辅助寻像图形旋转第一预设角度获得的,所述第三辅助寻像图形是所述第一辅助寻像图形旋转第二预设角度获得的。
在一种可能的实施方式中,所述根据所述位置探测图形和辅助寻像图形的位置确定所述二维码图形的信息区的位置,具体包括:
根据所述位置探测图形的位置确定所述二维码图形的分隔区的位置,并根据所述分隔区的位置确定所述二维码图形的功能信息区的位置,所述分隔区将所述功能信息区与所述位置探测图形分隔,所述分隔区位于所述第三区域的右侧和上侧,所述功能信息区位于所述分隔区的右侧和上侧,所述分隔区和功能信息区均为Q个模块宽的倒L形,并且所述分隔区中模块的颜色与所述第三区域中模块的颜色相反,所述功能信息区中模块的颜色与所述第三区域中模块的颜色相同;
根据所述功能信息区的位置和所述辅助寻像图形的位置确定所述二维码图形的信息区的位置。
在一种可能的实施方式中,在所述根据所述模块尺寸依次提取所述信息区中每一模块对应的字符信息之前,还包括:
根据所述模块尺寸以及预设的第二提取顺序依次提取所述功能信息区中每一模块对应的第二字符信息;
对所述第二字符信息进行译码,以获取所述功能信息区对应的功能信息,所述功能信息为二进制字符,所述功能信息包括纠错等级和掩模信息。
在一种可能的实施方式中,在所述获取所述功能信息区对应的功能信息之后,还包括:
根据所述掩模信息对所述信息区中模块进行解除掩模操作。
在一种可能的实施方式中,所述按照预设位数的二进制字符为一组,对所述信息位流进行解码,以确定所述二维码图形对应的解码信息,具体包括:
按照预设位数的二进制字符为一组,将所述信息位流转换为信息码字;
确定所述信息码字中的数据码字和纠错码字;
根据所述纠错码字以及预设的纠错译码方式对所述数据码字进行纠错,以获取纠错后的数据码字;
对所述纠错后的数据码字进行解码,以确定所述二维码图形对应的解码信息。
在一种可能的实施方式中,所述确定所述信息码字中的数据码字和纠错码字,具体包括:
根据所述信息区中模块的数目确定二维码图形的尺寸参数,所述尺寸参数小于汉信码最小码图版本对应的尺寸参数;
根据所述尺寸参数以及所述纠错等级,确定所述信息码字中的数据码字和纠错码字。
在一种可能的实施方式中,所述根据所述纠错码字以及预设的纠错译码方式对所述数据码字进行纠错,具体包括:
采用伽罗瓦域26上的迭代纠错译码方式对所述数据码字进行纠错,所述伽罗瓦域的生成元满足以下约束:/>。
在一种可能的实施方式中,所述对所述纠错后的数据码字进行解码,以确定所述二维码图形对应的解码信息,具体包括:
将所述纠错后的数据码字转换成对应的数据编码,所述数据编码为二进制字符;
根据所述数据编码中的模式指示符确定所述数据编码对应的信息模式,所述信息模式包括数字模式、文本模式、二进制字节模式、GS1模式、URI模式以及ESI模式;
根据所述信息模式确定所述数据编码对应的解码方式,并且根据所述解码方式对所述数据编码进行解码,以确定所述二维码图形对应的解码信息。
在一种可能的实施方式中,当所述信息模式为文本模式时,所述根据所述解码方式对所述数据编码进行解码,具体包括:
在读取到所述文本模式对应的模式指示符之后,按照目标位数的二进制字符为一组,顺序读取所述模式指示符之后的第一数据编码,并依次根据预设的第一文本模式确定所述第一数据编码对应的解码信息;
在读取到所述文本模式对应的模式切换符之后,根据预设的第二文本模式确定所述模式切换符之后的第二数据编码对应的解码信息,并继续根据所述第一文本模式确定所述第二数据编码之后的编码所对应的解码信息,所述第二数据编码包括目标位数的二进制字符。
第二方面,本申请提供一种二维码图形的解码装置,包括:
图形扫描模块,用于获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对所述图形进行线性扫描,以获取所述图形中的二维码区域;
图形确定模块,用于根据所述第一预设比例将所述二维码区域旋转到标准位置,并在所述标准位置确定二维码图形中的位置探测图形和辅助寻像图形,所述位置探测图形和辅助寻像图形位于所述二维码图形的顶角,所述位置探测图形为由M×M个模块组成的矩形,所述辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数;
信息提取模块,用于根据所述位置探测图形和辅助寻像图形的位置确定所述二维码图形的信息区的位置,并且根据所述位置探测图形或者所述辅助寻像图形的大小确定所述二维码图形中模块的模块尺寸;根据所述模块尺寸以及预设的第一提取顺序依次提取所述信息区中每一模块对应的第一字符信息,并将所述第一字符信息组合成信息位流,所述信息位流由二进制字符组成;
信息解码模块,用于按照预设位数的二进制字符为一组,对所述信息位流进行解码,以确定所述二维码图形对应的解码信息,所述预设位数小于汉信码转换数据码字时对应的字符位数。
第三方面,本申请提供一种二维码图形的解码设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的方法。
本申请提供的二维码图形的解码方法、装置、设备及介质,可以获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对图形进行线性扫描,以获取图形中的二维码区域;根据第一预设比例将二维码区域旋转到标准位置,并在标准位置确定二维码图形中的位置探测图形和辅助寻像图形,位置探测图形和辅助寻像图形位于二维码图形的顶角,位置探测图形为由M×M个模块组成的矩形,辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数;根据位置探测图形和辅助寻像图形的位置确定二维码图形的信息区的位置,并且根据位置探测图形或者辅助寻像图形的大小确定二维码图形中模块的模块尺寸;根据模块尺寸以及预设的第一提取顺序依次提取信息区中每一模块对应的第一字符信息,并将第一字符信息组合成信息位流,信息位流由二进制字符组成;按照预设位数的二进制字符为一组,对信息位流进行解码,以确定二维码图形对应的解码信息,预设位数小于汉信码转换数据码字时对应的字符位数。
本申请的解码方法,可以应用于设置在印制面积较小的物品上的小型二维码图形的解码。小型的二维码图形中设置有比现有汉信码的寻像图形更小的位置探测图形和辅助寻像图形,并且位置探测图形和辅助寻像图形能够标识二维码图形的具体位置。由于辅助寻像图形的大小小于位置探测图形,并且位置探测图形的图形特征在二维码图形中是独一无二的,更容易扫描探测,因此,在二维码图形解码过程中,可以首先根据位置探测图形的图形特征确定位置探测图形。根据符合第一预设比例的扫描特征,对图形进行线性扫描,可以简单而又准确地确定位置探测图形的位置,继而根据位置探测图形的位置确定辅助寻像图形的位置,最后根据位置探测图形和辅助寻像图形的位置确定存储有数据的信息区的位置。通过这样的设置,可以提高小型二维码图形解码识读的成功率和准确性。进一步,小型二维码图形为了缩小图形面积还降低了信息区中模块的面积和数据容量,因此,为了与信息区中模块的数据容量相适配,本申请还通过较小的预设位数对信息区中提取到的信息位流进行解码,进一步提高了小型二维码图形解码识读的成功率和准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一实施例的二维码图形的结构示意图;
图2为本申请一实施例的二维码图形的解码方法的流程图;
图3为本申请一实施例的图形扫描示意图;
图4为本申请另一实施例的图形扫描示意图;
图5为本申请一实施例的图形探测示意图;
图6为位置探测图形的结构示意图;
图7为辅助寻像图形的结构示意图;
图8为功能区图形的结构示意图;
图9为二维码生成时的码字排布示意图;
图10为本申请另一实施例的二维码图形的解码方法的流程图;
图11为本申请一实施例的二维码图形的解码装置的结构示意图;
图12为本申请一实施例的二维码图形的解码设备的结构示意图。
附图标记:4、位置探测图形;41、第一区域;42、第二区域;43、第三区域;5、辅助寻像图形;51、第四区域;52、第五区域;501、第一辅助寻像图形;502、第二辅助寻像图形;503、第三辅助寻像图形;6、分隔区;7、功能信息区;8、信息区;9、空白区;10、第一边;11、第二边;121、图形扫描模块;122、图形确定模块;123、信息提取模块;124、信息解码模块。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
模块(module)指的是,二维码图形中最小的信息承载单元,模块为名义正方形。
模块阵列指的是,多个模块组合而成的矩形结构。
本申请可以应用于设置在笔杆、芯片、线缆等印制面积较小的物品上的小型二维码的识读解码的场景,例如,用户扫描上述小型二维码进行费用支付、产品标识或网页跳转等场景。
现有的二维码图形通常包括功能区和信息区,功能区一般设置有用于寻找二维码图形的寻像图形以及用于图形校正的校正图形,信息区用于存储编码之后的二维数据信息。为了提高二维码识读的成功率和准确性,通常会在二维码图形的三个或者四个顶角各设置一个寻像图形,并且寻像图形为了便于识别,也会设置较大的面积。此外,由于用户扫描到的二维码图形可能会出现扭曲或者不完整,为了提高二维码识读的成功率和准确性,还会在二维码图形内部设置较大的校正图形。由于较大的寻像图形和校正图形均需要占据一定的面积,使得现有的二维码图形均较大,现有的二维码解码方案也是针对大型二维码进行解码的方案。
现有的汉信码的四个顶角设置有寻像图形,内部设置有贯穿整个汉信码的折线形的校正图形,在寻像图形和校正图形之间设置有数据信息区。现有的二维码解码时,二维码解码器首先根据寻像图形的图形特征确定二维码图形中各寻像图形的位置,并且根据寻像图形的位置确定寻像图形附近功能信息区的位置。之后,提取功能信息区的功能信息,并根据功能信息确定二维码图形对应的码图版本。之后,判断二维码图形中校正图形是否存在,若存在校正图形则根据码图版本以及校正图形建立二维码图形的采样网格。之后,根据功能信息区以及校正图形的位置确定存储有数据信息的信息区的位置,并根据采样网格提取信息区中存储的数据信息。最后,二维码解码器对信息区中存储的数据信息进行解码,以获取二维码图形对应的解码信息。
由于较大的功能区图形以及存储信息的限制,使得现有的二维码图形通常较大,不能设置在笔杆、芯片、线缆等印制面积较小的物品上,也不存在对相应的小型二维码进行解码的方案。
本申请提供的二维码图形的解码方法,旨在解决现有技术的如上技术问题。本申请的解码方法,可以应用于设置在印制面积较小的物品上的小型二维码图形的解码。小型的二维码图形中设置有比现有汉信码的寻像图形更小的位置探测图形和辅助寻像图形,并且位置探测图形和辅助寻像图形能够标识二维码图形的具体位置。由于辅助寻像图形的大小小于位置探测图形,并且位置探测图形的图形特征在二维码图形中是独一无二的,更容易扫描探测,因此,在二维码图形解码过程中,可以首先根据位置探测图形的图形特征确定位置探测图形。根据符合第一预设比例的扫描特征,对图形进行线性扫描,可以简单而又准确地确定位置探测图形的位置,继而根据位置探测图形的位置确定辅助寻像图形的位置,最后根据位置探测图形和辅助寻像图形的位置确定存储有数据的信息区的位置。通过这样的设置,可以提高小型二维码图形解码识读的成功率和准确性。进一步,小型二维码图形为了缩小图形面积还降低了信息区中模块的面积和数据容量,因此,为了与信息区中模块的数据容量相适配,本申请还通过较小的预设位数对信息区中提取到的信息位流进行解码,进一步提高了小型二维码图形解码识读的成功率和准确性。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请一实施例的二维码图形的结构示意图,如图1所示,二维码图形包括位置探测图形4、辅助寻像图形5、分隔区6、功能信息区7和信息区8。对该二维码图形进行解码时,首先需要根据位置探测图形的图形特征确定位置探测图形4,然后可以根据位置探测图形4的位置以及辅助寻像图形的图形特征确定位于二维码图形其他三个顶角的辅助寻像图形5。根据位置探测图形4和辅助寻像图形5的位置和大小即可确定二维码图形的位置和大小。之后,可以根据位置探测图形4的位置确定在其附近的分隔区6和功能信息区7。之后,可以根据辅助寻像图形5和功能信息区7的位置确定位于其之间的信息区8。最后,提取信息区8中存储的二进制信息,对二进制信息进行解码即可得到二维码图形对应的解码信息。
实施例一
图2为本申请一实施例的二维码图形的解码方法的流程图,本申请实施例提供的二维码图形的解码方法的执行主体可以是二维码解码器,也可以是集成了二维码解码器的电子设备(简称:电子设备),本实施例以执行主体为电子设备对该二维码图形的解码方法进行说明。如图2所示,该二维码图形的解码方法可以包括以下步骤:
S101:获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对图形进行线性扫描,以获取图形中的二维码区域。
在本实施例中,二维码图形可以是由n×n个大小一致的名义正方形模块组成的正方形阵列。深色模块可以为黑色模块,浅色模块可以为白色模块。
在一个可能的实施方式中,上述步骤S101中的根据符合第一预设比例的扫描特征,对图形进行线性扫描,以获取图形中的二维码区域,可以包括:
S1011:对图形进行水平方向和垂直方向的线性扫描,以寻找扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的扫描线,每个特征比例段取值的容许偏差为0.5×[(M-P)/2],其中,位置探测图形由M×M个模块组成,位置探测图形的第一区域由P×P个模块组成。
S1012:若在水平方向和垂直方向没有找到符合第一预设比例的特征比例段序列的扫描线,则将进行线性扫描的原扫描线旋转45度进行扫描,直至找到符合第一预设比例的特征比例段序列的扫描线。
S1013:根据符合第一预设比例的特征比例段序列的扫描线,获取图形中的二维码区域。
在本实施方式中,可以表示位置探测图形边长的大小,为5,/>可以表示位置探测图形中的深色区边长的大小,为3,因此,第一预设比例可以是根据位置探测图形的图形特征设置的,为3∶1∶1,即深色与浅色的特征比例段序列符合3∶1∶1,即边长的不同色的组成线段的长度比为3∶1∶1,可以是深色线段∶浅色线段∶深色线段=3∶1∶1,也可以是浅色线段∶深色线段∶浅色线段=3∶1∶1。
在本实施方式中,每个特征比例段取值的容许偏差为0.5×[(M-P)/2],即每一元素长度的允许偏差为0.5(例如,单个模块的方块的尺寸允许范围为0.5~1.5,3个模块长的方块的长度允许尺寸范围为2.5~3.5)。
在本实施方式中,对二维码进行解码首先需要确定图形中二维码区域的位置,而位置探测图形是二维码图形中用于标识和识别二维码图形位置的图形,因此,确定二维码图形的位置首先需要确定位置探测图形的位置。位置探测图形位于二维码图形的左下顶角,其边长的组成线段长度比为3∶1∶1,并且该比例模式是位置探测图形所独有的,二维码图形中并没有满足该比例的其他区域。因此,要确定位置探测图形的位置首先需要对图形进行水平方向和垂直方向的线性扫描,以寻找扫描线上深色与浅色的特征比例段符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2],即3∶1∶1的扫描线。
在本实施方式中,对图形进行水平方向和垂直方向的线性扫描的过程中,可以从任意位置和方向开始水平方向和垂直方向的线性扫描,具体的扫描过程在此不做任何限制。若在水平方向和垂直方向没有找到符合第一预设比例的特征比例段序列的扫描线,则可以将进行一开始线性扫描的原扫描线向左旋转45度进行扫描,也可以将进行一开始线性扫描的原扫描线向右旋转45度进行扫描,在此不做任何限制。
在本实施方式中,由于第一预设比例的特征比是位置探测图形独有的,因此,在对图形进行水平方向和垂直方向的线性扫描,寻找扫描线上深色与浅色的特征比例段符合第一预设比例3∶1∶1的扫描线,即可简单而又准确地探测出位置探测图形的位置。进一步的,由于图形在扫描成像的过程中会产生误差,因此,可以在扫描时设置一定的容许偏差,进一步提高位置探测图形探测的准确性。
在一个可能的实施方式中,上述步骤S1013根据符合第一预设比例的特征比例段序列的扫描线,获取图形中的二维码区域,可以包括:
S31:在含有第一预设比例的特征比例段序列的扫描线中,确定特征比例段符合P的线段,并根据特征比例段符合P的线段进行多方位多角度的线性扫描,以找到扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段。
S32:根据目标扫描线段,确定特征比例段符合P的集合区域的重心、符合第一预设比例的扫描特征的扫描线的在水平和垂直两个正交方向的角平分线,并计算模块的宽度和高度。
S33:根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,探测二维码图形四周的由浅色模块组成的空白区、位置探测图形以及辅助寻像区,并根据空白区、位置探测图形以及辅助寻像区获取图形中的二维码区域。
在本实施方式中,空白区为环绕二维码图形四周的浅色模块,包围整个二维码图形,空白区模块的反射率应与二维码图形中的浅色模块相同,空白区可以为二维码识读时确定位置探测图形和辅助寻像图形的位置提供边界。
在本实施方式中,在找到第一条符合第一预设比例的特征比例段序列的扫描线之后,确定该条扫描线上特征比例段符合P的线段,并根据特征比例段符合P的线段进行多方位多角度的线性扫描,即可得到全部符合第一预设比例的目标扫描线段,以便于位置探测图形的确定。
在本实施方式中,在根据目标扫描线段,确定特征比例段符合P的集合区域的重心时,可以将全部目标扫描线段中特征比例段符合P(3)的区域统计合并起来,非理想情况下应该是多边形(近似正方形),采用累加求和法计算重心:如果每个点的质量相同,多边形区域内所有点的横(纵)坐标累加和除以总点个数,如。
在本实施方式中,在确定全部符合第一预设比例的目标扫描线段之后,即可随之确定目标扫描线段在水平和垂直两个正交方向的角平分线。
在本实施方式中,在确定符合第一预设比例的目标扫描线段之后,根据位置探测图形边长M为5,位置探测图形中的深色区边长为3,即可计算单个模块的宽度和高度,模块的宽度和高度在容许偏差范围内应该是相同的。
在本实施方式中,在根据符合第一预设比例的扫描特征,对图形进行线性扫描,确定位置探测图形的大致范围之后,即可随之探测出空白区、位置探测图形以及辅助寻像区,从而获取整个图形中的二维码区域。
示例性的,图3为本申请一实施例的图形扫描示意图,如图3所示,可以从下到上、从左到右的分别进行水平方向和垂直方向的扫描,首先扫描到空白区9,并且紧接着在水平方向和垂直方向均扫描符合到3∶1∶1的特征比例段序列的扫描线,并确定扫描线的在水平和垂直两个正交方向的角平分线A,符合到3∶1∶1的特征比例段序列的第一边10组成的矩形区域即为位置探测图形。
又示例性的,图4为本申请另一实施例的图形扫描示意图,如图4所示,可以从上到下、从右到左的分别进行水平方向和垂直方向的扫描,首先扫描到空白区9,并且紧接着在水平方向和垂直方向均扫描符合到3∶1∶1的特征比例段序列的扫描线,并确定扫描线的在水平和垂直两个正交方向的角平分线A,符合到3∶1∶1的特征比例段序列的第一边10组成的矩形区域即为位置探测图形。
在本实施方式中,在找到一条含有第一预设比例的特征比例段序列的扫描线之后,根据特征比例段符合P的线段进行多方位多角度的线性扫描,即可简单而又准确地确定全部符合第一预设比例的目标扫描线段。进一步的,在确定全部符合第一预设比例的目标扫描线段之后,根据即可据此确定特征比例段符合P的集合区域的重心、角平分线以及模块的宽度和高度,以便于后续空白区、位置探测图形以及辅助寻像区的探测,从而根据空白区、位置探测图形以及辅助寻像区确定图形中的二维码区域。
在一个可能的实施方式中,上述步骤S33中的根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,探测二维码图形四周的由浅色模块组成的空白区、位置探测图形以及辅助寻像区,可以包括:
S331:根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,探测二维码图形四周的由浅色模块组成的空白区。
S332:根据第一预设比例、特征比例段符合P的集合区域的重心以及模块的宽度和高度,确定二维码图形中的位置探测图形,位置探测图形包括由P×P个模块组成的第一区域、设置在第一区域两侧的第二区域以及设置在第二区域两侧的第三区域。
S333:根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,确定二维码图形中的辅助寻像图形,辅助寻像图形包括由Q个模块组成的第四区域以及设置在第四区域外侧的第五区域,第一区域中模块的颜色与第三区域以及第四区域中模块的颜色相同,并与第二区域以及第五区域中模块的颜色相反,辅助寻像图形包括第一辅助寻像图形、第二辅助寻像图形和第三辅助寻像图形。
其中,M>P>N>Q,P,Q均为正整数。
示例性的,图5为本申请一实施例的图形探测示意图,如图5所示,在探测到第一边10组成的矩形区域,即位置探测图形之后,根据在水平和垂直两个正交方向的角平分线A以及模块的宽度和高度,即可探测出二维码图形四周的由浅色模块组成的空白区9。根据第一预设比例、特征比例段符合(或者接近)P的集合区域的重心以及模块的宽度和高度,即可确定位置探测图形的具体位置和模块组成。确定位置探测图形之后,根据在水平和垂直两个正交方向的角平分线A以及模块的宽度和高度,即可探测出右上角由第二边11组成的矩形区域,即辅助寻像图形,从而探测出分别位于左上角和右下角的其余两个辅助寻像图形,根据位置探测图形、三个辅助寻像图形以及空白区,即可获取图形中的二维码区域。
在本实施方式中,根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,即可区分一个个的模块,从而确定二维码图形四周的由浅色模块组成的空白区。进一步的,根据第一预设比例3∶1∶1、以及特征比例段符合(或者接近)P的集合区域的重心以及模块的宽度和高度,即可准确地确定位置探测图形的具体位置和组成模块。在确定位置探测图形的具体位置之后,即可根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,确定二维码图形中的辅助寻像图形。通过这样的设置,提高了位置探测图形和辅助寻像图形确定的准确性,从而提高了二维码解码的成功率和准确性。
S102: 根据第一预设比例将二维码区域旋转到标准位置,并在标准位置确定二维码图形中的位置探测图形和辅助寻像图形,位置探测图形和辅助寻像图形位于二维码图形的顶角,位置探测图形为由M×M个模块组成的矩形,辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数。
在本实施例中,位置探测图形用来探测二维码图形所在的位置,辅助寻像图形用来对二维码图形位置的探测进行辅助,以最终确定图形所在位置。
在一个可能的实施方式中,在上述步骤S102中的根据第一预设比例将二维码区域旋转到标准位置,并在标准位置确定二维码图形中的位置探测图形和辅助寻像图形,可以包括:
根据符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段,将二维码区域旋转至标准位置,使得处于标准位置的二维码图形中,位置探测图位于二维码图形的左下顶角,第一辅助寻像图形位于二维码图形的右上顶角,第二辅助寻像图形位于二维码图形的左上顶角,第三辅助寻像图形位于二维码图形的右下顶角;
位置探测图形的第一区域位于二维码图形的左下顶角,位置探测图的第二区域和第三区域均为Q个模块宽的倒L形,第二区域位于第一区域的右侧和上侧,第三区域位于第二区域的右侧和上侧;
第一辅助寻像图形的第四区域位于二维码图形的右上顶角,第一辅助寻像图形的第五区域为Q个模块宽的L形,并且位于第四区域的左侧和下侧,第二辅助寻像图形是第一辅助寻像图形旋转第一预设角度获得的,第三辅助寻像图形是第一辅助寻像图形旋转第二预设角度获得的。
在本实施方式中,根据符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段将二维码区域旋转至标准位置时,可以首先根据目标扫描线段确定位置探测图形和辅助寻像图形的当前位置,并根据当前位置探测图形和辅助寻像图形的位置建立该二维码区域的全景坐标系,生成位置探测图形和辅助寻像图形中各模块对应的坐标。然后将各模块对应的坐标映射成标准坐标,之后根据标准坐标将二维码区域旋转至对应的标准位置。
在本实施方式中,由于小型二维码图形面积有限,并且由于图形尺寸较小,可以近似认为图形在一个平面上,从而具有一定的抗曲面畸变的能力,小型二维码图形中不再设置校正图形。因此,在确定位置探测图形和辅助寻像图形的位置以及模块尺寸之后,即可建立二维码图形的全景坐标系,不需要再确定二维码图形对应的码图版本。
在本实施方式中,第二辅助寻像图形可以是第一辅助寻像图形顺时针旋转90°获得的,第三辅助寻像图形可以是第一辅助寻像图形逆时针旋转90°获得的。
示例性的,图6为位置探测图形的结构示意图,如图6所示,位置探测图形4由5×5个模块组成,包括3×3个模块组成的第一区域41,位于第一区域41右侧和上侧的第二区域42,位于第二区域42右侧和上侧的第三区域43,第二区域42和第三区域43均为一个模块宽的倒L形。
图7为辅助寻像图形的结构示意图,如图7所示,辅助寻像图形5由2×2个模块组成,包括一个模块组成的第四区域51,以及位于第四区域51两侧的第五区域52,第五区域52为一个模块宽的L形或者倒L形。
在本实施方式中,由于用户扫描到的二维码的具体位置和方向各异,为了更好地对二维码图形进行识别和解码,在获取到图形中的二维码区域之后,还需要根据符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段,将二维码区域旋转至标准位置,从而提高二维码解码的成功率和准确性。
S103:根据位置探测图形和辅助寻像图形的位置确定二维码图形的信息区的位置,并且根据位置探测图形或者辅助寻像图形的大小确定二维码图形中模块的模块尺寸。
在本实施例中,当位置探测图形确定之后,即可根据位置探测图形的大小确定各模块的模块尺寸,位置探测图形是由5×5个模块组成的,位置探测图形的第一边的长度的五分之一即为模块尺寸。或者,在辅助寻像图形确定之后,即可根据辅助寻像图形的大小确定各模块的模块尺寸,辅助寻像图形是由2×2个模块组成的,辅助寻像图形的第二边的长度的二分之一即为模块尺寸。
在一个可能的实施方式中,上述步骤S103中的根据位置探测图形和辅助寻像图形的位置确定二维码图形的信息区的位置,可以包括:根据位置探测图形的位置确定二维码图形的分隔区的位置,并根据分隔区的位置确定二维码图形的功能信息区的位置,分隔区将功能信息区与位置探测图形分隔,分隔区位于第三区域的右侧和上侧,功能信息区位于分隔区的右侧和上侧,分隔区和功能信息区均为Q个模块宽的倒L形,并且分隔区中模块的颜色与第三区域中模块的颜色相反,功能信息区中模块的颜色与第三区域中模块的颜色相同;根据功能信息区的位置和辅助寻像图形的位置确定二维码图形的信息区的位置。
示例性的,图8为功能区图形的结构示意图,如图8所示,当二维码图形处于标准位置时,功能区图形包括位于左下顶角的位置探测图形4,位于右上顶角的第一辅助寻像图形501,位于左上顶角的第二辅助寻像图形502,位于右下顶角的第三辅助寻像图形503,位于位置探测图形4右侧和上侧的分隔区6和位于分隔区6右侧和上侧的功能信息区7,信息区处于功能信息区之间。
在本实施方式中,在确定位置探测图形的位置之后,可以首先根据位置探测图形的位置确定二维码图形中分隔区的位置,然后根据分隔区的位置确定二维码图形的功能信息区的位置,最后根据功能信息区的位置和辅助寻像图形的位置确定二维码图形的信息区的位置,信息区位于功能信息区和三个辅助寻像图形之间。通过这样的设置,可以提高信息区位置确定的准确性,从而提高对信息区中存储的数据进行解码的成功率和准确性。
S104:根据模块尺寸以及预设的第一提取顺序依次提取信息区中每一模块对应的第一字符信息,并将第一字符信息组合成信息位流,信息位流由二进制字符组成。
在本实施例中,预设的第一提取顺序可以是二维码图形生成时信息位流添加到信息区的模块中的顺序。第一字符信息可以是每个模块中存储的预设位数的二进制字符。在按照第一提取顺序依次提取到信息区中各模块的第一字符信息之后,可以按照提取顺序将第一字符信息组合成信息位流,信息位流为由元素“0”和“1”组成的二进制字符串。
示例性的,图9为二维码生成时的码字排布示意图,如图9所示,得到信息码字之后,从左上角开始,以两个模块宽的方式进行排布,当遇到图形边缘时折返排布,遇到功能信息区和辅助寻像图形时顺延排布,距离图形最下边缘3个模块时采用三个模块宽的方式排布。则提取信息区中每一模块对应的第一字符信息时,可以按照与图9所示的排布顺序依次提取每一模块对应的第一字符信息。
在一个可能的实施方式中,在上述步骤S104中的根据模块尺寸依次提取信息区中每一模块对应的字符信息之前,还可以包括:根据模块尺寸以及预设的第二提取顺序依次提取功能信息区中每一模块对应的第二字符信息;对第二字符信息进行译码,以获取功能信息区对应的功能信息,功能信息为二进制字符,功能信息包括纠错等级和掩模信息。
在本实施方式中,预设的第二提取顺序即为二维码图形生成时功能信息添加到功能信息区的模块中的顺序。
示例性的,功能信息可以为3位二进制字符,并采用BCH(13,3)纠错编码对功能信息进行纠错。之后,可以按照逆时针方向将纠错后的功能信息放置于功能信息区。与之对应的,可以按照逆时针方向依次提取功能信息区中每一模块对应的第二字符信息,采用BCH(13,3)纠错编码对应的译码方式对第二字符信息进行解码,从而得到3位二进制字符,根据3位二进制字符即可得到纠错等级和掩模信息。其中,功能信息的3位编码内容为:第一位,预留,可以为0;第二位,掩模信息,采用掩模为1,未采用为0;第三位,纠错等级,L1为0,L2为1。
在本实施方式中,由于小型二维码图形中不再设置校正图形,建立二维码图形的全景坐标系时也不需要再确定二维码图形对应的码图版本,因此,功能信息的第一位可以不存储码图版本信息。
在本实施方式中,功能信息区中存储有二维码图形的纠错等级和掩模信息,在对信息区中存储的数据进行解码之前,还需要对信息区中的模块进行解除掩模操作,并且根据纠错等级进行纠错解码。因此,为了顺利进行接下来的解码操作,提高对信息区中存储的数据进行解码的成功率和准确性,在解码之前首先需要提取功能信息区中存储的功能信息。
在一个可能的实施方式中,在获取功能信息区对应的功能信息之后,还可以包括:根据掩模信息对信息区中模块进行解除掩模操作。
在本实施方式中,对信息区中模块进行的解除掩模操作可以参考汉信码中的解除掩模操作,在此不作任何赘述。
在本实施方式中,为了避免二维码图形中出现类似位置探测图形的区域,在二维码图形生成过程中对信息区中的模块进行了掩模处理,因此,在提取信息区中存储的数据进行解码之间,需要对信息区中模块进行解除掩模操作,之后提取解除掩模之后的信息区的数据。通过这样的设置,可以提高二维码解码的成功率和准确性。
S105:按照预设位数的二进制字符为一组,对信息位流进行解码,以确定二维码图形对应的解码信息,预设位数小于汉信码转换数据码字时对应的字符位数。
在本实施例中,上述步骤S105中的按照预设位数的二进制字符为一组,对信息位流进行解码,以确定二维码图形对应的解码信息的具体实施方式请详见实施例二。
在本实施例中,现有汉信码以八位二进制字符进行码字转换,预设位数小于八位。优选的,预设位数的二进制字符可以为六位二进制字符,与小型二维码的信息区的模块中存储的字符位数相适配。
在本实施例中,可以应用于设置在印制面积较小的物品上的小型二维码图形的解码。小型的二维码图形中设置有比现有汉信码的寻像图形更小的位置探测图形和辅助寻像图形,并且位置探测图形和辅助寻像图形能够标识二维码图形的具体位置。由于辅助寻像图形的大小小于位置探测图形,并且位置探测图形的图形特征在二维码图形中是独一无二的,更容易扫描探测,因此,在二维码图形解码过程中,可以首先根据位置探测图形的图形特征确定位置探测图形。根据符合第一预设比例的扫描特征,对图形进行线性扫描,可以简单而又准确地确定位置探测图形的位置,继而根据位置探测图形的位置确定辅助寻像图形的位置,最后根据位置探测图形和辅助寻像图形的位置确定存储有数据的信息区的位置。通过这样的设置,可以提高小型二维码图形解码识读的成功率和准确性。进一步,小型二维码图形为了缩小图形面积还降低了信息区中模块的面积和数据容量,因此,为了与信息区中模块的数据容量相适配,本申请还通过较小的预设位数对信息区中提取到的信息位流进行解码,进一步提高了小型二维码图形解码识读的成功率和准确性。
实施例二
图10为本申请另一实施例提供的二维码图形的解码方法的流程图,本申请实施例提供的二维码图形的解码方法的执行主体可以是二维码解码器,也可以是集成了二维码解码器的电子设备(简称:电子设备),本实施例以执行主体为电子设备对该二维码图形的解码方法进行说明。如图10所示,该二维码图形的解码方法可以包括以下步骤:
S201:按照预设位数的二进制字符为一组,将信息位流转换为信息码字。
在本实施例中,在获取到二进制的信息位流之后,可以按照预设位数将信息位流进行分组,每组转换为一个信息码字,每个信息码字包括预设位数的二进制字符。
S202:确定信息码字中的数据码字和纠错码字。
在本实施例中,信息码字包括根据用户想要得到的信息编码而成的数据码字,和对数据码字进行纠错编码生成的纠错码字。一般的,纠错码字设置在数据码字之后。
在一个可能的实施方式中,上述步骤S202确定信息码字中的数据码字和纠错码字,可以包括:根据信息区中模块的数目确定二维码图形的尺寸参数,尺寸参数小于汉信码最小码图版本对应的尺寸参数;根据尺寸参数以及纠错等级,确定信息码字中的数据码字和纠错码字。
在本实施方式中,信息区中模块的数目也就是信息码字的数目,而不同版本的二维码图形能够容纳的信息码字是一定的,因此,可以根据信息区中模块的数目确定二维码图形的尺寸参数,之后根据尺寸参数即可确定二维码图形对应的码图版本。信息码字数包括数据码字数和纠错码字数,而纠错码字数可以由码图版本和纠错等级确定。因此,根据码图版本和纠错等级即可简单而又准确地确定信息码字中的数据码字数和纠错码字数。由于纠错码字设置在数据码字之后,因此,根据数据码字数和纠错码字数以及信息码字序列即可简单便捷地确定信息码字中的数据码字和纠错码字。
示例性的,本申请的二维码图形可以包括μ1-μ5共5个码图版本,其中μ1版本的尺寸参数为13×13,μ2版本的尺寸参数为15×15,μ3版本的尺寸参数为17×17,μ4版本的尺寸参数为19×19,μ5版本的尺寸参数为21×21。上述任一版本的尺寸参数均小于汉信码最小码图版本对应的尺寸参数23×23。当然,二维码图形的尺寸参数也可以设置为其他,只要小于23×23即可,在此不做任何限制。
需要说明的是,每个码图版本中的功能区图形的大小是不变的,不同之处仅在于信息区模块数目的多少。
在本实施方式中,纠错码字能够纠正两种错误:拒读错误和替代错误。拒读错误是已知错误位置的码字错误。替代错误是未知错误位置的码字错误。可纠正的拒读错误和替代错误的数量可以由下列公式(1)得到:
e + 2t ≤d -p (1)
其中,e表示拒读错误数,t表示替代错误数,d表示纠错码字数,p表示错误检测码字数。
示例性的,本申请的二维码图形可以对应两个纠错等级:L1和L2,L1对应的纠错容量约为13%,即能够纠正约13%的错误;L2对应的纠错容量约为25%,即能够纠正约25%的错误,L1对应的纠错等级编码可以为(0)bin,L2对应的纠错等级编码可以为(1)bin。
示例性的,各二维码版本对应的总码字数、数据码字数和纠错码字数可以如下表1所示:
表1
示例性的,某二维码图形转换成的信息码字数为18,则该二维码图形的尺寸参数为13×13,码图版本为μ1。若根据功能信息解码得到的纠错等级为L1,则纠错码字数为6,数据码字数为12,即信息码字序列的前12个码字为数据码字,后6个码字为纠错码字。
S203:根据纠错码字以及预设的纠错译码方式对数据码字进行纠错,以获取纠错后的数据码字。
在一个可能的实施方式中,上述步骤S203中的根据纠错码字以及预设的纠错译码方式对数据码字进行纠错,可以包括:采用伽罗瓦域26上的迭代纠错译码方式对数据码字进行纠错,伽罗瓦域的生成元满足下列公式(2)所示的约束:
/>
在本实施方式中,由于在二维码生成过程中是按照六位二进制字符为一组进行纠错编码的,为了与纠错编码过程相适配,提高纠错译码的成功率和准确性,因此,可以采用伽罗瓦域26上的迭代纠错译码方式对数据码字进行纠错,并且伽罗瓦域的生成元满足公式(2)所示的约束。
示例性的,伽罗瓦域生成元的次幂与伽罗瓦域GF(26)的取值之间的对应关系表如下表2所示:
表2
在本实施例中,具体的纠错译码方式与汉信码的纠错译码方式相同,示例性的,具体的纠错译码过程如下:
(1)将数据码字表示成多项式的形式。设接收到的码字多项式为下列公式(3):
其中,为接收到的数据码字。
(2)利用公式(4)计算数据码字对应的伴随式。
其中是GF(26)的生成元。
如果,则表示接收的数据码字中没有错误,可以直接根据数据码字进行解码;否则进入下面的迭代纠错译码过程。迭代纠错译码过程包括迭代计算错误位置,得到错误位置之后可以计算相应错误位置的错误值,之后将错误位置上的错误值与相应的接收到的数据码字相加,得到正确的数据码字,再根据纠错后的数据码字进行解码。
S204:对纠错后的数据码字进行解码,以确定二维码图形对应的解码信息。
在一个可能的实施方式中,上述步骤S204对纠错后的数据码字进行解码,以确定二维码图形对应的解码信息,可以包括:
S2041:将纠错后的数据码字转换成对应的数据编码,数据编码为二进制字符。
S2042:根据数据编码中的模式指示符确定数据编码对应的信息模式,信息模式包括数字模式、文本模式、二进制字节模式、GS1模式、URI模式以及ESI模式。
S2043:根据信息模式确定数据编码对应的解码方式,并且根据解码方式对数据编码进行解码,以确定二维码图形对应的解码信息。
在本实施方式中,为了便于解码,首先需要将数据码字转换成对应的数据编码,之后根据数据编码对应的信息模式进行解码,不同的解码方式可以预先设置对应的数据编码与解码信息之间的解码映射表,从而快速、便捷地对数据编码进行解码。此外,在解码过程中,还可以根据数据编码中的模式指示符确定具体的信息模式,以及对应的解码方式,使得解码过程能够有序、准确地进行,提高了二维码图形解码识读的成功率和准确性。
在本实施方式中,对数据编码进行解码指的是,将二进制字符组成的数据编码转换成用户想要得到的解码信息,解码信息可以包括数字信息、文本信息、GS1商品信息、URI网址信息以及ESI信息,当然,数据信息也可以包括图像信息、音频信息、视频信息等,任意能够转换为二进制信息表示的信息都可以作为解码信息,在此不做任何限制。
在本实施方式中,数字模式可以是十进制数字0~9(GB/T 11383内码值30HEX至39HEX),以及特殊字符FNC1,和数字运算符所代表的模式。文本模式可以是GB/T 11383字符表中内码范围在0-27,32-127的常用字符所代表的模式。二进制字节模式可以是任意形式的二进制数据所代表的模式。GS1模式可以是GB/T 16986定义的GS1数据字符所代表的模式。URI模式可以是符合RFC 3986规定的URI字符字符所代表的模式。ESI模式可以是AIMECI规范中定义的ECI协议字符所代表的模式。
在本实施方式中,数字模式、文本模式、GS1模式以及URI模式对应的数据编码还包括模式结束符,而二进制字节模式和ESI模式对应的数据编码还包括计数符。模式指示符用于指示某一信息模式的解码方式的开始,模式结束符用于指示某一信息模式的解码方式的结束,计数符用于指示按照某一信息模式进行解码的码字数。
在本实施方式中,在数据编码进行解码的过程中,可以依次读取数据编码序列,若读取到模式指示符,则对模式指示符之后的编码按照该模式指示符对应的解码方式进行解码;若读取到模式结束符,则结束按照该模式指示符对应的解码过程;若读取到计数符,则确定该计数符所对应的码字数,并确定该码字数所对应的编码数目,之后对模式指示符之后的编码数目个编码进行解码。
示例性的,数字模式的解码方式可以为:按照10位二进制字符为一组,依次读取模式指示符(001)bin之后的字符序列,将10位二进制字符[即(0000000000)bin~(1111100111)bin]转换为3个数字字符对应的十进制数值(十进制数字0~9)或一个符号(特殊字符FNC1),读取到模式指示符之后完成数字模式的解码过程。具体的解码方式与汉信码中数字模式的解码方式相同,在此不做赘述。
最后一组转换成的十进制数值可以不够3个位数,根据之后读取到的模式结束符可以确定最后一组的数字个数。分组后的最后一组数字的个数与模式结束符的对应关系见下表3:
表3
文本模式的解码方式可以为:按照6位二进制字符为一组,依次读取模式指示符(010)bin之后的字符序列,将每组字符转换为ISO/IEC 646中规定的字节值范围为00HEX至1BHEX与20HEX至7FHEX的常用符号。文本模式的模式结束符为(111111)bin,模式切换符为(111110)bin。
二进制字节模式用6位二进制数值作为计数符,计数符表示二进制字符所对应的码字数,二进制字节模式没有模式结束符。
GS1模式的模式结束符为(111)bin,URI模式的模式结束符为(111)bin。
示例性的,各信息模式对应的模式指示符如下表:4所示:
表4
二进制字节模式、GS1模式、URI模式以及ESI模式的解码方式均与汉信码中对应模式的解码方式相同,在此不做赘述。
在本实施方式中,各信息模式的数据编码与解码信息之间的解码映射表与汉信码的解码映射表相同,在此不做赘述。
在一个具体的实施例中,数据编码序列“00111010011100010000011 10101011010111101101001010010100001010101111111110”的解码过程如下:
1) 顺序读取数据编码序列,读取到001,为数字模式的模式指示符。
2) 在模式指示符之后,以10位二进制字符为一组,对数据编码序列进行分组:
001 1101001110 0010000011 1010101101 0111101101 0010100101 00001010101111111110。
模式结束符为:1111111110,最后一组的数字字符为2位。
3) 将模式指示符和模式结束符之外的每组二进制字符依次转换为数字字符:1101001110→846;0010000011→131;1010101101→685;0111101101→493;0010100101→165;0000101010→42。
5)将数字字符排列组合,得到最终的解码信息:84613168549316542。
在一个可能的实施方式中,当信息模式为文本模式时,上述步骤S2043中的根据解码方式对数据编码进行解码,可以包括:在读取到文本模式对应的模式指示符之后,按照目标位数的二进制字符为一组,顺序读取模式指示符之后的第一数据编码,并依次根据预设的第一文本模式确定第一数据编码对应的解码信息;在读取到文本模式对应的模式切换符之后,根据预设的第二文本模式确定模式切换符之后的第二数据编码对应的解码信息,并继续根据第一文本模式确定第二数据编码之后的编码所对应的解码信息,第二数据编码包括目标位数的二进制字符。
在本实施方式中,目标位数可以是文本模式的解码方式中字符的分组位数,即为六位。
在本实施方式中,第一文本模式可以是GB/T 11383字符表中常用的字符,例如十进制数字0~9、大写英文字母、小写英文字母等对应的模式;第二文本模式可以是GB/T11383字符表中不太常用的字符,例如数字运算符、特殊字母组合、标点符号等对应的模式。
示例性的,对数据编码序列进行解码时,读取到001,为数字模式的模式指示符,采用第一文本模式对应的解码方式对001之后的数据编码进行解码;之后读取到111110,为模式切换符,则切换为第二文本模式对应的解码方式对模式切换符之后的一组数据编码(6位二进制字符)进行解码;解码之后,重新切换为第一文本模式继续根据第一文本模式对应的解码方式对第二数据编码之后的数据编码进行解码。
在本实施方式中,由于第二文本模式不太常用,一般不会有连续的编码均为第二文本模式,因此,采用文本模式对应的解码方式进行解码时,可以默认采用第一文本模式对应的解码方式对模式指示符之后的第一数据编码进行解码。当读取到模式切换符之后,切换为第二文本模式对应的解码方式对模式切换符之后的第二数据编码进行解码,之后再将第二文本模式重新切换为第一文本模式继续根据第一文本模式对应的解码方式对第二数据编码之后的数据编码进行解码,从而得到解码信息。
通过采用指示单个字符模式转换的模式切换符,可以避免解码时一直处于不太常用的第二文本模式,第二文本模式采用一次即切换,从而进一步提高文本模式下数据编码解码的效率和准确性。
在本实施例中,通过按照预设位数的二进制字符为一组,将信息位流转换为信息码字,以便于接下来区分存储有解码信息的数据码字和存储有纠错信息的纠错码字。确定数据码字和纠错码字之后,为了提高数据码字解码的成功率和准确性,还需要根据纠错码字对数据码字进行纠错,避免二维码图形受到磨损等而解码失败。通过这样的设置,可以提高二维码图形解码识读的成功率和准确性。
下面以一个具体的实施例对本申请的二维码图形的解码方法进行阐述。
实施例三
在一个具体的实施例中,某用户用手机扫描某中性笔的笔杆上印制的二维码图形,以获取该中性笔的销售网址,手机扫描到该二维码图形后,具体的解码步骤如下:
第一步,手机获取包含待解码二维码的图形,并根据符合3∶1∶1的扫描特征,对图形进行线性扫描,以寻找扫描线上深色与浅色的特征比例段序列符合3∶1∶1的目标扫描线段;根据目标扫描线段,确定特征比例段符合P的集合区域的重心、符合第一预设比例的扫描特征的扫描线的在水平和垂直两个正交方向的角平分线,并计算模块的宽度和高度。
第二步,手机根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,探测二维码图形四周的由浅色模块组成的空白区;根据第一预设比例、特征比例段符合P的集合区域的重心以及模块的宽度和高度,确定二维码图形中的位置探测图形;根据在水平和垂直两个正交方向的角平分线以及模块的宽度和高度,确定二维码图形中的辅助寻像图形。
第三步,手机根据空白区、位置探测图形以及辅助寻像区获取图形中的二维码区域。
第四步,手机根据符合第一预设比例3∶1∶1的目标扫描线段,将二维码区域旋转至标准位置,以使位置探测图位于二维码图形的左下顶角,第一辅助寻像图形位于二维码图形的右上顶角,第二辅助寻像图形位于二维码图形的左上顶角,第三辅助寻像图形位于二维码图形的右下顶角。
第五步,手机根据位置探测图形的位置确定分隔区的位置,根据分隔区的位置确定功能信息区的位置,并根据功能信息区和辅助寻像图形的位置确定信息取得位置。
第六步,手机根据位置探测图形的大小确定模块尺寸,已知位置探测图形由5×5个模块组成,在确定位置探测图形的大小之后即可随之确定模块尺寸。
第七步,手机根据模块尺寸确定信息区中共有108个模块,则该二维码图形的码图版本为μ1,对应的尺寸参数为13×13。
第八步,手机根据模块尺寸以及预设的第一提取顺序依次提取信息区中每一模块对应的第一字符信息,并将第一字符信息组合成信息位流。
第九步,手机以六位二进制字符为一组,将信息位流转换为信息码字,并确定信息码字中的数据码字和纠错码字。
第十步,手机根据纠错码字以及预设的纠错译码方式对数据码字进行纠错,以获取纠错后的数据码字。
第十一步,手机将纠错后的数据码字转换成对应的数据编码,并顺序读取数据编码,首先读取到(101)bin,为URI模式的模式指示符,则按照URI模式对应的解码方式对(101)bin之后的数据编码进行解码,直至读取到(111)bin,其为URI模式的模式结束符,则结束解码。
第十二步,手机对解码得到的字符进行排列组合,得到该中性笔的销售网址,并跳转至该销售网址对应的页面。
图11为本申请一实施例的二维码图形的解码装置的结构示意图,如图11所示,该二维码图形的解码装置包括:图形扫描模块121、图形确定模块122、信息提取模块123和信息解码模块124。图形扫描模块121用于获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对图形进行线性扫描,以获取图形中的二维码区域。图形确定模块122用于根据第一预设比例将二维码区域旋转到标准位置,并在标准位置确定二维码图形中的位置探测图形和辅助寻像图形,位置探测图形和辅助寻像图形位于二维码图形的顶角,位置探测图形为由M×M个模块组成的矩形,辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数。信息提取模块123用于根据位置探测图形和辅助寻像图形的位置确定二维码图形的信息区的位置,并且根据位置探测图形或者辅助寻像图形的大小确定二维码图形中模块的模块尺寸;根据模块尺寸以及预设的第一提取顺序依次提取信息区中每一模块对应的第一字符信息,并将第一字符信息组合成信息位流,信息位流由二进制字符组成。信息解码模块124用于按照预设位数的二进制字符为一组,对信息位流进行解码,以确定二维码图形对应的解码信息,预设位数小于汉信码转换数据码字时对应的字符位数。一个实施方式中,二维码图形的解码装置具体实现功能的描述可以参见实施例一中的步骤S101-S105,在此不做赘述。
图12为本申请一实施例的二维码图形的解码设备的结构示意图,如图12所示,该二维码图形的解码设备包括:处理器101,以及与处理器101通信连接的存储器102;存储器102存储计算机执行指令;处理器101执行存储器102存储的计算机执行指令,实现上述各方法实施例中二维码图形的解码方法的步骤。
该二维码图形的解码设备可以是独立的,也可以是电子设备的一部分,该处理器101和存储器102可以采用电子设备现有的硬件。
在上述二维码图形的解码设备中,存储器102和处理器101之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器102中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器102中的软件功能模块,处理器101通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器102可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,简称:EEPROM)等。其中,存储器102用于存储程序,处理器101在接收到执行指令后,执行程序。进一步地,上述存储器102内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器101可以是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请的一实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请各方法实施例的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (15)
1.一种二维码图形的解码方法,其特征在于,所述方法包括:
获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对所述图形进行线性扫描,以获取所述图形中的二维码区域;
根据所述第一预设比例将所述二维码区域旋转到标准位置,并在所述标准位置确定二维码图形中的位置探测图形和辅助寻像图形,所述位置探测图形和辅助寻像图形位于所述二维码图形的顶角,所述位置探测图形为由M×M个模块组成的矩形,所述辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数;
根据所述位置探测图形和辅助寻像图形的位置确定所述二维码图形的信息区的位置,并且根据所述位置探测图形或者所述辅助寻像图形的大小确定所述二维码图形中模块的模块尺寸;
根据所述模块尺寸以及预设的第一提取顺序依次提取所述信息区中每一模块对应的第一字符信息,并将所述第一字符信息组合成信息位流,所述信息位流由二进制字符组成;
按照预设位数的二进制字符为一组,对所述信息位流进行解码,以确定所述二维码图形对应的解码信息,所述预设位数小于汉信码转换数据码字时对应的字符位数;
所述根据符合第一预设比例的扫描特征,对所述图形进行线性扫描,以获取所述图形中的二维码区域,具体包括:
对所述图形进行水平方向和垂直方向的线性扫描,以寻找扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的扫描线,每个特征比例段取值的容许偏差为0.5×[(M-P)/2],其中,所述位置探测图形由M×M个模块组成,所述位置探测图形的第一区域由P×P个模块组成;
若在水平方向和垂直方向没有找到符合所述第一预设比例的特征比例段序列的扫描线,则将进行线性扫描的原扫描线旋转45度进行扫描,直至找到符合所述第一预设比例的特征比例段序列的扫描线;
根据符合所述第一预设比例的特征比例段序列的扫描线,获取所述图形中的二维码区域。
2.根据权利要求1所述的方法,其特征在于,所述根据符合所述第一预设比例的特征比例段序列的扫描线,获取所述图形中的二维码区域,具体包括:
在含有所述第一预设比例的特征比例段序列的扫描线中,确定特征比例段符合P的线段,并根据所述特征比例段符合P的线段进行多方位多角度的线性扫描,以找到扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段;
根据所述目标扫描线段,确定特征比例段符合P的集合区域的重心、符合第一预设比例的扫描特征的扫描线的在水平和垂直两个正交方向的角平分线,并计算模块的宽度和高度;
根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,探测所述二维码图形四周的由浅色模块组成的空白区、位置探测图形以及辅助寻像区,并根据所述空白区、位置探测图形以及辅助寻像区获取所述图形中的二维码区域。
3.根据权利要求2所述的方法,其特征在于,所述根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,探测所述二维码图形四周的由浅色模块组成的空白区、位置探测图形以及辅助寻像区,具体包括:
根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,探测所述二维码图形四周的由浅色模块组成的空白区;
根据所述第一预设比例、所述特征比例段符合P的集合区域的重心以及所述模块的宽度和高度,确定所述二维码图形中的位置探测图形,所述位置探测图形包括由P×P个模块组成的第一区域、设置在所述第一区域两侧的第二区域以及设置在所述第二区域两侧的第三区域;
根据所述在水平和垂直两个正交方向的角平分线以及所述模块的宽度和高度,确定所述二维码图形中的辅助寻像图形,所述辅助寻像图形包括由Q个模块组成的第四区域以及设置在所述第四区域外侧的第五区域,所述第一区域中模块的颜色与所述第三区域以及所述第四区域中模块的颜色相同,并与所述第二区域以及所述第五区域中模块的颜色相反,所述辅助寻像图形包括第一辅助寻像图形、第二辅助寻像图形和第三辅助寻像图形;
其中,M>P>N>Q,P,Q均为正整数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一预设比例将所述二维码区域旋转到标准位置,并在所述标准位置确定二维码图形中的位置探测图形和辅助寻像图形,具体包括:
根据符合所述第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的目标扫描线段,将所述二维码区域旋转至标准位置,使得处于所述标准位置的二维码图形中,所述位置探测图位于所述二维码图形的左下顶角,所述第一辅助寻像图形位于所述二维码图形的右上顶角,所述第二辅助寻像图形位于所述二维码图形的左上顶角,所述第三辅助寻像图形位于所述二维码图形的右下顶角;
所述位置探测图形的第一区域位于所述二维码图形的左下顶角,所述位置探测图的第二区域和所述第三区域均为Q个模块宽的倒L形,所述第二区域位于所述第一区域的右侧和上侧,所述第三区域位于所述第二区域的右侧和上侧;
所述第一辅助寻像图形的第四区域位于所述二维码图形的右上顶角,所述第一辅助寻像图形的第五区域为Q个模块宽的L形,并且位于所述第四区域的左侧和下侧,所述第二辅助寻像图形是所述第一辅助寻像图形旋转第一预设角度获得的,所述第三辅助寻像图形是所述第一辅助寻像图形旋转第二预设角度获得的。
5.根据权利要求4所述的方法,其特征在于,所述根据所述位置探测图形和辅助寻像图形的位置确定所述二维码图形的信息区的位置,具体包括:
根据所述位置探测图形的位置确定所述二维码图形的分隔区的位置,并根据所述分隔区的位置确定所述二维码图形的功能信息区的位置,所述分隔区将所述功能信息区与所述位置探测图形分隔,所述分隔区位于所述第三区域的右侧和上侧,所述功能信息区位于所述分隔区的右侧和上侧,所述分隔区和功能信息区均为Q个模块宽的倒L形,并且所述分隔区中模块的颜色与所述第三区域中模块的颜色相反,所述功能信息区中模块的颜色与所述第三区域中模块的颜色相同;
根据所述功能信息区的位置和所述辅助寻像图形的位置确定所述二维码图形的信息区的位置。
6.根据权利要求5所述的方法,其特征在于,在所述根据所述模块尺寸依次提取所述信息区中每一模块对应的字符信息之前,还包括:
根据所述模块尺寸以及预设的第二提取顺序依次提取所述功能信息区中每一模块对应的第二字符信息;
对所述第二字符信息进行译码,以获取所述功能信息区对应的功能信息,所述功能信息为二进制字符,所述功能信息包括纠错等级和掩模信息。
7.根据权利要求6所述的方法,其特征在于,在所述获取所述功能信息区对应的功能信息之后,还包括:
根据所述掩模信息对所述信息区中模块进行解除掩模操作。
8.根据权利要求6或7所述的方法,其特征在于,所述按照预设位数的二进制字符为一组,对所述信息位流进行解码,以确定所述二维码图形对应的解码信息,具体包括:
按照预设位数的二进制字符为一组,将所述信息位流转换为信息码字;
确定所述信息码字中的数据码字和纠错码字;
根据所述纠错码字以及预设的纠错译码方式对所述数据码字进行纠错,以获取纠错后的数据码字;
对所述纠错后的数据码字进行解码,以确定所述二维码图形对应的解码信息。
9.根据权利要求8所述的方法,其特征在于,所述确定所述信息码字中的数据码字和纠错码字,具体包括:
根据所述信息区中模块的数目确定二维码图形的尺寸参数,所述尺寸参数小于汉信码最小码图版本对应的尺寸参数;
根据所述尺寸参数以及所述纠错等级,确定所述信息码字中的数据码字和纠错码字。
10.根据权利要求9所述的方法,其特征在于,所述根据所述纠错码字以及预设的纠错译码方式对所述数据码字进行纠错,具体包括:
采用伽罗瓦域26上的迭代纠错译码方式对所述数据码字进行纠错,所述伽罗瓦域的生成元满足以下约束:/>。
11.根据权利要求10所述的方法,其特征在于,所述对所述纠错后的数据码字进行解码,以确定所述二维码图形对应的解码信息,具体包括:
将所述纠错后的数据码字转换成对应的数据编码,所述数据编码为二进制字符;
根据所述数据编码中的模式指示符确定所述数据编码对应的信息模式,所述信息模式包括数字模式、文本模式、二进制字节模式、GS1模式、URI模式以及ESI模式;
根据所述信息模式确定所述数据编码对应的解码方式,并且根据所述解码方式对所述数据编码进行解码,以确定所述二维码图形对应的解码信息。
12.根据权利要求11所述的方法,其特征在于,当所述信息模式为文本模式时,所述根据所述解码方式对所述数据编码进行解码,具体包括:
在读取到所述文本模式对应的模式指示符之后,按照目标位数的二进制字符为一组,顺序读取所述模式指示符之后的第一数据编码,并依次根据预设的第一文本模式确定所述第一数据编码对应的解码信息;
在读取到所述文本模式对应的模式切换符之后,根据预设的第二文本模式确定所述模式切换符之后的第二数据编码对应的解码信息,并继续根据所述第一文本模式确定所述第二数据编码之后的编码所对应的解码信息,所述第二数据编码包括目标位数的二进制字符。
13.一种二维码图形的解码装置,包括:
图形扫描模块,用于获取包含待解码二维码的图形,并根据符合第一预设比例的扫描特征,对所述图形进行线性扫描,以获取所述图形中的二维码区域;
图形确定模块,用于根据所述第一预设比例将所述二维码区域旋转到标准位置,并在所述标准位置确定二维码图形中的位置探测图形和辅助寻像图形,所述位置探测图形和辅助寻像图形位于所述二维码图形的顶角,所述位置探测图形为由M×M个模块组成的矩形,所述辅助寻像图形为由N×N个模块组成的矩形,M>N,M,N均为正整数;
信息提取模块,用于根据所述位置探测图形和辅助寻像图形的位置确定所述二维码图形的信息区的位置,并且根据所述位置探测图形或者所述辅助寻像图形的大小确定所述二维码图形中模块的模块尺寸;根据所述模块尺寸以及预设的第一提取顺序依次提取所述信息区中每一模块对应的第一字符信息,并将所述第一字符信息组合成信息位流,所述信息位流由二进制字符组成;
信息解码模块,用于按照预设位数的二进制字符为一组,对所述信息位流进行解码,以确定所述二维码图形对应的解码信息,所述预设位数小于汉信码转换数据码字时对应的字符位数;
所述图形扫描模块,具体用于:
对所述图形进行水平方向和垂直方向的线性扫描,以寻找扫描线上深色与浅色的特征比例段序列符合第一预设比例P∶[(M-P)/2]∶[(M-P)/2]的扫描线,每个特征比例段取值的容许偏差为0.5×[(M-P)/2],其中,所述位置探测图形由M×M个模块组成,所述位置探测图形的第一区域由P×P个模块组成;
若在水平方向和垂直方向没有找到符合所述第一预设比例的特征比例段序列的扫描线,则将进行线性扫描的原扫描线旋转45度进行扫描,直至找到符合所述第一预设比例的特征比例段序列的扫描线;
根据符合所述第一预设比例的特征比例段序列的扫描线,获取所述图形中的二维码区域。
14.一种二维码图形的解码设备,包括处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352576.XA CN117131897B (zh) | 2023-10-19 | 2023-10-19 | 二维码图形的解码方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352576.XA CN117131897B (zh) | 2023-10-19 | 2023-10-19 | 二维码图形的解码方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117131897A CN117131897A (zh) | 2023-11-28 |
CN117131897B true CN117131897B (zh) | 2024-02-06 |
Family
ID=88861287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311352576.XA Active CN117131897B (zh) | 2023-10-19 | 2023-10-19 | 二维码图形的解码方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131897B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999772A (zh) * | 2012-11-14 | 2013-03-27 | 韩偲铭 | 一种新型矩阵式二维码的编解码方法 |
CN107122816A (zh) * | 2017-03-20 | 2017-09-01 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种自定义寻像图形二维码及生成方法 |
CN107145810A (zh) * | 2017-04-26 | 2017-09-08 | 南京理工大学 | 一种全方位条码识别装置及方法 |
WO2021169502A1 (en) * | 2020-02-27 | 2021-09-02 | Changsha Pixel Code Technology Co. Ltd | A pixel image as well as its processing method and application system |
-
2023
- 2023-10-19 CN CN202311352576.XA patent/CN117131897B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999772A (zh) * | 2012-11-14 | 2013-03-27 | 韩偲铭 | 一种新型矩阵式二维码的编解码方法 |
CN107122816A (zh) * | 2017-03-20 | 2017-09-01 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种自定义寻像图形二维码及生成方法 |
CN107145810A (zh) * | 2017-04-26 | 2017-09-08 | 南京理工大学 | 一种全方位条码识别装置及方法 |
WO2021169502A1 (en) * | 2020-02-27 | 2021-09-02 | Changsha Pixel Code Technology Co. Ltd | A pixel image as well as its processing method and application system |
Also Published As
Publication number | Publication date |
---|---|
CN117131897A (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100729824B1 (ko) | 이미지 코드 생성 장치 및 그 방법과 이미지 코드 디코딩장치 및 그 방법 | |
JP5848464B2 (ja) | 二次元コード、二次元コードの作成システムおよび解析プログラム | |
CN105989317B (zh) | 一种二维码的识别方法及装置 | |
CN111046996B (zh) | 一种彩色qr码生成和识别方法 | |
US20100327066A1 (en) | Network based reliable decoding of bar codes | |
CN109754046B (zh) | 二维码、二维码的编码方法、解码方法、装置及设备 | |
CN107545289A (zh) | 矩阵式二维码的编码方法及解码方法 | |
US11843395B2 (en) | Coding pattern, coding and reading methods for same, calibration board, and calibration method | |
US20090166439A1 (en) | Preamble Data Generating Method and Related Apparatus for Quick Response Code | |
CN107220689B (zh) | 位置编码图案生成方法、装置、设备和可读存储介质 | |
CN112733568A (zh) | 一维条码识别方法、装置、设备及存储介质 | |
EP2482230B1 (en) | Apparatus and method for decoding matrix code symbol | |
CN117131897B (zh) | 二维码图形的解码方法、装置、设备及介质 | |
CN102841928B (zh) | 网间文件安全发送、接收方法及装置 | |
CN117094349B (zh) | 二维码图形的生成方法、装置、设备及介质 | |
CN112187284A (zh) | 编码方法、编码图形、编码图形读取方法和拍摄装置 | |
CN101833645A (zh) | 一种基于码字组合的条码解码方法 | |
CN112183695B (zh) | 编码方法、编码图形、编码图形读取方法和拍摄装置 | |
Lay et al. | Visual QR codes with lossless picture embedding | |
AU2005209709A1 (en) | Two dimensionally phase modulated information symbol | |
CN111209988B (zh) | 一种基于可识别彩色图形的大数据共享系统的管理方法 | |
RU2381552C2 (ru) | Способ ввода/вывода информации с использованием образа с точечными элементами | |
JP2586117B2 (ja) | 文字認識装置 | |
CN115936047A (zh) | 一种彩色汉信码的编解码方法、电子设备和存储介质 | |
CN117350317A (zh) | 用于条码图像的译码方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |