一种一维条形码的解码方法及设备技术

技术编号:20917865 阅读:40 留言:0更新日期:2019-04-20 09:58
本发明专利技术涉及一种一维条形码的解码方法,包括以下步骤:通过一维CCD传感器获取一组包含所要识别的条码区域的原始AD数据;通过边界识别算法,找到“条”与“空”的边界,形成边界索引;搜寻条码区域,根据边界索引,确定原始AD数据内的“条”与“空”的宽度,将“条”与“空”的宽度比例与各条码的起始符和终止符进行匹配,判断是何种条码以及扫描方向,生成条码区域;译码,将条码区域送入译码模块进行解码处理,若译码成功,则结束,若译码失败,则进入数据放大步骤;对译码失败的条码区域进行放大,将该条码区域内数据的点数放大一定倍数,再依次进行搜寻条码区域和译码;若译码成功,则进入步骤结束,若译码任然失败,则放弃此组原始AD数据。

A Decoding Method and Equipment for One-Dimensional Bar Code

The invention relates to a decoding method of one-dimensional barcode, which includes the following steps: obtaining a set of original AD data containing the barcode area to be recognized by a one-dimensional CCD sensor; finding the boundary of \barcode\ and \empty\ through a boundary recognition algorithm to form a boundary index; searching the barcode area and determining the width of \barcode\ and \empty\ in the original AD data according to the boundary index. The width ratio of \bars\ to \empty\ is matched with the start and terminator of each barcode to determine what kind of barcode is and the scanning direction to generate the barcode area; decoding, the barcode area is sent to the decoding module for decoding processing, if decoding is successful, then the end, if decoding is unsuccessful, the data enlargement step is entered; and the failed barcode area is enlarged to generate the barcode area. The number of data points in the bar code area is enlarged by a certain number of times, and then the barcode area and decoding are searched in turn. If the decoding is successful, the step is completed, and if the decoding still fails, the original AD data set is abandoned.

【技术实现步骤摘要】
一种一维条形码的解码方法及设备
本专利技术涉及一种一维条形码的解码方法及设备,属于条码识别

技术介绍
条码技术是计算机技术与信息技术基础上发展起来的集编码,印刷,数据采集与识别处理的新兴技术,条码技术由于其识别快速准确而且可靠,成本低廉等优势广泛应用于商业,仓储物流管理,工业控制以及移动支付领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。目前被广泛使用的条码包括一维条码与二维条码;一维条码又称为线性条码,是由平行排列的多个“条”和“空”单元组成,线性条码依靠条和空的不同宽度和位置来表示;二维条码则是由一定的规律在二维方向上分布黑白相间的特定几何图形组成,其可以在二维方向上表达信息。在条码识读的过程中,通常是利用扫描设备对条码进行扫描以获取反射的光信号,或者是利用摄影设备对条码进行拍摄,以获取条码的图像,通过对反射的光信号或者对条码图像进行识别处理来获取条码信息;现有技术在识别高密度条码的情况下,识别速度慢,稳定性差,容易出现错误解码。
技术实现思路
为了解决上述现有技术中存在的问题,本专利技术提供一种解码方法,可用于一维条形码的快速识别,并且对高密度条码识读性能良好,且具有一定的景深。本专利技术的技术方案如下:技术方案一:一种一维条形码的解码方法,包括以下步骤:S1、数据采集,通过一维CCD传感器获取一组包含所要识别的条码区域的原始AD数据;S2、建立边界索引,通过边界识别算法,找到“条”与“空”的边界,并记录每个“条”与“空”的边界在原始AD数据中的位置,形成边界索引;S3、搜寻条码区域,根据各所述边界索引,确定原始AD数据内的“条”与“空”的宽度,将“条”与“空”的宽度比例与各条码的起始符和终止符进行匹配,判断是何种条码以及扫描方向,生成条码区域;S4、译码,将所述条码区域送入译码模块进行解码处理,若译码成功,则进入S6步骤,若译码失败,则进入S5步骤;S5、对译码失败的条码区域进行数据放大处理,将该条码区域内的原始AD数据的点数放大一定倍数,再依次进行上述S2至S4步骤;若译码成功,则进入步骤S6,若译码任然失败,则放弃此组原始AD数据;S6、输出译码成功后的条码信息。进一步的,通过一维CCD传感器获取的每组包含所要识别的条码区域的原始AD数据的数据点数为1500点;所述边界识别算法具体为:对原始AD数据进行数据统计,获取内部最大数值vMax以及最小数值vMin;计算用于判定边界幅度的波形幅度参数vA,vA=(vMax-vMin)>>n,“>>”为移位运算符,n为一调整精度的参数,为自然数;记录原始AD数据中连续下降的累计幅度,遇到第一个上升的点终止,将累计下降幅度与波形幅度参数vA进行比较,若累计下降幅度大于波形幅度参数vA且连续下降的起点和终点的水平距离大于p,p取2~10,则判断当前位置是一个“条”与“空”分界的降边界;记录原始AD数据中连续上升的累计幅度,遇到第一个下降的点终止,将累计上升幅度与波形幅度参数vA进行比较,若累计上升幅度满大于波形幅度参数vA且连续上升的起点和终点的水平距离大于p,p取2~10,则判断当前位置是一个“条”与“空”分界的升边界;记录找到的升边界与降边界在原始AD数据中的位置,形成边界索引。进一步的,条码区域搜寻步骤具体为:将边界索引送入条码区域搜寻模块,根据相邻的升边界与降边界的间距,计算“条”与“空”的宽度,相邻的升边界到降边界的距离为“空”的宽度,相邻的降边界到升边界的距离为“条”的宽度;搜索与每种条码起始符和终止符相匹配的“条空”比例组合,确定原始AD数据内的条码种类以及条码区域,并通过起始符和终止符的方向,确定条码的扫描方向。进一步的,所述译码模块的具体工作过程为:根据各条码区域内的条码种类将各条码区域送入对应条码的译码模块中,将条码区域边缘的“条空”组合转换为对应的符号数据,译码模块通过对每种码制的条码码词对所述符号数据进行编码处理,再利用排序的方式进行译码处理。进一步的,所述数据放大处理的具体步骤为:先将条码区域内的数据乘以一定倍数得到放大后的数据,再对放大后的数据采用线性插值的方式拟合原数据函数并获取更多的拟合数据点数;所述线性插值的方式具体如下:获取乘以一定倍数得到的数据上的数据区间[x0,x1],设拟合数据的函数为F(x,y)=(y-y0)/(y1-y0)-(x-x0)/(x1-x0)=0,令ai=(xi-x0)/(x1-x0),添加不同的xi取值算出ai,再求出yi,即可得到复数个在(x0,y0),(x1,y1)之间插值(xi,yi)。(y-y0)/(y1-y0)=(x-x0)/(x1-x0),令ai=(xi-x0)/(x1-x0),添加不同的xi取值算出ai,再求出yi,即可得到复数个在(x0,y0),(x1,y1)之间插值(xi,yi)。技术方案二:一种一维条形码的解码设备,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并对扫描获得的条码图像执行以下步骤:S1、数据采集,通过一维CCD传感器获取一组包含所要识别的条码区域的原始AD数据;S2、建立边界索引,通过边界识别算法,找到“条”与“空”的边界,并记录每个“条”与“空”的边界在原始AD数据中的位置,形成边界索引;S3、搜寻条码区域,根据各所述边界索引,确定原始AD数据内的“条”与“空”的宽度,将“条”与“空”的宽度比例与各条码的起始符和终止符进行匹配,判断是何种条码以及扫描方向,生成条码区域;S4、译码,将所述条码区域送入译码模块进行解码处理,若译码成功,则进入S6步骤,若译码失败,则进入S5步骤;S5、对译码失败的条码区域进行数据放大处理,将该条码区域内的原始AD数据的点数放大一定倍数,再依次进行上述S2至S4步骤;若译码成功,则进入步骤S6,若译码任然失败,则放弃此组原始AD数据;S6、输出译码成功后的条码信息。进一步的,通过一维CCD传感器获取的每组包含所要识别的条码区域的原始AD数据的数据点数为1500点;所述边界识别算法具体为:对原始AD数据进行数据统计,获取内部最大数值vMax以及最小数值vMin;计算用于判定边界幅度的波形幅度参数vA,vA=(vMax-vMin)>>n,“>>”为移位运算符,n为一调整精度的参数,为自然数;记录原始AD数据中连续下降的累计幅度,遇到第一个上升的点终止,将累计下降幅度与波形幅度参数vA进行比较,若累计下降幅度大于波形幅度参数vA且连续下降的起点和终点的水平距离大于p,p取2~10,则判断当前位置是一个“条”与“空”分界的降边界;记录原始AD数据中连续上升的累计幅度,遇到第一个下降的点终止,将累计上升幅度与波形幅度参数vA进行比较,若累计上升幅度满大于波形幅度参数vA且连续上升的起点和终点的水平距离大于p,p取2~10,则判断当前位置是一个“条”与“空”分界的升边界;记录找到的升边界与降边界在原始AD数据中的位置,形成边界索引。进一步的,条码区域搜寻步骤具体为:将边界索引送入条码区域搜寻模块,根据相邻的升边界与降边界的间距,计算“条”与“空”的宽度,相邻的升边界到降边界的距离为“空”的宽度,相邻的降边界到升边界的距离为“条”的宽度;搜索与每种条码起始符和终本文档来自技高网...

【技术保护点】
1.一种一维条形码的解码方法,其特征在于,包括以下步骤:S1、数据采集,通过一维CCD传感器获取一组包含所要识别的条码区域的原始AD数据;S2、建立边界索引,通过边界识别算法,找到“条”与“空”的边界,并记录每个“条”与“空”的边界在原始AD数据中的位置,形成边界索引;S3、搜寻条码区域,根据各所述边界索引,确定原始AD数据内的“条”与“空”的宽度,将“条”与“空”的宽度比例与各条码的起始符和终止符进行匹配,判断是何种条码以及扫描方向,生成条码区域;S4、译码,将所述条码区域送入译码模块进行解码处理,若译码成功,则进入S6步骤,若译码失败,则进入S5步骤;S5、对译码失败的条码区域进行数据放大处理,将该条码区域内的原始AD数据的点数放大一定倍数,再依次进行上述S2至S4步骤;若译码成功,则进入步骤S6,若译码任然失败,则放弃此组原始AD数据;S6、输出译码成功后的条码信息。

【技术特征摘要】
1.一种一维条形码的解码方法,其特征在于,包括以下步骤:S1、数据采集,通过一维CCD传感器获取一组包含所要识别的条码区域的原始AD数据;S2、建立边界索引,通过边界识别算法,找到“条”与“空”的边界,并记录每个“条”与“空”的边界在原始AD数据中的位置,形成边界索引;S3、搜寻条码区域,根据各所述边界索引,确定原始AD数据内的“条”与“空”的宽度,将“条”与“空”的宽度比例与各条码的起始符和终止符进行匹配,判断是何种条码以及扫描方向,生成条码区域;S4、译码,将所述条码区域送入译码模块进行解码处理,若译码成功,则进入S6步骤,若译码失败,则进入S5步骤;S5、对译码失败的条码区域进行数据放大处理,将该条码区域内的原始AD数据的点数放大一定倍数,再依次进行上述S2至S4步骤;若译码成功,则进入步骤S6,若译码任然失败,则放弃此组原始AD数据;S6、输出译码成功后的条码信息。2.根据权利要求1所述的一种一维条形码的解码方法,其特征在于:通过一维CCD传感器获取的每组包含所要识别的条码区域的原始AD数据的数据点数为1500点;所述边界识别算法具体为:对原始AD数据进行数据统计,获取内部最大数值vMax以及最小数值vMin;计算用于判定边界幅度的波形幅度参数vA,vA=(vMax-vMin)>>n,“>>”为移位运算符,n为一调整精度的参数,为自然数;记录原始AD数据中连续下降的累计幅度,遇到第一个上升的点终止,将累计下降幅度与波形幅度参数vA进行比较,若累计下降幅度大于波形幅度参数vA且连续下降的起点和终点的水平距离大于p,p取2~10,则判断当前位置是一个“条”与“空”分界的降边界;记录原始AD数据中连续上升的累计幅度,遇到第一个下降的点终止,将累计上升幅度与波形幅度参数vA进行比较,若累计上升幅度满大于波形幅度参数vA且连续上升的起点和终点的水平距离大于p,p取2~10,则判断当前位置是一个“条”与“空”分界的升边界;记录找到的升边界与降边界在原始AD数据中的位置,形成边界索引。3.根据权利要求2所述的一种一维条形码的解码方法,其特征在于,条码区域搜寻步骤具体为:将边界索引送入条码区域搜寻模块,根据相邻的升边界与降边界的间距,计算“条”与“空”的宽度,相邻的升边界到降边界的距离为“空”的宽度,相邻的降边界到升边界的距离为“条”的宽度;搜索与每种条码起始符和终止符相匹配的“条空”比例组合,确定原始AD数据内的条码种类以及条码区域,并通过起始符和终止符的方向,确定条码的扫描方向。4.根据权利要求1所述的一种一维条形码的解码方法,其特征在于,所述译码模块的具体工作过程为:根据各条码区域内的条码种类将各条码区域送入对应条码的译码模块中,将条码区域边缘的“条空”组合转换为对应的符号数据,译码模块通过对每种码制的条码码词对所述符号数据进行编码处理,再利用排序的方式进行译码处理。5.根据权利要求1所述的一种一维条形码的解码方法,其特征在于,所述数据放大处理的具体步骤为:先将条码区域内的数据乘以一定倍数得到放大后的数据,再对放大后的数据采用线性插值的方式拟合原数据函数并获取更多的拟合数据点数;所述线性插值的方式具体如下:获取乘以一定倍数得到的数据上的数据区间[x0,x1],设拟合数据的函数为F(x,y)=(y-y0)/(y1-y0)-(x-x0)/(x1-x0)=0,令ai=(xi-x0)/(x1-x0),添加不同的xi取值算出ai,再求出yi,即可得到复数个在(x0,y0),(x1,y1)之间插值(xi,yi)。6.一种一维条形码的解码设备,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并对扫描获得的条码图像执行以下步骤:S1、...

【专利技术属性】
技术研发人员:陈小杰宋少龙
申请(专利权)人:福州图腾易讯信息技术有限公司
类型:发明
国别省市:福建,35

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

1