CN106485183B - 一种二维码定位方法及*** - Google Patents
一种二维码定位方法及*** Download PDFInfo
- Publication number
- CN106485183B CN106485183B CN201610857210.1A CN201610857210A CN106485183B CN 106485183 B CN106485183 B CN 106485183B CN 201610857210 A CN201610857210 A CN 201610857210A CN 106485183 B CN106485183 B CN 106485183B
- Authority
- CN
- China
- Prior art keywords
- quick response
- response code
- region
- outer boundary
- data
- 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
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/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- 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
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
一种二维码定位方法及***,对输入的图像先利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位,最后根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位。本发明可自动对图像中的二维码进行定位,使得在对二维码定位时不需要人工进行干涉即可排除图像中复杂背景的干扰,而且通过预筛选和粗定位,减少了自动定位过程中的数据处理量。
Description
技术领域
本发明图像处理,具体涉及根据图像对二维码进行定位的方法及***。
背景技术
与条形码相比,二维码具有信息容量大、可靠性高、保密性及安全性好等多种优点,因此二维码技术在工业领域获得了飞速发展和广泛应用。二维码技术应用的关键在于二维码识别,即通过一些扫描设备获取条码信息,然后进行解码。目前,二维码识别大多依赖于具体的识别设备,并且需要人工对准待识别二维码,需要人工干预。近年来随着数字图像处理技术的发展,出现了基于相机摄像的二维码识别方式,在获取到二维码的图像后,对二维码的自动识别通常包括:(1)条形码的自动检测定位;(2)条码图像处理;(3)二维码的解码。
二维码的自动检测定位是条码识别的首要步骤,也是一个复杂的过程。由于在二维码拍摄过程中,二维码往往和文本或者其他图案混合在一起,二维码仅仅是拍摄图像的一部分,在定位过程中,必须要过滤掉文本和其他图案,定位出二维码。更有甚者,一次拍摄可能拍摄到多个二维码图像,在后续定位过程中,必须要将此多个二维码从背景中识别出来并逐个进行定位。因此,如何在复杂图像中自动定位并识别二维码是亟待解决的问题。
发明内容
本申请提供一种二维码定位方法及***,能够在复杂图像中自动定位出二维码。
根据第一方面,一种实施例中提供一种二维码定位方法,包括:
输入图像数据;
利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,所述边缘信息是指灰度值具有突变的区域;
对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位;
根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位。
根据第二方面,一种实施例中提供一种二维码定位***,包括:
图形获取单元,用于输入图像数据;
预筛选单元,用于利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,所述边缘信息是指灰度值具有突变的区域;
粗略定位单元,用于对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位;
精确定位单元,用于根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位。
上述实施例中,基于图像数据进行二维码定位,定位过程包括预筛选、粗定位和精确定位,通过将图像的边缘信息和纹理信息相结合,进行预筛选,获取可能的二维码区域,然后结合二维码的定位图形进行粗定位,最后在粗定位的基础上确定出二维码的精确边界,从而获得二维码的精确定位。这种定位方式可自动对图像中的二维码进行定位,使得在对二维码定位时不需要人工进行干涉即可排除图像中复杂背景的干扰,而且通过预筛选和粗定位,减少了自动定位过程中的数据处理量。
附图说明
图1为Data Matrix二维码的示意图;
图2为一种实施例的二维码识别设备的结构示意图;
图3为一种实施例中二维码定位流程图;
图4为预筛选的一种具体实施方式的流程图;
图5为将整个图像数据划分成若干数据块的示意图;
图6为Data Matrix二维码的定位图形的示意图;
图7为粗定位的一种具体实施方式的流程图;
图8为一种具体实施例中获得的虚边矩形区域的示意图;
图9为精确定位的一种具体实施方式的流程图;
图10a为两条实线外边界的扫描区域的示意图;
图10b为两条虚线外边界的扫描区域的示意图;
图11为一种实施例的定位***的结构示意图。
具体实施方式
二维码可通过各种编码方式产生,为方便二维码的定位,每种二维码都有各自的定位特征,本文中称为定位图形,定位图形用于条码符号定位和确定条码结构信息,也可用于解决符号定位和失真问题,定位图形的四周是空白区,用于将条码与背景分离。例如DataMatrix二维码,如图1所示,完整的Data Matrix二维码10呈现为一矩形的二维码图形,具有四条边,两条相互垂直的实线外边界11和两条相互垂直的虚线外边界12,中间是黑白相间的数据单元构成的数据区13。在本发明实施例中,在对图像中的二维码进行定位时,首先将图像的边缘信息和纹理信息相结合,进行预筛选,获取可能的二维码区域,然后结合二维码的定位图形(Pattern Finder)进行粗定位,最后在粗定位的基础上确定出二维码的精确边界,从而获得二维码的精确定位。
下面以Data Matrix二维码为例通过具体实施方式结合附图对本发明作进一步详细说明。
实施例一:
请参考图2,二维码识别设备包括图像采集模块20和图像处理模块40,图像采集模块20可以是工业相机、手机摄像头等,将采集的图像数据通过网口或者USB传送给图像处理模块40,在另外的实施例中,二维码识别设备也可以不包括图像采集模块20,图像数据也可以直接从本地图片载入到图像处理模块40,或通过有线或无线网络从其他服务器下载到图像处理模块40。
图像处理模块40包括图像质量评估***41、预处理***42、定位***43、图像校正及增强***44和解码***45。
图像质量评估***41对输入图像的对比度、光照非线性变化、模糊程度进行打分,分数的取值范围可设为0~1,并将打分结果传递给预处理***42。对比度评价采用区域对比度形式,将图像分割为若干个部分,在每个区域中内计算灰度的最大值与最小值之差,再除以最大值,即
其中f(xi,yi)为区域j中坐标(xi,yi)处的灰度值。获得各个区域的对比度后,对所有像素区域的对比度求平均值,作为整个图像的对比度打分。图像的对比度估计也可以选择基于直方图最暗值(最小反射率)和其最亮值(最大反射率)之间中点的一种极其简单的方法对图像进行打分。
对光照的非线性变化进行打分时,将图像分解为两部分:亮度图像i(x,y)和反射图像r(x,y),根据反射图像对图像的非线性变化进行打分。
图像的模糊程度评价主要对边缘的扩散宽度进行分析,通常图像越模糊,边缘扩散宽度越大,图像越清晰,图像边缘扩散宽度越窄,根据图像边缘的扩散宽度进行打分。
图像质量评估***41的处理结果传递给预处理***42。预处理***根据图像质量评估的得分进行判断,若得分小于设定阈值,则进行直方图均衡化和频率滤波处理,增强图像的对比度,减少光照的非线性变化。预处理后的图像数据将传给定位***43。若得分大于或等于设定阈值,则预处理***42直接将图像数据传给定位***43。
定位***43用于在图像数据中查找二维码区域,当在图像数据中查找出二维码区域后对二维码进行定位,后面将对定位***43进行详细说明。
图像校正及增强***44根据定位***43定位出的二维码进行图像校正及增强,图像校正主要用于消除梯形畸变,进行透视校正,减小因二维码图像透视效果导致的解码误差。图像增强主要用于增强二维码所在图像区域的对比度,为二值化做准备,提高二维码解码区域的对比度,从而提高解码的准确率。
解码***45用于对二维码的数据区进行识别,按照编码规则对二维码进行解码,在一种具体实施例中,解码按照国际标准ISO/IEC 16022进行。
本领域技术人员可以理解,在有的实施例中,图像处理模块40也可以没有图像质量评估***41、预处理***42和图像校正及增强***44中的一个或多个。
本实施例中,定位***43在图像数据中进行二维码定位的方法如图3所示,包括以下步骤:
步骤100,输入图像数据。定位***43得到的图像数据中可能包含二维码图形,也可能不包含二维码图形,也可能包含多个二维码图形。
步骤110,预筛选。本步骤中,利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,其中边缘信息是指像素灰度值具有突变的区域。预筛选的一种具体实施方式如图4所示,包括以下步骤:
步骤111,划分数据块。将整个图像数据划分成M×N个数据块,M和N可以相等,也可以不等,如图5所示,每个数据块中包含c×d个像素,c和d可以相等,也可以不等。下面对每个数据块进行分析。
步骤112,检测各数据块中的边缘信息。本步骤中主要利用二维码的数据区特征进行边缘检测。相比于图像的其他背景,数据区由若干黑白相间的数据单元构成,因此会形成大量的边缘信息。边缘信息可以利用一阶信息或者二阶信息进行检测。若根据一阶信息进行边缘检测,可采用例如Sobel、Canny等算法进行检测,根据阈值进行筛选,从而检测出边缘信息;若根据二阶信息进行边缘检测,则可选择二阶信息等于零的点作为边缘点。本实施例中,为减少计算量,边缘信息检测可采用以下算法:
首先计算每一像素的灰度梯度。对于一二维图像而言,每一像素点可能在X维度产生灰度突变,也可能在Y维度产生灰度突变,通过以下公式计算每一像素的梯度幅值。
式中i(x,y)为图像在像素点(x,y)处的灰度值,gx(x,y),gy(x,y)为灰度梯度在x,y方向的分量。像素点的梯度幅值为:
像素点的边缘角度为:
本领域技术人员应当理解,在另外的实施例中也可以采用其他的算法计算像素点的梯度幅值,例如在预定方向上将相邻两像素点的灰度值相减得到梯度幅值。
计算出各像素点的梯度幅值后,将像素点的梯度幅值和第二设定阈值进行比较,如果梯度幅值大于第二设定阈值,则认为该像素点为一个边缘点,本文中也称为一个边缘信息。
步骤113,根据边缘信息计算各数据块中的边缘参数。边缘参数包括边缘频率和边缘角度差,边缘频率是指数据块中检测到的边缘信息的个数,即数据块中梯度幅值大于第二设定阈值的边缘点的个数,用fi表示第i个数据块的边缘频率。第二设定阈值设置时可以按照下述原则:若对比度较强,则该阈值取值较大,若对比度较差,则该阈值较小。由于二维码的数据区由黑白数据单元按照编码规则混杂构成,因此数据区会形成较多边缘信息。
边缘角度差采用以下方法计算:
统计数据块的边缘角度的直方图,可对直方图进行滤波处理,避免噪声的影响,然后计算直方图中明显波峰之间的角度差,该角度差记为边缘角度差αi。
对于二维码区域,其边缘角度的直方图会有两个明显的波峰,且两个波峰的角度差接近90°。因此,统计的数据块的边缘角度差αi越接近90°,数据块中含有二维码的几率越大。
本领域技术人员应当理解,在另外的实施例中,也可以定义边缘参数包含更多个与边缘信息相关的参数,或定义边缘参数包含边缘频率和边缘角度差中的一个。
步骤114,根据各数据块的边缘参数判断该数据块是否是与二维码相关的数据块,即判断数据块中是否可能含有二维码或二维码的一部分。本实施例中采用以下步骤判断数据块中是否与二维码相关:
将数据块内的像素进行二值化处理,统计数据块内黑白像素的比例,得到第一比例,记为ri;
统计数据块的边缘频率与划分的所有数据块数量的比值,得到计算边缘所占百分比,记为第二比例,即:
统计数据块的边缘角度差与90度的比值,得到第三比例,即:
计算第一比例、第二比例和第三比例的加权和,得到该数据块的相关性得分:
score=w1eratio+w2αratio+w3ri (7)
其中,w1,w2,w3分别为各比例的权重。
将相关性得分score与第三设定阈值进行比较,根据比较结果标记该数据块,如果该数据块的相关性得分score大于第三设定阈值,则将该数据块的属性标记为True,表示该数据块中可能包含二维码或二维码的一部分,与二维码相关,否则将该数据块的属性标记为False,表示该数据块与二维码无关,属于背景部分。
本领域技术人员应当理解,在其它的具体实施例中,也可以采用其它方法判断数据块是否是与二维码相关,例如只根据边缘频率判断数据块是否是与二维码相关,如果一个数据块中的边缘频率小于一定阈值,说明该数据块中可能不含有数据区,即该数据块中可能没有二维码。
步骤115,将所有与二维码相关的数据块进行连通处理,得到连通区域。
本实施例中,在将数据块进行区域连通分析时,为了缩小区域连通性分析的时间,重新生成一幅图,每个数据块用一个灰度值代表,若数据块属性为True,则灰度值设置为255,若数据块属性为False,则灰度值设置为0。在进行连通时仅对灰度值为255的数据块进行连通处理,获得的连通区域记为Ri。
步骤116,判断连通区域大小是否符合第一设定阈值,如果是,则该连通区域为可能包含二维码的候选区域,否则对该连通区域不做处理。步骤115中获得的连通区域可能有一个,也可能有多个,可能有的大,有的小,可能是包含二维码的区域,也可能是杂乱的背景,为减少后续的处理量,需要对连通区域先进行判断。本实施例中,由于Data Matrix二维码为矩形,因此判断连通区域是否符合矩形的边长范围。
例如,对获得的第i个连通区域Ri,首先对连通区域Ri做最小外接矩形,得到其最小外接矩形的长度和宽度分别为leni和widi。
然后将leni和widi与设定阈值进行比较,若l1≤leni≤l2,w1≤widi≤w2,则连通区域Ri作为定位区域的候选区域,否则忽略该区域,其中l1,l2为区域长度的下限阈值和上限阈值,w1,w2为区域宽度的下限阈值和上限阈值。
获得候选区域后请再次参考图3,对候选区域执行步骤120,进行粗定位处理。
在步骤120中,对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位。
本实施例定义的Data Matrix二维码的定位图形是一个模块的宽度,是数据区的边界,其包括两条垂直相交的实线外边界信息和两条垂直相交的虚线外边界信息,如图6所示,其中全部由深色模块组成的邻边构成了一个“L”形实线外边界14,“L”边对边由交替的深浅模块组成的两条邻边又构成了虚线外边界15,实线外边界14和虚线外边界15围合成的矩形的四周是空白区,用于将二维码和背景分离。在一种具体实施例中,利用Data Matrix二维码的定位图形确定二维码外边界的大致位置的过程如图7所示,包括以下步骤:
步骤121,从候选区域中提取线段。
线段提取可以有两种方法可以选择,一种是Hough变换法,一种是区域增长法。无论是Hough变换法还是区域增长法,处理的都是候选区域Ri所对应图像部分的信息。区域增长法主要利用边缘角度的方向进行增长,首先在候选区域Ri中根据边缘信息找出种子点,具体是在候选区域中找出梯度幅值最大的点作为种子点,然后在种子点的8邻域内搜索满足角度条件的边缘点加入到增长区域,该角度条件为:
|θregion-θi|≤τ (8)
式中θregion为增长区域的角度,θi为8邻域中像素点的边缘角度。初始的增长区域只有一个种子点,因此,增长区域的初始角度为种子点的边缘角度。
每增加一个点到增长区域中,则更新增长区域的角度为:
将新增长的点作为种子点继续增长,直至新的种子点的8邻域中没有像素点满足角度条件时结束增长,对增长区域中的点进行直线拟合,例如利用最小二乘法拟合,从而提取出线段。
在候选区域Ri的未被增长的像素点中再次查找出梯度幅值最大的点作为种子点,开始下一线段的区域增长,采用同样的方法提取出下一条线段。如此提取出候选区域Ri中的所有线段。
线段提取后可以获得如下信息:每个线段的重心(cxi,cyi),线段的长度li,线段的单位方向向量(nxi,nyi),根据这些信息可以计算出线段的端点(px1,py1)和(px2,py2)。
将提取出的所有线段加入线段列表,然后进行线段筛选,线段筛选包括两方面,第一是对线段长度的筛选,第二是对线段数量的筛选。
步骤122,判断线段的长度是否符合要求。
根据定位图形,实线外边界应具有一个长度范围,即长度上限lupper和长度下限llower,如果线段的长度大于长度上限lupper或者小于长度下限llower,则将该线段从线段列表中删除,从而筛选出长度符合实线外边界长度范围的线段。
步骤123,判断线段列表中线段的数量是否小于两条,如果是,则放弃该候选区域,否则对该候选区域进行执行步骤124。
步骤124,“L”形线段匹配。“L”形线段匹配包括两方面,第一是角度阈值的匹配,即在候选区域的线段中筛选出相交且夹角满足角度阈值的两条线段,其判断式为:α1<α<α2,其中α1,α2为角度阈值,α为两线段的夹角,如果是,则两线段满足角度阈值。第二是相对长度的匹配,即将两条线段的长度分别记为l1,l2,l1>l2,判断是否满足l1/l2<τ1,其中τ1为用户设置的阈值。当上述两方面都满足时,则当前判断的两条线段可能是“L”形线段,然后执行步骤125,如果上述两方面有其中一个不满足,则当前判断的两条线段不是“L”形线段,则选取另外两条线段再执行步骤124进行判断,直到筛选出全部的“L”形线段。每两条“L”形线段可能对应着一个二维码。
步骤125,获取“L”形线段的长度以及三个顶点的位置坐标。“L”形边的三个顶点分别记为(xi,yi)(i=1,2,3),两条线段的长度记为len1,len2并且len1>len2。从而确定出该候选区域中所有二维码的两条实线外边界的大致位置。
步骤126,虚边提取。本实施例中,根据“L”形线段的长度以及三个顶点的位置坐标,以及定位图形中实线外边界和虚线外边界的位置关系确定出两条虚线外边界所在的矩形区域,具体包括以下步骤:
如图8所示,根据“L”形边信息,分别偏移一定距离获取虚边的矩形区域,矩形区域信息分别用矩形的左上点和右下点表示,假定“L”形边的竖边的上顶点坐标为(x1,y1),“L”形边的横边的由顶点坐标为(x3,y3),两边的交点坐标为(x2,y2),偏移距离为τ,则图8中上侧的矩形区域可表示为:
regionupper={x1-τ,y1-τ,x1+len1+τ,y1+len1-len2+τ} (10)
图8中右侧的矩形区域可以表示为:
regionright={x1+len2-len1-τ,y1-len1-τ,x3+τ,y3+τ} (11)
其中τ为用户设置的参数。从而获得二维码两条虚线外边界所在的大致区域,可以初步认为虚线外边界位于矩形区域沿长度方向的中线位置。
在其它实施例中,也可以通过其它方法确定两条虚线外边界的大致位置。
根据上述步骤,可提取到的两条实线外边界和两条虚线外边界,将两条实线外边界和两条虚线外边界围合的区域作为候选二维码区域。
在优选的实施例中,在步骤126之后还可以包括步骤127,分别沿着矩形区域的短边方向查找角点,所述角点是指两条边缘线的交点;判断角点数量与虚线的矩形区域的面积比值是否大于第四设定阈值,如果是,则执行步骤128保留该候选二维码区域以对其进行精确定位,否则执行步骤129,丢弃该候选二维码区域,不再对其进行精确定位。
请再参考图3,对候选二维码区域执行步骤130,对二维码进行精确定位。
在步骤130中,根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位,其具体处理流程如图9所示,包括以下步骤:
步骤131,分别从实线外边界和虚线外边界的大致位置向两侧偏移Δa个像素,生成扫描区域。如图10a所示,两条水平线所夹区域16和两条垂直线所夹区域17分别为两条实线外边界的扫描区域。如图10b所示,两条水平线所夹区域18和两条垂直线所夹区域19分别为两条虚线外边界的扫描区域。
步骤132,在扫描区域内沿图中箭头所示方向扫描边缘点,并将获取的边缘点分组分别保存在pleft,pright,pupper,plower中。
步骤133,将各组的边缘点进行直线拟合(例如最小二乘法),经迭代可得到最优直线,从而分别得到实线外边界和虚线外边界的精确位置。
步骤134,计算两条实线外边界和两条虚线外边界的四个交点的位置坐标。
经过上述步骤后,可得到二维码的四条边的精确位置。
本领域技术人员应当理解,在其他的具体实施例中,也可采用其他的方法在实线外边界和虚线外边界的大致位置精确确定出两条实线外边界和两条虚线外边界的位置。
实施例二:
本实施例中,如图11所示,定位***包括图形获取单元431、预筛选单元432、粗略定位单元433和精确定位单元434。
图形获取单元431用于输入图像数据。
预筛选单元432用于利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,所述边缘信息是指灰度值具有突变的区域。在一具体实例中,预筛选单元432包括分块子单元4321、边缘检测子单元4322、边缘参数计算子单元4323、第一判断子单元4324、连通子单元4325和第二判断子单元4326。
分块子单元4321用于将图像数据划分成若干个数据块。
边缘检测子单元4322用于检测各数据块中的边缘信息。在一种具体实施例中,边缘检测子单元4322通过以下方式检测边缘信息:计算各像素点在第一维度和第二维度的梯度分量,根据梯度分量计算各像素点的梯度幅值,将像素点的梯度幅值和第二设定阈值进行比较,如果梯度幅值大于第二设定阈值,则认为该像素点为一个边缘信息。
边缘参数计算子单元4323用于根据边缘信息计算各数据块中的边缘参数,在一具体实施例中,边缘参数包括边缘频率和边缘角度差中的至少一个,边缘频率为数据块内梯度幅值大于第二设定阈值的边缘信息的个数;边缘角度差通过以下方式获得:根据梯度分量计算各像素点的边缘角度,统计数据块的边缘角度的直方图,计算直方图中明显波峰之间的角度差,该角度差为边缘角度差。
第一判断子单元4324用于根据各数据块的边缘参数判断该数据块是否是与二维码相关的数据块。在一具体实施例中,第一判断子单元4324用于将数据块内的像素进行二值化处理,统计数据块内黑白像素的比例,得到第一比例;统计数据块的边缘频率与划分的所有数据块数量的比值,得到第二比例;统计数据块的边缘角度差与90度的比值,得到第三比例;计算第一比例、第二比例和第三比例的加权和,得到该数据块的相关性得分;将相关性得分与第三设定阈值进行比较,根据比较结果标记该数据块是否是与二维码相关的数据块。
连通子单元4325用于将所有与二维码相关的数据块进行连通处理,得到连通区域。
第二判断子单元4326用于判断连通区域大小是否符合第一设定阈值,如果是,则该连通区域为可能包含二维码的候选区域。
粗略定位单元433用于对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位。在一具体实例中,如图11所示,粗略定位单元433包括线段提取子单元4331、实线粗定位子单元4332和虚线粗定位子单元4333,线段提取子单元4331用于从候选区域中提取线段。实线粗定位子单元4332用于根据定位图形,筛选出长度符合实线外边界长度范围的线段;判断符合实线外边界长度范围的线段的数量是否小于两条,如果是,则放弃该候选区域,否则在候选区域的线段中进行“L”形线段匹配,并获取“L”形线段的长度以及三个顶点的位置坐标,从而确定出该候选区域中所有二维码的两条实线外边界的大致位置。虚线粗定位子单元4333用于根据“L”形线段的长度以及三个顶点的位置坐标,以及定位图形中实线外边界和虚线外边界的位置关系确定出两条虚线外边界所在的矩形区域。两条实线外边界和两条虚线外边界围合的区域为候选二维码区域。
在另一具体实例中,如图11所示,粗略定位单元433还包括再筛选子单元4334,再筛选子单元4334用于在确定出两条虚线外边界所在的矩形区域后分别沿着所述矩形区域的短边方向查找角点,角点是指两条边缘线的交点,判断角点数量与矩形区域的面积比值是否大于第四设定阈值,如果是,则保留该候选二维码区域以对其进行精确定位,否则丢弃该候选二维码区域,不再对其进行精确定位。
精确定位单元434用于根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位。在一具体实例中,如图11所示,精确定位单元434包括偏移子单元4341、扫描子单元4342、拟合子单元4343和交点坐标计算子单元4344。偏移子单元4341用于分别从实线外边界和虚线外边界的粗略位置向两侧偏移预定像素,生成扫描区域。扫描子单元4342用于在扫描区域内沿预定方向扫描边缘点,并将获取的边缘点分组保存。拟合子单元4343用于将各组的边缘点进行直线拟合,分别得到实线外边界和虚线外边界的精确位置。交点坐标计算子单元4344用于计算两条实线外边界和两条虚线外边界的四个交点的位置坐标。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过程序来指令相关硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种二维码定位方法,其特征在于包括:
输入图像数据;
利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,所述边缘信息是指灰度值具有突变的区域;
对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位;
根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位;
所述利用二维码数据区的边缘信息对图像数据进行预筛选包括:
将图像数据划分成若干个数据块;
检测各数据块中的边缘信息,具体包括:计算各像素点在第一维度和第二维度的梯度分量,根据梯度分量计算各像素点的梯度幅值,将梯度幅值和第二设定阈值进行比较,如果像素点的梯度幅值大于第二设定阈值,则认为该像素点为一个边缘信息;
根据边缘信息计算各数据块中的边缘参数,所述边缘参数包括边缘频率和边缘角度差,所述边缘频率是指数据块中边缘信息的个数,所述边缘角度差通过以下步骤计算:根据像素点的梯度分量计算各像素点的边缘角度,统计数据块的边缘角度并生成直方图,计算直方图中明显波峰之间的角度差,该角度差为边缘角度差;
根据各数据块的边缘参数判断该数据块是否是与二维码相关的数据块,具体包括:将数据块内的像素进行二值化处理,统计数据块内黑白像素的比例,得到第一比例;统计数据块的边缘频率与划分的所有数据块数量的比值,得到第二比例;统计数据块的边缘角度差与90度的比值,得到第三比例;计算第一比例、第二比例和第三比例的加权和,得到该数据块的相关性得分;将相关性得分与第三设定阈值进行比较,根据比较结果标记该数据块是否是与二维码相关的数据块;
将所有与二维码相关的数据块进行连通处理,得到连通区域;
判断连通区域大小是否符合第一设定阈值,如果是,则该连通区域为可能包含二维码的候选区域。
2.如权利要求1所述的方法,其特征在于,所述二维码为Data Matrix二维码,所述二维码的定位图形包括两条垂直相交的实线外边界信息和两条垂直相交的虚线外边界信息,利用待定位二维码的定位图形确定二维码外边界的大致位置包括:
从候选区域中提取线段;
根据定位图形,筛选出长度符合实线外边界长度范围的线段;
判断符合实线外边界长度范围的线段的数量是否小于两条,如果是,则放弃该候选区域,否则对该候选区域进行以下处理;
在候选区域的线段中进行“L”形线段匹配,并获取“L”形线段的长度以及三个顶点的位置坐标,从而确定出该候选区域中所有二维码的两条实线外边界的大致位置;
根据“L”形线段的长度以及三个顶点的位置坐标,以及定位图形中实线外边界和虚线外边界的位置关系确定出两条虚线外边界所在的矩形区域,两条实线外边界和两条虚线外边界围合的区域为候选二维码区域。
3.如权利要求2所述的方法,其特征在于,通过区域增长法从候选区域中提取线段,具体包括:
在候选区域中根据边缘信息找出种子点;
在种子点的八邻域内搜索满足角度条件的点加入增长区域;
将新增长的点作为种子点继续增长,直至结束增长;
对增长区域中的点进行直线拟合,从而提取出线段。
4.如权利要求2所述的方法,其特征在于,在确定出两条虚线外边界所在的矩形区域后还包括:
分别沿着所述矩形区域的短边方向查找角点,所述角点是指两条边缘线的交点;
判断角点数量与虚线的矩形区域的面积比值是否大于第四设定阈值,如果是,则保留该候选二维码区域以对其进行精确定位,否则丢弃该候选二维码区域,不再对其进行精确定位。
5.如权利要求2所述的方法,其特征在于,根据二维码外边界的大致位置确定出二维码的精确边界包括:
分别从实线外边界和虚线外边界的大致位置向两侧偏移预定像素,生成扫描区域;
在扫描区域内沿预定方向扫描边缘点,并将获取的边缘点分组保存;
将各组的边缘点进行直线拟合,分别得到实线外边界和虚线外边界的精确位置;
计算两条实线外边界和两条虚线外边界的四个交点的位置坐标。
6.一种二维码定位***,其特征在于包括:
图形获取单元,用于输入图像数据;
预筛选单元,用于利用二维码数据区的边缘信息对图像数据进行预筛选,确定可能包含二维码的图像区域作为候选区域,所述边缘信息是指灰度值具有突变的区域;所述预筛选单元包括:分块子单元、边缘检测子单元、边缘参数计算子单元、第一判断子单元、连通子单元和第二判断子单元,其中,
分块子单元用于将图像数据划分成若干个数据块;
边缘检测子单元用于通过以下方式检测各数据块中的边缘信息:计算各像素点在第一维度和第二维度的梯度分量;根据梯度分量计算各像素点的梯度幅值;将像素点的梯度幅值和第二设定阈值进行比较,如果梯度幅值大于第二设定阈值,则认为该像素点为一个边缘信息;
边缘参数计算子单元用于根据边缘信息计算各数据块中的边缘参数,所述边缘参数包括边缘频率和边缘角度差,所述边缘频率是指数据块中边缘信息的个数;边缘参数计算子单元用于统计数据块内的边缘信息,得到边缘频率,根据梯度分量计算各像素点的边缘角度,统计数据块的边缘角度的直方图,计算直方图中明显波峰之间的角度差,该角度差为边缘角度差;
第一判断子单元用于根据各数据块的边缘参数判断该数据块是否是与二维码相关的数据块,具体包括:第一判断子单元将数据块内的像素进行二值化处理,统计数据块内黑白像素的比例,得到第一比例;统计数据块的边缘频率与划分的所有数据块数量的比值,得到第二比例;统计数据块的边缘角度差与90度的比值,得到第三比例;计算第一比例、第二比例和第三比例的加权和,得到该数据块的相关性得分;将相关性得分与第三设定阈值进行比较,根据比较结果标记该数据块是否是与二维码相关的数据块;
连通子单元用于将所有与二维码相关的数据块进行连通处理,得到连通区域;
第二判断子单元用于判断连通区域大小是否符合第一设定阈值,如果是,则该连通区域为可能包含二维码的候选区域;
粗略定位单元,用于对每个候选区域,利用待定位二维码的定位图形确定二维码外边界的大致位置,从而获得二维码的粗略定位;
精确定位单元,用于根据二维码外边界的大致位置确定出二维码的精确边界,从而获得二维码的精确定位。
7.如权利要求6所述的***,其特征在于,所述二维码为Data Matrix二维码,所述二维码的定位图形包括两条垂直相交的实线外边界信息和两条垂直相交的虚线外边界信息,粗略定位单元包括:
线段提取子单元,用于从候选区域中提取线段;
实线粗定位子单元,用于根据定位图形,筛选出长度符合实线外边界长度范围的线段;判断符合实线外边界长度范围的线段的数量是否小于两条,如果是,则放弃该候选区域,否则在候选区域的线段中进行“L”形线段匹配,并获取“L”形线段的长度以及三个顶点的位置坐标,从而确定出该候选区域中所有二维码的两条实线外边界的大致位置;
虚线粗定位子单元,用于根据“L”形线段的长度以及三个顶点的位置坐标,以及定位图形中实线外边界和虚线外边界的位置关系确定出两条虚线外边界所在的矩形区域;两条实线外边界和两条虚线外边界围合的区域为候选二维码区域。
8.如权利要求7所述的***,其特征在于,线段提取子单元通过区域增长法从二维码的大致区域中提取线段。
9.如权利要求7所述的***,其特征在于,粗略定位单元还包括再筛选子单元,所述再筛选子单元用于在确定出两条虚线外边界所在的矩形区域后分别沿着所述矩形区域的短边方向查找角点,所述角点是指两条边缘线的交点,判断角点数量与矩形区域的面积比值是否大于第四设定阈值,如果是,则保留该候选二维码区域以对其进行精确定位,否则丢弃该候选二维码区域,不再对其进行精确定位。
10.如权利要求7所述的***,其特征在于,精确定位单元包括:
偏移子单元,用于分别从实线外边界和虚线外边界的粗略位置向两侧偏移预定像素,生成扫描区域;
扫描子单元,用于在扫描区域内沿预定方向扫描边缘点,并将获取的边缘点分组保存;
拟合子单元,用于将各组的边缘点进行直线拟合,分别得到实线外边界和虚线外边界的精确位置;
交点坐标计算子单元,用于计算两条实线外边界和两条虚线外边界的四个交点的位置坐标。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610556584 | 2016-07-14 | ||
CN201610556584X | 2016-07-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106485183A CN106485183A (zh) | 2017-03-08 |
CN106485183B true CN106485183B (zh) | 2018-05-08 |
Family
ID=58268902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610857210.1A Active CN106485183B (zh) | 2016-07-14 | 2016-09-27 | 一种二维码定位方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106485183B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301366B (zh) * | 2017-05-12 | 2020-07-31 | 赵毅 | 一种嵌码视频中图形码的解码方法及装置 |
CN109543484B (zh) * | 2017-09-21 | 2023-02-07 | 杭州海康机器人股份有限公司 | 一种基于二维码的位置信息获取方法、装置及电子设备 |
CN107908996B (zh) * | 2017-10-25 | 2020-12-15 | 福建联迪商用设备有限公司 | 一种提取一维条码信息的方法及终端 |
CN108174217B (zh) * | 2017-12-06 | 2021-01-19 | 广州索答信息科技有限公司 | 一种图像码的生成与解析方法、电子设备及存储介质 |
CN108573184B (zh) * | 2018-03-12 | 2021-04-27 | 青岛乾程科技股份有限公司 | 一种二维码定位方法、模块及计算机可读存储介质 |
CN108805033B (zh) * | 2018-05-22 | 2020-12-18 | 中国科学院自动化研究所 | 基于局部梯度分布的拍摄图像优选方法及装置 |
CN109101854A (zh) * | 2018-06-25 | 2018-12-28 | 华南理工大学 | 一种多条形码定位方法 |
CN109086644B (zh) * | 2018-07-27 | 2021-05-25 | 广东奥普特科技股份有限公司 | 亚像素精度的DataMatrix二维码的定位方法 |
CN108931982A (zh) * | 2018-09-04 | 2018-12-04 | 赵凯雅 | 用于移动机器人设备的视觉导航***和方法 |
CN109492562B (zh) * | 2018-10-30 | 2021-05-25 | 河南科技大学 | 一种无接触家畜识别*** |
CN109492453A (zh) * | 2018-11-12 | 2019-03-19 | 凌云光技术集团有限责任公司 | 一种基于几何定位的dm码定位方法及装置 |
CN109409163B (zh) * | 2018-11-12 | 2022-04-01 | 凌云光技术股份有限公司 | 一种基于纹理特性的qr码快速定位方法 |
CN110046528B (zh) * | 2018-11-20 | 2022-10-28 | 维库(厦门)信息技术有限公司 | 一种点状DataMatrix二维码识别方法 |
CN109740402B (zh) * | 2019-01-02 | 2022-04-22 | 苏州天准科技股份有限公司 | 基于频谱信息的二维码方向与位置获取方法 |
CN109977714B (zh) * | 2019-01-04 | 2022-06-10 | 上海大学 | 一种仓储货物多qr码一体化视觉定位方法 |
CN109858304B (zh) * | 2019-01-04 | 2022-02-01 | 广州广电研究院有限公司 | 二维码位置探测图形的检测方法、装置和存储介质 |
CN110490020B (zh) * | 2019-07-31 | 2023-01-13 | 珠海市杰理科技股份有限公司 | 条码识别方法、装置、计算机设备和存储介质 |
CN110866578B (zh) * | 2019-10-29 | 2021-07-06 | 上海交通大学 | 一种二维纹理码及其编码和解码方法 |
CN111337011A (zh) * | 2019-12-10 | 2020-06-26 | 亿嘉和科技股份有限公司 | 一种基于激光和二维码融合的室内定位方法 |
CN111563930B (zh) * | 2020-04-29 | 2023-07-07 | 达闼机器人股份有限公司 | 定位方法、装置、介质、电子设备及辅助定位模块 |
CN111639507B (zh) * | 2020-05-29 | 2023-06-09 | 天津维创微智能科技有限公司 | 图像中条形码的定位方法、装置、扫码设备及存储介质 |
CN113947097B (zh) * | 2020-07-15 | 2024-04-09 | 花瓣云科技有限公司 | 一种二维码识别的方法及电子设备 |
CN111815725B (zh) * | 2020-07-29 | 2024-03-08 | 苏州中科全象智能科技有限公司 | 一种qr码区域定位方法 |
CN112101060B (zh) * | 2020-10-28 | 2023-06-23 | 山东青橙视联信息科技有限公司 | 基于平移不变性和小区域模板匹配的二维码定位方法 |
CN112598100A (zh) * | 2020-12-23 | 2021-04-02 | 深兰人工智能芯片研究院(江苏)有限公司 | 点阵式dm二维码规格确定方法及相关装置 |
CN112598652B (zh) * | 2020-12-25 | 2024-01-30 | 凌云光技术股份有限公司 | 一种基于梯度变换的液晶屏边缘断线检测方法 |
CN112733565A (zh) * | 2020-12-29 | 2021-04-30 | 美的集团股份有限公司 | 二维码粗定位方法、设备及存储介质 |
CN112651259A (zh) * | 2020-12-29 | 2021-04-13 | 芜湖哈特机器人产业技术研究院有限公司 | 二维码的定位方法、基于二维码的移动机器人定位方法 |
CN112800797B (zh) * | 2020-12-30 | 2023-12-19 | 凌云光技术股份有限公司 | 一种dm码的区域定位方法及*** |
CN113139400B (zh) * | 2021-06-21 | 2021-10-15 | 浙江华睿科技股份有限公司 | 一种qr码定位方法、装置及计算机可读介质 |
CN113536822B (zh) * | 2021-07-28 | 2024-05-03 | 中移(杭州)信息技术有限公司 | 二维码校正方法、装置及计算机可读存储介质 |
CN113688649A (zh) * | 2021-08-16 | 2021-11-23 | 江苏博赛孚医疗科技有限公司 | 一种快速的qr码定位方法 |
CN114548136A (zh) * | 2021-11-18 | 2022-05-27 | 福建星网天合智能科技有限公司 | 一种反光二维码图片的解析方法、装置、设备和介质 |
CN115131545B (zh) * | 2022-07-14 | 2024-07-12 | 深圳市朗派电子科技有限公司 | 一种基于图像识别的快速矩形定位算法 |
CN114911435B (zh) * | 2022-07-18 | 2022-11-11 | 北京中宏立达科技发展有限公司 | 一种基于二维条码的复印管控方法及*** |
CN116151290B (zh) * | 2023-02-21 | 2023-10-24 | 广州玺明机械科技有限公司 | 一种智能化扫码调制奶茶机器人的信息采集***及方法 |
CN117197422B (zh) * | 2023-11-07 | 2024-03-26 | 深圳优艾智合机器人科技有限公司 | 识别码的定位方法、电子设备及存储介质 |
CN117218328B (zh) * | 2023-11-07 | 2024-03-08 | 深圳优艾智合机器人科技有限公司 | 二维码定位方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930268A (zh) * | 2012-08-31 | 2013-02-13 | 西北工业大学 | 一种用于污染及多视角情况下DataMatrix码的精确定位方法 |
CN104517089A (zh) * | 2013-09-29 | 2015-04-15 | 北大方正集团有限公司 | 一种二维码解码***及其方法 |
CN104636701A (zh) * | 2014-12-12 | 2015-05-20 | 浙江工业大学 | 一种基于图像修复的激光二维码识别方法 |
-
2016
- 2016-09-27 CN CN201610857210.1A patent/CN106485183B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930268A (zh) * | 2012-08-31 | 2013-02-13 | 西北工业大学 | 一种用于污染及多视角情况下DataMatrix码的精确定位方法 |
CN104517089A (zh) * | 2013-09-29 | 2015-04-15 | 北大方正集团有限公司 | 一种二维码解码***及其方法 |
CN104636701A (zh) * | 2014-12-12 | 2015-05-20 | 浙江工业大学 | 一种基于图像修复的激光二维码识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106485183A (zh) | 2017-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106485183B (zh) | 一种二维码定位方法及*** | |
CN110717489B (zh) | Osd的文字区域的识别方法、装置及存储介质 | |
CN109711284A (zh) | 一种考试答题卡***智能识别分析方法 | |
CN110348264B (zh) | 一种qr二维码图像校正方法及*** | |
CN102136058B (zh) | 条形码图像识别方法 | |
CN102360421B (zh) | 一种基于视频流的人脸识别方法及*** | |
CN105046252B (zh) | 一种人民币冠字码识别方法 | |
US20110290882A1 (en) | Qr code detection | |
CN109658424B (zh) | 一种改进的鲁棒二维otsu阈值图像分割方法 | |
US20080193020A1 (en) | Method for Facial Features Detection | |
CN110765992B (zh) | ***鉴别方法、介质、设备及装置 | |
CN101727666A (zh) | 图像分割方法及装置、图像倒置判断及胸片前后区分方法 | |
CN103543277A (zh) | 一种基于灰度分析与种类识别的血型结果识别算法 | |
US20120269443A1 (en) | Method, apparatus, and program for detecting facial characteristic points | |
CN110443128A (zh) | 一种基于surf特征点精确匹配的指静脉识别方法 | |
CN104537376B (zh) | 一种识别台标的方法及相关设备、*** | |
CN107945111A (zh) | 一种基于surf特征提取结合cs‑lbp描述符的图像拼接方法 | |
CN108491786A (zh) | 一种基于分级网络和聚类合并的人脸检测方法 | |
WO2018040948A1 (zh) | 一种数字对象唯一标识符doi识别方法与装置 | |
CN110490913A (zh) | 基于角点与单线段编组的特征描述算子进行影像匹配方法 | |
CN108241860A (zh) | 一种复杂环境下的qr码检测定位方法 | |
CN109816051A (zh) | 一种危化品货物特征点匹配方法及*** | |
CN108665495A (zh) | 图像处理方法及装置、移动终端 | |
CN108765456A (zh) | 基于直线边缘特征的目标跟踪方法、*** | |
CN114970590A (zh) | 一种条码的检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |