CN1053752C - 模拟波形译码器 - Google Patents
模拟波形译码器 Download PDFInfo
- Publication number
- CN1053752C CN1053752C CN92113727A CN92113727A CN1053752C CN 1053752 C CN1053752 C CN 1053752C CN 92113727 A CN92113727 A CN 92113727A CN 92113727 A CN92113727 A CN 92113727A CN 1053752 C CN1053752 C CN 1053752C
- Authority
- CN
- China
- Prior art keywords
- waveform
- mentioned
- symbol
- decoded signal
- high density
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种可以将高密度条形码符号准确而有效地译码的模拟波形译码器,其中所实施的软件,最初是识别模拟波形的可译码部分,其次,处理该可译码部分并获得定义可译码部分的多数的波形记录元,再次对多数的波形记录元之一或更多进行高密度译码处理,生成表示含于高密度条形码符号中信息的第一译码信号。如果这个译码处理失败,则生成非译码信号。接着,对这个非译码信号进行低密度译码处理,生成表示含于低密度符号中信息的第二译码信号。这个第一及第二译码信号之一由模拟波形译码器输出。
Description
本发明涉及读取并译解条形码符号或其他形式的符号的激光扫描装置。详细地说,本发明为有关于直接作用于表示条形码符号的模拟波形并译解符号的模拟波形译码器。进一步地说,本发明是关于可将高密度的条形码符号高可靠性高效率地译码的模拟波形译码器。
在很多行业中,特别是食品杂货贩卖业或食品处理业,都把所使用的商品加以独自的条形码符号来表示。条形码,是用二色交互排列的条纹的宽度将商品识别序号等信息符号化。在已经开发出来的各种各样的条形码体系中,现在被最广泛地使用的符号是UPC(Universal Product Code)和Code39。
近来的条形码技术主要集中在激光扫描器,硬件数字化转换器以及译码软件等方面。条形码是由扫描激光器发出的光从条形码的图像区域反射时,亦即条形码用光源(激光)的点扩散函数(point spread function)卷积时,分析产生的波形被读取的。通常,硬件数字化转换器,作为输入,接受所读取的模拟波形,并把这个波形以二进制信号形式表现出来。即作为输出,产生记录着条形码的交互条纹宽度的数字序列。此后,再做译解宽度序列的尝试。这个方法简单,当激光束的点扩散函数比条形码的宽度小时,可以获得较好的结果。但是,这个方式,特别是旋转畸变(Convolution destortion)现象对理想情况下必须是一系列长方形脉冲的条形码符号的模拟表现有影响,所以,对高密度的条形码符号,不能获得较好的结果。此外,还存在着随模拟波形而影响条形码的译码能力的其他类型的噪声或畸变。这些噪声或畸变,都是由低的纹理噪声(grain noise),印刷噪声,点矩阵印刷,条形码符号的低反差印刷等产生的。所有的这些噪声或畸变对以各种方法获得的模拟波形产生影响,并且都妨碍简单地脉冲宽度的复原。例如,旋转畸变引发本质的平均化,使之偏离理想的信号,所以,当用模拟波形来表现时,脉冲有时看起来比实际宽而且圆。这个现象,既便噪声不存在,也有可能成为重大的译码错误的诱因。
畸变的另一个主要原因是墨水的洇渗。如果置于纸上的墨水流越意想的界限就将产生墨水的洇渗。根据条形码的印刷方法,墨水的洇渗有时将使条带或空白的符号发生实质性的变化,所以存在发生译码错误的可能性。条形码的一系列的条带虽然用人眼也可能识别,但是,典型的译码器必须能区别0.01英寸程度的宽度差。应该注意,这种类型的畸变(墨水的洇渗)在条带和空白之间的边缘(附近)处最为显著。
另外,如上所述,噪声也引起译码的问题。点阵符号有时会给表示条形码符号的模拟波形附加上小的峰或谷,这些峰与谷的大小与打印机的点阵尺寸有关。其他形式的噪声、如由人工环境光产生的低频噪声或太阳光及(或)扫描器的电子装置产生的散粒噪声都使之产生附加噪声,从而存在影响对边缘的感知的可能性。由于这些附加噪声有损于模拟波形的振幅,所以,为确定波形的哪一个峰是有意义的,作为二进制脉冲哪一个是有效的,要规定阈值。但是,高密度的波形在低密度条形码中类似于噪声,所以,为了保有用硬件数字化转换器除去或合并的波形的峰/谷,根据这个阈值,限制现在的条形码读取装置的工作范围及空间解像度。
由于上述的限制或现在的条形码译码技术的缺点所限,人们迫切期待一种具有更广的工作范围和更高的解像度的模拟波形译码器。详细地讲,可以处理大的旋转畸变或点矩阵符号畸变的模拟波形译码器将是非常有用的。
因而,本发明的目的就是,提供不一定必需硬件数字化转换器的、直接作用于模拟波形的模拟波形译码器。这样的模拟波形的译码可以通过将波形直接译码成为得到与理想的输入相近的形状而在除去波形的畸变之后以通常的手法译码来进行。进而提供可将现在使用的高密度条形码符号有效而且高效地译码,而且可以使之适用于将来的高密度符号体系译码的模拟波形译码器。
本发明为解决上述的课题,将提供译解具有表示激光光源和未知密度的条形码符号的卷积的振幅的模拟波形的模拟波形译码器。本发明将进而提供可译解3mi1(千分之一英寸)Code 39符号体系或其他高密度符号体系等高密度条形码符号的高密度波形译码器。
本发明的模拟波形译码器是使用单一算法并直接作用于模拟波形的波形辨识装置。被用于算法的软件,从波形的构造出发直接对信号/噪声做出判定。代之也可以把识别装置的输出变成除去了畸变的波形(即,尽可能地接近于原条形码的波形)之后,通过使用通常的译码器并推定条带与空白的宽度来译码。
使用于本发明的模拟波形译码器中的软件,最初,通过确定模拟波形的边界来识别波形的可译码部分。然后,处理这一可译码部分,获得定义模拟波形的可译码部分的多数的波形记录元。再次,对多数的波形记录元之一或更多做高密度译码处理并生成表示含于高密度符号中信息的第一译码信号。如果这一译码处理失败,则产生非译码信号,尔后,对这个非译码信号做低密度译码处理,生成表示含于低密度符号中信息的第二译码信号。最后,从模拟波形译码器输出第一或第二译码信号。
在本发明的模拟波形译码器中,波形的构造可以分为二类,各类具有自己的模型(高密度模型和低密度模型)。对各模型可设计不同的译码器或者除去畸变的操作,对各输入波形两个译码器均可以适用。
在高密度模型的场合,译码器使焦点重合于以多数的波形记录元所表示的波形。做为记录元,有极值(波形的峰和谷)的位置,这些极值的各种各样的次数的微系数,以及这些微系数的组合(畸变被除去了的波形的情况)。进而,这些极值的尺寸,连结极值间的直线的尺寸,及以这些极值的零点也将被使用。这些波形记录元为能译解高密度条形码提供了充分的信息。
在低密度模型的场合,因极值的位置可以明确地确定,所以,利用连续的波形的峰与谷的宽度即极值的宽度,可以充分地译解低密度条形码。仔细分析在前述能测定的诸特征的尺寸和位置的统计,高密度波形和低密度波形是可以区别的。一系列的极值在被送入低密度译码器之前,低密度译码器可以从波形除去噪声的极值。通过用直方图表示全部的边缘尺寸来确定噪声水平阈值,在尝试各译码之前,可以从波形表现除去噪声。
如果要对不管什么样的密度的什么样种类的条形码都能译码,则必须使用高密度波形表现和译码器以及低密度波型表现和译码器。各模型具有以下详细说明的特有的优点。
图面的简单的说明:
图1是本发明的模拟波形译码器的方块图。
图2是本发明的高密度译码器的流程图。
图3是本发明的低密度译码器的流程图。
图4是表示边缘尺寸的直方图的图形。
图5是表示表达高密度条形码符号的模拟波形的图。
图6是表示高密度波形的极值范围的图。
图7是表示低密度波形的极值的宽度的图。
图8是为寻找模拟波形的边界所使用的软件的流程图。
图9是为寻找波形的极值点所使用的软件程序的流程图。
图10是为获得拐点三重线所使用的软件程序的流程图。
图11是为获得边缘尺寸的直方图所使用的软件程序的流程图。
图12是为了返回所使用的软件程序的流程图。
图13是激光扫描器的简图。
符号的说明:
10:模拟波形译码器
12;获得条形码符号的模拟波形表现的装置如光探测器
14:识别模拟波形的可译解部分的装置
16、由可译码部分获得多数的波形记录元的装置
18:极值
20:边缘尺寸
21:边缘
23:非译码信号
24:作成边缘尺寸的直方图的装置
25:种子点
26:高密度译码器
28:输出装置
30:低密度译码器
32:输出装置
38:极值范围
40:条形码读取装置(激光扫描器)
42:握部44:扳机46:光束48:轻型塑料制机架50:光操测器54:CPU54:电池58:光透过窗60:反射光62:透镜64:光源66:半反半透镜68:摆动镜70:扫描马达
图1是包括构成用于条形码符号的译码的算法的各阶段的本发明的模拟波形译码器的方框图。以下,虽仅为关于条形码符号的说明,但希望大家理解,此模拟波形译码器也可用于其他形式的符号体系的译码。图1中虽然没有给出,但最初,条形码符号为获得其模拟波形,将用激光光源卷积,亦即被照射。然后,图1的装置12接收从条形码符号反射回来的光并变换为电信号。接着,电信号被放大后,输入给模拟波形译码器10,于是便可以实施译码算法。装置12,是光探测装置,例如是图8记载的手持激光扫描条形码读取装置的光探测器50之类的就可以。以下说明的由种种软件程序及数字计算机亦既微处理器实施的算法,基本上由五个主要步骤构成。第一步是用装置14识别模拟波形的可译码部分。如获得了可译码部分,装置16就可获得表示模拟波形的特征的多数的波形记录元。理想的实施例中,作为获得的波形记录元,含有极值的位置(波形的峰和谷的位置),边缘尺寸(连结邻接极值的直线的尺寸)及拐点三重线(峰和谷合并的位置)。这些波形记录元,主要由译解高密度符号的高密度译码器26(后面将详细说明)使用。装置24生成由低密度译码器30(后面将详细说明)使用的边缘尺寸的直方图。
被输入模拟波形译码器10的模拟波形信号,应该注意是表示高密度条形码符号还是低密度条形码符号的哪一类。如前所述那样。噪声可能会让人把低密度符号看成为高密度符号,所以,算法在最初对应该使用哪种形式的(高密度还是低密度)译码器是不清楚的。因而,对波形做了前述处理之后(即,经过装置12及装置14的处理之后),自动地实行高密度译码步骤。如果译码成功,则算法结束。如果译码失败,则为使用低密度译码器实行译码,将生成非译码信号23。这意味着无论是高密度译码器还是低密度译码器,译码都可能是成功的。模拟波形译码器是选择性的。
算法的第一步是识别波形的可译码部分。这个步骤是由寻找条形码的左边界和右边界的软件程序实施的。在理想的实施例中,基本上软件是发现条形码内的一点后,由此向两边做外向搜索,直到找到左侧及右侧的“无感带”为止。如果发现了无感带,则在无感带之前可以看见的序列的最后的有意义的边缘处设定边界。
图8所示的是在理想的实施例中,为寻找左边界和右边界所使用的软件程序的流程图。下面详细说明此流程图。最初,寻找条形码内的初始点(CUREDGE)。向此点的右方使用采样窗口,程序确定采样窗口内的有意义的上升边缘间的最大距离(EGDST)。变数CURDST是初始点向右邻接的有意义的上升边缘间的现在距离。程序一边向右搜索上升边缘,一边判断变数CURDST是否是EGDST的值的2倍以上。如果是的话,就是找到了无感带,因而被找到的最后的上升边缘(PREVEDGE)就成为右边界。接着,实行同样程序对初始点的左侧确定左边界。边界是确定模拟波形的可译码部分的界限的根据,至于哪一侧的边界最初被确定则没有关系。使用其他的方法也可以确定这个可译码部分的界限。
算法的下一个步骤是使用软件程序识别具有模拟波形的可译码部分的特征的信息。这个步骤是由为获得一组波形记录元(表示模拟波形的特征的数据组)的若干个软件程序构成的。这些软件程序是为译解高密度条形码符号而由高密度译码器26使用的。开始,模拟波形的可译码部分将被适时采样,对此望理解为生成强度值的排列。这个排列是表示波形的主要数据构造,从存贮在计算机内存中的这个强度值的排列,可以获得波形记录元的子集合(排列)。
从强度值的排列获得的第一组波形记录元是如图5中所示那样的极值的位置。极值如图明确所示,表示模拟波形的峰和谷的转换点,图5是高密度条形码的波形表现。因峰和谷的位置恰当地记录了高密度波形,所以在理想的实施例所使用的方法是把极值分别分配给峰及谷的中心。极值点由三部分,即左部分、平坦的中央区域及右部分构成(参照图7)。获得的一组极值的位置作为排列被保存起来。
图9所示的是在理想的实施例中使用的寻找极值位置18的软件程序的流程图。这个方法也包含将在后面说明的寻找拐点三重线的个别的程序,这些程序也可以分别实施。程序对左边界和右边界之间采样的波形的强度值排列WAVEFORM(i)的全部点扫描,寻找具有连续部分的区域。如果这些部分被发现,则在其中央区域的中心分配极值(变数“i”在扫描上述采样波形的强度值的排列时,起指针的作用)。在理想的实施例中,开始是判断在波形的扫描的部分是否存在拐点三重线。如果不存在,程序用前边所述的方法检查极值点存在与否。如果极值点被发现,则在含有全部极值位置的排列中记录其极值。注意,这个循环反复进行直到到达边界为止。
图5表示的是高密度模拟波形的直线近似。因为该近似非常良好,所以作为单独的方法或寻找极值位置的方法的一部分,也可获得边缘尺寸的排列。此排列表示连结相邻接极值的边缘的尺寸。译码的目的是定义以边缘21为对角线的长方形及长方形的面积定义边缘尺寸20。(边缘是连结相邻接极值的直线)获得边缘尺寸的排列所必要的全部是包含极值位置的排列确定高度(强度)和连续极值间的距离(例如,第i位和第i+1位极值间的距离)。只要把得到的两个值单独相乘,便可得到相当于第i位极值的边缘尺寸20。如果对右边界和左边界间的全部极值都实行上述处理过程,则构成边缘尺寸的排列。
激光和高密度符号的卷积所产生的模拟波形的另一个特征是拐点三重线(即作为连续的峰和谷间的波形上的点,表示被合并并消灭了的峰和谷的组合)的形成。这个被合并的峰和谷可以由寻找波形的拐点三重线的程序复原。图10所示的是相当于搜索出拐点三重线的软件程序的流程图。拐点三重线由三个区域(陡倾斜的前部区域、缓倾斜的中央区域及陡倾斜的端部区域)构成。对于采样的模拟波形的强度的排列WAVEFORM(i),在进行同样扫描的点和极值相似。详细地说,找到前部区域后,计算中央区域的开始处发现的梯度(GRAD(i),变数i作为指针使用。最初,根据前部区域和中央区域的梯度差来确定拐点三重线是单调增加的或者是单调减少的。尔后,使用指针j,确定中央区域的范围。中央区域在单调增加的拐点的情况下,其梯度一直伸展到初始梯度以下(即,GRAD(j)<GRAD(i))。或者在单调减少的拐点的情况下,其梯度一直伸展到初始梯度以上(即,GRAD(j)>GRAD(i))。如果找到了中央区域的范围,则计算进入了位于端部区域的距离处的梯度如GRAD(j+5),并与位于中央区域的梯度GRAD(j)比较,其可确定只大于一定的值(理想的实施例的场合为1.5)情况。如果端部区域不满足这个基准,则结束程序,返向图9所示的极值发现程序。如果满足拐点三重线的基准,则波形的谷在WAVEFORM(i)处再生,波形的峰在WAVEFORM(j+1)处再生。此后,高密度译码器26可把再生的波形的峰及谷的中心作为特别的极值位置18使用。程序在此后返向极值发现程序。
获得波形记录元的装置16,不只仅被限于确定极值位置,边缘尺寸以及拐点三重线。例如,低密度模型虽然与峰或谷以下的区域没关系,但确与符号的条带/空白的宽度对应的峰或谷的宽度有关。因此,当极值位置被发现的时侯,可以实行(装置16)。即如图3的步骤34所示那样,在尝试低密度译码的时侯,可以执行发现峰/谷的极值宽度的程序。图7所示是低密度波形的峰的极值宽度。为发现峰及谷的极值宽度所使用的程序,有必要确定峰或谷的中心(即其极值位置)。
下面,参照图7说明发现在理想的实施例中使用的极值宽度的一般的程序。基本上,使用式(1a)、(1b)所表示的几何学公式,寻找曲线上二个点的水平距离。全部的x及y座标由极值位置的排列获得。
Yr=(Yi+1+Yi)/2 YL=(Yi+1+Yi-1)/2 (1a)
Xr=(Xi+1+Xi)/2 XL=(Xi+1+Xi-1)/2 (1b)
在式(1a)及(1b)中,(Xr,Yr)是波形的右边缘中的中点,(XL,YL)是在左边缘中的中点。(Xi-1,Yi-1)及(Xi+1,Yi+1)表示特定的波形的峰或谷的第i位极值的相邻的极值。水平距离(Xr-XL)表示峰/谷的宽度。如果得到了一组完整的波形记录元的排列,算法将命令软件程序从边缘尺寸的排列作成直方图。因为从直方图获得的信号在低密度译码时是有价值的,所以,这个直方图生成步骤是重要的。模拟波形内的噪声通常作为波形上的小干扰出现,所以从更大的峰(信号)分离小的峰(噪声)的引导作用是必要的。这个机能由边缘尺寸20的直方图来履行。图11所示的是生成直方图的软件程序的流程图。在此,变数SIZE(CUREDGE)意味着来自作成直方图中的边缘尺寸的排列的每一个边缘尺寸。变数CUREDGE是指针。变数MAXEDGESIZE和MINEDGESIZE分别表示边缘尺寸排列的最大边缘尺寸和最小边缘尺寸,用于直方图正规化。变数HISTOGRAMSIZE被用来限制不同的边缘尺寸(用于作成直立方图的x轴)数。例如,在理想的实施例的场合,可以使用100个直方图尺寸。对变数IDX分配值的式子计算被正规化了的边缘尺寸(在零值和直方图尺寸值之间正规化)。图4中所示的直方图可以在尝试着低密度译码时从波形中除去,这暗示着某一得到的噪声水平阈值。图4是相对于边缘尺寸(x轴)绘出了边缘发生频度(y轴)的图形。用T1,T2,T3表示的直方图的谷,表示某一得到的噪声水平阈值。关于噪声除去处理过程后面将详细地说明。
此后,使用高密度译码器26译解条形码符号。因波形的峰的面积和谷的面积与高密度条形码内的条带/空白的尺寸具有直接相关的关系,所以,高密度译码器26使用作为译码基础的峰的面积和谷的面积。图2所示为译解高密度条形码符号的方法或算法的流程图。对高密度译码器26的输入是由一系列的极值18构成的。由软件程序所实施的算法可以分成单个的阶段。初始化阶段27由识别输入序列的最小边缘尺寸20的步骤构成。最小边缘尺寸被识别为对高密度译码器的种子点。其相邻接的极值,作为条形码内的“狭”-“狭”序列被识别、分类。图5所示为识别了种子点25的高密度条形码的波形表现。
下一阶段是极值分类阶段29,在此阶段中,软件程序最初推定在各极值位置的狭窄的峰和宽阔的峰的尺寸/面积;极值的尺寸亦既极值范围38与同极值点18相接的长方形的面积有关连。图6所示为极值范围38。因为极值范围是被定义为与别的极值范围不重叠的长方形的面积,所以,极值点18与长方形的水平的一边相接,波形通过朝向极值点的长方形的角落。识别了种子点25之后,把解扩展到条形码的边界。解必须分类所生成的各极值范围38。此分类使用阀值法进行。现在范围阀值由图2中步骤31所示的宽极值和窄极值的尺寸推定导出。例如,对应于宽极值的初始尺寸,推定值ARENW是输入序列的最大边缘20的尺寸。对应于窄极值的初始尺寸的推定值AREAN是输入序列内的最小边缘尺寸的1/2(种子点25)。现在范围阀值由下式(2)计算。阈值=(AREAW+AREAN)/4 (2)
此后,如图2中步骤35、37所示那样,利用极值范围的定义,从种子点25开始,顺次生成和分类相邻接的各极值的极值范围。生成的极值范围同在步骤31生成在步骤39被更新的现在范围阀值相比较,如果生成的极值范围38比现在范围阀值大,则分类之为“宽的”。如果生成的极值范围38比现在范围阀值小,则分类之为“窄的”。图2中步骤37表示这个分类步骤。
高密度译码器26是适应型译码器。解如果从种子点25偏离,则更新为获得现在范围阀值所使用的推定直(步骤31)。亦即,使用步骤37分类的“宽的”或“窄的”极值范围38的值,确定其相邻接的极值的尺寸。因而,如果解向边界扩展,则更新AREAW或AREAN的尺寸。图2中步骤39所示为更新范围阀值的步骤。若因离开了2要素的大的极值而使小的值受到相当的畸变(增大),则可以人为地使现在范围阀值增大,以补偿上述畸变的影响。例如,下式(3)所示即为补偿畸变的影响而修正的现在范围阀值。阈值=(AREAW+AREAN)/3 (3)
请注意,图2中步骤35~39对各极值范围反复进行,直到达到波形的边界为止。
以其他方法也可确定和更新现在范围阀值,例如代之一次生成并分类一个个的各极值范围,可以在开始就生成全部的极值范围38,接着分类各极值范围。不论哪种方法,当到达波形的边界及高密度译码器26判断了的时侯,将终止被输入的极值序列的分类。接着,使用参照用表译解序列。如果高密度译码的尝试成功,算法生成并输出表示被译解的符号的信号,然后结束。如果高密度译码的尝试失败,则可以假定拐点三重线的再生的峰/谷不是正确的极值点,并再次实施高密度译码序列。(在最初的译码尝试中,高密度译码器假定那些(序列)是正确的极值点)第二次的高密度译码的尝试将在下面说明的图12中的返回程序中实施。
应该注意,上述译码方法同从波形中除去畸变,然后用通常的手段(低密度译码器)译码是等价的。
若高密度译码器26的译码尝试失败,则为触发低密度译码器30而生成非译码信号23。低密度符号的模拟表现的特征是虽基本上无损于宽度的信息,但却有损极值的高度的信息(通常是由点矩阵噪声造成的)。因而,由于极值的面积可能畸变,故低密度译码处理只使用宽信息分类极值。极值的宽度可以使用实施公式(1a)、(1b)的软件子程序来确定。在低密度模型的场合,确定极值的宽度不使用拐点三重线。尔后,将一系列的极值的宽度(不是极值本身)送往低密度译码器30。于是,将一系列的极值宽度分类成“宽的”或“窄的”之后,使用参照用表译码。图3所示为低密度译码器30的流程图。图3中步骤34为在各极值位置确定和分类极值的宽度的步骤。如果译码成功,算法生成并输出表示被译解了的标记的信号,然后结束。如果高密度译码的尝试失败,则对噪声水平进行新的假定,实施其他尝试。这个尝试是记载于图12的图3中步骤36的返回程序。
在返回程序中,算法给出变更噪声的假定,再处理数据,尝试其他的低密度译码的命令。假定通常是必须从波形中除去的由噪声产生的与峰和谷相关的部分。虽然返回方法的数量很多,但在理想的实施例中的返回方法必须从模拟波形全体中除去噪声。图4的直方图的谷T1,T2,T3表示某一得到的噪声水平阀值。噪声水平阀值以上的所有边缘20被认为是有意义的边缘,其以下的边缘被认为是由噪声产生的东西。例如,若适用以图4的T1表示的噪声水平阀值的话,则其阀值以下的边缘20将被合并成为更大的邻接边缘。此后,再一次尝试低密度译码。若此低密度译码的尝试失败,则算法将命令再一次除去第二噪声水平阀值(如用图4的直方图24的谷T2表示的噪声水平阈值)以下的边缘。然后在噪声被除去的状态下再一次做译码尝试。从以边缘尺寸的直方图表示的模拟波形中除去噪声信息的这一方法,可连续地适用到使应该除去的噪声水平成为波形内的最大边缘的50%为止。
在图12的返回程序中,将噪声水平初始化成零,把标志HIGHRES和INFLECT设置为表示所有的极值点和拐点被看成是正确的“真”。标志HIGHRES为“真”时,意味着译码是由高密度译码器26做尝试。为“伪”时,意味着所使用的是标准的低密度译码器30。算法最初命令每一次将10个极值点放入字符缓冲区CHAR,如果被放入CHAR的极值点是正确的(即是可译码的),则循环继续直到达到边界为止。如果被放入CHAR的极值点是不正确的,则把标志INFLECT设置成为“伪”,尝试从波形的始点开始做其他的高密度译码。标志INFLECT是“伪”的时侯,不是将拐点,而是只将极值点送入缓冲区。如果下一次的译码尝试成功,则对其余的10个极值点,反复循环。若字符缓冲区不正确,则将标志HIGHRES设置为“伪”,除了不使用标准译码器(低密度译码器)30外,再一次反复全算法。若低密度译码的尝试失败,则判断噪声水平比阈值水平大否,如果大,则此波形是不能解译的,将之送往表示比较情况的输出。如果噪声水平比阈值小,则按照图4的直方图增加噪声水平,从如上所述的波形表现中除去比以直方图表示的噪声水平小的全部的波形边缘。
理想的实施例中,算法的软件虽被置于远离激光扫描读取装置的地方,但在图13中所示的手持式激光扫描条形码读取装置中,也可以组入本发明。与此相比,可以容易地对软件及(或)参照用表的数据库实施变更。在理想的实施例中,读取装置40是具有手枪形式的握部42和板机44的枪式的装置。使用者把装置瞄向符号并操作板机44,则激光束46发射,检测电路工作,所以,如果装置是电池内藏型,就可延长电池的有效寿命。在轻型塑料制机架48中,除电源亦即电池54以外,还组入激光光源,光探测器50,光学系统和信号处理电路网以及CPU52。位于机架48前端的光透过窗58允许光束46和反射光的出入。读取装置40可设计成或使之接触条形码符号,或使之不接触符号而从离开条形码的地方朝向符号的形式,这种类型的手持式条形码读取装置是指定在大约数英寸的范围内操作的。
如图13所示那样,使用适当的透镜62(或多透镜系统)可以使扫描用光束的焦点与位于适当基准面的条形码符号重合。光源64如半导体激光二极管设置成把光束导入透镜62的光轴的状态。从光源64出来的光束通过半反半透镜和需要的其他透镜或整形构造,由连接在扣动扳机44才动作的扫描马达70上的摆动反射镜68来反射。如果光源64的光是人眼看不见的光,则可使光学系统包含瞄准用光。瞄准用光如有必要可以固定,或生成如激光束那样可以扫描的可见光光点,这样,使用者在扣动扳机44之前,可以一边观察这个可见光光点一边把读取装置对向条形码符号。
以上虽只对线形即单一的条形码做了说明,但本发明不仅限于所记载的实施例,也可以适用于更复杂的扫描模式、二维条形码如Code49或类似的符号。此外,本发明的方法也可以使用于以其他形式表示(如文字)或从扫描物品的表面特征中获得信息的各种机械显示装置。
在本发明的全部实施例中,把读取装置亦即扫描器的构成元件组入非常紧凑的单元,可以把扫描器做为单一的印刷电路板亦即集成微型组件来制造。这样的模件有互换性,可以作为多种多样的数据收集装置的激光扫描元件使用。例如,可以对手持扫描器,或安装在桌子上的可伸展的可挠臂或台上的、或安装在桌子的下侧的,或作为更复杂的数据收集装置的子部件来设置的桌顶式扫描器选择地使用模件。
扫描模件由设置在支持体上的激光/光学装置子部件,旋转或往复运动镜等扫描元件及光探测器构成较为合适。对应上述的构成部件所安装的控制线或数据线可连接设置在模件边缘或外面的电接插件。把扫描模件和对应于数据收集装置的其他的要素所安装的对方侧的接插件做电气上的连接。
每一个模件,可以具有特定的扫描特性或译码特性(如在一定的工作距离使用的可能性或在特定的符号体系及印刷密度下使用的可能性)。另外,也可以用与模件相关的控制开关的手动设定来决定这些特性。还有,使用者也可以使之适应于扫描不同种类的物品的数据收集装置。亦即通过用简单的电接插件相互地交换数据收集装置的模件,可以使数据收集装置适应于不同的用途。
如上所述的扫描模件,可以组入具有键盘、显示装置,数据存贮装置,应用软件及数据库等部件之一或一个以上的独立型数据收集装置中。上述的数据收集装置,可以进一步具有通过调制解调器或ISDN接口,或由从便携终端向固定接收机的低功率无线同步通信实现同局部区域联网的其他部分或电话交换联网的通信的通信接口。
上述的各种特性或二个以上特征的组合,可有益于应用于其他形式的扫描器或与记载的形式相异的条形码读取装置。
虽然对本发明的理想的实施例详细做了说明,但对该领域的技术人员,在由专利权要求的范围所限定的发明精神及范围内,对形状或细部构造可以容易地做出其他改变。
Claims (5)
1、一种在符号扫描装置中,直接作用于表示符号的模拟波形,译解含于符号中的信息的模拟波形译码器,包括识别上述波形的可译码部分的装置,其特征在于还包括:
响应上述波形中的可译码部分,获得定义波形可译码部分的多数波形记录元的装置;
响应上述多数波形记录元之一或更多,生成表示含于高密度符号中信息的第一译码信号或非译码信号的第一译码装置;
对应上述的非译码信号,响应上述多数波形记录元之一或更多,生成表示含于低密度符号中信息的第二译码信号的第二译码装置;
上述符号为高密度符号时,输出上述的第一译码信号的装置及上述符号为低密度符号时,输出上述的第二译码信号的装置。
2、一种在符号扫描装置中,直接作用于表示高密度符号的模拟波形,译解含于高密度符号中信息的模拟波形译码器,包括通过识别上述模拟波形的边界,识别波形的可译码部分的装置,其特征在于还包括:
响应上述波形的可译码部分,获得定义上述波形可译码部分的多数波形记录元的装置;
响应上述多数波形记录元之一或更多,译解含于高密度符号中信息的高密度译码装置,以及输出表示含于上述符号中信息的信号的装置。
3、一种为译解表示含于符号中信息的模拟波形的方法,包括通过确定上述模拟波形的边界,识别上述波形的可译码部分的步骤,其特征在于还包括以下步骤:
处理上述模拟波形的可译码部分,获得定义上述波形可译码部分的多数波形记录元;
对上述的多数波形记录元之一或更多进行第一译码处理,生成表示含于高密度符号中信息的第一译码信号或非译码信号;
对应上述非译码信号,对上述的多数波形记录元之一或更多进行第二译码处理,生成表示含于低密度符号中信息的第二译码信号;以及当上述符号为高密度符号时输出上述的第一译码信号,当上述符号为低密度符号时输出上述的第二译码信号。
4、一种为译解表示含于高密度符号中信息的模拟波形的方法,包括通过确定上述的模拟波形的边界,识别上述波形的可译码部分的步骤,其特征在于还包括以下步骤:
处理上述的模拟波形的可译码部分,获得定义上述波形的可译码部分的多数波形记录元;
对上述的多数的波形记录元之一或更多进行高密度译码处理,生成表示含于高密度符号中信息的译码信号;以及输出表示含于上述符号中信息的上述的译码信号。
5、一种为在符号扫描装置中,直接作用于表示条形码符号的模拟波形,译解含于上述符号中信息的模拟波形译码器,包括识别上述波形的可译码部分的装置,其特征在于还包括:
响应上述波形的可译码部分,获得定义上述波形的可译解部分的多数的波形记录元的装置;
响应上述的多数的波形记录元之一或更多,除去上述波形的可译码部分的畸变,获得定义上述的条形码的连续边缘的位置的一组值的装置:
响应上述的一组值,生成表示含于低密度或高密度条形码中信息的译码信号的译码装置,以及输出上述的译码信号的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN92113727A CN1053752C (zh) | 1992-12-19 | 1992-12-19 | 模拟波形译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN92113727A CN1053752C (zh) | 1992-12-19 | 1992-12-19 | 模拟波形译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1088703A CN1088703A (zh) | 1994-06-29 |
CN1053752C true CN1053752C (zh) | 2000-06-21 |
Family
ID=4946578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN92113727A Expired - Fee Related CN1053752C (zh) | 1992-12-19 | 1992-12-19 | 模拟波形译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1053752C (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03189787A (ja) * | 1989-12-06 | 1991-08-19 | Symbol Technol Inc | 複数の走査からバーコード記号を復号する方法および装置 |
-
1992
- 1992-12-19 CN CN92113727A patent/CN1053752C/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03189787A (ja) * | 1989-12-06 | 1991-08-19 | Symbol Technol Inc | 複数の走査からバーコード記号を復号する方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1088703A (zh) | 1994-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5311001A (en) | Analog waveform decoder utilizing histogram of edge sizes | |
US6929184B2 (en) | Monitoring bi-directional motor drive failure in electro-optical reader | |
US5241164A (en) | Method of decoding bar code symbols from partial scans | |
US5513459A (en) | Filing folder tab having readable information | |
Joseph et al. | Bar code waveform recognition using peak locations | |
US5091966A (en) | Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes | |
JP3115610B2 (ja) | 高速画像捕捉システムおよび方法 | |
EP1866735B1 (en) | Combined detection of position-coding pattern and bar codes | |
EP0436072A2 (en) | Method of decoding bar code symbols from partial scans | |
US6076738A (en) | Self-clocking glyph shape codes | |
CA2044463C (en) | Binary image processing for decoding self-clocking glyph shape codes | |
US6250551B1 (en) | Autodiscrimination and line drawing techniques for code readers | |
US5128525A (en) | Convolution filtering for decoding self-clocking glyph shape codes | |
US20020148901A1 (en) | Hand-held bar code reader with single printed circuit board | |
US20070119944A1 (en) | Decoding with data from multiple scans | |
US6824060B2 (en) | Bi-directional motor drive circuit for bar code reader | |
US5504318A (en) | Analog waveform decoder using peak locations | |
EP1620828B1 (en) | Methods, apparatus, computer program and storage medium for position decoding | |
WO1998050814A1 (en) | Optical scanner and image reader for reading images and decoding optical information including one and two dimensional symbologies at variable depth of field | |
CN100377049C (zh) | 一种确定带有捕捉信息的摄像机的笔的路径的方法和系统 | |
JP2000501209A (ja) | サブ−ピクセルデータフォームリーダー | |
WO2010017709A1 (zh) | 获取二维码的方法和终端 | |
USRE38758E1 (en) | Self-clocking glyph shape codes | |
CN1053752C (zh) | 模拟波形译码器 | |
KR20130139225A (ko) | 광학 펜을 이용한 절대 위치와 기타 정보용 도트 코드 패턴, 도트 코드 프린팅 방법, 및 도트 코드 읽는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C15 | Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993) | ||
OR01 | Other related matters | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20000621 Termination date: 20111219 |