CN113822091B - 用于二维码码图纠错的方法及装置、电子设备、存储介质 - Google Patents

用于二维码码图纠错的方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN113822091B
CN113822091B CN202111392834.8A CN202111392834A CN113822091B CN 113822091 B CN113822091 B CN 113822091B CN 202111392834 A CN202111392834 A CN 202111392834A CN 113822091 B CN113822091 B CN 113822091B
Authority
CN
China
Prior art keywords
error correction
error
dimensional code
correction block
coordinates
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
Application number
CN202111392834.8A
Other languages
English (en)
Other versions
CN113822091A (zh
Inventor
续素芬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Unigroup Tsingteng Microsystems Co Ltd
Original Assignee
Beijing Unigroup Tsingteng Microsystems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Unigroup Tsingteng Microsystems Co Ltd filed Critical Beijing Unigroup Tsingteng Microsystems Co Ltd
Priority to CN202111392834.8A priority Critical patent/CN113822091B/zh
Publication of CN113822091A publication Critical patent/CN113822091A/zh
Application granted granted Critical
Publication of CN113822091B publication Critical patent/CN113822091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本申请涉及码图纠错技术领域,公开一种用于二维码码图纠错的方法,包括:根据二维码码图中各码元的顺序输入第一数据流;对第一数据流进行切割获得多个纠错块;利用预设的纠错算法对各纠错块进行纠错,确定成功纠错块和失败纠错块;根据成功纠错块确定二维码码图的错误聚集区域;将错误聚集区域与失败纠错块的交集中的码元标记为已知错误;利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。相较于现有技术中进行一次纠错,通过两次纠错,提高了纠错存在整块缺损或污染的二维码的成功率,从而增加对二维码进行解码的成功率。本申请还公开一种用于二维码码图纠错的装置及电子设备、存储介质。

Description

用于二维码码图纠错的方法及装置、电子设备、存储介质
技术领域
本申请涉及码图纠错技术领域,例如涉及一种用于二维码码图纠错的方法及装置、电子设备、存储介质。
背景技术
目前,二维码的大容量、安全性、易读性等特点给人们的生产生活带来了极大的便利性。随着条码技术、终端设备的普及,二维码的应用越来越广泛。由于应用场景的复杂多样性,存在整块缺损或污染的二维码越来越多见。尤其是部分用户或商家倾向于在二维码内部添加特殊logo图形以制作创意二维码,导致二维码的码图中天然存在局部错误聚集区域,降低了解码算法的容错能力,提高了对解码算法的性能要求。因此,提升解码算法的纠错能力,对提升解码算法的解码成功率有重要意义。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:现有技术的纠错算法采取单次纠错,无法满足存在整块缺损或污染的二维码的纠错需求,纠错成功率较低,导致对二维码进行解码的成功率较低。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于二维码码图纠错的方法及装置、电子设备、存储介质,以提高纠错成功率。
在一些实施例中,所述用于二维码码图纠错的方法包括:根据二维码码图中各码元的顺序输入第一数据流;对第一数据流进行切割获得多个纠错块;利用预设的纠错算法对各纠错块进行纠错,确定成功纠错块和失败纠错块;根据成功纠错块确定二维码码图的错误聚集区域;所述错误聚集区域包括多个码元;将所述错误聚集区域与所述失败纠错块的交集中的码元标记为已知错误;利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。
在一些实施例中,所述用于二维码码图纠错的装置包括:数据输入模块,被配置为根据二维码码图中各码元的顺序输入第一数据流;切割模块,被配置为对所述第一数据流进行切割获得多个纠错块;第一纠错模块,被配置为利用预设的纠错算法对各所述纠错块进行纠错,确定成功纠错块和失败纠错块;确定模块,被配置为根据所述成功纠错块确定所述二维码码图的错误聚集区域;所述错误聚集区域包括多个码元;标记模块,被配置为将所述错误聚集区域与所述失败纠错块的交集中的码元标记为已知错误;第二纠错模块,利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。
在一些实施例中,所述用于二维码码图纠错的装置包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行上述的用于二维码码图纠错的方法。
在一些实施例中,所述电子设备包括上述的用于二维码码图纠错的装置。
在一些实施例中,所述存储介质,存储有程序指令,该程序指令在运行时,执行上述的用于二维码码图纠错的的方法。
本公开实施例提供的用于二维码码图纠错的方法及装置、电子设备、存储介质,可以实现以下技术效果:通过根据二维码码图中各码元的顺序输入第一数据流,对第一数据流进行切割获得多个纠错块,利用预设的纠错算法对各纠错块进行第一次纠错,确定成功纠错块和失败纠错块,然后根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,并利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,相较于现有技术中进行一次纠错,通过两次纠错,提高了纠错存在整块缺损或污染的二维码的成功率,从而增加对二维码进行解码的成功率。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于二维码码图纠错的方法的示意图;
图2是本公开实施例提供的确定离散坐标的示意图;
图3是本公开实施例的一个用于确定错误聚集区域的方法的示意图;
图4是本公开实施例提供的确定错误聚集区域的示意图;
图5是本公开实施例提供的另一个用于二维码码图纠错的方法的示意图;
图6本公开实施例提供的一个用于二维码码图纠错的装置的示意图;
图7是本公开实施例提供的另一个用于二维码码图纠错的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
结合图1所示,本公开实施例提供一种用于二维码码图纠错的方法,包括:
步骤S101,根据二维码码图中各码元的顺序输入第一数据流。
步骤S102,对第一数据流进行切割获得多个纠错块。
步骤S103,利用预设的纠错算法对各纠错块进行纠错,确定成功纠错块和失败纠错块。
步骤S104,根据成功纠错块确定二维码码图的错误聚集区域;错误聚集区域包括多个码元。
步骤S105,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误。
步骤S106,利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。
采用本公开实施例提供的用于二维码码图纠错的方法,通过根据二维码码图中各码元的顺序输入第一数据流,对第一数据流进行切割获得多个纠错块,利用预设的纠错算法对各纠错块进行第一次纠错,确定成功纠错块和失败纠错块,然后根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,并利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,相较于现有技术中进行一次纠错,通过两次纠错,提高了纠错存在整块缺损或污染的二维码的成功率,从而增加对二维码进行解码的成功率。
在一些实施例中,二维码码图中各码元的颜色包括黑色或白色。
可选地,第一数据流通过以下方法生成,包括:对二维码码图中各码元进行二值化或波形分析,获得各码元对应的码元数据;将二维码码图中各码元的顺序确定对各码元对应的码元数据的顺序,获得第一数据流。可选地,码元数据用于表征码元的颜色。可选地,二维码码图中各码元的顺序根据预设的排序规则确定。可选地,预设的排序规则包括:二维码编码规则中规定的排序规则或用户规定的排序规则。
在一些实施例中,码元的颜色为黑色的情况下,通过对码元进行二值化或波形分析获得的码元数据为1;码元的颜色为白色的情况下,通过对码元进行二值化或波形分析获得的码元数据为0。
可选地,对第一数据流进行切割获得多个纠错块,包括:按照预设长度对第一数据流进行切割获得多个纠错块。
可选地,利用预设的纠错算法对各纠错块进行纠错,确定成功纠错块和失败纠错块,包括:利用预设的纠错算法对各纠错块进行纠错,将纠错成功的纠错块确定为成功纠错块;将纠错失败的纠错块确定为失败纠错块。可选地,预设的纠错算法为任一种用于对二维码进行纠错的算法。
在一些实施例中,纠错算法对已经知道存在错误的数据的纠错块的纠错能力大于纠错算法对不知道是否存在错误的数据的纠错块的纠错能力。因此,通过根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,然后利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,由于第二次纠错的失败纠错块存在被标记为已知错误的码元,从而在二次纠错中提高了纠错效果,增加了纠错的正确率。
可选地,在根据成功纠错块确定二维码码图的错误聚集区域前,还包括:获取二维码码图中各码元的坐标;获取各纠错块中各数据与二维码码图中各码元的坐标之间的对应关系。这样,通过获取二维码码图中各码元的坐标,并在各纠错块中各数据与二维码码图中各码元的坐标建立了对应关系,使得能够根据各纠错块中各数据确定该数据对应的坐标,确定错误聚集区域,从而便于对错误聚集区域中的失败纠错块进行纠错,增加了纠错的正确率。
可选地,获取二维码码图中各码元的坐标,包括:在二维码码图中建立笛卡尔坐标系;以二维码码图任一角的顶点为原点,将相交于原点的两条边界线分别作为x轴和y轴;在笛卡尔坐标系中确定二维码码图中各码元的坐标。
可选地,各纠错块中各数据与二维码码图中各码元的坐标之间的对应关系为一一对应的关系。在一些实施例中,纠错块中的每一个数据对应有一个坐标。纠错块中的数据对应的坐标为该数据对应的码元在笛卡尔坐标系中的坐标。
可选地,根据成功纠错块确定二维码码图的错误聚集区域,包括:获取成功纠错块中的错误数据;根据错误数据和对应关系确定二维码码图的错误聚集区域。这样,通过成功纠错块中的错误数据和对应关系确定二维码码图的错误聚集区域,便于将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,从而在二次纠错中提高了纠错效果,增加了纠错的正确率。
可选地,错误聚集区域内各错误的数据的密度大于预设密度。
在一些实施例中,二维码码图为添加了特殊logo图形的创意二维码码图,在利用预设的纠错算法对创意二维码码图的各纠错块进行纠错后,获得的成功纠错块聚集于于特殊logo图形区域内部或边缘,则根据成功纠错块确定的该创意二维码码图的错误聚集区域为特殊logo图形区域,则确定错误聚集区域内的失败纠错块具有错误数据,将特殊logo图形区域内的失败纠错块区域与错误聚集区域的交集的码元标记为已知错误,利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。
可选地,根据错误数据和对应关系确定二维码码图的错误聚集区域,包括:根据错误数据和对应关系确定错误数据对应的码元的坐标;根据错误数据对应的码元的坐标确定二维码码图的错误聚集区域。这样,通过根据错误数据和对应关系能够确定错误数据对应的码元的坐标,然后根据错误数据对应的码元的坐标能够确定二维码码图的错误聚集区域,从而便于对错误聚集区域内的失败纠错块二次纠错,从而在二次纠错中提高了纠错效果,增加了纠错的正确率。
可选地,根据成功纠错块中的错误数据对应的码元的坐标确定二维码码图的错误聚集区域,包括:筛除成功纠错块中的错误数据对应的码元的坐标中的离散坐标,获得有效坐标;利用预设的区域算法获取有效坐标对应的区域;将有效坐标对应的区域确定为二维码码图的错误聚集区域。
可选地,筛除成功纠错块中的错误数据对应的码元的坐标中的离散坐标,获得有效坐标,包括:利用预设的离散坐标检测算法确定成功纠错块中的错误数据对应的码元的坐标中的离散坐标,删除错误数据对应的码元的坐标中的离散坐标离散坐标,获得有效坐标。
可选地,预设的离散坐标检测算法包括孤立点检测算法或基于索引的距离算法等用于检测离散坐标的算法。
可选地,在预设的离散坐标检测算法为基于索引的距离算法的情况下,通过以下方法确定成功纠错块中的错误数据对应的码元的坐标是否为离散点:选取一个成功纠错块中的错误数据对应的码元的坐标作为待确定点;其他点为待查询点;在笛卡尔坐标系中以待确定点为中心,确定查询区域;获取查询区域内待查询点的数量;在查询区域内待查询点的数量小于预设数量的情况下,将待确定点确定为离散点;在查询区域内待查询点的数量大于或等于预设数量的情况下,将待确定点确定为非离散点。可选地,查询区域为以待确定点为中心的n×n区域。可选地,n为预设区域的边长。
在一些实施例中,结合图2所示,图2为确定离散坐标的示意图。其中,n为5,预设数量为2。图2中的点q1,q2,q3,q4,q5,q6和q7为成功纠错块中的错误数据对应的码元的坐标。点q1的坐标为(7,4),点q2的坐标为(9,7),点q3的坐标为(10,8),点q4的坐标为(13,9),点q5的坐标为(11,12),点q6的坐标为(5,10),点q7的坐标为(25,6)。在点q1为待确定点的情况下,待查询点为q2,q3,q4,q5,q6和q7,以点q1为中心的5x5的查询区域内的待查询点包括q2和q3,查询点的数量等于2,则点q1为非离散点;在点q2为待确定点的情况下,待查询点为q1,q3,q4,q5,q6和q7,以点q2为中心的5x5的查询区域内的待查询点包括q1,q3,q4,q5和q6,查询点的数量等于5,则点q2为非离散点;在点q3为待确定点的情况下,待查询点为q1,q2,q4,q5,q6和q7,以点q3为中心的5x5的查询区域内的待查询点包括q1,q2,q4,q5和q6,查询点的数量等于5,则点q3为非离散点;在点q4为待确定点的情况下,待查询点为q1,q2,q3,q5,q6和q7,以点q4为中心的5x5的查询区域内的待查询点包括q2,q3和q5,查询点的数量等于3,则点q4为非离散点;在点q5为待确定点的情况下,待查询点为q1,q2,q3,q4,q6和q7,以点q5为中心的5x5的查询区域内的待查询点包括q2,q3和q4,查询点的数量等于3,则点q5为非离散点;在点q6为待确定点的情况下,待查询点为q1,q2,q3,q4,q5和q7,以点q6为中心的5x5的查询区域内的待查询点包括q2和q3,查询点的数量等于2,则点q6为非离散点;在点q7为待确定点的情况下,待查询点为q1,q2,q3,q4,q6和q7,以点q7为中心的5x5的查询区域内没有待查询点,查询点的数量等于0,则箭头指向的点q7为离散点。通过确定点q1,q2,q3,q4,q5,q6和q7中的离散点得到表1,表1为确定离散点的示意表。
Figure 575968DEST_PATH_IMAGE001
表1
如表1所示,表1为确定离散点的示意表。其中,在点q1为待确定点的情况下,点q2、q3、q4、q5、q6和q7为待查询点,查询区域为点q1为中心的5x5的区域,点q2是在查询区域内,点q3是在查询区域内,点q4没有在查询区域内,点q5没有在查询区域内,点q6没有在查询区域内,点q6没有在查询区域内,查询区域内的待查询点的数量为2,则点q1不是离散点,为非离散点。
可选地,预设的区域算法为凸包计算方法。可选地,凸包计算方法包括Graham扫描法(格雷厄姆扫描法)、Gift Wrapping算法(卷包裹算法)、Andrew算法(安德鲁算法)等用于计算凸包的算法。
结合图3所示,本公开实施例提供一种用于确定错误聚集区域的方法,包括:
步骤S301,将各有效坐标的横坐标最小的点作为参考点。
步骤S302,以参考点为极点,建立极角坐标系。
步骤S303,获取各有效坐标在极角坐标系中的极角。
步骤S304,对各有效坐标对应的极角为关键词,对各有效坐标进行排序,获得极角坐标序列W={Q1,Q2,…,Qa};其中,Q1为第一个极角坐标,Q2为第二个极角坐标,Q为第a个极角坐标。可选地,Q1为极点。
步骤S305,将极点确定为候选凸包顶点P1。
步骤S306,按照排序顺序选取极角坐标Qi作为待确定凸包顶点;其中,Qi为第i个极角坐标,1<i≤a。可选地,i为正整数。
步骤S307,在候选凸包顶点的数量小于3的情况下,将待确定凸包顶点确定为候选凸包顶点Px+1;其中,x的候选凸包顶点的数量。
步骤S308,在候选凸包顶点的数量大于或等于3的情况下,确定向量
Figure 571606DEST_PATH_IMAGE002
与向量
Figure 83228DEST_PATH_IMAGE003
之间的旋转方向是否为逆时针。
步骤S309,在旋转方向为逆时针的情况下,将极角坐标Qi确定为候选凸包顶点。
步骤S310,将i更新为i+1,将x更新为x+1。执行步骤S306。
步骤S311,在旋转方向不为逆时针的情况下,将候选凸包顶点Pn确定为非候选凸包顶点。
步骤S312,将x更新为x-1,执行步骤S308。
步骤S313,在i大于a的情况下,将各候选凸包顶点确定为各凸包顶点;
步骤S314,将各凸包顶点围合的区域作为错误聚集区域。
这样,通过将各有效坐标的横坐标最小的点作为参考点,并以参考点为极点,建立极角坐标系,以便于在极角坐标系中计算凸包顶点,以便于将各凸包顶点围合的区域作为错误聚集区域,从而便于对错误聚集区域内的错误纠错块进行二次纠错,增加了纠错的正确率。
在一些实施例中,结合图4所示,图4为确定错误聚集区域的示意图。有效坐标包括q1(7,4),q2(9,7),q3(10,8),q4(13,9),q5(11,12)和q6(5,10)。选取横坐标最小的点q6作为参考点。以点q6为极点,进行极角排序:以点q6为极角坐标系原点,其余各点的极角为关键词。排序后的点依次为:Q1(5,10),Q2(7,4),Q3(9,7),Q4(10,8),Q5(13,9),Q6(11,12)。将极点Q1(5,10)作为候选凸包顶点P1,按照排序顺序选取极角坐标Q2作为待确定凸包顶点。候选凸包顶点的数量小于3,则极角坐标Q2确定为候选凸包顶点P2,此时候选凸包顶点对应的极角坐标为Q1,Q2;选取极角坐标Q3作为待确定凸包顶点,候选凸包顶点的数量小于3,则极角坐标Q3确定为候选凸包顶点P3,此时候选凸包顶点对应的极角坐标为Q1,Q2,Q3;选取极角坐标Q4作为待确定凸包顶点,候选凸包顶点的数量等于3,向量
Figure 811012DEST_PATH_IMAGE004
与向量
Figure 362079DEST_PATH_IMAGE005
之间的旋转方向为逆时针,则将极角坐标Q4确定为候选凸包顶点,此时候选凸包顶点对应的极角坐标为Q1,Q2,Q3,Q4;选取极角坐标Q5作为待确定凸包顶点,候选凸包顶点的数量大于3,向量
Figure 443299DEST_PATH_IMAGE005
与向量
Figure 435526DEST_PATH_IMAGE006
之间的旋转方向不为逆时针,则将候选凸包顶点P4确定为非候选凸包顶点,此时候选凸包顶点对应的极角坐标为Q1,Q2,Q3,Q5;向量
Figure 458845DEST_PATH_IMAGE007
与向量
Figure 434892DEST_PATH_IMAGE008
之间的旋转方向不为逆时针,则将候选凸包顶点P3确定为非候选凸包顶点,此时候选凸包顶点对应的极角坐标为Q1,Q2,Q5;依次对点Q6和Q7进行计算,获得的候选凸包顶点为Q1,Q2,Q5,Q6,则凸包顶点为Q1,Q2,Q5,Q6。凸包顶点在笛卡尔坐标戏中为点q6,q1,q4和q5。如图4所示,将q6,q1,q4和q5围合的区域确定为错误聚集区域。
可选地,在利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错后,还包括:输出纠错后的第二数据流。
在一些实施例中,第二数据流被输入译码模块,以对二维码进行译码。
结合图5所示,本公开实施例提供另一种用于二维码码图纠错的方法,包括:
S501,根据二维码码图中各码元的顺序输入第一数据流。
S502,对第一数据流进行切割获得多个纠错块。
S503,获取二维码码图中各码元的坐标。
S504,获取各纠错块中各数据与二维码码图中各码元的坐标之间的对应关系。
S505,利用预设的纠错算法对各纠错块进行纠错,确定成功纠错块和失败纠错块。
S506,根据成功纠错块确定二维码码图的错误聚集区域;错误聚集区域包括多个码元。
S507,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误。
S508,利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。
S509,输出纠错后的第二数据流。
采用本公开实施例提供的用于二维码码图纠错的装置,通过,通过根据二维码码图中各码元的顺序输入第一数据流,对第一数据流进行切割获得多个纠错块,获取二维码码图中各码元的坐标,获取各纠错块中各数据与二维码码图中各码元的坐标之间的对应关系,然后利用预设的纠错算法对各纠错块进行第一次纠错,确定成功纠错块和失败纠错块,然后根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,并利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,输出纠错后的第二数据流,以便于将第二数据流译码模块,以对二维码进行译码,从而增加了对二维码进行解码的成功率。
结合图6所示,本公开实施例提供一种用于二维码码图纠错的装置,包括数据输入模块1、切割模块2、第一纠错模块3、确定模块4、标记模块5和第二纠错模块6。数据输入模块1被配置为根据二维码码图中各码元的顺序输入第一数据流;切割模块2被配置为对第一数据流进行切割获得多个纠错块;第一纠错模块3被配置为利用预设的纠错算法对各纠错块进行纠错,确定成功纠错块和失败纠错块;确定模块4被配置为根据成功纠错块确定二维码码图的错误聚集区域;错误聚集区域包括多个码元;标记模块5被配置为将错误聚集区域与失败纠错块的交集中的码元标记为已知错误;第二纠错模块6被配置为利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错。
采用本公开实施例提供的用于二维码码图纠错的装置,通过根据二维码码图中各码元的顺序输入第一数据流,对第一数据流进行切割获得多个纠错块,利用预设的纠错算法对各纠错块进行第一次纠错,确定成功纠错块和失败纠错块,然后根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,并利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,相较于现有技术中进行一次纠错,通过两次纠错,提高了纠错存在整块缺损或污染的二维码的成功率,从而增加对二维码进行解码的成功率。
可选地,用于二维码码图纠错的装置还包括数据映射模块。数据映射模块被配置为获取二维码码图中各码元的坐标;获取各纠错块中各数据与二维码码图中各码元的坐标之间的对应关系。
可选地,确定模块被配置为通过以下方式根据成功纠错块确定二维码码图的错误聚集区域,包括:获取成功纠错块中的错误数据;根据错误数据和对应关系确定二维码码图的错误聚集区域。
可选地,确定模块被配置为通过以下方式根据错误数据和对应关系确定二维码码图的错误聚集区域,包括:根据错误数据和对应关系确定错误数据对应的码元的坐标;根据错误数据对应的码元的坐标确定二维码码图的错误聚集区域。
可选地,确定模块被配置为通过以下方式根据错误数据对应的码元的坐标确定二维码码图的错误聚集区域,包括:筛除错误数据对应的码元的坐标中的离散坐标,获得有效坐标;利用预设的区域算法获取有效坐标对应的区域;将有效坐标对应的区域确定为二维码码图的错误聚集区域。
可选地,用于二维码码图纠错的装置还包括数据输出模块。数据输出模块被配置为输出纠错后的第二数据流。
结合图7所示,本公开实施例提供一种用于二维码码图纠错的装置,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的用于二维码码图纠错的方法。
此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于二维码码图纠错的方法。
存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
采用本公开实施例提供的用于二维码码图纠错的装置,通过根据二维码码图中各码元的顺序输入第一数据流,对第一数据流进行切割获得多个纠错块,利用预设的纠错算法对各纠错块进行第一次纠错,确定成功纠错块和失败纠错块,然后根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,并利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,相较于现有技术中进行一次纠错,通过两次纠错,提高了纠错存在整块缺损或污染的二维码的成功率,从而增加对二维码进行解码的成功率。
本公开实施例提供了一种电子设备,包含上述的用于二维码码图纠错的装置。
采用本公开实施例提供的电子设备,通过根据二维码码图中各码元的顺序输入第一数据流,对第一数据流进行切割获得多个纠错块,利用预设的纠错算法对各纠错块进行第一次纠错,确定成功纠错块和失败纠错块,然后根据成功纠错块确定二维码码图的错误聚集区域,将错误聚集区域与失败纠错块的交集中的码元标记为已知错误,并利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行第二次纠错,相较于现有技术中进行一次纠错,通过两次纠错,提高了纠错存在整块缺损或污染的二维码的成功率,从而增加对二维码进行解码的成功率。
本公开实施例提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于二维码码图纠错的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于二维码码图纠错的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例。如在实施例的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (6)

1.一种用于二维码码图纠错的方法,其特征在于,包括:
根据二维码码图中各码元的顺序输入第一数据流;
对所述第一数据流进行切割获得多个纠错块;
利用预设的纠错算法对各所述纠错块进行纠错,确定成功纠错块和失败纠错块;
根据所述成功纠错块确定所述二维码码图的错误聚集区域;所述错误聚集区域包括多个码元;
将所述错误聚集区域与所述失败纠错块的交集中的码元标记为已知错误;
利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错;
根据所述成功纠错块确定所述二维码码图的错误聚集区域,包括:获取所述二维码码图中各码元的坐标;获取各所述纠错块中各数据与所述二维码码图中各码元的坐标之间的对应关系;获取所述成功纠错块中的错误数据;根据所述错误数据和所述对应关系确定所述二维码码图的错误聚集区域;筛除所述成功纠错块中的错误数据对应的码元的坐标中的离散坐标,获得有效坐标;利用预设的区域算法获取所述有效坐标对应的区域;将所述有效坐标对应的区域确定为二维码码图的错误聚集区域;所述预设的区域算法为凸包计算方法;通过将各所述有效坐标的横坐标最小的点作为参考点,并以所述参考点为极点,建立极角坐标系,以在所述极角坐标系中计算凸包顶点,以将各所述凸包顶点围合的区域作为错误聚集区域。
2.根据权利要求1所述的方法,其特征在于,在利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错后,还包括:
输出纠错后的第二数据流。
3.一种用于二维码码图纠错的装置,其特征在于,包括:
数据输入模块,被配置为根据二维码码图中各码元的顺序输入第一数据流;
切割模块,被配置为对所述第一数据流进行切割获得多个纠错块;
第一纠错模块,被配置为利用预设的纠错算法对各所述纠错块进行纠错,确定成功纠错块和失败纠错块;
确定模块,被配置为根据所述成功纠错块确定所述二维码码图的错误聚集区域;所述错误聚集区域包括多个码元;
标记模块,被配置为将所述错误聚集区域与所述失败纠错块的交集中的码元标记为已知错误;
第二纠错模块,被配置为利用预设的纠错算法对存在被标记为已知错误的码元的失败纠错块进行纠错;
确定模块被配置为通过以下方式根据所述成功纠错块确定所述二维码码图的错误聚集区域:获取所述二维码码图中各码元的坐标;获取各所述纠错块中各数据与所述二维码码图中各码元的坐标之间的对应关系;获取所述成功纠错块中的错误数据;根据所述错误数据和所述对应关系确定所述二维码码图的错误聚集区域;筛除所述成功纠错块中的错误数据对应的码元的坐标中的离散坐标,获得有效坐标;利用预设的区域算法获取所述有效坐标对应的区域;将所述有效坐标对应的区域确定为二维码码图的错误聚集区域;所述预设的区域算法为凸包计算方法;通过将各所述有效坐标的横坐标最小的点作为参考点,并以所述参考点为极点,建立极角坐标系,以在所述极角坐标系中计算凸包顶点,以将各所述凸包顶点围合的区域作为错误聚集区域。
4.一种用于二维码码图纠错的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至2任一项所述的用于二维码码图纠错的方法。
5.一种电子设备,其特征在于,包括如权利要求4所述的用于二维码码图纠错的装置。
6.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至2任一项所述的用于二维码码图纠错的方法。
CN202111392834.8A 2021-11-23 2021-11-23 用于二维码码图纠错的方法及装置、电子设备、存储介质 Active CN113822091B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111392834.8A CN113822091B (zh) 2021-11-23 2021-11-23 用于二维码码图纠错的方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111392834.8A CN113822091B (zh) 2021-11-23 2021-11-23 用于二维码码图纠错的方法及装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN113822091A CN113822091A (zh) 2021-12-21
CN113822091B true CN113822091B (zh) 2022-03-15

Family

ID=78919704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111392834.8A Active CN113822091B (zh) 2021-11-23 2021-11-23 用于二维码码图纠错的方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN113822091B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116739022B (zh) * 2023-08-15 2023-11-07 北京紫光青藤微系统有限公司 用于条码图像的译码方法、装置和电子设备
CN117350317B (zh) * 2023-12-05 2024-03-26 北京紫光青藤微系统有限公司 用于条码图像的译码方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102568608A (zh) * 2012-02-24 2012-07-11 南京大学 一种增强qr码纠错能力的改进方法
CN103793734A (zh) * 2014-01-14 2014-05-14 杭州晟元芯片技术有限公司 一种二维码分段校验方法
CN104680217A (zh) * 2015-01-28 2015-06-03 付强 一种产品信息点阵编解码系统应用方法
CN105335858A (zh) * 2014-08-13 2016-02-17 北大方正集团有限公司 防复制qr码的防伪方法及系统
CN113643274A (zh) * 2021-08-24 2021-11-12 凌云光技术股份有限公司 一种二维码候选区筛选的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477638B (zh) * 2006-11-16 2011-12-14 深圳市天朗时代科技有限公司 一种二维码、应用该二维码的印刷出版物及解码方法
CN107886026B (zh) * 2016-09-30 2019-12-13 腾讯科技(深圳)有限公司 图形码处理方法及装置
CN108345925A (zh) * 2017-01-24 2018-07-31 北京大码技术有限公司 复合型二维码的生成、识读方法及装置
CN107577980B (zh) * 2017-09-30 2018-10-09 中联惠众信息技术(北京)有限公司 一种二维码纠错译码方法及其译码装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102568608A (zh) * 2012-02-24 2012-07-11 南京大学 一种增强qr码纠错能力的改进方法
CN103793734A (zh) * 2014-01-14 2014-05-14 杭州晟元芯片技术有限公司 一种二维码分段校验方法
CN105335858A (zh) * 2014-08-13 2016-02-17 北大方正集团有限公司 防复制qr码的防伪方法及系统
CN104680217A (zh) * 2015-01-28 2015-06-03 付强 一种产品信息点阵编解码系统应用方法
CN113643274A (zh) * 2021-08-24 2021-11-12 凌云光技术股份有限公司 一种二维码候选区筛选的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QR码纠错码原理及实现;冯汉禄等;《计算机应用》;20110630;全文 *
基于二维汉明码结构的闪存纠错存储系统;余辉龙等;《微电子学与计算机》;20180305(第03期);全文 *

Also Published As

Publication number Publication date
CN113822091A (zh) 2021-12-21

Similar Documents

Publication Publication Date Title
CN113822091B (zh) 用于二维码码图纠错的方法及装置、电子设备、存储介质
CN102799850B (zh) 一种条形码识别方法和装置
CN101727580B (zh) 图像处理装置、图像处理单元和图像处理方法
CN105138943A (zh) Qr码位置探测图形破损时的解码方法及系统
CN107944324A (zh) 一种二维码畸变校正方法及装置
CN110502985A (zh) 表格识别方法、装置及表格识别设备
CN115511031A (zh) 一种扩容二维码、三维码解码方法、系统、设备和介质
CN105184294B (zh) 一种基于像素追踪的倾斜文字判断识别方法
CN110853488A (zh) 一种poi标签显示方法、装置和设备
JPWO2017033275A1 (ja) 画像読取装置および画像読取方法ならびに画像読取プログラム
CN113673655A (zh) 用于确定二维码解码方向的方法及装置、电子设备、介质
CN110889304A (zh) 二维码质量评估方法及装置、存储介质、电子设备、系统
CN108846367B (zh) 生僻字处理方法、计算设备及计算机存储介质
CN113420580A (zh) 用于对二维码进行辅助定位符定位的方法及装置、二维码扫描设备、存储介质
CN114492706B (zh) 估算dm码模块大小的方法及装置、解码设备、存储介质
CN111753719A (zh) 一种指纹识别方法及装置
CN109934036B (zh) 一种通过单一位置探测图形识读qr码的方法和系统
CN111767921A (zh) 一种快递面单定位矫正方法及设备
CN117273044B (zh) 一种点阵图构建方法及识别点阵图的方法
CN116451721B (zh) 用于进行解码的方法及装置、电子设备、存储介质
CN117350909B (zh) 文字水印处理方法、装置、电子设备及存储介质
JPH0652356A (ja) パターン処理方法およびパターン処理装置
JP3627365B2 (ja) 閉曲線の特徴データ抽出方法及びこれを用いるマッチング方法
JP2885476B2 (ja) 画像処理方法および装置
Craizer et al. Combining points and tangents into parabolic polygons: an affine invariant model for plane curves

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