CN114997206A - 一种Aztec码图边界定位的方法及装置 - Google Patents
一种Aztec码图边界定位的方法及装置 Download PDFInfo
- Publication number
- CN114997206A CN114997206A CN202210923463.XA CN202210923463A CN114997206A CN 114997206 A CN114997206 A CN 114997206A CN 202210923463 A CN202210923463 A CN 202210923463A CN 114997206 A CN114997206 A CN 114997206A
- Authority
- CN
- China
- Prior art keywords
- aztec code
- coordinates
- outer ring
- image
- extrapolation
- 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.)
- Granted
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/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/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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及器视觉算法技术领域,提供了一种Aztec码图边界定位的方法及装置,其中,所述方法包括:采集包含Aztec码图的图像样本并进行预处理;搜索并确定所述Aztec码图的牛眼区域进行译码;在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数;以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标;对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
Description
技术领域
本申请涉及机器视觉算法技术领域,例如涉及一种Aztec码图边界定位的方法及装置。
背景技术
Aztec码,是一种回形嵌套式的二维条码。Aztec码图结构特征是码图中间以一个“牛眼”图案作为定位图形,数据围绕“牛眼”做方形环状编码。其中,方形环状编码为模块层。Aztec码不需要边缘留白(静区),因此Aztec码比其他矩阵条码使用更少的空间。这样,可以在更小的空间中储存更多资料。在实际应用中,Aztec码的边界容易与周围的颜色混合在一起。因此,需要有效地获取出Aztec码的边界以便更好地解析出信息。
相关技术能对Aztec码的图像进行边缘轮廓检测,通过计算将边缘轮廓清晰化,得到Aztec码的边界。但是在无法有效检测到Aztec码的边缘轮廓的情况下,难以识别出Aztec码的边界。例如,在多个Aztec码相邻且相接的情况下。由于Aztec码边缘可以没有留白,相邻的Aztec码的模块会混和在一起,难以获取明确的Aztec码的边缘轮廓。因此,基于留白信息的由外向内搜索码图边界方法发生失效,影响了Aztec码图形边界定位的准确性。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了Aztec码图边界定位的方法及装置、电子设备及存储介质,能够在无法基于留白信息的由外向内搜索码图边界的情况下,仍然可以实现对Aztec码的边界定位,从而提高Aztec码图形边界定位的准确性。
在一些实施例中,提供了一种Aztec码图边界定位的方法,包括:
采集包含Aztec码图的图像样本,并对所述图像样本进行预处理;
搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码;
在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数;
以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标;
对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
可选地,所述搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码,包括:
通过线扫描的方式搜索所述Aztec码图中黑带条和白带条,确定出符合预设的条带模式的正方形区域为牛眼区域;
根据所述牛眼区域的条带模式,确定所述Aztec码图的图码类型;
计算所述牛眼区域的最外圈白环的四个外圈角点的坐标;
根据所述牛眼区域的条带模式和最外圈白环的四个外圈角点的坐标,获取Aztec码图的格式信息和各个数据模块的坐标;
根据所述Aztec码图的格式信息和各个数据模块的坐标,在二值图中读取码字信息并进行RS译码。
可选地,所述计算外推次数N,包括:
在mod(M,m)=0的情况下,N=floor(M/m)-1;
在mod(M,m)≠0的情况下,N=floor(M/m);
其中,所述M表示从牛眼区域的最外圈白环至Aztec码图的边界所需的外圈的圈数,所述m表示每一次外推的圈数,mod()表示求模运算,floor()表示向下取整运算。
可选地,所述以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标,包括:
以所述外圈角点的坐标为基准,通过透视变换计算第n次外推后的初始外圈角点的坐标,其中,1≤n≤N且n为正整数;
根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,1≤i≤4且i为正整数;
根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第n次外推后的外圈角点的坐标。
可选地,所述根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,包括:
利用第n次外推后的初始外圈角点,建立四条直线方程Li,其中,1≤i≤4且i为正整数;
对直线方程Li上的每个点Lip(p=1,...,P),以Lip为初始点在线段的垂直方向上沿Aztec码图的内侧和外侧分别搜索二值图上颜色发生变化的点,其中,所述P为大于1的正整数;
在搜索长度未达到Len且找到颜色发生变化的点的情况下,记录颜色发生变化点的坐标,并停止第p次搜索,从而分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,Len为a×一个码图模块的像素数,a为一个常数。
可选地,所述根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第n次外推后的外圈角点的坐标,包括:
根据外圈坐标点集合LoutiT和内圈坐标点集合LiniT,分别拟合出四条直线方程Lnouti和四条直线方程Lnini,其中,1≤n≤N且n为正整数,1≤i≤4且i为正整数;
分别确定出四条直线方程Lnouti的四个交点Pnouti,以及四条直线方程Lnini的四个交点Pnini;
计算四个交点Pnouti与对应的四个交点Pnini的中值,作为最终的外推后的四个外圈角点的坐标。
可选地,所述对所述图像样本进行预处理,包括:
通过预设大小的高斯滤波器对所述图像样本进行图像降噪;
通过双线性插值将所述图像样本进行放大处理;
通过自适应门限算法对所述图像样本进行二值化处理。
在一些实施例中,提供了一种Aztec码图边界定位的装置,包括:
图像捕获和预处理模块,被配置为采集包含Aztec码图的图像样本,并对所述图像样本进行预处理;
区域搜索和译码模块,被配置为搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码;
图码边界定位模块,被配置为在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数;
所述图码边界定位模块,还被配置为以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标;
所述图码边界定位模块,还配置为对所述第N次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
在一些实施例中,提供了了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,执行如上述的Aztec码图边界定位的方法。
在一些实施例中,提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行如上述的Aztec码图边界定位的方法。
本公开实施例提供的一种Aztec码图边界定位的方法及装置、电子设备及存储介质,可以实现以下技术效果:
本申请能够在正常译码失败的情况下,以牛眼区域的最外圈白环的外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标,进而对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。这样,并不需要获取Aztec码的轮廓进而可以计算得到Aztec码的边界。因此,在无法基于留白信息的由外向内搜索码图边界的情况下,本公开实施例仍然可以实现对Aztec码的边界定位,从而提高Aztec码图形边界定位的准确性。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是相关技术中的一种Aztec码图示意图;
图2是本公开实施例提供的一种Aztec码图边界定位的方法流程图;
图3是本公开实施例提供的另一种Aztec码图边界定位的方法流程图;
图4是本公开实施例提供的另一种Aztec码图边界定位的方法流程图;
图5是本公开实施例提供的一种Aztec码图边界定位的应用示意图;
图6是本公开实施例提供的另一种Aztec码图边界定位的方法流程图;
图7是本公开实施例提供的另一种Aztec码图边界定位的应用示意图;
图8是本公开实施例提供的另一种Aztec码图边界定位的应用示意图;
图9是本公开实施例提供的另一种Aztec码图边界定位的方法流程图;
图10是本公开实施例提供的另一种Aztec码图边界定位的应用示意图;
图11是本公开实施例提供的另一种Aztec码图边界定位的方法流程图;
图12是本公开实施例提供的另一种Aztec码图边界定位的应用示意图;
图13是本公开实施例提供的另一种Aztec码图边界定位的装置;
图14是本公开实施例提供的一种Aztec码图边界定位的电子设备。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
首先,对本申请涉及的技术术语进行解释:
Aztec码:是一种回形嵌套式的二维条码,结合图1所示,Aztec码图结构特征是码图中间以一个“牛眼”图案作为定位图形,数据围绕“牛眼”做方形环状编码。其中,方形环状编码为模块层。Aztec码不需要边缘留白(静区),因此Aztec码比其他矩阵条码使用更少的空间。这样,可以在更小的空间中储存更多资料。
角点(Corner Point):通常意义上来说,角点就是极值点,即在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点;对于图像而言,其是物体轮廓线的连接点。
透视变换(Perspective Transformation):是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。
在实际应用中,由于Aztec码在使用的过程中可能存在磨损、打印缺陷、拍摄反光等因素造成的Aztec码缺损、变形、遮掩等现象,导致Aztec码的识别率较低。Aztec码没有留白,导致Aztec码容易与周围的颜色混合在一起。因此,需要有效地获取出Aztec码的边界以便更好地解析出信息。为了可以识别出Aztec码的边界,相关技术能对Aztec码的图像进行边缘轮廓检测,通过计算将边缘轮廓清晰化,得到Aztec码的边界。但是在无法有效检测到Aztec码的边缘轮廓的情况下,难以识别出Aztec码的边界。例如,在多个Aztec码相邻且相接的情况下。由于Aztec码边缘没有留白,相邻的Aztec码的模块会混和在一起,难以获取明确的Aztec码的边缘轮廓。
为此,结合图2所示,本公开实施例提供一种Aztec码图边界定位的方法,包括:
步骤201:采集包含Aztec码图的图像样本,并对所述图像样本进行预处理。
步骤202:搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码。
步骤203:在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数。
步骤204:以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标。
步骤205:对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
采用本公开实施例提供的Aztec码图边界定位的方法,能够在正常译码失败的情况下,以牛眼区域的最外圈白环的外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标,进而对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。这样,并不需要获取Aztec码的轮廓进而可以计算得到Aztec码的边界。因此,在无法基于留白信息的由外向内搜索码图边界的情况下,本公开实施例仍然可以实现对Aztec码的边界定位,从而提高Aztec码图形边界定位的准确性。
在本申请的实施例中,结合图3所示,所述对所述图像样本进行预处理,包括:
步骤301:通过预设大小的高斯滤波器对所述图像样本进行图像降噪。
步骤302:通过双线性插值将所述图像样本进行放大处理。
步骤303:通过自适应门限算法对所述图像样本进行二值化处理。
在本申请的实施例中,所述图像样本中包含Aztec码图并且采样率为640×480像素,同时,可以采用3×3大小的高斯滤波器进行图像降噪;利用双线性插值将图像进行放大,通过自适应门限算法对图像样本进行二值化处理。
这样,能更好地提高Aztec码图的清晰度和边界定位的准确性。
在本申请的实施例中,结合图4所示,所述搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码,包括:
步骤401:通过线扫描的方式搜索所述Aztec码图中黑带条和白带条,确定出符合预设的条带模式的正方形区域为牛眼区域。
步骤402:根据所述牛眼区域的条带模式,确定所述Aztec码图的图码类型。
步骤403:计算所述牛眼区域的最外圈白环的四个外圈角点的坐标。
步骤404:根据所述牛眼区域的条带模式和最外圈白环的四个外圈角点的坐标,获取Aztec码图的格式信息和各个数据模块的坐标。
步骤405:根据所述Aztec码图的格式信息和各个数据模块的坐标,在二值图中读取码字信息并进行RS译码。
在本申请的实施例中,结合图1所示,本申请利用线扫描方式搜索Aztec码图中共线的“白、黑、白、黑、白、黑、白”或“白、黑、白、黑、白、黑、白、黑、白、黑、白”的条带模式,且黑、白条带的宽度近似相等,完成“牛眼”区域的搜索和模块尺寸估计,即码图模块尺寸等于条带的宽度。
可选地,中心的黑条带可以模糊处理,即搜索“白、黑、白、X、白、黑、白”或“白、黑、白、黑、白、X、白、黑、白、黑、白”的条带,X表示黑或白。以最外侧的白色条带为初始位置,进行边界跟踪,如果跟踪出的边界围成闭合区域,且近似为正方形,则完成牛眼区域的确认,根据搜索到的条带模式可以判断码图类型,即紧凑型或全范围型。
结合图5所示,本申请进一步计算所述牛眼区域的最外圈白环的四个外圈角点的坐标,从而根据所述牛眼区域的条带模式和最外圈白环的四个外圈角点的坐标,获取Aztec码图的格式信息(Mode Message)和各个数据模块(Data Message)的坐标,其中,格式信息里面存储了Aztec码的一些信息,比如尺寸大小和存储的数据区域的个数等信息。码图层数和码字数都是根据Aztec码的编码规则,从格式信息里面读取出来的,这些信息以1、0的形式存储在格式信息中,1和0分别代表Aztec码的格式信息里面的黑和白模块,本申请进而根据所述Aztec码图的格式信息和各个数据模块的坐标,在二值图中读取码字信息并进行RS(Reed-Solomon)译码,RS编码,又称里所码,是一种前向纠错的信道编码,对由校正过采样数据所产生的多项式有效,当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。
这样,如果RS译码解析成功,则表明当前Aztec码图的边界定位是正确的,用户可以直接获取到Aztec码图中包含的信息,提高了译码的效率,否则开始码图边界定位。
在本申请的实施例中,所述计算外推次数N,包括:
在mod(M,m)=0的情况下,N=floor(M/m)-1;
在mod(M,m)≠0的情况下,N=floor(M/m);
其中,所述M表示从牛眼区域的最外圈白环至Aztec码图的边界所需的外圈的圈数,所述m表示每一次外推的圈数,mod()表示求模运算,floor()表示向下取整运算。
例如,若将牛眼区域的最外圈白环计数为第0圈,向外M=6圈到达码图边界,如果每次外推m=2圈,则外推的次数为N=2,即由于Aztec码没有留白,导致Aztec码图容易与周围的颜色混合在一起,故本申请并不将到采样图像的实际边界作为Aztec码图的边界。
在每次外扩相同的模块层数量m的情况下,需要计算向外外扩的次数N。由于每一次对角点进行向外外扩,都会产生一定的误差。每一次外扩的模块层越多,表示每一次透视变换外扩的距离越远,误差也就越大。
因此,m是根据实际的精度要求而制定的。在保证误差的合理范围内,设定m。每一次外扩,角点会逐渐靠近Aztec码图的边界。经过N次外扩后的多个角点会离Aztec码图的边界越来越近。通过最后一次外扩后的角点位置,推测出Aztec码的边界位置。例如,最后一次角点距离边界为1.5个模块距离,则计算出四个角点外扩出1.5个模块距离为该Aztec码图的边界。本公开实施例先识别出定位图形,通过透视变换将定位图形最外模块层的多个角点向外外扩多次,确定Aztec码图的边界。这样,并不需要获取Aztec码的轮廓进而可以计算得到Aztec码的边界。
因此,在无法有效检测Aztec码边缘轮廓的情况下,本公开实施例仍然可以实现对Aztec码的边界定位,从而提高Aztec码图形边界定位的准确性。
在本申请的实施例中,结合图6所示,所述以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标,包括:
步骤601:以所述外圈角点的坐标为基准,通过透视变换计算第n次外推后的初始外圈角点的坐标,其中,1≤n≤N且n为正整数。
步骤602:根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,1≤i≤4且i为正整数。
步骤603:根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第n次外推后的外圈角点的坐标。
在本申请的实施例中,结合图7和图8所示,本申请将牛眼区域的最外圈白环计数为第0圈,以牛眼区域的最外圈白环的四个外圈角点的坐标FCon0i为基准,通过透视变换计算第一次外推后的初始外圈角点的坐标ICon1i,即第m圈的四个初始外圈角点坐标,然后根据第一次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,最后根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第一次外推后的外圈角点的坐标FCon1i。进而,在下一次外推时,以FCon1i为基准利用透视变换计算第2m圈的四个初始外圈角点坐标ICon2i,重复上述步骤,直至n=N时,即第N次外推后得到第N×m圈的四个外圈角点的坐标FConNi,其中,所述m表示每一次外推的圈数。
这样,通过以内圈的四个角点为基准利用透视变换计算外圈中心的四个角点的初始坐标,通过向内、外垂直搜索的方式计算模块的边界点坐标,采用直线拟合后取交点的方法获得外圈内外八个角点的坐标,计算内外角点坐标的中值作为外圈中心四个角点的坐标,完成一次外推。重复N次外推后得到码图边界的角点坐标,能够由内至外逐圈外推的Aztec码图的边界,实现快速准确的边界定位。
可选地,结合图9所示,所述根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,包括:
步骤901:利用第n次外推后的初始外圈角点,建立四条直线方程Li,其中,1≤i≤4且i为正整数。
步骤902:对直线方程Li上的每个点Lip(p=1,...,P),以Lip为初始点在线段的垂直方向上沿Aztec码图的内侧和外侧分别搜索二值图上颜色发生变化的点,其中,所述P为大于1的正整数。
步骤903:在搜索长度未达到Len且找到颜色发生变化的点的情况下,记录颜色发生变化点的坐标,并停止第p次搜索,从而分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,Len为a×一个码图模块的像素数,a为一个常数。
在本申请的实施例中,结合图8和图10所示,本申请利用第n次外推后的初始外圈角点,建立四条直线方程Li,其中,1≤i≤4且i为正整数,如图8中四条实线线段,这四条实线线段组成的形状近似一个的正方形,进一步地,对直线方程Li上的每个点Lip(p=1,...,P),以Lip为初始点在线段的垂直方向上沿Aztec码图的外侧分别搜索二值图上颜色发生变化的点,如图8中箭头标识出搜索方向,如果搜索长度达到Len=a×一个模块的像素数时,未找到颜色发生变化的点,则搜索失败,否则记录颜色发生变化点的坐标,并停止第p次搜索,a为一个预设的常数,经过P次搜索得到的点的坐标集合记为外圈坐标点集合LoutiT,如图10中的外圈灰色实线为四条直线方程Li向外搜索到的点的坐标集合。
同时,对直线方程Li上的每个点Lip(p=1,...,P),以Lip为初始点在线段的垂直方向上沿Aztec码图的外侧分别搜索二值图上颜色发生变化的点,如图8中箭头标识出搜索方向,如果搜索长度达到Len=a×一个模块的像素数时,未找到颜色发生变化的点,则搜索失败,否则记录颜色发生变化点的坐标,并停止第p次搜索,经过P次搜索得到的点的坐标集合记为内圈坐标点集合LiniT,如图10中的内圈灰色实线为四条直线方程Li向内搜索到的点的坐标集合。
这样,能够更加准确地确定出每一圈的数据模块的边界,实现精准的Aztec码图的边界定位。
可选地,结合图11所示,所述根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出最终的第n次外推后的外圈角点的坐标,包括:
步骤1101:根据外圈坐标点集合LoutiT和内圈坐标点集合LiniT,分别拟合出四条直线方程Lnouti和四条直线方程Lnini,其中,1≤n≤N且n为正整数,1≤i≤4且i为正整数。
步骤1102:分别确定出四条直线方程Lnouti的四个交点Pnouti,以及四条直线方程Lnini的四个交点Pnini。
步骤1103:计算四个交点Pnouti与对应的四个交点Pnini的中值,作为最终的外推后的四个外圈角点的坐标。
在本申请的实施例中,结合图12所示,本申请根据外圈坐标点集合LoutiT和内圈坐标点集合LiniT,分别拟合出四条直线方程Lnouti和四条直线方程Lnini,其中,四条直线方程Lnouti的四个交点记为Pnouti,四条直线方程Lnini的四个交点记为Pnini,则Pnouti和Pnini对应点的中点为本次外推后的四个外圈角点的坐标FConni。同时,在下一次外推时,以上一次外推的四个外圈角点的坐标FConni为基准,利用透视变换计算下一圈的初始外圈角点IConni,重复上述步骤,直至n=N时,即第N次外推后得到第N×m圈的四个外圈角点的坐标FConNi,其中,所述m表示每一次外推的圈数,再利用透视变换得到Aztec码图边界的角点坐标,完成由内至外逐圈外推的Aztec码图边界定位。
这样,能够更加快速和准确地实现码图边界的定位,为Aztec码识别提供关键性的技术手段。
结合图13所示,本公开实施例提供一种Aztec码图边界定位的装置,包括:
图像捕获和预处理模块1301,被配置为采集包含Aztec码图的图像样本,并对所述图像样本进行预处理;
区域搜索和译码模块1302,被配置为搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码;
图码边界定位模块1303,被配置为在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数;
所述图码边界定位模块1303,还被配置为以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标;
所述图码边界定位模块1303,还配置为对所述第N次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
可选地,所述区域搜索和译码模块1302,具体被配置为:
通过线扫描的方式搜索所述Aztec码图中黑带条和白带条,确定出符合预设的条带模式的正方形区域为牛眼区域;
根据所述牛眼区域的条带模式,确定所述Aztec码图的图码类型;
计算所述牛眼区域的最外圈白环的四个外圈角点的坐标;
根据所述牛眼区域的条带模式和最外圈白环的四个外圈角点的坐标,获取Aztec码图的格式信息和各个数据模块的坐标;
根据所述Aztec码图的格式信息和各个数据模块的坐标,在二值图中读取码字信息并进行RS译码。
可选地,所述图码边界定位模块1303,具体被配置为:
在mod(M,m)=0的情况下,N=floor(M/m)-1;
在mod(M,m)≠0的情况下,N=floor(M/m);
其中,所述M表示从牛眼区域的最外圈白环至Aztec码图的边界所需的外圈的圈数,所述m表示每一次外推的圈数,mod()表示求模运算,floor()表示向下取整运算。
可选地,所述图码边界定位模块1303,具体被配置为:
以所述外圈角点的坐标为基准,通过透视变换计算第n次外推后的初始外圈角点的坐标,其中,1≤n≤N且n为正整数;
根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,1≤i≤4且i为正整数;
根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第n次外推后的外圈角点的坐标。
可选地,所述图码边界定位模块1303,具体被配置为:
利用第n次外推后的初始外圈角点,建立四条直线方程Li,其中,1≤i≤4且i为正整数;
对直线方程Li上的每个点Lip(p=1,...,P),以Lip为初始点在线段的垂直方向上沿Aztec码图的内侧和外侧分别搜索二值图上颜色发生变化的点;
在搜索长度未达到Len且找到颜色发生变化的点的情况下,记录颜色发生变化点的坐标,并停止第p次搜索,从而分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,Len为a×一个码图模块的像素数,a为一个常数。
可选地,所述图码边界定位模块1303,具体被配置为:
根据外圈坐标点集合LoutiT和内圈坐标点集合LiniT,分别拟合出四条直线方程Lnouti和四条直线方程Lnini,其中,1≤n≤N且n为正整数,1≤i≤4且i为正整数;
分别确定出四条直线方程Lnouti的四个交点Pnouti,以及四条直线方程Lnini的四个交点Pnini;
计算四个交点Pnouti与对应的四个交点Pnini的中值,作为最终的外推后的四个外圈角点的坐标。
可选地,所述图像捕获和预处理模块1301,具体被配置为:
通过预设大小的高斯滤波器对所述图像样本进行图像降噪;
通过双线性插值将所述图像样本进行放大处理;
通过自适应门限算法对所述图像样本进行二值化处理。
本申请能够在正常译码失败的情况下,以牛眼区域的最外圈白环的外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标,进而对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。这样,并不需要获取Aztec码的轮廓进而可以计算得到Aztec码的边界。因此,在无法基于留白信息的由外向内搜索码图边界的情况下,本公开实施例仍然可以实现对Aztec码的边界定位,从而提高Aztec码图形边界定位的准确性。
结合图14所示,本公开实施例提供Aztec码图边界定位的电子设备,包括处理器(processor)70和存储器(memory)141。可选地,该电子设备还可以包括通信接口(Communication Interface)142和总线143。其中,处理器140、通信接口142、存储器141可以通过总线143完成相互间的通信。通信接口142可以用于信息传输。处理器140可以调用存储器141中的逻辑指令,以执行上述实施例的Aztec码图边界定位的方法。
此外,上述的存储器141中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器141作为一种存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器140通过运行存储在存储器141中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中Aztec码图边界定位的方法。
存储器141可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器141可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于识别Aztec码图内的定位图形的方法。
上述的存储介质可以是暂态存储介质,也可以是非暂态存储介质。非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图显示了根据本公开实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种Aztec码图边界定位的方法,其特征在于,所述方法包括:
采集包含Aztec码图的图像样本,并对所述图像样本进行预处理;
搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码;
在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数;
以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标;
对最后一次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
2.根据权利要求1所述的方法,其特征在于,所述搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码,包括:
通过线扫描的方式搜索所述Aztec码图中黑带条和白带条,确定出符合预设的条带模式的正方形区域为牛眼区域;
根据所述牛眼区域的条带模式,确定所述Aztec码图的图码类型;
计算所述牛眼区域的最外圈白环的四个外圈角点的坐标;
根据所述牛眼区域的条带模式和最外圈白环的四个外圈角点的坐标,获取Aztec码图的格式信息和各个数据模块的坐标;
根据所述Aztec码图的格式信息和各个数据模块的坐标,在二值图中读取码字信息并进行RS译码。
3.根据权利要求1所述的方法,其特征在于,所述计算外推次数N,包括:
在mod(M,m)=0的情况下,N=floor(M/m)-1;
在mod(M,m)≠0的情况下,N=floor(M/m);
其中,所述M表示从牛眼区域的最外圈白环至Aztec码图的边界所需的外圈的圈数,所述m表示每一次外推的圈数,mod()表示求模运算,floor()表示向下取整运算。
4.根据权利要求1所述的方法,其特征在于,所述以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标,包括:
以所述外圈角点的坐标为基准,通过透视变换计算第n次外推后的初始外圈角点的坐标,其中,1≤n≤N且n为正整数;
根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,1≤i≤4且i为正整数;
根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第n次外推后的外圈角点的坐标。
5.根据权利要求4所述的方法,其特征在于,所述根据第n次外推后的初始外圈角点形成的线段为基准,向Aztec码图的内侧和外侧分别搜索二值图上颜色变化的点,分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,包括:
利用第n次外推后的初始外圈角点,建立四条直线方程Li,其中,1≤i≤4且i为正整数;
对直线方程Li上的每个点Lip(p=1,...,P),以Lip为初始点在线段的垂直方向上沿Aztec码图的内侧和外侧分别搜索二值图上颜色发生变化的点,其中,所述P为大于1的正整数;
在搜索长度未达到Len且找到颜色发生变化的点的情况下,记录颜色发生变化点的坐标,并停止第p次搜索,从而分别得到外圈坐标点集合LoutiT和内圈坐标点集合LiniT,其中,Len为a×一个码图模块的像素数,a为一个常数。
6.根据权利要求4所述的方法,其特征在于,所述根据所述外圈坐标点集合LoutiT和内圈坐标点集合LiniT,确定出第n次外推后的外圈角点的坐标,包括:
根据外圈坐标点集合LoutiT和内圈坐标点集合LiniT,分别拟合出四条直线方程Lnouti和四条直线方程Lnini,其中,1≤n≤N且n为正整数,1≤i≤4且i为正整数;
分别确定出四条直线方程Lnouti的四个交点Pnouti,以及四条直线方程Lnini的四个交点Pnini;
计算四个交点Pnouti与对应的四个交点Pnini的中值,作为最终的外推后的四个外圈角点的坐标。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述对所述图像样本进行预处理,包括:
通过预设大小的高斯滤波器对所述图像样本进行图像降噪;
通过双线性插值将所述图像样本进行放大处理;
通过自适应门限算法对所述图像样本进行二值化处理。
8.一种Aztec码图边界定位的装置,其特征在于,包括:
图像捕获和预处理模块,被配置为采集包含Aztec码图的图像样本,并对所述图像样本进行预处理;
区域搜索和译码模块,被配置为搜索并确定所述Aztec码图的牛眼区域,根据所述牛眼区域对所述Aztec码图进行译码;
图码边界定位模块,被配置为在译码失败的情况下,计算外推次数N和所述牛眼区域的最外圈白环的外圈角点的坐标,其中,所述N为大于等于1的正整数;
所述图码边界定位模块,还被配置为以所述外圈角点的坐标为基准,由牛眼区域向所述Aztec码图的边界对所述外圈角点进行N次外推,获取第N次外推后的外圈角点的坐标;
所述图码边界定位模块,还配置为对所述第N次外推后的外圈角点的坐标进行透视变换,得到所述Aztec码图的边界角点的坐标。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1至7中任一项所述的方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210923463.XA CN114997206B (zh) | 2022-08-02 | 2022-08-02 | 一种Aztec码图边界定位的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210923463.XA CN114997206B (zh) | 2022-08-02 | 2022-08-02 | 一种Aztec码图边界定位的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114997206A true CN114997206A (zh) | 2022-09-02 |
CN114997206B CN114997206B (zh) | 2022-09-30 |
Family
ID=83022292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210923463.XA Active CN114997206B (zh) | 2022-08-02 | 2022-08-02 | 一种Aztec码图边界定位的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114997206B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6390368B1 (en) * | 1997-06-07 | 2002-05-21 | Aquasol Ltd. | Coding systems |
CN101908128A (zh) * | 2010-06-01 | 2010-12-08 | 福建新大陆电脑股份有限公司 | Aztec Code条码解码芯片及其解码方法 |
CN201965627U (zh) * | 2010-06-01 | 2011-09-07 | 福建新大陆电脑股份有限公司 | Aztec Code条码解码芯片 |
CN103339642A (zh) * | 2010-09-20 | 2013-10-02 | 鲁米迪格姆有限公司 | 机器可读符号 |
CN112800798A (zh) * | 2021-01-15 | 2021-05-14 | 广东奥普特科技股份有限公司 | 一种Aztec码的定位方法 |
CN113111674A (zh) * | 2021-04-12 | 2021-07-13 | 广东奥普特科技股份有限公司 | Aztec码定位与解码方法、系统、设备及存储介质 |
-
2022
- 2022-08-02 CN CN202210923463.XA patent/CN114997206B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6390368B1 (en) * | 1997-06-07 | 2002-05-21 | Aquasol Ltd. | Coding systems |
CN101908128A (zh) * | 2010-06-01 | 2010-12-08 | 福建新大陆电脑股份有限公司 | Aztec Code条码解码芯片及其解码方法 |
CN201965627U (zh) * | 2010-06-01 | 2011-09-07 | 福建新大陆电脑股份有限公司 | Aztec Code条码解码芯片 |
CN103339642A (zh) * | 2010-09-20 | 2013-10-02 | 鲁米迪格姆有限公司 | 机器可读符号 |
CN112800798A (zh) * | 2021-01-15 | 2021-05-14 | 广东奥普特科技股份有限公司 | 一种Aztec码的定位方法 |
CN113111674A (zh) * | 2021-04-12 | 2021-07-13 | 广东奥普特科技股份有限公司 | Aztec码定位与解码方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114997206B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3309704B1 (en) | Two-dimensional code partitioning and decoding method and system | |
EP3309703B1 (en) | Method and system for decoding qr code based on weighted average grey method | |
CN100380393C (zh) | 复杂背景下qr码图像符号区域的精确定位方法 | |
US7636483B2 (en) | Code type determining method and code boundary detecting method | |
CN107609451A (zh) | 一种基于二维码的高精度视觉定位方法及系统 | |
CN109753838A (zh) | 二维码识别方法、装置、计算机设备及存储介质 | |
WO2013044875A1 (zh) | 线性条码识别方法和系统 | |
CN111797641A (zh) | 解码二维矩阵符号的方法和系统 | |
CN113705268B (zh) | 一种二维码定位方法及系统 | |
CN112598922B (zh) | 车位检测方法、装置、设备及存储介质 | |
CN109508573B (zh) | 二维码的解码方法和装置 | |
CN111582000B (zh) | 一种条形码定位方法、装置及相关设备 | |
CN108256375A (zh) | 一种一维条形码扫描方法 | |
CN109101855B (zh) | 一种基于opencv的缺失定位框二维码识别方法 | |
CN110765795A (zh) | 二维码识别方法、装置及电子设备 | |
CN110020571B (zh) | 二维码校正方法、装置及设备 | |
CN112767412B (zh) | 车辆部件级分割方法、装置以及电子设备 | |
CN114997206B (zh) | 一种Aztec码图边界定位的方法及装置 | |
Garcia et al. | Detection of matchings in a sequence of underwater images through texture analysis | |
CN111523331B (zh) | 一种二维码识别方法及装置 | |
CN113822092B (zh) | 用于定位位置探测图形的方法及装置、电子设备、介质 | |
US11562551B1 (en) | Image analysis for decoding angled optical patterns | |
CN112800798B (zh) | 一种Aztec码的定位方法 | |
CN111488762A (zh) | 一种车道级定位方法、装置及定位设备 | |
CN114781417A (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 |