一种寻像图形缺失一处的QR码定位和校正算法的制作方法

文档序号:16856565发布日期:2019-02-12 23:22阅读:356来源:国知局
一种寻像图形缺失一处的QR码定位和校正算法的制作方法

本发明涉及一种算法,特别地,涉及一种寻像图形缺失一处的qr码定位和校正算法。



背景技术:

qr码的三个角的寻像图形可以帮助确定符号的位置、尺寸和倾斜度。因此,对于寻像图形缺失的情况,目前市面上流行的移动设备不能识别。当qr码的寻像图形缺失,以及人们在使用拍照过程中拍照设备和qr码存在一定倾斜角导致图像发生一定程度的透视畸变时,没有一种很好的定位校正算法将这种情况下的qr码,从图片中校正成正方形并提取出来。现有技术对于处理畸变的qr码,严重依赖qr码的三个角的寻像图形用于确定符号的位置、尺寸和倾斜度。一旦三个角的寻像图形缺失其中一个,现有算法无法识别校正。



技术实现要素:

为了克服现有技术的不足,本发明提供一种寻像图形缺失一处的qr码定位和校正算法。

本发明解决其技术问题所采用的技术方案是:

一种寻像图形缺失一处的qr码定位和校正算法,包括以下步骤,

s1:利用轮廓查法找到整幅图像中的所有轮廓,利用三重嵌套标准、嵌套的轮廓中是否有共同中心点这两个标准初步筛选轮廓;

s2:如果符合标准的轮廓小于或者等于3组,则跳过这一步,如果大于3组,则添加上面积比例的标准进行二次筛选;

s3:若步骤s2筛选出来满足条件的轮廓只有两组,则认为是缺失一个寻像图形的qr码,然后利用提取两组轮廓中每一组最外层轮廓,寻找两个最外层轮廓最小包围轮廓矩形,并记录矩形各自对应的四个顶点和中心点;

s4:计算两个寻像图形中心点所构成直线的直线方程,然后计算两个最外层轮廓对应的八个顶点到直线距离的方差,如果方差大于某一预设值,则认为两个寻像图形处于标准qr码图形中的对角关系,否则认为处于非对角关系,然后对两种关系对应的情况分别讨论,利用两个寻像图形中心点距离还有两个寻像图形最小包围矩形的边长来计算qr码版本号和qr码的每个模块所占像素值,记为m;

s5:如果qr码版本号等于1,则利用步骤s4计算所得的m来设定腐蚀膨胀操作所需要的核的大小,然后进行两次腐蚀和膨胀操作,所得操作后图形再进行canny边缘提取,然后再利用累计概率hough变换检测直线,最后记录所得直线间两两交点所得四个顶点,为原图中的qr码的顶点,然后再计算出标准图形中qr码顶点的对应位置,再利用校正算法进行校正;

s6:如果qr码版本号大于或者等于2,再分别对两个寻像图形相对位置为对角关系或者非对角关系时分别讨论,并用对图形进行校正;

s7:对校正后的图形进行裁剪,裁剪出只有qr码的部分。

优选地,所述步骤s4,如果两个寻像图形相对位置是对角关系,则中心点距离除以根号2,记录所得值为a1,然后将两个寻像图形最外层轮廓的最小面积包围矩形的最小边长分别记录为b21,b22,计算qr码的每个模块所占像素值,记为m=(b21+b22)/14和qr码版本号,为(a1/m-10)/4。

优选地,所述步骤s4,如果两个寻像图形相对位置是非对角关系,则中心点距离记为a2,然后将两个寻像图形最外层轮廓的最小面积包围矩形的最小边长分别记录为b21,b22,计算qr码的每个模块所占像素值,记为m=(b21+b22)/14和qr码版本号,为(a2/m-10)/4。

优选地,所述步骤s6,两个寻像图形相对位置为对角关系时,按照以下步骤来校正图形,

p1:两个寻像图形中心点的连线的中点记为qr码中心点,寻像图形八个顶点到该中心点距离最大值记为l;

p2:以此qr码的中心点为中心点取一个矩形区域,矩形的长宽都为2l,再取包含qr码的图像与该矩形区域取交集记为w,认为qr码必定在该区域内;

p3:在w区域中通过轮廓查找法查找轮廓,并利用两重嵌套标准和最内层轮廓面积小于某一设定值的两个标准来寻找校正图形所在中心点;

p4:以qr码中心点为坐标原点建立直角坐标系,通过计算两个寻像图形中心点所在象限和校正图形中心点所在象限来判断这三个中心点与标准qr码图形中的中心点的对应关系;

p5:通过三组对应点的坐标变换关系计算变换矩阵,利用校正算法对w区域进行校正。

优选地,所述步骤s6,两个寻像图形相对位置为非对角关系时,按照以下步骤来校正图形,

q1:两个寻像图形中心点的连线的中点记为qr码的临时中心点z1,寻像图形八个顶点到该中心点的最大距离记为l1;

q2:以此临时的中心点z1为中心取一个矩形区域,矩形区域的长宽都为5l1,再取包含qr码的图像与该矩形区域的交集记为w1,认为qr码必定在该区域内;

q3:在w1区域中通过轮廓查找法查找轮廓,并利用两重嵌套标准和最内层轮廓面积小于某一设定值的两个标准来寻找校正图形所在中心点;

q4:求校正图形中心点和qr码的临时中心点z1连线的中点来将z1修正为z2;

q5:以z2为中心点建立直角坐标系,通过计算两个寻像图形中心点所在象限和校正图形中心点所在象限来判断这三个中心点与标准qr码图形中的中心点的对应关系;

q6:以z2为中点,将寻像图形八个顶点到其距离最大值记为l2,以z2为中心点取一个矩形区域,矩形区域的长宽都为2.5l1,并将该矩形区域与w1再取交集记为w2;

q7:通过三组对应点的坐标变换关系计算变换矩阵,利用校正算法对w2区域进行校正。

本发明的有益效果:

由上述方案可知,本发明提供的qr码识别过程中寻像图形缺失一处的qr码定位和校正的算法,对不同版本使用不同的定位和校正算法,充分利用qr码的不同版本号的独特信息,大大提高了不同版本的qr码在寻像图形缺失一处的情况下定位和校正的精确性;解决了目前的定位校正算法无法在qr码图形发生透视畸变的情况,对寻像图形缺失其中一个的情况无法定位和校正的问题。结果准确,方便人们使用。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明qr码的结构示意图;

图2是本发明整体算法流程图;

图3是本发明两个寻像图形为对角关系时结构示意图;

图4是本发明两个寻像图形为非对角关系时结构示意图;

图5是本发明两个寻像图形为对角关系时,进行校正变换的对应示意图;

图6是本发明两个寻像图形为非对角关系时,进行校正变换的对应示意图。

具体实施方式

参照图1至图6,一种寻像图形缺失一处的qr码定位和校正算法,包括以下步骤,

s1:利用轮廓查法找到整幅图像中的所有轮廓,利用三重嵌套标准、嵌套的轮廓中是否有共同中心点这两个标准初步筛选轮廓,即符合三重嵌套的一组轮廓视为符合标准,分别对这一组轮廓中每个轮廓计算其中心点,对于每一层轮廓计算其中心点方法为获取轮廓长度,每隔1/4长轮廓上取一个点,然后将这4个点求加权平均所得坐标视为轮廓中心点坐标,三层嵌套轮廓中心点也重合则保留,否则不保留;

s2:2如果符合标准的轮廓小于或者等于3组,则跳过这一步;如果大于3组,则添加上面积比例的标准进行二次筛选;面积比例标准为,由于寻像图形为1:1:3:1:1关系,则最外层轮廓比最内层轮廓面积为49:9,为了保证在畸变图形中不会错误筛选,设定面积比值在4.5到6之间的都当作符合标准,保留;否则不保留;

s3:若步骤s2筛选出来满足条件的轮廓只有两组,则认为是缺失一个寻像图形的qr码,然后利用提取两组轮廓中每一组最外层轮廓,寻找两个最外层轮廓最小包围轮廓矩形,并记录矩形各自对应的四个顶点和中心点;

s4:计算两个寻像图形中心点所构成直线的直线方程,然后计算两个最外层轮廓对应的八个顶点到直线距离的方差。如果方差大于某一预设值,则认为两个寻像图形处于标准qr码图形中的对角关系,否则认为处于非对角关系,然后对两种关系对应的情况分别讨论,利用两个寻像图形中心点距离还有两个寻像图形最小包围矩形的边长来计算qr码版本号和qr码的每个模块所占像素值,记为m;

s5:如果qr码版本号等于1,则利用步骤s4计算所得的m来设定腐蚀膨胀操作所需要的核的大小,然后进行两次腐蚀和膨胀操作,所得操作后图形再进行canny边缘提取,然后再利用累计概率hough变换检测直线,最后记录所得直线间两两交点所得四个顶点,为原图中的qr码的顶点,然后再计算出标准图形中qr码顶点的对应位置,再利用校正算法进行校正;

s6:如果qr码版本号大于或者等于2,再分别对两个寻像图形相对位置为对角关系或者非对角关系时分别讨论,并用对图形进行校正;

s7:对校正后的图形进行裁剪,裁剪出只有qr码的部分。

canny边缘检测算子是一个多级边缘检测算法。通常情况下边缘检测的目的是在保留原有图像属性的情况下,显著减少图像的数据规模。目前有多种算法可以进行边缘检测,虽然canny算法年代久远,但它是边缘检测的一种标准算法。

hough变换是一种使用表决原理的参数估计技术。其原理是利用图像空间和hough参数空间的点-线对偶性,把图像空间中的检测问题转换到参数空间。

qr码的三个角的寻像图形可以帮助确定符号的位置、尺寸和倾斜度。因此,对于寻像图形缺失的情况,目前市面上流行的移动设备不能识别。当qr码的寻像图形缺失,以及人们在使用拍照过程中拍照设备和qr码存在一定倾斜角导致图像发生一定程度的透视畸变时,没有一种很好的定位校正算法将这种情况下的qr码,从图片中校正成正方形并提取出来。

对于因为拍摄角度等原因导致所得的qr码图像发生畸变,常用的校正算法有两种,仿射变换和透视变换。

仿射变换

由一个非奇异的线性变换(运用一次函数进行的变换)接上一个平移变换组成。变换矩阵如下:

x′=m11·x+m12·y+m13

y′m21·x+m22·y+m23

其中(x,y)为原图中的点,(x′,y′)为仿射变换后的点。m11,m12,m13,m21,m22,m23则为变换矩阵中的未知数,需要求得。

透视变换

是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律对视锥体观察得到的图片变换到规则观察体中的图片。变换矩阵如下:

x=m11·x+m12·y+m13

y=m21·x+m22·y+m23

z=m31·x+m32·y+m33

其中(x,y)为原图中的点,x,y,z为中间量,(x′,y′)为透视变换后的点。m11,m12,m13,m21,m22,m23,m31,m32,m33则为变换矩阵中的未知数,需要求得。

图3、图4中,中间的点认为是qr码的中心,进行校正变换的感兴趣区域提取,其中最外层矩形和原图的交集则为感兴趣区域。

所述步骤s4,如果两个寻像图形相对位置是对角关系,则中心点距离除以根号2,记录所得值为a1,然后将两个寻像图形最外层轮廓的最小面积包围矩形的最小边长分别记录为b21,b22,计算qr码的每个模块所占像素值,记为m=(b21+b22)/14和qr码版本号,为(a1/m-10)/4。

所述步骤s4,如果两个寻像图形相对位置是对角关系,则中心点距离除以根号2,记录所得值为a1,然后将两个寻像图形最外层轮廓的最小面积包围矩形的最小边长分别记录为b21,b22,计算qr码的每个模块所占像素值,记为m=(b21+b22)/14和qr码版本号,为(a1/m-10)/4。

所述步骤s4,如果两个寻像图形相对位置是非对角关系,则中心点距离记为a2,然后将两个寻像图形最外层轮廓的最小面积包围矩形的最小边长分别记录为b21,b22,计算qr码的每个模块所占像素值,记为m=(b21+b22)/14和qr码版本号,为(a2/m-10)/4。

所述步骤s6,两个寻像图形相对位置为对角关系时,按照以下步骤来校正图形,

p1:两个寻像图形中心点的连线的中点记为qr码中心点,寻像图形八个顶点到该中心点距离最大值记为l;

p2:以此qr码的中心点为中心点取一个矩形区域,矩形的长宽都为2l,再取包含qr码的图像与该矩形区域取交集记为w,认为qr码必定在该区域内;

p3:在w区域中通过轮廓查找法查找轮廓,并利用两重嵌套标准和最内层轮廓面积小于某一设定值的两个标准来寻找校正图形所在中心点;

p4:以qr码中心点为坐标原点建立直角坐标系,通过计算两个寻像图形中心点所在象限和校正图形中心点所在象限来判断这三个中心点与标准qr码图形中的中心点的对应关系;

p5:通过三组对应点的坐标变换关系计算变换矩阵,利用校正算法对w区域进行校正。

所述步骤s6,两个寻像图形相对位置为非对角关系时,按照以下步骤来校正图形,

q1:两个寻像图形中心点的连线的中点记为qr码的临时中心点z1,寻像图形八个顶点到该中心点的最大距离记为l1;

q2:以此临时的中心点z1为中心取一个矩形区域,矩形区域的长宽都为5l1,再取包含qr码的图像与该矩形区域的交集记为w1,认为qr码必定在该区域内;

q3:在w1区域中通过轮廓查找法查找轮廓,并利用两重嵌套标准和最内层轮廓面积小于某一设定值的两个标准来寻找校正图形所在中心点;

q4:求校正图形中心点和qr码的临时中心点z1连线的中点来将z1修正为z2;

q5:以z2为中心点建立直角坐标系,通过计算两个寻像图形中心点所在象限和校正图形中心点所在象限来判断这三个中心点与标准qr码图形中的中心点的对应关系;

q6:以z2为中点,将寻像图形八个顶点到其距离最大值记为l2,以z2为中心点取一个矩形区域,矩形区域的长宽都为2.5l1,并将该矩形区域与w1再取交集记为w2;

q7:通过三组对应点的坐标变换关系计算变换矩阵,利用校正算法对w2区域进行校正。

以上所述只是本发明的较佳实施方式,但本发明并不限于上述实施例,只要其以任何相同或相似手段达到本发明的技术效果,都应落入本发明的保护范围之内。

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