CN113158704B - 一种快速定位Dotcode码的方法及其*** - Google Patents
一种快速定位Dotcode码的方法及其*** Download PDFInfo
- Publication number
- CN113158704B CN113158704B CN202110371758.6A CN202110371758A CN113158704B CN 113158704 B CN113158704 B CN 113158704B CN 202110371758 A CN202110371758 A CN 202110371758A CN 113158704 B CN113158704 B CN 113158704B
- Authority
- CN
- China
- Prior art keywords
- point
- boundary
- points
- data
- straight line
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Toxicology (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种快速定位Dotcode码的方法及***,涉及图像处理技术。本发明采用寻找灰度值渐变的像素区域确定待选数据点的边界和边界中心,根据数据点的特殊结构筛选符合要求的数据点,再通过初始数据点搜寻其他方向上的数据点,最终根据数据点之间的距离关系确定两个主点轴方向,实现Dotcode码的定位。本发明计算方式简单,运算量小,对图像方向的门槛要求低,能够快速的实现Dotcode码的定位。
Description
技术领域
本发明涉及图像处理技术,尤其涉及一种快速定位Dotcode码的方法及其***。
背景技术
Dotcode码是一种点码,属于一种这一两年才在欧洲地区小范围使用的全新种类的二维码,常使用在公共领域。它将数据编码在一系列名义上不相连的点中,而这些点位于可能位置的规则网格内。Dotcode码的数组是矩形的,在这矩形网格中只有一半是可能的点位置可以进行打印,类似棋盘上的深色正方形,这些点位置中大约56%最终按照数据编码规则打印。与其他点码和所有其他矩阵符号不同的是,这样会导致点在与符号矩形轮廓边缘成对角线的网格上对齐。Dotcode码通过Reed—Solomon纠错算法进行错误纠正,它的设计能够容忍部分点的丢失或者多余、放置错误的点。因此,它的灵活性和高纠错能力使得它对那些需要使用条形码的安全性和持久性的行业很有吸引力。目前主要制造商正在将其添加至产品和包装中用于跟踪以及工作流管理解决方案,一些航运和邮政机构也已经开始在航运标签上使用Dotcode码。
对Dotcode图像进行解码还原出码所包含的数据的过程来说,如何实现定位是关键的一步,首先需要确定矩形网格中的一点,并且由该点出发寻找原始图像中的两个主点轴方向,即为定位。在Dotcode码的国际符号标准中的参考解码算法里,公开了一种方法,通过找到一个闭合轨迹确定一个合适起始点的轮廓,然后利用快速傅里叶变换处理原始图像的一个正方形区域找出原始图像中的两个主点轴的方向确定点码所在区域和方向以进行后续进一步识别解码,但是这种方法存在着计算量较大,运算时间较长的问题,直接影响了Dotcode码整个解码流程的效率。
发明内容
为了解决上述技术问题,本发明提出一种快速定位Dotcode码的方法及其***,可以在避免快速傅里叶的大计算量的情况下,也能确定Dotcode码的一个起始点,并且由该起始点出发精确的找出原始图像的两个主点轴的方向,能够实现快速高效的定位。
本发明的技术方案一:
一种快速定位Dotcode码的方法,其特征在于,包括如下步骤:
S1:由包含Dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值。
S2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界。
S3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度。
S4:由所述边界中心点位置向多个方向发出扫描线,重复S2-S3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;若各个方向的边界宽度不相同,则回到步骤S3。
S5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤S2-S4的方法确定多个候选数据点。
S6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向。
S7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标。
S8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
所述S3步骤中,中心点和宽度的计算公式为:
其中,x,y为中心点的位置坐标,(x0,y0),(x1,y1)分别为两个间隔点的位置坐标,W为宽度。
所述步骤S3中,当Dotcode码为白底黑点时,选择减增边界作为目标边界,当Dotcode码为黑底白点时,选择增减边界作为目标边界。
所述步骤S4中,当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于,原点为所述边界中心点并且垂直于所述扫描线的直线上,所述直线方向上的边界中心点为所述数据点的中心点。
所述步骤S5中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤S1,重新计算。
技术方案二
一种快速定位Dotcode码的***,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
S1:由包含Dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值。
S2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界。
S3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度。
S4:由所述边界中心点位置向多个方向发出扫描线,重复S2-S3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;若各个方向的边界宽度不相同,则回到步骤S3。
S5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤S2-S4的方法确定多个候选数据点。
S6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向。
S7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标。
S8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
所述S3步骤中,中心点和宽度的计算公式为:
其中,x,y为中心点的位置坐标,(x0,y0),(x1,y1)分别为两个间隔点的位置坐标,W为宽度。
所述步骤S3中,当Dotcode码为白底黑点时,选择减增边界作为目标边界,当Dotcode码为黑底白点时,选择增减边界作为目标边界。
所述步骤S4中,当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于原点为所述边界中心点并且垂直于所述扫描线的直线上,所述直线方向上的边界中心点为所述数据点的中心点。
所述步骤S5中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤S1,重新计算。
本发明具有如下有益效果:
1、本发明的一种快速定位Dotcode码的方法及***,采用寻找灰度值渐变的像素区域确定待选数据点的边界和边界中心,根据数据点的特殊结构筛选符合要求的数据点,再通过初始数据点搜寻其他方向上的数据点,最终根据数据点之间的距离关系确定两个主点轴方向,计算方法简单,运算量低,效率高;
2、本发明的一种快速定位Dotcode码的方法及***,无论Dotcode码是白底黑点还是黑底白点,计算方法相同,适应性高;
3、本发明的一种快速定位Dotcode码的方法及***,对原始图像的门槛要求低,不需要经过图像转正和二值化,减少运算步骤。
附图说明
图1为本发明的一种快速定位Dotcode码的方法流程图;
图2为Dotcode码的主点轴方向示意图;
图3为本发明的一个实施例的原始图像;
图4为本发明的一个实施例的经过扫描确认的第一数据点示意图;
图5为本发明的一个实施例的确定数据点中心点示意图;
图6为本发明的一个实施例的确认的第二数据点示意图;
图7为本发明的一个实施例的经过定位的两条主点轴方向示意图;
图8为本发明的另一个实施例的错误寻找示意图;
图9为本发明的另一个实施例的错误寻找示意图。
具体实施方式
下面结合附图和具体实施例来对本发明进行详细的说明。
首先定义数据点,45°方向以及135°方向的主点轴概念:
数据点:是在图片上的一个像素点集合,该像素点集合可视为一个接近圆形的闭环点。在Dotcode符号标准里的定义里,每个打印出来的点都用一个像素集合来表示,像素集合的形状大部分情况近似圆形,少部分情况下为八角形或正方形。
45°方向:由于Dotcode码的数据点是在矩形网格中的可打印位置才可打印,并且行、列方向上的可打印位置是间隔排列的,基于该特点,矩形网格中的对角方向网格都为可打印位置,可能存在打印出来的数据点。因此规定其中一条对角方向即为Dotcode码的45°方向。
135°方向:与45°方向成垂直的另一条网格对角线的方向即为Dotcode码的135°方向。45°与135°两个方向合称为两个主点轴的方向,如图2所示,图中分别表明了45°方向和135°方向。
实施例一
如图1所示,一种快速定位Dotcode码的方法,包括如下步骤:
S1:由包含Dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值;
扫描线方向不唯一,搜索方式也不唯一,可以采用自定义隔N(N为自然数)行方式进行搜索。在现实使用场景中,Dotcode码不是理想化的规整的放置,如图3所示,所述原始图像中Dotcode码是倾斜放置的。如图4所示,在本实施例中,扫描线为水平直线,从整幅图像的1/4处开始进行第一次扫描。
S2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界。
其中所述增减或减增过渡边界是通过比较相邻像素点的灰度值得到的,若该组像素点灰度值依次呈现递增趋势,即图像相邻像素点从暗到亮过渡,则该组像素点称为增边界;若该组灰度值依次呈现递减趋势,即图像相邻像素点从亮到暗过渡,则该过渡部分称为减边界。
一组n个相邻像素点的灰度值可以用(g1,g2,g3,g4…gn-1,gn)来表示,当gn-1<gn时,图像相邻像素点从暗到亮过渡,当gn-1>gn时,图像相邻像素点从亮到暗过渡。
在本实施例中,如图4所示,可以观察到扫描线经过了两个数据点,根据灰度值的变化,在图中出现的了4个过渡边界。
S3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度。一般选取第一组相邻的边界作为目标边界进行计算。
所述S3步骤中,通过边界提取算法选择灰度变化幅度最大位置作为边界位置,即gn-gn-1的差值最大时,第n个像素点所在位置为边界位置,在本实施例中,图像的灰度值分布比较清晰,在扫描线与数据点交错的地方是明显的白黑变化区域,灰度差值为255。
所述S3步骤中,中心点和宽度的计算公式为:
其中,x,y为中心点的位置坐标,(x0,y0),(x1,y1)分别为两个间隔点的位置坐标,W为宽度。这里是通过简单的点和距离计算公式即可计算出中心点坐标和宽度。
所述步骤S3中,当Dotcode码为白底黑点时,选择减增边界作为目标边界,当Dotcode码为黑底白点时,选择增减边界作为目标边界。
在对Dotcode进行定位前,需要判断Dotcode码的类型,因为类型不同,作为数据点的边界灰度变化也是不同的。判断Dotcode码的类型的方法有多种,常用的方法可以通过计算扫描线上连续出现的最短白色像素点集合和最短黑色像素点集合的关系来确定,当最短白色像素点集合大于最短黑色像素点集合,则当前Dotcode码为白底黑点,反之为黑底白点。在现实运用中,大部分都是用白底黑点格式,少部分特殊场景使用黑底白点格式。也可以默认采用白底黑点格式来进行定位,当多次定位失败时采用黑底白点格式重新尝试定位。在本实施例中,Dotcode码为白底黑点类型。
S4:由所述边界中心点位置向多个方向发出扫描线,重复S2-S3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;若各个方向的边界宽度不相同,则回到步骤S3;
由于Dotcode码的每个打印出来的像素阵列是近似圆形、正方形或者八角形的形状,根据这些闭环几何图形的特性,可以对已经计算得到的边界中心点进行多个方向的确认是否存在这些几何图形的几何特征。例如:可以由该中心点位置向外扩展寻找相邻像素点的从亮到暗或者从暗到亮的过渡,然后进行多个方向的边界宽度计算,如果多个方向都具有相同宽度,则判断该点是一个数据点的中心点位置。
所述步骤S4中,当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于原点为所述边界中心点并且垂直于所述扫描线的直线上,所述直线方向上的边界中心点为所述数据点的中心点。
某些情况下,扫描线虽然经过了数据点,但没有经过数据点的中心,此时需要根据边界中心点来找到真正的数据点的中心。如图5所示,扫描线与数据点相交于ab两点,因为没有经过真正的中心点,所有ab的边界宽度会小于其他边界宽度,此时以ab边界中心点为原点,作垂直于ab的直线,得到两个边界点cd,cd的中心点o即为真正的数据点的中心点。这里依然是通过简单地点线关系计算可以得到,不再详述。
S5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤S2-S4的方法确定多个候选数据点。
S6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向。
如图6所示,途中方框点即为所述第一数据点,通过扫描可以获得其周边的多个候选数据点。在所述S5步骤中可以获得所述多个候选数据点的中心点坐标,分别计算与所述第一数据点的中心点坐标距离,这里通过简单的点线关系即可获得。经过计算,图中圆圈选取的数据点距离最近,即为第二数据点,所述第一数据点和所述第二数据点之间连线构成的直线即为45°方向。
S7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标。
S8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
如图7所示,所述45°方向直线上的各个数据点作垂直于所述45°方向的直线,可得到数个直线,每条直线上按照S2-S4的方法寻找并计算相邻数据点之间的距离,同时也要计算45°直线上各个数据点之间的最小距离,一般即为第一数据点和第二数据点之间的距离。各个直线上各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,所述垂直直线方向为135°方向。
所述步骤S7中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤S1,重新计算。
本发明的一种快速定位Dotcode码的方法及***,采用寻找灰度值渐变的像素区域确定待选数据点的边界和边界中心,根据数据点的特殊结构筛选符合要求的数据点,再通过初始数据点搜寻其他方向上的数据点,最终根据数据点之间的距离关系确定两个主点轴方向,计算方法简单,运算量低,效率高;无论Dotcode码是白底黑点还是黑底白点,计算方法相同,适应性高;对原始图像的门槛要求低,不需要经过图像转正和二值化,减少运算步骤。
实施例二
本实施例描述S7-S8步骤方向寻找错误的情况:从所述45°方向直线上的每一个数据点出发,垂直于直线方向上去查找其他数据点,查找数据点依然采用S2-S4的方法,多个方向确认其宽度,并且此时由于已经存在所述45°方向直线,后续的数据点的宽度和所述45°方向直线上的数据点的宽度应该相一致或者相近,才能判断是数据点。此时分情况:
第一种情况,从所述45°方向直线上的每个数据点出发,其垂直方向都找不到第二个数据点,即垂直所述45°方向直线方向上不存在其他数据点直线,此时可以确定所述45°方向直线是错误的,重新查找;
第二种情况,若从所述45°方向直线上的某一个数据点出发,若找到了其垂直方向的第二个数据点,并且该垂直方向上存在一条数据点直线,此时需要进一步确认所述45°方向直线方向的正确性。由第二个数据点出发,按照所述45°方向直线去查找是否该方向同样存在数据点直线。
如图8所示,图像从上至下进行扫描时,选中的第一数据点为图中方框中的点,此时经过多角度方向扫描时,筛选点与点间距较小的作为所述45°方向上的数据点,即为图中圆圈处的数据点,作为第二数据点,两点方向作为所述45°方向,然后对其垂直方向进行扫描,查找其他数据点。
如图9所示,从所述45°方向直线上一数据点出发作垂直直线,获得一数据点,即图中方框所选的数据点记为第三数据点,以所述第三数据点作平行于所述45°直线的直线,所述平行直线上不存在其他好点,此时认为所述45°方向直线查找错误,进一步判断可以由所述第三数据点出发,按照查找所述45°方向的步骤即S5-S6,,进行多个角度方向上的扫描查找与所述第三数据点距离最近的其他数据点,如果在区别于所述45°方向,在其他角度方向上找到间距最小的数据点,比如图中圆圈处的数据点,此时可以完全确定所述45°方向查找错误。
本发明的一种快速定位Dotcode码的方法及***,采用寻找灰度值渐变的像素区域确定待选数据点的边界和边界中心,根据数据点的特殊结构筛选符合要求的数据点,再通过初始数据点搜寻其他方向上的数据点,最终根据数据点之间的距离关系确定两个主点轴方向,计算方法简单,运算量低,效率高;无论Dotcode码是白底黑点还是黑底白点,计算方法相同,适应性高;对原始图像的门槛要求低,不需要经过图像转正和二值化,减少运算步骤。
实施例三
一种快速定位Dotcode码的***,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
S1:由包含Dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值。
S2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界。
S3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度。
S4:由所述边界中心点位置向多个方向发出扫描线,重复S2-S3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;若各个方向的边界宽度不相同,则回到步骤S3。
S5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤S2-S4的方法确定多个候选数据点。
S6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向。
S7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标。
S8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
所述S3步骤中,中心点和宽度的计算公式为:
其中,x,y为中心点的位置坐标,(x0,y0),(x1,y1)分别为两个间隔点的位置坐标,W为宽度。
所述步骤S3中,当Dotcode码为白底黑点时,选择减增边界作为目标边界,当Dotcode码为黑底白点时,选择增减边界作为目标边界。
所述步骤S4中,当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于原点为所述边界中心点并且垂直于所述扫描线的直线上,所述直线方向上的边界中心点为所述数据点的中心点。
所述步骤S7中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤S1,重新计算。
本发明的一种快速定位Dotcode码的方法及***,采用寻找灰度值渐变的像素区域确定待选数据点的边界和边界中心,根据数据点的特殊结构筛选符合要求的数据点,再通过初始数据点搜寻其他方向上的数据点,最终根据数据点之间的距离关系确定两个主点轴方向,计算方法简单,运算量低,效率高;无论Dotcode码是白底黑点还是黑底白点,计算方法相同,适应性高;对原始图像的门槛要求低,不需要经过图像转正和二值化,减少运算步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包含在本发明的专利保护范围内。
Claims (8)
1.一种快速定位Dotcode码的方法,其特征在于,包括如下步骤:
S1:由包含Dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值;
S2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界;
S3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度;
S4:由所述边界中心点位置向多个方向发出扫描线,重复S2-S3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于,原点为所述边界中心点并且垂直于所述扫描线的直线上,直线方向上的边界中心点为所述数据点的中心点;若各个方向的边界宽度不相同,则回到步骤S3;
S5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤S2-S4的方法确定多个候选数据点;
S6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向;
S7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标;
S8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
3.根据权利要求1所述的一种快速定位Dotcode码的方法,其特征在于,所述步骤S3中,当Dotcode码为白底黑点时,选择减增边界作为目标边界,当Dotcode码为黑底白点时,选择增减边界作为目标边界。
4.根据权利要求1所述的一种快速定位Dotcode码的方法,其特征在于,所述步骤S7中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤S1,重新计算。
5.一种快速定位Dotcode码的***,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
S1:由包含Dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值;
S2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界;
S3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度;
S4:由所述边界中心点位置向多个方向发出扫描线,重复S2-S3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于,原点为所述边界中心点并且垂直于所述扫描线的直线上,直线方向上的边界中心点为所述数据点的中心点;若各个方向的边界宽度不相同,则回到步骤S3;
S5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤S2-S4的方法确定多个候选数据点;
S6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向;
S7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标;
S8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
7.根据权利要求5所述的一种快速定位Dotcode码的***,其特征在于,所述步骤S3中,当Dotcode码为白底黑点时,选择减增边界作为目标边界,当Dotcode码为黑底白点时,选择增减边界作为目标边界。
8.根据权利要求5所述的一种快速定位Dotcode码的***,其特征在于,所述步骤S7中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤S1,重新计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110371758.6A CN113158704B (zh) | 2021-04-07 | 2021-04-07 | 一种快速定位Dotcode码的方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110371758.6A CN113158704B (zh) | 2021-04-07 | 2021-04-07 | 一种快速定位Dotcode码的方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113158704A CN113158704A (zh) | 2021-07-23 |
CN113158704B true CN113158704B (zh) | 2023-06-09 |
Family
ID=76888863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110371758.6A Active CN113158704B (zh) | 2021-04-07 | 2021-04-07 | 一种快速定位Dotcode码的方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113158704B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114492496B (zh) * | 2022-01-20 | 2023-04-14 | 三维码(厦门)网络科技有限公司 | 一种点阵码快速识读方法、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334605A (ja) * | 1994-04-13 | 1995-12-22 | Ricoh Co Ltd | 傾き検出方法 |
CN101398895A (zh) * | 2007-09-26 | 2009-04-01 | 杨高波 | 一种数据矩阵(dm)二维条形码识别的图像预处理方法 |
CN101673412A (zh) * | 2009-09-29 | 2010-03-17 | 浙江工业大学 | 结构光三维视觉***的光模板匹配方法 |
CN103824275A (zh) * | 2012-10-31 | 2014-05-28 | 康耐视公司 | 在图像中搜寻鞍点状结构并测定其信息的***和方法 |
CN109711223A (zh) * | 2018-12-28 | 2019-05-03 | 福州符号信息科技有限公司 | 一种提升qr码解码率方法及设备 |
CN110309687A (zh) * | 2019-07-05 | 2019-10-08 | 华中科技大学 | 一种二维码图像的校正方法及校正装置 |
CN112507751A (zh) * | 2020-11-06 | 2021-03-16 | 福州符号信息科技有限公司 | 一种qr码的定位方法及其*** |
-
2021
- 2021-04-07 CN CN202110371758.6A patent/CN113158704B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334605A (ja) * | 1994-04-13 | 1995-12-22 | Ricoh Co Ltd | 傾き検出方法 |
CN101398895A (zh) * | 2007-09-26 | 2009-04-01 | 杨高波 | 一种数据矩阵(dm)二维条形码识别的图像预处理方法 |
CN101673412A (zh) * | 2009-09-29 | 2010-03-17 | 浙江工业大学 | 结构光三维视觉***的光模板匹配方法 |
CN103824275A (zh) * | 2012-10-31 | 2014-05-28 | 康耐视公司 | 在图像中搜寻鞍点状结构并测定其信息的***和方法 |
CN109711223A (zh) * | 2018-12-28 | 2019-05-03 | 福州符号信息科技有限公司 | 一种提升qr码解码率方法及设备 |
CN110309687A (zh) * | 2019-07-05 | 2019-10-08 | 华中科技大学 | 一种二维码图像的校正方法及校正装置 |
CN112507751A (zh) * | 2020-11-06 | 2021-03-16 | 福州符号信息科技有限公司 | 一种qr码的定位方法及其*** |
Non-Patent Citations (1)
Title |
---|
基于白色与黑色像素区域相间明显的快速边界获取的方法;郭水平,陈锦昌;工程图学学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113158704A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8376240B2 (en) | Method and system for creating and using barcodes | |
JP5848464B2 (ja) | 二次元コード、二次元コードの作成システムおよび解析プログラム | |
TWI528293B (zh) | QR code | |
JP2938338B2 (ja) | 二次元コード | |
US6742708B2 (en) | Fiducial mark patterns for graphical bar codes | |
US7107506B2 (en) | Method of detecting two-dimensional codes | |
US6758399B1 (en) | Distortion correction method in optical code reading | |
JP5791826B2 (ja) | 二次元コード | |
US9430726B2 (en) | High capacity 2D color barcode and method for decoding the same | |
JP2005267598A (ja) | 二次元バーコード及びその符号復号化方法 | |
CN104346640A (zh) | 二维码及生成二维码的方法 | |
US7305131B2 (en) | Extracting graphical bar codes from an input image | |
CN111046996B (zh) | 一种彩色qr码生成和识别方法 | |
CN102763121B (zh) | 用于解码线性条码的方法 | |
CN113158704B (zh) | 一种快速定位Dotcode码的方法及其*** | |
CN110020571B (zh) | 二维码校正方法、装置及设备 | |
CN117273044B (zh) | 一种点阵图构建方法及识别点阵图的方法 | |
CN113297872B (zh) | 一种Dotcode识别方法、设备 | |
Xu | ADVANCES IN IMAGE-BASED DATA HIDING, FEATURE DETECTION, GRID ALIGNMENT, AND DOCUMENT CLASSIFICATION |
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 |