一种变步长的快速二维码定位方法与流程

文档序号:18643393发布日期:2019-09-11 23:53阅读:417来源:国知局
一种变步长的快速二维码定位方法与流程

本发明涉及光通信和图像识别领域,具体涉及一种变步长的快速二维码定位方法。



背景技术:

近年来,随着移动支付的兴起和产品溯源的需求,二维码(quickresponsecode,简称qrcode)开始广泛进入人们的生活中,同时它具有低成本、信息容量大和容错能力强等优势,使得二维码被认为是当下连接线上线下最重要的桥梁,而桥梁的桥基就是解码技术。

在应用过程中,当前的解码技术存在解码耗时长和解码成功率低等问题。这使得其在某些领域的应用存在问题。例如高速公路利用二维码收费,由于解码耗时长,将会导致车辆的拥塞。在解码技术中,对解码耗时和解码成功率有直接影响的是二维码的三个寻像图形的定位问题。所以找到一种快速的、精确的二维码定位技术是十分重要,它是推动二维码技术继续发展的关键技术。



技术实现要素:

本发明的主要目的在于解决现有二维码定位技术在复杂情况下存在的缺陷,提供一种变步长的快速二维码定位方法,通过本发明可以实现快速的、精确的二维码定位。

为了达到上述目的,本发明采用以下技术方案:

本发明一种变步长的快速二维码定位方法,包括下述步骤:

s1、获取二维码图像;

s2、将获取的二维码图像做快速均值滤波处理,

s3、将步骤s2处理后的图像转换为灰度图;

s4、使用变步长的方法对二维码进行扫描,该扫描方法分为横向扫描和纵向扫描四个步骤,在横向扫描时,先采用大步长对图像进行横向扫描,获取扫描像素点的边缘坐标值,当扫描检测到设定的黑白宽度比t,说明扫描到寻像图形,保存边缘坐标值后采用小步长进行扫描,直至对整张图像横向扫描完毕;纵向扫描采用与横向扫描相同的方法,直至对整张图纵向扫描完毕;

s5、根据变步长扫描结果,快速得到各个寻像图形的精确位置;

s6、最后根据至少三个寻像图形的中心点坐标实现二维码定位。

作为优选的技术方案,步骤s4中,所述使用变步长的方法对二维码进行扫描,具体方法为:

s41、首先采用大步长ls对图像进行横向扫描,并对扫描过的像素点进行二阶微分边缘检测,得到相邻n个边缘点的坐标值,且随着扫描的进行,实时地清理并更新相邻n个边缘点的坐标值;当扫描检测到黑白宽度比为设定比t时,说明扫描到寻像图形,然后把该行号m和对应的n个边缘点坐标值保存起来,并把扫描步长变为小步长ss,所述黑白宽度比为黑:白:黑:白:黑的比,其中m≥3,n≥0,ls>2ss;

s42、当扫描检测到寻像图形黑白宽度比为设定比t时,将扫描步长由ls变为ss后,以小步长ss对前两步进行扫描;

s43、当对前两步扫描完成后,扫描指针将会向后跳跃三步,若当前行检测不到黑白宽度比t,则保持小步长ss向后扫描十步;若当前行检测到寻像图形黑白宽度比t,则继续以小步长ss扫描,直到当前行检测不到寻像图形特征,继续保持以小步长ss向后扫描十步;

s44、如果保持小步长ss向后扫描十步后都检测不到寻像图形特征,扫描步长由小步长ss变为大步长ls继续扫描,重复s41、s42、s43和s44,直至对整张图像横向扫描完毕;

s45、对整张图像横向扫描完毕后进行纵向扫描,首先采用大步长ls对图像进行纵向扫描,并对扫过的像素点进行二阶微分边缘检测,得到相邻n个边缘点的坐标值,且随着扫描的进行,还要实时地清理并更新相邻n个边缘点的坐标值,当扫描检测到黑白宽度比为t时,说明扫描到寻像图形,然后把该列号和对应的n个边缘点坐标值保存起来,并把扫描步长变为小步长ss;

s46、当扫描检测到寻像图形黑白宽度比为t时,将扫描步长由大步长ls变为小步长ss,以小步长ss对前两步进行扫描;

s47、当对前两步扫描完成后,扫描指针向后跳跃三步,若当前列检测不到黑白宽度比t,则保持小步长ss向后扫描十步;若当前列检测到寻像图形黑白宽度比t,则继续以小步长ss扫描,直到当前列检测不到寻像图形特征,继续保持以小步长ss向后扫描十步;

s48、如果保持小步长ss向后扫描十步后也检测不到寻像图形特征,扫描步长由小步长ss变为大步长ls继续扫描,重复s45、s46、s47和s48,直至对整张图像纵向扫描完毕。

作为优选的技术方案,步骤s6中,所述寻像图形的中心点坐标通过下述方法确定:

根据之前保存好的行号和对应的寻像图形n个边缘点坐标值,得到各行号对应的寻像图形n个边缘点的中心点坐标值,然后逐行查找n个边缘点的中心点坐标,然后检查中心点对应的列号的是否保存,若保存则在列向得到一个或两个寻像图形n个边缘点的中心点坐标,此时要判断列向得到的中心点横坐标与当前查找行号的差值是否大于寻像图形中心黑块宽度,如果大于则舍弃,反之,找到的列向中心点坐标即为寻像图形中心点坐标;同理,逐列查找,又得到一系列寻像图形中心点坐标,在对这些寻像图形中心点坐标求平均值,即可得出各个寻像图形中心点坐标。

作为优选的技术方案,所述黑白宽度比t为1:1:3:1:1,n为5。

作为优选的技术方案,找到寻像图形特征的行、寻像图形特征的行列数量均大于等于3。

作为优选的技术方案,在步骤s43和s47中,在检测到黑白宽度比为1:1:3:1:1时,若下一步检测不到寻像图形特征,则继续以小步长ss扫描十步。

作为优选的技术方案,步骤s1中,利用摄像设备拍摄一张二维码图像。

作为优选的技术方案,所述大步长ls为3,小步长ss为1。

本发明与现有技术相比,具有如下优点和有益效果:

(1)本发明解决了现有技术存在的固定ls扫描二维码定位不准问题和固定ss扫描图像定位耗时较长问题,并且在复杂情况下也有很高的定位成功率,具有很好的实用性。

(2)经过测试,本发明不仅可以对一般情况下的二维码实现快速的、精确的定位,而且对于对比度很低和打印质量较差的二维码也能实现精确的定位。

附图说明

图1是本实施例1中公开的一种变步长的快速二维码定位方法的流程图;

图2是变步长操作后的边缘点示意图;

图3是寻像图形定位示意图;

图4是本实施例2中公开的一种变步长的快速二维码定位方法的变步长流程图;

图5是二维码寻像图形结构示意图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例1

本实施例公开了一种变步长的快速二维码定位方法,其框架图可以参照附图1所示,具体步骤包括:

步骤1:利用摄像设备拍摄一张二维码图像。

步骤2:将步骤1拍摄所得图像做快速均值滤波处理。使用快速均值滤波算法可以去除图像的大量噪声,且耗时较少。噪声会引起错误的变步长,影响定位精度。

步骤3:将步骤2所得图像转换为灰度图像。因为二维码是黑白的,所以转换为灰度图像很重要,可提高运算速度。

步骤4:使用变步长的方法对二维码进行扫描,保存好重要信息(具体在实施例二中介绍)。其中,大步长ls预设为3,小步长ss预设为1。具体可参照附图2。

步骤5:根据变步长扫描结果,将会快速得到各个寻像图形的精确位置。当对整张图像扫描完毕后,先查找保存好的行号,然后根据对应的寻像图形5个边缘点坐标值找到中心点位置,进而根据中心点的列号查找纵向是否有保存好的列号,具体可参照附图3。如果有保存好的列号,则可在列向得到一个或两个寻像图形5个边缘点的中心点坐标,此时要判断列向得到的中心点横坐标与当前行号的差值是否大于寻像图形中心黑块宽度,如果大于舍弃,反之,找到的列向中心点坐标即为寻像图形中心点坐标。然后继续下一行查找,得到一系列中心点坐标。查找行号完毕后,就开始查找保存好的列号,接下来的步骤与查找行号时一致,又得到一系列寻像图形中心点坐标,最后这些中心点坐标求平均值,即可得出各个寻像图形中心点坐标。

步骤6:二维码图像经过滤波算法预处理,以及变步长扫描定位的系列操作,将会快速得到各个寻像图形的精确位置,最后根据三个寻像图形的中心点坐标,即可实现二维码定位。

实施例2

本实施例公开了一种变步长的快速二维码定位方法,其变步长流程图可以参照附图4所示,变步长的具体步骤包括:

步骤1:在扫描二维码图像过程中,首先采用步长为3对图像进行横向扫描,并对扫过的像素点进行二阶微分边缘检测,得到相邻边缘点的坐标值。随着扫描的进行,还要实时地清理并更新相邻5个边缘点的坐标值。如附图2所示,当扫描检测到黑白宽度比为1:1:3:1:1(如附图5所示)时,说明扫描到寻像图形,然后把该行号和对应的5个边缘点坐标值保存起来,并把扫描步长调整为1。要考虑到实际图像存在的误差,黑白宽度比很少会正好为1:1:3:1:1,所以有几个像素的偏差可认为是误差,增加了实际应用中的鲁棒性。要求找到的行的数量大于等于3,这可使定位精度更高。

步骤2:当扫描检测到寻像图形黑白宽度比为1:1:3:1:1时,将扫描步长由3变为1后,还要以步长为1对前两行进行扫描,因为当二维码是旋转角度较大时,会造成找到的行数量少,达不到大于等于3的要求,定位精度低。

步骤3:当对前两行扫描完成后,扫描指针将会向后跳跃三行,若当前行检测不到黑白宽度比1:1:3:1:1,则保持步长为1向后扫描十行;若当前行检测到寻像图形黑白宽度比1:1:3:1:1,则继续以步长为1扫描,直到当前行检测不到寻像图形特征,还要继续保持以步长为1向后扫描十步。因为寻像图形内部的噪点会影响黑白宽度比1:1:3:1:1的判断,造成错误变步长。所以在检测到宽度比为1:1:3:1:1时,若下一行检测不到寻像图形特征,继续以步长为1扫描十行,可避免因错误变步长而漏扫存在寻像图形特征的行。

步骤4:如果扫描十行后都检测不到寻像图形特征,扫描步长由1变为3继续扫描,然后重复步骤1、步骤2、步骤3和步骤4,直至对整张图像横向扫描完毕。

步骤5:对整张图像横向扫描完毕后进行纵向扫描。首先采用步长为3对图像进行扫描,并对扫过的像素点进行二阶微分边缘检测,得到相邻5个边缘点的坐标值。随着扫描的进行,还要实时地清理并更新相邻5个边缘点的坐标值。如附图2所示,当扫描检测到黑白宽度比为1:1:3:1:1(如附图5所示)时,说明扫描到寻像图形,然后把检测到比例的列号和对应的5个边缘点坐标值保存起来,并把扫描步长调整为1。要考虑到实际图像存在的误差,黑白宽度比很少会正好为1:1:3:1:1,所以有几个像素的偏差可认为是误差,增加了实际应用中的鲁棒性。要求找到的列的数量大于等于3,这可使定位精度更高。

步骤6:当扫描检测到寻像图形黑白宽度比为1:1:3:1:1时,将扫描步长由3变为1后,还要以步长为1对前两列进行扫描,因为当二维码是旋转角度较大时,会造成找到的列数量少,达不到大于等于3的要求,定位精度低。

步骤7:当对前两列扫描完成后,扫描指针将会向后跳跃三列,若当前列检测不到黑白宽度比1:1:3:1:1,则保持步长为1向后扫描十列;若当前列检测到寻像图形黑白宽度比1:1:3:1:1,则继续以步长为1扫描,直到当前列检测不到寻像图形特征,还要继续保持以步长为1向后扫描十步。因为寻像图形内部的噪点会影响黑白宽度比1:1:3:1:1的判断,造成错误变步长。所以在检测到宽度比为1:1:3:1:1时,若下一列检测不到寻像图形特征,继续以步长为1扫描十列,可避免因错误变步长而漏扫存在寻像图形特征的列。

步骤8:如果扫描十列后都检测不到寻像图形特征,扫描步长由1变为3继续扫描,然后重复步骤5、步骤6、步骤7和步骤8,直至对整张图像纵向扫描完毕。

应当理解,上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,该实施的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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