用于生成图形编码的方法和系统与流程

文档序号:26141533发布日期:2021-08-03 14:26阅读:565来源:国知局
用于生成图形编码的方法和系统与流程

本公开涉及图形编码,具体来说涉及生成多个图形编码以及从多个图形编码获取信息。



背景技术:

随着信息技术的发展以及个人移动设备的普及,图形编码特别是二维码已经得到越来越多的应用。由于图形编码例如二维码的纠错能力强、制作容易、成本低廉,其越来越多地应用于物流行业、食品安全、交通运输、安防、票证等各个行业,用于传递信息。例如,人们可以通过个人电子设备例如手机扫描二维码来识别二维码以获得信息。

目前仍然需要改进的生成图形编码以及从图形编码获取信息的方法。



技术实现要素:

本公开的一个目的是提供一种用于生成图形编码的方法。

根据本公开的一个方面,提供了一种用于生成图形编码的方法包括:获取要用图形编码表示的第一数据;确定第一数量;将第一数据分成第一组子数据,所述第一组子数据包括第一数量个子数据;以及为第一组子数据中的每个子数据生成图形编码。

根据本公开的一个方面,根据用户输入确定第一数量。

根据本公开的一个方面,通过以下确定第一数量:确定要生成的图形编码的尺寸,以及根据第一数据的大小以及要生成的图形编码的尺寸确定第一数量。

根据本公开的一个方面,根据用户输入确定要生成的图形编码的尺寸。

根据本公开的一个方面,根据图形编码的显示尺寸确定要生成的图形编码的尺寸。

根据本公开的一个方面,该方法还包括获取密钥信息,根据密钥信息确定所生成的第一数量个图形编码的显示顺序;以及根据所确定的显示顺序显示所生成的图形编码。

根据本公开的一个方面,所述图形编码包括qr码。

根据本公开的一个方面,提供了一种用于从多个相关联的图形编码获取信息的方法,包括:获取多个图形编码的图片;识别多个图形编码的图片中的每个图形编码以确定每个图形编码所表示的信息;获取密钥信息;以及根据密钥信息组合每个图形编码所表示的信息。

根据本公开的一个方面,获取多个图形编码的图片包括获取含有多个图形编码的一张图片或获取含有图形编码的多个图片。

根据本公开的一个方面,提供了一种非暂态的计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在由一个或更多个计算设备运行时使得所述一个或更多个计算设备执行前述任一方法。

根据本公开的一个方面,提供了一种计算机系统,所述计算机系统包括:至少一个处理器;和至少一个非暂态的计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器运行时使得所述至少一个处理器执行前述任一方法。

根据本公开的一个方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现前述任一方法。

从参考附图的以下描述中,本公开其他特征和优点将变得清楚。

附图说明

并入说明书中并构成说明书的一部分的附图图示了本公开的实施例,并且与说明书一起用于解释本公开的原理而没有限制。在各图中,类似的标号用于表示类似的项目。在各图中,各个部件不一定是按比例绘制的。

图1是图示出表示不同信息量的二维码的图。

图2a是图示出根据本公开一些实施例的用于生成图形编码的方法的流程图。

图2b是图示出根据本公开一些实施例的用于从多个相关联的图形编码获取信息的方法的流程图。

图3是图示出根据本公开一些实施例的其中可应用本公开的一般硬件环境。

具体实施方式

在以下详细描述中,阐述了许多具体细节以提供对所描述的示例性实施例的透彻理解。但是,对于本领域技术人员清楚的是,所描述的实施例可以在没有这些具体细节中的一些或全部的情况下进行实践。在所描述的示例性实施例中,为了避免不必要地模糊本公开的概念,没有详细描述众所周知的结构或处理步骤。

所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

本公开中呈现的方法的步骤旨在是说明性的。在一些实施例中,该方法可以用未描述的一个或多个附加步骤来完成和/或在没有所讨论的一个或多个步骤的情况下完成。此外,方法的步骤被图示和描述的顺序并不旨在是限制性的。

以下以二维码为例,描述根据本公开的一个或多个实施例的用于生成图形编码的方法以及用于从多个相关联的图形编码获取信息的方法。常用的二维码可以例如是快速响应(qr)码。本领域的技术人员将理解,图形编码不限于qr码,也可以是dm(数据矩阵)码、太阳码等等。本公开的用于生成图形编码的方法以及用于从多个相关联的图形编码获取信息的方法也可以应用于3d图形编码。本公开所述的图形编码能够被具有照相机的便携式个人电子设备读取(或扫描)。这里,便携式个人电子设备可以包括智能手机、平板电脑等。

图1是图示出表示不同信息量的二维码的图。

在图1中从左到右依次示出了四张二维码图片,这四张二维码图片所表示的信息依次为“abcdefg”,“abcdefgabcdefgabcdefgabcdefg”,“abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg”以及“abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg”。也就是说,从左到右的二维码依次表示1个、4个、8个及16个“abcdefg”。从图中可以看出,随着所表示的信息的量的增加,二维码图片越来越复杂,可读性越来越差。相比较而言,在二维码的图片的显示尺寸相同的情况下,图1中位于最右侧的二维码比图1中的位于最左侧的二维码的可读性差。尤其是在外界环境不适宜的情况下,例如光线较暗的情况下,读取表示较大信息量的二维码可能会存在困难。另一方面,对于图形密度较大的二维码,较大的展示尺寸才能使得识别更容易。然而,在现实环境中,由于显示二维码的物理介质(例如纸张、屏幕、画布等)的限制,常常无法提供较大的展示尺寸,这给二维码的识别增加了难度。

为了解决上述问题中的一个或多个,本公开提供了一种用于生成图形编码的方法。下面将参考图2a描述用于生成图形编码的方法。

在201中,获取要用图形编码表示的第一数据。本领域的技术人员将理解,该第一数据可以是要用图形编码例如二维码表示的任何数据。例如但不限于,该第一数据可以是线下活动时处于弱网或者无网络状态的展示设备所收集的数据。这些数据无法通过网络传输,而是要以二维码的方式由统计人员获取,以用于后续解读。

在202中,确定第一数量。

在根据本公开的一个实施例中,根据用户输入确定第一数量。例如,用户可以通过自己的移动设备输入第一数量。第一数量可以是大于2的整数。

在根据本公开的一个实施例中,可以通过以下步骤确定第一数量:确定要生成的图形编码的尺寸,以及根据第一数据的大小以及要生成的图形编码的尺寸确定第一数量。本领域的技术人员将理解,此处描述的图形编码的尺寸对于二维码来说可以是二维码的版本,例如,对于尺寸为version1的二维码,其是21x21的矩阵,对于尺寸为version2的二维码,其是25x25的矩阵。假设21x21的矩阵能够表示的数据量为a,要表示的第一数据的大小大于6a而小于7a,那么可以确定第一数量为7。

在根据本公开的一个实施例中,可以根据用户输入确定要生成的图形编码的尺寸。可以由用户根据实际需要来确定所要生成的二维码的尺寸。例如用户可以根据显示环境以及读取难度来确定二维码的尺寸。具体来说,例如当外界环境的光线适宜读取时或者显示二维码的物理介质(例如纸张、屏幕、画布等)较大时,可以选择较复杂的版本即较大尺寸的二维码,而当外界环境的光线不适宜读取时或者显示二维码的物理介质较小不足以显示复杂的二维码时,可以选择较小尺寸的二维码。

在根据本公开的一个实施例中,可以根据图形编码的显示尺寸确定要生成的图形编码的尺寸。此处,所描述的图形编码的显示尺寸不同于前述图形编码的尺寸。本领域的技术人员将理解,对于同一尺寸的图形编码,可以通过缩放其图片来改变图形编码的显示尺寸。当图形编码的显示尺寸被确定时,就可以根据显示环境的读取难易度确定要使用的图形编码的尺寸。例如,当图形编码的显示尺寸较大时,可以选择版本较高的图形编码的尺寸。而当显示尺寸受到限制而较小时,只能选择版本较低的图形编码的尺寸,以便于读取。

回到图2a,在203中,将第一数据分成第一组子数据,所述第一组子数据包括第一数量个子数据。在根据本公开的一个实施例中,可以平均分配第一数据使得每个子数据大致具有相同的数据量。例如,如前所述,假设21x21的矩阵能够表示的数据量为a,要表示的第一数据的大小大于6a而小于7a,那么可以确定第一数量为7。可以将第一数据分成包括7个子数据的一组子数据,其中6个子数据的大小为a,而剩下的数据包含在第7个子数据中。

本领域的技术人员将理解,可以使用其它方式来将第一数据分组成第一组子数据。例如,可以根据所要生成的二维码的尺寸来选择其对应的数据。也就是说,不必使得每个子数据具有相同的大小。例如,当要生成6个二维码,其中三个具有version1的尺寸,而另外三个具有version2的尺寸时,可以将第一数据分成具有不同大小的六个子数据,其中三个子数据的大小适应version1的尺寸,而另外三个子数据的大小适应version2的尺寸。

在204中,为第一组子数据中的每个子数据生成图形编码。本领域的技术人员可以理解,可以利用合适的技术将每个子数据生成图形编码,例如但不限于,例如可以将每个子数据生成二维码、太阳码或者三维图形编码等。

根据本公开的上述方法,对于较大的数据,可以生成多个合适尺寸的图形编码,使得能够适应各种需求,以增加图形编码的可读性,从而便利数据传输。

在根据本公开的一个实施例中,还可以对所生成的多个图形编码的显示顺序进行加密。在该实施例中,该方法还可以包括获取密钥信息,根据密钥信息确定所生成的第一数量个图形编码的显示顺序;以及根据所确定的显示顺序显示所生成的图形编码。例如假设第一数量为10,该10个图形编码的编号依次为0123456789,密钥信息可以是9326874510,可以以密钥信息中编号的顺序来显示该10个图形编码。本领域的技术人员将理解,上述加密方式仅仅是示例,可以以各种合适的方式对多个图形编码的显示进行加密。

下面将参考图2b描述用于从多个相关联的图形编码获取信息的方法。

在205中,获取多个图形编码的图片。

在根据本公开的一个实施例中,获取多个图形编码的图片包括获取含有多个图形编码的一张图片。在该实施例中,当图形编码是二维码时,可以一次同时扫描多个二维码,而无需在多个二维码之间进行选择。

在根据本公开的另一个实施例中,获取多个图形编码的图片可以包括获取含有图形编码的多个图片。在该实施例中,可以离线存储含有图形编码的多个图片。

返回图2b,在206中,识别多个图形编码的图片中的每个图形编码以确定每个图形编码所表示的信息。在207中,获取密钥信息。在208中,根据密钥信息组合每个图形编码所表示的信息。如上述例子中所述,密钥信息可以是9326874510。根据该顺序组合从每个图形编码中所解码的信息,才能获得正确的信息。这为使用图形编码传递信息提供了安全性。本领域的技术人员将理解,上述加密方式仅仅是示例,可以以各种合适的方式对多个图形编码的显示进行加密。

根据本公开的一个方面,提供了一种非暂态的计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在由一个或更多个计算设备运行时使得所述一个或更多个计算设备执行前述任一方法。

根据本公开的一个方面,提供了一种计算机系统,所述计算机系统包括:至少一个处理器;和至少一个非暂态的计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器运行时使得所述至少一个处理器执行前述任一方法。

根据本公开的一个方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现前述任一方法。

硬件实现

图3是图示出根据本公开一些实施例的其中可应用本公开的一般硬件环境。

参考图3,现在将描述作为其中可应用本公开的各方面的硬件设备的示例的计算设备300。计算设备300可以是被配置成执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数字助理、智能电话、便携式相机或其任意组合。上述服务器可以整体或至少部分地由计算设备300或类似的设备或系统来实现。

计算设备300可以包括能够经由一个或多个接口与总线302连接或者与总线302通信的元件。例如,计算设备300可以包括总线302、一个或多个处理器304、一个或多个输入设备306以及一个或多个输出设备308。一个或多个处理器304可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(诸如专用处理芯片)。输入设备306可以是能够向计算设备输入信息的任何类型的设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备308可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端和/或打印机。计算设备300还可以包括非瞬态存储设备310或与非瞬态存储设备310连接,非瞬态存储设备310可以是非瞬态的并且可以实现数据存储库的任何存储设备,并且可以包括但不限于盘驱动器、光学存储设备、固态存储装置、软盘、柔性盘、硬盘、磁带或任何其它磁性介质、紧凑型盘或任何其它光学介质、rom(只读存储器)、ram(随机存取存储器)、高速缓存存储器和/或任何其它存储器芯片或盒带、和/或计算机可以从其读取数据、指令和/或代码的任何其它介质。非瞬态存储设备310可以是可从接口拆卸的。非暂态存储设备310可以具有用于实现上述方法和步骤的数据/指令/代码。计算设备300还可以包括通信设备312。通信设备312可以是能够与外部装置和/或与网络通信的任何类型的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外通信设备、无线通信装备和/或诸如蓝牙tm设备、302.11设备、wifi设备、wimax设备、蜂窝通信设施等的芯片组。

总线302可以包括但不限于工业标准体系架构(isa)总线、微通道体系架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线和外围组件互连(pci)总线。

计算设备300还可以包括工作存储器314,工作存储器314可以是可以存储对处理器304的工作有用的指令和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器和/或只读存储器设备。

软件要素可以位于工作存储器314中,包括但不限于操作系统316、一个或多个应用程序318、驱动程序和/或其它数据和代码。用于执行上述方法和步骤的指令可以被包括在一个或多个应用程序318中。软件要素的指令的可执行代码或源代码可以存储在非瞬态计算机可读存储介质(诸如上述(一个或多个)存储设备310)中,并且可以在可能编译和/或安装的情况下被读入到工作存储器314中。软件要素的指令的可执行代码或源代码也可以从远程位置下载。

从上述实施例中,本领域技术人员可以清楚地知晓,可以通过软件及必要的硬件来实现本公开,或者可以通过硬件、固件等来实现本公开。基于这种理解,可以部分地以软件形式来实现本公开的实施例。计算机软件可以存储在计算机的可读存储介质中,比如软盘、硬盘、光盘或闪存中。计算机软件包括使得计算机(例如个人计算机、服务站或网络终端)运行根据本公开的各个实施例的方法或其一部分的一系列指令。

已经这样描述了本公开,清楚的是,本公开可以以许多种方式变化。这些变化不被视为背离了本公开的精神和范围,而是对于本领域技术人员而言显而易见的所有这种修改意欲被包括在以下权利要求的范围中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1