CN112001469A - 一种二维码编码方法、解码方法和二维码 - Google Patents
一种二维码编码方法、解码方法和二维码 Download PDFInfo
- Publication number
- CN112001469A CN112001469A CN202010807008.4A CN202010807008A CN112001469A CN 112001469 A CN112001469 A CN 112001469A CN 202010807008 A CN202010807008 A CN 202010807008A CN 112001469 A CN112001469 A CN 112001469A
- Authority
- CN
- China
- Prior art keywords
- dimensional code
- data
- area
- blank
- locator
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims description 8
- 238000012937 correction Methods 0.000 description 23
- 238000013507 mapping Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019504 cigarettes Nutrition 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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/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
-
- 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
- G06K19/06075—Constructional details the marking containing means for error correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种二维码编码方法,包括S1、对原始数据信息进行编码,得到编码信息;S2、对编码信息进行加密;S3、生成四个定位符,包括三个普通定位符和一个方向定位符;S4、将四个定位符分别放置在二维码区域的四个顶角位置;S5、将加密后的编码信息填充到二维码区域除定位符以外的其他区域,形成一个N行M列的二维码,其中M≥4,N≥4;所述编码信息填充的区域包括数据位和空白位,所述数据位和空白位在竖直方向和水平方向均间隔排布。本发明同时提供一种解码方法和二维码,本发明中的二维码能够根据产品表面形状修改尺寸,能提高识别准确率和识别效率,适用于快速流水线作业。
Description
技术领域
本发明属于编解码技术领域,更具体地说,涉及一种二维码编码方法、解码方法和二维码。
背景技术
二维码是在两个维度上编码信息的机器可读的图案,QR二维码(Quick Response,矩阵二维码符号)是现在最广泛应用的二维码,具有信息容量大,纠错能力强的优点,但是,QR二维码都是正方形的,而且最小的QR二维码也有21码元x21码元,对于有些二维码图像大小受限的场景,由于每个码元能占用的面积太小以至于摄像头难以分辨,例如在一个共享书柜中的所有书籍侧面都贴有代表各自信息的二维码供摄像头扫描的情况,这样的情况下正方形的二维码是无法使用的。因此,开发出一种尺寸比例可任意调整的二维码,显得十分必要。
申请公布日为2018年12月21日,申请公布号为CN109063806A,专利名称为一种长条小型二维码编码方法的中国专利公开了一种技术方案,包括:根据数据信息从左至右和从上至下分别生成多列码元和多行码元;在多行码元中设置数据编码行、检验与掩码行、定位图形、空白行以及下位行;根据多种掩码方法,将多个数据编码行进行掩码,根据确定的两个奇偶校验码元生成多个二维码;将生成的多个二维码进行惩罚数计算,选择惩罚数最低的二维码作为最终的二维码。该发明通过生成一种只带一个定位图形的二维码即可定位扫描图像中的二维码,节省了空间,非常适用于信息量少、空间受限以及图像中存在多个二维码需要同时识别的场景。该技术方案存在的问题在于惩罚数计算成本很高,如果二维码尺寸非常大的话,对于每个二维码进行四次横向遍历、四次纵向遍历计算的时间成本就会大大增加。而且,该技术方案采用了坐标转换的方法,如果二维码是倾斜的,而图像像素是横平竖直的,一旦发生像素转换,那么像素坐标就会扭曲,对于极小型的二维码来说,一两个像素的偏差就有可能导致计算结果出问题。
发明内容
1.要解决的问题
针对现有技术中长方形的二维码计算复杂而且容易出错等问题,本发明提供一种二维码编码方法、解码方法和二维码,二维码的尺寸比例可以任意调整,可以根据使用场景选择合适的比例。
2.技术方案
为了解决上述问题,本发明所采用的技术方案如下:一种二维码编码方法,包括以下步骤:
S1、对原始数据信息进行编码,得到编码信息;
S2、对编码信息进行加密;
S3、生成四个定位符,包括3个普通定位符和1个方向定位符;
S4、将四个定位符分别放置在二维码区域的四个顶角位置;
S5、将加密后的编码信息填充到二维码区域除定位符以外的其他区域,形成一个N行M列的二维码,其中M≥4,N≥4;所述编码信息填充的区域包括数据位和空白位,所述数据位和空白位在竖直方向和水平方向均间隔排布。
本技术方案在进行编码信息的排布时将数据位和空白位间隔排布,有效降低了识别算法难度,而且利用本技术方案中的编码方法生成的二维码能够根据需要任意调整比例,适用于各种场景,能够提高识别准确率,极大地提高识别效率,十分适用于快速流水线作业的场合。
进一步地,还包括以下步骤:在所述二维码区域四周设置空白区域,所述空白区域的宽度不小于2个最小单元的宽度。在二维码区域四周设置空白区域,能够使二维码的颜色和商品表面的背景色区别开来,便于更快地实现对二维码所在区域的定位,更好地提高识别效率。
进一步地,所述编码信息包括格式码、数据码和纠错码,所述格式码加数据码的长度和纠错码的长度比例根据二维码的纠错等级确定。
进一步地,所述方向定位符均为黑色,所述普通定位符靠近空白区域的角为黑色,其他区域为白色,所述定位符大小为3个最小单元,包括二维码区域靠近空白区域的角的1个最小单元,以及与该角的最小单元相邻的2个最小单元。本技术方案中定位符的颜色设置可以更快地定位二维码所在区域,进一步提高二维码识别效率。
进一步地,所述数据区的奇数行以空白位开始;所述数据区的偶数行以数据位开始。
进一步地,还包括在二维码数据位上增加蒙版。本技术方案能够使二维码的数据位呈现的黑色区域更均匀。
本发明还提供一种二维码解码方法,包括以下步骤:
S1、获取二维码图像,对二维码图像进行二值化处理得到黑白的二维码图像;
S2、定位黑白的二维码图像中的4个定位符;
S3、根据定位符计算最小单元的尺寸;
S4、根据定位符确定二维码所在区域,将二维码所在区域去掉4个定位符,得到二维码数据区;
S5、读取二维码数据区的编码信息并进行解密得到数据码、格式码和纠错码;
S6、利用格式码和纠错码对数据码进行解码并纠错,得到原始数据信息。
进一步地,所述步骤S4包括以下步骤:
S41、根据二维码所在区域得到一个矩形,用该矩形的面积除以最小单元的尺寸,得到二维码的计算尺寸N’行M’列,其中,N’是二维码的计算行数,M’是二维码的计算列数,;
S42、根据普通定位符和方向定位符确定二维码方向,根据计算行数N’与计算列数M’,绘制一个x行y列的二维码网格,根据数据位排布规则与定位符所在位置,确定数据位与空白位的排布情况,计算得到空白位的总数量;
S43、用识别出的该x行y列的二维码网格中的空白位颜色为白色的最小单元的数量除以总的空白位的最小单元的数量,得到一个比值z,如果z>90%,则认为x行y列的二维码网格是真正的二维码,否则继续调整x、y。
进一步地,所述步骤S32包括以下步骤:
判断x行y列的二维码网格中一个最小单元的中心区域d*d范围内的像素,若黑色区域占比a>c%,则认定该最小单元为黑色,否则该最小单元为白色,从而得到数据位与空白位的排布情况,其中,c%是黑色区域判定阈值,其取值需要根据实际应用场景,结合生产应用时的光线、背景色与数据位颜色对比度、摄像头像素、摄像头与二维码的距离等因素共同决定。
本发明还包括一种二维码,包括定位符区、数据区,所述定位符区包括四个定位符,分别分布在二维码的四个角上,所述定位符包括方向定位符和普通定位符,所述数据区包括数据位和空白位,所述数据位和空白位在竖直方向和水平方向均间隔排布,在所述二维码的周边还设有空白区域,所述空白区域的宽度不小于2个最小单元的宽度。本技术方案中的二维码能够被快速识别,十分适用于快速流水线作业的场合。
3.有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明中的二维码编码方法能够提高二维码的识别准确率和识别效率,十分适用于快速流水线作业的场合;
(2)本发明中二维码尺寸比例N、M可以根据用户的使用环境任意调整,即在进行二维码尺寸设计的时候,首先确定了数据内容与格式,以及纠错等级,从而确定了数据码、格式码和纠错码总共有多少位,然后就可以根据表面形状对二维码的尺寸进行调整;当M>N时,二维码的形状为长方形,其能够很好地应用于书籍、香烟侧面等物品表面;
(3)本发明有效降低了识别算法难度,实现起来简单,识别速度极大提高。
附图说明
图1为本发明的方向定位符示意图(定位符位于二维码左上角);
图2为本发明的普通定位符示意图(定位符位于二维码右上角);
图3为本发明的普通定位符示意图(定位符位于二维码左下角);
图4为本发明的普通定位符示意图(定位符位于二维码右下角);
图5为本发明的二维码示意图(带数据编码);
图6为本发明中x、y取值正确时所取得的二维码网格示意图;
图7为本发明中x、y取值有误时所取得的二维码网格示意图。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。
如图5所示,本发明的中的二维码为网格状点阵码,编码设计行、列数量均大于4,二维码的四条边周围必须有空白区域,具体实施时,空白区域的宽度可以为大于等于(即不小于)2个最小单元(即图5中最小的一个方块,也叫“格”或“网格”)的宽度,本实施例中,空白区域的宽度为3个格。设置空白区域的好处在于便于将二维码和背景颜色区分开来,进一步提高二维码的识别效率。
本发明中的二维码包括定位符区、数据区,并且在二维码的四周设置有空白区域,定位符区包括四个定位符,定位符分别位于整个二维码的四个角上,四个定位符中包括方向定位符和普通定位符,方向定位符的作用是确定当前二维码的编码顺序,即确定当前二维码的起始位和结束位,普通定位符的作用是确定二维码编码信息所在区域的位置,在本实施例中,方向定位符为一个,如图1所示;普通定位符有三个,分别如图2、图3和图4所示;空白区域设置在二维码的四周,以便将二维码与背景颜色区分开来,以便于二维码的识别;数据区即编码信息填充的区域,是二维码区域中除定位符以外的其他区域,数据区包括空白位和数据位,空白位和数据位在竖直方向和水平方向均间隔排布,数据位存储数据,空白位不存储数据。具体实施时,数据位存储的数值为1时候的颜色的灰度远大于空白区域与空白位,其可以是黑色、灰色、红色等与白色有明显区别的颜色,以便在解码时方便进行二值化处理。另外,定位符中的最小单元的颜色包括白色位和颜色位,颜色位可以是黑色、灰色、红色等与白色有明显区别的颜色。需要说明的是,当数据位存储的数据为0时,该数据位的颜色与空白位颜色相同。在本实施例中,数据位存储的数值为1时候的颜色为黑色,数据位存储的数值为0时候的颜色以及空白位、空白区域的颜色为白色。
本实施例以二维码大小为N*M(其中,M为列数,M≥4,N为行数,N≥4)来进行说明,每一个定位符的大小设计为3个格,分别为二维码区域靠近空白区域的角的一个最小单元以及与该角的最小单元相邻的两个最小单元,定位符中的最小单元包括黑色位(本实施例中定位符的颜色位为黑色,但是具体实施时,也可以是黑色、灰色、红色等与白色有明显区别的颜色,只要该种颜色在进行二值化之后和白色具有明显区别即可,以便在二维码图像进行二值化处理后能够明确分辨出定位符的空白位和颜色位)和白色位,其中,黑色位应当满足以下几个条件:
定位符(包括方向定位符和普通定位符)中离数据区最远的一个角上的一个最小单元为黑色;方向定位符中靠近空白区域的边缘部分的最小单元均为黑色;除此之外,定位符的其他任何区域均为白色。
下面举例来进行说明,如图1、图2、图3和图4所示,其中图1为方向定位符,位置在二维码的左上角,图1中的定位符三个最小单元均为黑色;图2、图3和图4均为普通的定位符,分别在二维码的右上、左下、右下四个角落,在这三个定位符中,只有角上的最小单元为黑色,其他两个最小单元均为白色。
数据区包括数据位、空白位;如图5所示中带有数字编号的部分为数据位,没有编号的白色部分为空白位。需要说明的是,虽然图5示出的带有编号的数据位部分没有颜色,但具体实施时,数据位部分应该有颜色,且进行二值化处理后的数据位的颜色的灰度远大于空白区域与空白位进行二值化处理后的颜色。
本实施例中数据区的编号从1开始,按照自然数的递增依次编码,其规律满足:奇数行的数据区以空白位开始;偶数行的数据区以数据位开始;当排列空白位与数据位时遇到定位符,则不予排布。以便于在进行二维码的读取时,更快地将数据区识别出来。
本发明中二维码中的最小单位(也称为“格”)是指一个数据位或空白位,其面积大小可以由用户任意设置,但需要根据扫码时摄像头与二维码的距离与摄像头分辨率来确定,从而保证摄像头拍摄出来的图片清晰可识别。
本发明中的编码信息包括格式信息、数据信息和纠错信息。
格式信息
本实施例中格式信息为4位,包含编码字符集,如表(1)所示,提供三种字符集。具体实施时应当根据实际需要选择合适的格式信息与字符集。
表(1)
序号 | 格式信息 | 定义 |
1 | 0001 | 数字型字符集 |
2 | 0010 | 字母数字型字符集 |
3 | 0011 | 双数字型字符集 |
表(1)中的三种字符集,分别为:
(1)如果格式信息为0001,则格式信息0001后面的字符每四位表示一个数字型数据(数字0~9);
(2)如果格式信息为0010,则格式信息0010后面的字符每六位表示一个字母数字型数据(数字0~9;大写字母A~Z;9个其他字符:space、$、%、*、+、-、.、/、:);
(3)如果格式信息为0011,则格式信息0011后面的字符每七位表示一个双数字型数据(数字0~99)。
纠错信息
编码采用RS(Reed-Solomon,里所)算法纠错,根据实际应用情况可以任意选择纠错等级,若纠错等级为p,数据长度为X,则纠错码长度Y=2*p%*X/(1-2*p),以纠错等级p=25%为例,若数据长度为X,则纠错码长度Y=2*25%*X/(1-2*25%)=X,这种情况下,可以容忍25%的数据错误,即在这样的数据长度和纠错码长度下,允许25%的数据出错,更明确地说,即便存在25%长度的数据出错的情况,二维码也可以准确识别。数据长度X指的是二维码的编码信息中除纠错码之外的数据长度,需要说明的是,图5中所示的本实施例中的19表示的是包括了格式码、纠错码和存储数据的长度,即本实施例中的19包括了数据长度和纠错码的长度。纠错等级根据应用场景以及拍摄环境决定。如果仅应用于流水线作业或者拍摄质量稳定,那么纠错等级可以很低,如果涉及人工手持拍摄,或者光源、拍摄水平、拍摄质量不稳定,那么纠错等级就需要提高。具体实施时,纠错等级p可以由用户根据实际使用情况自行设置。
2、对编码信息进行加密
在对数据信息完成编码后,在本实施例中采用二进制编码,需要将编码信息存入数据区的数据位中。为起到数据的保密,需要对编码信息进行加密处理。通过设计加密函数H(N,M,k)将对应数据位进行加密处理,其中,1≤k≤(X+Y)且k为整数,即k的取值范围为1至编码长度,即长度包括格式码、数据码、纠错码在内的编码的长度,以达到对编码信息进行加密的效果。需要说明的是,本发明中的加密函数不唯一,但应当同时满足以下条件:
(1)能够正向运算、反向运算;
(2)函数的定义域与值域相同,为1至(X+Y)之间的所有整数。
(3)在N、M确定的前提下,加密函数H(N,M,k)运算结果h与k参数的取值唯一对应。
例如,以k取值范围为0至少9为例设计加密函数H(N,M,k),通过函数各数据位数上的数字进行映射得到新的数据位:0映射1;1映射3;2映射5;3映射7;4映射9;5映射2;6映射4;7映射6;8映射8;9映射0。
3、生成四个定位符
本发明中的定位符包括普通定位符和方向定位符,普通定位符和方向定位符一共有4个,排布在二维码的四个顶角。定位符大小为三个最小单元,分别为二维码的顶角一个最小单元以及与该顶角的最小单元横竖相邻的两个最小单元,其中,方向定位符只有一个。
在4个定位符中,方向定位符均为黑色,普通定位符靠近空白区域的角为黑色,其他区域为白色,如图1、图2、图3和图4所示。
4、将四个定位符分别放置在二维码区域的四个顶角位置,形成一个如图5所示的二维码。
5、将加密后的编码信息填充到二维码区域除定位符以外的其他区域,形成一个N行M列的二维码;其中M≥4,N≥4。在进行编码信息的填充时,编码信息填充的区域包括数据位和空白位,数据位和空白位在竖直方向和水平方向均间隔排布。
6、蒙版
具体实施时,为保证二维码外形美观,避免大范围空白与大范围数据位为黑色的情况存在,使二维码的数据位呈现的黑色区域更均匀,还可以增加蒙版。在本实施例中,蒙版包括四种形式,分别为:
(a)数据位与01010101......进行异或操作;
(b)数据位与00110011......进行异或操作;
(c)数据位与01100110......进行异或操作;
(d)数据位与10011001......进行异或操作。
需要说明的是,蒙版的形式不唯一,但是需要保证蒙版的规律性,以保证整个二维码的数据位呈现黑色区域是均匀的。
在本实施例中,蒙版函数为F(N,M)=(N+M)%4,%表示取余数,F(N,M)的取值范围为0至3;当F(N,M)为0时使用蒙版(a),当F(N,M)为1时使用蒙版(b),当F(N,M)为2时使用蒙版(c),当F(N,M)为3时使用蒙版(d)。
本发明同时提供一种二维码解码方法,解码算法设计与编码算法相关,在实际应用过程中应根据编码过程的不同做出相应的调整。主要包括以下步骤:
1.确定二维码区域
具体为:
(1)通过Otsu算法(大津算法),对摄像头捕获的二维码图像进行二值化处理得到黑白的二维码图像;
(2)通过霍夫变换检测直线,区分黑白的二维码图像中的二维码的空白区域与商品背景中的背景色,确定了二维码的空白区域就可以定位二维码区域。
2.确定定位符所在区域和定位符大小
(1)从二维码空白区域四个角同时以45度向二维码中心取直线,每条直线之间的间隔为1像素(即从二维码空白区域四个角取斜率为1的斜线);
(2)检测直线上所有的像素,当发现黑色像素时,设定发现黑色像素的直线为第一边界,在本实施例中,方向定位符靠近空白区域的边缘部分为黑色,普通定位符靠近空白区域的一个角为黑色,检测到黑色像素就意味着发现了定位符;
(3)待四个角均发现定位符之后,从四个角继续等间距取斜率为1的斜线,并判断斜线上的黑色像素。普通定位符只有靠近空白区域的一个角为黑色,那么步骤(1)中当所取的斜线上没有黑色像素时,说明已经到了该普通定位符的另一个边界,将该边界设置为第二边界,根据步骤(2)中的第一边界与步骤(3)中的第二边界,能够确定普通定位符的黑色像素的范围,即一个最小单元的尺寸。而方向定位符均为黑色,所以当普通定位符发现第二边界时,方向定位符方向取到的斜线依然存在黑色像素,由此区别方向定位符与普通定位符,从而判定二维码的方向。
3.根据定位符确定二维码编码信息所在区域
(1)根据普通定位符的黑色区域,确定最小单元的尺寸,具体地说,普通定位符的一个黑色区域就是一个最小单元(即一个“格”),当计算出一个定位符中最小单元的计算尺寸之后,取多个定位符中的最小单元的计算尺寸的平均值即得到最小单元的尺寸D*D,D的值根据图像的分辨率以及二维码的大小确定;
(2)根据步骤2中的在二维码空白区域四个角同时以45度向中心取直线的方法,可以得到二维码区域最角落四个像素的坐标,确定二维码编码的矩形区域,用该矩形区域的尺寸除以最小单元的平均尺寸,从而得到二维码的计算尺寸N`*M`,即计算得到该二维码为N`行M`列;
(3)在N`行M`列的矩形范围内绘制一个x行y列大小的二维码网格,该二维码网格包括多个最小单元,二维码网格中一个最小单元的尺寸为D*D;
(4)判断二维码网格中一个最小单元D*D的中心区域d*d范围内的像素,其中,d=D/2,在本实施例中,d的值为4,d的值主要取决于摄像头拍摄的图片的质量,即图片像素的高低,d的单位是像素;若黑色区域占比a﹥c%,则认定该最小单元为黑色区域,,c%是黑色区域判定阈值,其取值需要根据实际应用场景,结合生产应用时的光线、背景色与数据位颜色对比度、摄像头像素、摄像头与二维码的距离等因素共同决定。具体实施时,为了保证结果的精准,一般来说,可以将c的值设定为一个更高的数值,比如70%等等,判定二维码网格中心区域d*d是否为黑色的目的在于记录x*y大小的二维码网格中空白位与数据位的识别结果,进而为判断二维码网格中空白位是否为白色做准备;之所以判断一个最小单元是否是黑色,原因在于对编码信息进行排布时,采取的是数据位和空白位间隔排布的方式,在对编码生成的二维码图像进行二值化处理之后,数据位有可能是黑色也有可能是白色(数据位中数据0对应的颜色为白色),空白位只能是白色,因此可以通过判断空白位的颜色来判定x*y大小的网格是否与二维码一致。那么在x*y大小的二维码网格中,将定位符剔除之后,根据本发明的数据位和空白位的排布规律,即奇数行由空白位开始,空白位数据位交替排布,偶数行由数据位开始,数据位与空白位交替排布的规律,得出数据位和空白位排布的具体情况;
(5)根据x、y的取值,判断是否超过90%以上的空白位为白色;如果是,则该x、y取值为正确取值;否则修改x、y的值,进行再次判定,最终使x的值等于二维码的实际列数N,y的值等于二维码的实际行数M;具体地说,根据x和y的值,画一个x行y列的二维码网格,去掉定位符所在区域,即得到二维码的数据区,通过步骤(4)中二维码网格中最小单元颜色的判定来确定数据区的数据位与空白位的排布情况;然后识别出空白位的颜色为白色的最小单元的数量,用识别出的空白位的颜色为白色的最小单元的数量除以总的空白位的数量,得到一个比值z,如果z>90%,则认为x和y的取值正确。如果x和y的取值正确,则x行y列的二维码网格应该如图6所示,如果x和y的取值不正确,则x行y列的二维码网格如图7所示,那么在进行网格的颜色判断的时候,会发生误判,将不是空白位的网格的颜色识别为白色,为此,需要计算识别出的空白位的颜色为白色的最小单元的数量与总的空白位的数量的比值,从而确定x和y的取值是否正确。二维码中空白位的总数量可以根据网格尺寸x*y确定,根据数据位与空白位排布规律,去掉四个定位符,即可统计得到空白位的数量。
(6)得到正确的x、y取值后,即可确定二维码的实际尺寸N*M,即当超过90%以上的空白位为空白时,x、y取值为正确取值,即x=N、y=M,N*M为二维码的实际尺寸。需要说明的是,由于N’和M’是通过像素坐标计算得到的,N’和M’与实际的二维码尺寸N和M的差距不会太大,因此x和y的取值是在N`和M`的一定范围内浮动,通过调整总是能得到正确的x和y的值,即确定二维码的实际尺寸。如果在进行空白位是否为空白的判断时,无法进行正常的判断,即始终判断空白位低于90%为空白,那么可以认为这张图片存在问题,无法正常识别,就会从头重复识别工作。
4.去蒙版
如果在生成二维码编码的时候增加了蒙版,那么进行解码的时候需要去蒙版,具体地说,就是根据F(N、M)函数,计算蒙版类型,并针对每一行进行同或运算(即异或的逆运算),得到去除蒙版之后的编码信息。
5.解密运算
根据加密函数H(N,M,k)函数,计算数据加密顺序,对编码信息进行解密,得到数据区的数据码、格式码和纠错码,在本实施例中,数据码、格式码和纠错码均为二进制编码;然后根据首四位的数据格式信息,得到二进制数据版本以及字符集,并根据字符集进行解码;并通过纠错码进行纠错,获得原始数据。
利用本发明中的二维码编码和解码方法生成的二维码能够根据需要调整二维码尺寸,能够适用于各种物体表面,通过空白位与数据位交替排布的方式,有效降低了识别算法难度,实现起来简单,同时提高识别准确率,极大地提高识别效率,十分适用于快速流水线作业的场合。
Claims (10)
1.一种二维码编码方法,其特征在于:包括以下步骤:
S1、对原始数据信息进行编码,得到编码信息;
S2、对编码信息进行加密;
S3、生成四个定位符,包括三个普通定位符和一个方向定位符;
S4、将四个定位符分别放置在二维码区域的四个顶角位置;
S5、将加密后的编码信息填充到二维码区域除定位符以外的其他区域,形成一个N行M列的二维码,其中M≥4,N≥4;所述编码信息填充的区域包括数据位和空白位,所述数据位和空白位在竖直方向和水平方向均间隔排布。
2.根据权利要求1所述的二维码编码方法,其特征在于:还包括以下步骤:在所述二维码区域四周设置空白区域,所述空白区域的宽度不小于2个最小单元的宽度。
3.根据权利要求1或2所述的二维码编码方法,其特征在于:所述编码信息包括格式码、数据码和纠错码,所述格式码加数据码的长度和纠错码的长度比例根据二维码的纠错等级确定。
4.根据权利要求1或2所述的二维码编码方法,其特征在于:所述方向定位符均为黑色,所述普通定位符靠近空白区域的角为黑色,其他区域为白色,所述定位符大小为3个最小单元,包括二维码区域靠近空白区域的角的1个最小单元,以及与该角的最小单元相邻的2个最小单元。
5.根据权利要求4所述的二维码编码方法,其特征在于:所述数据区的奇数行以空白位开始;所述数据区的偶数行以数据位开始。
6.根据权利要求1或2所述的二维码编码方法,其特征在于:还包括在二维码数据位上增加蒙版。
7.一种二维码解码方法,其特征在于:包括以下步骤:
S1、获取二维码图像,对二维码图像进行二值化处理得到黑白的二维码图像;
S2、定位黑白的二维码图像中的4个定位符;
S3、根据定位符计算最小单元的尺寸;
S4、根据定位符确定二维码所在区域,将二维码所在区域去掉4个定位符,得到二维码数据区;
S5、读取二维码数据区的编码信息并进行解密得到数据码、格式码和纠错码;
S6、利用格式码和纠错码对数据码进行解码并纠错,得到原始数据信息。
8.根据权利要求7所述的二维码解码方法,其特征在于:所述步骤S4包括以下步骤:
S41、根据二维码所在区域得到一个矩形,用该矩形的面积除以最小单元的尺寸,得到二维码的计算尺寸N’行M’列,其中,N’是二维码的计算行数,M’是二维码的计算列数;
S42、根据普通定位符和方向定位符确定4个定位符的尺寸,在N’行M’列的范围内绘制一个x行y列的二维码网格,在x行y列的二维码网格内去掉4个定位符所在的定位符区域,确定数据区,得到数据位与空白位的排布情况;
S43、用识别出的该x行y列的二维码网格中的空白位颜色识别为白色的最小单元的数量除以总的空白位的最小单元的数量,得到一个比值z,如果z>90%,则认为x行y列的二维码网格是真正的二维码,否则继续调整x、y。
9.根据权利要求8所述的二维码解码方法,其特征在于:所述步骤S32包括以下步骤:判断x行y列的二维码网格中一个最小单元的中心区域d*d范围内的像素,若黑色区域占比a﹥c%,则认定该最小单元为黑色,否则该最小单元为白色,从而得到数据位与空白位的排布情况,其中,c%是黑色区域判定阈值。
10.一种二维码,其特征在于:包括定位符区、数据区,所述定位符区包括四个定位符,分别分布在二维码的四个角上,所述定位符包括方向定位符和普通定位符,所述数据区包括数据位和空白位,所述数据位和空白位在竖直方向和水平方向均间隔排布,在所述二维码的周边还设有空白区域,所述空白区域的宽度不小于2个最小单元的宽度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807008.4A CN112001469B (zh) | 2020-08-12 | 2020-08-12 | 一种二维码编码方法、解码方法和二维码 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807008.4A CN112001469B (zh) | 2020-08-12 | 2020-08-12 | 一种二维码编码方法、解码方法和二维码 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112001469A true CN112001469A (zh) | 2020-11-27 |
CN112001469B CN112001469B (zh) | 2024-01-30 |
Family
ID=73464250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010807008.4A Active CN112001469B (zh) | 2020-08-12 | 2020-08-12 | 一种二维码编码方法、解码方法和二维码 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112001469B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733567A (zh) * | 2021-01-15 | 2021-04-30 | 深圳市豪恩汽车电子装备股份有限公司 | 机动车二维码识别方法、装置及计算机可读存储介质 |
CN112819122A (zh) * | 2021-01-28 | 2021-05-18 | 清华大学 | 一种二维码生成和解析方法及装置 |
CN113781590A (zh) * | 2021-09-15 | 2021-12-10 | 江苏航空职业技术学院 | 一种适合不同相机视角的AprilTag码的布置和识别方法 |
CN114004320A (zh) * | 2021-10-15 | 2022-02-01 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
CN114239781A (zh) * | 2021-12-21 | 2022-03-25 | 三维码(厦门)网络科技有限公司 | 一种三维码的快速生成方法、设备和存储介质 |
CN117094349A (zh) * | 2023-10-19 | 2023-11-21 | 中国物品编码中心 | 二维码图形的生成方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050194445A1 (en) * | 2003-04-15 | 2005-09-08 | Fujitsu Limited | Method and apparatus for recognizing code |
US20060236202A1 (en) * | 2001-05-15 | 2006-10-19 | Sick Ag | Method of detecting two-dimensional codes |
WO2017044777A1 (en) * | 2015-09-10 | 2017-03-16 | Alibaba Group Holding Limited | Generating and decoding two-dimensional code |
JP2017102879A (ja) * | 2015-11-30 | 2017-06-08 | 株式会社ナガハラヘルシーカンパニー | コードパターン |
CN108734048A (zh) * | 2018-05-29 | 2018-11-02 | 西安理工大学 | 基于专有码的多维度二维码生成与译码方法 |
CN108960000A (zh) * | 2018-07-17 | 2018-12-07 | 深圳市零点零科技有限公司 | 一种长条小型二维码识别方法 |
CN109063806A (zh) * | 2018-07-17 | 2018-12-21 | 深圳市零点零科技有限公司 | 一种长条小型二维码编码方法 |
CN110263896A (zh) * | 2019-06-27 | 2019-09-20 | 北京太和互邦科技有限公司 | 一种二维码隐藏方法、隐藏二维码扫描方法、红外扫描仪及存储设备 |
-
2020
- 2020-08-12 CN CN202010807008.4A patent/CN112001469B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236202A1 (en) * | 2001-05-15 | 2006-10-19 | Sick Ag | Method of detecting two-dimensional codes |
US20050194445A1 (en) * | 2003-04-15 | 2005-09-08 | Fujitsu Limited | Method and apparatus for recognizing code |
WO2017044777A1 (en) * | 2015-09-10 | 2017-03-16 | Alibaba Group Holding Limited | Generating and decoding two-dimensional code |
JP2017102879A (ja) * | 2015-11-30 | 2017-06-08 | 株式会社ナガハラヘルシーカンパニー | コードパターン |
CN108734048A (zh) * | 2018-05-29 | 2018-11-02 | 西安理工大学 | 基于专有码的多维度二维码生成与译码方法 |
CN108960000A (zh) * | 2018-07-17 | 2018-12-07 | 深圳市零点零科技有限公司 | 一种长条小型二维码识别方法 |
CN109063806A (zh) * | 2018-07-17 | 2018-12-21 | 深圳市零点零科技有限公司 | 一种长条小型二维码编码方法 |
CN110263896A (zh) * | 2019-06-27 | 2019-09-20 | 北京太和互邦科技有限公司 | 一种二维码隐藏方法、隐藏二维码扫描方法、红外扫描仪及存储设备 |
Non-Patent Citations (1)
Title |
---|
孔猛;: "QR二维码设计的基本原则及要点分析", 今日印刷, no. 01 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733567A (zh) * | 2021-01-15 | 2021-04-30 | 深圳市豪恩汽车电子装备股份有限公司 | 机动车二维码识别方法、装置及计算机可读存储介质 |
CN112733567B (zh) * | 2021-01-15 | 2023-12-12 | 深圳市豪恩汽车电子装备股份有限公司 | 机动车二维码识别方法、装置及计算机可读存储介质 |
CN112819122A (zh) * | 2021-01-28 | 2021-05-18 | 清华大学 | 一种二维码生成和解析方法及装置 |
CN113781590A (zh) * | 2021-09-15 | 2021-12-10 | 江苏航空职业技术学院 | 一种适合不同相机视角的AprilTag码的布置和识别方法 |
CN113781590B (zh) * | 2021-09-15 | 2023-08-01 | 江苏航空职业技术学院 | 一种适合不同相机视角的AprilTag码的布置和识别方法 |
CN114004320A (zh) * | 2021-10-15 | 2022-02-01 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
CN114004320B (zh) * | 2021-10-15 | 2023-11-28 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
CN114239781A (zh) * | 2021-12-21 | 2022-03-25 | 三维码(厦门)网络科技有限公司 | 一种三维码的快速生成方法、设备和存储介质 |
CN117094349A (zh) * | 2023-10-19 | 2023-11-21 | 中国物品编码中心 | 二维码图形的生成方法、装置、设备及介质 |
CN117094349B (zh) * | 2023-10-19 | 2024-01-09 | 中国物品编码中心 | 二维码图形的生成方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112001469B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112001469B (zh) | 一种二维码编码方法、解码方法和二维码 | |
EP3413240B1 (en) | Method of encoding and identifying 2d bitmap barcode | |
CN105095935B (zh) | 一种融合了混沌加密技术的低密度、高编码容量点阵二维码 | |
CN1161705C (zh) | 无边框、无时钟二维条形码及印刷和读取该条形码的方法 | |
JP3706385B2 (ja) | ドットパターンを用いた情報入出力方法 | |
CN105989389A (zh) | 一种二维码 | |
CN108073966B (zh) | 一种二维码与孔阵码的转换方法 | |
CN111046996B (zh) | 一种彩色qr码生成和识别方法 | |
US8194918B2 (en) | Embedded message extraction for visible watermarking | |
US6839450B2 (en) | Detecting halftone modulations embedded in an image | |
US20160379031A1 (en) | High capacity 2d color barcode design and processing method for camera based applications | |
CN106909869B (zh) | 一种矩阵式二维码的采样网格划分方法及装置 | |
CN113935354B (zh) | 一种用于商品外包装的抗干扰图形交点编解码方法 | |
US20160379029A1 (en) | High capacity 2d color barcode design and processing method for camera based applications | |
CN108734048A (zh) | 基于专有码的多维度二维码生成与译码方法 | |
US8243985B2 (en) | Bit pattern design for visible watermarking | |
KR101052403B1 (ko) | 2차원 바코드 및 그 코딩/디코딩 방법 | |
CN112187284A (zh) | 编码方法、编码图形、编码图形读取方法和拍摄装置 | |
CN113988244B (zh) | 一种防伪点阵生成与校验方法、系统、设备及介质 | |
CN112418374B (zh) | 一种信息码生成方法 | |
CN112102420B (zh) | 相机标定板及标定方法 | |
CN112184803B (zh) | 一种标定板和标定方法 | |
CN112183695A (zh) | 编码方法、编码图形、编码图形读取方法和拍摄装置 | |
CN116775788B (zh) | 一种基于geotools工具修复多面中若干面相交的地理图像生成方法 | |
CN116795939B (zh) | 一种基于geotools工具实现地理数据修复的方法 |
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 |