一种基于梯度算法的多码解码方法及系统技术方案

技术编号:37664854 阅读:11 留言:0更新日期:2023-05-26 04:22
本发明专利技术公开了一种基于梯度算法的多码解码方法及系统,其中涉及的多码解码方法,包括:S1.获取多个条码相对应的图像,对获取到的图像进行灰度化以及对比增强处理,得到多个条码的灰度图像;S2.计算预设方向中灰度图像的梯度,得到梯度图,计算梯度图的非黑像素数量,得到非黑像素数量最大的梯度图;S3.将梯度图进行二值化处理,得到的白色区域为条码的位置,将白色区域外扩为矩形,得到条码区域位置框;S4.遍历条码区域位置框中的像素,得到条码,从每个条码的中间部分开始进行采样,得到每个条码不同方向的多个采样线,并计算每个采样线的梯度,得到梯度最大的采样线;S5.对梯度最大的采样线中的条码像素进行解码,得到解码结果。得到解码结果。得到解码结果。

【技术实现步骤摘要】
一种基于梯度算法的多码解码方法及系统


[0001]本专利技术涉及图像识别
,尤其涉及一种基于梯度算法的多码解码方法及系统。

技术介绍

[0002]条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。
[0003]一维条码又称线形条码,是由平行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一维条码只是在一个方向(一般是水平方向)表达信息,在垂直方向则不表达任何信息。
[0004]一般的一维条码是利用摄影设备对条码进行拍摄,以获取条码图像,一般对条码图像进行去燥、灰度提取、二值化、码字提取、译码等处理。然而在以上处理过程中,只适合单个一维条码译码,无法译码出多条码,并且一般在灰度提取和二值化过程中,多条码被误认为是单个条码,导致无法译码成功、误译码、漏译码等问题。
[0005]如图1所示,一个完整的一维条码由两侧静止区、起始符、数据符、校验符、终止符组成。它将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息。如图2

3所示,多条码是多个一维条码并排分布或者多个贴有条码的物品依次排布,使得条码之间的间隔很小,这也使得多条码不容易译码成功。
[0006]常用的条码扫描设备通常由光源(比如激光)、光学透镜、感光器件(例如CCD,CMOS等)、解码逻辑电路和I/O接口等组件构成,光源投射光至条码上,从条码处反射的光透过所述光学透镜进入感光器件表面,经过光电转换、模数转换等一系列处理后形成条码的数字图像,然后解码逻辑电路对摄取的图像进行分析和解码。
[0007]现有的一维条码码字解码方法为:1、对采集的条码图像进行预处理(灰度化、对比度增强);2、条形码图像边缘检测;3、条形码图像平滑;4、条码图像形态学处理;5、基于区域描述的条形码定位;6、分别识别X个区域的条形码;其中第5步具体为:(1)从图像的第一个像素开始,将当前标签设置为1;(2)若像素是一个前景像素,并且他还没有标签,那么给它当前的标签,并添加它为集合中的第一个元素,然后进行步骤(3),若它是背景元素或已被标记,那么对图像的下一个元素进行步骤(2);(3)从序列中弹出一个元素,并查看它的相邻元素,若相邻元素是一个前景元素,并还没有被标记,那么给他当前的标签,并添加到队列中,重复步骤(2),知道集合中没有更多的元素;(4)转到步骤(2),图像中的下一个元素,并将当前标签增加1;(5)计算每个区域的面积,即像素个数;(6)设置阈值,清除掉低于阈值的区域,得出X个条码的区域,记为{X1,X2,...}。
[0008]现有的方法从第2步开始,进行了图像的边缘检测,这一步操作能够检测出条码的边缘线和内部条空单元的边缘线,但是无法定位出条码区域,需要进一步的图像处理操作,
图像的平滑和形态学处理,这两步操作能够去除内部条空单元的大部分边缘线,并且保留了条码的边缘线,最后一步基于区域的方法定位出条码区域,但现有方法对连续多条码定位不出条码边缘线,因为图像的平滑和形态学处理等操作会将连续的多条码合并在一起,识别为单个条码,这将导致连续多条码解码失败或者错解、漏解等情况发生,以至于对条码的解码性能产生影响。
[0009]多条码在设备可视范围内,可采集到N个条码,且条码之间距离很近,通常是沿着条码方向的垂直方向进行排布,或者呈不规律分布,且条码之间互不重叠。然而现有的条码解码方式为单个条码单次解码,对于多个码,基本不能够一次性解码多个条码,需要手动扫描每个码,对于如图书馆,医药,商店等场景下的多条码扫描则是有很多繁琐的操作。
[0010]针对现有技术问题,本专利技术提供了一种基于梯度算法的多码解码方法及系统。

技术实现思路

[0011]本专利技术的目的是针对现有技术的缺陷,提供了一种基于梯度算法的多码解码方法及系统。
[0012]为了实现以上目的,本专利技术采用以下技术方案:
[0013]一种基于梯度算法的多码解码方法,包括:
[0014]S1.获取多个条码相对应的图像,对获取到的图像进行灰度化以及对比增强处理,得到多个条码的灰度图像;
[0015]S2.计算预设方向中灰度图像的梯度,得到数张多个条码对应的梯度图,计算每张梯度图的非黑像素数量,得到非黑像素数量最大的梯度图;
[0016]S3.将非黑像素数量最大的梯度图进行二值化处理,得到的白色区域为条码的位置,将白色区域外扩为矩形,得到条码区域位置框;
[0017]S4.遍历条码区域位置框中的像素,得到条码区域位置框内的白色像素则为条码,从每个条码的中间部分开始进行采样,得到每个条码不同方向的多个采样线,并计算每个采样线的梯度,得到梯度最大的采样线;
[0018]S5.对梯度最大的采样线中的条码像素进行解码,得到解码结果。
[0019]进一步的,所述步骤S2中预设方向包括45
°
、90
°
、135
°
、180
°

[0020]进一步的,所述步骤S2中还包括:将非黑像素数量最大的梯度图作为基础方向。
[0021]进一步的,所述步骤S2中还包括判断条码方向是否与基础方向相同,若否,则将基础方向倾斜。
[0022]进一步的,所述步骤S3中具体包括:
[0023]S31.计算非黑像素数量最大的梯度图中像素的平均值,并将计算得到的平均值作为梯度图的亮度阈值;
[0024]S32.基于梯度图的亮度阈值,将梯度图进行二值化处理,得到的白色区域为条码的位置;
[0025]S33.将白色区域外扩为矩形,并计算矩形的四个顶点坐标,得到条码区域位置框。
[0026]进一步的,所述步骤S4中遍历条码区域位置框中的像素为从条码区域位置框的左上起始点开始从左向右、从上到下开始遍历搜索,找到的白色像素则为条码。
[0027]进一步的,所述步骤S4中计算每个采样线的梯度,得到梯度最大的采样线,具体
为:
[0028]计算每个采样线经过条码时的距离,筛选出距离最短的采样线则为最佳采样线。
[0029]进一步的,所述计算每个采样线经过条码时的距离,表示为:
[0030][0031]f(L)=MAX(f(l0),f(l1),...,f(l
z
))(z≥0)
[0032]其中,f(l)表示采样线的梯度值;f(L)表示最佳采样线的梯度值;l表示采样线;L表示最佳采样线;x表示白色像素的像素值;m,n表示白色像素像素点的位置;x
n
表示n位置上的像素值;x
n
‑1表示n

1位置上的像素值;z表示采样线数量。
[0033]进一步的,所述步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于梯度算法的多码解码方法,其特征在于,包括:S1.获取多个条码相对应的图像,对获取到的图像进行灰度化以及对比增强处理,得到多个条码的灰度图像;S2.计算预设方向中灰度图像的梯度,得到数张多个条码对应的梯度图,计算每张梯度图的非黑像素数量,得到非黑像素数量最大的梯度图;S3.将非黑像素数量最大的梯度图进行二值化处理,得到的白色区域为条码的位置,将白色区域外扩为矩形,得到条码区域位置框;S4.遍历条码区域位置框中的像素,得到条码区域位置框内的白色像素则为条码,从每个条码的中间部分开始进行采样,得到每个条码不同方向的多个采样线,并计算每个采样线的梯度,得到梯度最大的采样线;S5.对梯度最大的采样线中的条码像素进行解码,得到解码结果。2.根据权利要求1所述的一种基于梯度算法的多码解码方法,其特征在于,所述步骤S2中预设方向包括45
°
、90
°
、135
°
、180
°
。3.根据权利要求2所述的一种基于梯度算法的多码解码方法,其特征在于,所述步骤S2中还包括:将非黑像素数量最大的梯度图作为基础方向。4.根据权利要求3所述的一种基于梯度算法的多码解码方法,其特征在于,所述步骤S2中还包括判断条码方向是否与基础方向相同,若否,则将基础方向倾斜。5.根据权利要求1所述的一种基于梯度算法的多码解码方法,其特征在于,所述步骤S3中具体包括:S31.计算非黑像素数量最大的梯度图中像素的平均值,并将计算得到的平均值作为梯度图的亮度阈值;S32.基于梯度图的亮度阈值,将梯度图进行二值化处理,得到的白色区域为条码的位置;S33.将白色区域外扩为矩形,并计算矩形的四个顶点坐标,得到条码区域位置框。6.根据权利要求5所述的一种基于梯度算法的多码解码方法,其特征在于,所述步骤S4中遍历条码区域位置框中的像素为从条码区域位置框的左上起始点开始从左向右、从上到下开始遍历搜索,找到的白色像素则为条码。7...

【专利技术属性】
技术研发人员:桑文涛张飞飞官慧仙
申请(专利权)人:杭州晟元数据安全技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1