CN107545289A - 矩阵式二维码的编码方法及解码方法 - Google Patents
矩阵式二维码的编码方法及解码方法 Download PDFInfo
- Publication number
- CN107545289A CN107545289A CN201710852224.9A CN201710852224A CN107545289A CN 107545289 A CN107545289 A CN 107545289A CN 201710852224 A CN201710852224 A CN 201710852224A CN 107545289 A CN107545289 A CN 107545289A
- Authority
- CN
- China
- Prior art keywords
- code
- boundary
- point
- information
- coding
- 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.)
- Pending
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明提供的矩阵式二维码的编码方法及解码方法,方法为:将信息编码转换为数据编码;按照选定的纠错等级和纠错模式生成对应的纠错编码;计算二维码符号尺寸参数;生成缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形,并将功能信息按照预设编码方式转换成二进制数据位流,设置矩形区域,生成二维码。本发明通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据编码方式简单,编码和解码效率高,冗余信息少。
Description
技术领域
本发明涉及数据识别领域,尤其涉及矩阵式二维码的编码方法及解码方法领域。
背景技术
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。通常印刷在商品包装上的条码是普通的一维条码。一维条码存在以下不足:数据容量较小,多数一维条码所能表示的字符集不过是10个数字,26个英文字母及一些特殊字符;条码符号的尺寸相对较大,即空间利用率较低;条码遭到损坏后便不能阅读等等。在日常应用中,一旦遇到要用一维条码表示汉字的场合,就显得十分不方便,且效率很低。
二维码正是为了解决一维条码无法解决的问题而产生的,其具有高密度、高可靠性等特点,因此,可以用它存储和表示数据文件(包括汉字文件)、图像文件等。二维码可以分为层排式二维码(有代表性的包括PDF417,Code 49,Code16K等)和矩阵式二维码(有代表性的包括Code one,Aztec,Date Matrix,QR码等)。层排式二维码形态上是由多行短截的一维条码层排而成,矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上用点的出现表示二进制”1"空的出现表示二进制”0",由点的排列组合确定了代码表示的含义。层排式二维码中包含附加的格式信息,信息容量最大可以达到1000个字节左右,但是,其符号存储信息的能力最大也只有1000个字节,如果采用较高的纠错等级,层排式二维码存储有效数据的能力会进一步下降。矩阵式二维码与层排式二维码相比,具有更高的信息密度(如:DataMatrix,Maxicode,Aztec,QR码),可以作为包装箱的信息表达符号,在电子半导体工业中,将Datalvlatrix或QR码用于标识小型的零部件。矩阵式二维码能被二维的CCD图像式阅读器识读,井能以全向的方式扫描。由于二维码能够编码存储的信息量较大,因此,能够将任何语言(包括汉字)和二进制信息(如签字、照片)进行编码,并可以由用户选择的不同程度的纠错级别,以在符号残损的情况下恢复所有信息。
现有的二维码中典型的例子是QR码,由于其所具有的寻像图形、校正图形都由不同颜色正方形相互交替重叠构成。在对QR码进行识读和定位时,要求所有的寻像图形都必须存在,或者在只有一部分寻像图形存在的情况下,必须有一定数量和固定位置的校正图形存在;否则就不能对其进行定位,进而影响到对QR码中存储的信息进行还原。在此情况下,就需要较多地使用寻像图形和校正图形,使得矩阵式二维码符号的用于存储有效数据的面积相应减少,或者在要存储较多的数据,就不得不扩大符号的面积。造成二维码识读速度慢,并且在残损时不易识读。
发明内容
针对上述技术问题,本发明提供一种矩阵式二维码的编码方法及解码方法,通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据解码方式简单,编码和解码效率高,冗余信息少。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种矩阵二维码的编码方法,包括:
步骤S1,将信息编码转换为数据编码;
步骤S2,根据所述数据编码,按照选定的纠错等级和纠错模式生成对应的纠错编码;
步骤S3,计算二维码符号尺寸参数;
步骤S4,生成缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形,并将功能信息按照预设编码方式转换成二进制数据位流,所述预设编码方式包括三位编码、四位编码和五位编码中的一种或多种;
步骤S5,根据所述二维码符号尺寸参数,设置矩形区域,所述缺省单元设置在所述矩形区域的一顶点上,所述列奇偶校验单元设置在所述缺省单元所在行,所述行奇偶校验单元设置在所述缺省单元所在列,所述矩形区域为N*N的矩阵;
步骤S6,在所述矩形区域中,将所述二进制数据位流按预设顺序存储在所述信息存储单元中,将列奇偶校验码对应存储在所述列奇偶校验单元中,将行奇偶校验码对应存储在所述行奇偶校验单元中,将CRC校验码对应存储在所述CRC校验单元中,将所述纠错编码和所述数据编码存储在所述矩形区域中的其他区域,生成二维码。
本发明提供一种矩阵二维码的编码方法,其技术方案为:将信息编码转换为数据编码;根据所述数据编码,按照选定的纠错等级和纠错模式生成对应的纠错编码;计算二维码符号尺寸参数;生成缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形,并将功能信息按照预设编码方式转换成二进制数据位流,所述预设编码方式包括三位编码、四位编码和五位编码中的一种或多种;
根据所述二维码符号尺寸参数,设置矩形区域,所述缺省单元设置在所述矩形区域的一顶点上,所述列奇偶校验单元设置在所述缺省单元所在行,所述行奇偶校验单元设置在所述缺省单元所在列,所述矩形区域为N*N的矩阵;在所述矩形区域中,将所述二进制数据位流按预设顺序存储在所述信息存储单元中,将列奇偶校验码对应存储在所述列奇偶校验单元中,将行奇偶校验码对应存储在所述行奇偶校验单元中,将CRC校验码对应存储在所述CRC校验单元中,将所述纠错编码和所述数据编码存储在所述矩形区域中的其他区域,生成二维码。
本发明提供一种矩阵二维码的编码方法,通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据编码方式简单,编码效率高,冗余信息少。
进一步地,所述矩形区域包括用于存储数据信息的数据区域和设置在所述数据区域四周的寻像图形,所述数据区域由(N-2)*(N-2)单元组成,包括:缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形;
其中,所述列奇偶校验单元包括N-3位列奇偶校验位,用于存储所述列奇偶校验码;
所述行奇偶校验单元包括N-3位行奇偶校验位,用于存储所述行奇偶校验码;
所述CRC校验单元包括8位CRC校验位,用于存储所述CRC校验码;
所述信息存储单元包括若干位信息位,用于存储所述二进制数据位流,所述二进制数据位流为数据信息;
所述寻像图形包括用于确定图形方向的定位模块、第一L型定位单元、第二L型定位单元和第三L型定位单元,所述定位模块和所述第二L型定位单元的顶点设置在所述矩形区域的一对角线上,所述第一L型定位单元的一边与所述第二L型定位单元的一边完全重叠,所述第二L型定位单元的另一边与所述第三L型定位单元的一边完全重叠,所述第一L型定位单元与所述第三L型定位单元对称设置;
所述第二L型定位单元的两边长度比例为1:1;若N为偶数,所述第一L型定位单元与所述第三L型定位单元的两边长度比例为1:2,若N为奇数,所述第一L型定位单元与所述第三L型定位单元的两边长度比例为(N+1)/2:N;
所述定位模块设置在所述矩形区域的一顶点上,并与所述缺省单元相邻;
其中,N为大于6的整数。
进一步地,所述步骤S3中,所述计算二维码符号尺寸参数采用如下数学模型:
其中,K为所述二维码任意边的单元数,M为所述二维码的版本号,且为正整数。
进一步地,所述步骤S6中,所述二进制数据位流按预设顺序存储在所述信息存储单元中,具体为:
将所述二进制数据位流按照所述选定的纠错模式,生成对应的功能信息纠错编码,其中,所述二进制数据位流通过将所述二维码的版本号、所述选定的纠错等级以及所述二维码的掩膜信息的二进制数进行组合后得到;
对所述功能信息纠错编码进行随机化,并转换为功能信息图形;
将所述功能信息图形对应存储在所述信息存储单元中。
进一步地,所述预设顺序为行与行之间首尾相连的蛇形顺序;
其中,所述步骤S6中,将所述二进制数据位流按预设顺序存储在所述信息存储单元中,具体为:
将所述二进制数据位流按所述蛇形顺序从所述信息位的首行考试依次填充,剩余的信息位填充0;
其中,所述步骤S6中,将CRC校验码对应存储在所述CRC校验单元中,具体为:
将所述8位CRC校验码按所述蛇形顺序填充在所述CRC校验位中。
第二方面,本发明提供一种矩阵二维码的解码方法,包括:
步骤S10,对获取的二维码图像进行二值化和降分辨率处理,得到二维码信息;
步骤S20,对比并判断所述二维码信息是否包括寻像图形,若是执行步骤S30以后的步骤,若否结束译码;
步骤S30,提取所述二维码信息的信息位中的数据,提取到的数据包括版本号、纠错等级和掩模信息,并读取所述矩形区域中其他区域中的数据,获得数据编码和纠错编码;
步骤S40,根据所述掩模信息对所述数据编码和纠错编码进行去掩模处理,根据纠错编码对所述数据编码进行纠错得到恢复的编码数据;
步骤S50,根据所述提取到的数据,计算各列的列奇偶校验码和各行的列奇偶校验码,并分别与放置在列奇偶校验为中的列奇偶校验码和放置在行奇偶校验位中的行奇偶校验码进行比较,判断是否一致,若一致则执行步骤S60的步骤;
步骤S60,利用CRC校验码对通过行列奇偶校验的数据进行CRC校验,若CRC校验通过,则对所述二维码信息的信息位中的数据进行译码,以结束以码,若否则判定译码失败,结束译码。
本发明提供的矩阵二维码的解码方法,其技术方案为:包括步骤对获取的二维码图像进行二值化和降分辨率处理,得到二维码信息;对比并判断所述二维码信息是否包括寻像图形,若是继续执行以下步骤,若否结束译码;提取所述二维码信息的信息位中的数据,提取到的数据包括版本号、纠错等级和掩模信息,并读取所述矩形区域中其他区域中的数据,获得数据编码和纠错编码;根据所述掩模信息对所述数据编码和纠错编码进行去掩模处理,根据纠错编码对所述数据编码进行纠错得到恢复的编码数据;
根据所述提取到的数据,计算各列的列奇偶校验码和各行的列奇偶校验码,并分别与放置在列奇偶校验为中的列奇偶校验码和放置在行奇偶校验位中的行奇偶校验码进行比较,判断是否一致,若一致则执行以下步骤;利用CRC校验码对通过行列奇偶校验的数据进行CRC校验,若CRC校验通过,则对所述二维码信息的信息位中的数据进行译码,以结束以码,若否则判定译码失败,结束译码。
本发明提供一种矩阵二维码的解码方法,通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据解码方式简单,解码效率高,冗余信息少。
进一步地,所述步骤S10还包括,判断获取的所述二维码图像是否包括二维码信息:
S101:获取携带二维码图像的图像,并对所述图像进行二值化,得到二值化图像;
S102:以所述二值化图像的左下角为坐标原点,水平方向为x轴,竖直方向为y轴,建立平面直角坐标系;
S103:找出与可能的二维码区域颜色相同的区域,在颜色相同的区域逐行扫描图像,找到第一个边缘点,以此点为起始点,进行边界跟踪,找出边界点,若连通的边界点的个数不小于168,则判定所述连通的边界点围成的二维码区域为包括二维码信息的二维码图像,跳转到步骤S20,若连通的边界点的个数不小于100且不大于168,则判定所述连通的边界点围成的二维码区域为包含不完整二维码信息的二维码图像,进行损坏二维码的译码;
其中,逐行扫描图像时,能够确定可能的二维码区域的颜色表示:如果扫描线上扫描到起始点时,颜色由白变黑,则可能的二维码区域为正常二维码颜色表示,即黑色对应1,白色对应0,设定可能的二维码区域颜色为黑色;否则为反转颜色表示,即白色对应1,黑色对应0,设定可能的二维码区域颜色为白色。
进一步地,所述进行损坏二维码的译码,具体为:
S21:选取所述二维码图像中的第一二维码区域,进行解码,若解码成功,输出译码结果,若解码失败,结束译码:
S201:根据所述边界点,拟合边界直线,并将所述拟合边界直线按边界追踪的顺序进行排序,相邻边界直线相交的点连接成的首尾相接线段为边界线段;
S202:找出最长的4段边界线段,所述4段最长的边界线段对应的4条边界直线为第一边界线,定义4条所述第一边界线围成的区域为第一二维码区域;
S203:对所述第一二维码区域进行解码,若解码成功,输出译码结果,若解码失败,则跳转到步骤S22;
S22:选取所述二维码图像中的第二二维码区域,进行解码,若解码成功,输出译码结果,若解码失败,结束译码:
S221:定义所述第二二维码区域的位置:找出所述拟合边界直线中,对应的连通的边界点个数最多的3条边界直线,所述3条边界直线为第二边界线,将3条第二边界直线按边界追踪的顺序进行排序,假设存在真正的第4条第二边界直线,使得4条第二边界直线围成的区域为第二二维码区域,真正的第4条第二边界直线记为L4′;
S222:确定假设的第4条第二边界直线,所述假设的第4条第二边界直线记为L4;
S223:确定真正的第4条第二边界直线;
S224:对所述第二二维码区域进行解码,若解码成功,则输出译码结果,若解码失败,则结束译码。
进一步地,所述S222,包括如下步骤:
S2221:计算所述S221中排序的3条第二边界直线中的任意两条相邻直线的交点,如果有一对相邻直线的交点在与寻像图形颜色相同的区域之外或者不存在交点,这对相邻直线按照已经排序的顺序记为L1和L2,3条第二边界直线中余下的那一条直线记为L3,则L4分别与L1和L2相交,且L4与L3平行;
S2222:找出L1上、L2上以及L1和L2之间的距离L3最远的边界点,在过所述最远的边界点且平行于L1或L2的直线上,以所述最远的边界点为开始点,沿远离L3的方向进行扫描,若连续扫描到的与寻像图形颜色不同的点的个数不小于5,则假设这一最远边界点为L4上的点,确定L4。
进一步地,所述S223:包括如下步骤:
S2231:计算所述L4与L1、L2的交点,分别记为P1和P2;
S2232:计算所述P1和P2的纵坐标之差的绝对值│Δy│和横坐标之差的绝对值│Δx│,并且比较大小,比较结果记为F,若│Δy│≤│Δx│,则F=1,否则,F=0;
S2233:在L4上,以P1为起始点,P2为终点,隔1-6个点取一个点作为扫描起始点,将这些点按其到P1的距离由近及远,依次记为M1、M2、…至Mn;按M1、M2、…至Mn的顺序进行扫描;
S2234:当F=1时,在过一个扫描起始点且平行于y轴的直线上,从该扫描起始点朝向靠近L3的方向上进行扫描,找到一个与寻像图形颜色相同的点时或扫描的点到L4的距离不小于第一阈值时,终止这条直线上的扫描,将此与寻像图形颜色相同的点记录为真正边界点;
当F=0时,在过一个扫描起始点且平行于x轴的直线上,从该扫描起始点朝向靠近L3的方向上进行扫描,找到一个与寻像图形颜色相同的点时或扫描的点到L4的距离不小于第一阈值时,终止这条直线上的扫描,将此与寻像图形颜色相同的点记录为真正边界点;
找出以M1、M2、…和Mn为扫描起始点的所有真正边界点,拟合出一条直线,该直线即为L4′;其中第一阈值为4-12个像素,二维码为真知码或Data Matrix码。
与现有技术相比,本发明的有益效果是:
通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据解码方式简单,编码和解码效率高,冗余信息少。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
图1示出了本发明实施例所提供的一种矩阵式二维码的编码方法的流程图;
图2示出了本发明实施例所提供的一种矩阵式二维码的编码方法中的矩阵式二维码的第一结构示意图;
图3示出了本发明实施例所提供的一种矩阵式二维码的编码方法中的数据区域的结构示意图;
图4示出了本发明实施例所提供的一种矩阵式二维码的编码方法的的寻像图形示意图;
图5示出了本发明实施例所提供的一种矩阵式二维码的编码方法中的矩阵式二维码的第二结构示意图;
图6示出了本发明实施例所提供的一种矩阵式二维码的解码方法的流程图;
图7示出了本发明实施例所提供的一种矩阵式二维码的解码方法中的第一二维码区域示意图;
图8示出了本发明实施例所提供的一种矩阵式二维码的解码方法中的第二二维码区域示意图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。
实施例一
参见图1、图2和图3,第一方面,本发明提供一种矩阵二维码的编码方法,包括:
步骤S1,将信息编码转换为数据编码;
本步骤是对输入的信息流或数据流进行分析以确定信息中被编码字符的类型。信息编码包含的编码字符集有:(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,可以计算出信息编码每版本下可以摆放的字节容量L,具体的计算公式为:L=2N2+16N+30。其中,各版本信息编码中都会使用8个字节摆放功能信息,而用其余字节摆放数据码字和纠错码字。
步骤S2,根据数据编码,按照选定的纠错等级和纠错模式生成对应的纠错编码;
在将信息编码为数据编码之后,还需要进一步对编码完成的二进制数据位流按照选定的纠错等级和纠错模式,生成对应的纠错编码。本实施例中应用的纠错编码方式为RS纠错码,采用伽罗华域GF(28),其原本多项式为:
p(X)=X8+X4+X3+X2+X+1
在生成纠错编码时,本实施例首先会对编码数据比特流进行处理,以一固定分段长度将其划分成两种不同类型的块,这样形成的纠错码字长度固定。首先对这两种不同类型的块进行交织,然后根据分块类型、纠错等级、块内信息容量的不同,对其进行不同方式的数据处理。
在生成纠错编码时,本实施例提供了四种不同的纠错等级供选择以满足实用需求。四种纠错等级分别为L,M,Q和H,可恢复的码字比例分别为8%、16%、24%和32%。
步骤S3,计算二维码符号尺寸参数;
其中,计算二维码符号尺寸参数采用如下数学模型:
其中,K为二维码任意边的单元数,M为二维码的版本号,且为正整数。当然,二维码的边长也可以通过得到的编码数据、纠错编码等信息计算得到。
步骤S4,生成缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形,并将功能信息按照预设编码方式转换成二进制数据位流,预设编码方式包括三位编码、四位编码和五位编码中的一种或多种;
步骤S5,根据二维码符号尺寸参数,设置矩形区域,缺省单元设置在矩形区域的一顶点上,列奇偶校验单元设置在缺省单元所在行,行奇偶校验单元设置在缺省单元所在列,矩形区域为N*N的矩阵;
步骤S6,在矩形区域中,将二进制数据位流按预设顺序存储在信息存储单元中,将列奇偶校验码对应存储在列奇偶校验单元中,将行奇偶校验码对应存储在行奇偶校验单元中,将CRC校验码对应存储在CRC校验单元中,将纠错编码和数据编码存储在矩形区域中的其他区域,生成二维码。
本发明提供一种矩阵二维码的编码方法,其技术方案为:将信息编码转换为数据编码;根据数据编码,按照选定的纠错等级和纠错模式生成对应的纠错编码;计算二维码符号尺寸参数;生成缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形,并将功能信息按照预设编码方式转换成二进制数据位流,预设编码方式包括三位编码、四位编码和五位编码中的一种或多种;
根据二维码符号尺寸参数,设置矩形区域,缺省单元设置在矩形区域的一顶点上,列奇偶校验单元设置在缺省单元所在行,行奇偶校验单元设置在缺省单元所在列,矩形区域为N*N的矩阵;在矩形区域中,将二进制数据位流按预设顺序存储在信息存储单元中,将列奇偶校验码对应存储在列奇偶校验单元中,将行奇偶校验码对应存储在行奇偶校验单元中,将CRC校验码对应存储在CRC校验单元中,将纠错编码和数据编码存储在矩形区域中的其他区域,生成二维码。
本发明提供一种矩阵二维码的编码方法,通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据编码方式简单,编码效率高,冗余信息少。
作为本发明的优选实施例,矩形区域包括用于存储数据信息的数据区域和设置在数据区域四周的寻像图形,如图3所示,在数据区域中,用二进制数据位流表示数据,每一模块(即图3中每一方格)代表一个二进制数据位流,用于存储1或0两个二进制数据。本实施例中,N的取值为10,数据区域由(N-2)*(N-2)单元组成,即8*8的单元组成,相应的数据区域包括:
缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形;
其中,缺省单元,设置在由数据区域一顶点上,如图3所示,该缺省单元为图中8X8模块中缺省的一个单元。
列奇偶校验单元包括N-3位列奇偶校验位,用于存储列奇偶校验码;如图3中,j1~j7中分别存储相应列的列奇偶校验码。可以理解地,N-3个列奇偶校验码同为奇校验码或同为偶校验码。
行奇偶校验单元包括N-3位行奇偶校验位,用于存储行奇偶校验码;如图3中,i2~i8中分别存储相应行的行奇偶校验码。可以理解地,N-3个行奇偶校验码同为奇校验码或同为偶校验码。
可以理解地,在同一矩阵式二维码中,行奇偶校验码和列奇偶校验码可以同为奇校验码,也可以同为偶校验码,或者一为奇校验码另一为偶校验码。
CRC校验单元包括8位CRC校验位,用于存储CRC校验码;本实施例中,8位校验码顺序存储在c1~c8中,可以理解地,CRC校验码按预设顺序填充在CRC校验位中。
在实际应用中,先通过行奇偶校验位和列奇偶校验位同时做行奇偶校验和/或列奇偶校验,以实现检错和纠错功能,再通过CRC校验位对信息位进行检查确认。
信息存储单元包括若干位信息位,用于存储二进制数据位流,二进制数据位流为数据信息;
信息存储单元,包括若干位用于存储数据信息的信息位,具体地,信息位15的个数为N2-6N+1。可以理解地,每一信息位中存储一个二进制数据位流。可以理解地,二进制数据位流按预设顺序存放在信息位中,该预设顺序为行与行之间首尾相连的蛇形顺序,剩余的信息位填充0。
其中,N为大于6的整数。
优选地,本实施例中,N的取值为9、10或11。
如图2、图3所示,本实施例中的数据区域的信息位占41位,校验位占22位,编码效率为41/63=65.08。这种采用“一个二维码只表示一个数字”的方法,实际上是直接使用原始数据,即把信息位中的二进制数据直接转换成十进制,就得到了所要传输的信息,并没有对信息位编码。
在实际应用中,需要考虑以一定的编码方式去表示字符,例如:把每个字符编码成4位长的二进制数据,这个二进制数据的不同取值代表不同的字符,如表1所示。编码方式多种多样,若采用表1所示的编码方式,那么41个信息位可以表示10个字符,每个字符占4位,剩余一位补0。则本设计的数据容量为10个数字或大写字母字符。
表1四位编码
字符 | 代码 | 字符 | 代码 |
0 | 0000 | 8 | 1000 |
1 | 0001 | 9 | 1001 |
2 | 0010 | A | 1010 |
3 | 0011 | B | 1011 |
4 | 0100 | C | 1100 |
5 | 0101 | D | 1101 |
6 | 0110 | E | 1110 |
7 | 0111 | F | 1111 |
参见图4,寻像图形包括用于确定图形方向的定位模块、第一L型定位单元、第二L型定位单元和第三L型定位单元,定位模块和第二L型定位单元的顶点设置在矩形区域的一对角线上,第一L型定位单元的一边与第二L型定位单元的一边完全重叠,第二L型定位单元的另一边与第三L型定位单元的一边完全重叠,第一L型定位单元与第三L型定位单元对称设置;
第二L型定位单元的两边长度比例为1:1;若N为偶数,第一L型定位单元与第三L型定位单元的两边长度比例为1:2,若N为奇数,第一L型定位单元与第三L型定位单元的两边长度比例为(N+1)/2:N;
定位模块设置在矩形区域的一顶点上,并与缺省单元相邻;
其中,若N为10,第二L型定位单元的两边长均为10,第一L型定位单元与第三L型定位单元的两边长度比例为1:2,本实施例中,分别为5个单元和10个单元;可以理解地,在寻像过程中,首先找出寻像图形中所有的L型定位单元,然后根据三个相互重叠的L型特征找到符号,进行定位。
由于条码可能会存在被污损或条码识读器识读过程中可能产生差错等情况,为了对这些差错进行检测和纠正,在数据区域内除了设置有用于存储数据的信息位,还需放置用于数据正确传输或纠正部分形式差错的冗余信息,这些冗余信息存放在校验位中。
作为本发明的优选实施例,步骤S6中,二进制数据位流按预设顺序存储在信息存储单元中,具体为:
将二进制数据位流按照选定的纠错模式,生成对应的功能信息纠错编码,其中,二进制数据位流通过将二维码的版本号、选定的纠错等级以及二维码的掩膜信息的二进制数进行组合后得到;
对功能信息纠错编码进行随机化,并转换为功能信息图形;
将功能信息图形对应存储在信息存储单元中。
作为本发明的优选实施例,预设顺序为行与行之间首尾相连的蛇形顺序;
其中,步骤S6中,将二进制数据位流按预设顺序存储在信息存储单元中,具体为:
将二进制数据位流按蛇形顺序从信息位的首行考试依次填充,剩余的信息位填充0;
可以理解地,还可依据客户的需求,可将把信息位15的前20位用来存放“五位编码”的字符,共4个字符,编码方式如表2所示;把剩下的21位用来存放“四位编码”的字符,共5个字符,编码方式如表1所示,剩下一位补0。可以理解地,此时采用四位编码和五位编码组合的预设编码方式对用户信息进行转换处理,形成二进制数据位流,40位信息位可用于存储9个字条,剩余一位补0。
表2五位编码
字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 |
A | 00000 | J | 01001 | S | 10010 | 1 | 11011 |
B | 00001 | K | 01010 | T | 10011 | 2 | 11100 |
C | 00011 | L | 01011 | U | 10100 | 3 | 11101 |
D | 00100 | M | 01100 | V | 10101 | 4 | 11110 |
E | 00101 | N | 01101 | W | 10110 | 5 | 11111 |
F | 00100 | O | 01110 | X | 10111 | ||
G | 00101 | P | 01111 | Y | 11000 | ||
H | 00111 | Q | 10000 | Z | 11001 | ||
I | 01000 | R | 10001 | 0 | 11010 |
其中,步骤S6中,将CRC校验码对应存储在CRC校验单元中,具体为:
将8位CRC校验码按蛇形顺序填充在CRC校验位中。
本实施例中,若二维码信息为ABCDE12345,其CRC生成多项式为1 0000 0111;对应的CRC校验码为1111 0000;行奇偶校验码和列奇偶校验码均为偶校验码;若采用四位编码方式,则其生成的矩阵式二维码如图5所示。本方案中的CRC生成多项式采用标准多项式G(x)=x8+x2+x+1,生成8位的CRC校验码,其检错能力如下(其中r为CRC的长度):
(1)以1-(1/2)r-1=1-(1/2)8-1=99.21875%的概率检测出所有长度等于9位的突发性差错。
(2)以1-(1/2)r=1-(1/2)8-1=99.609375%的概率检测出所有长度大于9位的突发性差错。
(3)可以检测出所有其他形式的差错。
本方案所提供的矩阵式二维码采用奇偶校验和CRC校验结合,具有更高的检错成功率,误码率基本可以忽略。
参见图6,第二方面,本发明提供一种矩阵二维码的解码方法,包括:
步骤S10,对获取的二维码图像进行二值化和降分辨率处理,得到二维码信息;
步骤S20,对比并判断二维码信息是否包括寻像图形,若是执行步骤S30以后的步骤,若否结束译码;
步骤S30,提取二维码信息的信息位中的数据,提取到的数据包括版本号、纠错等级和掩模信息,并读取矩形区域中其他区域中的数据,获得数据编码和纠错编码;
步骤S40,根据掩模信息对数据编码和纠错编码进行去掩模处理,根据纠错编码对数据编码进行纠错得到恢复的编码数据;
步骤S50,根据提取到的数据,计算各列的列奇偶校验码和各行的列奇偶校验码,并分别与放置在列奇偶校验为中的列奇偶校验码和放置在行奇偶校验位中的行奇偶校验码进行比较,判断是否一致,若一致则执行步骤S60的步骤;
步骤S60,利用CRC校验码对通过行列奇偶校验的数据进行CRC校验,若CRC校验通过,则对二维码信息的信息位中的数据进行译码,以结束以码,若否则判定译码失败,结束译码。
本发明提供的矩阵二维码的解码方法,其技术方案为:包括步骤对获取的二维码图像进行二值化和降分辨率处理,得到二维码信息;对比并判断二维码信息是否包括寻像图形,若是继续执行以下步骤,若否结束译码;提取二维码信息的信息位中的数据,提取到的数据包括版本号、纠错等级和掩模信息,并读取矩形区域中其他区域中的数据,获得数据编码和纠错编码;根据掩模信息对数据编码和纠错编码进行去掩模处理,根据纠错编码对数据编码进行纠错得到恢复的编码数据;
根据提取到的数据,计算各列的列奇偶校验码和各行的列奇偶校验码,并分别与放置在列奇偶校验为中的列奇偶校验码和放置在行奇偶校验位中的行奇偶校验码进行比较,判断是否一致,若一致则执行以下步骤;利用CRC校验码对通过行列奇偶校验的数据进行CRC校验,若CRC校验通过,则对二维码信息的信息位中的数据进行译码,以结束以码,若否则判定译码失败,结束译码。
本发明提供一种矩阵二维码的解码方法,通过矩阵式二维码设置行奇偶校验单元、列奇偶校验单元和CRC校验单元对二维码内存储的信息进行校验,交错能力强,且能够纠正某些形式的差错,且无需采用校正图形,条码单元数量少,数据解码方式简单,解码效率高,冗余信息少。
作为本发明的优选实施例,步骤S10还包括,判断获取的二维码图像是否包括二维码信息:
S101:获取携带二维码图像的图像,并对图像进行二值化,得到二值化图像;
S102:以二值化图像的左下角为坐标原点,水平方向为x轴,竖直方向为y轴,建立平面直角坐标系;
S103:找出与可能的二维码区域颜色相同的区域,在颜色相同的区域逐行扫描图像,找到第一个边缘点,以此点为起始点,进行边界跟踪,找出边界点,若连通的边界点的个数不小于168,则判定连通的边界点围成的二维码区域为包括二维码信息的二维码图像,跳转到步骤S20,若连通的边界点的个数不小于100且不大于168,则判定连通的边界点围成的二维码区域为包含不完整二维码信息的二维码图像,进行损坏二维码的译码;
其中,逐行扫描图像时,能够确定可能的二维码区域的颜色表示:如果扫描线上扫描到起始点时,颜色由白变黑,则可能的二维码区域为正常二维码颜色表示,即黑色对应1,白色对应0,设定可能的二维码区域颜色为黑色;否则为反转颜色表示,即白色对应1,黑色对应0,设定可能的二维码区域颜色为白色。
获取的二维码图像通常有的二维码图像破损的情况,会导致二维码译码过程中,有一条边损坏便不能解码,识别能力差,存在边界损坏时,多边形近似容易出错,造成不能解码。基于此,对有损坏的二维码图像进行解码,进行改进,以解决上述问题。
作为本发明的优选实施例,进行损坏二维码的译码,具体为:
S21:选取二维码图像中的第一二维码区域,进行解码,若解码成功,输出译码结果,若解码失败,结束译码:
S201:根据边界点,拟合边界直线,并将拟合边界直线按边界追踪的顺序进行排序,相邻边界直线相交的点连接成的首尾相接线段为边界线段;如图7中所示,一共拟合了六条边界线,分别为A1,A2,A3,A4,A5和A6。
S202:找出最长的4段边界线段,4段最长的边界线段对应的4条边界直线为第一边界线,定义4条第一边界线围成的区域为第一二维码区域;图7中的A1、A2、A3和A4即为第一边界线;
S203:对第一二维码区域进行解码,若解码成功,输出译码结果,若解码失败,则跳转到步骤S22;
S22:选取二维码图像中的第二二维码区域,进行解码,若解码成功,输出译码结果,若解码失败,结束译码:
S221:定义第二二维码区域的位置:找出拟合边界直线中,对应的连通的边界点个数最多的3条边界直线,3条边界直线为第二边界线,将3条第二边界直线按边界追踪的顺序进行排序,假设存在真正的第4条第二边界直线,使得4条第二边界直线围成的区域为第二二维码区域,真正的第4条第二边界直线记为L4′;参见图8。
S222:确定假设的第4条第二边界直线,假设的第4条第二边界直线记为L4;
S223:确定真正的第4条第二边界直线;
S224:对第二二维码区域进行解码,若解码成功,则输出译码结果,若解码失败,则结束译码。
作为本发明的优选实施例,S222,包括如下步骤:
S2221:计算S221中排序的3条第二边界直线中的任意两条相邻直线的交点,如果有一对相邻直线的交点在与寻像图形颜色相同的区域之外或者不存在交点,这对相邻直线按照已经排序的顺序记为L1和L2,3条第二边界直线中余下的那一条直线记为L3,则L4分别与L1和L2相交,且L4与L3平行;
S2222:找出L1上、L2上以及L1和L2之间的距离L3最远的边界点,在过所述最远的边界点且平行于L1或L2的直线上,以所述最远的边界点为开始点,沿远离L3的方向进行扫描,若连续扫描到的与寻像图形颜色不同的点的个数不小于5,则假设这一最远边界点为L4上的点,确定L4。
作为本发明的优选实施例,S223:包括如下步骤:
S2231:计算L4与L1、L2的交点,分别记为P1和P2;
S2232:计算P1和P2的纵坐标之差的绝对值│Δy│和横坐标之差的绝对值│Δx│,并且比较大小,比较结果记为F,若│Δy│≤│Δx│,则F=1,否则,F=0;
S2233:在L4上,以P1为起始点,P2为终点,隔1-6个点取一个点作为扫描起始点,将这些点按其到P1的距离由近及远,依次记为M1、M2、…至Mn;按M1、M2、…至Mn的顺序进行扫描;
S2234:当F=1时,在过一个扫描起始点且平行于y轴的直线上,从该扫描起始点朝向靠近L3的方向上进行扫描,找到一个与寻像图形颜色相同的点时或扫描的点到L4的距离不小于第一阈值时,终止这条直线上的扫描,将此与寻像图形颜色相同的点记录为真正边界点;
当F=0时,在过一个扫描起始点且平行于x轴的直线上,从该扫描起始点朝向靠近L3的方向上进行扫描,找到一个与寻像图形颜色相同的点时或扫描的点到L4的距离不小于第一阈值时,终止这条直线上的扫描,将此与寻像图形颜色相同的点记录为真正边界点;
找出以M1、M2、…和Mn为扫描起始点的所有真正边界点,拟合出一条直线,该直线即为L4′;其中第一阈值为4-12个像素,二维码为真知码或Data Matrix码。
根据真正的边界点,拟合L4′的方法可采用霍夫变换或者最小二乘法。
上述对损坏二维码的解码方法,识别能力强,能够在对易污染、破坏二维码的环境应用,即使破损一条边甚至两条边的情况下,真知码仍然能够正确识别,能够有效扩大二维码的使用范围。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种矩阵式二维码的编码方法,其特征在于,包括:
步骤S1,将信息编码转换为数据编码;
步骤S2,根据所述数据编码,按照选定的纠错等级和纠错模式生成对应的纠错编码;
步骤S3,计算二维码符号尺寸参数;
步骤S4,生成缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形,并将功能信息按照预设编码方式转换成二进制数据位流,所述预设编码方式包括三位编码、四位编码和五位编码中的一种或多种;
步骤S5,根据所述二维码符号尺寸参数,设置矩形区域,所述缺省单元设置在所述矩形区域的一顶点上,所述列奇偶校验单元设置在所述缺省单元所在行,所述行奇偶校验单元设置在所述缺省单元所在列,所述矩形区域为N*N的矩阵;
步骤S6,在所述矩形区域中,将所述二进制数据位流按预设顺序存储在所述信息存储单元中,将列奇偶校验码对应存储在所述列奇偶校验单元中,将行奇偶校验码对应存储在所述行奇偶校验单元中,将CRC校验码对应存储在所述CRC校验单元中,将所述纠错编码和所述数据编码存储在所述矩形区域中的其他区域,生成二维码。
2.根据权利要求1所述的矩阵式二维码的编码方法,其特征在于,
所述矩形区域包括用于存储数据信息的数据区域和设置在所述数据区域四周的寻像图形,所述数据区域由(N-2)*(N-2)单元组成,包括:缺省单元、列奇偶校验单元、行奇偶校验单元、CRC校验单元、信息存储单元和寻像图形;
其中,所述列奇偶校验单元包括N-3位列奇偶校验位,用于存储所述列奇偶校验码;
所述行奇偶校验单元包括N-3位行奇偶校验位,用于存储所述行奇偶校验码;
所述CRC校验单元包括8位CRC校验位,用于存储所述CRC校验码;
所述信息存储单元包括若干位信息位,用于存储所述二进制数据位流,所述二进制数据位流为数据信息;
所述寻像图形包括用于确定图形方向的定位模块、第一L型定位单元、第二L型定位单元和第三L型定位单元,所述定位模块和所述第二L型定位单元的顶点设置在所述矩形区域的一对角线上,所述第一L型定位单元的一边与所述第二L型定位单元的一边完全重叠,所述第二L型定位单元的另一边与所述第三L型定位单元的一边完全重叠,所述第一L型定位单元与所述第三L型定位单元对称设置;
所述第二L型定位单元的两边长度比例为1:1;若N为偶数,所述第一L型定位单元与所述第三L型定位单元的两边长度比例为1:2,若N为奇数,所述第一L型定位单元与所述第三L型定位单元的两边长度比例为(N+1)/2:N;
所述定位模块设置在所述矩形区域的一顶点上,并与所述缺省单元相邻;
其中,N为大于6的整数。
3.根据权利要求1所述的矩阵式二维码的编码方法,其特征在于,
所述步骤S3中,所述计算二维码符号尺寸参数采用如下数学模型:
<mrow>
<mi>K</mi>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mn>19</mn>
<mo>+</mo>
<mn>4</mn>
<mo>&times;</mo>
<mi>M</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mn>1</mn>
<mo>&le;</mo>
<mi>M</mi>
<mo>&le;</mo>
<mn>5</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mn>21</mn>
<mo>+</mo>
<mn>4</mn>
<mo>&times;</mo>
<mi>M</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mn>6</mn>
<mo>&le;</mo>
<mi>M</mi>
<mo>&le;</mo>
<mn>30</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,K为所述二维码任意边的单元数,M为所述二维码的版本号,且为正整数。
4.根据权利要求3所述的矩阵式二维码的编码方法,其特征在于,
所述步骤S6中,所述二进制数据位流按预设顺序存储在所述信息存储单元中,具体为:
将所述二进制数据位流按照所述选定的纠错模式,生成对应的功能信息纠错编码,其中,所述二进制数据位流通过将所述二维码的版本号、所述选定的纠错等级以及所述二维码的掩膜信息的二进制数进行组合后得到;
对所述功能信息纠错编码进行随机化,并转换为功能信息图形;
将所述功能信息图形对应存储在所述信息存储单元中。
5.根据权利要求2所述的矩阵式二维码的编码方法,其特征在于:
所述预设顺序为行与行之间首尾相连的蛇形顺序;
其中,所述步骤S6中,将所述二进制数据位流按预设顺序存储在所述信息存储单元中,具体为:
将所述二进制数据位流按所述蛇形顺序从所述信息位的首行考试依次填充,剩余的信息位填充0;
其中,所述步骤S6中,将CRC校验码对应存储在所述CRC校验单元中,具体为:
将所述8位CRC校验码按所述蛇形顺序填充在所述CRC校验位中。
6.一种基于权利要求1-5任一项所述矩阵式二维码的编码方法对应的解码方法,其特征在于,包括:
步骤S10,对获取的二维码图像进行二值化和降分辨率处理,得到二维码信息;
步骤S20,对比并判断所述二维码信息是否包括寻像图形,若是执行步骤S30以后的步骤,若否结束译码;
步骤S30,提取所述二维码信息的信息位中的数据,提取到的数据包括版本号、纠错等级和掩模信息,并读取矩形区域中其他区域中的数据,获得数据编码和纠错编码;
步骤S40,根据所述掩模信息对所述数据编码和纠错编码进行去掩模处理,根据纠错编码对所述数据编码进行纠错得到恢复的编码数据;
步骤S50,根据所述提取到的数据,计算各列的列奇偶校验码和各行的列奇偶校验码,并分别与放置在列奇偶校验为中的列奇偶校验码和放置在行奇偶校验位中的行奇偶校验码进行比较,判断是否一致,若一致则执行步骤S60的步骤;
步骤S60,利用CRC校验码对通过行列奇偶校验的数据进行CRC校验,若CRC校验通过,则对所述二维码信息的信息位中的数据进行译码,以结束以码,若否则判定译码失败,结束译码。
7.根据权利要求6所述的解码方法,其特征在于,
所述步骤S10还包括,判断获取的所述二维码图像是否包括二维码信息:
S101:获取携带二维码图像的图像,并对所述图像进行二值化,得到二值化图像;
S102:以所述二值化图像的左下角为坐标原点,水平方向为x轴,竖直方向为y轴,建立平面直角坐标系;
S103:找出与可能的二维码区域颜色相同的区域,在颜色相同的区域逐行扫描图像,找到第一个边缘点,以此点为起始点,进行边界跟踪,找出边界点,若连通的边界点的个数不小于168,则判定所述连通的边界点围成的二维码区域为包括二维码信息的二维码图像,跳转到步骤S20,若连通的边界点的个数不小于100且不大于168,则判定所述连通的边界点围成的二维码区域为包含不完整二维码信息的二维码图像,进行损坏二维码的译码;
其中,逐行扫描图像时,能够确定可能的二维码区域的颜色表示:如果扫描线上扫描到起始点时,颜色由白变黑,则可能的二维码区域为正常二维码颜色表示,即黑色对应1,白色对应0,设定可能的二维码区域颜色为黑色;否则为反转颜色表示,即白色对应1,黑色对应0,设定可能的二维码区域颜色为白色。
8.根据权利要求7所述的解码方法,其特征在于,
所述进行损坏二维码的译码,具体为:
S21:选取所述二维码图像中的第一二维码区域,进行解码,若解码成功,输出译码结果,若解码失败,结束译码:
S201:根据所述边界点,拟合边界直线,并将所述拟合边界直线按边界追踪的顺序进行排序,相邻边界直线相交的点连接成的首尾相接线段为边界线段;
S202:找出最长的4段边界线段,所述4段最长的边界线段对应的4条边界直线为第一边界线,定义4条所述第一边界线围成的区域为第一二维码区域;
S203:对所述第一二维码区域进行解码,若解码成功,输出译码结果,若解码失败,则跳转到步骤S22;
S22:选取所述二维码图像中的第二二维码区域,进行解码,若解码成功,输出译码结果,若解码失败,结束译码:
S221:定义所述第二二维码区域的位置:找出所述拟合边界直线中,对应的连通的边界点个数最多的3条边界直线,所述3条边界直线为第二边界线,将3条第二边界直线按边界追踪的顺序进行排序,假设存在真正的第4条第二边界直线,使得4条第二边界直线围成的区域为第二二维码区域,真正的第4条第二边界直线记为L4′;
S222:确定假设的第4条第二边界直线,所述假设的第4条第二边界直线记为L4;
S223:确定真正的第4条第二边界直线;
S224:对所述第二二维码区域进行解码,若解码成功,则输出译码结果,若解码失败,则结束译码。
9.根据权利要求8所述的解码方法,其特征在于,
所述S222,包括如下步骤:
S2221:计算所述S221中排序的3条第二边界直线中的任意两条相邻直线的交点,如果有一对相邻直线的交点在与寻像图形颜色相同的区域之外或者不存在交点,这对相邻直线按照已经排序的顺序记为L1和L2,3条第二边界直线中余下的那一条直线记为L3,则L4分别与L1和L2相交,且L4与L3平行;
S2222:找出L1上、L2上以及L1和L2之间的距离L3最远的边界点,在过所述最远的边界点且平行于L1或L2的直线上,以所述最远的边界点为开始点,沿远离L3的方向进行扫描,若连续扫描到的与寻像图形颜色不同的点的个数不小于5,则假设这一最远边界点为L4上的点,确定L4。
10.根据权利要求8所述的解码方法,其特征在于,
所述S223:包括如下步骤:
S2231:计算所述L4与L1、L2的交点,分别记为P1和P2;
S2232:计算所述P1和P2的纵坐标之差的绝对值│Δy│和横坐标之差的绝对值│Δx│,并且比较大小,比较结果记为F,若│Δy│≤│Δx│,则F=1,否则,F=0;
S2233:在L4上,以P1为起始点,P2为终点,隔1-6个点取一个点作为扫描起始点,将这些点按其到P1的距离由近及远,依次记为M1、M2、…至Mn;按M1、M2、…至Mn的顺序进行扫描;
S2234:当F=1时,在过一个扫描起始点且平行于y轴的直线上,从该扫描起始点朝向靠近L3的方向上进行扫描,找到一个与寻像图形颜色相同的点时或扫描的点到L4的距离不小于第一阈值时,终止这条直线上的扫描,将此与寻像图形颜色相同的点记录为真正边界点;
当F=0时,在过一个扫描起始点且平行于x轴的直线上,从该扫描起始点朝向靠近L3的方向上进行扫描,找到一个与寻像图形颜色相同的点时或扫描的点到L4的距离不小于第一阈值时,终止这条直线上的扫描,将此与寻像图形颜色相同的点记录为真正边界点;
找出以M1、M2、…和Mn为扫描起始点的所有真正边界点,拟合出一条直线,该直线即为L4′;其中第一阈值为4-12个像素,二维码为真知码或Data Matrix码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710852224.9A CN107545289A (zh) | 2017-09-19 | 2017-09-19 | 矩阵式二维码的编码方法及解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710852224.9A CN107545289A (zh) | 2017-09-19 | 2017-09-19 | 矩阵式二维码的编码方法及解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107545289A true CN107545289A (zh) | 2018-01-05 |
Family
ID=60963385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710852224.9A Pending CN107545289A (zh) | 2017-09-19 | 2017-09-19 | 矩阵式二维码的编码方法及解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107545289A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108507596A (zh) * | 2018-03-05 | 2018-09-07 | 中国科学院上海光学精密机械研究所 | 二维gold矩阵绝对位置编码方法及其解码方法 |
CN108629391A (zh) * | 2018-05-10 | 2018-10-09 | 佛山市博知盾识科技有限公司 | 彩码编解码方法、系统和设备 |
CN109063806A (zh) * | 2018-07-17 | 2018-12-21 | 深圳市零点零科技有限公司 | 一种长条小型二维码编码方法 |
CN109117919A (zh) * | 2018-11-14 | 2019-01-01 | 苏州巨能图像检测技术有限公司 | 应用于码头贝位号识别的图像编码方法 |
CN109902242A (zh) * | 2019-02-28 | 2019-06-18 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种二维码内的图片存储方法 |
CN109902530A (zh) * | 2019-03-04 | 2019-06-18 | 厦门商集网络科技有限责任公司 | 一种二维码解码方法及终端 |
CN109919278A (zh) * | 2019-02-28 | 2019-06-21 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种对称图形二维码的定向方法 |
CN110995394A (zh) * | 2019-11-30 | 2020-04-10 | 国网辽宁省电力有限公司锦州供电公司 | 数据信息二维crc校验方法 |
CN111457947A (zh) * | 2020-05-13 | 2020-07-28 | 新里程医用加速器(无锡)有限公司 | 位置编码系统及编码方法和装置、电子设备和存储介质 |
CN113485866A (zh) * | 2021-07-02 | 2021-10-08 | 海光信息技术股份有限公司 | 译码方法及相关装置、电子设备和存储介质 |
CN113673655A (zh) * | 2021-10-22 | 2021-11-19 | 北京紫光青藤微系统有限公司 | 用于确定二维码解码方向的方法及装置、电子设备、介质 |
CN115037414A (zh) * | 2022-05-31 | 2022-09-09 | 江苏屹信航天科技有限公司 | 基于crc的纠错解码的方法、装置、终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131368A1 (en) * | 2007-02-07 | 2010-05-27 | Peachinc Limited | Method and Apparatus for Detecting a Two Dimensional Data Matrix |
CN102999772A (zh) * | 2012-11-14 | 2013-03-27 | 韩偲铭 | 一种新型矩阵式二维码的编解码方法 |
CN104636780A (zh) * | 2015-01-30 | 2015-05-20 | 深圳市民德电子科技有限公司 | 矩阵式二维码及其编码方法和译码方法 |
CN104657700A (zh) * | 2015-03-25 | 2015-05-27 | 广州宽度信息技术有限公司 | 一种二维码抗损坏解码方法 |
-
2017
- 2017-09-19 CN CN201710852224.9A patent/CN107545289A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131368A1 (en) * | 2007-02-07 | 2010-05-27 | Peachinc Limited | Method and Apparatus for Detecting a Two Dimensional Data Matrix |
CN102999772A (zh) * | 2012-11-14 | 2013-03-27 | 韩偲铭 | 一种新型矩阵式二维码的编解码方法 |
CN104636780A (zh) * | 2015-01-30 | 2015-05-20 | 深圳市民德电子科技有限公司 | 矩阵式二维码及其编码方法和译码方法 |
CN104657700A (zh) * | 2015-03-25 | 2015-05-27 | 广州宽度信息技术有限公司 | 一种二维码抗损坏解码方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108507596A (zh) * | 2018-03-05 | 2018-09-07 | 中国科学院上海光学精密机械研究所 | 二维gold矩阵绝对位置编码方法及其解码方法 |
CN108507596B (zh) * | 2018-03-05 | 2020-06-30 | 中国科学院上海光学精密机械研究所 | 二维gold矩阵绝对位置编码方法及其解码方法 |
CN108629391B (zh) * | 2018-05-10 | 2021-09-03 | 品冠物联科技(惠州市)有限公司 | 彩码编解码方法、系统和设备 |
CN108629391A (zh) * | 2018-05-10 | 2018-10-09 | 佛山市博知盾识科技有限公司 | 彩码编解码方法、系统和设备 |
CN109063806A (zh) * | 2018-07-17 | 2018-12-21 | 深圳市零点零科技有限公司 | 一种长条小型二维码编码方法 |
CN109117919A (zh) * | 2018-11-14 | 2019-01-01 | 苏州巨能图像检测技术有限公司 | 应用于码头贝位号识别的图像编码方法 |
CN109902242A (zh) * | 2019-02-28 | 2019-06-18 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种二维码内的图片存储方法 |
CN109919278A (zh) * | 2019-02-28 | 2019-06-21 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种对称图形二维码的定向方法 |
CN109919278B (zh) * | 2019-02-28 | 2023-07-04 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种对称图形二维码的定向方法 |
CN109902242B (zh) * | 2019-02-28 | 2021-09-21 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种二维码内的图片存储方法 |
CN109902530A (zh) * | 2019-03-04 | 2019-06-18 | 厦门商集网络科技有限责任公司 | 一种二维码解码方法及终端 |
CN109902530B (zh) * | 2019-03-04 | 2022-04-19 | 厦门商集网络科技有限责任公司 | 一种二维码解码方法及终端 |
CN110995394A (zh) * | 2019-11-30 | 2020-04-10 | 国网辽宁省电力有限公司锦州供电公司 | 数据信息二维crc校验方法 |
CN111457947A (zh) * | 2020-05-13 | 2020-07-28 | 新里程医用加速器(无锡)有限公司 | 位置编码系统及编码方法和装置、电子设备和存储介质 |
CN111457947B (zh) * | 2020-05-13 | 2021-11-19 | 新里程医用加速器(无锡)有限公司 | 位置编码系统及编码方法和装置、电子设备和存储介质 |
CN113485866A (zh) * | 2021-07-02 | 2021-10-08 | 海光信息技术股份有限公司 | 译码方法及相关装置、电子设备和存储介质 |
CN113485866B (zh) * | 2021-07-02 | 2023-05-09 | 海光信息技术股份有限公司 | 译码方法及相关装置、电子设备和存储介质 |
CN113673655A (zh) * | 2021-10-22 | 2021-11-19 | 北京紫光青藤微系统有限公司 | 用于确定二维码解码方向的方法及装置、电子设备、介质 |
CN115037414A (zh) * | 2022-05-31 | 2022-09-09 | 江苏屹信航天科技有限公司 | 基于crc的纠错解码的方法、装置、终端 |
CN115037414B (zh) * | 2022-05-31 | 2023-12-22 | 江苏屹信航天科技有限公司 | 基于crc的纠错解码的方法、装置、终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107545289A (zh) | 矩阵式二维码的编码方法及解码方法 | |
CN102999772B (zh) | 一种新型矩阵式二维码的编解码方法 | |
CN100369059C (zh) | 一种矩阵式二维条码及其编码解码方法 | |
CN105447546B (zh) | 可嵌入大比例图形的二维码及其编码和解码方法和设备 | |
CN103400174B (zh) | 一种二维码的编码方法、解码方法及系统 | |
EP0783160B1 (en) | Method for reading a clock free two-dimensional barcode | |
CN102243712B (zh) | 彩色条码的生成方法及系统、彩色条码的解析方法及系统 | |
CN104636780B (zh) | 矩阵式二维码及其编码方法和译码方法 | |
CN106845593A (zh) | 一种矩形固定点阵信息编解码方法 | |
US8360333B2 (en) | HD barcode | |
WO2008058480A1 (fr) | Code bidimensionnel, procédé de décodage de celui-ci et publication d'impression pour appliquer un code bidimensionnel | |
CN102930192A (zh) | 安全信息生成和获取方法、及相关装置 | |
CN102999773B (zh) | 一种彩色格点码图及其三维条码编码方法 | |
KR100729824B1 (ko) | 이미지 코드 생성 장치 및 그 방법과 이미지 코드 디코딩장치 및 그 방법 | |
CN111046996B (zh) | 一种彩色qr码生成和识别方法 | |
CN105989389A (zh) | 一种二维码 | |
CN107563477A (zh) | 二维码及其生成方法和装置 | |
CN107563475A (zh) | 一种二维码的编码方法和装置 | |
CN110991589A (zh) | 一种二维码及其加密方法 | |
US20240086670A1 (en) | Methods for constructing, generating, and reading dot-matrix code, dot-matrix code generating and reading terminals, and dot-matrix code system | |
CN101303742A (zh) | 微小型汉信码及其符号的生成方法 | |
Wu et al. | Covert communication via the QR code image by a data hiding technique based on module shape adjustments | |
CN100504912C (zh) | 二维条码符号的生成方法 | |
Feng et al. | Design and realization of 2D color barcode with high compression ratio | |
CN102254204A (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 |