本发明属于算法领域,涉及一种区域定位的方法,具体涉及一种二维码识别区域定位的方法。
背景技术:
Data Matrix 是在国际制造领域广泛使用的二维码。 Data Matrix是二维码的一个成员,与1989年由美国国际资料公司发明,广泛用于商品的防伪、统筹标识。是一种可以直接标记在固体表面的编码,该编码可以像普通条形码一样被相应的扫描装置自动读取,很受制造业青睐。目前Data Matrix被广泛用于产品标识、防伪、质量追踪、自动仓储、物流管理与控制等系统。Data Matrix采用了复杂的纠错码技术,使得该编码具有超强的抗污染能力。即使编码部分破损,一样不会影响读出全部信息。Data Matrix的印刷特征使得它成为目前唯一支持可以直接标记(印刷、刻制、光刻、腐蚀、冲压等方式)在产品或零部件表面的编码。它的高效容错性能使它可以承受制造或流通过程中对零部件表面标识的污染,因此非常受制造业的欢迎。针对各种不同的应用,国际上已经颁布了多种形式的 Data Matrix 符号标准体系。Data Matrix的最小尺寸是目前所有条码中最小的,尤其特别适用于小零件的标识,以及直接印刷在实体上。
Data Matrix又可分为ECC000-140与ECC200两种类型,ECC000-140具有多种不同等级的错误纠正功能,而ECC200则透过Reed-Solomon演算法产生多项式计算出错误纠正码,其尺寸可以依需求印成不同大小,但采用的错误纠正码应与尺寸配合,由于其演算法较为容易,且尺寸较有弹性,故一般以ECC200较为普遍。Data Matrix码密度高,尺寸小,信息量大,给这种识别提供了可能,国内对DM码研究也较少。Data Matrix码是一种矩阵式二维条码,其最大特点就是密度高,其最小尺寸是目前所有条码中最小的码。DM码可在仅仅25mm2的面积上编码30个数字。DM采用了复杂的纠错码技术,使得该编码具有超强的抗污染能力。Data Matrix因提供极小又高密度的标签,且仍可存放合理的资料内容,故特别适用于小零件标识,商品防伪,电路标识等。由于其优秀的纠错能力,DM码己成为韩国手机二维条码的主流技术。相对QR而言,DM码由于信息容量差异不多,应用简单,被业内称为“简易码”,对终端要求不高,30万像素的手机就可识别,它更多的是基于WAP的增值。二维码给手机上网带来了新的入口,通过扫描各类条码,用户很快就能进入WAP网站,进行快速浏览。Data Matrix符号看起来像一个由深浅两种颜色组成的国际象棋棋盘,每一个相同大小的黑色或白色方格称为一个数据单位,Data Matrix符号就是由许多这样的数据单位组成。在寻边区外层有宽度为一个数据单位的静区。寻边区是“棋盘”的边界,只用于定位和定义数据单位大小,而不含有任何编码信息。被寻边区包围的数据区包含着编码信息。
现有技术中使用Data Matrix大都印刷、刻制、光刻、腐蚀、冲压等方式,这些方式生成的二维码的识别方式较简单,因为其边缘的识别度较高,但是采用3D打印的方式,直接生成二维码,其识别边缘较模糊,较难实现定位,因此,研究一种能够针对3D打印方法生成的二维码进行区域定位的方法,具有重要的意义。
技术实现要素:
本发明要解决的技术问题,是提供一种二维码识别区域定位的方法,首先采用形态学腐蚀和膨胀运算分离和恢复二维码区域,然后使用区域标记法计算二维码区域并进行平滑,最后确定区域的准确边界,采用这种方法,能够将边界区域不清晰图像的二维码进行精准定位。
为解决上述技术问题,本发明所采取的技术方案是:
一种二维码识别区域定位的方法,按照以下步骤顺序进行:
1)对输入图像做数学形态学的开运算,进行灰度图像的形态学腐蚀和膨胀运算,通过形态学腐蚀分离出二维码的区域,通过形态学开运算恢复二维码的区域,并对图像做二值化处理;
2)使用区域标记法标记步骤1)得到的各个区域,并计算每个区域的形状特征获得二维码大致区域;
3)利用扩散张量方程对步骤2)得到的二维码区域图像进行平滑;
4)计算平滑后的图像的质心,利用质心截取图像中包含二维码下边界的区域,计算下边界的梯度幅值并利用非极大值抑制法和最小二乘法确定二维码的下边界位置;
5)基于梯度方向的平滑特征提取图像的左边界和右边界;
6)根据Data Matrix二维码的编码标准中,二维码区域的宽高成比例的特点,计算出二维码区域的高度,最终定位出准确的二维码区域。
作为本发明的一种限定,所述的步骤1)中对输入的灰度图像做数学形态学的开运算,进行形态学腐蚀和膨胀运算,具体方法为:首先,设置方形的结构元素g,利用结构元素g对输入图像f (x, y)进行灰度腐蚀,如下式:
(fΘg)(s,t)=min{f(s+x, t+y)-g(x, y)|s+x, t+y∈Df, x+y∈Dg}
对上一步腐蚀的结果,利用相同的结构元素g对输入图像f (x, y)进行灰度膨胀,如下式:
(f⊕g)(s, t)=max{f(s-x, t-y)+g(x, y)|s-x, t-y ∈Df, x+y∈Dg}
其中,s为结构元素g竖直方向的尺度,t为结构元素水平方向的尺度,Df为图像f(x,y)的边界。
作为本发明的另一种限定,所述的步骤2)中,首先使用区域标记法标记步骤1)得到的各个区域,然后计算每个区域的形状特征得到二维码的估计区域:
a)对二值图像内的每一个块状区域分别标记为;
b)依次计算每一个标记区域的面积Sai,并计算出该区域的周长Lai,采用紧致度方法计算该区域的形状特征M;
M=Lai2/Sai
c)得到每个区域的特征值后,对特征值进行比较,M值在15-17时,保留属于二维码的区域。
作为本发明的第三种限定,所述的步骤3)中利用扩散张量方程对图像区域进行平滑,具体方法为:
a)设置八个方向梯度算子,将八个方向的梯度算子分别与原图像做卷积,求取每个像素八个方向的梯度矢量场Gi,其中,i=1,2,3...8;
b)对每一个像素的八个方向的梯度分别设置平滑系数Ai ,其中,i=1,2,3...8,
Ai=1/[1+(Gi/k)2] ,其中k为平滑尺度系数;
c)通过迭代法对图像进行平滑,对每一次迭代设置扩散尺度系数C;
则图像F(x,y)的扩散张量方程为:
Ft+1(x,y)=Ft(x,y)+C×(A1×G1+A2×G2+A3×G3+......A8×G8),t为时间系数。
作为本发明的第四种限定,所述的步骤4)中确定二维码下边界,具体按照如下步骤进行:
a)计算图像质心;
对一幅二维离散的数字图像f(x,y),其(p+q)阶几何矩(mpq)定义为:
;其中,p,q=0,1,2...,M,N为图像的宽度和高度;
则质心的计算公式为:;其中x0为质心的横坐标,y0为质心的纵坐标;
b)截取质心周围像素的区域,并按图像矩阵的行计算其灰度直方图曲线;
c)得到直方图曲线后找到曲线全局极小值所在的行作为二维码下边界的估计区域;
d)计算极小值所在区域的梯度;
图像像素水平方向 的梯度为:gx
图像像素垂直方向的梯度为:gy =
图像的梯度幅值为:;
e)对计算得到的梯度幅值进行非极大值抑制运算,得到梯度的最大值;
f)使用最小二乘法将由梯度最大值构成的凹凸曲线拟合为一条直线,计算得到二维码的下边界;
其中,最小二乘法的目标函数J为:
J()=min(),
其中,X为定义域,Y为值域,为目标函数优化的参数。
本发明还有一种限定,所述的步骤5)的具体方法为:
A、得到下边界后,设置种子点,使用区域生长法提取连通的二维码‘L’型区域,并计算该区域左边界的梯度幅值,利用非极大值抑制法和最小二乘法确定二维码左边界位置;
B、计算二维码边界域“L”型区域中底边的质心,利用平滑区域质心的对称性质确定二维码的右边界位置。
作为上述限定的进一步限定,所述的步骤5)中确定图像的左边界和右边界的方法按照以下步骤顺序进行:
a)对经过步骤4)提取的二维码区域,重新计算其每个像素八个方向的梯度,并将结果做平方运算,消除正负方向对最终结果的影响;
b)将每个方向的梯度值与设置的阈值S作比较,设Ti为每个方向是否平滑的布尔值,若大于阈值,则T=1,小于阈值,则Ti=0,统计八个方向的结果:
S=
在区域中,若某个像素不为边界或角点,则至少有5个方向为平滑区域;因此,当S>5时,将该像素点标记为平滑区域点;
c)利用区域生长法提取标记点,得到Data Matrix二维码“L”型查找区域的竖直边界;首先选取Data Matrix二维码“L”型查找区域的底边水平边界上的种子点;其次,将与种子点相连通的区域提取出来;最后得到二维码左边界区域的曲线,利用最小二乘法运算,将凹凸的左边界曲线拟合为直线,确定二维码左边界;
d)提取出二维码区域的左边界后,计算二维码边界域“L”形中的底边的质心,在平滑区域中,质心的左右边界具有对称性,因此得到左边界后可以估算出二维码的右边界。
由于采用了上述的技术方案,本发明与现有技术相比,所取得的技术进步在于:
本发明首先采用形态学腐蚀和膨胀运算分离和恢复二维码区域,然后使用区域标记法计算二维码区域并进行平滑,最后确定区域的准确边界,采用这种方法,能够将边界区域不清晰图像的二维码进行精准定位。尤其对于图像清晰度较差和边缘较模糊的二维码区域进行准确定位,方便后续二维码信息的读取。
本发明适用于二维码区域的准确定位。
本发明下面将结合说明书附图与具体实施例作进一步详细说明。
附图说明
图1为本发明实施例1的拍摄原图;
图2为图1经过步骤1)的图像;
图3为图1经过步骤2)的图像;
图4为图1经过步骤3)的图像;
图5为图1经过步骤4)的图像;
图6为图1经过步骤5)的图像;
图7为图1经过步骤6)的图像。
具体实施方式
实施例1 一种二维码识别区域定位的方法
一种二维码识别区域定位的方法,如图1所示,拍摄带有二维码产品的照片,按照以下步骤顺序进行:
1)对输入图像做数学形态学的开运算,进行灰度图像的形态学腐蚀和膨胀运算,通过形态学腐蚀分离出二维码的区域,通过形态学开运算恢复二维码的区域,并对图像做二值化处理,如图2所示;
首先,设置方形的结构元素g,利用结构元素g对输入图像f (x, y)进行灰度腐蚀,如下式:
(fΘg)(s, t)=min{f(s+x, t+y)-g(x, y)|s+x, t+y∈Df, x+y∈Dg}
对上一步腐蚀的结果,利用相同的结构元素g对输入图像f (x, y)进行灰度膨胀,如下式:
(f⊕g)(s, t)=max{f(s-x, t-y)+g(x, y)|s-x, t-y ∈Df, x+y∈Dg}
其中,s为结构元素g竖直方向的尺度,t为结构元素水平方向的尺度,Df为图像f(x,y)的边界。
2)使用区域标记法标记步骤1)得到的各个区域,并计算每个区域的形状特征获得二维码区域,如图3所示;
具体方法如下:
a)对二值图像内的每一个块状区域分别标记为;
b)依次计算每一个标记区域的面积Sai,并计算出该区域的周长Lai,采用紧致度方法计算该区域的形状特征M;
M=Lai2/Sai
c)得到每个区域的特征值后,对特征值进行比较,M值在15-17时,保留属于二维码的区域。
3)利用扩散张量方程对步骤2)得到的二维码区域图像进行平滑,如图4所示;具体方法如下:
a)设置八个方向梯度算子,将八个方向的梯度算子分别与原图像做卷积,求取每个像素八个方向的梯度矢量场Gi,其中,i=1,2,3...8;
b)对每一个像素的八个方向的梯度分别设置平滑系数Ai ,其中,i=1,2,3...8,
Ai=1/[1+(Gi/k)2] ,其中k为平滑尺度系数;
c)通过迭代法对图像进行平滑,对每一次迭代设置扩散尺度系数C;
则图像F(x,y)的扩散张量方程为:
Ft+1(x,y)=Ft(x,y)+C×(A1×G1+A2×G2+A3×G3+......A8×G8),t为时间系数。
4)计算平滑后的图像的质心,利用质心截取图像中包含二维码下边界的区域,计算下边界的梯度幅值并利用非极大值抑制法和最小二乘法确定二维码的下边界位置,如图5所示;
具体方法如下:
a)计算图像质心;
对一幅二维离散的数字图像f(x,y),其(p+q)阶几何矩(mpq)定义为:
;其中,p,q=0,1,2...,M,N为图像的宽度和高度;
则质心的计算公式为:;其中x0为质心的横坐标,y0为质心的纵坐标;
b)截取质心周围像素的区域,并按图像矩阵的行计算其灰度直方图曲线;
c)得到直方图曲线后找到曲线全局极小值所在的行作为二维码下边界的估计区域;
d)计算极小值所在区域的梯度;
图像像素水平方向的梯度为:gx
图像像素垂直方向的梯度为:gy =
图像的梯度幅值为:;
e)对计算得到的梯度幅值进行非极大值抑制运算,得到梯度的最大值;
f)使用最小二乘法将由梯度最大值构成的凹凸曲线拟合为一条直线,计算得到二维码的下边界;
其中最小二乘法的目标函数J为:
J()=min(),
其中,X为定义域,Y为值域,为目标函数优化的参数。
5)基于梯度方向的平滑特征提取图像的左边界和右边界,如图6所示;
具体方法如下:
A、得到下边界后,设置种子点,使用区域生长法提取连通的二维码‘L’型区域,并计算该区域左边界的梯度幅值,利用非极大值抑制法和最小二乘法确定二维码左边界位置;
a)对经过以上步骤提取的二维码区域,重新计算其每个像素八个方向的梯度,并将结果做平方运算,消除正负方向对最终结果的影响;
b)将每个方向的梯度值与设置的阈值作比较,设T为每个方向是否平滑的布尔值,若大于阈值,则T=1,小于阈值,则T=0,统计八个方向的结果:
S=
在区域中,若某个像素不为边界或角点,则至少有5个方向为平滑区域;因此,当S>5时,将该像素点标记为平滑区域点;
c)利用区域生长法提取标记点,得到Data Matrix二维码“L”型查找区域的竖直边界;首先选取Data Matrix二维码“L”型查找区域的底边水平边界上的种子点;其次,将与种子点相连通的区域提取出来;最后得到二维码左边界区域的曲线,利用最小二乘法运算,将凹凸的左边界曲线拟合为直线,确定二维码左边界;
B、提取出二维码区域的左边界后,计算二维码边界域“L”形中的底边的质心,在平滑区域中,质心的左右边界具有对称性,因此得到左边界后可以估算出二维码的右边界。
6)根据Data Matrix二维码的编码标准中,二维码区域的宽高成比例的特点,计算出二维码区域的高度,最终定位出二维码区域。
在实际使用过程中,本方法可以用于计算任何模型中含有二维码区域的定位,尤其针对采用3D打印的方式,以树脂为原料进行制作,在制作过程中打印出的每个产品均带有与自身连接的二维码,两者为一体式结构,打印出的二维码相对于现有技术的喷印、雕刻或者腐蚀的二维码识别精度差,与二维码连接的区域与二维码为同种材料,在识别时区域区分性较差,采用现有技术的识别定位方法无法实现,而本实施例所提供的方法能够实现准确的定位,其方法为首先采用形态学腐蚀和膨胀运算分离和恢复二维码区域,然后使用区域标记法计算二维码区域并进行平滑,最后确定区域的准确边界,采用这种方法,能够将边界区域不清晰图像的二维码进行精准定位。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限定,任何熟悉本专业的技术人员可能利用上述技术内容作为启示加以变更或改型为等同变化的等效实施例。但是,凡是未脱离本发明技术构思,依据本发明的技术实质对以上实施例所作出的简单修改,等同变化与改型,仍属于本发明权利要求的保护范围。