发明内容
本文旨在保证用户存储容量的基础上突破现有存储结构(例如二维码)形状的限制,将存储结构融入产品图文设计之中,避免对存储结构周围图文产生视觉影响,为用户提供个性化存储结构服务。
为了实现上述目标,本文的第一方面提供一种具有存储功能的加密图形结构,由至少一种存储结构相邻但不重叠的排列组成,所述存储结构包括:至少三个子单元,所述子单元围绕同一个中心点以相互不重叠的方式排列;
每一子单元由码元组成,位于所述子单元远离所述顶点一侧的码元组成定位区域,其余码元组成数据区域;
各定位区域相对于所述中心点非对称分布,用于定位所述存储结构的位置;
所述数据区域用于存储用户数据。
进一步实施例中,存储结构之间的区域为干扰结构,干扰结构由已填充的码元组成。
进一步实施例中,子单元为四边形,存储结构中子单元的其中一定点为所述中心点。
进一步实施例中,其余码元还组成功能区域,用于存储功能数据。
进一步实施例中,所述功能区域位于所述定位区域及所述数据区域之间,所述功能数据分布存储于各所述子单元的功能区域中。
进一步实施例中,所述编码功能数据包括:版本信息、掩码信息、纠错等级信息。
进一步实施例中,所述定位区域还用于供识读程序确定功能区域的位置。
进一步实施例中,存储结构中表示不同数值的码元表现形式不同。
进一步实施例中,所述码元的表现形式为颜色或图案。
本文的第二方面提供一种具有存储功能的加密图形结构编码方法,包括:
接收用户输入的用户数据、子单元数量N及存储结构数量;
根据所述子单元数量N绘制包括N个由码元组成的子单元的空白存储结构,所述子单元围绕同一个中心点以相互不重叠的方式排列,每一子单元由码元组成,所述子单元远离所述中心点一侧的码元组成定位区域,其余码元组成数据区域,各定位区域已填充,用于定位所述存储结构的位置;
将所述用户数据按第一预定数据编解码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域,得到存储结构;
根据所述存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。
进一步实施例中,在所述存储结构之间的区域生成包括码元的干扰结构,并随机填充干扰结构中的码元。
进一步实施例中,接收用户数据的同时,还接收功能数据或根据用户数据确定功能数据;
每一子单元中还包括一功能区域;将所述用户数据按第一预定数据编解码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域进一步为:
将所述用户数据按所述功能数据对应的编码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域;
将所述功能数据按第二预定数据编解码规则进行编码,将编码后得到的功能二进制数据填充至所述子单元的功能区域。
进一步实施例中,接收用户数据的同时,还接收用户对存储结构中不同数值码元表现形式的设定信息;
将编码得到的用户二进制数据填充至所述子单元的数据区域进一步为:根据设定信息,将编码得到的用户二进制数据填充至所述子单元的数据区域。
本文的第三方面提供一种具有存储功能的加密图形结构编码装置,包括:
输入模块,用于接收用户输入的用户数据、子单元数量N及存储结构数据。
预生成模块,用于根据所述子单元数量N绘制包括N个由码元组成的子单元的空白存储结构,所述子单元围绕同一个中心点以相互不重叠的方式排列,每一子单元由码元组成,所述子单元远离所述中心点一侧的码元组成定位区域,其余码元组成数据区域,各定位区域已填充,用于定位所述存储结构的位置;
编码填充模块,用于将所述用户数据按第一预定数据编解码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域,得到存储结构;
渲染模块,用于根据所述存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。
进一步实施例中,输入模块还用于接收功能数据或根据用户数据确定功能数据;
所述每一子单元还包括:一未填充的功能区域;
所述编码填充模块将所述用户数据按第一预定数据编解码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域进一步为:
将所述用户数据按所述功能数据对应的编码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域;
将所述功能数据按第二预定数据编解码规则进行编码,将编码后得到的功能二进制数据填充至所述子单元的功能区域。
本文的第四方面提供一种具有存储功能的加密图形结构识别方法,包括:
采集加密图形结构图像;
搜索加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域的位置;
按第一预定数据编解码规则,解码数据区域中各码元,得到用户数据。
本文的第五方面提供一种具有存储功能的加密图形结构识别方法,包括:
采集加密图形结构图像;
搜索加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域与功能区域的位置;
利用第二预定编解码规则解码从功能区域中读取到的数据,得到功能数据;
利用所述功能数据对应的编解码规则解码从数据区域中读取到的数据,得到用户数据。
进一步实施例中,搜索定位区域之后,还包括:
利用定位区域,对存储结构图形进行图形校正和变换。
本文的第六方面提供一种具有存储功能的加密图形结构识别装置,包括:
采集模块,用于采集加密图形结构图像;
定位模块,用于搜索加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域的位置;
解码模块,用于按第一预定数据编解码规则解码从数据区域中读取到的数据,得到用户数据。
本文的第七方面提供一种具有存储功能的加密图形结构识别装置,包括:
采集模块,用于采集具有存储功能的加密图形结构图像;
定位模块,用于搜索加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域与功能区域的位置;
第一解码模块,用于利用第二预定编解码规则解码从功能区域中读取到的数据,得到功能数据;
第二解码模块,用于利用所述功能数据对应的编解码规则解码从数据区域中读取到的数据,得到用户数据。
本文的第八方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任一实施例所述的具有存储功能的加密图形结构编码方法或具有存储功能的加密图形结构识别方法。
本文的第九方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现前述任一实施例所述的具有存储功能的加密图形结构编码方法或具有存储功能的加密图形结构识别方法。
本文提出的具有存储功能的加密图形结构、加密图形结构编码方法及装置、识别方法及装置,通过将具有存储功能的加密图形结构设计如下:由至少一种存储结构相邻但不重叠的排列组成,所述存储结构包括:至少三个子单元,子单元围绕同一个中心点以相互不重叠的方式排列;每一子单元由码元组成,位于所述子单元远离所述顶点一侧的码元组成定位区域,其余码元组成数据区域,各定位区域相对于所述中心点非对称分布,用于定位存储结构的位置,数据区域用于存储用户数据。能够借助加密图形结构为用户提供灵活多变的存储结构外观形状,突破传统存储结构对外观形状的限制,满足用户在不同使用场景的需求,使得加密图形结构能够与产品上其它图文设计相融合。通过子单围绕同一个中心点以相互不重叠的方式排列,能够提高数据区域的存储量。通过由位于子单元远离顶点一侧的码元组成定位区域,能够突破现有存储结构中定位区域的限制、唯一定位存储结构的位置,且能够保证数据区域的存储量。通过相邻但不重叠的排列存储结构能够使得存储结构具有冗余特性,即使部分定位区域在流通使用过程中受到污损,也可以正常解码,提升了存储结构的适应能力和容错性能,另外,还可以隐藏存储结构的具体结构,使得恶意破坏者不能直接确定存储结构,增加恶意破坏者的破坏难度。
为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
具体实施方式
为了使本文的技术特点及效果更加明显,下面结合附图对本文的技术方案做进一步说明,本文也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本文的保护范畴。
在本说明书的描述中,参考术语“一实施例”、“一具体实施例”、“一些实施方式”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本文的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本文的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
考虑到现有存储结构为固定结构,具有结构单一的特点,无法为用户提供个性化服务。为了解决该技术问题,本文一实施例中,提供了一种具有存储功能的加密图形结构,如图1A~图1C、图2A~图2E、图3所示,具有存储功能的加密图形结构由至少一种存储结构10相邻但不重叠的排列组成,存储结构10具有类似花瓣的结构特征,存储结构包括:
N个子单元100,其中,N大于或等于3,子单元100围绕同一个中心点200以相互不重叠的方式呈放射状排列。各子单元100的形状可以相同(如图2A至图2E所示),也可以不同。具体实施时,各子单元的个数、形状可根据用户需求进行设定。
每一子单元100具有若干个码元300,若干个码元300相互不重叠地排布组成整个存储结构,本文对码元的具体形状和排布形式不作具体限定,可以是无间距排列也可以是有间距排布,可以是均匀分布也可以是不规则分布。
每一子单元100中的码元被划分为一定位区域110及一数据区域120,如图3所示。子单元100远离所述中心点一侧的码元组成定位区域110,其余码元组成数据区域120,数据区域120用于存储用户数据。定位区域的面积并非完全相同,用于定位存储结构的位置,定位的内容包括存储结构的范围、方位、角度、是否镜像翻转等位置信息。
详细的说,子单元100为类似花瓣的结构,可以为对称四边形,例如为菱形、正方形等,还可以为对称五边形、六边形等,本文对子单元的具体形状不作限定。优选的,子单元为四边形,且各子单元100的其中一顶点为中心点,各子单元100的中心点相互重叠,相邻子单元100的侧边可以重叠或非重叠,对于非重叠的情况,各子单元100之间可以等间距(如图2A至图2E)或不等间距排列,具体排列方式可于存储结构生成之前由用户进行设定,或由程序预先设定,本文对各子单元之间的位置关系不作限定。各子单元与中心点相对应的一角设置有定位区域。各子单元的码元所占面积相等,且与子单元形状相同。
一些实施方式中,各子单元的定位区域面积均不相同,分别占不同码元的存储区域,如图3所示。其它实施方式中,各子单元的定位区域部分相同,且为非对称分布,此处所述非对称指的是相对于中心点200而言的,如图3及图4所示。本文对各子单元定位区域面积分布不作具体限定,凡是能够根据定位区域定位存储结构方位的分布方式,均属于本文保护范围。具体实施时,定位区域110还可以设置于其它位置,例如靠近中心点的位置。各子单元100数据区域中存储的用户数据各不同相同或部分相同,用户数据存储时先对用户数据进行编码处理,得到用户二进制数据,然后存储用户二进制数据,存储方式包括如下两种:1)先将用户二进制数据划分为N组子数据,然后按照第一预定填充规则将N组子数据分别填充至N个子单元的数据区域中;2)直接按照第二预定填充规则将用户二进制数据存储于N个子单元的数据区域中。第一填充规则及第二填充规则中规定填充顺序,例如从上至下,从左至右等,本文对第一填充规则及第二填充规则不做具体限定。
一加密图形结构的各存储结构中存储数据可以相同,也可以部分相同,或完全不同。为了保证能够识别出存储数据,对于存储数据不同的情况,需在各存储结构中记录存储内容编号。加密图形结构中包含的存储结构个数可以于加密图形结构生成时系统自动确定,也可以由用户指定。干扰结构由码元组成,具体实施时,干扰结构中的码元可存储干扰信息,或干扰结构中存储与存储结构不同的存储数据。
如图1B所示,存储结构10之间的区域构成干扰结构20,干扰结构20的形状视存储结构10的排列而定,若存储结构10中子单元为相同形状,则加密图形结构中的干扰结构20形状相同。图1B仅为示例性说明加密图形结构中的存储结构10及干扰结构20,实际应用时,为了使存储结构具有更好的隐藏效果,可不用区分出存储结构及干扰结构的不同之处,如图1C所示。
本实施例能够借助加密图形结构为用户提供灵活多变的存储结构外观形状,突破传统存储结构对外观形状的限制,满足用户在不同使用场景的需求,使得加密图形结构能够与产品上其它图文设计相融合。通过由位于子单元远离顶点一侧的码元组成定位区域,能够突破现有存储结构中定位区域的限制、唯一定位存储结构的位置,且能够保证数据区域的存储量。通过定位区域相对于中心点非对称分布,因此,存储结构的定位区域具有冗余特征,能够保证部分定位区域被污损的情况下,仍能搜索出部分未被污损的定位区域来正确确定存储结构的位置。通过相邻但不重叠的排列存储结构能够使得存储结构具有冗余特性,即使部分定位区域在流通使用过程中受到污损,也可以正常解码,提升了存储结构的适应能力和容错性能,另外,还可以隐藏存储结构的具体结构,使得恶意破坏者不能直接确定存储结构,增加恶意破坏者的破坏难度。
本文一实施例中,存储结构中的各区域由码元组成,表示不同数值的码元表现形式不同,其中,码元表现形式用颜色或图案表现。例如图7A所示,存储二进制“1”的码元颜色为黑色,存储二进制“0”的码元颜色为灰色,又例如图7B所示,存储二进制“1”的码元为菱形,存储二进制“0”的码元为圆形。
由于本实施例中存储结构的码元可采用不同码元表现形式,受印刷精度的限制,普通商业印刷时,不同表现形式的码元容易出现晕染,进而使得存储结构无法使用,能够达到防伪目的。具体实施时,还可将不同码元表现形式与防伪油墨、微缩图文等结合,使得所述存储结构具有更强的防伪功能,可应用于防伪产品中。
在一些实施方式中,代表0和1的码元可利用两种具有不同光谱特征的防伪油墨进行套印印刷,使得所述存储结构在特定光谱条件下呈现特殊光谱特征,例如荧光、红外等。
在一些实施方式中,代表0和1的码元可选取两种不同的微缩图案进行印刷,由于实际应用中,单个码元尺寸通常较小,因此单个微缩图案码元的印刷对设备印刷精度提出了较高的要求,普通商业印刷可能无法完成包含精细微缩图案的码元印刷,因此具有一定的防伪特性。
本文一实施例中,为了便于识读加密图形结构中的存储结构,定位区域110位于子单元100远离中心点200的一端。进一步的,为了避免定位区域110与数据区域120产生干扰,定位区域110与数据区域120填充采用如下两种实施方式中的一种:
(1)定位区域110中的码元均填充为“1”或“0”。定位区域110与数据区域120之间码元用区别于定位区域110的数值填充,例如,定位区域110中的码元填充为“1”,则定位区域110与数据区域120之间的码元填充为“0”,其中,定位区域110与数据区域120之间的码元指的是定位区域外围码元直接接触的码元,以便识读程序能够区分定位区域110和数据区域120。
(2)定位区域110中与数据区域120相邻位置的码元填充一数值,在定位区域110其它位置处的码元填充另一数值,例如,定位区域110中与数据区域120相邻的码元填充“0”,则在定位区域110的其它位置处填充“1”,又例如,定位区域110中与数据区域120相邻的码元填充“1”,则在定位区域110的其它位置处填充“0”。
本文一实施例中,如图5所示,存储结构中每一子单元100包括:定位区域110、功能区域130及数据区域120。定位区域110用于定位存储结构的位置,功能区域130用于存储功能数据,数据区域120用于存储用户数据。
功能区域130位于定位区域110及数据区域120之间,功能数据可由用户设定或由程序根据用户数据自动确定。定位区域110与功能区域130构成非数据区域,可按预先规定将子单元远离中心点的预定面积的区域设定为非数据区域,例如图5所示的4×4的码元区域。此处需要说明的是,图5中定位区域110及功能区域130所占码元区域仅为示例性说明,具体实施时,可根据需求设定,本文为对此不作限定。
具体实施时,为了准确区分功能区域130与定位区域110,定位区域110中与功能区域130相邻位置的码元填充一数值,在定位区域110其它位置处的码元填充另一数值,例如,定位区域110中与功能区域130相邻的码元填充“0”,则在定位区域110的其它位置处填充“1”,又例如,定位区域110中与功能区域130相邻的码元填充“1”,则在定位区域110的其它位置处填充“0”。
进一步实施例中,为了保证数据区域120的存储容量,功能数据分布存储于各子单元的功能区域130中,即将功能数据划分为与子单元个数相同的N组子功能数据,将每组子功能数据存储于每一子单元的功能区域中。各子单元中功能区域130存储容量由定位区域110及非数据区域的面积确定,以图5为例,非数据区域面积为4×4个码元面积,各子单元中定位区域110包括子单元顶部黑色码元位置及黑色码元相连的白色码元位置,功能区域130为灰色码元位置。
本文一实施例中,功能区域存储的功能数据包括单不限于:版本信息、掩码信息、纠错等级信息。
版本信息用于限定存储结构的最大存储量、码元的划分形式,如图6A至6F所示,不同版本之间组成存储结构的码元数量不一样,容量大的版本码元数多,容量小的版本码元数少。不同版本信息对应存储结构的不同编解码规则。存储结构编码时,根据版本信息对应的编解码规则对用户数据进行编码,得到用户二进制数据。存储结构解码时,根据版本信息对应的编解码规则对数据区域的码元进行解码。
掩码信息用于对编码得到的用户编码数据做掩码处理以更新用户二进制数据,使得最终呈现的存储结构图形的颜色分布更加均匀。通过掩码处理使存储结构图形中的深色和浅色(例如黑色和白色,黑色代表二进制1,白色代表二进制0)区域能够比率最优的分布。
纠错等级例如可以沿用传统存储结构的4种纠错等级(L、M、Q、H),也可以定义新的纠错等级。具体实施时,根据纠错等级和用户存储结构数据,通过纠错算法(可以选择里德-所罗门纠错(reed solomon error correction)算法,也可选择其他算法)计算得到纠错数据,将纠错数据加入至用户二进制数据中以更新用户二进制数据。通过纠错数据能够使得存储结构在部分污损、残缺等情况下,识读程序仍能还原用户数据。
下面以N=6为例,详细说明本文所述存储结构的实现方式。如图7A所示,存储结构具有6个子单元710,该6个子单元710围绕同一个中心点720(各子单元的重叠点)相互不重叠地排列,且子单元710之间为无间距排列。每个子单元由若干个码元组成,若干个码元相互不重叠地排布组成整个存储结构。子单元包括定位区域711、功能区域712及数据区域713,6个子单元中远离顶点的顶部位置4×4的码元区域(如图7A中虚线框处的区域)为定位区域711及功能区域712,定位区域711包括顶部黑色码元及其周围灰色码元(即与黑色码元直接接触的码元),4×4的码元区域中的其余码元构成功能区域712。定位区域711的码元填充具有固定形式,功能区域712码元根据用户设定的功能数据填充,数据区域713码元根据用户输入的用户数据填充,具体的,码元填充二进制数据0或1,例如,码元被填充表示二进制数值1,码元空白表示二进制数值0,或选取两种不同的颜色分别表示二进制数值0和1,如图7A所示。
本文一实施例中,还提供一种所述具有存储功能的加密图形结构编码方法,如图8所示,包括:
步骤801,接收用户输入的用户数据、用户选择的子单元数量N(N≥3)及存储结构数量。具体实施时,用户数据、子单元数量及存储结构数量可由用户通过设置界面(如图9所示)输入,本文对设置界面的布局不做限定,只要能够供用户输入用户数据及选定子单元数量即可。
步骤802,根据子单元数量N绘制空白存储结构,空白存储结构包括N个子单元,子单元围绕同一个中心点以相互不重叠的方式排列。每一子单元由码元组成,包括一已填充的定位区域及一未填充的数据区域,各定位区域相对于所述中心点非对称分布,位于所述子单元远离所述顶点的一端,用于定位所述存储结构的位置。
步骤803,将用户数据按第一预定数据编解码规则进行编码,将编码得到的用户二进制数据填充至子单元的数据区域,得到存储结构。
具体实施时,生成存储结构之后,还可根据用户设定对存储结构进行美化,例如在存储结构周边加上图像、在存储结构中间添加LOGO等。
步骤804,根据所述存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。实施时,还可在存储结构之间的区域生成包括码元的干扰结构,并随机填充干扰结构中的码元。
为了便于具有存储功能的加密图形结构编码方法的实施,本文所述的具有存储功能的加密图形结构编码方法可设计成为APP的方式运行于智能终端。
本实施例能够保证用户存储容量的基础上为用户提供灵活多变的存储结构外观形状,突破传统存储结构对外观形状的限制,满足用户在不同使用场景的需求。
本文一实施例中,为了保证加密图形结构中存储结构分布均匀及受损失仍能识别出来,如图10所示,具有存储功能的加密图形结构编码方法包括:
步骤1001,接收用户输入的用户数据及用户选择的子单元数量N(N≥3)及存储结构数量。
步骤1002,根据子单元数量N绘制空白存储结构,空白存储结构包括N个子单元,子单元围绕同一个中心点以相互不重叠的方式排列。每一子单元包括一已填充的定位区域及一未填充的数据区域,各定位区域相对于所述中心点非对称分布,用于定位所述存储结构的位置。
步骤1003,将用户数据按第一预定数据编解码规则进行编码,得到用户二进制数据。
步骤1004,对用户二进制数据进行纠错及掩码处理,以更新用户二进制数据,将更新得到的用户二进制数据按填充至子单元的数据区域的码元中,得到存储结构。具体实施时,先根据用户二进制数据生成纠错码,将用户二进制数与纠错码共同构成新的二进制数据,然后对新的二进制数据进行加掩码操作,得到更新后的用户二进制数据。
步骤1005,根据存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。
本文一实施例中,还提供另一具有存储功能的加密图形结构编码方法,适用于图6A-图7B所示存储结构,如图11所示,包括:
步骤1101,接收用户输入的用户数据、功能数据、用户选择的子单元数量N(N≥3)及存储结构数量。具体实施时,用户数据、子单元数量及存储结构数量可由用户通过设置界面。
步骤1102,根据子单元数量N绘制空白存储结构,空白存储结构包括N个子单元,子单元围绕同一个中心点以相互不重叠的方式排列。每一子单元包括一已填充的定位区域及一未填充的数据区域,各定位区域相对于所述中心点非对称分布,用于定位所述存储结构的位置。
步骤1103,将用户数据按功能数据对应的编码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域。一具体实施方式中,功能数据包括:版本信息、掩码信息、纠错等级信息。按功能数据对应的编码规则对用户数据进行编码的过程包括:
(1)根据版本信息对应的编解码规则对用户数据进行编码,得到用户二进制数据,具体实施时,为了节省功能数据的空间,存储结构的版本信息还可通过定位区域确定,识读程序通过分析定位区域中码元尺寸,能够确定存储结构的版本信息。
(2)按纠错等级信息确定纠错数据,将纠错数据与用户二进制数据共同组成待存储的二进制数据;
(3)对待存储的二进制数据按掩码信息做掩码处理以更新待存储的二进制数据,通过对待存储的二进制数据进行掩码处理,能够使得表示0和1的码元在存储结构中分布更加均匀。
步骤1104,将所述功能数据按第二预定数据编解码规则进行编码,将编码后得到的功能二进制数据填充至所述子单元的功能区域。具体实施时,第二预定数据编解码规则可以与第一预定数据编解码规则相同,也可以不同。第二预定数据编解码规则还用于对功能数据进行纠错及掩码处理。
本文一实施例中,上述步骤1101中,接收用户数据的同时,还接收用户对存储结构中不同数值码元表现形式的设定信息,例如,设定“1”用红色表示,“0”用黄色表示,或者设定“1”用圆形表示,“0”用三角形表示等,本文对设定信息具体为何不做限定。
上述步骤1103中将编码得到的用户二进制数据填充至所述子单元的数据区域及步骤1104将编码后得到的功能二进制数据填充至所述子单元的功能区域进一步为:根据设定信息,将编码得到的用户二进制数据填充至所述子单元的数据区域及将编码后得到的功能二进制数据填充至所述子单元的功能区域。
步骤1105,根据所述存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。
基于同一发明构思,本文还提供一种与图8相对应的具有存储功能的加密图形结构编码装置,如图12所示,由于该具有存储功能的加密图形结构编码装置解决问题的原理与上述具有存储功能的加密图形结构编码方法相似,因此,该具有存储功能的加密图形结构编码装置的实施可参见上述具有存储功能的加密图形结构编码方法,重复之处不再赘述。具体的,具有存储功能的加密图形结构编码装置包括:
输入模块1210,用于接收用户输入的用户数据、用户选择的子单元数量N及存储结构数量。
预生成模块1220,用于根据所述子单元数量N绘制空白存储结构,所述空白存储结构包括N个子单元,每一子单元由码元组成,所述子单元远离所述中心点一侧的码元组成定位区域,其余码元组成数据区域,各定位区域已填充,用于定位所述存储结构的位置。
编码填充模块1230,用于将所述用户数据按第一预定数据编解码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域,得到存储结构。
渲染模块1240,用于根据所述存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。
本文一实施例中,还提供一种图11相对应的具有存储功能的加密图形结构编码装置,如图13所示,具有存储功能的加密图形结构编码装置包括:
输入模块1310,用于接收用户输入的用户数据、功能数据、用户选择的子单元数量N(N≥3)及存储结构数量。
预生成模块1320,用于根据子单元数量N绘制空白存储结构,空白存储结构包括N个子单元,子单元围绕同一个中心点以相互不重叠的方式排列。每一子单元包括一已填充的定位区域、一未填充的数据区域及一未填充的功能区域,各定位区域相对于所述中心点非对称分布,用于定位所述存储结构的位置。
第一填充模块1330,用于将所述用户数据按功能数据对应的编码规则进行编码,将编码得到的用户二进制数据填充至所述子单元的数据区域。
第二填充模块1340,用于将功能数据按第二预定数据编解码规则进行编码,将编码后得到的功能二进制数据填充至所述子单元的功能区域。
进一步的,输入模块1310接收用户数据的同时,还接收用户对存储结构中不同数值码元表现形式的设定信息,例如,设定“1”用红色表示,“0”用黄色表示,或者设定“1”用圆形表示,“0”用三角形表示等,本文对设定信息具体为何不做限定。
第一填充模块1330将编码得到的用户二进制数据填充至所述子单元的数据区域及第二填充模块1340将编码后得到的功能二进制数据填充至所述子单元的功能区域进一步为:根据设定信息,将编码得到的用户二进制数据填充至所述子单元的数据区域及将编码后得到的功能二进制数据填充至所述子单元的功能区域。
渲染模块1350,用于根据所述存储结构数量,相邻但不重叠的排列所述存储结构,得到具有存储功能的加密图形结构。
本文一实施例中,还提供一种具有存储功能的加密图形结构的识别方法,如图14所示,包括:
步骤1410,采集加密图形结构图像。
实施时,从摄像装置(例如带摄像头的移动终端、扫码器等)中采集加密图形结构图像。为了便于识别加密图形结构中的存储结构,得到加密图形结构图像之后,还对加密图形结构图像进行预处理,其中,预处理包括但不限于去噪声、二值化处理等。
步骤1420,搜索加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域的位置。
实施时,按定位区域的设定规则(例如定位区域位于各子单元远离中心点的一侧,包括该侧填充为同一数值的码元及该些码元相邻的码元)搜索存储结构图像中的定位区域。还可以利用预先训练的定位区域识别模型搜索存储结构图像中的定位区域。进一步的,为了保证存储结构数据的识读精度,本步骤确定出定位区域之后,还包括:利用定位区域,对存储结构图形进行图形校正和变换。
步骤1430,按第一预定数据编解码规则解码从数据区域中读取到的数据,得到用户数据。具体的,第一预定数据编解码规则中规定有码元读取顺序、去掩码方法、纠错方法等。
本文一实施例中,还提供一种适用于图6A至图7B所示具有存储功能的加密图形结构的识别方法,如图15所示,包括:
步骤1510,采集加密图形结构图像。
步骤1520,搜索加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域与功能区域的位置。进一步的,为了保证存储结构数据的识读精度,本步骤确定出定位区域之后,还包括:利用定位区域,对存储结构图形进行图形校正和变换。
步骤1530,利用第二预定编解码规则解码从功能区域中读取到的数据,得到编码功能数据。
步骤1540,利用功能数据对应的编解码规则解码从数据区域中读取到的数据,得到用户数据。
步骤1530及步骤1540解码时,先识别功能区域及数据区域中码元的表现形式,例如颜色或图案,接着根据识别出的表现形式对应得到码元的值,然后得到功能数据或用户数据。
一具体实施方式中,功能数据包括版本信息、掩码信息、纠错等级信息,利用功能数据对应的编解码规则解码的过程包括:
(1)根据版本信息对应的解码规则,从数据区域读取存储在存储结构中的二进制数据;
(2)利用掩码信息对从数据区域读取到的二进制数据做去掩码处理。
(3)利用纠错等级信息对去掩码处理后的二进制数据做纠错处理,得到待识读二进制数据。
(4)根据版本信息对应的解码规则对待识读二进制数据进行解码,得到用户数据。
基于同一发明构思,本文还提供一种与图14加密图形结构识别方法相对应的加密图形结构识别装置,如图16所示,由于该加密图形结构识别装置解决问题的原理与图14所述加密图形结构识别方法相似,因此,该加密图形结构识别装置的实施可参见图14所述加密图形结构识别方法,重复之处不再赘述。具体的,加密图形结构识别装置包括:
采集模块1610,用于采集加密图形结构图像。
定位模块1620,用于搜索具有存储功能的加密图形结构图像中存储区域的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域的位置。位置的内容包括存储结构的范围、方位、角度、是否镜像翻转等位置信息。
解码模块1630,用于按第一预定数据编解码规则解码从数据区域中读取到的数据,得到用户数据。
本文一实施例中,还提供另外一种具有存储功能的加密图形结构识读装置,对应于图15所示具有存储功能的加密图形结构识别方法,如图17所示,具有存储功能的加密图形结构识读装置包括:
采集模块1710,用于采集具有存储功能的加密图形结构图像。
定位模块1720,用于搜索具有存储功能的加密图形结构图像中存储结构的定位区域,根据搜索出的至少三个定位区域定位所述存储结构中数据区域与功能区域的范围和方位。
第一解码模块1730,用于利用第二预定编解码规则解码从功能区域中读取到的数据,得到编码功能数据。
第二解码模块1740,用于利用所述功能数据对应的编解码规则解码从数据区域中读取到的数据,得到用户数据。
本文提出一种具有存储功能的加密图形结构、具有存储功能的加密图形结构编码方法及装置、识别方法及装置,通过将具有存储功能的加密图形结构设计如下:由至少一种存储结构相邻但不重叠的排列组成,所述存储结构包括:至少三个子单元,子单元围绕同一个中心点以相互不重叠的方式排列;每一子单元由码元组成,位于所述子单元远离所述顶点一侧的码元组成定位区域,其余码元组成数据区域,各定位区域相对于所述中心点非对称分布,用于定位存储结构的位置,数据区域用于存储用户数据。能够借助加密图形结构为用户提供灵活多变的存储结构外观形状,突破传统存储结构对外观形状的限制,满足用户在不同使用场景的需求,使得加密图形结构能够与产品上其它图文设计相融合。通过子单围绕同一个中心点以相互不重叠的方式排列,能够提高数据区域的存储量。通过由位于子单元远离顶点一侧的码元组成定位区域,能够突破现有存储结构中定位区域的限制、唯一定位存储结构的位置,且能够保证数据区域的存储量。通过相邻但不重叠的排列存储结构能够使得存储结构具有冗余特性,即使部分定位区域在流通使用过程中受到污损,也可以正常解码,提升了存储结构的适应能力和容错性能,另外,还可以隐藏存储结构的具体结构,使得恶意破坏者不能直接确定存储结构,增加恶意破坏者的破坏难度。
本文一实施例中,还提供一种计算机设备,如图18所示,计算机设备1802可以包括一个或多个处理器1804,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备1802还可以包括任何存储器1806,其用于存储计算机程序,处理器执行所述计算机程序时实现前述任一实施例所述的具有存储功能的加密图形结构编码方法或前述任一实施例所述的具有存储功能的加密图形结构识别方法,具体实施时,具有存储功能的加密图形结构编码方法及具有存储功能的加密图形结构识别方法可由不同的计算机设备实现。非限制性的,比如,存储器1806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备1802的固定或可移除部件。在一种情况下,当处理器1804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备1802可以执行相关联指令的任一操作。计算机设备1802还包括用于与任何存储器交互的一个或多个驱动机构1808,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备1802还可以包括输入/输出模块1810(I/O),其用于接收各种输入(经由输入设备1812)和用于提供各种输出(经由输出设备1814))。一个具体输出机构可以包括呈现设备1816和相关联的图形用户接口1818(GUI)。在其他实施例中,还可以不包括输入/输出模块1810(I/O)、输入设备1812以及输出设备1814,仅作为网络中的一台计算机设备。计算机设备1802还可以包括一个或多个网络接口1820,其用于经由一个或多个通信链路1822与其他设备交换数据。一个或多个通信总线1824将上文所描述的部件耦合在一起。
通信链路1822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本文一实施例中,还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行前述任一实例所示的具有存储功能的加密图形结构编码方法。
本文一实施例中,还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如前述任一实施例所述的具有存储功能的加密图形结构识别方法。
本领域内的技术人员应明白,本文的方法实施例可提供为方法、系统、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本文是参照根据本文实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅用于说明本文的技术方案,任何本领域普通技术人员均可在不违背本文的精神及范畴下,对上述实施例进行修饰与改变。因此,本文的权利保护范围应视权利要求范围为准。