1.本发明涉及一种点阵码定位方法及装置,属于点阵码识读领域。
背景技术:2.点阵码由多个微细点按一定规律排列组成,是一种记录信息的图形载体。现有的点阵码识读方法较为繁琐,所需计算量大,用户体验较差。
3.如,公开号为cn110276226a的专利《一种点阵码检测方法及系统》中需要计算滑动窗口选定区域的平均能量密度以确定候选区域;计算腐蚀后的候选区域的平均能量密度以确定第一区域;计算第一区域的各个子框之间的能量密度与第一区域的整体能量密度以确定目标区域;最终对目标区域进行合并处理,得到目标点阵码区。其中,需要多次计算能量密度才能确定码区位置,计算量巨大。
4.如,公开号为cn 110245538a的专利《一种点阵码定位方法及系统》采用多组递变尺寸的滑动窗口进行尝试计算,从中选出最优的滑动窗口作为目标窗口。其中,需要多轮扫描进行目标滑窗参数的确定,计算量仍然较大,码区判定效率低。
5.如,公开号为cn113158704a的专利《一种快速定位dotcode码的方法及其系统》通过初始数据点搜寻其他方向上的数据点,根据数据点之间的距离关系确定两个主点轴方向,实现dotcode码的定位,计算方式简单,计算量小。但每个数据点均需要进行多个方向的边界宽度计算,计算方式有待进一步简化。此外,若处理图像中含有多个dotcode码时,该方法无法区别各dotcode码,导致识读失败。
6.lbp特征(local binary pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子,广泛应用于目标检测领域。现有技术如《一种远距离二维码定位方法》《一种基于图像特征的二维码定位识别系统》中,lbp特征用于识别目标是否为二维码。
7.综上,需要一种计算量更小的点阵码识别方法。
技术实现要素:8.为了克服现有技术中存在的问题,本发明设计了一种点阵码定位方法,根据lbp特征确定数据点,极大减少了确定数据点所需计算量,从而提高点阵码识读速率。为了实现上述目的,本发明采用如下技术方案:
9.技术方案一:
10.一种点阵码定位方法,包括以下步骤:
11.获取待处理图像;
12.确定第一扫描线;
13.在待处理图像中沿第一扫描线搜寻并确认第一数据点;
14.继续搜寻并确定剩余数据点;
15.其中,根据第一数据点的局部二值特征,确定剩余数据点。
16.进一步地,还包括:若沿第一扫描线无法搜寻并确认第一数据点,则通过二分查找
法确定第二扫描线,沿第二扫描线搜寻并确认第一数据点。
17.进一步地,所述搜寻第一数据点,具体为:
18.沿第一扫描线查找间距大于间距阈值的成对边界,所述成对边界为两个像素值变化趋势相反的边界点。
19.进一步地,所述确认第一数据点具体为:
20.沿过成对边界中点的多个扫描线,查找间距大于间距阈值的其它成对边界,若查找到至少一个间距大于间距阈值的其它成对边界,则确认第一数据点。
21.进一步地,所述根据第一数据点的局部二值特征,确定剩余数据点,具体为:
22.计算第一数据点的局部二值特征和剩余数据点的局部二值特征的相似度,若相似度大于相似阈值,则确认剩余数据点。
23.进一步地,根据已确认数据点,计算数据点之间的最小间距;以最小间距为步长,按步长搜寻剩余数据点。
24.进一步地,根据已确认数据点的相对位置关系,生成矩阵;在矩阵中查找定位模组,所述定位模组包括具有特定位置关系的若干个数据点。
25.进一步地,根据定位模组的位置,确定点阵码位置。
26.技术方案二:
27.一种点阵码定位装置,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
28.获取待处理图像;
29.确定第一扫描线;
30.在待处理图像中沿第一扫描线搜寻并确认第一数据点;
31.继续搜寻并确定剩余数据点;
32.其中,根据第一数据点的局部二值特征,确定剩余数据点。
33.进一步地,还包括:若沿第一扫描线无法搜寻并确认第一数据点,则通过二分查找法确定第二扫描线,沿第二扫描线搜寻并确认第一数据点。
34.进一步地,所述搜寻第一数据点,具体为:
35.沿第一扫描线查找间距大于间距阈值的成对边界,所述成对边界为两个像素值变化趋势相反的边界点。
36.进一步地,所述确认第一数据点具体为:
37.沿过成对边界中点的多个扫描线,查找间距大于间距阈值的其它成对边界,若查找到至少一对间距大于间距阈值的其它成对边界,则确认第一数据点。
38.进一步地,所述根据第一数据点的局部二值特征,确定剩余数据点,具体为:
39.计算第一数据点的局部二值特征和剩余数据点的局部二值特征的相似度,若相似度大于相似阈值,则确认剩余数据点。
40.进一步地,根据已确认数据点,计算数据点之间的最小间距;以最小间距为步长,按步长搜寻剩余数据点。
41.进一步地,根据已确认数据点的相对位置关系,生成矩阵;在矩阵中查找定位模组,所述定位模组包括具有特定位置关系的若干个数据点。
42.进一步地,根据定位模组的位置,定位点阵码。
43.与现有技术相比本发明有以下特点和有益效果:
44.1、本发明根据lbp特征确定数据点,极大减少了确定数据点所需计算量,从而提高点阵码识读速率。
45.2、本发明利用二分查找法确定扫描线位置,有效提高寻找第一数据点的速度,并快速确定待处理图像中是否存在点阵码。
46.3、本发明在不同方向上多次确认数据点宽度,提高第一数据点判断准确性,减少误判概率。
47.4、本发明将最小间距作为步长,每隔一步长计算lbp特征,进一步降低确认数据点所需的计算量。
附图说明
48.图1是本发明流程图;
49.图2是二分法查找候选点示意图;
50.图3是确认第一数据点示意图;
51.图4是lbp特征计算示意图;
52.图5是海明距离计算示意图;
53.图6是待处理点阵码示意图;
54.图7是矩阵示意图;
55.图8是定位模组示意图;
56.图9是点阵码位置示意图。
具体实施方式
57.下面结合实施例对本发明进行更详细的描述。
58.实施例一
59.如图1所示,一种点阵码定位方法,包括以下步骤:
60.s1、获取包含点阵码的待处理图像;
61.s2、确定第一扫描线;
62.s3、在待处理图像中沿第一扫描线搜寻并确认第一数据点;
63.s4、搜寻并确认剩余数据点;
64.其中,根据第一数据点的lbp特征,确定剩余数据点,具体为:
65.计算第一数据点的lbp特征:以第一数据点的形心为中心,第一数据点的半径为邻域半径;取邻域半径内的多个像素点,依次与中心像素点进行比较,若当前像素点灰度值大于中心像素点灰度值,则记为1;否则记为0;最终得到一个二进制串,将该二进制串记为第一数据点的lbp特征l1;
66.同理,计算剩余数据点的lbp特征:以某一像素点为中心,第一数据点半径为邻域半径;取邻域半径内的多个像素点,依次与中心像素点进行比较,若当前像素点灰度值大于中心像素点灰度值,则记为1;否则记为0;最终得到一个二进制串,将该二进制串记为剩余数据点的lbp特征l2;
67.计算lbp特征l1和lbp特征l2的相似度,以公式表达为:
68.d=count(xor(l1,l2))
69.其中,xor表示异或运算;count为求异或运算结果中1的个数;d为海明距离。
70.若海明距离值大于相似度阈值,则确认该像素点处存在数据点,并认为该像素点为数据点的形心;否则,确认该像素点处不存在数据点。
71.本实施例的有益效果为:根据lbp特征确定数据点,极大减少了确定数据点所需计算量,从而提高点阵码识读速率。
72.实施例二
73.参见图2至图5,点阵码识别方法,包括以下步骤:
74.s1、获取待处理图像,并将待处理图像转换为单通道灰度图像g,记灰度图像g的宽度像素数为w,高度像素数为h。
75.s2、确定第一扫描线,第一扫描线位于灰度图像g的h/2处(当然也可位于w/2处)。
76.s3、搜寻并确认第一数据点:
77.s31、搜寻第一数据点:
78.沿第一扫描线,查找像素差值超过阈值的相邻像素点,若某一像素点的像素值小于后一像素点且像素差值的绝对值超过阈值,记该像素点为c1点;若某一像素点的像素值大于后一像素点且像素差值的绝对值超过阈值,记该像素点为c2点。c1点、c2点组成一个成对边界。
79.计算成对边界(c1点、c2点)之间的间距,若间距大于阈值,则结束搜寻第一数据点;否则,继续沿第一扫描线查找间距大于阈值的成对边界。
80.参见图2,若第一扫描线上没有查找得到间距大于阈值的成对边界,则确定按二分查找法确定第二扫描线,沿第二扫描线继续搜寻第一数据点,第二扫描线位于灰度图像g的h/4处。若第二扫描线上仍然没有搜寻到第一数据点,则依次继续沿第三扫描线(3h/4处)、第四扫描线(h/8处)、第五扫描线(3h/8处)
……
搜寻,以此类推。利用二分查找法确定扫描线位置,有效提高寻找第一数据点的速度,并快速确定待处理图像中是否存在点阵码。
81.s32、确认第一数据点:
82.参见图3,假设搜寻到的间距大于阈值的成对边界的中点坐标为(l,c);沿过坐标(l,c)的多个扫描线查找间距大于阈值的其他成对边界,若存在至少一个其他成对边界,则确认坐标(l,c)处存在第一数据点,且坐标(l,c)为第一数据点形心。在多个方向上多次确认数据点宽度,提高数据点判断准确性,减少误判概率。
83.s4、搜寻并确认剩余数据点:
84.s41、计算第一数据点的lbp特征:
85.如图4所示,以坐标(l,c)为中心,w为邻域半径,取邻域半径w内的8个像素点,从左上角开始沿顺时针依次与坐标(l,c)处像素进行灰度值比较,得到第一数据点lbp特征11011110;
86.s42、在l行逐像素扫描,在每一像素点处计算lbp特征;
87.s43、如图5所示,计算第一数据点lbp特征与各像素点处lbp特征的海明距离,若距离小于等于相似度阈值(本实施例中阈值设为1),则表示该像素点处存在数据点,且该像素点为数据点中心。
88.实施例三
89.进一步地,确认一定数量的数据点后;根据已确认的数据点,计算数据点之间的最小间距。不再逐像素计算各像素点处lbp特征,而是将最小间距作为步长,每隔一步长计算lbp特征,从而进一步降低确认数据点所需的计算量。
90.实施例四
91.对于如图6所示包含多个点阵码的待处理图像,图中各点阵码难以区分,易导致点阵码识读失败。
92.本实施例设置一矩阵,将已确认的数据点按相对位置关系填入矩阵,如图7所示。在点阵码中设有具有特定位置关系的定位模块,如图8中的数据点间距一致且在同一直线方向上的5个数据点即为一定位模块。
93.相应地,如图9所示,在矩阵中查找该直线方向上连续的5个字符1,得到两个定位模块。根据定位模块位置,确定点阵码位置,即图9中框选矩形区域。
94.显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。