一种二维码识别方法技术

技术编号:18445482 阅读:69 留言:0更新日期:2018-07-14 10:36
本发明专利技术提供一种二维码识别方法,该方法包括:(1)获取一幅图像,给定扫描序列;(2)计算该直线序号对应的直线上单位长度内波峰波谷的次数K;(3)若出现数学上连续的D个直线序号所对应的K都满足K>N,则认为该处即连续D个直线序号所在图像的位置可能存在二维码,并进入步骤(4),否则,使i增加1,返回步骤(2);(4)从此处找K

A two-dimensional code recognition method

The invention provides a two-dimensional code identification method. The method includes: (1) obtaining an image, given a scanning sequence, and (2) calculating the number of wave peaks in the unit length on a straight line corresponding to the straight line number K; (3) if the K of a continuous D straight sequence number in mathematics satisfies the K>N, it is considered to be connected. The position of the D line sequence number may exist two dimensional code, and enter the step (4), otherwise, the I increase 1, return to the step (2); (4) from this place to find K

【技术实现步骤摘要】
一种二维码识别方法
本专利技术涉及图像处理领域,特别是一种二维码的识别方法。
技术介绍
近年来,二维码因其信息容量大、保密性好、纠错能力强、制作和解码成本低而被应用于各个领域,随着应用的推广和普及,用户对识读设备的读码速度和性能也就越来越高。常规的识读设备是采用摄像头拍摄图像,由处理器对图像进行二值化、滤波、边缘提取等一系列运算得出二维码的位置及编码信息。增加摄像头的分辨率可提高识读设备的读码能力和用户体验,但会造成成本上升和处理速度下降。专利CN106485183A提出一种对图像进行预筛选和粗定位,再进行精确解码,减少数据处理量的方法,其方法主要针对DataMatrix二维码的定位图形特征(两条交叉的直线和虚线外边界)作为寻找二维码区域的依据,如果要识读多种不同码制,而对不同码制设定不同的方法去检索二维码的边界,将会让预筛选和粗定位浪费更多时间。
技术实现思路
本专利技术的目的提供一种二维码的识别方法,能大幅提高二维码的识别速度,其方法同样适用于条形码的识别。本专利技术的目的至少通过如下技术方案之一实现。一种二维码识别方法,其包括如下步骤:(1)获取一幅图像,用给定条数的相互平行的直线对图像进行间隔区分,并由最边上的一条直线开始从小到大顺次给出所有直线的序号;将直线序号按设定次序从左到右排布形成扫描序列;扫描序列中的最左位即起始位对应i=1,从左到右其他位对应的i依次增加1;所述直线为与图像的像素行成角度0~90°的直线;(2)对扫描序列中的第i位上的直线序号,获取图像上与该直线序号对应的直线的像素点灰度波形图,计算该直线序号对应的直线上单位长度内波峰波谷的次数K;(3)若i小于设定值D,使i增加1,并返回步骤(2),若i≥D,且出现数学上连续的D个直线序号所对应的K都满足K>N,则认为该处即连续D个直线序号所在图像的位置可能存在二维码,并进入步骤(4),否则,使i增加1,返回步骤(2);所述N是设定的变化次数,跟二维码的像素块有关,二维码包含的信息越多,N就越大;N设置越小计算量越小;(4)从此处可能存在二维码的位置按设定间隔步长开始沿直线两侧方向找K<M的T个连续直线序号所对应的直线,T为设定值,并将找到的连续T个直线序号所对应的区域相应地确定为该二维码两侧的区域;此时待识别的二维码所在图像已大幅减少;所述M为设定的波峰波谷次数,在包含二维码信息的像素行内比不包含二维码信息的像素行内的波峰波谷次数多;(5)对确定区域的二维码进行解码。进一步地,所述扫描序列中的直线序号按从小到大的顺序排列。进一步优化地,以中间或接近中间大小的直线序号排在扫描序列起始位,然后从左到右依次交替排上相对起始位上的直线序号递减和递增的直线序号。进一步地,步骤(4)之后,可继续在步骤(1)所获取的图像的剩余部分用步骤(2)~(4)查找是否还有其他二维码,以实现一幅图像中多个二维码的解码。作为一种较优的实施例,所述直线为与图像的像素行成角度0°的直线,即步骤(1)中用与像素行平行的直线对图像进行间隔区分。作为一种较优的实施例,所述直线为与图像的像素行成角度90°的直线,即用与像素列平行的直线对图像进行间隔区分。作为一种较优的实施例,用与像素行平行的直线对图像进行间隔区分,即所述直线为与图像的像素行成角度0°的直线;执行完步骤(1)~(4)后,再用与像素列平行的直线对图像进行间隔区分,即所述直线为与图像的像素行成角度90°的直线,然后再次执行完步骤(1)~(4);最后对确定区域的二维码进行解码。作为一种较优的实施例,用与像素列平行的直线对图像进行间隔区分,即所述直线为与图像的像素行成角度90°的直线,执行完步骤(1)~(4);再用与像素行平行的直线对图像进行间隔区分,即所述直线为与图像的像素行成角度0°的直线;执行完步骤(1)~(4);最后对确定区域的二维码进行解码。本申请一般情况下横向和纵向同时扫描可达到较好的扫描效果。也可以考虑以一定的倾角的直线作为扫描方向,可进一步提高可靠性。与现有技术相比,本专利技术具有如下优点和技术效果:本专利技术方法通过在灰度图中进行处理,通过通用的特征信息初步识别二维码的位置,将图像大幅缩小,再在小范围内进行精细计算,可大幅减少计算量,加快识读设备的解码速度。附图说明图1是本专利技术的一种二维码识别方法总体流程示意图。图2是正常拍摄的图像;图3是图像中像素分布及获取行、列灰度数据方法;图4是图像按行序号扫描示意图;图5是某一行像素点灰度图波形图;图6是按行序号实施本专利技术缩小后的图像大小;图7是按行序号和列序号实施本专利技术后的图像大小;图8a、图8b是其他码制的处理示意图。具体实施方式以下结合附图和实例对本专利技术的具体实施做进一步说明,但本专利技术的实施和保护不限于此。现有识别设备是控制器通过摄像头获取一幅图像,图像经过二值化后经滤波,轮廓提取,通过二维码的特征信息获取二维码的准确位置,再根据其编码信息进行解码,得到最终的数据,其处理过程是对整副图像进行处理,数据量大,计算复杂,而且一般识读设备支持多种二维码的种类,所以必须在图像中根据不同种类的特征信息将整副图像进行多次计算,其计算量将成倍的增加。本专利技术方法通过在灰度图中进行处理,通过通用的特征信息初步识别二维码的位置,将图像大幅缩小,再在小范围内进行精细计算,可大幅减少计算量,加快识读设备的解码速度。图1是本实例的一种二维码识别方法总体流程图。作为一种实施例,该方法具体包括:根据本专利技术的方法设定图像大小为长640像素,高480像素,N=5,M=1,n=2,D=4,T=3。(1)获取一幅图像;用给定条数的相互平行的直线(可以是图3中像素行或者像素列所在的直线,也可以是按倾斜角平行的直线)对图像进行间隔区分,并由最边上的一条直线开始从小到大顺次给出所有直线的序号(如[1,2.....478,479,480]),本实例的直线对应的是像素行;选择中间或接近中间大小的直线序号(如240)排在扫描序列起始位,然后按设定间隔步长2从左到右依次交替排上相对起始位上的直线序号递减和递增的直线序号(如240,238,242,236,244,234,246......480,2);扫描序列中的最左位即起始位对应i=1(对应的直线序号为240),从左到右其他位对应的i依次增加1,如扫描序列中的第i=2位对应的直线序号为238,扫描序列中的第i=3位对应的直线序号为242,依此类推;图2是正常拍摄的图像,二维码区域占整副图像的1/6;(2)对扫描序列中的第i位上的直线序号(初始i=1,对应的直线序号为240),获取当前像素行的像素点的灰度波形图,统计波峰波谷的位置和单位长度内波峰波谷的次数K;本步骤每次只处理1行数据,计算该行的K值;(3)若i小于设定值4,使i增加1,并返回步骤(2)(例如,i=2时对应的直线序号为238);如此循环直到i=4;若i≥4,且出现数学上连续的D个直线序号所对应的K都满足K>5,则认为该处即连续D个直线序号所在图像的位置可能存在二维码,并进入步骤(4),否则,使i增加1,返回步骤(2);如果上连续4行都满足波峰波谷K>5,则认为该处可能存在二维码;在图4中第120、122、124、126行经过二维码的位置,本文档来自技高网...

【技术保护点】
1.一种二维码识别方法,其特征在于包括如下步骤:(1)获取一幅图像,用给定条数的相互平行的直线对图像进行间隔区分,并由最边上的一条直线开始从小到大顺次给出所有直线的序号;将直线序号按设定间隔步长和次序从左到右排布形成扫描序列;扫描序列中的最左位即起始位对应i=1,从左到右其他位对应的i依次增加1;所述直线为与图像的像素行成角度0~90°的直线;(2)对扫描序列中的第i位上的直线序号,获取图像上与该直线序号对应的直线的像素点灰度波形图,计算该直线序号对应的直线上单位长度内波峰波谷的次数K;(3)若i小于设定值D,使i增加1,并返回步骤(2),若i≥D,且出现数学上连续的D个直线序号所对应的K都满足K>N,则认为该处即连续D个直线序号所在图像的位置可能存在二维码,并进入步骤(4),否则,使i增加1,返回步骤(2);所述N是设定的变化次数,跟二维码的像素块有关,二维码包含的信息越多,N就越大;N设置越小计算量越小;(4)从此处可能存在二维码的位置按设定间隔步长开始沿直线两侧方向找K

【技术特征摘要】
1.一种二维码识别方法,其特征在于包括如下步骤:(1)获取一幅图像,用给定条数的相互平行的直线对图像进行间隔区分,并由最边上的一条直线开始从小到大顺次给出所有直线的序号;将直线序号按设定间隔步长和次序从左到右排布形成扫描序列;扫描序列中的最左位即起始位对应i=1,从左到右其他位对应的i依次增加1;所述直线为与图像的像素行成角度0~90°的直线;(2)对扫描序列中的第i位上的直线序号,获取图像上与该直线序号对应的直线的像素点灰度波形图,计算该直线序号对应的直线上单位长度内波峰波谷的次数K;(3)若i小于设定值D,使i增加1,并返回步骤(2),若i≥D,且出现数学上连续的D个直线序号所对应的K都满足K>N,则认为该处即连续D个直线序号所在图像的位置可能存在二维码,并进入步骤(4),否则,使i增加1,返回步骤(2);所述N是设定的变化次数,跟二维码的像素块有关,二维码包含的信息越多,N就越大;N设置越小计算量越小;(4)从此处可能存在二维码的位置按设定间隔步长开始沿直线两侧方向找K<M的T个连续直线序号所对应的直线,T为设定值,并将找到的连续T个直线序号所对应的区域相应地确定为该二维码两侧的区域;此时待识别的二维码所在图像已大幅减少;所述M为设定的波峰波谷次数,在包含二维码信息的像素行内比不包含二维码信息的像素行内的波峰波谷次数多;(5)对确定区域的二维码进行解码。2.根据权利要求1所述的一种二维码识别方法,其特征在于所述扫描序列中的直线序号按设定间隔步长从小到大的顺序排列。3.根据权利要求1所述的一种二维码识别方法,其特征在于以中间或接近中间大小的直线序号排在扫描序列起始...

【专利技术属性】
技术研发人员:郑锡俊徐响林钟俊浩
申请(专利权)人:广州市钛码电子科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1