一种QR码快速定位检测算法的制作方法

文档序号:11655031阅读:2044来源:国知局
一种QR码快速定位检测算法的制造方法与工艺

本发明涉及qr码检测领域,更具体地,涉及一种qr码快速定位检测算法。



背景技术:

二维码(two-dimensionscode),又称二维条码,是在一维条码的基础上扩展出另一维具有可读性的条码,它使用某种特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形记录数据。它除了具有信息容量大、可靠性高等特点以外,还有超高速识读、全方位识读、可表示汉字、图像声音等一切可以数字化的信息并且有很强的保密防伪等优点。二维条码跟以往的一维条码一样,在商业活动中应用广泛,特别是在高科技行业、储存运输业、批发零售业等需要对物品进行廉价快捷的标示信息的行业用途广泛。

作为二维条码的一种,qr码(quickresponsecode)由于对比其它二维码具有存储容量大、识别率高等优点,被越来越广泛的应用于物联网、移动通信等众多领域中。本发明中的检测算法针对qr码进行。

传统的qr码检测技术主要利用以下几种方法对图片中的qr码进行提取:

(1)利用qr码的三个位置探测图形符合1:1:3:1:1黑白相间的特征来进行定位,通过扫描图片中包含的位置探测图形,确定位置探测图形的位置,从而得到qr码的位置。该方法需要对图片进行横竖多次扫描,速度较慢,且对于很多失真的二维码无法处理;

(2)另一种常用的方法采用对图片进行形态学的腐蚀和膨胀,图片中的二维码在腐蚀膨胀的作用下将形成一个正方形,而后采用霍夫变换的方法对图片中的直线进行检测,得到正方形的四条边,从而得到二维码的位置。该方法依赖于霍夫变换检测直线的方法,速度缓慢,同样无法应对一些类型的失真。

qr码的大规模应用对传统的检测方法提出了新的要求,也对二维码的应用带来了新的思路。采用健壮稳定的特征对qr码进行检测的技术有很广泛的应用场景。



技术实现要素:

本发明提供一种qr码快速定位检测算法,该算法速度快、性能稳定。

为了达到上述技术效果,本发明的技术方案如下:

一种qr码快速定位检测算法,包括以下步骤:

s1:对图像进行二值化,提取二值图形;

s2:采用canny算法提取二值图形的边缘图形;

s3:在边缘图形中搜索轮廓图形用于定位,并获取轮廓的嵌套关系;

s4:根据轮廓嵌套信息,判断有三个轮廓嵌套的图形为二维码的位置探测图形,若检测到的位置探测图形为三个,则计算其最外围轮廓的中心距,作为qr码的定位点;

s5:提取出qr码。

进一步地,所述步骤s1中采用otsu方法对待处理图像进行二值化。

进一步地,所述步骤s2的具体过程如下:

s2.1:对二值图形进行高斯滤波;

s2.2:用一阶偏导的有限差分来计算高斯滤波后的图像的梯度的幅值和方向;

s2.3:对计算出的梯度幅值进行非极大值抑制;

s2.4:用双阈值算法检测和连接边缘。

进一步地,所述步骤s4的具体过程如下:

在得到嵌套的轮廓信息后,进行筛选,将有三层轮廓嵌套的轮廓认为是qr码的位置探测图形,并采用最外层的轮廓的中心距作为qr码位置探测图形的定位点,中心距采用离散化的格林公式计算而得。

进一步地,所述步骤s5的具体过程如下:

s5.1:根据等腰三角形中直角点到斜边的标准距离以及斜边的斜率,确定qr码的主体方向;

s5.2:采用矩形窗口扫描的方法得到轮廓图形中的顶点,并根据顶点和顶点延长线,得到qr码的四个顶点;

s5.3:确定qr码的四个顶点后,采用透视变换的方法将四个顶点映射为正方形的四个顶点,并将内部各点一一进行映射,将图形中的qr码提取得出,其中映射模型如下:

其中,u、v为原图坐标,取x、y为目标图坐标,未知参数a-h由已确定的四个qr码顶点坐标代入解得。

与现有技术相比,本发明技术方案的有益效果是:

本发明方法对图像进行二值化,提取二值图形,然后采用canny算法提取二值图形的边缘图形,在边缘图形中搜索轮廓图形用于定位,并获取轮廓的嵌套关系,之后根据轮廓嵌套信息,判断有三个轮廓嵌套的图形为二维码的位置探测图形,若检测到的位置探测图形为三个,则计算其最外围轮廓的中心距,作为qr码的定位点,最后提取出qr码;该方法利用qr码轮廓进行定位的方法,而后根据轮廓顶点的关系确定qr码的四个顶点,最后采用透视变换的方法对qr码进行了提取;该方法原理易于理解,准确性高,识别速度快,可以很好的部署与生产环境中使用。

附图说明

图1为本发明方法流程图;

图2为本发明用于定位的轮廓特征图;

图3为qr码四种主体方向;

图4为本发明判断qr码方向到的原理图;

图5为本发明判断轮廓顶点的原理图;

图6为本发明确定qr码顶点的原理图;

图7为本发明采用的透视变换图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种qr码快速定位检测算法,包含了以下几个细分步骤:

步骤1:图像预处理

本发明的图像预处理包括图像二值化和边缘图形提取两个步骤。

步骤1.1:采用otsu方法对原始图像进行二值化;

步骤1.2:采用canny算法都而至图像提取边缘图形。

步骤2:寻找轮廓图形

qr码的位置探测图形由黑白相间的重叠的正方形构成,若取其边缘图形,则会构成三个嵌套的环形,本发明称之为轮廓,即qr码的位置探测图形的边缘图形由三个嵌套的轮廓构成。显然,这一特征在qr码受到变形、扭曲、透视变换等干扰时仍在存在,抗干扰性强,属于健壮的特征,如图2所示。本发明提出采用这一特征对qr码的位置探测图形即进行定位,由此确定qr码的位置。

对于轮廓图形的寻找,本发明采用了opencv中对轮廓提取算法(suzuki85)的实现。该方法用于在二值图像中检测轮廓,并且对轮廓的拓扑结构可以进行有效的识别,适用与本发明中对嵌套轮廓这一特征进行检测。

步骤3:确定定位点

在得到嵌套的轮廓信息后,进行筛选,将有三层轮廓嵌套的轮廓认为是qr码的位置探测图形,并采用最外层的轮廓的中心距作为qr码位置探测图形的定位点。中心距采用离散化的格林公式计算而得。

步骤4:提取qr码

提取二维码的工作包括三个步骤:

步骤4.1:确定qr码方向

qr码的主体方向有四种可能,如图3所示。

作为计算是否满足等腰三角形的条件的副产品,我们可以根据计算所得的三角形边长首先确定三个定位点中何者为qr码标准摆放时应处于左上角的点,即不属于最长边(即等腰三角形的斜边)的两个端点的点,即图4中c点。确定左上角点后,剩余两点在qr码中的实际位置可由斜边的斜率以及左上角点到斜边的标准距离的符号来判定。

其中slope为斜边斜率,distc为标准距离,即:

slope=dy/dx

a=-slope=-dy/dx

b=1

c=(slope*xb)-yb

容易推知:

当slope为正,distc为正时,a点为下点,b点为右点;

当slope为负,distc为正时,a点为右点,b点为下点;

当slope为正,distc为负时,a点为右点,b点为下点;

当slope为负,distc为负时,a点为下点,b点为右点。

至此qr码三个定位点的位置均已确定,也即确定的qr码的方向。

步骤4.2:确定轮廓顶点

此步骤中我们确定轮廓的四个顶点。qr码的位置探测图形为正方形,即使经过扭曲变形等干扰,其轮廓应依然保持为四边形。其顶点的检测矩形窗口扫描的方法完成:

对于轮廓上的某一点,扫描以其为中心的一个5*5的正方形区块的边缘,当边缘中的黑色点数量在某一阀值之下后,判定该点为一个顶点。其过程可由图5所描述。

步骤4.3:确定qr码四个顶点

由于qr码的方向已经确定,很容易可以确定位置探测图形最外围轮廓中的顶点中的其中三个为qr码的顶点。第四个点的确定则可由轮廓边的延长线的交点所获得,如图6所示。

步骤4.4:透视变换提取qr码

确定qr码的四个顶点后,即可采用透视变换的方法将四个顶点映射为正方形的四个顶点,并将内部各点一一进行映射,最终可将图形中的qr码提取得出,如图7所示。

本发明采用的映射模型如下所述:

取u、v为原图坐标,取x、y为目标图坐标,可利用以下公式完成映射:

未知数a-h可由已确定的四个qr码顶点坐标代入解得。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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