CN114564978B - 用于二维码解码的方法及装置、电子设备、存储介质 - Google Patents
用于二维码解码的方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114564978B CN114564978B CN202210452381.1A CN202210452381A CN114564978B CN 114564978 B CN114564978 B CN 114564978B CN 202210452381 A CN202210452381 A CN 202210452381A CN 114564978 B CN114564978 B CN 114564978B
- Authority
- CN
- China
- Prior art keywords
- dimensional code
- alternative
- determining
- decoding
- area
- 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
Classifications
-
- 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
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
Abstract
本申请涉及二维码领域,公开一种用于二维码解码的方法,包括:获取包含二维码的图像;确定图像的方向场信息;根据方向场信息确定二维码区域;对二维码区域构建采样网格,获得网格数量;根据网格数量确定若干备选二维码码制;根据各备选二维码码制对二维码区域进行解码。这样,由于在方向场信息中,二维码边界与图像中除二维码边界以外的图像内容会呈现出不同的统计特征。因此,能够由方向场信息确定二维码区域,而不需要利用定位符来确定二维码区域。能够在定位符不完整、完全缺失或存在脏污的情况下,确定二维码区域,从而提高二维码的解码率。本申请还公开一种用于二维码解码的装置、电子设备、存储介质。
Description
技术领域
本申请涉及二维码领域,例如涉及一种用于二维码解码的方法及装置、电子设备、存储介质。
背景技术
随着二维码的广泛应用,对二维码解码的要求也越来越高。相关技术中,通常先在图像中查找二维码的定位符,然后由定位符确定二维码区域,之后再在二维码区域进行解码。但是,由于图像磨损、打印缺陷和拍摄反光等因素,图像中的定位符可能存在缺损、变形、遮掩等情况。而由定位符确定二维码区域,再进行二维码解码的方式非常依赖于定位符的清晰程度,在定位符不完整、完全缺失或存在脏污的情况下,无法确定二维码区域,导致二维码的解码率较低。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于二维码解码的方法及装置、电子设备、存储介质,以提高二维码的解码率。
在一些实施例中,所述用于二维码解码的方法,包括:获取包含二维码的图像;确定所述图像的方向场信息;根据所述方向场信息确定二维码区域;对所述二维码区域构建采样网格,获得网格数量;所述网格数量为二维码区域的每一行或每一列的方格数量;根据所述网格数量确定若干备选二维码码制;根据各所述备选二维码码制对二维码区域进行解码。
在一些实施例中,所述用于二维码解码的装置,包括:获取模块,被配置为获取包含二维码的图像;第一确定模块,被配置为确定所述图像的方向场信息;第二确定模块,被配置为根据所述方向场信息确定二维码区域;网格构建模块,被配置为对所述二维码区域构建采样网格,获得网格数量;所述网格数量为二维码区域的每一行或每一列的方格数量;第三确定模块,被配置为根据所述网格数量确定若干备选二维码码制;解码模块,被配置为根据各所述备选二维码码制对二维码区域进行解码。
在一些实施例中,所述电子设备,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行上述的用于二维码解码的方法。
在一些实施例中,所述存储介质,所述程序指令在运行时,执行上述的用于二维码解码的方法。
本公开实施例提供的用于二维码解码的方法及装置、电子设备、存储介质,可以实现以下技术效果:通过获取包含二维码的图像;确定图像的方向场信息;根据方向场信息确定二维码区域;对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;根据网格数量确定若干备选二维码码制;根据各备选二维码码制对二维码区域进行解码。这样,由于在方向场信息中,二维码边界与图像中除二维码边界以外的图像内容会呈现出不同的统计特征。因此,能够由方向场信息确定二维码区域,而不需要利用定位符来确定二维码区域。能够在定位符不完整、完全缺失或存在脏污的情况下,确定二维码区域,从而提高二维码的解码率。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于二维码解码的方法的示意图;
图2是本公开实施例提供的一个二维码的水平方向和竖直方向的示意图;
图3是本公开实施例提供的一个等分区块后的二维码区域示意图示意图;
图4(a)是本公开实施例提供的一个备选定位符区域的示意图;
图4(b)是本公开实施例提供的一个定位符区域的示意图;
图5是本公开实施例提供的一个用于二维码解码的装置的示意图;
图6是本公开实施例提供的一个电子设备的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
本申请应用于电子设备,用于对二维码进行解码。由于二维码在使用的过程中可能存在磨损、打印缺陷、拍摄反光等因素造成的二维码缺损、变形、遮掩等现象。而传统的二维码识别方法非常依赖于二维码中定位符的清晰程度,导致二维码的识别率较低。本方案通过获取包含二维码的图像;确定图像的方向场信息;根据方向场信息确定二维码区域;对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;根据网格数量确定若干备选二维码码制;根据各备选二维码码制对二维码区域进行解码。不需要利用定位符来确定二维码区域。使的能够在定位符不完整、完全缺失或存在脏污的情况下,确定二维码区域,从而提高二维码的解码率。
结合图1所示,本公开实施例提供一种用于二维码解码的方法,包括:
步骤S101,电子设备获取包含二维码的图像;
步骤S102,电子设备确定该包含二维码的图像的方向场信息;
步骤S103,电子设备根据方向场信息确定二维码区域;
步骤S104,电子设备对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;
步骤S105,电子设备根据网格数量确定若干备选二维码码制;
步骤S106,电子设备根据各备选二维码码制对二维码区域进行解码。
采用本公开实施例提供的用于二维码解码的方法,通过获取包含二维码的图像;确定图像的方向场信息;根据方向场信息确定二维码区域;对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;根据网格数量确定若干备选二维码码制;根据各备选二维码码制对二维码区域进行解码。这样,由于在方向场信息中,二维码边界与图像中除二维码边界以外的图像内容会呈现出不同的统计特征。因此,能够由方向场信息确定二维码区域,而不需要利用定位符来确定二维码区域。能够在定位符不完整、完全缺失或存在脏污的情况下,确定二维码区域,从而提高二维码的解码率。
可选地,图像中的二维码的码制包括QR(Quick Response,快速反应)码、DM(datamatrix,数据矩阵码)码、Aztec码、Dotcode码或Maxicode码。其中,Aztec码是5个重叠的同心正方形,Maxicode码是6个重叠的同心圆。
可选地,通过对图像构建方向梯度直方图和/或共生矩阵,获得图像的方向场信息。
可选地,方向场信息包括图像中各像素点对应的梯度方向;根据方向场信息确定二维码区域,包括:统计各梯度方向分别对应的像素点数量;按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点;根据备选像素点确定二维码边界线;根据二维码边界线确定二维码区域。
在一些实施例中,图像中二维码所在的区域其方向场的一致性比较高,该特征反应到方向梯度直方图中,则方向梯度直方图中直方图曲线会出现两个波峰,两个波峰对应的梯度方向对应的像素点分布在二维码边界。由于梯度方向是离散分布的,因此方向梯度直方图曲线是根据离散分布拟合出来的。即,两个波峰对应的像素点数量是方向梯度直方图中位于前两位的像素点数量,将两个波峰对应的梯度方向确定为备选梯度方向,将备选梯度方向对应的像素点确定为备选像素点,由此能够根据备选像素点确定二维码区域。例如:方向梯度直方图中直方图曲线出现的两个波峰对应的梯度方向分别为5和50,梯度方向等于5的像素点分布在由坐标(0,0)和坐标(0,5)构成的第一直线及第一直线附近和由坐标(0,5)和坐标(5,5)构成的第二直线及第二直线附近。梯度方向等于50的像素点分布在由坐标(0,0)和坐标(0,5)构成的第三直线及第三直线附近和由坐标(5,0)和坐标(5,5)构成的第四直线及第四直线附近。将梯度方向等于5和梯度方向等于50对应的像素点确定为备选像素点,由备选像素点能够确定二维码区域。可选地,在像素点与直线的垂直距离小于预设距离的情况下,认为像素点在直线附近。
在一些实施例中,方向梯度直方图的横坐标为梯度方向,纵坐标为各梯度方向分别对应的像素点数量。
可选地,根据备选像素点确定二维码边界线,包括:随机选取一个备选像素点确定为起始点;对起始点进行边界跟踪确定二维码边界线。这样,通过边界跟踪算法,将各备选像素点进行连接形成二维码边界线,进而确定准确的二维码区域。
可选地,根据备选像素点确定二维码边界线,包括:对备选像素点利用基于霍夫变换的直线检测算法确定二维码边界线。
在一些实施例中,结合图2所示,方向梯度直方图中直方图曲线的两个波峰分别对应二维码的水平方向m1和竖直方向m2。将两个波峰对应的梯度方向确定为备选梯度方向,将备选梯度方向对应的各像素点确定为备选像素点,随机选取一个备选像素点确定为起始点;对起始点按照二维码的水平方向m1和二维码的竖直方向m2分别进行边界跟踪确定二维码边界线。
可选地,根据二维码边界线确定二维码区域,包括:根据二维码边界线确定备选二维码区域;对备选二维码区域进行区域二值化,将区域二值化后的备选二维码区域确定为二维码区域。
可选地,根据二维码边界线确定备选二维码区域,包括:将二维码边界线围合形成的区域确定为备选二维码区域。
可选地,通过定阈值二值化、局部阈值二值化或基于一维信号的二值化等算法对备选二维码区域进行区域二值化获得二值化区域。
在一些实施例中,获取包含二维码的图像,对图像构建梯度直方图,获得图像中各像素点对应的梯度方向的统计分布情况。按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点,随机选取一个备选像素点确定为起始点,对起始点进行边界跟踪确定二维码边界线。将二维码边界线围合形成的区域确定为备选二维码区域,对备选二维码区域进行区域二值化,将区域二值化后的备选二维码区域确定为二维码区域。
在一些实施例中,将相邻的备选像素点一一连接,将备选像素点围合形成的区域确定为二维码区域。
可选地,根据二维码边界线确定二维码区域,包括:将二维码边界线围合形成的区域确定为二维码区域。
在一些实施例中,获取包含二维码的图像,对该包含二维码的图像构建梯度直方图,获得该图像中各像素点对应的梯度方向的统计分布情况。按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点,随机选取一个备选像素点确定为起始点,对起始点进行边界跟踪确定二维码边界线。将二维码边界线围合形成的区域确定为二维码区域。
在一些实施例中,在对二维码区域构建采样网格后,获得包含有若干个方格的二维码区域,其中每一个方格即为一个网格。网格数量为二维码区域的每一行的方格数量,或网格数量为每一列的方格数量。
在一些实施例中,在二维码区域构建的采样网格中,每一个方格均为正方形且尺寸相同,每一个方格的宽度为预设的像素点个数。
可选地,根据网格数量确定若干备选二维码码制,包括:利用预设的码制数据库,对网格数量进行查表操作,获得网格数量对应的备选二维码码制;码制数据库中存储有网格数量与备选二维码码制之间的对应关系。
可选地,根据各备选二维码码制对二维码区域进行解码前,还包括:对二维码区域进行二值化操作;根据各备选二维码码制对二值化后的二维码区域进行解码。
在一些实施例中,获得网格数量后对二维码区域进行区域二值化;根据网格数量确定若干备选二维码码制;根据各备选二维码码制对二值化后的二维码区域进行解码。
在一些实施例中,根据二维码区域确定若干备选二维码码制后,对二维码区域进行区域二值化,根据各备选二维码码制对区域二值化后的二维码区域进行解码。
可选地,通过定阈值二值化、局部阈值二值化或基于一维信号的二值化等算法对二维码区域进行区域二值化。
在一些实施例中,采用局部阈值二值化的方法,将二维码区域等分为M×N个互不重叠的区块,对各区块依次进行二值化阈值计算并执行二值化获得二值化的区块。可选地,二值化阈值计算方法为otsu最大类间方差法。可选地,区块尺寸等于采样网格的方格尺寸。图3为等分区块后的二维码区域示意图,如图3所示,二维码区域被等分为5×7个互不重叠的区块,第一行第七列的区块为二值化区块。这样,通过局部阈值二值化的方法可以避免由局部过曝或曝光不足造成图像亮度不均时全图二值化不准确的问题。
可选地,根据各备选二维码码制对二维码区域进行解码,包括:确定各备选二维码码制对应的第一解码步骤;依次利用各第一解码步骤对二维码区域进行解码。
可选地,确定各备选二维码码制对应的第一解码步骤,包括:利用预设的第一解码数据库,对备选二维码码制进行查表操作,获得备选二维码码制对应的第一解码步骤;第一解码数据库中存储有备选二维码码制与第一解码步骤之间的对应关系。
在一些实施例中,第一解码数据库中还存储的若干备选二维码码制存在对应的解码顺序标号。确定各备选二维码码制对应的第一解码步骤,按照解码顺序标号的顺序依次利用各第一解码步骤对二维码区域进行解码。
在一些实施例中,获取包含二维码的图像,对图像构建梯度直方图,获得图像中各像素点对应的梯度方向的统计分布情况。按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点,随机选取一个备选像素点确定为起始点,对起始点进行边界跟踪确定二维码边界线。将二维码边界线围合形成的区域确定为备选二维码区域,对备选二维码区域进行区域二值化,将区域二值化后的备选二维码区域确定为二维码区域。对二维码区域构建采样网格,获得网格数量为“a”。利用预设的码制数据库对网格数量“a”进行查表操作,获得网格数量“a”对应的备选二维码码制B和备选二维码码制C。确定备选二维码码制B对应的第一解码步骤B和备选二维码码制C对应的第一解码步骤C。利用第一解码步骤B对二维码区域进行解码。解码失败,利用第一解码步骤C对二维码区域进行解码。
可选地,根据备选二维码码制对二维码区域进行解码,包括:验证各备选二维码码制,将验证成功的备选二维码码制确定为目标二维码码制;确定目标二维码码制对应的第二解码步骤;按照第二解码步骤对二维码区域解码。
在一些实施例中,验证各备选二维码码制,即验证二维码区域中的二维码是否为备选二维码码制。
可选地,验证备选二维码码制,包括:确定备选二维码码制对应的备选定位符区域和备选定位符区域对应的验证步骤;确定二维码区域中与备选定位符区域对应的定位符区域;按照备选定位符区域对应的验证步骤验证定位符区域。
可选地,确定备选二维码码制对应的备选定位符区域,包括:利用预设的备选定位符区域数据库,对备选二维码码制进行查表操作,获得备选二维码码制对应的备选定位符区域;备选定位符区域数据库中存储有备选二维码码制与备选定位符区域之间的对应关系。
在一些实施例中,备选定位符区域即备选二维码码制中备选定位符所处区域。
在一些实施例中,二维码区域中与备选定位符区域对应的定位符区域,即二维码区域中与备选定位符区域处于同一位置的区域。
在一些实施例中,对二维码构建采样网格后。二维码区域中的网格总数为a×b个,且各网格按照a行b列分布。在网格数量为二维码区域的每一列的网格数量的情况下,将b确定为网格数量。利用预设的码制数据库,对网格数量“b”进行查表操作获得网格数量“b”对应的备选二维码码制A。利用预设的备选定位符区域数据库,查找备选二维码码制A对应的备选定位符区域A为由位于c行至d行且c列至d列的网格构成的区域。则将二维码区域中为由位于c行至d行且c列至d列的网格构成的区域确定为定位符区域。
在一些实施例中,将二维码区域中与备选定位符区域处于同一位置的区域确定为目标定位符区域,将二维码区域中包含目标定位符区域的目标区域确定为二维码区域中与备选定位符区域对应的定位符区域。
在一些实施例中,备选定位符为QR码的情况下,备选定位符的备选定位符区域为一正方形区域。备选定位符为DM码的情况下,备选定位符的备选定位符区域为一“L”形状区域。
可选地,确定备选定位符对应的验证步骤,包括:利用预设的验证步骤数据库,对备选定位符进行查表操作,获得备选定位符对应的验证步骤;验证步骤数据库中存储有备选定位符与验证步骤之间的对应关系。
在一些实施例中,备选定位符区域数据库与验证步骤数据库为同一数据库。
可选地,备选定位符区域对应的验证步骤,包括:计算备选定位符区域和定位符区域的匹配度,在匹配度大于预设阈值的情况下,确定备选二维码码制验证成功。
可选地,计算备选定位符区域和定位符区域的匹配度,包括:对备选定位符区域进行二值化获得第一序列;对定位符区域进行二值化获得第二序列;计算第一序列和第二序列之间的相似度,将相似度确定为备选定位符区域和定位符区域的匹配度。
在一些实施例中,将二值化后的备选定位符区域中的各数值按照预设顺序进行排列,获得第一序列。将二值化后的定位符区域中的各数值按照预设顺序进行排列,获得第二序列。
在一些实施例中,通过计算第一序列和第二序列之间的相关性,获得第一序列和第二序列之间的相似度。
在一些实施例中,通过计算第一序列和第二序列之间的汉明距,获得第一序列和第二序列之间的相似度。
在一些实施例中,对备选定位符区域和定位符区域二值化,通过欧式距离计算备选定位符区域和定位符区域的匹配度。
在一些实施例中,备选定位符区域和定位符区域之间的匹配度越大,则备选定位符区域和定位符区域越匹配。
在一些实施例中,一个网格区域为一个模块,图4(a)为备选定位符区域的示意图,如图4(a)所示,备选定位符区域可以看作是3个重叠的同心的正方形组成,他们分别为7x7个深色模块,5x5个浅色模块和3x3个深色模块,模块宽度比为1:1:3:1:1。图4(b)为定位符区域的示意图,如图4(b)所示,定位符区域由49个模块构成,其中位于第一行第二列、第二行第二列、第二行第三列、第二行第五列、第二行第六列、第三行第二列、第三行第六列、第四行第二列、第四行第六列、第五行第二列、第五行第六列、第六行第二列、第六行第三列、第六行第四列、第六行第五列、第六行第六列和第六行第七列的模块为浅色模块,其余位置为深色模块。由图可见定位符区域存在定位符不完整的现象。计算备选定位符区域与定位符区域的匹配度为46,匹配度46大于预设阈值40,确定备选定位符区域对应的备选二维码码制验证成功。
可选地,确定目标二维码码制对应的第二解码步骤,包括:利用预设的第二解码数据库,对目标二维码码制进行查表操作,获得目标二维码码制对应的第二解码步骤;第二解码数据库中存储有目标二维码码制与第二解码步骤之间的对应关系。
在一些实施例中,获取包含二维码的图像,对图像构建梯度直方图,获得图像中各像素点对应的梯度方向的统计分布情况。按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点,随机选取一个备选像素点确定为起始点,对起始点进行边界跟踪确定二维码边界线。将二维码边界线围合形成的区域确定为备选二维码区域,对备选二维码区域进行区域二值化,将区域二值化后的备选二维码区域确定为二维码区域。对二维码区域构建采样网格,获得网格数量为“a”。利用预设的码制数据库对网格数量“a”进行查表操作,获得网格数量“a”对应的备选二维码码制B和备选二维码码制C。确定备选二维码码制B对应的备选定位符区域B对应的验证步骤B,确定二维码区域中与备选定位符区域B对应的定位符区域B,确定备选二维码码制C对应的备选定位符区域C和备选定位符区域C对应的验证步骤C,确定二维码区域中与备选定位符区域C对应的定位符区域C。按照备选定位符区域B对应的验证步骤B验证定位符区域B,验证失败。按照备选定位符区域C对应的验证步骤C验证定位符区域C,验证成功,将备选二维码码制C确定为二维码码制。确定目标二维码码制对应的第二解码步骤,按照第二解码步骤对二维码区域解码。
结合图5所示,本公开实施例提供一种用于二维码解码的装置,包括:获取模块501、第一确定模块502、第二确定模块503、网格构建模块504、第三确定模块505和解码模块506。获取模块501,被配置为获取包含二维码的图像;第一确定模块502,被配置为确定图像的方向场信息;第二确定模块503,被配置为根据方向场信息确定二维码区域;网格构建模块504,被配置为对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;第三确定模块505,被配置为根据网格数量确定若干备选二维码码制;解码模块506,被配置为根据各备选二维码码制对二维码区域进行解码。
采用本公开实施例提供的用于二维码解码的装置,通过获取模块获取包含二维码的图像;第一确定模块确定图像的方向场信息;第二确定模块根据方向场信息确定二维码区域;第三确定模块对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;网格构建模块根据网格数量确定若干备选二维码码制;解码模块根据各备选二维码码制对二维码区域进行解码。这样,由于在方向场信息中二维码边界与图像中除二维码边界以外的图像内容会呈现出不同的统计特征,因此能够由方向场信息确定二维码区域,而不需要利用定位符来确定二维码区域。使的能够在定位符不完整、完全缺失或存在脏污的情况下,确定二维码区域,从而提高二维码的解码率。
结合图6所示,本公开实施例提供一种电子设备,包括处理器(processor)600和存储器(memory)601。可选地,该装置还可以包括通信接口(Communication Interface)602和总线603。其中,处理器600、通信接口602、存储器601可以通过总线603完成相互间的通信。通信接口602可以用于信息传输。处理器600可以调用存储器601中的逻辑指令,以执行上述实施例的用于二维码解码的方法。
此外,上述的存储器601中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器601作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器600通过运行存储在存储器601中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于二维码解码的方法。
存储器601可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器。
采用本公开实施例的电子设备,通过获取包含二维码的图像;确定图像的方向场信息;根据方向场信息确定二维码区域;对二维码区域构建采样网格,获得网格数量;网格数量为二维码区域的每一行或每一列的方格数量;根据网格数量确定若干备选二维码码制;根据各备选二维码码制对二维码区域进行解码。这样,由于在方向场信息中二维码边界与图像中除二维码边界以外的图像内容会呈现出不同的统计特征,因此能够由方向场信息确定二维码区域,而不需要利用定位符来确定二维码区域。使的能够在定位符不完整、完全缺失或存在脏污的情况下,确定二维码区域,从而提高二维码的解码率。
本公开实施例提供了一种存储介质,存储有程序指令,所述序指令在运行时,执行上述用于二维码解码的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于二维码解码的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (9)
1.一种用于二维码解码的方法,其特征在于,包括:
获取包含二维码的图像;
确定所述图像的方向场信息;
根据所述方向场信息确定二维码区域;
对所述二维码区域构建采样网格,获得网格数量;所述网格数量为二维码区域的每一行或每一列的方格数量;
根据所述网格数量确定若干备选二维码码制;
根据各所述备选二维码码制对所述二维码区域进行解码;
方向场信息包括图像中各像素点对应的梯度方向;根据所述方向场信息确定二维码区域,包括:统计各梯度方向分别对应的像素点数量;按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点;
根据所述备选像素点确定二维码边界线;根据所述二维码边界线确定二维码区域。
2.根据权利要求1所述的方法,其特征在于,根据所述网格数量确定若干备选二维码码制,包括:
利用预设的码制数据库,对网格数量进行查表操作,获得网格数量对应的备选二维码码制;码制数据库中存储有网格数量与备选二维码码制之间的对应关系。
3.根据权利要求1或2任一项所述的方法,其特征在于,根据各所述备选二维码码制对二维码区域进行解码,包括:
确定各所述备选二维码码制对应的第一解码步骤;
依次利用各所述第一解码步骤对所述二维码区域进行解码。
4.根据权利要求1或2任一项所述的方法,其特征在于,根据各所述备选二维码码制对二维码区域进行解码,包括:
分别验证各所述备选二维码码制,将验证成功的备选二维码码制确定为目标二维码码制;
确定所述目标二维码码制对应的第二解码步骤;
按照所述第二解码步骤对所述二维码区域解码。
5.根据权利要求4所述的方法,其特征在于,验证备选二维码码制,包括:
确定备选二维码码制对应的备选定位符区域和备选定位符区域对应的验证步骤;
确定二维码区域中与备选定位符区域对应的定位符区域;
按照备选定位符区域对应的验证步骤验证所述定位符区域。
6.根据权利要求1或2任一项所述的方法,其特征在于,根据各所述备选二维码码制对所述二维码区域进行解码前,还包括:
对所述二维码区域进行二值化操作;
根据各备选二维码码制对二值化后的二维码区域进行解码。
7.一种用于二维码解码的装置,其特征在于,包括:
获取模块,被配置为获取包含二维码的图像;
第一确定模块,被配置为确定所述图像的方向场信息;
第二确定模块,被配置为根据所述方向场信息确定二维码区域;
网格构建模块,被配置为对所述二维码区域构建采样网格,获得网格数量;所述网格数量为二维码区域的每一行或每一列的方格数量;
第三确定模块,被配置为根据所述网格数量确定若干备选二维码码制;
解码模块,被配置为根据各所述备选二维码码制对二维码区域进行解码;
方向场信息包括图像中各像素点对应的梯度方向;根据所述方向场信息确定二维码区域,包括:统计各梯度方向分别对应的像素点数量;按照像素点数量从大到小的顺序,将位于前两位的像素点数量对应的梯度方向确定为备选梯度方向;将备选梯度方向对应的像素点确定为备选像素点;
根据所述备选像素点确定二维码边界线;根据所述二维码边界线确定二维码区域。
8.一种电子设备,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至6任一项所述的用于二维码解码的方法。
9.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至6任一项所述的用于二维码解码的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210452381.1A CN114564978B (zh) | 2022-04-27 | 2022-04-27 | 用于二维码解码的方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210452381.1A CN114564978B (zh) | 2022-04-27 | 2022-04-27 | 用于二维码解码的方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114564978A CN114564978A (zh) | 2022-05-31 |
CN114564978B true CN114564978B (zh) | 2022-07-15 |
Family
ID=81721168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210452381.1A Active CN114564978B (zh) | 2022-04-27 | 2022-04-27 | 用于二维码解码的方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564978B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909869A (zh) * | 2017-02-27 | 2017-06-30 | 浙江华睿科技有限公司 | 一种矩阵式二维码的采样网格划分方法及装置 |
WO2017121018A1 (zh) * | 2016-01-11 | 2017-07-20 | 中兴通讯股份有限公司 | 二维码图像处理的方法和装置、终端、存储介质 |
CN107908996A (zh) * | 2017-10-25 | 2018-04-13 | 福建联迪商用设备有限公司 | 一种提取一维条码信息的方法及终端 |
CN110717500A (zh) * | 2019-09-29 | 2020-01-21 | 中山大学 | 一种二维条码初定位方法 |
CN112329496A (zh) * | 2020-12-02 | 2021-02-05 | 库卡机器人(广东)有限公司 | 矩形二维码识别方法、装置及电子设备 |
CN112651257A (zh) * | 2020-12-23 | 2021-04-13 | 福建新大陆支付技术有限公司 | 一种二维码、条形码图像定位及识别方法及其存储介质 |
CN113051950A (zh) * | 2019-12-27 | 2021-06-29 | 华为技术有限公司 | 一种多条码识别方法以及相关设备 |
CN113420580A (zh) * | 2021-07-14 | 2021-09-21 | 北京紫光青藤微系统有限公司 | 用于对二维码进行辅助定位符定位的方法及装置、二维码扫描设备、存储介质 |
CN113673655A (zh) * | 2021-10-22 | 2021-11-19 | 北京紫光青藤微系统有限公司 | 用于确定二维码解码方向的方法及装置、电子设备、介质 |
WO2022007431A1 (zh) * | 2020-07-07 | 2022-01-13 | 广东奥普特科技股份有限公司 | 一种Micro QR二维码的定位方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069389B (zh) * | 2015-07-27 | 2017-10-31 | 福建联迪商用设备有限公司 | 二维码分块解码方法及系统 |
TWI560620B (en) * | 2016-01-20 | 2016-12-01 | Qisda Corp | Barcode decoding method |
TWI676936B (zh) * | 2018-06-06 | 2019-11-11 | 偉詮電子股份有限公司 | 條碼偵測方法及條碼偵測系統 |
-
2022
- 2022-04-27 CN CN202210452381.1A patent/CN114564978B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017121018A1 (zh) * | 2016-01-11 | 2017-07-20 | 中兴通讯股份有限公司 | 二维码图像处理的方法和装置、终端、存储介质 |
CN106909869A (zh) * | 2017-02-27 | 2017-06-30 | 浙江华睿科技有限公司 | 一种矩阵式二维码的采样网格划分方法及装置 |
CN107908996A (zh) * | 2017-10-25 | 2018-04-13 | 福建联迪商用设备有限公司 | 一种提取一维条码信息的方法及终端 |
CN110717500A (zh) * | 2019-09-29 | 2020-01-21 | 中山大学 | 一种二维条码初定位方法 |
CN113051950A (zh) * | 2019-12-27 | 2021-06-29 | 华为技术有限公司 | 一种多条码识别方法以及相关设备 |
WO2022007431A1 (zh) * | 2020-07-07 | 2022-01-13 | 广东奥普特科技股份有限公司 | 一种Micro QR二维码的定位方法 |
CN112329496A (zh) * | 2020-12-02 | 2021-02-05 | 库卡机器人(广东)有限公司 | 矩形二维码识别方法、装置及电子设备 |
CN112651257A (zh) * | 2020-12-23 | 2021-04-13 | 福建新大陆支付技术有限公司 | 一种二维码、条形码图像定位及识别方法及其存储介质 |
CN113420580A (zh) * | 2021-07-14 | 2021-09-21 | 北京紫光青藤微系统有限公司 | 用于对二维码进行辅助定位符定位的方法及装置、二维码扫描设备、存储介质 |
CN113673655A (zh) * | 2021-10-22 | 2021-11-19 | 北京紫光青藤微系统有限公司 | 用于确定二维码解码方向的方法及装置、电子设备、介质 |
Non-Patent Citations (2)
Title |
---|
基于Android的实名火车票检票终端设计与实现;吴昊;《中国优秀硕士学位论文全文数据库 信息科学辑》;20140715;第I138-253页 * |
复杂背景下的QR二维码解码研究;郭建民等;《信息系统工程》;20151120;第137-138页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114564978A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5347034B2 (ja) | 画像マッチングのための方法およびシステム | |
US9911024B2 (en) | Systems and methods for decoding two-dimensional matrix symbols | |
US20120145779A1 (en) | Two-dimensional symbol code and method for reading the symbol code | |
EP3330887B1 (en) | Chinese-sensitive code feature pattern detection method and system | |
US9892114B2 (en) | Methods and systems for efficient automated symbol recognition | |
CN110738219A (zh) | 图像中线条提取方法和装置、存储介质及电子装置 | |
CN108229232B (zh) | 批量扫描二维码的方法和批量扫描二维码的装置 | |
CN103530669A (zh) | 一种数据信息的二维码编码方法 | |
RU2729399C1 (ru) | Способ обнаружения и распознавания визуальных маркеров большой дальности и высокой плотности | |
CN113837151A (zh) | 表格图像处理方法、装置、计算机设备及可读存储介质 | |
CN114005126A (zh) | 表格重构方法、装置、计算机设备及可读存储介质 | |
CN109508571B (zh) | 一种条空定位方法、装置、电子设备及存储介质 | |
CN115759148A (zh) | 图像处理方法、装置、计算机设备及计算机可读存储介质 | |
CN110942076A (zh) | 一种陶瓷产品防伪标识生成方法及系统 | |
CN110991201A (zh) | 条码检测方法及相关装置 | |
CN113420580A (zh) | 用于对二维码进行辅助定位符定位的方法及装置、二维码扫描设备、存储介质 | |
CN114564978B (zh) | 用于二维码解码的方法及装置、电子设备、存储介质 | |
WO2019019681A1 (zh) | 身份证图像的倾斜值获取方法及装置、终端、存储介质 | |
CN113822092B (zh) | 用于定位位置探测图形的方法及装置、电子设备、介质 | |
CN110245536B (zh) | 条码识别方法 | |
Martynov et al. | Aztec core symbol detection method based on connected components extraction and contour signature analysis | |
CN112085030A (zh) | 相似图像确定方法及装置 | |
CN116451721B (zh) | 用于进行解码的方法及装置、电子设备、存储介质 | |
US9836631B1 (en) | Method and apparatus for fractal identification | |
CN108875868A (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 |