CN102999772B - 一种新型矩阵式二维码的编解码方法 - Google Patents
一种新型矩阵式二维码的编解码方法 Download PDFInfo
- Publication number
- CN102999772B CN102999772B CN201210456943.6A CN201210456943A CN102999772B CN 102999772 B CN102999772 B CN 102999772B CN 201210456943 A CN201210456943 A CN 201210456943A CN 102999772 B CN102999772 B CN 102999772B
- Authority
- CN
- China
- Prior art keywords
- view finding
- data
- coding
- correction
- code
- 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.)
- Expired - Fee Related
Links
Landscapes
- Error Detection And Correction (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种新型矩阵式二维码的编解码方法,其编码方法包括:将信息编码转换为数据编码;生成纠错编码;计算二维码符号尺寸参数;生成寻像图形、校正图形和辅助校正图形并设置在矩形区域中;将功能信息设置到所述矩形区域;将数据编码和纠错编码设置在矩形区域内。其解码方法包括:对二维码图像进行预处理;在二维码符号中寻找寻像图形;获得版本号、纠错等级和掩模信息;获得数据编码和纠错编码信息;去掩模处理;进行纠错得到恢复的编码数据;将数据编码转换为信息编码。本发明设计合理,使条码符号更加紧凑,可以在有限的符号面积中尽可能地容纳更多的有效数据,同时,提高了识读的速度和抗残损的能力,并提高了解码的效率。
Description
技术领域
本发明属于二维码技术领域,尤其是一种新型矩阵式二维码的编解码方法。
背景技术
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。通常印刷在商品包装上的条码是普通的一维条码。一维条码存在以下不足:数据容量较小,多数一维条码所能表示的字符集不过是10个数字,26个英文字母及一些特殊字符;条码符号的尺寸相对较大,即空间利用率较低;条码遭到损坏后便不能阅读等等。在日常应用中,一旦遇到要用一维条码表示汉字的场合,就显得十分不方便,且效率很低。
二维码正是为了解决一维条码无法解决的问题而产生的,其具有高密度、高可靠性等特点,因此,可以用它存储和表示数据文件(包括汉字文件)、图像文件等。二维码可以分为层排式二维码(有代表性的包括PDF417、Code49、Code16K等)和矩阵式二维码(有代表性的包括Codeone、Aztec、DateMatrix、QR码等)。层排式二维码形态上是由多行短截的一维条码层排而成,矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上用点的出现表示二进制”1”,空的出现表示二进制”0”,由点的排列组合确定了代码表示的含义。层排式二维码中包含附加的格式信息,信息容量最大可以达到1000个字节左右,但是,其符号存储信息的能力最大也只有1000个字节,如果采用较高的纠错等级,层排式二维码存储有效数据的能力会进一步下降。矩阵式二维码与层排式二维码相比,具有更高的信息密度(如:DataMatrix、Maxicode、Aztec、QR码),可以作为包装箱的信息表达符号,在电子半导体工业中,将DataMatrix或QR码用于标识小型的零部件。矩阵式二维码能被二维的CCD图像式阅读器识读,并能以全向的方式扫描。由于二维码能够编码存储的信息量较大,因此,能够将任何语言(包括汉字)和二进制信息(如签字、照片)进行编码,并可以由用户选择的不同程度的纠错级别,以在符号残损的情况下恢复所有信息。
现有的二维码中典型的例子是QR码,由于其所具有的寻像图形、校正图形都由不同颜色正方形相互交替重叠构成。在对QR码进行识读和定位时,要求所有的寻像图形都必须存在,或者在只有一部分寻像图形存在的情况下,必须有一定数量和固定位置的校正图形存在;否则就不能对其进行定位,进而影响到对QR码中存储的信息进行还原。在此情况下,就需要较多地使用寻像图形和校正图形,使得矩阵式二维码符号的用于存储有效数据的面积相应减少,或者在要存储较多的数据,就不得不扩大符号的面积。造成二维码识读速度慢,并且在残损时不易识读。
发明内容
本发明的目的在于克服现有技术的不足,提供一种结构紧凑、可快速识别且纠错率强的新型矩阵式二维码的编解码方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种新型矩阵式二维码的编码方法,包括以下步骤:
步骤1:将信息编码转换为数据编码;
步骤2:按照选定的纠错等级和纠错模式,并根据数据编码生成对应的纠错编码;
步骤3:计算二维码符号尺寸参数;
步骤4:生成寻像图形、校正图形和辅助校正图形,并根据新型矩阵式二维码尺寸参数描述的矩形区域,将所述寻像图形设置在所述矩形区域顶角位置,将校正图形和辅助校正图形设置在所述矩形区域中间位置;
步骤5:将功能信息转换到功能信息符合模块,并设置到所述矩形区域;
步骤6:将数据编码和纠错编码构成的编码流依次转换为对应的符号模块,并自所述矩形区域的一个顶角处起沿一个方向依次设置在位于寻像图形和功能信息符号模块之外的矩形区域内。
而且,所述计算二维码符号尺寸参数采用如下数学模型:
其中,K为新型矩阵式二维码任意边的模块数,N为新型矩阵式二维码的版本号,且为正整数。
而且,所述步骤4包括以下步骤:
步骤4.1:将所述寻像图形设置在所述矩形区域顶角位置:所述寻像图形分别由四个由深色模块构成的多边形组成,其中,除右下角寻像图形为正方形以外,其余三个顶角处的寻像图形均为“L”型,且“L”型寻像图形与正方形寻像图形的边长相等;
步骤4.2:将校正图形设置在所述矩形区域中间位置:所述的校正图形为一个由深色模块构成的方框,该方框位于所述矩形区域的中间位置;
步骤4.3:将辅助校正图形设置在所述矩形区域中间位置:新型矩阵二维码包括版本1~30,对于版本1~5,所述的辅助校正图形为一组“十”字型的分割线,将码图十字均衡分割成四个部分,其中,十字辅助校正图形的下部分由深色模块构成,而其余三部分由浅色模块构成;对于版本6~30,所述的辅助校正图形在版本1~5的基础上增加四组“十”字型的分割线,将码图已分割成的四个部分再次进行十字均衡分割,增加的四组十字辅助校正图形均由浅色模块构成。
而且,所述的步骤5包括以下步骤:
步骤5.1:将所述版本号、纠错等级以及所述二维码掩膜信息的二进制数进行组合后得到功能信息二进制位流,将所述功能信息二进制位流按照选定的纠错模式,生成对应的功能信息纠错编码;
步骤5.2:对生成的功能信息纠错编码进行随机化,并转换为功能信息图形,最后填充在所述寻像图像与有数据编码和纠错编码构成的符号模块之间。
而且,所述的步骤6包括以下步骤;
步骤6.1:根据数据模块需要避开寻像图形、校正图形和辅助校正图形的要求,将数据信息字节划分成九种字节类型;
步骤6.2:根据新型矩阵式二维码符号尺寸参数描述的矩形区域,精确计算出数据信息中每字节模块位置,并从左上角的顶点开始,根据计算出来的位置信息,按列依次向右对数据字节模块进行摆放;
步骤6.3:对摆放好的数据字节模块进行掩膜添加的步骤;分别对数据字节模块进行不同类型掩膜的添加,并对添加各类掩膜的码字进行性能优劣判定,最终决定采用一种掩膜类型。
一种新型矩阵式二维码的解码方法,包括以下步骤:
步骤1:对拍摄到的二维码图像进行预处理;
步骤2:在二维码符号中寻找寻像图形,利用寻找到的寻像图形将二维码符号旋转到标准位置;
步骤3:提取寻像图形附近功能信息区域的功能信息,获得版本号、纠错等级和掩模信息;
步骤4:读取二维码符号中位于寻像图形和功能信息区域之外的模块数据获得数据编码和纠错编码信息;
步骤5:根据掩模信息对获取的数据编码和纠错编码进行去掩模处理;
步骤6:根据纠错编码对数据编码进行纠错得到恢复的编码数据;
步骤7:按照设定的解码规则将数据编码转换为信息编码。
而且,所述步骤1的预处理包括以下步骤:
步骤1.1:沿着二维码的背景区边界,对拍摄到的图像进行分割,提取其中的二维码图像;
步骤1.2:对提取的二维码图像进行二值化和降分辨率处理。
而且,所述步骤2包括以下步骤:
步骤2.1:在二维码符号的四个顶点位置附近寻找寻像图形;对二维码符号的四个顶点位置附近的区域进行线性扫描,寻找到由深色模块构成的四边形则找到寻像图形;如果找到寻像图形,则执行步骤2.2;否则结束;
步骤2.2:在二维码符号的中间位置附近寻找校正图形;如果找到校正图形,则执行步骤2.3;否则结束;
步骤2.3:在二维码符号所在区域中寻找辅助校正图形;如果找到辅助校正图形,则执行步骤2.5;否则结束;
步骤2.4如果寻像图形中包括符合标准位置的二维码符号四个顶点的寻像图形特征的寻像图形,则根据寻找到的校正图形和辅助校正图形,对所述二维码符号进行旋转,使符合标准位置的二维码符号四个顶点的寻像图形特征的寻像图形所在的顶点位于二维码符号相应的四个顶点处,同时使二维码符号旋转到标准位置,执行步骤2.4;否则结束;
步骤2.5根据寻找到的辅助校正图形,对二维码符号进行划分,标定出条码符号各数据字节的坐标,确定采样窗口的位置和大小,进行数据信息的采样。
而且,所述步骤3包括以下步骤:
步骤3.1:根据采样得到的数据信息,对二维码图像进行重建;
步骤3.2:根据模块尺寸,读取放置于二维码符号相邻两顶点附近的功能信息区域,获得版本、纠错等级信息和掩模信息;
步骤3.2.1:读取步骤一所找到的任一寻像图形附近的功能信息区域中每一模块的数据;
步骤3.2.2:读取与寻像图形任意一相邻顶点附近的功能信息区域中每一模块的数据;
步骤3.2.3:对寻像图形及相邻顶点附近的两个功能信息区域中的数据进行纠错,如果纠错无解,执行步骤3.2.4;否则进行功能信息纠错处理,获得纠错等级信息和掩模信息,执行步骤4;
步骤3.2.4:读取寻像图形另一相邻顶点附近的功能信息区域中每一模块的数据和其在对角线寻像图形附近的功能信息区域中每一模块的数据;
步骤3.2.5:对另一相邻顶点附近的功能信息区域数据和其对角线寻像图形附近的功能信息区域数据进行纠错,判断纠错是否有解,如果有解则进行纠错处理,获得纠错等级信息和掩模信息,执行步骤4;否则结束。
而且,所述步骤6包括以下步骤:
步骤6.1:对数据码字和纠错码字就行去交织;
步骤6.2:根据纠错编码对数据编码纠错计算,如果有解,则得到恢复的编码数据;否则结束;
步骤6.3:根据获得的纠错等级,获得纠错容量,计算纠错编码的位数;
步骤6.4:分别对各块的数据字节和纠错字节进行检错和纠错,并进行二进制位流的重排。
本发明的优点和积极效果是:
1、本发明设计的二维码符号分布规整、结构清楚,本身具有确定的定位信息,可以根据其版本号精确推导出各条码符号位置,且其校正图形具有定位及方向指示功能,因此,该矩阵式二维码对寻像图形和校正图形的位置和数量进行了良好的规划,使条码符号更加紧凑,可以在有限的符号面积中尽可能地容纳更多的有效数据。
2、本发明了现有技术识读速度慢,在图形缺失或者畸变时不易识读的缺陷,寻找寻像图形,可以快速地识读二维码符号,在识读和定位时,无需找出所有的寻像图形即可进行识读,增加了识读和抗残损能力,即使缺失一部分信息也根据二维码符号中模块放置方法,以及数据码字和纠错码字的混合放置,分离出数据信息和纠错信息;在解码时进行数据纠错,得到解码后的信息,大大提高了识读的速度和抗残损的能力,并提高了解码的效率。
附图说明
图1为新型矩阵式二维码(卓信码)的结构示意图;
图2为新型矩阵式二维码(卓信码)的功能信息布局示意图;
图3为本发明在解码时码图边界点分布的示意图。
具体实施方式
以下结合附图对本发明实施例做进一步详述:
一种新型矩阵式二维码,也叫卓信码,如图1所示,其符号由四个寻像图形、功能信息图形、校正图形、辅助校正图形、数据编码和纠错编码的符号模块构成。寻像图形分别设置在新型矩阵式二维码矩形区域的四个顶角位置,每个寻像图形由深色模块的多边形组成,其中,除右下角寻像图形为正方形以外,其余三个顶角处的寻像图形均为“L”型,且“L”型寻像图形与正方形寻像图形的边长相等。校正图形是一个由深色模块构成的方框并设置在四个寻像图形内,校正图形所确定的区域在识读时被用于对被识读的图形进行校正,以符合准确解码的需要。在校正图形的内部设置辅助校正图形,辅助校正图形均匀地设置在校正图形围成的区域内,对于版本1~5,辅助校正图形为一组“十”字型的分割线,将码图十字均衡分割成四个部分,其中,十字辅助校正图形的下部分由深色模块构成,而其余三部分由浅色模块构成;对于版本6~30,辅助校正图形在版本1~5的基础上增加四组“十”字型的分割线,将码图已分割成的四个部分再次进行十字均衡分割,这四组十字辅助校正图形均由浅色模块构成,辅助校正图形的作用是将码图区域进行分割,以便于卓信码的识读和码图校正。功能信息图形包括版本信息图形和纠错等级与掩膜模式图形,如图2所示,版本信息包括两字节并设置在左上角寻像图形的两侧和右下角寻像图形的两侧;纠错等级与掩膜模式图形包括两字节并设置在左下角寻像图形的两侧和右上角寻像图形的两侧。
一种新型矩阵式二维码的编码方法,包括以下步骤:
步骤1:将信息编码转换为数据编码;
本步骤是对输入的信息流或数据流进行分析以确定所述信息中被编码字符的类型。所述卓信码包含的编码字符集有:(1)数字型数据(数字0~9);(2)字母数字型数据(数字,字母;9个其他字符:space,$,%,*,+,-,.,/,:);(3)8位字节型数据;(4)中国汉字字符。由于被编码的信息流中通常会由多种类型的数据组成,例如:数字字符、英文文本字符、汉字字符等,因此需要对信息进行分析,以确定其中的数据类型,并按照相应的类型进行编码。在编码时,会将字符串按一定长度划分成多个字段。因此编码后形成的某种类型的二进制编码字段的前后还需要分别加入模式指示信息与符号数量信息和结束信息,以方便对该编码进行译码。
根据输入信息流的不同,将进行四种模式的编码:
(1)数字模式:3位十进制数字一组,用10比特表示(1024表示000到999);若最后剩余1位十进制数字,用4比特表示;若最后剩余2位十进制数字,用7比特表示;
(2)ascii模式:每个字符7bit编码;
(3)unicode模式:支持中文字符,采用双字节编码;
(4)混合模式:针对字符串中含有多种字符段的情况,汉字和数字混合,将字符串划分为多个字符段,每个字符段内进行对应模式的编码。
根据所述卓信码的版本号N,可以计算出卓信码每版本下可以摆放的字节容量M,具体的计算公式为:M=2N2+16N+30。其中,各版本卓信码中都会使用8个字节摆放功能信息,而用其余字节摆放数据码字和纠错码字。
步骤2:按照选定的纠错等级和纠错模式,并根据数据编码生成对应的纠错编码;
在将信息编码为数据编码之后,还需要进一步对编码完成的二进制数据位流按照选定的纠错等级和纠错模式,生成对应的纠错编码。本实施例中应用的纠错编码方式为RS纠错码,采用伽罗华域GF(28),其本原多项式为:
p(X)=X8+X4+X3+X2+X+1
在生成纠错编码时,本实施例首先会对编码数据比特流进行处理,以一固定分段长度将其划分成两种不同类型的块,这样形成的纠错码字长度固定。首先对这两种不同类型的块进行交织,然后根据分块类型、纠错等级、块内信息容量的不同,对其进行不同方式的数据处理。
在生成纠错编码时,本实施例提供了四种不同的纠错等级供选择以满足实用需求。四种纠错等级分别为L、M、Q和H,可恢复的码字比例分别为8%、16%、24%和32%。
步骤3:计算二维码符号尺寸参数;
生成二维码的一个关键的步骤就是计算二维码符号所需的尺寸,这里的尺寸主要是指二维码矩形区域的每条边所需的符号模块数量。例如,对于卓信码而言,可以通过设置其版本号来计算其边的尺寸,具体的计算公式如下:
其中,K是卓信码矩形任意边的模块数,N是卓信码的版本号,且N为正整数。当然,卓信码的边长也可以通过得到的编码数据、纠错编码等信息计算得到;具体的计算需要考虑:将最终得到的所有二进制编码数据位数加上寻像图形、校正图形以及辅助校正图形所占用的空间。
下表为卓信码各版本/纠错等级下的数据容量:
步骤4:生成寻像图形、校正图形和辅助校正图形,并根据新型矩阵式二维码尺寸参数描述的矩形区域,将所述寻像图形设置在所述矩形区域顶角位置,将校正图形和辅助校正图形设置在所述矩形区域中间位置;
如图1所示,四个寻像图形分别设置在卓信码矩形区域的四个顶角位置;寻像图形是由四个由深色模块构成的多边形组成,其中,除右下角寻像图形为正方形以外,其余三个顶角处的寻像图形均为“L”型,且“L”型寻像图形与正方形寻像图形的边长相等。左下角的寻像图形为一个标准的“L”型,将其顺时针旋转90°,即得到左上角的寻像图形,再对左上角的寻像图形顺时针旋转90°,即得到右上角的寻像图形。
计算得到所述矩形区域的四个顶点的坐标,设置四个寻像图形的位置,使所有寻像图形位于矩形区域内,并符合卓信码符号结构规则的规定。为了便于在对卓信码识读时能够方便地对卓信码进行定位,将右下角寻像图形大小设置成与其余寻像图形不同以保证卓信码识读时的方向性。
对于卓信码符号,需要在卓信码中再设置校正图形。参见图1,校正图形是一个由深色模块构成的方框。校正图形所确定的区域在识读时被用于对被识读的图形进行校正,以符合准确解码的需要。
在设置校正图形的时候,还在卓信码校正图形的内部设置辅助校正图形。如图1所示,辅助校正图形均匀地设置在校正图形围成的区域内,对于版本1~5,辅助校正图形为一组“十”字型的分割线,将码图十字均衡分割成四个部分,其中,十字辅助校正图形的下部分由深色模块构成,而其余三部分由浅色模块构成;对于版本6~30,辅助校正图形在版本1~5的基础上增加四组“十”字型的分割线,将码图已分割成的四个部分再次进行十字均衡分割,这四组十字辅助校正图形均由浅色模块构成。辅助校正图形的作用是将码图区域进行分割,以便于卓信码的识读和码图校正。
步骤5:将功能信息转换到功能信息符合模块,并设置到所述矩形区域;
生成功能信息也是生成卓信码的必要步骤;具体包括将所述版本信息、纠错等级以及掩膜模式的二进制数进行组合后得到功能信息二进制位流的步骤。本实施例中在功能信息的生成时同样进行了纠错编码,应用的纠错编码方式为BCH(15,5)纠错码。生成纠错编码时,分别对5bit的版本信息和5bit的纠错等级(2bit)与掩膜模式(3bit)进行BCH纠错编码。在生成对应的纠错编码后,需要引入一个长度为15的m序列进行置乱,所用的m序列为{000001100101101}。在所得两串15bit功能信息的二进制位流中的插入1bit的空信息,分别形成版本信息对应的两字节和纠错等级与掩膜模式对应的两字节。
如图2所示,将功能信息中版本信息对应的两字节摆放在左上角寻像图形的两侧,并将其拷贝摆放在右下角寻像图形的两侧。将纠错等级与掩膜模式对应的两字节摆放在左下角寻像图形的两侧,并将其拷贝摆放在右上角寻像图形的两侧。
步骤6:将数据编码和纠错编码构成的编码流依次转换为对应的符号模块,并自所述矩形区域的一个顶角处起沿一个方向依次设置在位于寻像图形和功能信息符号模块之外的矩形区域内。
对于卓信码中的编码数据和纠错编码,则是自左上角开始向右按列排布。根据数据模块需要避开寻像图形、校正图形和辅助校正图形的要求,本实施例将数据信息字节划分成九种字节类型。
在进行数据字节模块的摆放时,本实施例会根据当前卓信码的版本号N精确推导出各数据字节模块摆放位置的坐标,同时得到应摆放数据字节的类型,然后按列摆放这些数据字节模块。其中,对于每个版本的卓信码图,码图中的第一列和最后一列中都将摆放N+3个字节,而其余各列都将摆放N+4个字节。
在排布之后,还需要对卓信码数据进行掩模处理,即与一二进制数进行异或运算,得到实际要生成卓信码符号模块。其目的是使符号中深色与浅色模块数的比例均衡,并且减少影响图像快速处理的图形出现。
在对卓信码进行掩模处理时,本实施例一共提供了八种不同的掩膜类型。在生成最终的卓信码符号模块之前,将分别用八种掩膜方式对卓信码数据信息进行运算,得到八种备选的码图图案,然后通过罚分的方式对八种掩膜方式性能的优劣进行判定,最终选定一种掩膜方式,生成最终的卓信码码图。
一种新型矩阵式二维码的解码方法,包括以下步骤:
步骤1:对拍摄到的二维码图像进行预处理,具体步骤包括:
步骤1.1沿着二维码的背景区边界,对拍摄到的图像进行分割,提取其中的二维码图像。
步骤1.2对提取的二维码图像进行二值化和降分辨率处理。
为了能够快速划分二维码背景区边界,提取二维码图像,本实施例采用线性扫描的方式进行码图寻像,利用码图四个顶角处的几何特征,对输入图像进行精准切割,只保留二维码码图所在的矩形区域,并获得码图四个顶点的位置,从而大幅节省了后续识别工作的计算量。
卓信码采用深色和浅色符号构成码图,因此,在提取出二维码图像以后,还需对码图进行二值化以便于识别。由于输入的二维码图像拍摄场景复杂,拍摄设备多种多样,光照条件、明暗程度、遮挡状况、拍摄角度千变万化,因此,采用传统的二值化方法可能对某些特定情况来说并不适用。本实施例根据输入图像的不同,采用了自适应的二值化阈值计算方法。其基本思想是基于经典的ostu算法,该计算方法会根据输入图像条件的不同,对二值化阈值作出相应的调整。该算法对外部条件的变化不敏感,能够达到非常良好的性能。
为了提高卓信码的解码速度,对一些高分辨率的输入图像,本实施例采用了降分辨率的预处理方法。
在对提取出的二维码图像进行将分辨率时,首先计算图像缩放的尺度因子dec_rate,其计算方式遵循下式:
dec_rate=floor(length(x)/dec_res)
其中,length(x)为原始码图大小,dec_res为降分辨率后要求达到的码图大小。
其次将原始码图进行下采样,其计算方式遵循下式:
其中,x(s,t)为原始码图中坐标为(s,t)的像素点的值,x_dec(i,j)为降分辨率后的码图中坐标为(i,j)的像素点的值。
步骤2:在二维码符号中寻找寻像图形,利用寻找到的寻像图形将二维码符号旋转到标准位置,具体步骤包括:
步骤2.1:在二维码符号的四个顶点位置附近寻找寻像图形。对二维码符号的四个顶点位置附近的区域进行线性扫描,寻找到由深色模块构成的四边形则找到寻像图形。如果找到寻像图形,则执行步骤2.2;否则结束;
步骤2.2在二维码符号的中间位置附近寻找校正图形。如果找到校正图形,则执行步骤2.3;否则结束;
步骤2.3在二维码符号所在区域中寻找辅助校正图形。如果找到辅助校正图形,则执行步骤2.5;否则结束;
步骤2.4如果寻像图形中包括符合标准位置的二维码符号四个顶点的寻像图形特征的寻像图形,则根据寻找到的校正图形和辅助校正图形,对所述二维码符号进行旋转和畸变校正,使符合标准位置的二维码符号四个顶点的寻像图形特征的寻像图形所在的顶点位于二维码符号相应的四个顶点处,同时使二维码符号旋转到标准位置,执行步骤2.4;否则结束;
步骤2.5根据寻找到的辅助校正图形,对二维码符号进行划分,标定出条码符号各数据字节的坐标,确定采样窗口的位置和大小,进行数据信息的采样,执行下一步骤。
寻找寻像图形时,由于卓信码的寻像图形位于码图所在矩形区域的四个顶角处,因此,本实施例将会在提取的二维码码图的四个顶点处进行查找。首先应找到的是正方形寻像图形。
寻找校正图形时,由于卓信码的校正图形为一个深色的方框,因此,将分别寻找校正图形深色的四条边以确定码图中的校正图形。鉴于拍摄到的二维码很可能存在旋转,本实施例借鉴Hough变换方法,检测出二维码图像中较长的深色直线,并通过计算直线的数学表达式,快速计算出校正图形的倾角。根据计算出的倾角度数将二维码进行旋转,可以将码图摆正。由于卓信码的校正图形各边与码图所在矩形区域的各边平行,因此,计算出的校正图形的倾角即为码图校正时所需旋转的角度。
同时,由于拍摄到的二维码很可能存在畸变,本实施例依据找到的四个顶点,参考透视变换的相关知识,计算出3x3透视变换矩阵的所有参数,将已畸变的像素点映射到标准码图所在区域。然后根据找到的正方形寻像图形继续调整码图,使该图形在码图校正后应位于右下顶角处。
根据检测出的辅助校正图形,通过计算辅助校正图形的交点,可以对二维码码图进行划分,针对每个划分的区域的特点给予不同的采样参数,进一步减少了码图整体畸变对局部信息的影响。如图3所示,在进行码图信息的采样时,利用边缘检测方法,首先检测出码图的边界,并记录边界点的坐标,分别求得边界点在水平向和垂直向的分布;然后结合加权滤波理论,引入一个系数为(-1,-3,-4,-8,-16,64,-16,-8.-4,-3,-1)的十一抽头滤波器,使边界点坐标的分布进一步集中,从而查找出二维码码图每行每列模块最可能的分界点。通过查找出的模块边界点,可以对采样窗口的大小进行相应的调整,提高了局部数据信息采样和模块宽度估计的精度,进一步保证了卓信码图符号模块转换成数据信息时的正确性。
步骤3:提取寻像图形附近功能信息区域的功能信息,获得版本号、纠错等级和掩模信息,具体步骤包括:
步骤3.1根据采样得到的数据信息,对二维码图像进行重建。
步骤3.2根据模块尺寸,读取放置于二维码符号相邻两顶点附近的功能信息区域,获得版本、纠错等级信息和掩模信息。
其中,步骤3.2中又包括:
步骤3.2.1读取步骤1所找到的任一寻像图形附近的功能信息区域中每一模块的数据:
步骤3.2.2读取与寻像图形任意一相邻顶点附近的功能信息区域中每一模块的数据;
步骤3.2.3对寻像图形及相邻顶点附近的两个功能信息区域中的数据进行纠错,如果纠错无解,执行步骤3.2.4;否则进行功能信息纠错处理,获得纠错等级信息和掩模信息,执行步骤4;
步骤3.2.4读取寻像图形另一相邻顶点附近的功能信息区域中每一模块的数据和其在对角线寻像图形附近的功能信息区域中每一模块的数据;
步骤3.2.5对另一相邻顶点附近的功能信息区域数据和其对角线寻像图形附近的功能信息区域数据进行纠错,判断纠错是否有解,如果有解则进行纠错处理,获得纠错等级信息和掩模信息,执行下一步骤;否则结束。
为进一步提高卓信码识别的准确度,本实施例在分析码图各字节信息之前引入了重建图像的机制。即根据采样得到的信息,将提取的二维码图像恢复到近似于理想图像的形式,这样在一定程度上就减少了由污损、遮挡所造成的对码图识别的干扰。
在对识读的功能信息数据进行纠错之前,还应对其进行去随机化处理。
步骤4:读取二维码符号中位于寻像图形和功能信息区域之外的模块数据获得数据编码和纠错编码信息,具体步骤包括:
读取二维码符号中位于寻像图形和功能信息区域之外的模块数据获得数据编码和纠错编码信息的步骤包括:
根据划分好的二维码符号区域,依次顺序读取二维码符号中除寻像图形和功能信息区域之外的数据字节模块。
在读取数据字节模块时,本实施例会根据解析出的卓信码版本号精确推导出各数据字节模块摆放位置的坐标,然后从左上角的顶点开始,根据计算出来的位置信息,按列依次向右对各字节模块中的数据信息进行读取。
步骤5:根据掩模信息对获取的数据编码和纠错编码进行去掩模处理,具体步骤包括:
根据获得的掩模信息,对数据编码和纠错编码进行异或处理,去除掩模,恢复表示数据码字和纠错码字的符号字符。
在确定当前卓信码图添加的掩膜类型之后,我们可以分别对各掩膜类型进行去掩膜的运算。首先进行条件的判断,然后进行模块数值的修改。事实上,对于每种掩膜类型来说去掩膜算法和加掩膜算法是一样的,依据的数学原理是
步骤6:根据纠错编码对数据编码进行纠错得到恢复的编码数据,具体步骤包括:
对数据码字和纠错码字就行去交织的步骤;
根据纠错编码对数据编码纠错计算的步骤。
在对数据编码进行纠错时,本实施例将首先根据获得的纠错等级信息,获得纠错容量,计算纠错编码的位数。然后根据接收到的码字确定数据错误的位置,并一步计算出错误图样,从而完成纠错。
在完成纠错的过程中,本实施例将根据编码数据所处于的分块的类型,采用不同的数据处理模式,分别对其进行纠错,并在完成纠错时,完成数据二进制位流的重排。
步骤7:按照设定的解码规则将数据编码转换为信息编码,具体步骤包括:
分析恢复的编码数据,确定字符串中各种字符类型对应的字符段的分布,依次对各字符段进行解码,将数据二进制位流恢复成相应的数据信息形式。
通过读取各字符段中的模式指示信息与符号数量信息,可以获得当前字符段中使用的字符编码模式和各字段中符号的数量。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (8)
1.一种新型矩阵式二维码的编码方法,其特征在于:包括以下步骤:
步骤1:将信息编码转换为数据编码;
步骤2:按照选定的纠错等级和纠错模式,并根据数据编码生成对应的纠错编码;
步骤3:计算二维码符号尺寸参数;所述计算二维码符号尺寸参数采用如下数学模型:
其中,K为新型矩阵式二维码任意边的模块数,N为新型矩阵式二维码的版本号,且为正整数;
步骤4:生成寻像图形、校正图形和辅助校正图形,并根据新型矩阵式二维码尺寸参数描述的矩形区域,将所述寻像图形设置在所述矩形区域顶角位置,将校正图形和辅助校正图形设置在所述矩形区域中间位置;
步骤5:将功能信息转换到功能信息符合模块,并设置到所述矩形区域;
步骤6:将数据编码和纠错编码构成的编码流依次转换为对应的符号模块,并自所述矩形区域的一个顶角处起沿一个方向依次设置在位于寻像图形和功能信息符号模块之外的矩形区域内。
2.根据权利要求1所述的一种新型矩阵式二维码的编码方法,其特征在于:所述步骤4包括以下步骤:
步骤4.1:将所述寻像图形设置在所述矩形区域顶角位置:所述寻像图形分别由四个由深色模块构成的多边形组成,其中,除右下角寻像图形为正方形以外,其余三个顶角处的寻像图形均为“L”型,且“L”型寻像图形与正方形寻像图形的边长相等;
步骤4.2:将校正图形设置在所述矩形区域中间位置:所述的校正图形为一个由深色模块构成的方框,该方框位于所述矩形区域的中间位置;
步骤4.3:将辅助校正图形设置在所述矩形区域中间位置:新型矩阵二维码包括版本1~30,对于版本1~5,所述的辅助校正图形为一组“十”字型的分割线,将码图十字均衡分割成四个部分,其中,十字辅助校正图形的下部分由深色模块构成,而其余三部分由浅色模块构成;对于版本6~30,所述的辅助校正图形在版本1~5的基础上增加四组“十”字型的分割线,将码图已分割成的四个部分再次进行十字均衡分割,增加的四组十字辅助校正图形均由浅色模块构成。
3.根据权利要求1所述的一种新型矩阵式二维码的编码方法,其特征在于:所述的步骤5包括以下步骤:
步骤5.1:将所述版本号、纠错等级以及所述二维码掩膜信息的二进制数进行组合后得到功能信息二进制位流,将所述功能信息二进制位流按照选定的纠错模式,生成对应的功能信息纠错编码;
步骤5.2:对生成的功能信息纠错编码进行随机化,并转换为功能信息图形,最后填充在所述寻像图像与有数据编码和纠错编码构成的符号模块之间。
4.根据权利要求1所述的一种新型矩阵式二维码的编码方法,其特征在于:所述的步骤6包括以下步骤;
步骤6.1:根据数据模块需要避开寻像图形、校正图形和辅助校正图形的要求,将数据信息字节划分成九种字节类型;
步骤6.2:根据新型矩阵式二维码符号尺寸参数描述的矩形区域,精确计算出数据信息中每字节模块位置,并从左上角的顶点开始,根据计算出来的位置信息,按列依次向右对数据字节模块进行摆放;
步骤6.3:对摆放好的数据字节模块进行掩膜添加的步骤;分别对数据字节模块进行不同类型掩膜的添加,并对添加各类掩膜的码字进行性能优劣判定,最终决定采用一种掩膜类型。
5.一种新型矩阵式二维码的解码方法,其特征在于:包括以下步骤:
步骤1:对拍摄到的二维码图像进行预处理;所述步骤1的预处理包括以下步骤:
步骤1.1:沿着二维码的背景区边界,对拍摄到的图像进行分割,提取其中的二维码图像;
步骤1.2:对提取的二维码图像进行二值化和降分辨率处理;
步骤2:在二维码符号中寻找寻像图形,利用寻找到的寻像图形将二维码符号旋转到标准位置;
步骤3:提取寻像图形附近功能信息区域的功能信息,获得版本号、纠错等级和掩膜信息;
步骤4:读取二维码符号中位于寻像图形和功能信息区域之外的模块数据获得数据编码和纠错编码信息;
步骤5:根据掩模信息对获取的数据编码和纠错编码进行去掩模处理;
步骤6:根据纠错编码对数据编码进行纠错得到恢复的编码数据;
步骤7:按照设定的解码规则将数据编码转换为信息编码。
6.根据权利要求5所述的一种新型矩阵式二维码的解码方法,其特征在于:所述步骤2包括以下步骤:
步骤2.1:在二维码符号的四个顶点位置附近寻找寻像图形;对二维码符号的四个顶点位置附近的区域进行线性扫描,寻找到由深色模块构成的四边形则找到寻像图形;如果找到寻像图形,则执行步骤2.2;否则结束;
步骤2.2:在二维码符号的中间位置附近寻找校正图形;如果找到校正图形,则执行步骤2.3;否则结束;
步骤2.3:在二维码符号所在区域中寻找辅助校正图形;如果找到辅助校正图形,则执行步骤2.5;否则结束;
步骤2.4如果寻像图形中包括符合标准位置的二维码符号四个顶点的寻像图形特征的寻像图形,则根据寻找到的校正图形和辅助校正图形,对所述二维码符号进行旋转,使符合标准位置的二维码符号四个顶点的寻像图形特征的寻像图形所在的顶点位于二维码符号相应的四个顶点处,同时使二维码符号旋转到标准位置,执行步骤2.4;否则结束;
步骤2.5根据寻找到的辅助校正图形,对二维码符号进行划分,标定出条码符号各数据字节的坐标,确定采样窗口的位置和大小,进行数据信息的采样。
7.根据权利要求5所述的一种新型矩阵式二维码的解码方法,其特征在于:所述步骤3包括以下步骤:
步骤3.1:根据采样得到的数据信息,对二维码图像进行重建;
步骤3.2:根据模块尺寸,读取放置于二维码符号相邻两顶点附近的功能信息区域,获得版本、纠错等级信息和掩模信息;
步骤3.2.1:读取步骤一所找到的任一寻像图形附近的功能信息区域中每一模块的数据;
步骤3.2.2:读取与寻像图形任意一相邻顶点附近的功能信息区域中每一模块的数据;
步骤3.2.3:对寻像图形及相邻顶点附近的两个功能信息区域中的数据进行纠错,如果纠错无解,执行步骤3.2.4;否则进行功能信息纠错处理,获得纠错等级信息和掩模信息,执行步骤4;
步骤3.2.4:读取寻像图形另一相邻顶点附近的功能信息区域中每一模块的数据和其在对角线寻像图形附近的功能信息区域中每一模块的数据;
步骤3.2.5:对另一相邻顶点附近的功能信息区域数据和其对角线寻像图形附近的功能信息区域数据进行纠错,判断纠错是否有解,如果有解则进行纠错处理,获得纠错等级信息和掩模信息,执行步骤4;否则结束。
8.根据权利要求5所述的一种新型矩阵式二维码的解码方法,其特征在于:所述步骤6包括以下步骤:
步骤6.1:对数据码字和纠错码字就行去交织;
步骤6.2:根据纠错编码对数据编码纠错计算,如果有解,则得到恢复的编码数据;否则结束;
步骤6.3:根据获得的纠错等级,获得纠错容量,计算纠错编码的位数;
步骤6.4:分别对各块的数据字节和纠错字节进行检错和纠错,并进行二进制位流的重排。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210456943.6A CN102999772B (zh) | 2012-11-14 | 2012-11-14 | 一种新型矩阵式二维码的编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210456943.6A CN102999772B (zh) | 2012-11-14 | 2012-11-14 | 一种新型矩阵式二维码的编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999772A CN102999772A (zh) | 2013-03-27 |
CN102999772B true CN102999772B (zh) | 2016-02-10 |
Family
ID=47928320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210456943.6A Expired - Fee Related CN102999772B (zh) | 2012-11-14 | 2012-11-14 | 一种新型矩阵式二维码的编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999772B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123520B (zh) * | 2013-04-28 | 2017-09-29 | 腾讯科技(深圳)有限公司 | 二维码扫描方法及装置 |
FR3007559B1 (fr) * | 2013-06-24 | 2015-07-17 | Schneider Toshiba Inverter | Procede et systeme d'affichage d'au moins un code matriciel sur un ecran pour la transmission de donnees a un equipement electronique muni de moyens de lecture du ou des codes matriciels |
CN104281828A (zh) * | 2013-07-05 | 2015-01-14 | 百度在线网络技术(北京)有限公司 | 一种二维码的提取方法及移动终端 |
CN104751093B (zh) * | 2013-12-31 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 用于获取宿主设备显示的图像识别码的方法和装置 |
CN103955663B (zh) * | 2014-04-22 | 2017-02-01 | 广州宽度信息技术有限公司 | 一种qr码抗污损识别方法 |
CN104468090B (zh) * | 2014-11-12 | 2017-07-28 | 辽宁大学 | 基于图像像素坐标的汉字密码编码方法 |
JP2016095603A (ja) * | 2014-11-13 | 2016-05-26 | カシオ計算機株式会社 | 電子機器およびプログラム |
JP6229667B2 (ja) * | 2015-01-13 | 2017-11-15 | 株式会社デンソーウェーブ | 情報コード読取システムおよび情報コード読取装置 |
CN104636780B (zh) * | 2015-01-30 | 2017-07-04 | 深圳市民德电子科技股份有限公司 | 矩阵式二维码及其编码方法和译码方法 |
WO2016119239A1 (zh) * | 2015-01-30 | 2016-08-04 | 深圳市民德电子科技股份有限公司 | 矩阵式二维码及其编码方法和译码方法 |
CN105989389A (zh) * | 2015-02-11 | 2016-10-05 | 北京鼎九信息工程研究院有限公司 | 一种二维码 |
CN105989390A (zh) * | 2015-02-11 | 2016-10-05 | 北京鼎九信息工程研究院有限公司 | 一种二维码的生成方法及装置 |
CN105069389B (zh) * | 2015-07-27 | 2017-10-31 | 福建联迪商用设备有限公司 | 二维码分块解码方法及系统 |
CN106127276B (zh) * | 2016-06-27 | 2018-12-21 | 福建联迪商用设备有限公司 | 一种量化污损QRCode的方法及系统 |
CN106447001A (zh) * | 2016-09-19 | 2017-02-22 | 华南农业大学 | 一种圆形二维码及其编码方法和应用 |
CN108154210B (zh) * | 2016-12-02 | 2021-04-16 | 杭州海康机器人技术有限公司 | 一种二维码生成、识别方法及装置 |
CN108154209B (zh) * | 2016-12-02 | 2021-03-26 | 杭州海康机器人技术有限公司 | 一种用于移动机器人定位的二维码生成、识别方法及装置 |
CN106897758B (zh) * | 2016-12-26 | 2020-02-21 | 蒋涵民 | 一种用于平面连续定位的qrl码及其连续定位的方法 |
CN107122816A (zh) * | 2017-03-20 | 2017-09-01 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种自定义寻像图形二维码及生成方法 |
CN107247985B (zh) * | 2017-05-27 | 2020-07-17 | 浙江隐齿丽医学技术有限公司 | 二维码的编码、定位及识别方法 |
CN107563475B (zh) * | 2017-07-18 | 2020-04-28 | 中国农业大学 | 一种二维码的编码方法和装置 |
CN107563477A (zh) * | 2017-07-26 | 2018-01-09 | 中国农业大学 | 二维码及其生成方法和装置 |
CN107545289A (zh) * | 2017-09-19 | 2018-01-05 | 闫河 | 矩阵式二维码的编码方法及解码方法 |
US10909432B2 (en) * | 2017-10-06 | 2021-02-02 | Denso Wave Incorporated | Two-dimensional code composed of a plurality of types of cells |
CN110889304B (zh) * | 2018-09-11 | 2023-04-28 | 杭州海康威视数字技术股份有限公司 | 二维码质量评估方法及装置、存储介质、电子设备、系统 |
CN109543803B (zh) * | 2018-11-23 | 2022-07-22 | 上海好想法网络科技有限公司 | 可编辑子母式色彩二维码的编码系统及解码系统 |
CN109831309A (zh) * | 2019-02-25 | 2019-05-31 | 胡辉萍 | 一种具有多重验证的安全码原理和方法 |
CN109919278B (zh) * | 2019-02-28 | 2023-07-04 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种对称图形二维码的定向方法 |
CN109902528B (zh) * | 2019-02-28 | 2023-10-20 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种二维码的编解码方法 |
CN113420859A (zh) * | 2019-03-18 | 2021-09-21 | 创新先进技术有限公司 | 二维码、二维码的生成、识别方法、装置及设备 |
CN110309687B (zh) * | 2019-07-05 | 2020-06-05 | 华中科技大学 | 一种二维码图像的校正方法及校正装置 |
CN112187284A (zh) * | 2019-07-05 | 2021-01-05 | 杭州海康机器人技术有限公司 | 编码方法、编码图形、编码图形读取方法和拍摄装置 |
CN111191756A (zh) * | 2020-04-12 | 2020-05-22 | 田庆 | 一种矩形二维码 |
CN112837446A (zh) * | 2020-12-28 | 2021-05-25 | 重庆医药高等专科学校 | 一种利用移动手持智能终端联动人力资源资料柜 |
CN112990406B (zh) * | 2021-04-15 | 2021-08-31 | 北京风筝科技有限公司 | 一种可加入动态扩展信息的二维码生成、识别方法及装置 |
CN114004320B (zh) * | 2021-10-15 | 2023-11-28 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
CN117131897B (zh) * | 2023-10-19 | 2024-02-06 | 中国物品编码中心 | 二维码图形的解码方法、装置、设备及介质 |
CN117094349B (zh) * | 2023-10-19 | 2024-01-09 | 中国物品编码中心 | 二维码图形的生成方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546386A (zh) * | 2008-03-27 | 2009-09-30 | 电装波动株式会社 | 具有带用于指定单元位置并与背景区分开的特定图案的矩形区域的二维码 |
CN102034127A (zh) * | 2009-09-28 | 2011-04-27 | 上海易悠通信息科技有限公司 | 新型大容量二维条码与系统及其编解码方法和应用 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5136302B2 (ja) * | 2008-03-27 | 2013-02-06 | 株式会社デンソーウェーブ | 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法 |
-
2012
- 2012-11-14 CN CN201210456943.6A patent/CN102999772B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546386A (zh) * | 2008-03-27 | 2009-09-30 | 电装波动株式会社 | 具有带用于指定单元位置并与背景区分开的特定图案的矩形区域的二维码 |
CN102034127A (zh) * | 2009-09-28 | 2011-04-27 | 上海易悠通信息科技有限公司 | 新型大容量二维条码与系统及其编解码方法和应用 |
Also Published As
Publication number | Publication date |
---|---|
CN102999772A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999772B (zh) | 一种新型矩阵式二维码的编解码方法 | |
CN100369059C (zh) | 一种矩阵式二维条码及其编码解码方法 | |
CA2502483C (en) | Orientation-indicating cyclic position codes | |
JP5003225B2 (ja) | 符号処理装置 | |
KR100960786B1 (ko) | 2d 부호의 인코딩 디코딩 방법 및 시스템 | |
CN107545289A (zh) | 矩阵式二维码的编码方法及解码方法 | |
CN104899630A (zh) | 彩色qr码的编/解码方法 | |
US7380727B2 (en) | Method of generating interface surface | |
CN101405747B (zh) | 生成图像码的方法和设备以及解码图像码的方法和设备 | |
US8360333B2 (en) | HD barcode | |
CN106845593A (zh) | 一种矩形固定点阵信息编解码方法 | |
CN101334849A (zh) | 二维码标签的符号生成方法及装置、以及二维码标签结构 | |
CN1963838A (zh) | 二维条码图形畸变校正的方法 | |
CN102999773A (zh) | 一种彩色格点码图及其三维条码编码方法 | |
CN100464345C (zh) | 二维条码符号转换为编码信息的方法 | |
CN101303742B (zh) | 微小型汉信码及其符号的生成方法 | |
CN110991589A (zh) | 一种二维码及其加密方法 | |
CN100504912C (zh) | 二维条码符号的生成方法 | |
US20240086670A1 (en) | Methods for constructing, generating, and reading dot-matrix code, dot-matrix code generating and reading terminals, and dot-matrix code system | |
Ramya et al. | Improved color QR codes for real time applications with high embedding capacity | |
CN102254204A (zh) | 字形码的编码及译码方法 | |
TWI295134B (zh) | ||
Ramya et al. | VLSI implementation of hybrid QR code generation system | |
CN118821825A (zh) | 一种基于Android平台的彩色QR呈现方法 | |
CN110533136A (zh) | 一种彩色汉信码的编解码器及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160210 Termination date: 20181114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |