一种自定义二维码的快速定位方法与流程

文档序号:16739095发布日期:2019-01-28 12:51阅读:696来源:国知局
一种自定义二维码的快速定位方法与流程

本发明涉及图像识别领域,尤其是一种自定义二维码的快速定位方法。



背景技术:

二维码作为一种较为经济、使用的物联网标识技术,具有存储信息量大、可靠性高、灵活实用、成本低等优点。传统的qr码的寻像图形都是由三个重叠的大小不一的同心正方形组成,这种拓扑结构在寻像图像缺失、污染等情况无法寻像,从而无法解译出数据码字。因此采用新的寻像图形来定义二维码亟待开发,用以提高二维码的抗模糊性、保密性和安全性。

为此,有人提出了使用以实心圆作为寻像图形的自定义二维码,这类二维码的数据矩阵由若干个半径比寻像图形小的信息圆组成。而针对此类二维码传统的识别方案是采用霍夫变换来识别圆,该算法的复杂度高识别速度慢,并且检测性能不稳定。



技术实现要素:

为解决上述技术问题,本发明的目的在于:提供一种识别速度快且检测性能稳定的自定义二维码的快速定位方法。

一种自定义二维码的快速定位方法,用于以实心圆作为寻像图形的自定义二维码,包括以下步骤:

获取二维码的图像并对二维码的图像进行预处理,得到二维码的二值化图像;

通过连通域提取和圆度分析在二维码的二值化图像中识别信息圆和三个寻像图形;

计算三个寻像图形的圆心坐标;

根据三个寻像图形的圆心坐标定位二维码。

进一步,所述获取二维码的图像并对二维码的图像进行预处理,得到二维码的二值化图像,这一步骤具体为:

获取二维码的图像,对获取的二维码图像依次进行灰度化、二值化和取反操作,得到二维码的二值化图像。

进一步,所述通过连通域提取和圆度分析在二维码的二值化图像中识别信息圆和三个寻像图形,这一步骤具体包括:

对二维码的二值化图像进行中值滤波处理;

对经过中值滤波处理后的二值化图像作形态学闭运算处理;

识别经过形态学闭运算处理后的二值化图像中的所有连通域;

计算得到的所有连通域的面积和圆度;

将圆度大于设定阈值的连通域标记为圆;

根据连通域的面积,从所有被标记为圆的连通域中识别信息圆和三个寻像图形。

进一步,所述连通域的圆度的计算公式为:

其中,p表示圆度,a表示连通域内像素点的个数,c表示连通域外边界的像素点的个数。

进一步,所述计算三个寻像图形的圆心坐标,这一步骤具体为:

根据质心公式计算三个寻像图形的质心位置,并将计算得到的质心位置作为寻像图形的圆心坐标。

进一步,所述根据三个寻像图形的圆心坐标定位二维码,这一步骤具体包括:

根据三个寻像图形的圆心坐标,计算以三个寻像图形的圆心为顶点的直角等腰三角形的斜边斜率和直角点到斜边的距离;

根据斜边斜率和直角点到斜边的距离确定二维码的主体方向和二维码的旋转校正角度;

根据二维码的主体方向和旋转校正角度定位二维码。

进一步,所述根据三个寻像图形的圆心坐标定位二维码,这一步骤具体包括:

根据三个寻像图形的圆心坐标,得到二维码的编码区域;

通过透视变换将二维码的编码区域内的信息映射到一个正方形中,得到校正后的正方形二维码。

进一步,所述透视变换所采用的映射公式为:

其中坐标(x’,y’)是原图坐标,(x,y)为纠正后图形坐标,a、b、c、d、m、n、p和q均为可以由雅克比迭代法求解未知变量。

进一步,在所述通过透视变换将二维码的编码区域内的信息映射到一个正方形中,得到校正后的正方形二维码,这一步骤之后还设有以下步骤:

采用双线性插值的方法对校正后的正方形二维码进行像素补偿。

本发明的有益效果是:本发明通过基于连通域的跟踪算法和圆度分析来确定代表寻像图形的大圆和承载信息的小圆,并计算寻像图形的圆心坐标,以此作为二维码的定位点,克服了在实际应用过程中出现的扫描时二维码的主体方向并不向上或者发生几何畸变的问题,本发明相对于传统的识别方法,具有精准度高和识别速度快的优点。

附图说明

图1为本发明一种自定义二维码的快速定位方法的流程图;

图2为本发明一种自定义二维码的快速定位方法中对二维码的图像进行预处理的效果示意图;

图3为本发明一种自定义二维码的快速定位方法中步骤s200的子步骤s201~s206的流程图;

图4为本发明一种自定义二维码的快速定位方法中步骤s400的子步骤s401~s403的流程图;

图5为本发明一种自定义二维码的快速定位方法中二维码的图像在各种主体方向上的示意图;

图6为本发明一种自定义二维码的快速定位方法中步骤s400的子步骤s404~s406的流程图;

图7为本发明一种自定义二维码的快速定位方法中二维码的编码区域的示意图;

图8为本发明一种自定义二维码的快速定位方法中透视变换过程的示意图。

具体实施方式

下面结合说明书附图和具体的实施例对本发明进行进一步的说明。

参照图1,一种自定义二维码的快速定位方法,用于以实心圆作为寻像图形的自定义二维码,包括以下步骤:

s100、获取二维码的图像并对二维码的图像进行预处理,得到二维码的二值化图像;在本步骤中,可以通过将二维码的图像转化为由1和0表示的二值化图像,即黑白图像,以便于后续的图像处理。

s200、通过连通域提取和圆度分析在二维码的二值化图像中识别信息圆和三个寻像图形。本步骤通过基于连通域的追踪方法获得所有可能是圆的连通域,并通过圆度分析来排除非圆形图案的干扰。

s300、计算三个寻像图形的圆心坐标;即寻找二维码的三个定位点。

s400、根据三个寻像图形的圆心坐标定位二维码。根据二维码的三个定位点可以确定二维码的方向。

作为优选的实施例,为了更加容易识别出连通域,所述步骤s100具体为:

获取二维码的图像,对获取的二维码图像依次进行灰度化、二值化和取反操作,得到二维码的二值化图像。

将二值化后的二维码图像的每个像素点进行取反,能够使本算法更好地检测寻像图形和信息圆。如图2所示,二维码的原图pic1经过二值化和取反操作后变成二值化图像pic2。在本实施例中,可以采用迭代阈值法对二维码图像进行二值化。

参照图3,作为优选的实施例,所述s200具体包括:

s201、对二维码的二值化图像进行中值滤波处理。

s202、对经过中值滤波处理后的二值化图像作形态学闭运算处理;以平滑图像的边界。

s203、识别经过形态学闭运算处理后的二值化图像中的所有连通域;在本实施例中,以连通域为白色像素点,连通域外为黑色像素点为例进行说明。

s204、计算得到的所有连通域的面积和圆度;在本步骤中,可以通过连通域中白色像素点的个数作为连通域的面积,归并统计连通域外边界的黑色像素点的个数作为连通域的周长,根据连通域的周长和面积,来计算连通域的圆度。

s205、将圆度大于设定阈值的连通域标记为圆;本步骤可以排除不是圆形的干扰信息。

s206、根据连通域的面积,从所有被标记为圆的连通域中识别信息圆和三个寻像图形。由于自定义二维码中的信息圆和寻像图形的面积大小呈一定比例,因此可以在被识别圆的连通域中区分出寻像图形和信息圆。

作为优选的实施例,所述连通域的圆度的计算公式为:

其中,p表示圆度,a表示连通域内像素点的个数,c表示连通域外边界的像素点的个数。

作为优选的实施例,为了更快更准确地计算三个寻像图形的圆心位置,所述步骤s300具体为:

根据质心公式计算三个寻像图形的质心位置,并将计算得到的质心位置作为寻像图形的圆心坐标。通过质心公式计算寻像图形的圆心坐标,准确且快捷。

参照图4,作为优选的实施例,所述步骤s400具体包括:

s401、根据三个寻像图形的圆心坐标,计算以三个寻像图形的圆心为顶点的直角等腰三角形的斜边斜率和直角点到斜边的距离。

s402、根据斜边斜率和直角点到斜边的距离确定二维码的主体方向和二维码的旋转校正角度。

s403、根据二维码的主体方向和旋转校正角度定位二维码。

自定义二维码的主体方向有四种可能,分别为上下左右,如图5所示,在经过步骤s300后,已经获得三个寻像图形的定位点,他们构成一个等腰直角三角形,通过计算该三角形的边长可以确定直角点,即图5中的点c,剩余两点(a点和b点)在自定义二维码的位置可以根据计算斜边的斜率以及直角点到斜边的距离的符号确定。

其中k为斜边斜率,dc为直角点到斜边的距离,即:

其中,p=-k,q=1,f=(k×xb)-yb。

可以推知,如图5所示(设定二维码的旋转方向为逆时针):

当k<0,dc<0,横坐标大于c的点是a,纵坐标大于c的点是b,二维码主体方向指向-45°到45°范围;

当k>0,dc<0,横坐标小于c的点是b,纵坐标大于c的点是a,二维码主体方向指向45°到135°范围;

当k<0,dc>0,横坐标小于c的点是a,纵坐标小于c的点是b,二维码主体方向指向135°到225°范围;

当k>0,dc>0,横坐标大于c的点是b,纵坐标小于c的点是a,二维码主体方向指向225°到315°范围。

至此,自定义二维码的三个定位点的位置均已确定,换言之,确定了二维码的主体方向。从而可以确定二维码的旋转校正角度θ。

判断主体方向和确定a,b位置之后,根据下式,计算该自定义二维码图形与x轴正向的夹角。

在二维码的主体方向以及二维码的旋转校正角度θ确定后,就可以按行和列进行扫描,获取自定义二维码的0/1数据矩阵,最后经过rs译码纠错得到数据码字。

参照图6,作为优选的实施例,为了克服图形发生严重几何畸变而导致步骤s401至s403无法正确识别出自定义二维码的情况,所述步骤s400还包括:

s404、根据三个寻像图形的圆心坐标,得到二维码的编码区域。

如图7所示,在已知寻像图形的三个圆心之后(即图7中的圆心a’、圆心b’和圆心c’),可求得斜率,利用斜率作寻像图形和信息圆的外切线,以四条外切线所构成的四边形的四个顶点作为编码区域的四个顶点,即图点p1’、点p2’、点p3’和点p4’。

s405、通过透视变换将二维码的编码区域内的信息映射到一个正方形中,得到校正后的正方形二维码。

如图8所述,在确定自定义二维码的编码区域的四个顶点之后,采用透视变换将二维码的四个顶点(即点p1’、点p2’、点p3’和点p4’)映射成正方形的四个顶点(即点p1、点p2、点p3和点p4),并将其余各点一一映射,其映射公式为:

其中坐标(x’,y’)是原图坐标,(x,y)为纠正后图形坐标,可根据雅可比迭代式求解八个未知变量。

s406、采用双线性插值的方法对校正后的正方形二维码进行像素补偿。

虽然已经获得校正后的正方形二维码,但是透视变换转换过程中存在像素丢失,此处采用双线性插值的方法补偿丢失的像素,假设坐标(x,y)的四邻域坐标分别是(x0,y0),(x0,y1),(x1,y0),(x1,y1),双线性插值公式为:

在完成像素补偿后,接着重新进行行列扫描,获取数据矩阵。

本领域技术人员,可以根据实际需要确定步骤s400的具体包含的子步骤,所述s400可以由步骤s401至s403组成,也可以由步骤s404和s406组成,或者由步骤s401至s406组成。

本发明提出了自定义二维码的快速定位方法,本发明克服了在实际应用过程中出现的扫描时二维码的主体方向并不向上或者发生几何畸变的问题,为后续的二维码译码解读信息做准备。本发明通过连通域跟踪算法确定代表寻像图形的大圆和承载信息的小圆,根据质心公式求得寻像图形的圆心,由此作为二维码的定位点,从而得到校正的角度,接下来首次进行行列扫描获取数据矩阵。如果数据矩阵获取失败,可以通过透视变换进行几何畸变纠正,再次获取数据矩阵,最后通过rs纠错译码得到数据码字。相比传统qr码,以圆来定义寻像图形和信息流的二维码具有抗模糊性能更好,外观更符合审美要求等优点,传统的识别圆的算法是霍夫变换,该算法复杂度高,检测性能并不稳定;而本发明提出的基于连通域方法来寻找圆,准确度高,识别速度快。

对于上述方法实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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