CN113177959B - 一种快速运动过程中qr码实时提取方法 - Google Patents
一种快速运动过程中qr码实时提取方法 Download PDFInfo
- Publication number
- CN113177959B CN113177959B CN202110558282.7A CN202110558282A CN113177959B CN 113177959 B CN113177959 B CN 113177959B CN 202110558282 A CN202110558282 A CN 202110558282A CN 113177959 B CN113177959 B CN 113177959B
- Authority
- CN
- China
- Prior art keywords
- edge
- image
- polar
- array
- dimensional code
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000000605 extraction Methods 0.000 title claims abstract description 40
- 230000008569 process Effects 0.000 title claims abstract description 35
- 238000001514 detection method Methods 0.000 claims abstract description 42
- 238000005260 corrosion Methods 0.000 claims abstract description 39
- 230000007797 corrosion Effects 0.000 claims abstract description 39
- 238000003708 edge detection Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000005192 partition Methods 0.000 claims description 37
- 239000011159 matrix material Substances 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 11
- 238000003491 array Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000011109 contamination Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 5
- 238000011897 real-time detection Methods 0.000 abstract description 3
- 230000011218 segmentation Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 241000872198 Serjania polyphylla Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G06T5/70—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
Abstract
本发明提供了一种快速运动过程中QR码实时提取方法,该算法首先对原图进行抽取处理,采用边缘检测算法对抽取图像进行处理,提取出二值化的边缘图形,根据像素统计特征确定候选区域,采用形态学中的腐蚀算法生成腐蚀图像,再通过基于霍夫变换的直线检测算法对腐蚀图像进行直线检测,然后根据标签样式的图形特征进行聚类处理,提取标签样式中的二维码子图分割线,从而快速分割出每个二维码子图,最终提取出二维码,该算法易实现,目标图像定位快,标签样式的设计增强了算法对于图像局部污损的抗干扰能力,定位精度高,为二维码解码提供了一种快速的目标检测方法,可以满足快速运动过程中实时检测的要求,以及工业视觉中精确定位的要求。
Description
技术领域
本发明涉及工业机器人视觉定位检测领域,更具体地,涉及一种快速运动过程中QR码实时提取方法。
背景技术
工业机器人是面向工业领域的多关节机械手或多自由度的机器装置,它能自动执行工作,是靠自身动力和控制能力来实现各种功能的一种机器。重复定位精度是工业机器人第一指标。工业视觉系统是用于自动检验、工件加工和装配自动化以及生产过程的控制和监视的图像识别机器。工业机器视觉意味着低成本、可接受的精度、高坚固性、高可靠性、高机械性以及温度稳定性。
二维码(Two—DimensionsCode),又称二维条码,是用某种特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的记录数据符号信息的图形。它除了具有信息容量大、可靠性高等特点以外,还有超高速识读、全方位识读、可表示汉字、图像声音等一切可以数字化的信息并且有很强的保密防伪等优点。
在工业视觉领域,采用视觉读码器与二维码技术的独特组合,确保了高精度和可靠性。可以在亚毫米级别满足移动机构重复定位精度要求;同时二维码识别技术的全向性,也使得旋转角度的精度可以得到保障。
QR码作为是二维条码的一种,QR来自英文“Quick Response”的缩写,即快速反应的意思,QR码拥有相比其他类型的二维码更大的容量、更高的识别率、无需像普通条码般在扫描时需直线对准扫描器等多种优势,广泛被用于物联网、移动通讯等领域中,而在视觉定位领域中,由于均是在移动中实时进行的,对于传统二维码检测技术在实时性和高精度方面都提出了更高要求和挑战。
在传统常见的方法里,在运用二维码本身的图形特征来进行定位时,可以通过扫描图像中包含的位置探测图形,确定位置探测图形的位置,从而得到二维码的位置。也可以对图像进行形态学的腐蚀和膨胀,二维码图像在腐蚀膨胀的作用下形成一个正方形,而后采用霍夫变换的方法对图片中的直线进行检测,得到正方形的四条边,从而得到二维码的位置。第一种常用方法的有点在于定位准确,比如QR码的三个位置探测图形必须符合1:1:3:1:1的黑白相间的特征;缺点是当图片分辨率变化比较大时,高分辨率会导致图像扫描的实时响应特性较差,低分辨率会导致位置探测图形准确率下降;第二种方法优点是实时响应速度较快;缺点是,对于背景复杂的图片,容易造成直线检测结果的发散。
在工业机器人视觉定位检测领域,信息量、实时性、全向性、重复定位精度等方面的性能指标要求,也对二维码的应用带来了新的思路和解决方案。二维码信息含量大的特征,使得定位距离可长达万米级别,十毫秒以内级别的提取速度可以满足快速移动机构的实时性要求,全向性的识别能力加之规范的标签样式设计对测量重复定位精度都是有力的保障。
发明内容
发明的目的是为了提供一种以多个二维码以矩阵式排列的标签样式设计以及对于这种标签样式的快速提取检测算法,该算法实现速度快、定位精度高、可满足实时检测的要求。
为了达到上述目的,本发明采用以下方案:一种快速运动过程中QR码实时提取方法,包括以下步骤:
S1:设计了一种多个二维码以矩阵式排列的标签样式;
S2:对于输入灰度原图进行抽取处理,并进行双阈值滤波,生成抽取图像;
S3:采用边缘检测算法对抽取图像进行处理,生成二值化的边缘图像;
S4:对于S3中的边缘图像,进行边缘点数统计,确定候选区域;
S5:对候选区域内的边缘图像进行腐蚀操作,生成二值化的腐蚀图像;
S6:对于S5中的腐蚀图像,采用基于霍夫变换的直线检测算法检测边缘分割线;
S7:对于S6的边缘分割线,根据标签样式的(平行/垂直/间隔)图形特征进行聚类处,提取最大有效分割线子集,计算交点,确定目标区域,计算二维码子图的顶点坐标;
S8:提取二维码子图,用于解码处理。
作为本发明进一步地方案,所述步骤S1的具体过程如下:
S1.1:设计一种矩阵式的二维码标签样式,具有平行/垂直/间隔的图形边缘特征;
S1.2:标签样式中的二维码含有所在矩阵位置信息,可进行亚毫米级精确定位;
S1.3:标签样式中的二维码含有相同标签信息,局部污损不会影响标签信息识别。
作为本发明进一步地方案,所述步骤S2的具体过程如下:
S2.1:对于输入算法的灰度原图,根据抽取比例进行像素点的抽取;
S2.2:对于抽取到的原图像素点的灰度值f(x,y),进行阈值滤波处理,生成目标像素点g(i,j),表示为:
其中,GRAYVALUE_MIN表示图像灰度值的最小阈值;
GRAYVALUE_MAX表示图像灰度值的最大阈值;
EXTRACT_SCALE表示抽取比例;
x=i×EXTRACT_SCALE;y=j×EXTRACT_SCALE;
S2.3:所有像素点g(i,j)组成抽取图像。
作为本发明进一步地方案,所述步骤S3的具体过程如下:
S3.1:对抽取图像以Z形扫描方式,使用边缘检测算子模板进行卷积核掩模运算;
S3.2:对于S3.1的卷积核掩模运算结果,进行过零点判断,确定边缘点;
S3.3:所有边缘点取值为0,非边缘点取值为255,构成二值化的边缘检测图像。
作为本发明进一步地方案,所述步骤S4的具体过程如下:
S4.1:对于边缘检测图像,进行分块处理,划分出多个均匀等分的方形块区域;
S4.2:统计每个方形块区域中的边缘点数;
S4.3:对于S4.2的边缘点数,如果大于预置的候选块阈值,则认为该块为候选块,记录下该候选块的顶点坐标;
S4.4:获得边缘检测图像的所有候选块后,根据每个候选块顶点坐标,计算可覆盖所有候选块的矩形区域顶点坐标,该矩形区域就是候选区域。
作为本发明进一步地方案,所述步骤S5的具体步骤如下:
S5.1:对于边缘检测图像的候选区域,使用结构元素进行腐蚀处理,获得初步的二值化腐蚀图像;
S5.2:对于S5.1的二值化腐蚀图像,进行进一步的腐蚀处理,去除图像中的噪点,获得边缘检测图像候选区域的二值化腐蚀图像。
作为本发明进一步地方案,所述步骤S6的具体过程如下:
S6.1:对于S5获得的二值化腐蚀图像,进行水平方向Z形扫描,寻找二维码图像区域边缘点,通过霍夫变换进行边缘点统计,实现水平方向边缘直线检测:
S6.2:对于S5获得的二值化腐蚀图像,进行垂直方向N形扫描,寻找二维码图像区域边缘点,通过霍夫变换进行边缘点统计,实现垂直方向边缘直线检测:
S6.3:综合水平和垂直扫描的边缘直线检测结果,获得图像中的所有边缘分割线,构成边缘分割线数组,数组中记录每条边缘分割线在极坐标系下的极径与极角。
作为本发明进一步地方案,所述步骤S7的具体过程如下:
S7.1:对于S6的边缘分割线数组,按照极角值从小到大顺序排序,极角值相同的按照极径值从小到大顺序排序,极角值相同意味着具有平行线特征;
S7.2:遍历经过排序的边缘分割线数组,记录具有垂直或近似垂直关系的边缘分割线,构成边缘分割线数组的垂直特征子集,具体方法是:
对于边缘分割线数组中的元素a和b,设其极角值分别为α和β,如果满足下式,则认为α和β彼此垂直或近似垂直,判定对应的边缘分割线a和b符合垂直特征:
|β-(α+30°)|<e
其中e是容许的角度误差;
S7.3:对于S7.2的符合垂直特征的边缘分割线数组子集中的每个数组元素,计算所包含的两个角度的边缘分割线数之和,寻找出具有最多线数的数组元素;
S7.4:对于S7.3的数组元素,对于所包含的两个角度,分别进行极径值间距特征进行提取,具体方法是:
设数组元素的两个极角值分别为α和β;
S7.4.1对于所有极角值等于α的边缘分割线数组,从最小极径值开始,计算后面的数组元素的极径值与其差值,如果满足下式的二维码图形尺寸要求,则认为这两个边缘分割线符合间距特征:
POLAR_RADIUS_MIN≤ploar_radius_diff≤POLAR_RADIUS_MAX
其中,
polar_radius_diff是两个数组元素极径值的差值;
POLAR_RADIUS_MIN是二维码图形的最小宽度阈值;
POLAR_RADIUS_MAX是二维码图像的最大宽度阈值;
记录下符合间距特征的边缘分割线;
从极径值较大的数组元素,继续以上的遍历过程,寻找出所有符合间距特征的数组元组,组成对于极角值等于α的具备间距特征的边缘分割线数组;
S7.4.2按照与S7.4.1类似的过程处理,获得对于极角值等于β的具备间距特征的边缘分割线数组;
S7.5:对于S7.4获得的具有满足平行/垂直/间距图形特征的两个角度的边缘分割线数组,根据极径值间距特征在数组两边添加辅助分割线,获得二维码边缘分割线数组;
S7.6:对于S7.5的二维码边缘分割线数组,计算交点坐标,具体的方法是:
根据极坐标系与直角坐标系转换公式,对于已知两条极径和极角的直线(ρ1,θ1)和(ρ2,θ2),与这两条直线的相交点的在直角坐标系下的坐标(x,y),具备以下关系式:
可推导出,
由于计算交点的两条直线需要满足垂直特征,即垂直或近似垂直关系,即:
为了避免三角函数运算时出现作为除数的cos(θ1)取值为0,可对θ1以45°角为界分成两种情况来进行计算,即0°≤θ1≤45°或135°≤θ1<180°;
对于具有平行/垂直/间距的图形特征的分割线数组,包含有两个具有垂直特征的角度,通过取每个角度的相邻两条分割线,对两个角度的四条分割线的交点计算,就可以计算出所需的含有四个交点的坐标组;
遍历所有的相邻分割线,就可以计算出每个目标区域的边缘分割线交点坐标组;
S7.7:对于S7.6获得的四个交点坐标,计算可覆盖其所构成的区域的矩形区域边界尺寸,如果该矩形区域的宽度和高度大于二维码图形的尺寸阈值要求,则判定该坐标组有效,记录矩形区域坐标组;
S7.8:对于S7.7获得的矩形区域,统计二值化腐蚀图像在该区域的黑点(取值为0的点)数量,如果统计值大于二维码图形所需的最小阈值,则判定该矩形区域的顶点坐标组为可用于截取二维码子图的有效坐标组;
S7.9:对于S7.8获得的效坐标组,根据抽取比例EXTRACT_SCALE计算出原图对应的坐标,用于截取输入原图像的二维码图像子图,以供解码使用;
与现有技术相比,本发明技术方案的有益效果是:
本发明设计采用了一种多个二维码以矩阵式排列的标签样式,通过采用抽取算法,可以在保留标签样式的二维码图形轮廓特征基础上,解决了对于高清图像扫描的响应特性较差的问题,标签样式使得图像中的目标图形必须具备明确的平行/垂直/间隔的图形特征,可以充分发挥霍夫变换速度快的优点,通过图形边缘直线特征扫描和提取,可以快速地定位图像中的二维码图形位置,最终提取出二维码,标签样式可以包含矩阵排列位置信息和大容量的标签信息,矩阵排列信息可以用于进行亚毫米级的精确定位,标签信息可用于系统性编码需求,该算法实现速度快,定位精度高,可以满足实时检测的要求,准确性高,识别速度快,信息容量大,抗污损能力强,可以很好的部署与生产环境中使用。
附图说明
图1为本发明方法设计的一种3x3矩阵式排列的二维码标签样式。
图2为本发明方法流程图。
图3为本发明方法的输入灰度原图抽取图像。
图4为本发明方法的采用拉普拉斯算子的边缘检测图像。
图5为本发明方法的边缘检测图像的二值化腐蚀图像。
图6为本发明方法的基于霍夫变换的直线检测图像。
图7为本发明方法具有平行/垂直/间距图形特征的分割线提取图像。
图8为本发明方法的带辅助线的二维码子图分割线图像。
图9为截取的二维码子图图像。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实例对本发明的技术方案做进一步的说明。
实施例1
一种快速运动过程中QR码实时提取方法,包含了以下几个细分步骤:
步骤1:设计了一种多个二维码以矩阵式排列的标签样式:
如图1所示,设计的一种3×3矩阵式排列的QR码标签样式,具有以下的特性:
(1)矩阵式的排列使得目标图形具有明显的平行/垂直/间隔等直线分割特征;
(2)每个QR码中包含有其所处矩阵排列的信息,可进行亚毫米级精确定位。
(3)每个QR码维码都包含有相同标签信息,只要成功解码其中任意一个QR码,即可获得完整的标签信息,局部区域的污损不会影响标签信息的提取,抗污损能力远高于单独的QR码;
步骤2:生成抽取图像:
采用抽取加滤波算法,对输入的灰度原图进行处理,生成抽取图像,包括两个步骤:
(1)对于输入算法的灰度原图,根据抽取比例(EXTRACT_SCALE),按照每隔EXTRACT_SCALE行/列抽取像素点灰度值的方式进行抽取;
当取值EXTRACT_SCALE=5时,对于640×480的图像,可以抽取成128×96的抽取图像;
(2)对于抽取到的原图像素点的灰度值f(x,y),进行阈值滤波处理,生成目标像素点g(i,j),表示为:
其中,GRAYVALUE_MIN表示图像灰度值的最小阈值,可取值为15;
GRAYVALUE_MAX表示图像灰度值的最大阈值,可取值为105;
x=i×EXTRACT_SCALE;y=j×EXTRACT_SCALE;
EXTRACT_SCALE表示抽取比例;
抽取图像在保留二维码图形特征基础上,减小了图像尺寸,一方面可以减少图像扫描的运算量;另一方面图像尺寸缩小了(EXTRACT_SCALE)2倍,方便将图像导入高速缓冲存储器进行处理;提高实时响应运算速度。
步骤3:提取边缘图像:
常用图像边缘检测算子有一阶微分算子(Sobel、Roberts、Prewitt)、二阶微分算子(Laplacian、Log/Marr等)以及非微分边缘检测算子(Canny),本发明采用以Laplacian(拉普拉斯算子)为例,对图像进行边缘检测,包括三个步骤:
(1)对于抽取图像的每个像素f(x,y),使用边缘检测算法提供的算子模板,进行的卷积核掩模运算:
Laplacian(拉普拉斯算子)的算子模板为:
对于抽取图像的每个像素f(x,y)用卷积核进行掩模运算,用差分近似微分,获得关于X轴方向和Y轴方向的二阶差分之和:
▽f(x,y)=▽f(x)+▽f(y)
=(f(x+1,y)-f(x,y))-(f(x,y)-f(x-1,y))+
(f(x,y+1)-f(x,y))-(f(x,y)-f(x,y-1))
=f(x+1,y)+f(x,y+1)+f(x-1,y)+f(x,y-1)-4f(x,y)
(2)对于掩模运算结果,符号发生变化的点,即过零点,确定为边缘点:
其中,g(x,y)是与抽取图像像素点f(x,y)对应的边缘图像的像素点;
EDGE__THR是边缘检测的阈值滤波器,低于该阈值的,认为该像素于周围图像灰度变化不大,不是过零点;高于该阈值的,则认为该点是过零点,对应的像素点是边缘点;
这里可取值EDGE__THR=15;
(3)扫描抽取图像全图,获得全部边缘点,构成二值化的边缘检测图像;
拉普拉斯算子属于二阶微分算子,它关心的是图像灰度的突变而不强调灰度缓慢的变化的区域,对于图像的边缘的定位能力强;并且拉普拉斯算子是各向同性的,即具有旋转不变性,无论二维码标签图像怎么旋转,得到的响应都是一样的。
步骤4:确定候选区域
为了进一步缩小图像检测范围,可以对图像中可能存在二维码图形区域进行粗略的目标识别,确定候选区域,包括五个步骤:
(1)对于边缘检测图像,进行分块处理:
将边缘检测图像划分成m×n个均匀等分的方形块区域;
每块方形区域的边长为BLOCK_BASE,这里取值为8;
对于128×96的抽取图像,可以分成16×12个方形块区域,每个方形块尺寸8×8;
(2)统计每个方形块区域中的边缘点数;
(3)如果一个方形块区域中的边缘点数大于候选块阈值,则认为该块为候选块,记录该候选块的顶点坐标;
(4)获得边缘检测图像的所有候选块后,根据每个候选块的顶点坐标,计算可覆盖所有候选块的矩形区域顶点坐标,该矩形区域就是候选区域;
为了方便算法的描述,将候选区域的顶点坐标定义为:
(top,bottom,left,right)
其中,top,bottom,left,right是候选区域的上、下、左、右四条边界值:
候选区域的尺寸应满足下式,以确保候选区域可以容纳下至少一个完整的二维码:
其中,CA_SIDELEN_MIN是候选区域边长阈值,这里取值为12。
步骤5:腐蚀图像:
为了方便检测出图像的边缘直线特征,对边缘图像进行腐蚀处理,包含两个步骤:
(1)对于边缘检测图像的候选区域,进行结构元素腐蚀处理,获得初步的二值化腐蚀图像:
形态学上的腐蚀处理,主要方法是以结构元素为窗口,扫描图像所有像素点f(x,y),用结构元素与其所覆盖的二值化图形做“与”操作,调查对应窗口中的像素集合S,若S中至少有一个0,则腐蚀图像对应像素点g(x,y)值取值为0;
结构元素有矩形、十字型、椭圆型等,这里采用3×3窗口的十字型结构元素,其特点时适用于边缘不规则,有较多尖锐突起的图形;
其中,g(x,y)是与边缘图像像素点f(x,y)对应的腐蚀图像的像素点;
(2)对于二值化腐蚀图像,进行进一步的图像腐蚀操作,去除图像中的噪点:
这里采用八邻域降噪算法:当像素点的像素值为255时,判断像素点周围的八个像素点,如果这八个点中的像素值为0的个数大于某个阈值,则判断这个点为噪点;
进一步腐蚀后的图像像素点(x,y)的像素值g(x,y),表示为:
其中,八邻域降噪法的阈值取为5;
(3)获得边缘检测图形候选区域的二值化腐蚀图像。
步骤6:边缘直线检测:
在计算机视觉领域,经常会用到直线检测算法,比较经典的直线检测算法有:LSD、FLD、Edlines、LSWMS、CannyLines、MCMLSD、LSM、Hough_line等等;
本发明的目标图形是多二维码矩阵式标签样式,二值化后的腐蚀图像的图形结构特征(平行/垂直/间距)比较简单,适于采用基于霍夫变换的边缘直线检测算法
霍夫变换直线检测可以直接应用于二值化图像,具有速度快,实时性能强的特点;
对于霍夫变换原理与在算法中使用的说明:
霍夫变换直线检测就是把在图像空间中的直线检测问题转换到了参数空间中对点的检测问题,通过在参数空间里寻找峰值来完成直线检测任务;
一般采用极坐标方式作为参数空间,霍夫变换就转变成从图像坐标系到极坐标系参数空间的转换问题;
基本的转换公式为:ρ=xcosθ+sinθ;
其中,(x,y).表示图像空间的像素位置坐标,(ρ,θ)表示极坐标参数空间的点坐标;
经过霍夫过变换,图像空间共线的点被映射到极坐标参数空间上的同一个点,通过对变换到极坐标参数空间上的点的次数统计,判断是否有足够的点共线,从而实现直线检测;
具体应用过程中,对图像中的边缘点进行霍夫变换,判断它们的共线性,即在极坐标参数空间的累计次数,实现对腐蚀图像中的图像边缘点的直线检测;
边缘点就是图像中的与相邻像素发生了“黑→白”或“白→黑”的变化的像素点,这样的像素点是图像中的二维码目标子图的疑似边缘点,简称为边缘点;
当对极坐标系参数空间的某点累计统计次数高于边缘直线的统计阈值时,则可以认为由该点极径和极角参数所确定的直线是一条边缘分割线;
本发明对于图像的扫描方式采用了水平方向的Z形扫描和垂直方向的N形扫描,对扫描到的由“黑→白”和“白→黑”的边缘点分别进行霍夫变换,相当于分别统计二维码图像的上、下、左、右边缘,从而降低了边缘混淆统计造成的统计误差。
通过图像的水平方向和垂直方向的分别扫描,对于随机旋转角度条件下的输入图像,可以保障边缘统计数据的完整。
本发明采用了二维数组的方式记录霍夫变换的统计结果,数组初始值均设置为零;
用ρ表示二维数组的行,ρ的最大取值由图像的对角线像素数决定,标记为rho_max,对于128×96的抽取图像,其对角线像素数160,则ρ=0,1,2…,160,rho_max=161;
用θ表示列,0°≤θ<180°,在满足精度的基础上,采用了以3°为一个单位刻度的离散化θ.,则θ=0,1,…,59.;
本发明的基于霍夫变换的边缘直线检测算法,包括五个步骤:
(1)霍夫变换算法预处理:
(1.1)创建霍夫变换用到的三角函数值查询表sin_x和cos_x。角度取值范围(0°~180°),以每三度为一个单位刻度,表示为:
sin_x[k]={sin(3×k)},cos_x={cos(3×k)},其中,k=0,1,…,59
(1.2)创建四个霍夫变换的结果统计二维数组C1、C2、C3、C4,分别用于统计水平扫描的“黑→白”与“白→黑”边缘点和垂直扫描的“黑→白”与“白→黑”边缘点;
(2)对二值化的腐蚀图像的候选区域,进行水平方向扫描,对于边缘点进行霍夫变换,统计共线的边缘点,实现水平方向的边缘直线检测:
对于扫描到的像素点f(x,y),比较f(x,y)与f(x+1,y)的像素值;
如果f(x,y)=0且f(x+1,y)=255,即水平发生“黑→白”的变化,则计算f(x,y)在取值(0°~180°)范围内每个刻度角度的极径值,表示为:
ρ1=x×cos_x(3×k1)+y×sin_x(3×k1),其中,k1=0,1,…,59;
如果ρ1在有效值范围内,则统计矩阵C1对应的数组元素加一。表示为:
C1[ρ1][k1]=C1[ρ1][k1]+1,0≤ρ1<rho_max;
遍历统计数组C1中每个元素,找出其中最大的统计值,计算统计数组C1的统计阈值,作为判定是否为边缘直线的统计阈值,表示为:
rho_threshold_C1=maxrho_C1/2;
其中,maxrho_C1表示C1中的最大的统计值;
rho_threshold_C1表示统计阈值;
遍历统计数组C1中每个元素,寻找满足阈值条件的数组元素。用二维数组linshi记录该数据元素的ρ、θ。表示为:
其中,jishu是检测到的边缘直线的计数器,初值为零;
同样的方法,当f(x,y)=255且f(x+1,y)=0,即水平方向发生“白→黑”的变化时,霍夫变换的统计结果记录到数组C2中,检测到的边缘直线添加到数组linshi的记录中;
(3)对二值化的腐蚀图像的候选区域,进行垂直方向扫描,对于边缘点进行霍夫变换,统计共线的边缘点,实现垂直方向边缘直线检测:
具体过程与水平扫描过程类似:
当f(x,y)=0且f(x,y+1)=255,即垂直方向发生“黑→白”的变化时,霍夫变换的统计结果记录到数组C3中,检测到的边缘直线也添加到数组linshi的记录中;
当f(x,y)=255且f(x,y+1)=0,即垂直方向发生“白→黑”的变化时,霍夫变换的统计结果记录到数组C4中,检测到的边缘直线也添加到数组linshi的记录中;
步骤7:子图分割线检测与子图提取:
对于步骤6得到的边缘直线检测的记录数组,进行筛选,对于满足标签样式的平行/垂直/间距图形特征的边缘直线,认为是二维码子图像的边缘分割线;
由于统计特性的原因,这些边缘分割线可能存在重复统计的结果,需要进一步的筛选,找出边缘分割线最大排重子集,即包含有最多线数的同时具有平行/垂直/间距特征的分割线子集;
本发明在分割线子集提取算法中,采用了直接添加辅助分割线的方法,以避免直线检测阈值或图像扫描范围的限制导致对于整个图像边缘区域检测的遗漏;
获得二维码子图像边缘分割线子集后,计算交点,确定二维码子图像区域坐标,提取二维码子图以供解码使用;
具体的,本发明的子图分割线检测与子图提取,包括九个步骤:
(1)排序:
对于子图边缘直线检测记录数组linshi,按照极角值分量θ从小到大的顺序进行排序,极角值相同的按照极径值分量ρ从小到大排序:
排序结果,对于数组中的两个元素,需满足以下关系之一:
具有相同极角值的分割线意味着具有平行线特征;
从而得到新的有序的子图边缘分割线记录数组linshi;
(2)垂直特征提取:
遍历经过排序子图边缘分割线记录数组linshi,记录具有垂直或近似垂直关系的疑似分割线,构成分割线组的垂直特征子集,具体方法是:
对于数组linshi中的元素a和b,设其极角值分量分别为α和β,如果满足下式,则认为α和β彼此垂直或近似垂直,判定a和b符合二维码子图边缘直线的垂直特征:
|β-(α+30°)|<e
其中e是容许的角度误差,这里可以取e=2°;
数组linshi中可能存在一条或多条同一角度的分割线,用一维数组linshifuzhu来记录数组linshi中具有该角度的起始数组元素的位标;
这样,就可以获得具有垂直特征的数组linshi一个子集;
具有垂直特征的数组linshi的子集可能会有多个,用二维数组lines_splitter记录符合垂直特征的每个子集;
用s_num记录这些子集的数量,初值设为零;
用jishufuzhu记录数组linshi中具有不同极角值的的角度数,初值设为零;
由此获得的二维数组lines_splitter,表示为:
其中,αi和βj是满足垂直特征的两个极角值;
i和j是位标记录数组linshifuzhu的位标,由于数组linshifuzhu记录的是数组linshi中的具有相同极角值的元素的起始位标,因此,满足以下关系式:
linshifuzhu[i]是数组linshi中具有极角值αi的数组元素的起始位标;
linshifuzhu[i+1]-linshifuzhu[i]是两个相邻的极角值的起始位标之差,表示具有极角值αi的平行分割线数量;
linshifuzhu[j]是数组linshi中具有极角值βj的数组元素的起始位标;
linshifuzhu[j+1]-linshifuzhu[j]表示具有极角值βj的平行分割线数量;
(3)最大子集提取:
遍历数组lines_splitter,计算平行/垂直分割线之和,寻找出具有最多线数的数组元素,用s_index记录下该数组元素的位标,表示为:
其中,0≤i<s_num,0≤j<s_num,且i≠j;
(4)间距特征提取:
在极坐标系下,两个平行线的间距就是两者极径的差值,标记为polar_radius_diff;
二维码子图的间距特征需要满足下式:
POLAR_RADIUS_MIN≤polar_radius_diff≤POLAR_RADIUS_MAX;
其中,POLAR_RADIUS_MIN是二维码子图区域的最小边长阈值,可取值为15;
POLAR_RADIUS_MAX是二维码子图区域的最大边长阈值,可取值为50;
由于抽取的原因,实际长度阈值是(边长阈值×抽取比例值);
对于具有最大子集的数组元素lines_splitter[s_index],记录两个极角值分量,分别标记为αs_index和βs_index,由lines_splitter数组的分量定义可知:
αs_index=lines_splitter[s_index][0]
βs_index=lines_splitter[s_index][3]
由于排序的关系可知,αs_index<βs_index;
由垂直特征可知,|βs_index-(αs_index+30°)|<e,其中e=2°;
对具有这两个极角值的分割线分别进行间距特征提取,分成三个步骤:
(4.1)对具有αs_index极角值的分割线进行间距特征提取:
创建一个极径值数组h_ploar_radius,用于记录提取出来的符合间距特征的分割线的极径值;
依据数组位标s_index,从数组lines_splitter中取得极角值αs_index的起始位标分量,标记为h_index:
h_index=lines_splitter[s_index][1];
把数组linshi.中极角值为αs_index的第一个极径值,记录到数组h_ploar_radius的第二个元素位置,表示为:
h_ploar_radius[1]=linshi[line_h_index][0];
第一个数组元素位置h_ploar_radius[0]留作添加辅助分割线;
创建h_count,记录数组h_ploar_radius的数组元素个数,初值为2;
创建h_dist_max,记录极角值为αs_index的有效分割线最大间距,初值为零;
依据数组位标s_index,从数组lines_splitter中取得极角值αs_index的分割线数量,标记为h_sum:
h_sum=lines_splitter[s_index][2];
如果h_sum>1,表明具有极角值αs_index的分割线不止一条,则需要根据间距特征进行进一步的分割线提取,包括八个步骤:
(4.1.1)创建数组linshi的位标基址偏移量k和位标移动偏移量i,初值均为零;
(4.1.2)对于具有极角值αs_index的数组元素起始位标h_index与基址偏移量k,计算数组linshi中具有极角值αs_index的位标基址偏移量,标记为k_base:
k_base=h_index+k,0≤k<line_h_sum;
(4.1.3)对于具有极角值αs_index的数组元素起始位标h_index与移动偏移量i,计算数组linshi中具有极值角αs_index的位标移动偏移量,标记为k_move:
k_move=h_index+i,k<i<h_sum
(4.1.4)计算两条线的间距,即两条线的极径值差值。表示为:
polar_radius_diff=|linshi[k_move][0]-linshi[k_base][0]|
(4.1.5)如果间距满足二维码子图的间距特征要求,则认为位标移动偏移量i所对应的分割线是满足了间距特征的有效分割线,将其记录到数组h_polar_radius中:
h_polar_radius[line_h_count]=linshi[k_move][0]
h_count=line_h_count+1
(4.1.6)记录间距的最大值,表示为:
h_dist_max=max(h_dist_max,polar_radius_diff)
(4.1.7)修改位标基址偏移量k和位标移动偏移量i,表示为:
k=i;i=i+1
(4.1.8)当满足下式时,重复执行步骤(4.1.2)~(4.1.7):
i<h_sum
遍历所有具有极角值αs_index的平行分割线,找出符合单个二维码图像间距特征的分割线,每条线的极角值为αs_index,极径值记录到了数组h_polar_radius中;
(4.2)对具有βs_index极角值的分割线进行间距特征提取:
算法过程与“步骤(4.1)对具有αs_index极角值的分割线进行间距特征提取”相类似,涉及到的不同的变量定义如下:
创建一个极径值数组v_ploar_radius,用于记录符合间距特征的分割线的极径值;
依据数组位标s_index,从数组lines_splitter中取得极角值βs_index的起始位标分量,标记为v_index:
v_index=lines_splitter[s_index][4];
把数组linshi.中极角值为βs_index的第一个极径值,记录到数组v_ploar_radius的第二个元素位置,表示为:
v_ploar_radius[1]=linshi[v_index][0];
第一个数组元素位置v_ploar_radius[0]留作添加辅助分割线;
创建v_count,记录数组v_polar_radius的数组元素个数,初值为2;
创建v_dist_max,记录极角值为βs_index的有效分割线最大间距,初值为零;
依据数组位标s_index,从数组lines_splitter中取得极角值βs_index的分割线数量,标记为v_sum:
v_sum=lines_splitter[s_index][5];
如果v_sum>1,表明具有极角值βs_index的分割线不止一条,则需要根据间距特征进行进一步的分割线提取:
进一步的提取过程,与(4.1.1~4.1.8)过程类似,不再累述;
遍历所有具有极角值βs_index的平行分割线,找出符合二维码图像间距特征的分割线,将每条线的极径值记录到数组v_polar_radius中;
(4.3)辅助分割线的添加:
取得(4.1)和(4.2)提取过程中的有效分割线间距最大值,标记为dist_max:
其中,DIST_MAX是缺省的间距最大值,这里取值为50;
在极径值数组中添加辅助线记录:
对于数组h_ploar_radius,添加两条辅助分割线,表示为:
h_polar_radius[0]=h_polar_radius[1]-dist_max
h_polar_radius[h_count]=h_polar_radius[h_count-1]+dist_max
h_count=h_count+1
对于数组v_ploar_radius,添加两条辅助分割线,表示为:
v_polar_radius[0]=v_polar_radius[1]-dist_max
v_polar_radius[line_v_count]=v_polar_radius[v_count-1]+dist_max
v_count=v_count+1
通过以上步骤,就得到了的符合平行/垂直/间距特征的图像分割线数组;
(5)确定二维码区域:
根据步骤(4)获得的分割线数组h_polar_radius和v_polar_radius以及极角αs_index和βs_index,计算h_polar_radius中所有相邻两条分割线与v_polar_radius中所有相邻两条分割线的四个交点坐标,选则这四个交点坐标的上、下、左、右边界值,作为用于截取该图像区域二维码子图的矩形区域顶点坐标值;
交点计算公式推导如下:
两条已知极径和极角的直线(ρ1,θ1)和(ρ2,θ2),以及这两条直线的相交点的直角坐标系下的坐标(x,y),根据极坐标系与直角坐标系转换公式,具备以下关系式:
因此可推导出,
其中,θ1和θ2需要满足图像边缘分割线的垂直特征,即:
为了避免三角函数运算时出现作为除数的cos(θ1)取值为0,在实际计算交点坐标时,对于的θ1的选择,分成两种情况来进行计算,即:
0°≤θ1≤45°或135°≤θ1<180°
遍历h_polar_radius和v_polar_radius,计算相交点,包括九个步骤:
(5.1)参与运算的常用量的预处理:
已知分割线数组h_polar_radius和h_polar_radius分别对应的极角值为αs_index和βs_index,计算交点坐标公式中用到的三角函数值:
cos_h=cos(αsindex),cos_v=cos(βs_index)
tan_h=tan(αs_index),tan_v=tan(βs_index)
创建h_polar_radius数组的位标偏移量i,初值为零;
创建v_polar_radius数组的位标偏移量j,初值为零;
(5.2)根据交点坐标公式,计算i,i+1,j,j+1这四个数组位标对应的四条直线的交点,记录到二维数组node中,表示为:
当0°≤αs_index≤45°时,
当135°≤αs_index<180°时,
(5.3)判断坐标组有效性:
对交点坐标数组node确定的区域的边界尺寸进行有效性检查,超出候选区域范围的,用候选区域边界值替代,表示为:
其中,矩形区域(left,right,top,bottom)就是候选区域的四条边界值;
标记由node坐标组所构成的矩形区域的边界,表示为:
min()是取最小值运算;max()是取最大值运算;
由边界(node_left,node_top,node_right,node_bottom)所构成的矩形区域,应足以容纳一个完整的二维码图像,需要满足下式:
其中,MIN_SIDELEN二维码图像子图的最小边长阈值。这里取MIN_SIDELEN=15;
(5.4)判断区域图像有效性:
统计二值化腐蚀图像在(5.3)所获得的矩形区域内的黑点(像素值等于0的点)的数量,标记为sum_dark;
二维码图像在标准设计上考虑了图像黑白分布的均匀性,比如QR码提供了八种图像掩模方案,在生成二维码图像时,通过选择一种掩模方案,对原始二维码图形进行掩模运算,使得最终生成的而二维码图像具有最佳的黑白图案分布特性;
可取矩形区域的黑点像素数的一半为阈值,作为判断是否存在二维码图像的依据,阈值标记为sum_dark_thr:
如果满足下式,则认为该区域内可能存在二维码图像:
sum_dark>sum_dark_thr
如此,获得有效的二维码图像子图分割坐标组;
(5.5)记录有效的node坐标组到子图坐标组koutu中,表示为:
koutu[koutujishu][0]=node_left×EXTRACT_SCALE
koutu[koutujishu][1]=node_right×EXTRACT_SCALE
koutu[koutujishu][2]=node_top×EXTRACT_SCALE
koutu[koutujishu][3]=node_bottom×EXTRACT_SCALE
koutujishu=koutujishu+1
其中,EXTRACT_SCALE是抽取比例,这里取值为5;
koutujishu是有效坐标组数量的计数,初值为零;
(5.6)v_polar_radius数组的位标偏移量j加一,即j=j+1;
(5.7)当满足下式条件时,重复执行步骤(5.2)~(5.6):
j<v_sum-1,其中,v_sum是v_polar_radius数组的元素数量;
(5.8)h_polar_radius数组的位标偏移量i加一,即i=i+1;
(5.9)当满足下式条件时,重复执行步骤(5.2)~(5.8):
i<h_sum-1,其中,h_sum是h_polar_radius数组的元素数量;
这样,就相当于遍历了数组h_polar_radius和v_polar_radius所有数组元素,计算相邻数组元素的分割线交点坐标,获得所有有效的二维码图像子图分割坐标组,并记录到了数组koutu中;
(6)提取二维码:
根据数组koutu提供的顶点坐标,对输入原图进行子图的截取,用于解码。
Claims (7)
1.一种快速运动过程中QR码实时提取方法,其特征在于,包括以下步骤:
S1:设计了一种多个二维码以矩阵式排列的标签样式;
S2:对于输入灰度原图进行抽取处理,并进行双阈值滤波,生成抽取图像;
S3:采用边缘检测算法对抽取图像进行处理,生成二值化的边缘图像;
S4:对于S3中的边缘图像,进行边缘点数统计,确定候选区域;
S5:对候选区域内的边缘图像进行腐蚀操作,生成二值化的腐蚀图像;
S6:对于S5中的腐蚀图像,采用基于霍夫变换的直线检测算法,检测边缘分割线;
S7:对于S6的边缘分割线,根据标签样式的图形特征进行聚类处理,提取最大有效分割线子集,计算交点,确定目标区域,计算二维码子图的顶点坐标;
S8:提取二维码子图,用于解码处理;
所述步骤S7的具体过程如下:
S7.1:对于S6的边缘分割线数组,按照极角值从小到大顺序排序,极角值相同的按照极径值从小到大顺序排序,极角值相同意味着具有平行线特征;
S7.2:遍历经过排序的边缘分割线数组,记录具有垂直或近似垂直关系的边缘分割线,构成边缘分割线数组的垂直特征子集,具体方法是:
对于边缘分割线数组中的元素a和b,设其极角值分别为α和β,如果满足下式,则认为α和β彼此垂直或近似垂直,判定对应的边缘分割线a和b符合垂直特征:
|β-(α+30°)|<e
其中e是容许的角度误差;
S7.3:对于S7.2的符合垂直特征的边缘分割线数组子集中的每个数组元素,计算所包含的两个角度的边缘分割线数之和,寻找出具有最多线数的数组元素;
S7.4:对于S7.3的数组元素,对于所包含的两个角度,分别进行极径值间距特征进行提取,具体方法是:
设数组元素的两个极角值分别为α和β;
S7.4.1对于所有极角值等于α的边缘分割线数组,从最小极径值开始,计算后面的数组元素的极径值与其差值,如果满足下式的二维码图形尺寸要求,则认为这两个边缘分割线符合间距特征:
POLAR_RADIUS_MIN≤polar_radius_diff≤POLAR_RADIUS_MAX
其中,
polar_radius_diff是两个数组元素极径值的差值;
POLAR_RADIUS_MIN是二维码图形的最小宽度阈值;
POLAR_RADIUS_MAX是二维码图像的最大宽度阈值;
记录下符合间距特征的边缘分割线;
从极径值较大的数组元素,继续以上的遍历过程,寻找出所有符合间距特征的数组元组,组成对于极角值等于α的具备间距特征的边缘分割线数组;
S7.4.2按照与S7.4.1类似的过程处理,获得对于极角值等于β的具备间距特征的边缘分割线数组;
S7.5:对于S7.4获得的具有满足平行/垂直/间距图形特征的两个角度的边缘分割线数组,根据极径值间距特征在数组两边添加辅助分割线,获得二维码边缘分割线数组;
S7.6:对于S7.5的二维码边缘分割线数组,计算交点坐标,具体的方法是:
根据极坐标系与直角坐标系转换公式,对于已知两条极径和极角的直线(ρ1,θ1)和(ρ2,θ2),与这两条直线的相交点的在直角坐标系下的坐标(x,y),具备以下关系式:
可推导出,
由于计算交点的两条直线需要满足垂直特征,即垂直或近似垂直关系,即:
为了避免三角函数运算时出现作为除数的cos(θ1)取值为0,可对θ1以45°角为界分成两种情况来进行计算,即0°≤θ1≤45°或135°≤θ1<180°;
对于具有平行/垂直/间距的图形特征的分割线数组,包含有两个具有垂直特征的角度,通过取每个角度的相邻两条分割线,对两个角度的四条分割线的交点计算,就可以计算出所需的含有四个交点的坐标组;
遍历所有的相邻分割线,就可以计算出每个目标区域的边缘分割线交点坐标组;
S7.7:对于S7.6获得的四个交点坐标,计算可覆盖其所构成的区域的矩形区域边界尺寸,如果该矩形区域的宽度和高度大于二维码图形的尺寸阈值要求,则判定该坐标组有效,记录矩形区域坐标组;
S7.8:对于S7.7获得的矩形区域,统计二值化腐蚀图像在该区域的黑点数量,如果统计值大于二维码图形所需的最小阈值,则判定该矩形区域的顶点坐标组为可用于截取二维码子图的有效坐标组;
S7.9:对于S7.8获得的效坐标组,根据抽取比例IMG_EXTRACT_SCALE计算出原图对应的坐标,用于截取输入原图像的二维码图像子图,以供解码使用。
2.根据权利要求1所述的一种快速运动过程中QR码实时提取方法,其特征在于,所述步骤S1的具体过程如下:
S1.1:设计一种矩阵式的二维码标签样式;
S1.2:标签样式中的二维码含有所在矩阵位置信息,可进行亚毫米级精确定位;
S1.3:标签样式中的二维码含有相同标签信息,局部污损不会影响标签信息识别。
4.根据权利要求3所述的一种快速运动过程中QR码实时提取方法,其特征在于,所述步骤S3的具体过程如下:
S3.1:对抽取图像以Z形扫描方式,使用边缘检测算子模板进行卷积核掩模运算;
S3.2:对于S3.1的卷积核掩模运算结果,进行过零点判断,确定边缘点;
S3.3:所有边缘点取值为0,非边缘点取值为255,构成二值化的边缘检测图像。
5.根据权利要求4所述的一种快速运动过程中QR码实时提取方法,其特征在于,所述步骤S4的具体过程如下:
S4.1:对于边缘检测图像,进行分块处理,划分出多个均匀等分的方形块区域;
S4.2:统计每个方形块区域中的边缘点数;
S4.3:对于S4.2的边缘点数,如果大于预置的候选块阈值,则认为该块为候选块,记录下该候选块的顶点坐标;
S4.4:获得边缘检测图像的所有候选块后,根据每个候选块顶点坐标,计算可覆盖所有候选块的矩形区域顶点坐标,该矩形区域就是候选区域。
6.根据权利要求5所述的一种快速运动过程中QR码实时提取方法,其特征在于,所述步骤S5的具体步骤如下:
S5.1:对于边缘检测图像的候选区域,使用结构元素进行腐蚀处理,获得初步的二值化腐蚀图像;
S5.2:对于S5.1的二值化腐蚀图像,进行进一步的腐蚀处理,去除图像中的噪点,获得边缘检测图像候选区域的二值化腐蚀图像。
7.根据权利要求6所述的一种快速运动过程中QR码实时提取方法,其特征在于,所述步骤S6的具体过程如下:
S6.1:对于S5获得的二值化腐蚀图像,进行水平方向Z形扫描,寻找二维码图像区域边缘点,通过霍夫变换进行边缘点统计,实现水平方向边缘直线检测;
S6.2:对于S5获得的二值化腐蚀图像,进行垂直方向N形扫描,寻找二维码图像区域边缘点,通过霍夫变换进行边缘点统计,实现垂直方向边缘直线检测;
S6.3:综合水平和垂直扫描的边缘直线检测结果,获得图像中的所有边缘分割线,构成边缘分割线数组,数组中记录每条边缘分割线在极坐标系下的极径与极角。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110558282.7A CN113177959B (zh) | 2021-05-21 | 2021-05-21 | 一种快速运动过程中qr码实时提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110558282.7A CN113177959B (zh) | 2021-05-21 | 2021-05-21 | 一种快速运动过程中qr码实时提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113177959A CN113177959A (zh) | 2021-07-27 |
CN113177959B true CN113177959B (zh) | 2022-05-03 |
Family
ID=76929617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110558282.7A Active CN113177959B (zh) | 2021-05-21 | 2021-05-21 | 一种快速运动过程中qr码实时提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113177959B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601472B (zh) * | 2022-12-15 | 2023-04-07 | 南京航空航天大学 | 一种基于膨胀腐蚀算法的无失真黑边绘制方法 |
CN115936037B (zh) * | 2023-02-22 | 2023-05-30 | 青岛创新奇智科技集团股份有限公司 | 二维码的解码方法及装置 |
CN116341587B (zh) * | 2023-05-25 | 2023-09-26 | 北京紫光青藤微系统有限公司 | 用于条码识别的方法及装置、条码采集设备 |
CN116524004B (zh) * | 2023-07-03 | 2023-09-08 | 中国铁路设计集团有限公司 | 基于HoughLines算法的钢筋尺寸检测方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104143109A (zh) * | 2014-01-28 | 2014-11-12 | 深圳市雁联计算系统有限公司 | 一种二维码的编码和解码方法及其印刷物 |
CN107609451A (zh) * | 2017-09-14 | 2018-01-19 | 斯坦德机器人(深圳)有限公司 | 一种基于二维码的高精度视觉定位方法及系统 |
CN108875735A (zh) * | 2018-05-25 | 2018-11-23 | 昆山湖大机器人技术有限公司 | 钢板生产线点阵喷码字符自动检测方法 |
CN108985305A (zh) * | 2018-06-26 | 2018-12-11 | 武汉科技大学 | 一种激光蚀刻工业雷管编码图像定位及校正方法 |
CN109325381A (zh) * | 2018-08-13 | 2019-02-12 | 佛山市顺德区中山大学研究院 | 一种寻像图形缺失一处的qr码定位和校正算法 |
CN110442719A (zh) * | 2019-08-09 | 2019-11-12 | 北京字节跳动网络技术有限公司 | 一种文本处理方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013001720A1 (ja) * | 2011-06-30 | 2015-02-23 | 三菱電機株式会社 | 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法 |
CN104517091A (zh) * | 2013-09-29 | 2015-04-15 | 北大方正集团有限公司 | 一种qr码探测图形的筛选方法及系统 |
CN105335973B (zh) * | 2015-10-20 | 2018-08-03 | 上海交通大学 | 运用于带钢加工生产线的视觉处理方法 |
CN112560538B (zh) * | 2021-02-26 | 2021-05-11 | 江苏东大集成电路系统工程技术有限公司 | 一种根据图像冗余信息快速定位受损qr码的方法 |
-
2021
- 2021-05-21 CN CN202110558282.7A patent/CN113177959B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104143109A (zh) * | 2014-01-28 | 2014-11-12 | 深圳市雁联计算系统有限公司 | 一种二维码的编码和解码方法及其印刷物 |
CN107609451A (zh) * | 2017-09-14 | 2018-01-19 | 斯坦德机器人(深圳)有限公司 | 一种基于二维码的高精度视觉定位方法及系统 |
CN108875735A (zh) * | 2018-05-25 | 2018-11-23 | 昆山湖大机器人技术有限公司 | 钢板生产线点阵喷码字符自动检测方法 |
CN108985305A (zh) * | 2018-06-26 | 2018-12-11 | 武汉科技大学 | 一种激光蚀刻工业雷管编码图像定位及校正方法 |
CN109325381A (zh) * | 2018-08-13 | 2019-02-12 | 佛山市顺德区中山大学研究院 | 一种寻像图形缺失一处的qr码定位和校正算法 |
CN110442719A (zh) * | 2019-08-09 | 2019-11-12 | 北京字节跳动网络技术有限公司 | 一种文本处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
A Rectification Method for Quick Response Code Image;Euisung Kang等;《The 18th IEEE International Symposium on Consumer Electronics (ISCE 2014)》;20140828;第1-2页 * |
一种多目标QR码图像快速校正方法;丁伟利等;《光学学报》;20171031;第1-9页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113177959A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113177959B (zh) | 一种快速运动过程中qr码实时提取方法 | |
CN108596066B (zh) | 一种基于卷积神经网络的字符识别方法 | |
CN110909732B (zh) | 一种图中数据的自动提取方法 | |
Biswas et al. | Construction of isothetic covers of a digital object: A combinatorial approach | |
CN107633192B (zh) | 一种基于机器视觉的复杂背景下条形码分割与识读方法 | |
US7084968B2 (en) | Method for analyzing defect data and inspection apparatus and review system | |
CN110264445B (zh) | 分块模板匹配结合形态学处理的电池丝印质量检测方法 | |
US10528781B2 (en) | Detection method and system for characteristic patterns of Han Xin codes | |
Chiang et al. | A general approach for extracting road vector data from raster maps | |
CN109948393B (zh) | 一种一维条码的定位方法及装置 | |
CN111832659B (zh) | 一种基于特征点提取算法检测的激光标刻系统及方法 | |
CN111382658B (zh) | 一种基于图像灰度梯度一致性的自然环境下道路交通标志检测方法 | |
Clark et al. | Estimating the Orientation and Recovery of Text Planes in a Single Image. | |
Joseph | Processing of engineering line drawings for automatic input to CAD | |
Jipeng et al. | Skew correction for Chinese character using Hough transform | |
CN112699704B (zh) | 一种条形码的检测方法、装置、设备、存储装置 | |
CN112200789B (zh) | 一种图像识别的方法及装置、电子设备和存储介质 | |
CN112507751A (zh) | 一种qr码的定位方法及其系统 | |
CN110969612A (zh) | 二维码印刷缺陷检测方法 | |
CN116452809A (zh) | 一种基于语义分割的线条物体提取方法 | |
Biswas et al. | Text extraction from scanned land map images | |
CN109740402B (zh) | 基于频谱信息的二维码方向与位置获取方法 | |
CN111191759A (zh) | 一种二维码的生成方法和基于gpu的定位、解码方法 | |
CN114037705B (zh) | 一种基于贝纹线的金属断裂疲劳源检测方法与系统 | |
CN113554591B (zh) | 一种标签定位方法及设备 |
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 |