一种快速定位qr码位置探测图形的方法和系统的制作方法

文档序号:6624629阅读:628来源:国知局
一种快速定位qr码位置探测图形的方法和系统的制作方法
【专利摘要】本发明提供一种快速定位QR码位置探测图形的方法和系统,方法包括:读取QR码原始图像;进行二值化处理,得到二值化图像;按照所设定的扫描分辩率,逐行同向水平扫描二值化图像,得到多个候选点;采用聚类算法对得到的所有候选点进行聚类,共得到三个类,每一个类的聚类中心位置坐标即为定位到的位置探测图形的中心坐标;由此定位到所述QR码原始图像中的三个位置探测图形。具有定位速度快、计算资源消耗少、定位结果准确度高的优点。
【专利说明】—种快速定位QR码位置探测图形的方法和系统

【技术领域】
[0001]本发明属于二维码图像处理【技术领域】,具体涉及一种快速定位QR码位置探测图形的方法和系统。

【背景技术】
[0002]QR(Quick Response,快速反应)码是二维条码的一种,是1994年由日本Denso-Wave公司发明,与其他二维条码相比,具有识读速度快、数据密度大、占用空间小的优势,广泛应用于身份验证、安全防伪、电子商务等众多领域。
[0003]如图1所示,为QR码的结构示意图,其是由多个黑色正方形单元和多个白色正方形单元组成的正方形阵列,主要包括编码区和功能区两部分,其中,功能区包括位置探测图形、定位图形和校正图形等。参考图1,QR码图像共有三个相同的位置探测图形,包括--位置探测图形a、位置探测图形b和位置探测图形C,分别位于QR码图像的左上角、右上角和左下角,通过位置探测图形,可确定QR码的位置和方向。因此,准确定位位置探测图形属于QR码解码的基础步骤,直接影响QR码解码速度和解码精度等。
[0004]现有技术中,在定位QR码图像中的位置探测图形时,普遍存在着定位算法复杂的问题,由此导致位置探测图形定位速度慢、资源消耗大的问题。


【发明内容】

[0005]针对现有技术存在的缺陷,本发明提供一种快速定位QR码位置探测图形的方法和系统,用以解决上述问题。
[0006]本发明采用的技术方案如下:
[0007]本发明提供一种快速定位QR码位置探测图形的方法,包括以下步骤:
[0008]SI,读取需要定位位置探测图形的QR码原始图像;其中,所述QR码原始图像包括QR码目标区域和背景区域;
[0009]S2,对所述QR码原始图像进行二值化处理,得到只具有黑色像素点和白色像素点的二值化图像;
[0010]S3,在所述二值化图像所在的平面上建立直角坐标系;
[0011]设定扫描分辩率,在所设定的扫描分辩率下,设所述二值化图像是由η行η列的像素点组成的矩阵,则矩阵中任意一个像素点记为Cij ;其中,I ^n;l
[0012]按照所设定的扫描分辩率,逐行同向水平扫描所述二值化图像,对于任意的第k行,均采用以下扫描方式:
[0013]S3.1,令 j = I ;
[0014]S3.2,读取并记录Ckj像素点的色度值;
[0015]S3.3,判断j是否等于n,如果等于,则本行扫描结束,转到S3.5 ;如果不等于,则继续读取并记录Ck(j+1)像素点的色度值,然后判断Ck(j+1)像素点的色度值是否与Ckj像素点的色度值相同,如果相同,则执行S3.4 ;如果不相同,则记录Ck(j+1)像素点在所建立的直角坐标系上的位置坐标值,然后执行S3.4 ;
[0016]S3.4,令 j = j+Ι,然后转到 S3.3 ;
[0017]S3.5,设扫描第k行时,共记录X个像素点的位置坐标值;其中,O彡X彡n,x为整数;将X个像素点按扫描先后顺序依次记为P1、PfPx ;设L1代表P1和P2像素点之间的水平距离、L2代表P2和P3像素点之间的水平距离,依此类推,Lx^1代表Pjri和Px像素点之间的水平距离;
[0018]然后判断LpIvLjri 之中,是否存在 La_2 =La^1:La:La+1:La+2 ^ 1: 1:3:1:1 的数值序列,其中,I彡a彡x-3 ;如果存在,则分别获得Pp1和Pa+1像素点的位置坐标值,然后计算Pp1像素点的位置坐标值和pa+1像素点的位置坐标值的平均值,该平均值即为候选点的位置坐标值;
[0019]S4,当完成对η行的同向水平扫描之后,共得到多个候选点;采用聚类算法对得到的所有候选点进行聚类,共得到三个类,每一个类的聚类中心位置坐标即为定位到的位置探测图形的中心坐标;由此定位到所述QR码原始图像中的三个位置探测图形。
[0020]优选的,判断Lp L2...Ljri 之中,是否存在 La_2 =La^1:La:La+1:La+2 ^ 1:1:3:1:1 的数值序列,是指:
[0021]设定误差允许值为F%,如果 La_2 = xl ;xl_xl*F % ( La^1 ( xl+xl*F % ;3 (xl-xl*F% )彡 La 彡 3 (xl+xl*F% );
[0022]xl-xl*F%彡 La+1 彡 xl+xl*F% ;xl_xl*F%彡 La+2 彡 xl+xl*F% ;则为 La_2 =La^1:La:La+1:La+2 ^ 1: 1:3:1:1 o
[0023]优选的,所述聚类算法为K均值聚类算法。
[0024]优选的,在定位到所述QR码原始图像中的三个位置探测图形之后,还包括:
[0025]S5,对于任意一个定位到的所述位置探测图形,该位置探测图形所在的QR码图像包括目标区域和同色背景区域;
[0026]在所述位置探测图形上边缘的上方划分出第I采样区域,在所述位置探测图形下边缘的下方划分出第2采样区域,在所述位置探测图形左边缘的左方划分出第3采样区域,在所述位置探测图形右边缘的右方划分出第4采样区域;其中,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域均为所述QR码图像中的部分区域;
[0027]S6,对于任意一个第i采样区域,其中,i = 1、2、3或4,均执行以下操作:
[0028]采集所述第i采样区域中每一个像素点的色度值,然后统计属于相同色度值的像素点个数,以色度值为横坐标,以像素点个数为纵坐标得出与该采样区域对应的直方图;
[0029]由此得到与第I采样区域对应的第I直方图,与第2采样区域对应的第2直方图,与第3采样区域对应的第3直方图,与第4采样区域对应的第4直方图;
[0030]S7,分别对所述第I直方图、所述第2直方图、所述第3直方图和所述第4直方图进行滤波并求导数,然后判断在所述第I直方图、所述第2直方图、所述第3直方图和所述第4直方图中,是否存在两个直方图为呈现单峰特性的直方图,如果存在,则得出所检测出的位置探测图形为正确检测的结论;否则,则得出所检测出的位置探测图形为误检测的结论。
[0031]优选的,S5中,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域为形状完全相同的区域。
[0032]优选的,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域均为长方形、矩形或三角形。
[0033]优选的,S5中,根据误检测排除精度以及所述位置探测图形的边长长度确定以下参数值:
[0034]所述第I采样区域距离所述位置探测图形上边缘的距离L1、所述第I采样区域的长度值和宽度值;
[0035]所述第2采样区域距离所述位置探测图形下边缘的距离L2、所述第2采样区域的长度值和宽度值;
[0036]所述第3采样区域距离所述位置探测图形左边缘的距离L3、所述第3采样区域的长度值和宽度值;
[0037]所述第4采样区域距离所述位置探测图形右边缘的距离L4、所述第4采样区域的长度值和宽度值。
[0038]优选的,S6中,与所述第i采样区域对应的直方图通过以下方法获得:
[0039]采集所述第i采样区域中每一个像素点的色度值,然后按预设算法将相邻的若干个色度值归入同一色度区间,由此得到多个色度区间;然后统计属于相同色度区间的像素点个数,以色度区间为横坐标,以像素点个数为纵坐标得出与该采样区域对应的直方图。
[0040]优选的,在采集所述第i采样区域中每一个像素点的色度值之前,还包括:
[0041]对所述位置探测图形所在的QR码图像进行色彩增强处理。
[0042]本发明还提供一种快速定位QR码位置探测图形的系统,包括:
[0043]读取模块,用于读取需要定位位置探测图形的QR码原始图像;其中,所述QR码原始图像包括QR码目标区域和背景区域;
[0044]二值化处理模块,用于对所述读取模块所读取到的QR码原始图像进行二值化处理,得到只具有黑色像素点和白色像素点的二值化图像;
[0045]参数设置模块,用于设定扫描分辩率,在所设定的扫描分辩率下,设所述二值化图像是由η行η列的像素点组成的矩阵,则矩阵中任意一个像素点记为Cu ;其中,I ^ i ^ η ;I < j < η ;
[0046]扫描模块,用于按照所述参数设置模块所设置的扫描分辩率,逐行同向水平扫描所述二值化图像;具体的,对于任意的第k行,其共有η个像素点组成,扫描方式为:
[0047]S-a,首先读取并记录第I个像素点的色度值;
[0048]S_b,然后,向后读取并记录第2个像素点的色度值,判断第2个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-c ;如果不相同,则记录第2个像素点在直角坐标系上的位置坐标值,然后执行S-c ;
[0049]S-c,向后读取并记录第3个像素点的色度值,判断第3个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-d ;如果不相同,则记录第3个像素点在直角坐标系上的位置坐标值,然后执行S-d ;
[0050]S-d,依此类推,直到读取到第η个像素点的色度值,判断第η个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-e ;如果不相同,则记录第η个像素点在直角坐标系上的位置坐标值,然后执行S-e ;
[0051]S-e,按自左向右的排列顺序,设共记录X个像素点的位置坐标值;其中,O彡X彡n,x为整数;将X个像素点按扫描先后顺序依次记为P1^P2-Px ;设L1代表P1和P2像素点之间的水平距离、L2代表P2和P3像素点之间的水平距离,依此类推,Lx^1代表Pjri和Px像素点之间的水平距离;
[0052]然后判断LpIvLjri 之中,是否存在 La_2 =La^1:La:La+1:La+2 乂 1: 1:3:1:1 的数值序列,其中,I彡a彡x-3 ;如果存在,则分别获得Pp1和Pa+1像素点的位置坐标值,然后计算Pp1像素点的位置坐标值和pa+1像素点的位置坐标值的平均值,该平均值即为候选点的位置坐标值;
[0053]当完成对η行的同向水平扫描之后,共得到多个候选点;
[0054]聚类模块,用于对所述扫描模块所扫描到的所有候选点进行聚类;
[0055]定位模块,定位到所述聚类模块所聚类到的三个聚类中心位置坐标,该聚类中心位置坐标即为定位到的三个位置探测图形的中心坐标;即定位到所述QR码原始图像中的三个位置探测图形。
[0056]本发明的有益效果如下:
[0057]本发明提供的快速定位QR码位置探测图形的方法和系统,具有定位速度快、计算资源消耗少、定位结果准确度高的优点。

【专利附图】

【附图说明】
[0058]图1为现有QR码的结构示意图;
[0059]图2为本发明提供的QR码原始图像的一种具体示例图;
[0060]图3为在判断定位到的位置探测图形Wl是否正确时,各采样区域的一种具体划分示意图;
[0061]图4为将图3中QR码中黑色像素点省略后的示意图;
[0062]图5为在判断定位到的位置探测图形W2是否正确时时,各采样区域的划分具体示意图;
[0063]图6为将图5中QR码中黑色像素点省略后的示意图;
[0064]图7为在判断定位到的位置探测图形W3是否正确时,各采样区域的另一种具体划分示意图;
[0065]图8为将图7中QR码中黑色像素点省略后的示意图;
[0066]图9为本发明提供的快速定位QR码位置探测图形的方法的流程示意图;
[0067]图10为本发明提供的快速定位QR码位置探测图形的系统的结构示意图。

【具体实施方式】
[0068]以下结合附图对本发明进行详细说明:
[0069]本发明提供一种快速定位QR码位置探测图形的方法,如图9所示,包括以下步骤:
[0070]SI,读取需要定位位置探测图形的QR码原始图像;其中,所述QR码原始图像包括QR码目标区域和背景区域;
[0071]如图2所示,为QR码原始图像的一种具体示例图,其中,图2中标号I为目标区域,位于目标区域外部的区域即为背景区域,即图2中的标号2。在背景区域中,可能存在一些干扰图案。
[0072]S2,对所述QR码原始图像进行二值化处理,得到只具有黑色像素点和白色像素点的二值化图像;也就是说,二值化图像只具有两种色度值,分别为黑色和白色。
[0073]S3,在所述二值化图像所在的平面上建立直角坐标系;
[0074]可以以二值化图像所在平面上任意一点作为坐标原点而建立直角坐标系,通过建立直角坐标系,主要用于表示后续聚类时各候选点的位置坐标值,本发明中,为方便说明,采用以二值化图像左下角的顶点为坐标原点O,坐标原点O水平向右的方向为X轴,坐标原点O垂直向上的方向为y轴的方式,参考图2的直角坐标系建立方式。
[0075]设定扫描分辩率,在所设定的扫描分辩率下,设所述二值化图像是由η行η列的像素点组成的矩阵,则矩阵中任意一个像素点记为Cij ;其中,I ^n;l;其中,分辨率的设定值根据具体定位精度确定。
[0076]按照所设定的扫描分辩率,逐行同向水平扫描所述二值化图像,需要说明的是,本领域技术人员可以理解,逐行同向水平扫描,既可以为自左向右水平扫描每一行;也可以自右向左水平扫描每一行;或者,基于同样的扫描原理,也可以自上而下垂直逐列扫描每一列,也可以自下而上垂直逐列扫描每一列;或者,首先对二值化图像进行旋转操作,然后再扫描也可。具体扫描方式非常灵活,凡基于本发明的扫描原理,即:通过色度值变化记录像素点位置坐标值,可以想到的变形均在本发明保护范围之内。
[0077]对于任意的第k行,均采用以下扫描方式:
[0078]S3.1,$j = l;
[0079]S3.2,读取并记录Ckj像素点的色度值;
[0080]S3.3,判断j是否等于n,如果等于,则本行扫描结束,转到S3.5 ;如果不等于,则继续读取并记录Ck(j+1)像素点的色度值,然后判断Ck(j+1)像素点的色度值是否与Ckj像素点的色度值相同,如果相同,则执行S3.4 ;如果不相同,则记录Ck(j+1)像素点在所建立的直角坐标系上的位置坐标值,然后执行S3.4 ;
[0081]33.4,令]_ =」+1,然后转到53.3;
[0082]实际应用中,对于某一个二值化图像,η通常等于1000以上,为介绍扫描原理,简化说明,以η = 10为例,介绍一种简化模式:第1-3行中各像素点的颜色参见表1:
[0083]表I
[0084]

叫白I黑I黑I白I白I白I白I白I白~
白里白里里里白里白白

I——II——II——II——I I——I
白里白里里里白里白里

I——II——II——II——I
[0085](I)扫描表I第I行
[0086]当扫描表I第I行时,首先读取第I个像素点的色度值,为白色;
[0087]然后向后读取第2个像素点的色度值,为白色,与前一个像素点的色度值相等;
[0088]则继续向后读取第3个像素点的色度值,为黑色,与前一个像素点的色度值不相同,因此,记录第3个像素点的位置坐标值,为(3,10);
[0089]然后向后读取第4个像素点的色度值,为黑色,与前一个像素点的色度值相等;
[0090]则继续向后读取第5个像素点的色度值,为白色,与前一个像素点的色度值不相同,因此,记录第5个像素点的位置坐标值,为(5,10);
[0091]然后向后读取第6个像素点的色度值,为白色,与前一个像素点的色度值相等,依此类推,直到读取第10个像素点的色度值,为白色,与前一个像素点的色度值相等.
[0092]因此,通过扫描第I行,共记录下两个像素点的坐标值,分别为:(3,10)和(5,10);其中,I轴坐标10代表第I行的纵坐标为10。
[0093](2)扫描表I第2行
[0094]基于同样的原理,当扫描第2行,共记录下6个像素点的坐标值,分别为:(2,9)、(3,9), (4,9), (7,9), (8,9)和(9,9)。
[0095](3)扫描表I第3行
[0096]当扫描第3行,共记录下7个像素点的坐标值,分别为:(2,8)、(3,8), (4,8), (7,8)、(8,8), (9,8)和(10,8)。
[0097]S3.5,设扫描第k行时,共记录X个像素点的位置坐标值;其中,0彡x彡η,χ为整数;将X个像素点按扫描先后顺序依次记为P1、PfPx ;设L1代表P1和P2像素点之间的水平距离、L2代表P2和P3像素点之间的水平距离,依此类推,Lx^1代表Pjri和Px像素点之间的水平距离;
[0098]仍以上述表I为列,扫描第I行时,X = 2,P1为第3个像素点,P2为第5个像素点;则!^ = 5-3 = 2;
[0099]以上述扫描第2行为例,X = 6, P1为第2个像素点,P2为第3个像素点,P3为第4个像素点,P4为第7个像素点,P5为第8个像素点,P6为第9个像素点;
[0100]L值为相邻两个像素点之间的距离,因此,L1 = 3-2=1 ;L2 = 4-3 = 1 ;L3 = 7-4=3 ;L4 = 8-7 = I ;L5 = 9-8 = I ;
[0101]以上述扫描第3行为例,X = 7, P1为第2个像素点,P2为第3个像素点,P3为第4个像素点,P4为第7个像素点,P5为第8个像素点,P6为第9个像素点;P7为第10个像素占.
[0102]L1 = 3-2 = I ;L2 = 4-3 = I ;L3 = 7-4 = 3 ;L4 = 8-7 = I ;L5 = 9-8 = I ;L6 =10-9 = I;
[0103]然后判断L^L2…Ljri 之中,是否存在 La_2 =La^1:La:La+1:La+2 ^ 1: 1:3:1:1 的数值序列,其中,I彡a彡x-3 ;如果存在,则分别获得Pp1和Pa+1像素点的位置坐标值,然后计算Pp1像素点的位置坐标值和pa+1像素点的位置坐标值的平均值,该平均值即为候选点的位置坐标值;
[0104]本步骤中,La_2=La^1:La:La+1:La+2 ^ 1:1:3:1:1 是指:
[0105]设定误差允许值为F%,例如,15%,如果La_2 = xl ;xl-xl*F%^ La^1 ( xl+xl*F%;3(xl-xl*F % ) ^ La ^ 3(xl+xl*F % ) ;xl_xl*F % ( La+1 ( xl+xl*F % ;xl_xl*F %(La+2 ( xl+xl*F% ;则为 La_2:La:La+1:La+2 ^ 1:1:3:1:1。
[0106]仍以表I为例,对于所扫描到的第I行,只有一个L值,因此,不存在符合La_2 -.La^l:La:La+1:La+2 ^ 1:1:3:1:1 的数值序列;
[0107]对于所扫描到的第2行,L1 =L2 =L3 =L4 =L5 = 1: 1:3:1: 1,因此,获得第2行P2和P4像素点的坐标值,分别为(3,9)、(7,9),其平均值为(5,9),坐标(5,9)即为候选点的位置坐标值。
[0108]对于所扫描到的第3行,L1 =L2 =L3 =L4 =L5 = 1: 1:3:1: 1,因此,获得第3行P2和P4像素点的坐标值,分别为(3,8)、(7,8),其平均值为(5,8),坐标(5,8)即为另一候选点的位置坐标值。
[0109]S4,当完成对η行的同向水平扫描之后,共得到多个候选点;采用聚类算法对得到的所有候选点进行聚类,共得到三个类,每一个类的聚类中心位置坐标即为定位到的位置探测图形的中心坐标;由此定位到所述QR码原始图像中的三个位置探测图形。
[0110]本步骤中,所采用的聚类算法为现有技术中的各种聚类算法,例如,K均值聚类算法等,本发明对此并不限制。
[0111]需要说明的是,由于实际应用时,每一行的像素点个数η常为1000以上,因此,会检测到数量众多的候选点,因此,由于一个QR码图包含三个位置检测图形,因此,采用聚类算法会得到三个聚类中心,每一个聚类中心即对应一个置探测图形的中心坐标。
[0112]由此可见,本发明提供的快速定位QR码位置探测图形的方法,具有抗干扰能力高、识别精度大以及定位速度快的优点;能够快速定位到三个位置探测图形的中心位置。
[0113]在定位到所述QR码原始图像中的三个位置探测图形之后,为进一步保证本发明的定位结果准确性,还包括以下的判断所定位到的位置探测图形是否正确的步骤,包括:
[0114]S5,对于任意一个定位到的所述位置探测图形,该位置探测图形所在的QR码图像包括目标区域和同色背景区域;如图3所示,标号7即为同色背景区域的外边缘;目标区域即为QR码码字所在的区域。
[0115]在所述位置探测图形上边缘的上方划分出第I采样区域,在所述位置探测图形下边缘的下方划分出第2采样区域,在所述位置探测图形左边缘的左方划分出第3采样区域,在所述位置探测图形右边缘的右方划分出第4采样区域;其中,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域均为所述QR码图像中的部分区域;由于第I采样区域到第4采样区域均为QR码图像中的部分区域,也就是说,第I采样区域到第4采样区域或者位于目标区域,或者位于同色背景区域,或者位于同色背景区域和目标区域的交叉区域。只有在这个前提下,才能使用本发明后续基于直方图峰数判断是否误检测。具体原理在后续介绍。
[0116]其中,为保证检测结果的准确性,第I采样区域、第2采样区域、第3采样区域和第4采样区域为形状完全相同的区域,以保证各采样区域的面积完全相同;其形状可以均为长方形、矩形或三角形等。
[0117]另外,根据误检测排除精度以及位置探测图形的边长长度确定以下参数值:
[0118]所述第I采样区域距离所述位置探测图形上边缘的距离L1、所述第I采样区域的长度值和宽度值;所述第2采样区域距离所述位置探测图形下边缘的距离L2、所述第2采样区域的长度值和宽度值;所述第3采样区域距离所述位置探测图形左边缘的距离L3、所述第3采样区域的长度值和宽度值;所述第4采样区域距离所述位置探测图形右边缘的距离L4、所述第4采样区域的长度值和宽度值。
[0119]下面介绍三种采样区域的具体划分实施例:
[0120]第一种:
[0121]如图3所示,为在判断定位到的位置探测图形Wl是否正确时,各采样区域的一种具体划分示意图;其中,3-1代表第I采样区域;4-1代表第4采样区域,;5-1代表第2采样区域;6_1代表第3采样区域;由图3可以看出,第I采样区域到第4采样区域均为矩形,其与被定位到的位置探测图形的某一边缘完全重合。由于图3所划分的采样区域边缘与QR码中的黑色像素点存在重合,因此,为清楚表征所划分的各采样区域的位置和形状,如图4所示,为将图3中QR码中黑色像素点省略后的示意图;
[0122]第二种:
[0123]如图5所示,为在判断定位到的位置探测图形W2是否正确时时,各采样区域的划分具体示例。其中,3-2代表第I采样区域;4-2代表第4采样区域,;5-2代表第2采样区域;6-2代表第3采样区域;如图6所示,为将图5中QR码中黑色像素点省略后的示意图;图5-图6中,所划分的采样区域边缘与QR码中的黑色像素点存在重合。
[0124]第三种:
[0125]如图7所示,为在判断定位到的位置探测图形W3是否正确时,各采样区域的另一种具体划分示意图;其中,3-3代表第I采样区域;4-3代表第4采样区域,;5-3代表第2采样区域;6_3代表第3采样区域;如图8所示,为将图7中QR码中黑色像素点省略后的示意图;图7-图8中,所划分的采样区域边缘与QR码中的黑色像素点不重合,存在一定的间隔。
[0126]由此可见,本发明中,只要保证各采样区域的面积和形状完全相同即可,具体划分位置可根据实际检测需要灵活设置。
[0127]S6,对于任意一个第i采样区域,其中,i = 1、2、3或4,均执行以下操作:
[0128]采集所述第i采样区域中每一个像素点的色度值,然后统计属于相同色度值的像素点个数,以色度值为横坐标,以像素点个数为纵坐标得出与该采样区域对应的直方图;具体实现方式为:
[0129]采集所述第i采样区域中每一个像素点的色度值,然后按预设算法将相邻的若干个色度值归入同一色度区间,由此得到多个色度区间;然后统计属于相同色度区间的像素点个数,以色度区间为横坐标,以像素点个数为纵坐标得出与该采样区域对应的直方图。
[0130]例如,色度区间可选为50,本领域技术人员公知,共存在256个色度值,则:将色度值1-50划分为第I色度区间;将色度值51-100划分为第2色度区间;将色度值101-150划分为第3色度区间;将色度值151-200划分为第4色度区间;将色度值201-256划分为第5色度区间;然后,以第I色度区间为例,统计每一个采样区域中落入色度值1-50范围内的像素点个数。
[0131]本步骤中,为保证直方图统计的简便性,可以首先对位置探测图形所在的QR码图像进行色彩增强处理,然后再采集各采样区域中每一个像素点的色度值。
[0132]由此得到与第I采样区域对应的第I直方图,与第2采样区域对应的第2直方图,与第3采样区域对应的第3直方图,与第4采样区域对应的第4直方图;
[0133]S7,分别对所述第I直方图、所述第2直方图、所述第3直方图和所述第4直方图进行滤波并求导数,然后判断在所述第I直方图、所述第2直方图、所述第3直方图和所述第4直方图中,是否存在两个直方图为呈现单峰特性的直方图,如果存在,则得出所检测出的位置探测图形为正确检测的结论;否则,则得出所检测出的位置探测图形为误检测的结论。
[0134]例如,对于图3,在判断定位到的位置探测图形Wl是否正确时,在划分得到3-1-第I采样区域、4-1-第4采样区域、5-1-第2采样区域和6-1-第3采样区域这四个采样区域后,为简化说明,以每一个采样区域均包括100个像素点为例:
[0135]对于第I采样区域,由于其完全位于同色背景区域,也就是说,这100个像素点的色度值相同,因此,所得到的第I直方图中,只出现一个与同色背景区域的色度值对应的单峰,该单峰面积为100个单元面积。
[0136]对于第4采样区域,位于QR码目标区域,由于QR码目标区域包含黑色像素点和白色像素点,因此,所得到的第4直方图中,呈现双峰特征,一个峰与黑色色度值对应,代表第4采样区域中包含的黑色像素点面积;另一个峰与白色色度值对应,代表第4采样区域中包含的白色像素点面积;例如,黑色色度值对应的峰面积为75个单元面积,白色色度值对应的峰面积为25个单元面积。
[0137]对于第2采样区域,位于QR码目标区域,与第4采样区域类似,所得到的第2直方图中,呈现双峰特征,一个峰与黑色色度值对应,代表第2采样区域中包含的黑色像素点面积,如为20个单元面积;另一个峰与白色色度值对应,代表第2采样区域中包含的白色像素点面积如80个单元面积。
[0138]对于第3采样区域,由于其完全位于同色背景区域,与第I采样区域类似,因此,所得到的第3直方图中,只出现一个与同色背景区域的色度值对应的单峰,该单峰面积为100个单元面积。
[0139]因此,对于图3,第I直方图和第3直方图呈现单峰特性,由此得出,所检测出的位置探测图形Wl为正确的位置探测图形结论。
[0140]再例如,对于图5,在判断定位到的位置探测图形W2是否正确时,在划分得到3-2第I采样区域、4-2-第4采样区域、5-2第2采样区域和6-2-第3采样区域这四个采样区域后,统计得到的第I直方图到第4直方图均呈现双峰特性,由此得出,所定位到的位置探测图形W2为误检测的结论。
[0141]再例如,对于图6,在判断定位到的位置探测图形W3是否正确时,统计得到的第I直方图到第4直方图中,存在两个直方图呈现单峰特性,由此得出,所定位到的位置探测图形W3为正确检测的结论。
[0142]由此可见,本发明在判断定位到的位置探测图形是否为误检测时,分别统计该位置探测图形的上、下、左、右四个采样区域的色度统计情况的直方图,由此得到四个直方图;然后,判断这四个直方图中,是否存在两个直方图呈现单峰特征,如果存在,则表明定位到的位置探测图形位于QR码图像的某一个顶角位置,例如,位于左上角、右上角或左下角,则得出检测到的位置探测图形为正确的结论;也就是说,对于正确的位置探测图形,其必然存在两个位于单色背景区域的采样区域,而位于单色背景区域的采样区域的统计直方图必然呈现单峰特征;而对于错误的位置探测图形,由于其位于QR码目标图像内部,因此,不存在纯单色背景区域的采样区域,所以,得到的统计直方图必然不呈现单峰特征。反之,则表明所定位到的位置探测图形位于QR码图像的非顶角区域,则得出检测到的位置探测图形为错误的结论;具有误检测排查速度快、消耗的计算资源少的优点。另外,由于现有QR码规范中,在QR码目标图像的外围,均具有某一宽度的单色背景区域,所以,本发明提供的误检测排除过程,具有适用范围广的优点。
[0143]如图10所示,本发明还提供一种快速定位QR码位置探测图形的系统,包括:
[0144]读取模块,用于读取需要定位位置探测图形的QR码原始图像;其中,所述QR码原始图像包括QR码目标区域和背景区域;
[0145]二值化处理模块,用于对所述读取模块所读取到的QR码原始图像进行二值化处理,得到只具有黑色像素点和白色像素点的二值化图像;
[0146]参数设置模块,用于设定扫描分辩率,在所设定的扫描分辩率下,设所述二值化图像是由η行η列的像素点组成的矩阵,则矩阵中任意一个像素点记为Cu ;其中,I ^ i ^ η ;I < j < η ;
[0147]扫描模块,用于按照所述参数设置模块所设置的扫描分辩率,逐行同向水平扫描所述二值化图像;具体的,对于任意的第k行,其共有η个像素点组成,扫描方式为:
[0148]S-a,首先读取并记录第I个像素点的色度值;
[0149]S_b,然后,向后读取并记录第2个像素点的色度值,判断第2个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-c ;如果不相同,则记录第2个像素点在直角坐标系上的位置坐标值,然后执行S-c ;
[0150]S-c,向后读取并记录第3个像素点的色度值,判断第3个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-d ;如果不相同,则记录第3个像素点在直角坐标系上的位置坐标值,然后执行S-d ;
[0151]S-d,依此类推,直到读取到第η个像素点的色度值,判断第η个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-e ;如果不相同,则记录第η个像素点在直角坐标系上的位置坐标值,然后执行S-e ;
[0152]S-e,按自左向右的排列顺序,设共记录X个像素点的位置坐标值;其中,O彡X彡n,x为整数;将X个像素点按扫描先后顺序依次记为P1^P2-Px ;设L1代表P1和P2像素点之间的水平距离、L2代表P2和P3像素点之间的水平距离,依此类推,Lx^1代表Pjri和Px像素点之间的水平距离;
[0153]然后判断LpIv" Ljri 之中,是否存在 La_2 =La^1:La:La+1:La+2 ^ 1: 1:3:1:1 的数值序列,其中,I彡a彡x-3 ;如果存在,则分别获得Pp1和Pa+1像素点的位置坐标值,然后计算Pp1像素点的位置坐标值和pa+1像素点的位置坐标值的平均值,该平均值即为候选点的位置坐标值;
[0154]当完成对η行的同向水平扫描之后,共得到多个候选点;
[0155]聚类模块,用于对所述扫描模块所扫描到的所有候选点进行聚类;
[0156]定位模块,定位到所述聚类模块所聚类到的三个聚类中心位置坐标,该聚类中心位置坐标即为定位到的三个位置探测图形的中心坐标;即定位到所述QR码原始图像中的三个位置探测图形。
[0157]综上所述,本发明提供的快速定位QR码位置探测图形的方法和系统,具有定位速度快、计算资源消耗少、定位结果准确度高的优点。
[0158]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
【权利要求】
1.一种快速定位QR码位置探测图形的方法,其特征在于,包括以下步骤: SI,读取需要定位位置探测图形的QR码原始图像;其中,所述QR码原始图像包括QR码目标区域和背景区域; S2,对所述QR码原始图像进行二值化处理,得到只具有黑色像素点和白色像素点的二值化图像; S3,在所述二值化图像所在的平面上建立直角坐标系; 设定扫描分辩率,在所设定的扫描分辩率下,设所述二值化图像是由η行η列的像素点组成的矩阵,则矩阵中任意一个像素点记为Cij ;其中,I ^n;l 按照所设定的扫描分辩率,逐行同向水平扫描所述二值化图像,对于任意的第k行,均采用以下扫描方式:
S3.1,令 j = I ; S3.2,读取并记录Ckj像素点的色度值; S3.3,判断j是否等于n,如果等于,则本行扫描结束,转到S3.5 ;如果不等于,则继续读取并记录ck(j+1)像素点的色度值,然后判断Ck(j+1)像素点的色度值是否与Ckj像素点的色度值相同,如果相同,则执行S3.4;如果不相同,则记录Ck(j+1)像素点在所建立的直角坐标系上的位置坐标值,然后执行S3.4 ; S3.4,$j = j+1,然后转到 S3.3 ; S3.5,设扫描第k行时,共记录X个像素点的位置坐标值;其中,O ^ X ^ η, X为整数;将X个像素点按扫描先后顺序依次记为P1IfPx ;设L1代表P1和P2像素点之间的水平距离、L2代表P2和P3像素点之间的水平距离,依此类推,Lx^1代表Pjri和Px像素点之间的水平距离; 然后判断U、IvLjri之中,是否存在La_2 =La^1:La:La+1:La+2 ^ 1:1:3:1:1的数值序列,其中,I < a < x-3 ;如果存在,则分别获得Pp1和Pa+1像素点的位置坐标值,然后计算Ph像素点的位置坐标值和Pa+1像素点的位置坐标值的平均值,该平均值即为候选点的位置坐标值; S4,当完成对η行的同向水平扫描之后,共得到多个候选点;采用聚类算法对得到的所有候选点进行聚类,共得到三个类,每一个类的聚类中心位置坐标即为定位到的位置探测图形的中心坐标;由此定位到所述QR码原始图像中的三个位置探测图形。
2.根据权利要求1所述的快速定位QR码位置探测图形的方法,其特征在于,判断U、Iv"Lx_i 之中,是否存在 La_2 =La^1:La:La+1:La+2 ^ 1:1:3:1:1 的数值序列,是指: 设定误差允许值为 F%,如果 La_2 = xl ;xl-xl*F % ( La^1 ( xl+xl*F % ;3 (xl-xl*F% )彡 La 彡 3 (xl+xl*F% );
xl-xl*F%^ La+1 < xl+xl*F% ;xl-xl*F%^ La+2 ^ xl+xl*F% ;则为 La_2 -.La^l:La:La+1:La+2 ^ 1: 1:3:1:1 o
3.根据权利要求1所述的快速定位QR码位置探测图形的方法,其特征在于,所述聚类算法为K均值聚类算法。
4.根据权利要求1所述的快速定位QR码位置探测图形的方法,其特征在于,在定位到所述QR码原始图像中的三个位置探测图形之后,还包括: S5,对于任意一个定位到的所述位置探测图形,该位置探测图形所在的QR码图像包括目标区域和同色背景区域; 在所述位置探测图形上边缘的上方划分出第I采样区域,在所述位置探测图形下边缘的下方划分出第2采样区域,在所述位置探测图形左边缘的左方划分出第3采样区域,在所述位置探测图形右边缘的右方划分出第4采样区域;其中,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域均为所述QR码图像中的部分区域; S6,对于任意一个第i采样区域,其中,i = 1、2、3或4,均执行以下操作: 采集所述第i采样区域中每一个像素点的色度值,然后统计属于相同色度值的像素点个数,以色度值为横坐标,以像素点个数为纵坐标得出与该采样区域对应的直方图; 由此得到与第I采样区域对应的第I直方图,与第2采样区域对应的第2直方图,与第3采样区域对应的第3直方图,与第4采样区域对应的第4直方图; S7,分别对所述第I直方图、所述第2直方图、所述第3直方图和所述第4直方图进行滤波并求导数,然后判断在所述第I直方图、所述第2直方图、所述第3直方图和所述第4直方图中,是否存在两个直方图为呈现单峰特性的直方图,如果存在,则得出所检测出的位置探测图形为正确检测的结论;否则,则得出所检测出的位置探测图形为误检测的结论。
5.根据权利要求4所述的快速定位QR码位置探测图形的方法,其特征在于,S5中,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域为形状完全相同的区域。
6.根据权利要求5所述的快速定位QR码位置探测图形的方法,其特征在于,所述第I采样区域、所述第2采样区域、所述第3采样区域和所述第4采样区域均为长方形、矩形或三角形。
7.根据权利要求5所述的快速定位QR码位置探测图形的方法,其特征在于,S5中,根据误检测排除精度以及所述位置探测图形的边长长度确定以下参数值: 所述第I采样区域距离所述位置探测图形上边缘的距离L1、所述第I采样区域的长度值和宽度值; 所述第2采样区域距离所述位置探测图形下边缘的距离L2、所述第2采样区域的长度值和宽度值; 所述第3采样区域距离所述位置探测图形左边缘的距离L3、所述第3采样区域的长度值和宽度值; 所述第4采样区域距离所述位置探测图形右边缘的距离L4、所述第4采样区域的长度值和宽度值。
8.根据权利要求5所述的快速定位QR码位置探测图形的方法,其特征在于,S6中,与所述第i采样区域对应的直方图通过以下方法获得: 采集所述第i采样区域中每一个像素点的色度值,然后按预设算法将相邻的若干个色度值归入同一色度区间,由此得到多个色度区间;然后统计属于相同色度区间的像素点个数,以色度区间为横坐标,以像素点个数为纵坐标得出与该采样区域对应的直方图。
9.根据权利要求5所述的快速定位QR码位置探测图形的方法,其特征在于,在采集所述第i采样区域中每一个像素点的色度值之前,还包括: 对所述位置探测图形所在的QR码图像进行色彩增强处理。
10.一种快速定位QR码位置探测图形的系统,其特征在于,包括: 读取模块,用于读取需要定位位置探测图形的QR码原始图像;其中,所述QR码原始图像包括QR码目标区域和背景区域; 二值化处理模块,用于对所述读取模块所读取到的QR码原始图像进行二值化处理,得到只具有黑色像素点和白色像素点的二值化图像; 参数设置模块,用于设定扫描分辩率,在所设定的扫描分辩率下,设所述二值化图像是由η行η列的像素点组成的矩阵,则矩阵中任意一个像素点记为Cij ;其中,I彡i^n;I < j < η ; 扫描模块,用于按照所述参数设置模块所设置的扫描分辩率,逐行同向水平扫描所述二值化图像;具体的,对于任意的第k行,其共有η个像素点组成,扫描方式为: S_a,首先读取并记录第I个像素点的色度值; S_b,然后,向后读取并记录第2个像素点的色度值,判断第2个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-c ;如果不相同,则记录第2个像素点在直角坐标系上的位置坐标值,然后执行S-c ; S-c,向后读取并记录第3个像素点的色度值,判断第3个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-d ;如果不相同,则记录第3个像素点在直角坐标系上的位置坐标值,然后执行S-d ; S-d,依此类推,直到读取到第η个像素点的色度值,判断第η个像素点的色度值是否与前一个像素点的色度值相同,如果相同,则执行S-e ;如果不相同,则记录第η个像素点在直角坐标系上的位置坐标值,然后执行S-e ; S_e,按自左向右的排列顺序,设共记录X个像素点的位置坐标值;其中,O ^ η, X为整数;将X个像素点按扫描先后顺序依次记为Pp PfPx ;设L1代表P1和P2像素点之间的水平距离、L2代表P2和P3像素点之间的水平距离,依此类推,Lx^1代表Pjri和Px像素点之间的水平距离; 然后判断U、IvLjri之中,是否存在La_2 =La^1:La:La+1:La+2 ^ 1:1:3:1:1的数值序列,其中,I < a < x-3 ;如果存在,则分别获得Pp1和Pa+1像素点的位置坐标值,然后计算Ph像素点的位置坐标值和Pa+1像素点的位置坐标值的平均值,该平均值即为候选点的位置坐标值; 当完成对η行的同向水平扫描之后,共得到多个候选点; 聚类模块,用于对所述扫描模块所扫描到的所有候选点进行聚类; 定位模块,定位到所述聚类模块所聚类到的三个聚类中心位置坐标,该聚类中心位置坐标即为定位到的三个位置探测图形的中心坐标;即定位到所述QR码原始图像中的三个位置探测图形。
【文档编号】G06K7/10GK104200188SQ201410422618
【公开日】2014年12月10日 申请日期:2014年8月25日 优先权日:2014年8月25日
【发明者】邓伟, 张宇, 田德振 申请人:北京慧眼智行科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1