一种基于滑动部件匹配的二维码码型识别方法与流程

文档序号:11775183阅读:499来源:国知局
一种基于滑动部件匹配的二维码码型识别方法与流程

本发明涉及二维码识别领域,更具体地,涉及一种基于滑动部件匹配的二维码码型识别方法。



背景技术:

随着物联网技术的兴起,二维码被广泛应用到生活的各个方面,如仓库管理、物流信息查询、产品销售、商品防伪溯源以及移动支付。与一维码相比,在几乎不增加成本的情况下,二维码能存储更多信息,并实现信息纠错。即使出现污染和破损,也不影响二维码信息的读取。因此,二维码在工业上具有广泛应用。工业级应用对二维码图像处理算法提出更高要求,不仅需对其定位和几何畸变矫正,而且要对其码型做精确判别。

目前国际上使用的二维码有数十种,如qrcode,pdf417,datamatrix,maxicode、code16k等。由于不同的二维码有不同的编码规则,要实现不同码型的混合解码,最传统的方法便是根据一定的顺序把二维码送到不同的解码程序上进行解码,直到能解出结果为止。显然,此方法效率不高。



技术实现要素:

本发明提供一种高效率的基于滑动部件匹配的二维码码型识别方法。

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

一种基于滑动部件匹配的二维码码型识别方法,包括以下步骤:

s1:对拍摄设备拍摄到图像进行边缘提取;

s2:对提取出的边缘图像进行模板匹配;

s3:对匹配结果进行处理进而得出识别结果。

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

先把拍摄到的图像转换成灰度图,再用维纳滤波器和中值滤波器去除图像上的动态模糊和噪声,然后为了提高图像整体的亮度,用单尺度retinex算法对图像进行灰度变换,然后使用最大类间方差法把增强后的灰度图像转换为二值图像,之后用canny算法得到二值图像的边缘图像。

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

1)、应用不变性广义霍夫变换,假设参数a表示部件的尺度大小,参数θ表示该部件的旋转角度,参数ρ表示该部件透视形变的程度,(x,y)表示部件的中心坐标,则存在一组参数组合{a,θ,ρ,x,y}使得部件的边缘数据与目标的边缘数据能匹配到大于阈值的像素点,这组数据看作图像上与模板部件相关区域的描述,记录所有相关度大于阈值的相关区域的坐标面积和大小;

2)、在匹配过程中,依次用模板中的部件来进行相关运算,得到对应的相关区域,如果其中一个部件在图像中不存在相关区域,则匹配失败,用下一个模板来进行匹配;对于已经找到的相关区域,从每个部件的相关区域集中各抽出一个区域,组成一个区域组合;根据这个区域组合的坐标,面积,旋转角度,判断这个区域组合是否此模板的约束条件,如果不符合,则判断下一个组合,如果所有的组合都不符和条件,则匹配失败,用下一个模板继续进行匹配,如果有一个组合符号条件,则输出此组合的参数。

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

在匹配过程中一旦有一个模板能完全匹配,则认为图像上拍摄到的二维码的码型是该模板所对应的码型,然后根据匹配结果,在二值图像上把相应的区域截取出来;

对截取到的图形用一个10*10的正方形结构元素进行膨胀,再用3*3的正方形结构进行腐蚀。用膨胀结果减去腐蚀结果就得到二维码4条边的边界图;对边界图使用hough变换进行直线检测就能得到这4条边所在直线方差,求出这4组直线的4个交点就是二维码的4个交点;由于二维码是矩形,根据当前的码型,预先设定双线性变换后的4顶点坐标,然后应用双线性变换来矫正二维码的几何形变,矫正结束后,截取图像上二维码的最小识别区域,把图像传递到相应的解码程序,开始解码即可识别出二维码码型。

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

本发明中,当拍摄设备获取到二维码图像后,先对图像进行灰度化处理。然后对图像进行增强处理。这是由于拍摄设备和拍摄条件的限制,获取到的图像会出现光照不均,反光,阴影、模糊和噪声等情况。利用图像增强技术如中值滤波、维纳滤波、直方图均衡等方法可以有效增强图像的对比度。接着,对图像进行二值化,分离背景和前景。再接着,便是使用边缘检测算子对灰度图像进行边缘提取,得到图像的边缘图。在这边缘图中,白色像素是图像的边缘,黑色像素是背景。然后,根据预先设计好的数个可变型模板一次对图像进行匹配。找出相关度最大的模板,以及其图像上相关度最大区域。由于模板是根据二维码的码型来设计的,不同类型的模板都对应着一种二维码。因此,可以认为相关度大于阈值并且相关度是所有模板中最大的模板是图像中二维码的码型。在二值图像中截取边缘图像中相关度最大的区域即为二维码所在的区域。然后使用几何矫正算法,矫正几何形变。最后截取二维码的最小识别区域,然后解码识别出二维码的码型。

附图说明

图1为本发明流程图;

图2为模板匹配的流程;

图3为qrcode的匹配模板;

图4为pdf417的匹配模板。

具体实施方式

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

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

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

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

实施例1

如图1所示,一种基于滑动部件匹配的二维码码型识别方法,包括三个方面:分别是图像边缘提取,模板匹配、匹配结果处理。

1.边缘提取

当拍摄设备拍摄到图像后先对图像进行预处理。先把采集到的图像转换成灰度图,再用维纳滤波器和中值滤波器去除图像上的动态模糊和噪声。然后为了提高图像整体的亮度,用单尺度retinex算法对图像进行灰度变换,然后使用最大类间方差法把增强后的灰度图像转换为二值图像。之后用canny算法得到二值图像的边缘图像。

2.模板匹配

自定义一个类model,model应当至少包括以下成员:

用一个链表vector<model>models来依顺序存放所有的模板。下图是这个码型判别方法的流程图。

按照以上的方法,依次用不同的模板与图像进行相关运算。模板的顺序根据用户最近一段时间对不同码型的使用比例来确定。如最近一星期内,用户扫描qrcode的占比是50%,扫描pdf417的占比是30%,扫描datamatrix的占比是20%,则模板排序为qrcodepdf417,datamatrix。

匹配的流程如图2所示。由于拍摄条件的限制,目标会出现尺度,旋转,透视等形变。应用不变性广义霍夫变换,假设参数a表示部件的尺度大小,参数θ表示该部件的旋转角度,参数ρ表示该部件透视形变的程度,(x,y)表示部件的中心坐标,则存在一组参数组合{a,θ,ρ,x,y}使得部件的边缘数据与目标的边缘数据能匹配到大于阈值的像素点。这组数据可以看作图像上与模板部件相关区域的描述。记录所有相关度大于阈值的相关区域的坐标面积和大小。

在匹配过程中,依次用模板中的部件来进行相关运算,得到对应的相关区域。如果其中一个部件在图像中不存在相关区域,则匹配失败,用下一个模板来进行匹配。

对于已经找到的相关区域,从每个部件的相关区域集中各抽出一个区域,组成一个区域组合。根据这个区域组合的坐标,面积,旋转角度。用函数partconstraint()判断这个区域组合是否此模板的约束条件,如果不符合,则判断下一个组合。如果所有的组合都不符和条件,则匹配失败,用下一个模板继续进行匹配。如果有一个组合符号条件,则输出此组合的参数。

如图3所示,以qrcode为例,qrcode的模板由三个部件组成,分别对应与qrcode的三个定位图形。这三个部件由两条可变弹簧k1,k2进行连接,k1,k2的长度可变,但不可弯曲。根据qrcode的结构特点,qrcode的判断条件包括以下内容,三个相关区域的旋转角度,面积是否相同;k1/k2的比例是否接近1;

如图4所示,以pdf417为例子,pdf417的判断条件应当满足以下内容:三个相关区域的旋转角度,面积是否相同;组合区域的长宽比是否大于1.4。

3.匹配结果处理

在匹配过程中一旦有一个模板能完全匹配,则认为图像上拍摄到的二维码的码型是该模板所对应的码型。然后根据匹配结果,在二值图像上把相应的区域截取出来。

对截取到的图形用一个10*10的正方形结构元素进行膨胀,再用3*3的正方形结构进行腐蚀。用膨胀结果减去腐蚀结果就能得到二维码4条边的边界图。对边界图使用hough变换进行直线检测就能得到这4条边所在直线方差,求出这4组直线的4个交点就是二维码的4个交点。由于二维码一般都是矩形,我们可以根据当前的码型,预先设定双线性变换后的4顶点坐标,然后应用双线性变换来矫正二维码的几何形变。矫正结束后,截取图像上二维码的最小识别区域,把图像传递到相应的解码程序,开始解码。

以上方法可用于判断任意种类的二维码码型,如果要识别其他新的码型,只需制作相应的模板,储存在model类中,再在系统中添加相应的解码程序即可。

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

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

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

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