CN109754046B - 二维码、二维码的编码方法、解码方法、装置及设备 - Google Patents
二维码、二维码的编码方法、解码方法、装置及设备 Download PDFInfo
- Publication number
- CN109754046B CN109754046B CN201910101998.7A CN201910101998A CN109754046B CN 109754046 B CN109754046 B CN 109754046B CN 201910101998 A CN201910101998 A CN 201910101998A CN 109754046 B CN109754046 B CN 109754046B
- Authority
- CN
- China
- Prior art keywords
- dimensional code
- data
- coding
- positioning
- region
- 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
Images
Abstract
本发明提供了一种二维码、二维码的编码方法、解码方法、装置及设备,涉及智能识别技术领域,二维码包括编码区、定位区和校正区;定位区设置于二维码的中央,包括至少两个定位图案;校正区设置于二维码的外侧,包括矩形边框;编码区设置于定位区和校正区之间,包括多个用于填充编码数据的色块;定位区和编码区均在校正区内;定位区的边长与二维码的边长的比例大于预设比例阈值;该方法包括:将待编码数据转换为符合预设规则的编码数据;将编码数据填充至编码区。本发明实施例提供的二维码、二维码的编码方法、解码方法、装置及设备,可以提高识别成功率,提高了二维码的检测速度。
Description
技术领域
本发明涉及智能识别技术领域,尤其是涉及一种二维码、二维码的编码方法、解码方法、装置及设备。
背景技术
目前二维码的应用非常广泛,已经适用于存储多种编码类型以及较大数据量的信息,但是对于某些特定的应用环境,实际需要的编码类型比较单一且数据量也较小,即客观上并不需要储存很大的信息量。在上述应用环境中如果继续使用现有的二维码则存在较多的编码空位,且由于存储较大数据量的要求,导致二维码的检测速度和识别率较低,用户体验差。
发明内容
有鉴于此,本发明的目的在于提供一种二维码、二维码的编码方法、解码方法、装置及设备,可以提高二维码的检测速度和识别率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种二维码,所述二维码包括编码区、定位区和校正区;所述定位区设置于所述二维码的中央,包括至少两个定位图案;所述校正区设置于所述二维码的外侧,包括矩形边框;所述编码区设置于所述定位区和所述校正区之间,包括多个用于填充编码数据的色块;所述定位区和所述编码区均在所述校正区内;所述定位区的边长与所述二维码的边长的比例大于预设比例阈值。
进一步,所述编码区中靠近所述定位区的多个色块用于填充待编码数据对应的二进制数据;所述编码区中靠近所述校正区的多个色块用于填充纠错码。
进一步,所述矩形边框包括至少三个共中心的矩形框,所述矩形框的宽度为一个色块或者多个色块的宽度;相邻的所述矩形框颜色不同。
第二方面,本发明实施例提供了一种二维码的编码方法,所述二维码包括编码区、定位区和校正区;所述定位区设置于所述二维码的中央,包括至少两个定位图案;所述校正区设置于所述二维码的外侧,包括矩形边框;所述编码区设置于所述定位区和所述校正区之间,包括多个用于填充编码数据的色块;所述定位区和所述编码区均在所述校正区内;所述定位区的边长与所述二维码的边长的比例大于预设比例阈值;该方法包括:将待编码数据转换为符合预设规则的编码数据;将所述编码数据填充至所述编码区。
进一步,所述将待编码数据转换为符合预设规则的编码数据的步骤,包括:根据进制转换规则将待编码数据转换为二进制数据;根据预设编码规则在所述二进制数据中加入纠错码,得到符合预设规则的编码数据。
进一步,所述根据进制转换规则将待编码数据转换为二进制数据的步骤,包括:将待编码数据的转换为二进制位数据,并将不足预设位数的所述二进制位数据前补零。
进一步,所述待编码数据为至少一个十进制数;所述将待编码数据的转换为二进制位数据,并将不足预设位数的所述二进制位数据前补零的步骤,包括:将每个所述十进制数分别转换为二进制位数据,并将不足所述预设位数的所述二进制位数据前补零得到补齐数据;将每个所述十进制数对应的所述补齐数据连接,得到二进制数据。
进一步,所述将所述编码数据填充至所述编码区的步骤,包括:根据所述编码数据对应的二进制数据,将所述编码区的色块填充为第一灰度值或第二灰度值;所述色块为所述编码区最小可填充单位,所述第一灰度值对应二进制的0,所述第二灰度值对应二进制的1。
进一步,所述将所述编码数据填充至所述编码区的步骤,包括:将所述二进制数据填充至所述编码区中靠近所述定位区的多个色块,将所述纠错码填充至所述编码区中靠近所述校正区的多个色块。
第三方面,本发明实施例提供了一种二维码的解码方法,包括:获取包含二维码的待检测图像;在所述待检测图像中确定是否存在定位标志和校正矩形;所述定位标志至少包括两个定位图案,所述定位标志位于所述校正矩形内部且位于所述二维码的中央;如果存在,通过透视变换获取校正后的二维码图案;计算所述两个定位图案之间的方向信息和距离信息;根据所述方向信息和所述距离信息判断所述二维码图案的编码排列顺序和编码规模;根据所述编码顺序和编码规模读取所述二维码,并转换得到对应的数据。
进一步,所述计算所述两个定位图案之间的方向信息和距离信息的步骤,包括:分别确定所述两个定位图案的特征点;所述特征点包括中心点或端点;将所述两个定位图案的特征点的连线矢量正交分解得到的两个分量,并根据所述两个分量确定所述二维码图案的解码正方向;所述连线矢量为所述两个定位图案的特征点按照预设顺序连接得到;将所述连线矢量对应的距离作为距离信息。
进一步,所述根据所述方向信息和所述距离信息判断所述二维码图案的编码排列顺序和编码规模的步骤,包括:获取预设的编码顺序,结合所述方向信息确定起始编码色块的坐标和编码排列顺序;根据所述距离信息确定编码色块在各个方向上的总长和编码数量;基于所述总长和所述编码数量计算所述编码色块的步长。
进一步,所述根据所述编码顺序和编码规模读取所述二维码的步骤,包括:根据所述起始编码色块的坐标、所述编码排列顺序和所述步长,依次读取所述二维码。
第四方面,本发明实施例提供了一种二维码的编码装置,所述二维码包括编码区、定位区和校正区;所述定位区设置于所述二维码的中央,包括至少两个定位图案;所述校正区设置于所述二维码的外侧,包括矩形边框;所述编码区设置于所述定位区和所述校正区之间,包括多个用于填充编码数据的色块;所述定位区和所述编码区均在所述校正区内;所述定位区的边长与所述二维码的边长的比例大于预设比例阈值;该装置包括:转换模块,用于将待编码数据转换为符合预设规则的编码数据;填充模块,用于将所述编码数据填充至所述编码区。
第五方面,本发明实施例提供了一种二维码的解码装置,包括:获取模块,用于获取包含二维码的待检测图像;确定模块,用于在所述待检测图像中确定是否存在定位标志和校正矩形;所述定位标志至少包括两个定位图案,所述定位标志位于所述校正矩形内部且位于所述二维码的中央;校正模块,用于如果存在,通过透视变换获取校正后的二维码图案;计算模块,用于计算所述两个定位图案之间的方向信息和距离信息;判断模块,用于根据所述方向信息和所述距离信息判断所述二维码图案的编码排列顺序和编码规模;读取模块,用于根据所述编码顺序和编码规模读取所述二维码,并转换得到对应的数据。
第六方面,本发明实施例提供了一种设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第二方面及第三方面任一项所述的方法的步骤。
第七方面,本发明实施例提供了一种具有处理器可执行的程序代码的计算机可读介质,所述程序代码使所述处理器执行第二方面及第三方面任一项所述的方法的步骤。
本发明实施例提供的二维码、二维码的编码方法、解码方法、装置及设备,应用于包括编码区、定位区和校正区的二维码,其中定位区设置于二维码的中央,校正区设置于二维码的外侧,编码区设置于定位区和校正区之间,且定位区相对于整个二维码的比例更大,更容易被识别,可以提高识别成功率,同时较小的编码区也提高了二维码的检测速度。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例所提供的一种电子设备的结构示意图;
图2示出了本发明实施例所提供的一种二维码的结构示意图;
图3示出了本发明实施例所提供的一种二维码的编码方法的流程图;
图4示出了本发明实施例所提供的另一种二维码的结构示意图;
图5示出了本发明实施例所提供的一种二维码的解码方法的流程图;
图6示出了本发明实施例所提供的一种二维码的编码装置的结构框图;
图7示出了本发明实施例所提供的一种二维码的解码装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有二维码的编码方式,对编码类型比较单一且数据量较小的应用场景,检测速度和识别率较低,用户体验差。为改善上述现有技术存在的问题,本发明实施例提供了一种二维码、二维码的编码方法、解码方法、装置及设备,以下通过本发明的实施例进行详细介绍。
首先,参照图1来描述用于实现本发明实施例的二维码的编码方法、解码方法的示例电子设备100。
如图1所示的一种电子设备的结构示意图,电子设备100包括一个或多个处理设备102、一个或多个存储装置104。可选地,图1所示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理设备102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储装置104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
示例性地,用于实现根据本发明实施例的二维码的编码方法、解码方法的示例电子设备中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
示例性地,用于实现根据本发明实施例的二维码的编码方法、解码方法的示例电子设备可以被实现为诸如智能手机、平板电脑、智能手表、照相机等智能终端。
根据本发明实施例,提供了一种二维码的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
上述二维码包括编码区、定位区和校正区。参见图2所示的二维码的结构示意图,该二维码的结构包括自内而外设置的定位区、编码区和校正区。其中,定位区设置于二维码的中央,包括至少两个定位图案;校正区设置于二维码的外侧,包括矩形边框;编码区设置于定位区和校正区之间,包括多个用于填充编码数据的色块。在此需要说明的是,上述定位区仅存在于二维码的中央,即仅用中心区域做定位,相较于现有二维码包括多个定位区且设置于四周的方式,仅在中心区域设置一个定位区的方式能够更容易被识别。
如图2中所示,上述定位区和编码区均在校正区内,即校正区完全包括定位区和编码区。上述定位区的边长与二维码的边长的比例大于预设比例阈值,上述比例为定位区与二维码相对应的边长之间的比例,该预设比例阈值可以是1/2、1/3、1/4等,目的是保证定位区可以占据整个二维码的较大比例。本实施例提供的二维码可以将定位区设置得相对于整个二维码的比例更大,从而能够更容易识别,可以提高识别成功率。由于定位区所占比例更大,编码区所占比例会更小,限制了存储数据的数量,较小的数据量也提高了二维码的检测速度。在使用的编码类型单一且需要存储信息的数据量小的应用场景,上述编码区完全可以满足存储数据的需要,检测速度和识别率更高,用户体验好。
考虑到二维码的四周位置更容易受到遮挡或者损毁,可以在编码区中靠近定位区的多个色块用于填充待编码数据对应的二进制数据,在编码区中靠近校正区的多个色块用于填充纠错码。
上述矩形边框包括至少三个共中心的矩形框,每个矩形框的宽度为一个色块或者多个色块的宽度,且相邻的矩形框颜色不同,例如三个矩形框的颜色依次是黑白黑或者依次是白黑白。该矩形框用于透视变换,在解码时通过和标准正方形做矩阵透视变换,可以得到矫正后的二维码图案。
图3是本发明实施例提供的一种二维码的编码方法的流程图,该方法包括如下步骤:
步骤S302,将待编码数据转换为符合预设规则的编码数据。其中,待编码数据可以是十进制数据、十六进制数据或者英文字母数据等各种类型,编码数据一般是指二进制数据,二进制数据在二维码中以黑色和白色(或者灰度值255和灰度值0)表示。上述预设规则除包括各进制之间转换规则外,还包括在转换后的数据中加入标识码信息以及上述转换后的数据及标识码信息两者的排列规则。
步骤S304,将编码数据填充至编码区。
在转换得到编码数据后,将上述编码数据填充至编码区的各个色块。该色块也可以称为像素块,为二维码的最小可填充单位,对应于二进制的一位。在填充的过程中,编码数据的排序方式以及填充顺序可以使用现有技术中各种方式,本实施例对此不作限制。
本发明实施例提供的上述二维码的编码方法,应用于包括编码区、定位区和校正区的二维码,其中定位区设置于二维码的中央,校正区设置于二维码的外侧,编码区设置于定位区和校正区之间,且定位区相对于整个二维码的比例更大,更容易被识别,可以提高识别成功率,同时较小的编码区也提高了二维码的检测速度。
考虑到二维码在使用过程中容易被部分遮挡或者损毁,需要具备对数据纠错的能力,在转换编码时可以加入纠错码,上述转换过程可以按照以下步骤执行:首先根据进制转换规则将待编码数据转换为二进制数据;然后根据预设编码规则在二进制数据中加入纠错码,得到符合预设规则的编码数据。上述预设编码规则可以采用现有加入纠错码的算法,例如Reed-Solomon编码方式,本实施例对此不作限制。
在转换过程中,由于原始数据的每一位对应数值大小不同,存在转换得到的二进制数据的位数少于预设位数的情况,此时需要对缺少的位数进行补足,具体如下:将待编码数据的转换为二进制位数据,并将不足预设位数的二进制位数据前补零。将不足预设位数的二进制位数据前补零,实际并不会改变二进制数据本身的大小,在解码时可以进行正确解码。在此需要说明的是,也可以不进行补零操作,例如可以在二进制数据中加入各个待编码数据每位数据对应的位数标注信息,通过该位数标注信息可以得到每位数据对应的二进制位数,也可以进行正确解码。
以常用的十进制数编码为例,即待编码数据包括至少一个十进制数,可以将每个十进制数分别转换为二进制位数据,并将不足预设位数的二进制位数据前补零得到补齐数据,然后将每个十进制数对应的补齐数据连接,得到二进制数据。
在进行数据填充时,可以基于图像的灰度值进行,在将编码数据填充至编码区过程中,可以根据编码数据对应的二进制数据,将编码区的色块填充为第一灰度值或第二灰度值,该第一灰度值对应二进制的0,该第二灰度值对应二进制的1。如前所述,可以将第一灰度值设置为0,第二灰度值设置为255,或者其他满足二值化要求的灰度值。
考虑到二维码的四周位置更容易受到遮挡或者损毁,在将编码数据填充至编码区时,可以优先将原始数据转换得到的二进制数据填充至内侧,将纠错码填充至外侧,例如可以将二进制数据填充至编码区中靠近定位区的多个色块,将纠错码填充至编码区中靠近校正区的多个色块。
参见图4所示的二维码的结构示意图,其中左侧为二维码整体示意图,右侧为区域划分示意图,以16*16的二维码为例,其包括三个模块部分:
(1)定位区,最中心6*6的正方形区域,该区域最外围的白色部分是隔离区,用于隔离内部的定位图案和编码区,中间两个角型图案用于定位。在图4中以两个角型图案(图中的两个黑色Γ形图案)组合成定位图案为例。在此需要说明的是组成定位图案的两个图案,可以是相同的图案或者不同的图案,通过两者的位置关系可以标识二维码的方向信息和规模信息。
(2)编码区,中心10*10区域除去1区域中的部分,总共10*10-6*6=64个像素块(顺序可以如右图中数字所示),每个像素块都代表一个0/1编码,可以储存64位二进制数。
(3)校正区,最外面三圈黑白黑的矩形,用于做透视变换校正。
本实施例以十进制转换为二进制为例进行说明,上述64位的二进制数可以对应3个3位的十进制数,总共九位十进制。具体的对应方式如下:每个3位的十进制数字组合用10个二进制位表示,总共30位,加上两位的冗余,则总共为32位。将上述64位二进制数中的前32位(4Byte)存储数字,后32位(4Byte)存储纠错码。
3位的十进制数字到10位二进制的具体转换方式是:3位的十进制数字组合看成一个0-999范围的十进制数,转二进制能得到不超过10位的二进制数,将不足10位的前面补0,即得到10个二进制位。从32位二进制位数得到64位二进制数额具体方式是:利用Reed-Solomon编码方式,加入32位纠错码。
对应于前述的编码方法,本实施例还提供了一种二维码的解码方法,图5是本发明实施例提供的一种二维码的解码方法的流程图,该方法包括如下步骤:
步骤S502,获取包含二维码的待检测图像。该待检测图像可以是智能终端设备采集获得的图像。
步骤S504,在待检测图像中确定是否存在定位标志和校正矩形。其中,定位标志至少包括两个定位图案,且该定位标志位于校正矩形内部且位于二维码的中央。如果存在,则执行步骤S506;如果不存在,则结束。在解码时,已知定位标志和校正矩形的关系,从待检测图像中提取特征后即可验证是否满足上述关系,如果满足则确定存在定位标志和校正矩形。
步骤S506,通过透视变换获取校正后的二维码图案。
基于上述校正矩形,通过和标准正方形做矩阵透视变换,可以得到矫正后的二维码图案。
步骤S508,计算两个定位图案之间的方向信息和距离信息。
例如,可以先分别确定两个定位图案的特征点,该特征点是中心点或端点;然后将两个定位图案的特征点的连线矢量正交分解得到的两个分量,并根据两个分量确定二维码图案的解码正方向,该连线矢量为两个定位图案的特征点按照预设顺序连接得到;;将连线矢量对应的距离作为距离信息。通过计算两个定位图案的特征点可以得到二维码的方向信息,而且也能通过特征点之间的距离判断二维码的大小规模。
步骤S510,根据方向信息和距离信息判断二维码图案的编码排列顺序和编码规模。
在已知预设的编码顺序时,结合上述方向信息确定起始编码色块的坐标和编码排列顺序,根据距离信息确定编码色块在各个方向上的总长和编码数量,基于总长和编码数量即可以计算编码色块的步长。
步骤S512,根据编码顺序和编码规模读取二维码,并转换得到对应的数据。在获得上述起始编码色块的坐标、编码排列顺序和步长后,可以自起始编码色块开始,按照上述步长及编码排列顺序,依次读取各个色块的灰度值,得到二进制信息,进行转换后可以得到对应的原始数据。
本发明实施例提供的上述二维码的解码方法,应用于包括定位标志和校正矩形的二维码,其中定位标志位于校正矩形内部,通过计算两个定位图案之间的方向信息和距离信息,以及判断二维码图案的编码排列顺序和编码规模,可以根据编码顺序和编码规模读取二维码,并转换得到对应的数据,定位标志设置于二维码的中央,更容易被识别,可以提高识别成功率。
对应前述实施例中所提供的二维码的编码方法,本发明实施例提供了一种二维码的编码装置,二维码包括编码区、定位区和校正区;定位区设置于二维码的中央,包括至少两个定位图案;校正区设置于二维码的外侧,包括矩形边框;编码区设置于定位区和校正区之间,包括多个用于填充编码数据的色块;定位区和编码区均在校正区内;定位区的边长与二维码的边长的比例大于预设比例阈值。参见图6所示的一种二维码的编码装置的结构框图,该装置包括:
转换模块602,用于将待编码数据转换为符合预设规则的编码数据;
填充模块604,用于将编码数据填充至编码区。
在一种实施方式中,上述转换模块还用于:根据进制转换规则将待编码数据转换为二进制数据;根据预设编码规则在二进制数据中加入纠错码,得到符合预设规则的编码数据。
在另一种实施方式中,上述转换模块还用于:将待编码数据的转换为二进制位数据,并将不足预设位数的二进制位数据前补零。
在另一种实施方式中,待编码数据为至少一个十进制数,上述转换模块还用于:将每个十进制数分别转换为二进制位数据,并将不足预设位数的二进制位数据前补零得到补齐数据;将每个十进制数对应的补齐数据连接,得到二进制数据。
在一种实施方式中,上述填充模块还用于:根据编码数据对应的二进制数据,将编码区的色块填充为第一灰度值或第二灰度值;色块为编码区最小可填充单位,第一灰度值对应二进制的0,第二灰度值对应二进制的1。
在另一种实施方式中,上述填充模块还用于:将二进制数据填充至编码区中靠近定位区的多个色块,将纠错码填充至编码区中靠近校正区的多个色块。
对应前述实施例中所提供的二维码的解码方法,本发明实施例提供了一种二维码的解码装置,参见图7所示的一种二维码的解码装置的结构框图,该装置包括:
获取模块702,用于获取包含二维码的待检测图像;
确定模块704,用于在待检测图像中确定是否存在定位标志和校正矩形;定位标志至少包括两个定位图案,定位标志位于校正矩形内部且位于二维码的中央;
校正模块706,用于如果存在,通过透视变换获取校正后的二维码图案;
计算模块708,用于计算两个定位图案之间的方向信息和距离信息;
判断模块710,用于根据方向信息和距离信息判断二维码图案的编码排列顺序和编码规模;
读取模块712,用于根据编码顺序和编码规模读取二维码,并转换得到对应的数据。
在一种实施方式中,上述计算模块还用于:分别确定两个定位图案的特征点;特征点包括中心点或端点;将两个定位图案的特征点的连线矢量正交分解得到的两个分量,并根据两个分量确定二维码图案的解码正方向;连线矢量为两个定位图案的特征点按照预设顺序连接得到;将连线矢量对应的距离作为距离信息。
在另一种实施方式中,上述判断模块还用于:获取预设的编码顺序,结合方向信息确定起始编码色块的坐标和编码排列顺序;根据距离信息确定编码色块在各个方向上的总长和编码数量;基于总长和编码数量计算编码色块的步长。
在另一种实施方式中,上述读取模块还用于:根据起始编码色块的坐标、编码排列顺序和步长,依次读取二维码。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供了一种设备,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步,本实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述前述方法实施例所提供的方法的步骤。
本发明实施例所提供的二维码、二维码的编码方法、解码方法、装置及设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中提供的方法,具体实现可参见方法实施例,在此不再赘述。
本实施例还提供了一种计算机程序,该计算机程序可以存储在云端或本地的存储介质上。在该计算机程序被计算机或处理器运行时用于执行前面方法实施例中提供的方法,并且用于实现根据本发明实施例的装置中的相应模块。具体实现可参见方法实施例,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
本申请的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些模块的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。例如,本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本申请的上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种二维码,其特征在于,所述二维码包括编码区、定位区和校正区;
所述定位区设置于所述二维码的中央,包括至少两个定位图案;所述校正区设置于所述二维码的外侧,包括矩形边框;
所述编码区设置于所述定位区和所述校正区之间,包括多个用于填充编码数据的色块;所述定位区和所述编码区均在所述校正区内;
所述定位区的边长与所述二维码的边长的比例大于预设比例阈值;
其中,所述编码区中靠近所述定位区的多个色块用于填充待编码数据对应的二进制数据;所述编码区中靠近所述校正区的多个色块用于填充纠错码。
2.根据权利要求1所述的二维码,其特征在于,所述矩形边框包括至少三个共中心的矩形框,所述矩形框的宽度为一个色块或者多个色块的宽度;
相邻的所述矩形框颜色不同。
3.一种二维码的编码方法,其特征在于,所述二维码包括编码区、定位区和校正区;
所述定位区设置于所述二维码的中央,包括至少两个定位图案;所述校正区设置于所述二维码的外侧,包括矩形边框;所述编码区设置于所述定位区和所述校正区之间,包括多个用于填充编码数据的色块;所述定位区和所述编码区均在所述校正区内;所述定位区的边长与所述二维码的边长的比例大于预设比例阈值;该方法包括:
将待编码数据转换为符合预设规则的编码数据;
将所述编码数据填充至所述编码区;
其中,所述将待编码数据转换为符合预设规则的编码数据的步骤,包括:
根据进制转换规则将待编码数据转换为二进制数据;
根据预设编码规则在所述二进制数据中加入纠错码,得到符合预设规则的编码数据;
所述将所述编码数据填充至所述编码区的步骤,包括:
将所述二进制数据填充至所述编码区中靠近所述定位区的多个色块,将所述纠错码填充至所述编码区中靠近所述校正区的多个色块。
4.根据权利要求3所述的方法,其特征在于,所述根据进制转换规则将待编码数据转换为二进制数据的步骤,包括:
将待编码数据的转换为二进制位数据,并将不足预设位数的所述二进制位数据前补零。
5.根据权利要求4所述的方法,其特征在于,所述待编码数据为至少一个十进制数;所述将待编码数据的转换为二进制位数据,并将不足预设位数的所述二进制位数据前补零的步骤,包括:
将每个所述十进制数分别转换为二进制位数据,并将不足所述预设位数的所述二进制位数据前补零得到补齐数据;
将每个所述十进制数对应的所述补齐数据连接,得到二进制数据。
6.根据权利要求3所述的方法,其特征在于,所述将所述编码数据填充至所述编码区的步骤,包括:
根据所述编码数据对应的二进制数据,将所述编码区的色块填充为第一灰度值或第二灰度值;所述色块为所述编码区最小可填充单位,所述第一灰度值对应二进制的0,所述第二灰度值对应二进制的1。
7.一种二维码的解码方法,其特征在于,包括:
获取包含二维码的待检测图像;
在所述待检测图像中确定是否存在定位标志和校正矩形;所述定位标志至少包括两个定位图案,所述定位标志位于所述校正矩形内部且位于所述二维码的中央;
如果存在,通过透视变换获取校正后的二维码图案;
计算所述两个定位图案之间的方向信息和距离信息;
根据所述方向信息和所述距离信息判断所述二维码图案的编码排列顺序和编码规模;
根据所述编码排列顺序和编码规模读取所述二维码,并转换得到对应的数据。
8.根据权利要求7所述的方法,其特征在于,所述计算所述两个定位图案之间的方向信息和距离信息的步骤,包括:
分别确定所述两个定位图案的特征点;所述特征点包括中心点或端点;
将所述两个定位图案的特征点的连线矢量正交分解得到的两个分量,并根据所述两个分量确定所述二维码图案的解码正方向;所述连线矢量为所述两个定位图案的特征点按照预设顺序连接得到;
将所述连线矢量对应的距离作为距离信息。
9.根据权利要求7所述的方法,其特征在于,所述根据所述方向信息和所述距离信息判断所述二维码图案的编码排列顺序和编码规模的步骤,包括:
获取预设的编码顺序,结合所述方向信息确定起始编码色块的坐标和编码排列顺序;
根据所述距离信息确定编码色块在各个方向上的总长和编码数量;
基于所述总长和所述编码数量计算所述编码色块的步长。
10.根据权利要求9所述的方法,其特征在于,所述根据所述编码顺序和编码规模读取所述二维码的步骤,包括:
根据所述起始编码色块的坐标、所述编码排列顺序和所述步长,依次读取所述二维码。
11.一种二维码的编码装置,其特征在于,所述二维码包括编码区、定位区和校正区;所述定位区设置于所述二维码的中央,包括至少两个定位图案;所述校正区设置于所述二维码的外侧,包括矩形边框;所述编码区设置于所述定位区和所述校正区之间,包括多个用于填充编码数据的色块;所述定位区和所述编码区均在所述校正区内;所述定位区的边长与所述二维码的边长的比例大于预设比例阈值;该装置包括:
转换模块,用于将待编码数据转换为符合预设规则的编码数据;
填充模块,用于将所述编码数据填充至所述编码区;
其中,所述转换模块还用于:根据进制转换规则将所述待编码数据转换为二进制数据;根据预设编码规则在所述二进制数据中加入纠错码,得到符合预设规则的编码数据;
所述填充模块还用于:将所述二进制数据填充至所述编码区中靠近所述定位区的多个色块,将所述纠错码填充至所述编码区中靠近所述校正区的多个色块。
12.一种二维码的解码装置,其特征在于,包括:
获取模块,用于获取包含二维码的待检测图像;
确定模块,用于在所述待检测图像中确定是否存在定位标志和校正矩形;所述定位标志至少包括两个定位图案,所述定位标志位于所述校正矩形内部且位于所述二维码的中央;
校正模块,用于如果存在,通过透视变换获取校正后的二维码图案;
计算模块,用于计算所述两个定位图案之间的方向信息和距离信息;
判断模块,用于根据所述方向信息和所述距离信息判断所述二维码图案的编码排列顺序和编码规模;
读取模块,用于根据所述编码排列顺序和编码规模读取所述二维码,并转换得到对应的数据。
13.一种处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求3至10中任一项所述的方法的步骤。
14.一种具有处理器可执行的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行上述权利要求3至10中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910101998.7A CN109754046B (zh) | 2019-01-31 | 2019-01-31 | 二维码、二维码的编码方法、解码方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910101998.7A CN109754046B (zh) | 2019-01-31 | 2019-01-31 | 二维码、二维码的编码方法、解码方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109754046A CN109754046A (zh) | 2019-05-14 |
CN109754046B true CN109754046B (zh) | 2022-09-27 |
Family
ID=66407357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910101998.7A Active CN109754046B (zh) | 2019-01-31 | 2019-01-31 | 二维码、二维码的编码方法、解码方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109754046B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187284A (zh) * | 2019-07-05 | 2021-01-05 | 杭州海康机器人技术有限公司 | 编码方法、编码图形、编码图形读取方法和拍摄装置 |
CN112183695B (zh) * | 2019-07-05 | 2023-07-14 | 杭州海康机器人股份有限公司 | 编码方法、编码图形、编码图形读取方法和拍摄装置 |
CN111275152A (zh) * | 2020-01-16 | 2020-06-12 | 北京迈格威科技有限公司 | 二维码、二维码的编码方法、解码方法、装置和电子系统 |
CN114152255A (zh) * | 2020-09-08 | 2022-03-08 | 深圳果力智能科技有限公司 | 智能移动机器人定位、导航的控制方法 |
CN113688648B (zh) * | 2021-08-06 | 2022-06-10 | 阿里巴巴(中国)有限公司 | 识别码编码方法 |
CN114027351A (zh) * | 2021-10-29 | 2022-02-11 | 智锐达仪器科技南通有限公司 | 一种用于牲畜胴体的打标系统和解码系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951812A (zh) * | 2017-03-31 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 识别二维码的方法、装置和终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086761A (zh) * | 2006-06-08 | 2007-12-12 | 姜晓航 | 高效信息点阵图形及其生成和解码方法 |
CN104517089B (zh) * | 2013-09-29 | 2017-09-26 | 北大方正集团有限公司 | 一种二维码解码系统及其方法 |
CN105989317B (zh) * | 2015-02-11 | 2021-10-08 | 北京鼎九信息工程研究院有限公司 | 一种二维码的识别方法及装置 |
CN106295755A (zh) * | 2015-05-27 | 2017-01-04 | 东莞文胜鼎电子科技有限公司 | 二维码生成方法、检测方法、检测装置和防伪标签 |
CN108985419B (zh) * | 2018-07-10 | 2021-02-23 | 广州多米诺区块链技术有限公司 | 二维码生成方法、装置及二维码 |
-
2019
- 2019-01-31 CN CN201910101998.7A patent/CN109754046B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951812A (zh) * | 2017-03-31 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 识别二维码的方法、装置和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109754046A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754046B (zh) | 二维码、二维码的编码方法、解码方法、装置及设备 | |
CN105447546A (zh) | 可嵌入大比例图形的二维码及其编码和解码方法和设备 | |
US9042663B2 (en) | Two-level error correcting codes for color space encoded image | |
WO2017198189A1 (zh) | 颜色标识型彩色二维图码的生成、识读方法及装置 | |
CN108876864B (zh) | 图像编码、解码方法、装置、电子设备及计算机可读介质 | |
CN105611291A (zh) | 在视频帧中加入标记信息及检测丢帧的方法和装置 | |
CN108124157B (zh) | 信息交互方法、装置及系统 | |
CN109948762A (zh) | 用于生成二维码的方法和装置 | |
CN115358911A (zh) | 屏幕水印的生成方法、装置、设备和计算机可读存储介质 | |
CN115375527A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN111726615B (zh) | 点云编解码方法及编解码器 | |
US9129346B2 (en) | Image fragmentation for distortion correction of color space encoded image | |
CN113628116A (zh) | 图像处理网络的训练方法、装置、计算机设备和存储介质 | |
US9898834B2 (en) | Method and apparatus for generating a bitstream of repetitive structure discovery based 3D model compression | |
US9014473B2 (en) | Frame of color space encoded image for distortion correction | |
CN110969042B (zh) | 二维码的识别方法、装置、硬件装置 | |
CN109376825B (zh) | 一种二维码生成方法及装置 | |
CN113938666B (zh) | 基于关键帧的视频数据传输方法、装置及存储介质 | |
CN114021595A (zh) | 一种二维码识别方法及装置 | |
CN110348554B (zh) | 数字信息编解码方法、装置、电子设备和存储介质 | |
CN113781287B (zh) | 水印图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN117094349B (zh) | 二维码图形的生成方法、装置、设备及介质 | |
CN109255415A (zh) | 四维码及其识别方法、识别装置和服务器 | |
CN115936047A (zh) | 一种彩色汉信码的编解码方法、电子设备和存储介质 | |
CN117788782A (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 |