一种MicroQR二维码的定位方法与流程

文档序号:22916243发布日期:2020-11-13 15:57阅读:818来源:国知局

本发明属于二维码技术领域,具体涉及一种microqr二维码的定位方法。



背景技术:

qr码(quickresponsecode,快速响应矩阵码)是二维码的一种,不仅存储量大、成本低,还可以表示汉字及图像等多种文字信息、其保密防伪性强而且使用非常方便,因此,已被各行业普遍采用。而为了使镶嵌在物体上的二维码更“微型化”,行业内提出了一种microqr二维码,相对于qr码,microqr二维码只需要一个查找符号,拥有更小的体积和信息头开销,可以存储20bits到128bits容量的数据,此容量与qr码的存储量间没有交集,因此,microqr二维码可以作为qr码小容量存储方式的一种补充,从而扩大了qr码的应用领域。

如附图1中所示,展示了microqr二维码的结构示意图,与qr码不同的是,为了减少打印的尺寸,microqr二维码只设置有一个定位块图形,并且将用于保存二维码编码内容的时钟区设置在整个码区的边缘处。然而传统的qr码定位方法主要是根据三个定位块的直角三角关系来确定码区范围的,因此,采用传统的qr码定位方法无法对microqr二维码进行定位或存在定位不准确的缺陷。

有鉴于此,上述问题亟待解决。



技术实现要素:

本发明的目的在于:针对现有技术的不足,而提供的一种microqr二维码的定位方法,通过该方法能对microqr二维码进行有效准确的定位。

为实现上述目的,本发明采用如下技术方案:

一种microqr二维码的定位方法,包括以下步骤:

步骤1、对microqr二维码图像进行边缘检测,获取连通域后,再根据连通域提取所有轮廓;

步骤2、从步骤1中得到的所有轮廓中挑选出矩形连通域,确定矩形定位块中心;

步骤3、根据二维码定位块的比例关系,计算出定位块中心的精确坐标;

步骤4、以定位块的中心点为起点,分别沿时钟区的水平和垂直方向获取码区的水平方向的边界点和垂直方向的边界点,并根据这两个边界点和定位块的中心点,确定microqr二维码的码区边界。

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤1包括以下步骤:

步骤1.1、滤除噪声;

步骤1.2、计算图像中每个像素点的梯度强度和方向;

步骤1.3、使用非极大值抑制,消除边缘检测带来的杂散响应;

步骤1.4、使用双阈值检测确定真实的和潜在的边缘;

步骤1.5、通过抑制孤立的弱边缘完成边缘检测并提取所有轮廓,其中,轮廓的集合为{l1,l2,...,ln},每个轮廓li由点列{a0,a1,...,an}构成。

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤2具体为在获取的全部轮廓中筛选出矩形封闭的轮廓,具体包括以下步骤:

步骤2.1、遍历轮廓集合{l1,l2,...,ln},计算每个轮廓li的始点a0与终点an的距离,记为distance,若distance<d1pixel,则该轮廓为封闭的轮廓,其中,d1为矩形判断参数,其大小由microqr二维码的尺寸确定;

步骤2.2、根据矩形的性质,计算提取出的轮廓的面积与轮廓长度,再去除不满足比例关系式的轮廓,其中,area为轮廓的面积,length为轮廓的长度,d2为接近于0的值,具体数值大小根据microqr二维码的模糊程度确定;

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤3具体包括以下步骤:

步骤3.1、遍历所述步骤2中获取的所有矩形封闭轮廓;

步骤3.2、提取矩形封闭轮廓的质心(x,y);

步骤3.3、计算矩形封闭轮廓与水平方向的夹角,记为angle;

步骤3.4、以质心(x,y)的横坐标x为起点,根据定位块1:1:3:1:1的关系沿横向遍历图像,得到质心校正点的横坐标x0;

步骤3.5、以质心校正点的横坐标x0为起点,纵向遍历图像,得到中心的校正点纵坐标y0;

步骤3.6、矩形框中心的精确位置为startpoint(x0,y0)。

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤4中水平方向的边界点获取具体包括以下步骤:

步骤4.1a、从矩形框中心的精确位置startpoint(x0,y0)出发,沿夹角angle的-90°方向出发,即沿逆时针方向旋转90度,与码区的边缘相交的三点分别记为a1,a2,a3;

步骤4.2a、取新的起点,记为newstartpoint(x,y),其坐标设置为newstartpoint=0.5×(a2+a3),再从newstartpoint(x,y)出发,转向90°,沿夹角angle遍历整幅图像,与码区边缘相交,交点依次记为b1,b2,b3...bn;

步骤4.3a、将b1和b2的长度b1b2设置为基准,并设置patternx=0,计算b2到b4的长度,记为b2b4,若成立,记patternx=patternx+1,并继续计算后续点列,直到不满足上述关系式,停止遍历,得到水平方向的边界点坐标engpointx,其中,d3为接近于0的值,具体数值大小根据microqr二维码的模糊程度确定。

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤4中垂直方向的边界点获取具体包括以下步骤:

步骤4.1b、从矩形框中心的精确位置startpoint(x0,y0)出发,沿夹角angle的180°方向出发,与码区的边缘相交的三点分别记为a1,a2,a3;

步骤4.2b、取新的起点,记为newstartpoint(x,y),其坐标设置为newstartpoint=0.5×(a2+a3),再从newstartpoint(x,y)出发,转向90°,沿夹角angle的90°方向遍历整幅图像,与码区边缘相交,交点依次记为b1,b2,b3...bn;

步骤4.3b、将b1和b2的长度b1b2设置为基准,并设置patterny=0,计算b2到b4的长度,记为b2b4,若成立,记patterny=patterny+1,并继续计算后续点列,直到不满足上述关系式,停止遍历,最后得到垂直方向的边界点坐标engpointy,其中,d3为接近于0的值,具体数值大小根据microqr二维码的模糊程度确定。

作为对本发明中所述的microqr二维码的定位方法的改进,在获取水平方向的边界点和垂直方向的边界点后,分别计算垂直方向的边界点与定位块中心的距离以及水平方向的边界点与定位块中心的距离,若patternx=patterny,则表示水平方向的边界点和垂直方向的边界点是正确的,继续执行下一步骤;否则继续遍历下一个矩形框。

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤1在对microqr二维码图像进行边缘检测前,还包括对图像的预处理,所述预处理包括以下步骤:

步骤0.1、读取microqr二维码的灰度图像;

步骤0.2、对输入的图像采用非线性滤波器终止滤波进行图像平滑处理,其二维中值滤波输出为:

g(x,y)=med{f(x-k,y-l),(k,l∈w)},

其中,f(x,y),g(x,y)分别为原始图像和处理后的图像,w为二维模板。

作为对本发明中所述的microqr二维码的定位方法的改进,所述步骤4之后还包括对二维码图像的后处理,所述后处理包括对二维码图像进行校正,再经过二值化处理后得到精确定位后的microqr二维码图像。

作为对本发明中所述的microqr二维码的定位方法的改进,所述后处理中若图像为倾斜状态,则按照以下步骤进行校正:

步骤5.1、将microqr二维码的定位块中心坐标和水平方向的边界点engpointx坐标以及垂直方向的边界点engpointy坐标映射到标准qr二维码的三个定位块的中心,它们满足以下关系式:

通过求解得到图像旋转校正系数a11、a12、a21、a22,将原始的microqr二维码按照仿射变换旋转后,利用双线性插值法得到标准的microqr二维码图像;

步骤5.2、将microqr二维码图像像素分为背景和目标两部分,按照0到255个灰度值遍历,计算并找到前景和背景最大类间方差variance=w0×w1×(u0-u1)×(u0-u1),其中,w0为分开后前景像素点数占图像的比例;u0为分开后前景像素点的平均灰度;w1为分开后背景像素点数占图像的比例;u1为分开后背景像素点的平均灰度,当找到最大方差时停止遍历,此时的t为分割阈值,根据分隔阈值进行二值化处理,得到精确定位后的microqr二维码图像。

本发明的有益效果在于:与现有技术相比,本发明能够对microqr二维码图像准确定位,并且完整切出码区图像,供解码程序调用解码;对于复杂背景下的二维码图像,通过轮廓提取,解决了对于图像清晰度较差和光照不均匀的二维码图像对microqr二维码无法进行定位或定位不准确的问题,有助于利用位置定位符特征对二维码进行定位。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施方式及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为microqr二维码的结构示意图;

图2为本发明的工作流程图;

图3为本发明实施例中的microqr二维码原图像;

图4为本发明实施例中经过平滑处理后的microqr二维码图像;

图5为本发明实施例中经过canny算子提取轮廓的microqr二维码图像;

图6为本发明实施例中矩形框定位块的图像;

图7为本发明实施例中边界探索的图像;

图8为本发明实施例中码区图像的三个定位点;

图9为本发明实施例中码区的图像;

图10为本发明实施例中码区二值化后的图像。

具体实施方式

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。

在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

以下结合附图对本发明作进一步详细说明,但不作为对本发明的限定。

如图2所示,一种microqr二维码的定位方法,包括以下步骤:

步骤1、对microqr二维码图像进行边缘检测,获取连通域后,再根据连通域提取所有轮廓;

步骤2、从步骤1中得到的所有轮廓中挑选出矩形连通域,确定矩形定位块中心;

步骤3、根据二维码定位块的比例关系,计算出定位块中心的精确坐标;

步骤4、以定位块的中心点为起点,分别沿时钟区的水平和垂直方向获取码区的水平方向的边界点和垂直方向的边界点,并根据这两个边界点和定位块的中心点,确定microqr二维码的码区边界。

另外,需要说明的是,本发明还包括预处理,其中,预处理为在步骤1前对图像进行图像平滑处理。

其中,预处理包括以下步骤:

步骤0.1、读取microqr二维码的灰度图像;

步骤0.2、对输入的图像采用非线性滤波器终止滤波进行图像平滑处理,其二维中值滤波输出为:

g(x,y)=med{f(x-k,y-l),(k,l∈w)},

其中,f(x,y),g(x,y)分别为原始图像和处理后的图像,w为二维模板。

如图3所示,为本发明实施方式中microqr二维码原图像。读取图3所示的灰度图像,对输入图像采用非线性滤波器中值滤波进行图像平滑处理,消除图像在采集、获取、传送和转换(如成像、复制扫描、传输以及显示等)过程中,图像被不同程度的可见或不可见的噪声干扰。中值滤波,在一定程度上可以克服线性滤波器所带来的图像模糊问题,在滤除噪声的同时,较好地保留了图像的边缘信息。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈w)},其中,f(x,y),g(x,y)分别为原始图像和处理后的图像,w为二维模板。

于本发明中采用的平滑滤波的窗口是根据噪声的强度来控制的,针对图3所示microqr二维码,滤波窗口为[3*3]。最终平滑结果如图4所示。

其中,图5为本发明实施例中canny算子提取轮廓的图像,本发明中步骤1.1中提取图像轮廓使用了canny算子提取轮廓,包括以下步骤:

步骤1.1、滤除噪声;

步骤1.2、计算图像中每个像素点的梯度强度和方向;

步骤1.3、使用非极大值抑制,消除边缘检测带来的杂散响应;

步骤1.4、使用双阈值检测确定真实的和潜在的边缘,于本实施例中,低阈值=10,高阈值=30;

步骤1.5、通过抑制孤立的弱边缘完成边缘检测并提取所有轮廓,其中,轮廓的集合为{l1,l2,...,ln},每个轮廓li由点列{a0,a1,...,an}构成。

图6为本发明实施例中矩形框定位块图像。如图6所示,图像里所有矩形框图像为从上一步骤中获取的全部轮廓中挑选出符合矩形定位框的轮廓,其中轮廓集合{l1,l2,...,ln}包含的任意轮廓li由点列{a0,a1,...,an}构成,鉴于定位块的轮廓是矩形封闭轮廓,这里主要寻找构成定位块的封闭轮廓,具体包括以下步骤:

步骤2.1、遍历轮廓集合{l1,l2,...,ln},计算每个轮廓li的始点a0与终点an的距离,记为distance,若distance<d1pixel,则该轮廓为封闭的轮廓,其中,d1为矩形判断参数,其大小由microqr二维码的尺寸确定,本实施例中的d1=0.1;

步骤2.2、根据矩形的性质,计算提取出的轮廓的面积与轮廓长度,再去除不满足比例关系式的轮廓,其中,area为轮廓的面积,length为轮廓的长度,d2为接近于0的值,具体数值大小根据microqr二维码的模糊程度确定,本实施例中的d2=0.1。

优选的,步骤具体包括以下步骤:

步骤3.1、遍历所述步骤2.2获取的所有矩形封闭轮廓;

步骤3.2、提取矩形封闭轮廓的质心(x,y);

步骤3.3、计算矩形封闭轮廓与水平方向的夹角,记为angle;

步骤3.4、以质心(x,y)的横坐标x为起点,根据定位块1:1:3:1:1的关系沿横向遍历图像,得到质心校正点的横坐标x0;

步骤3.5、以质心校正点的横坐标x0为起点,纵向遍历图像,得到中心的校正点纵坐标y0;

步骤3.6、矩形框中心的精确位置为startpoint(x0,y0)。

图7为本发明实施例中水平与垂直边界点探索图像。根据microqr二维码时钟区的特性,以定位块中心为起点,沿着时钟区水平方向寻找码区水平方向边界点。再沿着时钟区垂直方向寻找码区垂直方向边界点。根据定位块的中心以及两个边界点,确定出microqr的码区边界。其中,水平方向的边界点获取具体包括以下步骤:

步骤4.1a、水平方向时钟区与定位块黑白黑的最外层是平齐的,从矩形框中心的精确位置startpoint(x0,y0)出发,沿夹角angle的-90°方向出发,即沿逆时针方向旋转90度,与白色的边缘相交三次,焦点分别记为a1,a2,a3;

步骤4.2a、取新的起点,记为newstartpoint(x,y),其坐标设置为newstartpoint=0.5×(a2+a3),再从newstartpoint(x,y)出发,转向90°,沿夹角angle遍历整幅图像,与码区白色的边缘相交,交点依次记为b1,b2,b3...;

步骤4.3a、将b1和b2的长度b1b2设置为基准,并设置patternx=0,计算b2到b4的长度,记为b2b4,若成立,记patternx=patternx+1,并继续计算后续点列,直到不满足上述关系式,停止遍历,得到水平方向的边界点坐标engpointx,其中,d3为接近于0的值,具体数值大小根据microqr二维码的模糊程度确定,本实施例中d3=0.1。

垂直方向的边界点获取具体包括以下步骤:

步骤4.1b、从矩形框中心的精确位置startpoint(x0,y0)出发,沿夹角angle的180°方向出发,与码区的边缘相交的三点分别记为a1,a2,a3;

步骤4.2b、取新的起点,记为newstartpoint(x,y),其坐标设置为newstartpoint=0.5×(a2+a3),再从newstartpoint(x,y)出发,转向90°,沿夹角angle的90°方向遍历整幅图像,与码区边缘相交,交点依次记为b1,b2,b3...bn;

步骤4.3b、将b1和b2的长度b1b2设置为基准,并设置patterny=0,计算b2到b4的长度,记为b2b4,若成立,记patterny=patterny+1,并继续计算后续点列,直到不满足上述关系式,停止遍历,最后得到垂直方向的边界点坐标engpointy,其中,d3为接近于0的值,具体数值大小根据microqr二维码的模糊程度确定。

在获取水平方向的边界点和垂直方向的边界点后,分别计算垂直方向的边界点与定位块中心的距离以及水平方向的边界点与定位块中心的距离,图8为本发明实施例中码区图像三个定位点,只需根据水平边界点与垂直边界点的坐标,利用距离公式可求出相应的距离。为了简化和提高的算法计算速度,利用下式,若patternx=patterny,则表示水平方向的边界点和垂直方向的边界点是正确的,继续执行下一步骤;否则继续遍历下一个矩形框。

本发明实施例中还包括后处理,即在步骤4之后对图像进行校正,与二值化处理,得到精确定位后的microqr二维码图像,在后处理的过程中若图像为倾斜状态,则还需要采用仿射变换的方法进行计算。具体计算过程如下:

利用仿射变换对二维码图像进行校正,将码区校正为正方形区域并切割出码区图像。图9为本发明实施例中码区图像,对它进行仿射变换,主要包括以下步骤:

步骤5.1、将microqr二维码的定位块中心坐标(x0,y0)和水平方向的边界点engpointx坐标以及垂直方向的边界点engpointy坐标映射到标准qr二维码的三个定位块的中心,其中,(x0,y0)对应的点为(3.5,3.5),engpointx和engpointy对应的点分别为(0.5,7+patternx×2),(7+patternx×2,0.5),标准二维码的模块尺寸取值为1,它们满足以下关系式:

通过求解得到图像旋转校正系数a11、a12、a21、a22、b1、b2,将原始的microqr二维码按照仿射变换旋转后,利用双线性插值法得到标准的microqr二维码图像;

步骤5.2、最大类间方差阈值法是一种自适应的阈值确定方法。算法假设图像像素能够根据阈值,被分成背景和目标两部分。然后,计算该最佳阈值来区分这两类像素,使得两类像素区分度最大。鉴于码区图像为黑白分明的编码图像,采用最大类间方差阈值法最为合适,具体过程为,按照0到255个灰度值遍历,计算并找到前景和背景最大类间方差variance=w0×w1×(u0-u1)×(u0-u1),其中,w0为分开后前景像素点数占图像的比例;u0为分开后前景像素点的平均灰度;w1为分开后背景像素点数占图像的比例;u1为分开后背景像素点的平均灰度,当找到最大方差时停止遍历,此时的t为分割阈值,根据分隔阈值进行二值化处理,得到精确定位后的microqr二维码图像。其中,在处理码区图像时,为避免边缘对于最大类间方差阈值法阈值产生影响,获取的码区图像特意选择超出码区边缘上下左右各2pixel,即满足国际标准的microqr二维码区域的尺寸。

上述说明示出并描述了本发明的若干优选实施方式,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施方式的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

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