本发明专利技术提供了一种一维条码解码方法,其中,所述一维条码在接收时受噪声干扰,所述方法包括:将白条码的电平宽度由窄到宽进行排序获得第一数组〔b1,…,bj,…,bn〕,将黑条的电平宽度也由窄到宽进行排序获得第二数组[s1,…,sj,…,sn];对于每一数组中的前j-1个数据取平均值,对前j个数据取平均值,j依次取2到n;对于每一数组,当前j个数据的平均值与前j-1个数据的平均值的比值大于或等于一阈值,则该第j个数据被认为是分割点,该第j个数据对应下一级宽度的条码;若小于所述阈值,则认为该第j个数据与该第j-1个数据对应的是同一级宽度的条码。
【技术实现步骤摘要】
本专利技术涉及条形码技术,尤其涉及一维条码识别技术。
技术介绍
条形码技术是在计算机应用和实践中产生并发展起来的广泛应用于商业、邮政、图书管理、仓储、工业生产过程控制、交通等领域的一种自动识别技术,具有输入速度快、准确度高、成本低、可靠性强等优点,在当今的自动识别技术中占有重要的地位。条形码是由一组规则排列的条(黑条码)、空(白条码)以及对应的字符组成的标记,“条(黑条码)”指对光线反射率较低的部分;“空(白条码)”指对光线反射率较高的部分,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。构成条码的基本单位是模块,模块是指条码中最窄的条或空,模块的宽度通常以mm或mil (千分之一英寸)为单位。构成条码的一个黑条码或白条码可由一个或多个基本单位组成,即黑条码或白条码的宽度为基本单位宽度的一倍或多倍。条码扫描器光源发出的光照射到黑白相间的条码上时,其反射光照射到光电转换器上,于是光电转换器接收到与白条和黑条相应的强弱不同的反射光信号,并转换成相应的电信号输出到放大整形电路。由于黑条反射率较低、白条反射率较高,被反射回来的光经过光电转换后,表现为宽窄不一的连续脉冲波形,其相应的电信号持续时间(即电平宽度)长短也不同。噪声对上述电信号的污染表现为:黑条被磨损(宽度减小),白条被加宽,即,黑白条码受噪声污染的表现不一致。现有技术的条形码图像处理方法中,由于模拟前端需要采集的数据量巨大,因此,对CPU处理能力以及模拟前端的要求高,从而实现成本高。此外,现有技术中通常采用同一个滤波函数来对条形码进行噪声滤波,运算效率低。因此,亟需一种算法复杂度低、硬件成本低,且性能稳定、可移植性强的一维条码解码方法。
技术实现思路
为了解决现有技术中的上述问题,本专利技术提供了。所述方法包括以下步骤:将白条码的电平宽度由窄到宽进行排序获得第一数组〔bl,一,bj,一,bn〕,将黑条的电平宽度也由窄到宽进行排序获得第二数组;对于每一数组中的前j-Ι个数据取平均值,对前j个数据取平均值,j依次取2到η ;对于每一数组,当前j个数据的平均值与前j_l个数据的平均值的比值大于或等于一阈值,则该第j个数据被认为是分割点,该第j个数据对应下一级宽度的条码;若小于所述阈值,则认为该第j个数据与该第j-Ι个数据对应的是同一级宽度的条码。在一个实施例中,所述方法还包括:以该分割点为参照,归一化其所在的数组,以进行码型识别。在一个实施例中,所述方法还包括:在识别出码型后,根据码型编码规则,进行解码。在一个实施例中,所述方法还包括:根据解码结果,动态调整所述阈值,若所述解码结果为无解时,则调整所述阈值,并重复权利要求1中的最后一个步骤。【附图说明】本专利技术的以上
技术实现思路
以及下面的【具体实施方式】在结合附图阅读时会得到更好的理解。需要说明的是,附图仅作为所请求保护的专利技术的示例。在附图中,相同的附图标记代表相同或类似的元素。图1为基于C0DE128码的一条形码;图2为接收端的模拟前端接收的电平波形;图3为根据本专利技术一实施例的一维条码解码方法的流程图。【具体实施方式】以下在【具体实施方式】中详细叙述本专利技术的详细特征以及优点,其内容足以使任何本领域技术人员了解本专利技术的
技术实现思路
并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本专利技术相关的目的及优点。黑条和白条经过光电转换后,表现为宽窄不一的电信号,其中黑条对应高电平,白条对应低电平。噪声对转换后的电信号的污染表现为:黑条被磨损(宽度减小),白条被加宽。图1为基于C0DE128码的一条形码。图2为接收端的模拟前端接收的电平波形。从图2中可以看出高电平(对应黑条)与理论值比变窄;低电平(对应白条)比理论值变宽。然而,黑/白条受噪声污染表现出局部的一致。也就是说,噪声对所有的白条的污染表现是一致的,即变宽的程度相近;噪声对所有的黑条的污染表现也是一致的,即变窄的程度相近。基于上述考虑,本专利技术对于黑白条纹分开处理。但是,即便已经将黑白条码分开处理,但在处理同一颜色的条码时,仍然存在码型识别上的困难。举例而言,一个一维条码中,码型按宽度通常分为4级,即I级宽度为一倍基本单元的宽度、2级宽度为两倍基本单元的宽度、3级宽度为三倍基本单元的宽度、4级宽度为四倍基本单元的宽度。不同宽度,代表的是不同的信息。在没有噪声干扰的理想情况下,接收端接收到的电平宽度与一维条码中的条码宽度是分别对应的。但在有噪声干扰的情况下,原本扫描到的例如一倍基本单元的宽度的白条,到了接收端可能接收到的是大于一倍基本单元的电平宽度,这时候,接收端需要判断所述电平宽度到底是表示I级宽度的白条,还是2级宽度的白条,这中间存在一个分割点,若能找到这个分割点,那么就认为小于该分割点的电平宽度是对应了 I级宽度的白条,而大于该分割点的电平宽度是对应了 2级宽度的白条。同理,对于2级宽度与3级宽度的白条之间、3级宽度与4级宽度的白条之间也存在这样的分割点。鉴于黑/白条受噪声污染表现出局部的一致的特点,本专利技术通过采用排序、平均值作参考的方法找到前后两个级别宽度之间的分割点,从而消除信号加性噪声的影响,充分利用信号特性,提高解码效率;同时阈值可以动态调整,更好适应信号质量。图3示出根据本专利技术一实施例的一维条码解码方法的流程图。步骤101中:将白条的电平宽度由窄到宽进行排序获得第一数组〔bl,…,bj,…,bn〕,将黑条的电平宽度也由窄到宽进行排序获得第二数组 ο步骤102中:对于每一数组中的前j-Ι个数据取平均值,对前j个数据取平均值,j依次取2到η。步骤103中:当前j个数据的平均值与前j-Ι个数据的平均值的比值大于或等于一阈值,则认为该第j个数据对应下一级宽度的条码,该第j个数据被认为是分割点;若小于所述阈值,则认为该第j个数据与第j-ι个数据对应的是同一级宽度的条码。例如,对于第一数组,bl显然对应I级宽度的白条,计算bl和b2的平均值,如果bl和b2的平均值与bl的比值大于或等于该阈值,则认为找到了分割点,即b2对应2级宽度的白条;若小于该阈值,则认为bl和b2均对应I级别宽度的白条;然后,计算bl、b2和b3的平均值,若bl、b2和b3的平均值与bl和b2的平均值的比值大于某一个预设的阈值,那么就认为b3为下一级宽度的白条,否则仍然为b3与b2属于同一级宽度的白条;依次类推。在一个实施例中,所述阈值为设定的判定常数,但在CPU可负荷范围内可以实时进行调整。例如,当最后的解码解不出来时,则说明该阈值需要进行调整。步骤104中,以该分割点为参照,归一化其所在的数组,进行码型识别(即,最终识别出I级、2级、3级、4级宽度)。步骤105中,根据码型编码规则,进行解码。步骤106中,根据解码反馈,动态调整所述阈值。根据实验数据,本专利技术的技术方案对CPU的速度要求低,而且识别率较高、识别速度快,有着非常广阔的应用前景。这里采用的术语和表述方式只是用于描述,本专利技术并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖本文档来自技高网...
【技术保护点】
一种一维条码解码方法,其中,所述一维条码在接收时受噪声干扰,其特征在于,所述方法包括:将白条码的电平宽度由窄到宽进行排序获得第一数组〔b1,…,bj,…,bn〕,将黑条的电平宽度也由窄到宽进行排序获得第二数组[s1,…,sj,…,sn];对于每一数组中的前j‑1个数据取平均值,对前j个数据取平均值,j依次取2到n;对于每一数组,当前j个数据的平均值与前j‑1个数据的平均值的比值大于或等于一阈值,则该第j个数据被认为是分割点,该第j个数据对应下一级宽度的条码;若小于所述阈值,则认为该第j个数据与该第j‑1个数据对应的是同一级宽度的条码。
【技术特征摘要】
【专利技术属性】
技术研发人员:冯恒,
申请(专利权)人:西安中颖电子有限公司,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。