CN112507751B - 一种qr码的定位方法及其*** - Google Patents

一种qr码的定位方法及其*** Download PDF

Info

Publication number
CN112507751B
CN112507751B CN202011232337.7A CN202011232337A CN112507751B CN 112507751 B CN112507751 B CN 112507751B CN 202011232337 A CN202011232337 A CN 202011232337A CN 112507751 B CN112507751 B CN 112507751B
Authority
CN
China
Prior art keywords
point
position detection
code
detection pattern
corner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011232337.7A
Other languages
English (en)
Other versions
CN112507751A (zh
Inventor
林少伟
宋少龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou Symbol Information Technology Co ltd
Original Assignee
Fuzhou Symbol Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuzhou Symbol Information Technology Co ltd filed Critical Fuzhou Symbol Information Technology Co ltd
Priority to CN202011232337.7A priority Critical patent/CN112507751B/zh
Publication of CN112507751A publication Critical patent/CN112507751A/zh
Application granted granted Critical
Publication of CN112507751B publication Critical patent/CN112507751B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种QR码的定位方法及其***,通过寻找等价对的团确定连通域,从连通域中寻找到位置探测图形,根据位置探测图形的角点坐标和相互关系确定QR码的四个角点坐标,进而获得QR码的整体区域。本发明有益效果:对于畸变图像效果好,定位速度快,精度高。

Description

一种QR码的定位方法及其***
技术领域
本发明涉及一种QR码的定位方法及其***,属于图像识别领域。
背景技术
二维码是在一维条码基础上扩展一维形成的可读性黑白矩阵图形条码。二维码可以对文字、图像、视频、指纹等任何可以数字化的信息进行编码,并表现为可视的矩形码。二维码具有信息容量大、编码范围广、容错纠错能力强、编解码成本低、传播速度快等特点,已经被广泛应用于互联网媒体信息传播,网络支付,物流管理等领域,快速和准确的识别QR码已经成为人们日常生活中的一种需求。
识别QR码的第一步需要对其进行定位,比较常见的QR码定位方法利用位置探测图形1:1:3:1:1的特征进行定位、利用约束步长法或者二值图像的形态学变换方法进行孔洞填充,再使用霍夫变换找出QR码区域四个角定进行定位。但是在QR码发生畸变比较严重的情况,QR码的位置探测图形可能无法保持1:1:3:1:1的特征,这种情况下就没有办法利用该特征进行定位了,而使用孔洞填充后再利用霍夫变换的方法则需要耗费大量的时间,影响识读效率。
发明内容
为了解决上述技术问题,本发明提供一种QR码的定位方法,通过寻找等价对的团确定连通域,从连通域中寻找到位置探测图形,根据位置探测图形的角点坐标和相互关系确定QR码的四个角点坐标,进而获得QR码的整体区域。
本发明的技术方案一:
一种QR码的定位方法,包括如下步骤:
S1:对包含QR码的目标图像进行预处理;
S2:对所述经过预处理的目标图像通进行二值化处理;
S3:对所述经过二值化的目标图像进行连通域查找:逐行寻找等价的团,所得到等价团的集合为所述连通域,其中,所述团为灰度值相同且连续的一段像素集合;
S4:从S3步骤中获得的连通域中寻找位置探测图形:当所述连通域只包含一个子连通域且所述子连通域也只包含一个子连通域,则所述三个连通域构成一个位置探测图形;
S5:寻找所述位置探测图形的四个角点:计算所述位置探测图形的中心点到所述位置探测图形的边缘的距离,选取距离最大的四个点作为所述位置探测图形的四个角点;
S6:根据QR码的几何对称关系和对角距离最远关系,得到所述QR码的四个角点;
S7:所述QR码的四个角点临近相连所围成的凸四边形为QR码区域。
所述S3步骤具体为:
S31:对所述二值化目标图像中的每一行的灰度值相同的连续区域记录其行号,开始坐标以及结束坐标,并标号为0;
S32:对第一行的团按照从左到右的顺序从1开始进行标号;
S33:对第N行的每一个团都与第N-1行的每一个团进行是否重叠的判断,如果第N行的一个团与第N-1行的一个团重叠且灰度值相同,则所述第N行的一个团与第N-1行的一个团的标号记为相同标号,否则所述第N行的一个团的标号递增;如果所述第N行的一个团与第N-1行的两个不同标号的团重叠且灰度相同,则记所述第N-1行的两个不同标号的团为等价对,并存入等价对列表中,重叠的判别式为:
其中,pre_start为第N-1行的一个团的开始坐标、pre_end为第N-1行的一个团的结束坐标,cur_start第N行的一个团的开始坐标、cur_end为第N行的一个团的结束坐标;
S33:合并所有等价对,将所有互为等价对的团,以及与所述所有等价对的团标号相同的团记为一个集合,所述一个集合构成一个连通域;
S34:遍历不在所述等价对列表中的团,每个团单独构成一个连通域。
所述步骤S4具体为:
S41:对所有连通域进行标号;
S42:遍历所有连通域,确定两两连通域之间的关系是否为父子关系,即一个连通域是否包围另一个连通域;
S43:寻找疑似位置探测图形的连通域,所述连通域只有一个子连通域且所述子连通域也只有一个子连通域;
S44:计算所述疑似位置探测图形中三个连通域的面积,计算父连通域与子连通域的面积比值S1,计算子连通域与孙连通域的面积比值S2,当所述S1约等于49:9,所述S2约等于25:9,且误差值不超过±30%,则所述三个连通域构成位置探测图形,计算面积的公式为:
其中S为连通域的面积,n为连通域中团的个数,starti为连通域中的第i个团的开始坐标,endi为连通域中的第i个团的结束坐标。
所述步骤S5具体为:
S51:查找所述位置探测图形的最高点、最低点、最左点、最右点,以最高点和最低点的中点纵坐标值作为点O的y坐标,最左点和最右点的中点横坐标值作为点O的x坐标,所述点O为所述位置探测图形的中心点,计算公式如下:
其中,t是最高点的纵坐标值,b是最低点的纵坐标值,l是最左点横坐标值, r是最右点的横坐标值;
S52:计算所述点O到所述位置探测图形边界的各点距离,绘制成一个波形图,所述距离公式为:
其中,x为所述位置探测图形边界上的点的横坐标,y为所述位置探测图形边界上的点的纵坐标,x0为点O的横坐标,y0为点O的纵坐标;
S53:消除所述波形图中的干扰波峰,计算阈值n,判断当前波峰的点在其 (x-n,x+n)的范围内的y有没有高于其本身的y坐标,若有则消除该波峰,阈值 n的计算方法为:
其中,l是最左点横坐标值,r是最右点的横坐标值;
S54:去除波峰后,将剩余的四个最大波峰的点认定为所述位置探测图形的四个角点。
所述步骤S6具体为:
S61:确定所述QR码互为对角的位置探测图形:遍历每一个位置探测图形,判断所述位置探测图形的两条对角线是否有一条穿过另外一个位置探测图形,如果穿过,则确定所述位置探测图形与另外一个位置探测图形分别是右上角位置探测图形和左下角位置探测图形,独立的位置探测图形为左上角位置探测图形;
S62:确定所述QR码的左下角点和右上角点:穿过右上角位置探测图形和左下角位置探测图形的对角线上,相互之间距离最远的两个位置探测图形的角点即为QR码的左下角点和右上角点;
S63:确定QR码的左上角点:取S62步骤中获得的QR码的左下角点和右上角点作连线,以连线中点作为原点,取左上角位置探测图形四个角点到原点距离最远的点为QR码的左上角点;
S64:确定QR码的右下角点:分别从左下角位置探测图形和右上角位置探测图形的角点中,选取距离所述S63步骤得到QR码左上角点最远的角点,与当前位置探测图形所在区域的QR码外部角点进行连线,两条直线相交的点为 QR码的右下角点。
技术方案二
一种QR码的定位***,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
S1:对包含QR码的目标图像进行预处理;
S2:对所述经过预处理的目标图像进行二值化处理;
S3:对所述经过二值化的目标图像进行连通域查找:逐行寻找等价的团,所得到等价团的集合为所述连通域,其中,所述团为灰度值相同且连续的一段像素集合;
S4:从S3步骤中获得的连通域中寻找位置探测图形:当所述连通域只包含一个子连通域且所述子连通域也只包含一个子连通域,则所述三个连通域构成一个位置探测图形;
S5:寻找所述位置探测图形的四个角点:计算所述位置探测图形的中心点到所述位置探测图形的边缘的距离,选取距离最大的四个点作为所述位置探测图形的四个角点;
S6:根据QR码的几何对称关系和对角距离最远关系,得到所述QR码的四个角点;
S7:所述QR码的四个角点临近相连所围成的凸四边形为QR码区域。
所述S3步骤具体为:
S31:对所述二值化目标图像中的每一行的灰度值相同的连续区域记录其行号,开始坐标以及结束坐标,并标号为0;
S32:对第一行的团按照从左到右的顺序从1开始进行标号;
S33:对第N行的每一个团都与第N-1行的每一个团进行是否重叠的判断,如果第N行的一个团与第N-1行的一个团重叠且灰度值相同,则所述第N行的一个团与第N-1行的一个团的标号记为相同标号,否则所述第N行的一个团的标号递增;如果所述第N行的一个团与第N-1行的两个不同标号的团重叠且灰度相同,则记所述第N-1行的两个不同标号的团为等价对,并存入等价对列表中,重叠的判别式为:
其中,pre_start为第N-1行的一个团的开始坐标、pre_end为第N-1行的一个团的结束坐标,cur_start第N行的一个团的开始坐标、cur_end为第N行的一个团的结束坐标;
S33:合并所有等价对,将所有互为等价对的团,以及与所述所有等价对的团标号相同的团记为一个集合,所述一个集合构成一个连通域;
S34:遍历不在所述等价对列表中的团,每个团单独构成一个连通域。
所述步骤S4具体为:
S41:对所有连通域进行标号;
S42:遍历所有连通域,确定两两连通域之间的关系是否为父子关系,即一个连通域是否包围另一个连通域;
S43:寻找疑似位置探测图形的连通域,所述连通域只有一个子连通域且所述子连通域也只有一个子连通域;
S44:计算所述疑似位置探测图形中三个连通域的面积,计算父连通域与子连通域的面积比值S1,计算子连通域与孙连通域的面积比值S2,当所述S1约等于49:9,所述S2约等于25:9,且误差值不超过±30%,则所述三个连通域构成位置探测图形,计算面积的公式为:
其中S为连通域的面积,n为连通域中团的个数,starti为连通域中的第i个团的开始坐标,endi为连通域中的第i个团的结束坐标。
所述步骤S5具体为:
S51:查找所述位置探测图形的最高点、最低点、最左点、最右点,以最高点和最低点的中点纵坐标值作为点O的y坐标,最左点和最右点的中点横坐标值作为点O的x坐标,所述点O为所述位置探测图形的中心点,计算公式如下:
其中,t是最高点的纵坐标值,b是最低点的纵坐标值,l是最左点横坐标值, r是最右点的横坐标值;
S52:计算所述点O到所述位置探测图形边界的各点距离,绘制成一个波形图,所述距离公式为:
其中,x为所述位置探测图形边界上的点的横坐标,y为所述位置探测图形边界上的点的纵坐标,x0为点O的横坐标,y0为点O的纵坐标;
S53:消除所述波形图中的干扰波峰,计算阈值n,判断当前波峰的点在其 (x-n,x+n)的范围内的y有没有高于其本身的y坐标,若有则消除该波峰,阈值 n的计算方法为:
其中,l是最左点横坐标值,r是最右点的横坐标值;
S54:去除波峰后,将剩余的四个最大波峰的点认定为所述位置探测图形的四个角点。
所述步骤S6具体为:
S61:确定所述QR码互为对角的位置探测图形:遍历每一个位置探测图形,判断所述位置探测图形的两条对角线是否有一条穿过另外一个位置探测图形,如果穿过,则确定所述位置探测图形与另外一个位置探测图形分别是右上角位置探测图形和左下角位置探测图形,独立的位置探测图形为左上角位置探测图形;
S62:确定所述QR码的左下角点和右上角点:穿过右上角位置探测图形和左下角位置探测图形的对角线上,相互之间距离最远的两个位置探测图形的角点即为QR码的左下角点和右上角点;
S63:确定QR码的左上角点:取S62步骤中获得的QR码的左下角点和右上角点作连线,以连线中点作为原点,取左上角位置探测图形四个角点到原点距离最远的点为QR码的左上角点;
S64:确定QR码的右下角点:分别从左下角位置探测图形和右上角位置探测图形的角点中,选取距离所述S63步骤得到QR码左上角点最远的角点,与当前位置探测图形所在区域的QR码外部角点进行连线,两条直线相交的点为 QR码的右下角点。
本发明具有如下有益效果:
1、通过对目标图像进行预处理和二值化,去除噪声,提高图像对比度,便于后续进行目标识别;
2、利用连通域之间的关系对QR码的位置探测图形进行查找,连通域关系受畸变的影响比较小,能够很好的处理畸变情况比较严重的图片;
3、通过位置探测图形之间的距离和位置关系确定QR码的四个角点,减少畸变的干预,方法简单,效率高。
附图说明
图1为本发明的一种QR码的定位方法的流程图;
图2为本发明的一种QR码的定位方法的寻找位置探测图形的流程图;
图3为本发明的一种QR码的定位方法的寻找QR码角点的流程图;
图4为本发明一个实施例的经过预处理和二值化的QR码目标图像;
图5为本发明一个实施例的团与寻找等价对的示意图;
图6为本发明一个实施例的寻找到的连通域的示意图;
图7为本发明一个实施例的寻找到的位置探测图形的示意图;
及其角点的示意图;
图8为本发明一个实施例的位置探测图形的局部示意图;
图9为本发明一个实施例的位置探测图形中点与边缘的距离波形图;
图10为本发明一个实施例的QR码左下及右上角点示意图;
图11为本发明一个实施例的QR码的左上角点示意图;
图12为本发明一个实施例的QR码的右下角点示意图;
图13为本发明一个实施例的QR码区域示意图。
具体实施方式
下面结合附图和具体实施例来对本发明进行详细的说明。
实施例一
请参阅图1,一种QR码的定位方法,包括如下步骤:
S1:对包含QR码的目标图像进行预处理。所述预处理包括灰度化和滤波处理,提高所述目标图像的对比度,去除噪声;
预处理具体包括,使用加权平均法对所述目标图像进行灰度化处理,转换为8bit的bmp格式。使用直方图均衡化对灰度目标图像进行处理,增加所述目标图像的对比度。使用K近邻均值滤波器对直方图均衡化目标图像进行处理,去除所述目标图像的噪声。
所述预处理采用的方法为现有技术,通过这些预处理的方法进行处理后,所述目标图形变的比较清晰,噪点少。
S2:对所述经过预处理的目标图像进行二值化处理。二值化处理采用OTSU 算法;如图4所示,为经过预处理和二值化后的目标图像。
如图2所示,寻找位置探测图形的流程主要包括S3和S4步骤。
S3:对所述经过二值化的目标图像进行连通域查找:逐行寻找等价的团,所得到等价团的集合为所述连通域,其中,所述团为灰度值相同且连续的一段像素集合。
所述S3步骤具体为:
S31:对所述二值化目标图像中的每一行的灰度值相同的连续区域记录其行号,开始坐标以及结束坐标,并全部标号为0,表示未处理。
S32:对第一行的团按照从左到右的顺序从1开始进行标号。
S33:对第N行的每一个团都与第N-1行的每一个团进行是否重叠的判断,如果第N行的一个团与第N-1行的一个团重叠且灰度值相同,则所述第N行的一个团与第N-1行的一个团的标号记为相同标号,否则所述第N行的一个团的标号递增。如果所述第N行的一个团与第N-1行的两个不同标号的团重叠且灰度相同,则记所述第N-1行的两个不同标号的团为等价对,并存入等价对列表中,重叠的判别式为:
其中,pre_start为第N-1行的一个团的开始坐标、pre_end为第N-1行的一个团的结束坐标,cur_start第N行的一个团的开始坐标、cur_end为第N行的一个团的结束坐标。公式是判断两个团是否重叠,可以理解为判断数轴上两个线段是否重叠。如图5,团1的开始坐标为pre_start=0,结束坐标为pre_end=5,团6的开始坐标为cur_start=0结束坐标为cur_end=40。(0-1>5)^(40+1<0)为假,所以为真,则团6和团1重叠。符号/>是逻辑“非”,符号^ 是逻辑“与”。
S33:合并所有等价对,将所有互为等价对的团,以及与所述所有等价对的团标号相同的团记为一个集合,所述一个集合构成一个连通域。
S34:遍历不在所述等价对列表中的团,每个团单独构成一个连通域。
如图5所示,在同一行中,灰度值相同且连续的一段像素为一个团。1,2, 3,4,5分别为五个团。上一行颜色相同的团被另一种颜色隔开,但是下一行又有一行较长的团连接着这两个被隔开的团,那么这两个被隔开的团称为等价对。如图5中,团1和团3被团2隔开,但是团6连通着团1和团3,那么团1和团3为等价对,记为[1,3]。同理团3和团5也是等价对,记为[3,5]。
首先全图遍历一遍,把所有的团都找出来,只记录团属于哪一行,方便后续的操作,当前步骤所有的团全部标号为0,代表未被处理过。
接着寻找等价对,先对第一行进行标号,按照1,2,3......顺序标号过去,如图5中1,2,3,4,5。接下来的行,每一个团都要与上一行的团进行是否重叠的判断,如果重叠则标号与上一行一样。否则标号递增,比如之前最大标号为5,则当前标号为6。团6,与团1重叠,团6重新标号为1。当团6和团3 进行比较时,团3的标号和团6(1)的标号不一样,但是有重叠,所以团1和团3为等价对。
团1和团3等价,团3和团5等价。把团1,3,5归为一类,放到同一个集合里面就是合并等价对。此时团6已经被标号为1了,所以也在集合里面。这个集合就可以称为一个连通域了。
图5中,第三行的白色的团7,不与其他团等价,其自成一个连通域。
S4:从S3步骤中获得的连通域中寻找位置探测图形:当所述连通域只包含一个子连通域且所述子连通域也只包含一个子连通域,则所述三个连通域构成一个位置探测图形。
子连通域也是连通域,这里的子是表示当前连通域和上一级连通域的关系,即父子关系,这种一个连通域套一个连通域的形状是位置探测图形特有的。
所述步骤S4具体为:
S41:对所有连通域进行标号。
S42:遍历所有连通域,确定两两连通域之间的关系是否为父子关系,即一个连通域是否包围另一个连通域。
S43:寻找疑似位置探测图形的连通域,所述连通域只有一个子连通域且所述子连通域也只有一个子连通域。
为了便于表述不同的连通域,图6至图8中将不同的连通域用不同的颜色进行区分。
如图6所示,左上角中,白色的口字型连通域中,只包含一个黑色的口字连通域,黑色的口字连通域中也仅包含一个灰色口字连通域,则这三个连通域构成一个疑似位置探测图形,另外右上角和左下角的两个区域也发现疑似位置探测图形。
S44:计算所述疑似位置探测图形中三个连通域的面积,计算父连通域与子连通域的面积比值S1,计算子连通域与孙连通域的面积比值S2,当所述S1约等于49:9,所述S2约等于25:9,且误差值不超过±30%,则所述三个连通域构成位置探测图形,计算面积的公式为:
其中S为连通域的面积,n为连通域中团的个数,starti为连通域中的第i个团的开始坐标,endi为连通域中的第i个团的结束坐标。
因为位置探测图形内的三个块的面积比是固定的,所以通过设置面积比来筛选位置探测图形,例如图6中,右下角也有一个符合三层连通域关系的区域,但是肉眼可以明显看出其最***的连通域不规则,通过面积筛选,可以将此类区域去除。
如图7所示,为了便于表示,将所有找到的位置检测图形涂黑。
如图3所示,寻找QR码的角点的流程包括S5和S6步骤。
S5:寻找所述位置探测图形的四个角点:计算所述位置探测图形的中心点到所述位置探测图形的边缘的距离,选取距离最大的四个点作为所述位置探测图形的四个角点。
所述步骤S5具体为:
S51:查找所述位置探测图形的最高点、最低点、最左点、最右点,以最高点和最低点的中点纵坐标值作为点O的y坐标,最左点和最右点的中点横坐标值作为点O的x坐标,所述点O为所述位置探测图形的中心点,计算公式如下:
其中,t是最高点的纵坐标值,b是最低点的纵坐标值,l是最左点横坐标值, r是最右点的横坐标值。
如图8所示,图中四个极值点和中心点O已经标出。
S52:计算所述点O到所述位置探测图形边界的各点距离,绘制成一个波形图,所述距离公式为:
其中,x为所述位置探测图形边界上的点的横坐标,y为所述位置探测图形边界上的点的纵坐标,x0为点O的横坐标,y0为点O的纵坐标。S53:消除所述波形图中的干扰波峰,计算阈值n,判断当前波峰的点在其(x-n,x+n)的范围内的y有没有高于其本身的y坐标,若有则消除该波峰,阈值n的计算方法为:
其中,l是最左点横坐标值,r是最右点的横坐标值。
S54:去除波峰后,将剩余的四个最大波峰的点认定为所述位置探测图形的四个角点。
如图9所示,四个波峰处即为四个角点。
S6:根据QR码的几何对称关系和对角距离最远关系,得到所述QR码的四个角点。
所述步骤S6具体为:
S61:确定所述QR码互为对角的位置探测图形:遍历每一个位置探测图形,判断所述位置探测图形的两条对角线是否有一条穿过另外一个位置探测图形,如果穿过,则确定所述位置探测图形与另外一个位置探测图形分别是右上角位置探测图形和左下角位置探测图形,独立的位置探测图形为左上角位置探测图形。
S62:确定所述QR码的左下角点和右上角点:右上角位置探测图形和左下角位置探测图形的八个角点中,相互之间距离最远的两个位置探测图形的角点即为QR码的左下角点和右上角点。
如图10所示,白色线为各个位置探测图形的对角线,可以发现,右上位置探测图形和左下位置的探测图形各有一条对角线穿过对方,图中点B和点C为 QR码的左下角点和右上角点。
S63:确定QR码的左上角点:取S62步骤中获得的QR码的左下角点和右上角点作连线,以连线中点作为原点,取左上角位置探测图形四个角点到原点距离最远的点为QR码的左上角点。
如图11所示,图中点A距离直线BC的中间距离最远,点A为QR码的左上角点。
S64:确定QR码的右下角点:分别从左下角位置探测图形和右上角位置探测图形的角点中,选取距离所述S63步骤得到QR码左上角点最远的角点,与当前位置探测图形所在区域的QR码外部角点进行连线,两条直线相交的点为 QR码的右下角点。
如图12所示,B1和C1分别为右上角位置探测图形和左下角位置探测图形的角点中距离点A最远的点,直线BB1和直线CC1相交于点D,点D为QR 码的右下角点。
S7:所述QR码的四个角点临近相连所围成的凸四边形为QR码区域。
如图13所示,四个角点ABCD相连得到的区域即为QR码区域。
本发明通过对目标图像进行预处理和二值化,去除噪声,提高图像对比度,便于后续进行目标识别;利用连通域之间的关系对QR码的位置探测图形进行查找,连通域关系受畸变的影响比较小,能够很好的处理畸变情况比较严重的图片;通过位置探测图形之间的距离和位置关系确定QR码的四个角点,减少畸变的干预,方法简单,效率高。
实施例二:
一种QR码的定位***,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
S1:对包含QR码的目标图像进行预处理,所述预处理包括灰度化和滤波处理,提高所述目标图像的对比度,去除噪声;
S2:对所述经过预处理的目标图像通过调用OTSU算法进行二值化处理;
S3:对所述经过二值化的目标图像进行连通域查找:逐行寻找等价的团,所得到等价团的集合为所述连通域,其中,所述团为灰度值相同且连续的一段像素集合;
S4:从S3步骤中获得的连通域中寻找位置探测图形:当所述连通域只包含一个子连通域且所述子连通域也只包含一个子连通域,则所述三个连通域构成一个位置探测图形;
S5:寻找所述位置探测图形的四个角点:计算所述位置探测图形的中心点到所述位置探测图形的边缘的距离,选取距离最大的四个点作为所述位置探测图形的四个角点;
S6:根据QR码的几何对称关系和对角距离最远关系,得到所述QR码的四个角点;
S7:所述QR码的四个角点临近相连所围成的凸四边形为QR码区域。
所述S3步骤具体为:
S31:对所述二值化目标图像中的每一行的灰度值相同的连续区域记录其行号,开始坐标以及结束坐标,并标号为0;
S32:对第一行的团按照从左到右的顺序从1开始进行标号;
S33:对第N行的每一个团都与第N-1行的每一个团进行是否重叠的判断,如果第N行的一个团与第N-1行的一个团重叠且灰度值相同,则所述第N行的一个团与第N-1行的一个团的标号记为相同标号,否则所述第N行的一个团的标号递增;如果所述第N行的一个团与第N-1行的两个不同标号的团重叠且灰度相同,则记所述第N-1行的两个不同标号的团为等价对,并存入等价对列表中,重叠的判别式为:
其中,pre_start为第N-1行的一个团的开始坐标、pre_end为第N-1行的一个团的结束坐标,cur_start第N行的一个团的开始坐标、cur_end为第N行的一个团的结束坐标;
S33:合并所有等价对,将所有互为等价对的团,以及与所述所有等价对的团标号相同的团记为一个集合,所述一个集合构成一个连通域;
S34:遍历不在所述等价对列表中的团,每个团单独构成一个连通域。
所述步骤S4具体为:
S41:对所有连通域进行标号;
S42:遍历所有连通域,确定两两连通域之间的关系是否为父子关系,即一个连通域是否包围另一个连通域;
S43:寻找疑似位置探测图形的连通域,所述连通域只有一个子连通域且所述子连通域也只有一个子连通域;
S44:计算所述疑似位置探测图形中三个连通域的面积,计算父连通域与子连通域的面积比值S1,计算子连通域与孙连通域的面积比值S2,当所述S1约等于49:9,所述S2约等于25:9,且误差值不超过±30%,则所述三个连通域构成位置探测图形,计算面积的公式为:
其中S为连通域的面积,n为连通域中团的个数,starti为连通域中的第i个团的开始坐标,endi为连通域中的第i个团的结束坐标。
所述步骤S5具体为:
S51:查找所述位置探测图形的最高点、最低点、最左点、最右点,以最高点和最低点的中点纵坐标值作为点O的y坐标,最左点和最右点的中点横坐标值作为点O的x坐标,所述点O为所述位置探测图形的中心点,计算公式如下:
其中,t是最高点的纵坐标值,b是最低点的纵坐标值,l是最左点横坐标值, r是最右点的横坐标值;
S52:计算所述点O到所述位置探测图形边界的各点距离,绘制成一个波形图,所述距离公式为:
其中,x为所述位置探测图形边界上的点的横坐标,y为所述位置探测图形边界上的点的纵坐标,x0为点O的横坐标,y0为点O的纵坐标;
S53:消除所述波形图中的干扰波峰,计算阈值n,判断当前波峰的点在其 (x-n,x+n)的范围内的y有没有高于其本身的y坐标,若有则消除该波峰,阈值 n的计算方法为:
其中,l是最左点横坐标值,r是最右点的横坐标值;
S54:去除波峰后,将剩余的四个最大波峰的点认定为所述位置探测图形的四个角点。
所述步骤S6具体为:
S61:确定所述QR码互为对角的位置探测图形:遍历每一个位置探测图形,判断所述位置探测图形的两条对角线是否有一条穿过另外一个位置探测图形,如果穿过,则确定所述位置探测图形与另外一个位置探测图形分别是右上角位置探测图形和左下角位置探测图形,独立的位置探测图形为左上角位置探测图形;
S62:确定所述QR码的左下角点和右上角点:穿过右上角位置探测图形和左下角位置探测图形的对角线上,相互之间距离最远的两个位置探测图形的角点即为QR码的左下角点和右上角点;
S63:确定QR码的左上角点:取S62步骤中获得的QR码的左下角点和右上角点作连线,以连线中点作为原点,取左上角位置探测图形四个角点到原点距离最远的点为QR码的左上角点;
S64:确定QR码的右下角点:分别从左下角位置探测图形和右上角位置探测图形的角点中,选取距离所述S63步骤得到QR码左上角点最远的角点,与当前位置探测图形所在区域的QR码外部角点进行连线,两条直线相交的点为 QR码的右下角点。
本发明通过对目标图像进行预处理和二值化,去除噪声,提高图像对比度,便于后续进行目标识别;利用连通域之间的关系对QR码的位置探测图形进行查找,连通域关系受畸变的影响比较小,能够很好的处理畸变情况比较严重的图片;通过位置探测图形之间的距离和位置关系确定QR码的四个角点,减少畸变的干预,方法简单,效率高。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包含在本发明的专利保护范围内。

Claims (10)

1.一种QR码的定位方法,其特征在于,包括如下步骤:
S1:对包含QR码的目标图像进行预处理,所述预处理包括使用K近邻均值滤波器对直方图均衡化目标图像进行处理,去除所述目标图像的噪声;
S2:对经过预处理的目标图像采用OTSU算法进行二值化处理;
S3:对经过二值化的目标图像进行连通域查找:每一个团都要与上一行的团进行是否重叠的判断,逐行寻找等价的团,所得到等价团的集合为所述连通域,其中,所述团为灰度值相同且连续的一段像素集合;
S4:从S3步骤中获得的连通域中寻找位置探测图形:当所述连通域只包含一个子连通域且所述子连通域也只包含一个子连通域,则所述三个连通域构成一个位置探测图形;
S5:寻找所述位置探测图形的四个角点:计算所述位置探测图形的中心点到所述位置探测图形的边缘的距离,选取距离最大的四个点作为所述位置探测图形的四个角点;
S6:根据QR码的几何对称关系和对角距离最远关系,得到所述QR码的四个角点;
S7:所述QR码的四个角点临近相连所围成的凸四边形为QR码区域。
2.根据权利要求1所述的一种QR码的定位方法,其特征在于:所述S3步骤具体为:
S31:对所述二值化目标图像中的每一行的灰度值相同的连续区域记录其行号,开始坐标以及结束坐标,并标号为0;
S32:对第一行的团按照从左到右的顺序从1开始进行标号;
S33:对第N行的每一个团都与第N-1行的每一个团进行是否重叠的判断,如果第N行的一个团与第N-1行的一个团重叠且灰度值相同,则所述第N行的一个团与第N-1行的一个团的标号记为相同标号,否则所述第N行的一个团的标号递增;如果所述第N行的一个团与第N-1行的两个不同标号的团重叠且灰度相同,则记所述第N-1行的两个不同标号的团为等价对,并存入等价对列表中,重叠的判别式为:
其中,pre_start为第N-1行的一个团的开始坐标、pre_end为第N-1行的一个团的结束坐标,cur_start第N行的一个团的开始坐标、cur_end为第N行的一个团的结束坐标;
S33:合并所有等价对,将所有互为等价对的团,以及与所述所有等价对的团标号相同的团记为一个集合,所述一个集合构成一个连通域;
S34:遍历不在所述等价对列表中的团,每个团单独构成一个连通域。
3.根据权利要求1所述的一种QR码的定位方法,其特征在于,所述步骤S4具体为:
S41:对所有连通域进行标号;
S42:遍历所有连通域,确定两两连通域之间的关系是否为父子关系,即一个连通域是否包围另一个连通域;
S43:寻找疑似位置探测图形的连通域,所述连通域只有一个子连通域且所述子连通域也只有一个子连通域;
S44:计算所述疑似位置探测图形中三个连通域的面积,计算父连通域与子连通域的面积比值S1,计算子连通域与孙连通域的面积比值S2,当所述S1约等于49:9,所述S2约等于25:9,且误差值不超过±30%,则所述三个连通域
构成位置探测图形,计算面积的公式为:
其中S为连通域的面积,n为连通域中团的个数,starti为连通域中的第i个团的开始坐标,endi为连通域中的第i个团的结束坐标。
4.根据权利要求1所述的一种QR码的定位方法,其特征在于:所述步骤S5具体为:
S51:查找所述位置探测图形的最高点、最低点、最左点、最右点,以最高点和最低点的中点纵坐标值作为点O的y坐标,最左点和最右点的中点横坐标值作为点O的x坐标,所述点O为所述位置探测图形的中心点,计算公式如下:
其中,t是最高点的纵坐标值,b是最低点的纵坐标值,l是最左点横坐标值,r是最右点的横坐标值;
S52:计算所述点O到所述位置探测图形边界的各点距离,绘制成一个波形图,所述距离公式为:
其中,x为所述位置探测图形边界上的点的横坐标,y为所述位置探测图形边界上的点的纵坐标,x0为点O的横坐标,y0为点O的纵坐标;
S53:消除所述波形图中的干扰波峰,计算阈值n,判断当前波峰的点在其(x-n,x+n)的范围内的y有没有高于其本身的y坐标,若有则消除该波峰,阈值n的计算方法为:
其中,l是最左点横坐标值,r是最右点的横坐标值;
S54:去除波峰后,将剩余的四个最大波峰的点认定为所述位置探测图形的四个角点。
5.根据权利要求1所述的一种QR码的定位方法,其特征在于:所述步骤S6具体为:
S61:确定所述QR码互为对角的位置探测图形:遍历每一个位置探测图形,判断所述位置探测图形的两条对角线是否有一条穿过另外一个位置探测图形,如果穿过,则确定所述位置探测图形与另外一个位置探测图形分别是右上角位置探测图形和左下角位置探测图形,独立的位置探测图形为左上角位置探测图形;
S62:确定所述QR码的左下角点和右上角点:穿过右上角位置探测图形和左下角位置探测图形的对角线上,相互之间距离最远的两个位置探测图形的角点即为QR码的左下角点和右上角点;
S63:确定QR码的左上角点:取S62步骤中获得的QR码的左下角点和右上角点作连线,以连线中点作为原点,取左上角位置探测图形四个角点到原点距离最远的点为QR码的左上角点;
S64:确定QR码的右下角点:分别从左下角位置探测图形和右上角位置探测图形的角点中,选取距离所述S63步骤得到QR码左上角点最远的角点,与当前位置探测图形所在区域的QR码外部角点进行连线,两条直线相交的点为QR码的右下角点。
6.一种QR码的定位***,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
S1:对包含QR码的目标图像进行预处理,所述预处理包括使用K近邻均值滤波器对直方图均衡化目标图像进行处理,去除所述目标图像的噪声;
S2:对经过预处理的目标图像采用OTSU算法进行二值化处理;
S3:对经过二值化的目标图像进行连通域查找:每一个团都要与上一行的团进行是否重叠的判断,逐行寻找等价的团,所得到等价团的集合为所述连通域,其中,所述团为灰度值相同且连续的一段像素集合;
S4:从S3步骤中获得的连通域中寻找位置探测图形:当所述连通域只包含一个子连通域且所述子连通域也只包含一个子连通域,则所述三个连通域构成一个位置探测图形;
S5:寻找所述位置探测图形的四个角点:计算所述位置探测图形的中心点到所述位置探测图形的边缘的距离,选取距离最大的四个点作为所述位置探测图形的四个角点;
S6:根据QR码的几何对称关系和对角距离最远关系,得到所述QR码的四个角点;
S7:所述QR码的四个角点临近相连所围成的凸四边形为QR码区域。
7.根据权利要求6所述的一种QR码的定位***,其特征在于:所述S3步骤具体为:
S31:对所述二值化目标图像中的每一行的灰度值相同的连续区域记录其行号,开始坐标以及结束坐标,并标号为0;
S32:对第一行的团按照从左到右的顺序从1开始进行标号;
S33:对第N行的每一个团都与第N-1行的每一个团进行是否重叠的判断,如果第N行的一个团与第N-1行的一个团重叠且灰度值相同,则所述第N行的一个团与第N-1行的一个团的标号记为相同标号,否则所述第N行的一个团的标号递增;如果所述第N行的一个团与第N-1行的两个不同标号的团重叠且灰度相同,则记所述第N-1行的两个不同标号的团为等价对,并存入等价对列表中,重叠的判别式为:
其中,pre_start为第N-1行的一个团的开始坐标、pre_end为第N-1行的一个团的结束坐标,cur_start第N行的一个团的开始坐标、cur_end为第N行的一个团的结束坐标;
S33:合并所有等价对,将所有互为等价对的团,以及与所述所有等价对的团标号相同的团记为一个集合,所述一个集合构成一个连通域;
S34:遍历不在所述等价对列表中的团,每个团单独构成一个连通域。
8.根据权利要求6所述的一种QR码的定位***,其特征在于,所述步骤S4具体为:
S41:对所有连通域进行标号;
S42:遍历所有连通域,确定两两连通域之间的关系是否为父子关系,即一个连通域是否包围另一个连通域;
S43:寻找疑似位置探测图形的连通域,所述连通域只有一个子连通域且所述子连通域也只有一个子连通域;
S44:计算所述疑似位置探测图形中三个连通域的面积,计算父连通域与子连通域的面积比值S1,计算子连通域与孙连通域的面积比值S2,当所述S1约等于49:9,所述S2约等于25:9,且误差值不超过±30%,则所述三个连通域构成位置探测图形,计算面积的公式为:
其中S为连通域的面积,n为连通域中团的个数,starti为连通域中的第i个团的开始坐标,endi为连通域中的第i个团的结束坐标。
9.根据权利要求6所述的一种QR码的定位***,其特征在于:所述步骤S5具体为:
S51:查找所述位置探测图形的最高点、最低点、最左点、最右点,以最高点和最低点的中点纵坐标值作为点O的y坐标,最左点和最右点的中点横坐标值作为点O的x坐标,所述点O为所述位置探测图形的中心点,计算公式如下:
其中,t是最高点的纵坐标值,b是最低点的纵坐标值,l是最左点横坐标值,r是最右点的横坐标值;
S52:计算所述点O到所述位置探测图形边界的各点距离,绘制成一个波形图,所述距离公式为:
其中,x为所述位置探测图形边界上的点的横坐标,y为所述位置探测图形边界上的点的纵坐标,x0为点O的横坐标,y0为点O的纵坐标;
S53:消除所述波形图中的干扰波峰,计算阈值n,判断当前波峰的点在其(x-n,x+n)的范围内的y有没有高于其本身的y坐标,若有则消除该波峰,阈值n的计算方法为:
其中,l是最左点横坐标值,r是最右点的横坐标值;
S54:去除波峰后,将剩余的四个最大波峰的点认定为所述位置探测图形的四个角点。
10.根据权利要求6所述的一种QR码的定位***,其特征在于:所述步骤S6具体为:
S61:确定所述QR码互为对角的位置探测图形:遍历每一个位置探测图形,判断所述位置探测图形的两条对角线是否有一条穿过另外一个位置探测图形,如果穿过,则确定所述位置探测图形与另外一个位置探测图形分别是右上角位置探测图形和左下角位置探测图形,独立的位置探测图形为左上角位置探测图形;
S62:确定所述QR码的左下角点和右上角点:穿过右上角位置探测图形和左下角位置探测图形的对角线上,相互之间距离最远的两个位置探测图形的角点即为QR码的左下角点和右上角点;
S63:确定QR码的左上角点:取S62步骤中获得的QR码的左下角点和右上角点作连线,以连线中点作为原点,取左上角位置探测图形四个角点到原点距离最远的点为QR码的左上角点;
S64:确定QR码的右下角点:分别从左下角位置探测图形和右上角位置探测图形的角点中,选取距离所述S63步骤得到QR码左上角点最远的角点,与当前位置探测图形所在区域的QR码外部角点进行连线,两条直线相交的点为QR码的右下角点。
CN202011232337.7A 2020-11-06 2020-11-06 一种qr码的定位方法及其*** Active CN112507751B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011232337.7A CN112507751B (zh) 2020-11-06 2020-11-06 一种qr码的定位方法及其***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011232337.7A CN112507751B (zh) 2020-11-06 2020-11-06 一种qr码的定位方法及其***

Publications (2)

Publication Number Publication Date
CN112507751A CN112507751A (zh) 2021-03-16
CN112507751B true CN112507751B (zh) 2024-01-09

Family

ID=74955395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011232337.7A Active CN112507751B (zh) 2020-11-06 2020-11-06 一种qr码的定位方法及其***

Country Status (1)

Country Link
CN (1) CN112507751B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158704B (zh) * 2021-04-07 2023-06-09 福州符号信息科技有限公司 一种快速定位Dotcode码的方法及其***
CN116167395B (zh) * 2023-04-26 2023-09-22 荣耀终端有限公司 一种扫码方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924899A (zh) * 2006-09-26 2007-03-07 福建榕基软件开发有限公司 复杂背景下qr码图像符号区域的精确定位方法
CN103593695A (zh) * 2013-11-15 2014-02-19 天津大学 一种dpm二维码区域定位的方法
CN103729655A (zh) * 2014-01-22 2014-04-16 哈尔滨工业大学 一种用于片式元件视觉定位的检测方法
CN104809422A (zh) * 2015-04-27 2015-07-29 江苏中科贯微自动化科技有限公司 基于图像处理的qr码识别方法
CN110020571A (zh) * 2019-03-18 2019-07-16 阿里巴巴集团控股有限公司 二维码校正方法、装置及设备
CN110163025A (zh) * 2019-04-29 2019-08-23 达泊(东莞)智能科技有限公司 二维码定位方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104517089B (zh) * 2013-09-29 2017-09-26 北大方正集团有限公司 一种二维码解码***及其方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924899A (zh) * 2006-09-26 2007-03-07 福建榕基软件开发有限公司 复杂背景下qr码图像符号区域的精确定位方法
CN103593695A (zh) * 2013-11-15 2014-02-19 天津大学 一种dpm二维码区域定位的方法
CN103729655A (zh) * 2014-01-22 2014-04-16 哈尔滨工业大学 一种用于片式元件视觉定位的检测方法
CN104809422A (zh) * 2015-04-27 2015-07-29 江苏中科贯微自动化科技有限公司 基于图像处理的qr码识别方法
CN110020571A (zh) * 2019-03-18 2019-07-16 阿里巴巴集团控股有限公司 二维码校正方法、装置及设备
CN110163025A (zh) * 2019-04-29 2019-08-23 达泊(东莞)智能科技有限公司 二维码定位方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
符号特征 QR 码定位和校正算法;朱仁欢, 卢一相等;《中国测试》;第41卷(第2期);正文第1-4页 *
符号特征QR码定位和校正算法;朱仁欢,卢一相等;《中国测试》;第41卷(第02期);正文第1-3页 *

Also Published As

Publication number Publication date
CN112507751A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112507751B (zh) 一种qr码的定位方法及其***
CN108596166A (zh) 一种基于卷积神经网络分类的集装箱箱号识别方法
CN114972326A (zh) 热收缩管扩管工艺的次品识别方法
US5748868A (en) Two-dimensional management pattern, information display tag, and image processing method and device
CN109190742B (zh) 一种基于灰度特征的编码特征点的解码方法
CN112950540B (zh) 一种条码识别方法及设备
CN115131348B (zh) 一种纺织品表面缺陷的检测方法及***
CN109886059B (zh) 一种基于宽度学习的qr码图像检测方法
CN111626145B (zh) 一种简捷有效的残缺表格识别及跨页拼接方法
CN110610219B (zh) 一种彩色环形二维码及其生成和解码方法
CN111414779A (zh) 一种防伪标签识别方法及装置
CN113643274B (zh) 一种二维码候选区筛选的方法及装置
CN113516123B (zh) 一种针对轮胎压印字符的检测识别方法
CN112699704B (zh) 一种条形码的检测方法、装置、设备、存储装置
Bodnár et al. A novel method for barcode localization in image domain
CN111815725B (zh) 一种qr码区域定位方法
CN111429437B (zh) 面向目标检测的图像无参考清晰度质量检测方法
CN116469090A (zh) 喷码图案的检测方法、装置、电子设备和存储介质
CN114782413B (zh) 一种基于显微镜图像的星杆藻类细胞统计方法
CN111753842B (zh) 票据文本区域检测方法及装置
EP0915428A2 (en) Apparatus and method for image recognition
CN114549649A (zh) 一种基于特征匹配的扫描地图点符号的快速识别方法
CN111914847B (zh) 一种基于模板匹配的ocr识别方法及其***
CN113554591B (zh) 一种标签定位方法及设备
Karrach Location and Recognition of Data Matrix and QR Codes in Images

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant