本发明属于图像识别技术领域,具体涉及到视频图像中条形码区域的定位。
背景技术:
目前,基于图像处理进行条形码区域识别的方法主要有以下几种:
基于统计模式识别技术,该类方法的识别率较高,可在高卷积失真环境下工作,但需要大量匹配条形码模板进行匹配,对背景较为复杂或倾斜的条形码效果不理想。
基于神经网络的条形码识别方法,存在的缺点是如果在训练过程中神经元过多会导致运算时间过长,有时往往需要调整相关参数来达到较高识别率。
基于频域获取条码区域的纹理信息,如离散余弦变换,小波变换,如果原始图像的背景区域存在文字或者图案时,或条形码图像由于受到光照,对焦不准等影响导致条纹的区域不清晰时,也很难精确定位每条条纹的边缘。
基于边缘信息对条形码区域进行检测的方法有很多种,但是受原始图像背景或条码类型的影响,该类方法的鲁棒性不高。
技术实现要素:
本发明所要解决的技术问题在于克服上述现有技术的缺点,提供一种对条形码区域的识别准确率高、使用范围广的基于边缘特性的条形码定位方法。
解决上述技术问题所采用的技术方案由下述步骤组成:
(1)采集灰度图像
从图像库中任取一张图像,其尺寸为640×480,将彩色图像转为灰度图像。
(2)确定sobel边缘图像
使用sobel算子提取灰度图像边缘:
isobel=|dx| |dy|(3)
式中,igray(x,y)为灰度图像中像素点的像素值,dx是水平方向与sobel算子与灰度图进行卷积的结果,dy是垂直方向的sobel算子与灰度图进行卷积的结果,isobel为灰度图像的边缘图像。
使用最大类间差方法得到边缘图像二值化的阈值t,对图像isobel(x,y)进行如下处理:
式中,isobel(i,j)代表边缘图像中像素点的像素值。
(3)扩展边缘区域
确定isobel邻域内的像素值的均值,比较邻域内像素值与均值的大小,对图像isobel(i,j)的边缘区域进行扩展,得到像素矩阵a(u,v)。
(4)中值滤波与形态学滤波闭操作
使用中值滤波法,再使用形态学滤波法中的闭操作对像素矩阵a(u,v)进行滤波,得到图像的连通区域s′c,c为有限的正整数。
(5)滤除图像背景区域
对图像矩阵a(u,v)中的连通区域s′c的大小进行筛选,滤除图像中占像素点个数较少的连通区域。
(6)确定条形码位置
使用投影定位法对第5步得到的图像分别统计图像水平方向与垂直方向灰度值的一维投影,投影曲线波动位置为条形码的位置,根据波动的起始位置确定条形码在图像中水平与垂直的起始位置,完成条形码区域的识别。
在本发明的扩展边缘区域额步骤(3)中,对图像isobel(i,j)的边缘区域进行扩展方法如下:
对图像isobel(i,j)进行遍历,isobel(p,q)≠0,按下式得到图像中像素点邻域内的像素均值:
式中,u为p-1,p,p 1;v为q-1,1,q 1;p为2,3…639,q为2,3…749,p、q为正整数,c(p,q)表示以像素点(p,q)为中心的3×3邻域内像素点的像素均值:
在本发明的滤除图像背景区域步骤(5)中,对图像矩阵a(u,v)中的连通区域大小进行筛选方法为:对图像矩阵a(u,v)中各个连通区域的所占像素点个数进行计数,分别记为s′1,s′2,s′3…s′c,其中c表示连通区域的个数、为有限的正整数,s′c表示该连通区域内的像素点个数;在区间内按等间隔分为5份,按下式确定间隔δ以及每个间隔中心di:
δ=(s′max-s′min)/4(7)
di=s′min k·δ/2(8)
其中s′min为连通区域最小值,s′max为连通区域最大值,k为1,2,3,4;保留连通区域像素个数大于d1的区域,记为s1,s2…sm,其中m为有限正整数、且m≤c。
由于本发明采用了扩展边缘区域、滤除图像背景区域,对图像中复杂的背景进行有效的滤除,并采用发明实施例1的方法与《一种基于图像处理的一维条码快速定位技术》公开的条形码定位方法进行对比实验,实验结果表明本发明方法准确率有明显提高,其中自动对焦图像的识别率提高了6.05%,对未自动对焦图像的识别率为91.63%,本发明方法具有对条形码区域的识别准确率高、使用范围广等优点,可用于各种产品的条形码识别。
附图说明
图1是本发明实施例1的流程图。
图2是本发明实施例1的灰度图。
图3是本发明实施例1的结果图。
图4是本发明实施例1垂直方向的灰度值一维投影图。
图5是本发明实施例1水平方向的灰度值一维投影图。
具体实施方式
下面结合附图和实施例对本发明进行进一步详细说明,但本发明不限于下述的实施方式:
实施例1
在图1中,本实施例的基于边缘特性的条形码定位方法由下述步骤组成:
(1)采集灰度图像
在图像库medium1dbarcodescollection中取一张图像,尺寸为640×480,将彩色图像转为灰度图像,如图2所示。
(2)确定sobel边缘图像
使用sobel算子提取灰度图像边缘:
isobel=|dx| |dy|(3)
式中,igray(x,y)为灰度图像中像素点的像素值,dx是水平方向与sobel算子与灰度图进行卷积的结果,dy是垂直方向的sobel算子与灰度图进行卷积的结果,isobel为灰度图像的边缘图像。
使用最大类间差方法得到边缘图像二值化的阈值t,对图像isobel(x,y)进行如下处理:
式中,isobel(i,j)代表边缘图像中像素点的像素值;
(3)扩展边缘区域
确定isobel邻域内的像素值的均值,比较邻域内像素值与均值的大小,对图像isobel(i,j)的边缘区域进行扩展,得到像素矩阵a(u,v),对图像isobel(i,j)的边缘区域进行扩展方法如下:
对图像isobel(i,j)进行遍历,isobel(p,q)≠0,按下式得到图像中像素点邻域内的像素均值:
式中,u为p-1,p,p 1;v为q-1,1,q 1;p为2,3…639,q为2,3…749,p、q为正整数,c(p,q)表示以像素点(p,q)为中心的3×3邻域内像素点的像素均值:
通过上述步骤,图像a(u,v)中的线条会向周围扩展,图像中线条集中的区域形成连通区域。
(4)中值滤波与形态学滤波闭操作
使用中值滤波法,再使用形态学滤波法中的闭操作对像素矩阵a(u,v)进行滤波,得到图像的连通区域s′c,c为有限的正整数。该步骤使得步骤(3)图像a(u,v)中的连通区域进一步扩大。
(5)滤除图像背景区域
对图像矩阵a(u,v)中的连通区域s′c的大小进行筛选,滤除图像中占像素点个数较少的连通区域,对图像矩阵a(u,v)中的连通区域大小进行筛选方法如下:
对图像矩阵a(u,v)中各个连通区域的所占像素点个数进行计数,分别记为s′1,s′2,s′3…s′c,其中c表示连通区域的个数、为有限的正整数,s′c表示该连通区域内的像素点个数;在区间内按等间隔分为5份,按下式确定间隔δ以及每个间隔中心di:
δ=(s′max-s′min)/4(7)
di=s′min k·δ/2(8)
其中s′min为连通区域最小值,s′max为连通区域最大值,k为1,2,3,4;保留连通区域像素个数大于d1的区域,记为s1,s2…sm,其中m为有限正整数、且m≤c。条形码图像中由文字,背景图案等所构成的连通区域要远小于条形码所构成的连通区域,图像中的文字,背景图案所形成的干扰被滤除。
(6)确定条形码位置
使用投影定位法对第5步得到的图像分别统计图像水平方向与垂直方向灰度值的一维投影,投影曲线波动位置为条形码的位置,如图4,5所示。根据波动的起始位置确定条形码在图像中水平与垂直的起始位置,完成条形码区域的识别,如图3所示。由图3可见,从文字,图案背景干扰的图像中将条形码区域提取出来。
为了验证本发明的有益效果,发明人在图像库中选取430张图像,其中自动对焦图像215张,未自动对焦图像215张,采用本发明实施例1的方法与《一种基于图像处理的一维条码快速定位技术》公开的条形码定位方法(纪琴琴,黄鲁.中国科学院大学学报,2019,36(05):716-720),以下简称对比文件1,进行了对比实验,实验结果如表1所示。
表1条形码位置识别效果表
由表1可见,本发明方法与对比文件1的方法相比,本发明方法准确率有明显提高,其中自动对焦图像的识别率提高了6.05%,对未自动对焦图像的识别率为91.63%。
1.基于边缘特性的条形码定位方法,其特征在于由下述步骤组成:
(1)采集灰度图像
从图像库中任取一张图像,其尺寸为640×480,将彩色图像转为灰度图像;
(2)确定sobel边缘图像
使用sobel算子提取灰度图像边缘:
isobel=|dx| |dy|(3)
式中,igray(x,y)为灰度图像中像素点的像素值,dx是水平方向与sobel算子与灰度图进行卷积的结果,dy是垂直方向的sobel算子与灰度图进行卷积的结果,isobel为灰度图像的边缘图像;
使用最大类间差方法得到边缘图像二值化的阈值t,对图像isobel(x,y)进行如下处理:
式中,isobel(i,j)代表边缘图像中像素点的像素值;
(3)扩展边缘区域
确定isobel邻域内的像素值的均值,比较邻域内像素值与均值的大小,对图像isobel(i,j)的边缘区域进行扩展,得到像素矩阵a(u,v);
(4)中值滤波与形态学滤波闭操作
使用中值滤波法,再使用形态学滤波法中的闭操作对像素矩阵a(u,v)进行滤波,得到图像的连通区域s′c,c为有限的正整数;
(5)滤除图像背景区域
对图像矩阵a(u,v)中的连通区域s′c的大小进行筛选,滤除图像中占像素点个数较少的连通区域;
(6)确定条形码位置
使用投影定位法对第5步得到的图像分别统计图像水平方向与垂直方向灰度值的一维投影,投影曲线波动位置为条形码的位置,根据波动的起始位置确定条形码在图像中水平与垂直的起始位置,完成条形码区域的识别。
2.根据权利要求1所述的基于边缘特性的条形码定位方法,其特征在于在扩展边缘区域额步骤(3)中,对图像isobel(i,j)的边缘区域进行扩展方法如下:
对图像isobel(i,j)进行遍历,isobel(p,q)≠0,按下式得到图像中像素点邻域内的像素均值:
式中,u为p-1,p,p 1;v为q-1,1,q 1;p为2,3…639,q为2,3…749,p、q为正整数,c(p,q)表示以像素点(p,q)为中心的3×3邻域内像素点的像素均值:
3.根据权利要求1所述的基于边缘特性的条形码定位方法,其特征在于在滤除图像背景区域步骤(5)中,对图像矩阵a(u,v)中的连通区域大小进行筛选方法为:对图像矩阵a(u,v)中各个连通区域的所占像素点个数进行计数,分别记为s′1,s′2,s′3…s′c,其中c表示连通区域的个数、为有限的正整数,s′c表示该连通区域内的像素点个数;在区间内按等间隔分为5份,按下式确定间隔δ以及每个间隔中心di:
δ=(s′max-s′min)/4(7)
di=s′min k·δ/2(8)
其中s′min为连通区域最小值,s′max为连通区域最大值,k为1,2,3,4;保留连通区域像素个数大于d1的区域,记为s1,s2…sm,其中m为有限正整数、且m≤c。
技术总结