CN1157443A - 对条形码译码的方法和条形码读出器 - Google Patents
对条形码译码的方法和条形码读出器 Download PDFInfo
- Publication number
- CN1157443A CN1157443A CN96117952.XA CN96117952A CN1157443A CN 1157443 A CN1157443 A CN 1157443A CN 96117952 A CN96117952 A CN 96117952A CN 1157443 A CN1157443 A CN 1157443A
- Authority
- CN
- China
- Prior art keywords
- character
- bar code
- bar
- width
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 38
- 230000001915 proofreading effect Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 8
- 230000005055 memory storage Effects 0.000 claims 6
- 238000012937 correction Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 4
- 230000004069 differentiation Effects 0.000 description 2
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1465—Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1486—Setting the threshold-width for bar codes to be decoded
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Toxicology (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Printers Characterized By Their Purpose (AREA)
- Record Information Processing For Printing (AREA)
Abstract
一种条形码读出器,如果条形码含有其要宽度已经被校正的特殊字符,则在不同方向上对条形码进行译码。该条形码读出器对不同方向上的译码结果进行相互比较,以提高条形码读取的可靠性。如果译码结果彼此一致,则接受译码结果,否则放弃译码结果。
Description
本发明涉及一种对条形码进行译码的方法和条形码读出器。
许多商店和超级市场采用包括条形码读出器的POS(销售点)系统。条形码读出器必须读取印刷质量并非总是良好的条形码。由于差的印刷质量,条形码的某些条比标准宽度粗或者细,质地不匀或部分断线。条形码读出器需要正确读出如此低质的条形码。
UPC条形码由开始保护条、中间条和结束保护条组成。中间条将条形码分为两部分。在开始保护条与中间条之间的部分是左块,在中间条与结束保护条之间的部分是右块。左块和右块中的每一个都由六个字符组成,因此每个条形码含有12个字符。条形码读出器的光敏元件响应于从条形码的黑条反射的光提供代表“1”的电信号,响应于从条形码的白条反射的光提供代表“0”的电信号。
条形码的每个字符由两个白条和两个黑条组成,每个字符延伸七个基本单位(module)。每个基本单位是用于表达条形码每条宽度的的单位。每个白条或黑条的宽度是整数个基本单位。
条形码的每个字符根据字符的白条和黑条的宽度代表数字0至9中的一个。因为每个字符由七个基本单位组成,所以将字符分为两组。在一组中,每个字符的两个黑条的基本单位的总数是偶数的,在另一组中,是奇数的。于是,每个UPC条形码能够表达20个字符,即偶-0(E0)至偶-9(E9),每个包括偶数个黑基本单位,和奇-0(O0)至奇-9(O9),每个包括奇数个黑基本单位,如图3所示。两个字符组例如用于相互区分条形码的左块和右块。
条形码读出器向条形码发送扫描光束,并接收从条形码反射的光束。条形码读出器对反射光束的强度与参考值进行比较,并提供代表1或0的电信号。条形码读出器的译码器根据电信号的电平(1或0)和持续时间将电信号译码为E0至E9和O0至O9中的一个。
条形码的每条取决于印刷条件经常太细或太粗。条形码读出器不能检测印刷条件,因此,如果条形码读出器直接读条形码每条的宽度则可能错误地读出劣质印刷的条形码。
为解决这个问题,有一种条形码译码方法,它消除了当读出条形码时过粗或过细条的影响。该方法测量条形码的相邻两对黑条和白条的的宽度T1和T2,如图2所示。宽度T1和T2称为Δ距离。在条形码中能够表达从E0至E9以及O0至O9的20个字符。另一方面,从两个到五个基本单位有四个Δ距离,以提供T1和T2的16种组合。因此,E1至E7提供T1和T2的相同组合。类似地,E2至E8、O1至O7和O2至O8分别提供T1和T2的相同组合。对于这些字符,Δ距离T1和T2不足以使其相互区分。
然而,具有T1和T2相同组合的字符在各个条中具有不同数量的基本单位。因此,可以通过测量各对中的条来相互区别对E1和E7、对E2和E8、对O1和O7以及对O2和O8中任何一个的成员。
这里产生另一个问题,即各对中的每条也取决于印刷条件或粗或细。
于是,测量条的宽度不足以区分字符,例如具有具有相同Δ距离T1和T2的E1和E7。
这解决这个问题,有一种根据已经译码的字符的条宽度对将被译码的字符的条宽度进行校正的方法。
有另外一种方法,它设置条宽度的允许误差范围,确定每条是否位于该范围之内,并且仅当条位于该范围之内时,才对条形码进行译码。
如果每条具有大的误差,则扩大允许误差范围,以根据情况适当地对条形码进行译码。
然而,这种方法是复杂的,不是最佳的。无法确定校正后的条宽度是否是正确的。如果校正后的条宽度是错误的,则条形码读出器将提供错误的结果。
最近的条形码是紧凑、短小和简单印刷的,要求条形码读出器正确地读出这些条形码。
本发明的一个目的是提供对条形码进行译码的方法和能够正确读出需要宽度校正的条形码的条形码读出器。
这实现上述目的,本发明提供一种根据从条形码反射的光对条形码进行译码的方法,包括步骤有:检测反射光中的条形码数据,将条形码数据存储在存储单元中,在第一方向上读出条形码数据并译码,在第二方向上读出条形码数据并译码,以及确定在第一方向和在第二方向上的译码结果是否彼此相同。
本发明还提供一种根据从条形码反射的光对条形码进行译码的方法,包括步骤有:检测反射光中的条形码数据,将条形码数据存储在存储单元中,在第一方向上读出条形码数据并译码,如果第一方向上的译码结果包括特殊数据则在第二方向上读出条形码数据并译码,以及确定在第一方向和在第二方向上的译码结果是否彼此相同。该特殊数据涉及在第一方向和第二方向的每个方向上在对字符进行译码之前根据在每个方向上已经译码的字符的条宽度其条宽度被校正的字符。
对两个方向上的校正条宽度或译码结果相互比较,以确定它们是否彼此相同。如果它们彼此相同,则正确接受它们。如果它们互不相同,则它们之中的至少一个是错误的。
本发明还提供一种根据从条形码反射的光对条形码进行译码的方法,包括步骤有:检测反射光中的条形码数据,将条形码数据存储在存储单元中,在第一方向上读出条形码数据并译码,如果第一方向上的译码结果包括连续特殊数据则在第二方向上读出条形码数据并译码,以及确定在第一方向和在第二方向上的译码结果是否彼此相同。
该特殊数据涉及在第一方向和第二方向的每个方向上在对字符进行译码之前根据在每个方向上已经译码的字符的条宽度其条宽度被校正的字符。
本发明还提供一种根据从条形码反射的光对条形码进行译码的方法,包括步骤有:检测反射光中的条形码的条宽度数据,将条宽度数据存储在存储单元中,在第一方向上读出条宽度数据并将其译码为第一字符,并且确定在第一字符之前刚刚译码的第二字符的条宽度是否已经根据在第二字符之前刚刚译码的第三字符的条宽度被校正。如果第二字符的条宽度已经根据第三字符的条宽度被校正,则该方法根据第一字符的条宽度校正第二字符的条宽度,再次对第二字符进行译码,并且确定第二字符的两个译码结果是否彼此相同。
通过以下参照附图的描述,将更清楚地理解本发明。
图1示出UPC条形码的一个例子;
图2示出UPC条形码的一个字符的例子;
图3示出UPC条形码的字符O0至O9以及E0至E9;
图4示出正常条形码、加粗条形码和减细条形码;
图5是示出Δ距离和相应字符的表;
图6是用于对UPC条形码的字符1、2、7和8进行译码的表;
图7示出条宽度校正;
图8示出条形码读出器的一个例子;
图9是示出根据本发明一个实施方式的条形码读出器的框图;
图10示出条形码的译码方向;
图11是示出根据本发明第一个实施方式的条形码译码程序的流程图;
图12是示出根据本发明第二个实施方式的条形码译码程序的流程图;
图13示出两个字符之间所夹的字符;
图14是示出根据本发明第三个实施方式的条形码译码程序的流程图;
图15是示出根据本发明第四个实施方式的条形码译码程序的流程图;
图16是示出根据本发明第五个实施方式的条形码译码程序的流程图。
为了更好地理解本发明的最佳实施方式,下面解释现有技术中存在的问题。
图1示出UPC条形码的一个例子。条形码具有开始保护条53、结束保护条54和中间条55。
在开始保护条53与中间条55之间的部分是左块;在中间条55与结束保护条54之间的部分是右块。
左块和右块中的每一个都由六个字符组成,因此每个条形码含有12个字符。
图2示出UPC条形码的一个字符的例子。条形码读出器的光敏元件响应于从条形码的黑条反射的光提供代表“1”的电信号,响应于从条形码的白条反射的光提供代表“0”的电信号。
条形码的每个字符由两个白条和两个黑条组成,每个字符的宽度是七个基本单位(module)。基本单位是用于表达条形码每条宽度的的单位。每个白条或黑条的宽度是整数个基本单位。
开始保护条53包括两个黑条和夹在两个黑条之间的一个白条,每个条的宽度为一个基本单位。结束保护条54具有相同的结构。中间条55由三个白条和两个黑条组成,每条的宽度为一个基本单位。这些条以白、黑、白、黑和白的次序排列。
条形码的每个字符根据字符的白条和黑条的宽度代表数字0至9中的任何一个。因为每个字符由七个基本单位组成,所以将字符分为两组。在一组中,每个字符的两个黑条的基本单位的总数是偶数的,在另一组中,是奇数的。于是,一个UPC条形码能够表达20个字符,即偶-0(E0)至偶-9(E9),每个包括偶数个黑基本单位,和奇-0(O0)至奇-9(O9),每个包括奇数个黑基本单位,如图3所示。两个字符组例如用于相互区分条形码的左块和右块。
在图3中,右部分示出E0至E9,左部分示出O0至O9。这些数字的每一个的每一条由特定数的基本单位组成。
条形码读出器向条形码发送扫描光束,并接收从条形码反射的光束。条形码读出器对反射光束的强度与参考值进行比较,并提供代表1或0(图2)的电信号。条形码读出器的译码器根据电信号的电平(1或0)和持续时间将电信号译码为E0至E9和O0至O9中的一个。
给定条形码的图3的E0至E9以及O0至O9中的任何一个根据从条形码反射的光是可区分的,因为每个字符具有黑条和白条的不同结构。于是,条形码中的每个字符得以译码。
通常条形码中的条取决于印刷条件减细或加粗,如图4所示。图4示出两个白条和一个黑条,每条由相同数目的基本单位组成。在图4(1)中,条是正常印刷的。在图4(2)中,黑条粗。在图4(3)中,黑条细。
在图4(1)中,白条B1和B3以及黑条B2是以正常宽度正确印刷的,因此,条形码读出器将正确地读出这些条。
在图4(2)中,黑条B2比正常宽度粗了“P0×2”。因此,每个白条B1和B2比正常宽度细相同的部分。在图4(3)中,黑条B2比正常宽度细了“P1×2”,每个白条B1和B2比正常宽度粗相同的部分。
条形码读出器不能检测印刷条件,因此,如果条形码读出器直接读取条形码每条的宽度,则可能不能正确地读取具有图4(2)和图4(3)的未正确印刷的条的条形码。
下面参照图4解释用于正确读取具有减细的或加粗的条的条形码的现有技术。
Δ距离T1是黑条B2与白条B1的总宽度,Δ距离T2是白条B3与黑条B2的总宽度。
现在参照图4(2)解释具有加粗黑条的条形码的读取。如果每条均匀地具有印刷误差,与白条B1相邻的黑条的粗部分P01大约等于黑条B2左侧的粗部分P03,因此,P01和P03相互取消。于是,Δ距离T1大约等于正常黑条B2与正常白条B1的总和。黑条B2的粗部分P02永远不会影响Δ距离T1。即,Δ距离T1实质上与粗部分无关。
类似地,Δ距离T2大约等于正常黑条B2与正常白条B3的总和,因为粗部分P02和P04相互取消。
在图4(3)中,在Δ距离T1中的细部分P11和P13相互取消,在Δ距离T2中的细部分P12和P14相互取消。于是,Δ距离T1和T2与细部分无关。即,在图4的(1)、(2)和(3)情况下Δ距离T1和T2实质上不变。现有技术使用这种Δ距离对给定条形码进行译码。
图3示出UPC条形码的20个字符每个的Δ距离。每个字符由七个基本单位组成,每条的宽度是至少一个基本单位。这意味看每个Δ距离在2至5个基本单位的范围内。图5是示出20个字符即E0至E9以及O0至O9中每个的Δ距离T1和T2的表。为了对条形码译码,测量条形码每个字符的Δ距离T1和T2,并且根据图5的表对字符进行译码。
如上所述,条形码能够表述E0至E9以及O0至O9这20个字符。另一方面,有四个Δ距离,在2至5个基本单位的范围内,提供T1和T2的16种组合。因此,字符E1和E7具有相同的T1和T2组合。类似地,E2和E8、O1和O7以及O2和O8分别具有相同的T1和T2组合。于是,Δ距离T1和T2不足以相互区分这些对中每一对中的两个字符。
然而,具有相同T1和T2组合的字符在各条中具有不同的基本单位。于是,通过测量对中的一条,能够相互区分任何一对E1和E7、E2和E8、O1和O7以及O2和O8中的字符。
图6示出用于标识这些对中每个字符的表。例如,具有都为3的相同Δ距离T1和T2的字符E2和E8根据图6的表得以相互区分。
如果所检测的Δ距离T1和T2都为3,则相应字符必然是E2或E8。于是,测量两个黑条B1和B3(图2)的宽度,并且参照图6的表,选择E2和E8中的一个。
如果字符是E2,则每个黑条B1和B3具有两个基本单位。如果是E8,则每个黑条B1和B3具有一个基本单位。以这种方式,能够标识具有相同Δ距离T1和T2的两个字符中的任何一个。
然而,这种方法有问题。
为了相互区分具有相同Δ距离的两个字符,需要测量特定条的宽度,即基本单位数。这些条取决于印刷条件自然被减细或加粗。例如,字符E2具有两个黑条,每条具两个基本单位的宽度。如果这些黑条由于差的印刷条件被减细一个基本单位,则条形码读出器可能将该字符读为E8。
以这种方式,当相互区分具有相同Δ距离的两个字符时,不能够消除印刷误差的影响。
为解决这个问题,另一方法根据已被译码的先前字符的条宽度校正给定字符的每条的宽度,然后对给定字符译码。
图7说明了这种方法。
E0的字符位于E2的字符前而,并已译码。为了译码E2,必须测量E2的黑条B3和B1。这些黑条可能有印刷误差。因为E0已被译码,所以知道E0的黑条和白条的基本单位数目。
为了校正E2的黑条B3的宽度,从黑条B3的宽度中减去E0的黑条B5或B7的宽度。黑条B5或B7的宽度是已知的,并有印刷误差。于是,从黑条B3的宽度中减去黑条B5或B7的宽度消除了黑条B3中的印刷误差。如果从黑条B3中减去黑条B5,则差将为“0”,因为两条的宽度都为一个基本单位。如果从黑条B3中减去黑条B7,则差将为“-1”。
之后,将差加到E0的B5或B7的正常基本单位数目上。正常基本单位数没有印刷误差。以这种方式,正确地测量黑条B3的宽度。类似地,正确测量字符E2的黑条B1的宽度。
对具有校正条宽度的字符E2进行正确译码,而不考虑印刷误差。
然而,不能确定在字符E2之前的字符是否确实是E0,或者黑条B5或B7的基本单位数是否正确。该方法假设在E2之前译码的字符E0是正确的然后对字符E2译码。如果这种假设由于断条等是错误的,则不能正确译码字符E2。没有方法测试所译码的字符E0是否正确,或者是否已经真正校正了字符E2的条。
如果条形码印刷在曲面上,则字符E0对字符E2的比率将不是1∶1。于是,根据字符E0的条宽度校正字符E2的条宽度将提供错误的结果。
为解决这个问题,有一种方法,它为条宽度设置允许的误差范围,确定每条是否位于该范围内,并且仅当条位于范围之内时,才对相应条形码进行译码。
如果每条具有大的误差,则扩大允许的误差范围,以根据情况对条形码进行适当地译码。
然而,这种方法是复杂的,非最佳的。
另外,这种方法不能确定给定条宽度是否是准确的。如果是错误的,则条形码读出器将提供错误的结果。
最近的条形码是紧凑、短小和简单印刷的,要求条形码读出器正确地读出这些条形码。
下面,解释本发明的最佳实施方式。
图8示出一种条形码读出器的例子。这是固定在例如商店收款台上的静止型的。
该条形码读出器具有一个在不同向下方向上发射激光束的窗口1。
图9是示出根据本发明一种实施方式的条形码读出器的信号处理系统的框图。光系统11包括一个诸如半导体激光器的光源,用于从光源反射光束的镜子,用于根据反射光束提供扫描光束的多角镜,用于发射扫描光束的窗口,以及用于接收从条形码反射的光束的光敏元件。该光敏元件提供代表与条形码的黑条或白条相应的值的模拟电信号。
A/D转换器12将该模拟电信号转换为代表值1或0的数字电信号。宽度计数器13根据由时钟发生器14提供的时钟信号对A/D转换器12的输出的边缘之间的时间进行计数。也就是说,宽度计数器13测量条形码的黑条或白条的宽度。
存储器15存储宽度计数器13的输出。当完成扫描操作时,CPU 16从存储器15读出条宽度,并且译码器17将条宽度译码为条形码字符。
定向单元18确定读出和译码存储器15中的宽度数据的方向。
图10示出一个条形码和条形码译码方向。根据本实施方式的条形码读出器首先在方向(1)上对条形码译码,并且如果必要,也在方向(2)上对条形译码。即,首先在方向(1)上读出存储在存储器15中的条形码数据,并且在相同方向上译码,然后在方向(2)上读出相同的条形码数据,并且在相同方向上译码。定向单元18确定方向(1)和(2)之一。
图11是示出根据本发明第一实施方式的条形码译码程序的流程图。该程序是在条形码读出器读出条形码并且存储器15存储条宽度数据之后执行的。步骤S101在第一方向上从存储器15读出条宽度数据,并且逐字符地对数据进行译码。步骤S102在第一方向上存储译码结果(a)。
步骤S103在第二方向上逐字符地读并且对条宽度数据进行译码。从一个译码方向改变到另一个译码方向是由定向单元18控制的。在第一方向上最后译码的字符是在第二方向上首先译码的字符。
步骤S104在第二方向上存储译码结果(b)。步骤S105对译码结果(a)和(b)进行相互比较。如果正确读出条形码,则译码结果(a)和(b)必须彼此相同。如果结果(a)和(b)彼此一致,则步骤S106确定已经正确译码条形码。如果结果(a)和(b)不彼此相同,则步骤S107放弃译码结果。
以这种方式,第一实施方式在两个方向上对条形码进行译码,并且根据两个方向上的译码结果确定是否已经成功地对条形码进行译码。这使得条形码译码可靠性高于现有技术。
图12是示出根据本发明第二实施方式的条形码译码程序的流程图。该实施方式根据条形码是否包括字符E1、E2、E7、E8、O1、O2、O7和O8中的任何一个在一个方向或两个方向上对条形码进行译码。下文中将这些字符称为特殊字符。
特殊字符中的任何一个必须根据其条的实际宽度进行译码。为了提高译码结果的可靠性,必须根据已经译码的先前字符的条宽度校正这些字符的条宽度。
另一方面,可以根据Δ距离对除特殊字符之外的正常字符进行译码,而不考虑印刷误差。也就是说,正常字符不需要条宽度校正。
如果译码的先前字符是正确的,则条宽度校正将是正确的。如果译码的先前字符是错误的,则条宽度校正将是错误的,因此,译码结果将是错误的。
图12的实施方式解决了这个问题。
步骤S201在第一方向上对给定条形码进行译码。步骤S202存储译码结果(a)。这些步骤与第一实施方式中的相同。步骤S203确定译码结果(a)中是否包括特殊字符E1、E2、E7、E8、O1、O2、O7和O8中的任何一个。如果一个都不包括,则步骤S207确定译码结果(a)是正确的和可接受的。
如果译码结果(a)包括特殊字符中的任何一个,则字符的条宽度将根据译码的先前字符的条宽度已被校正,因此,必须验证条宽度校正。为此,步骤S204在第二方向上对条形码数据进行译码,并且步骤S205在第二方向上存储译码结果(b)。
图13示出夹在字符B和C之间的字符A。字符A是O1,即特殊字符之一,因此,必须根据先前译码的字符的条宽度其条宽度被校正。
当在图13中在第一方向上对条形码进行译码时,字符A在字符B之后得到译码。于是,字符A的黑条的宽度根据字符B的黑条b的宽度得到校正。
当在第二方向上对条形码进行译码时,字符A在字符C之后得到译码。于是,字符A的黑条的宽度根据字符C的黑条c的宽度得到校正。
在图13中,为了校正字符A的黑条的宽度用作参考的黑条是字符B和C的每个的右黑条。
以这种方式,字符A的黑条宽度根据字符B和C的黑条宽度被校正两次。之后,在两次校正基础上的译码结果相互比较。如果比较没有差别,则确定条形码已被成功译码,或者条宽度校正是正确的。
回到图12,如果步骤S203确定译码结果(a)包括特殊字符中的任何一个,则步骤S204在第二方向上对条形码数据进行译码。步骤S205在第二方向上存储译码结果(b)。步骤S206对译码结果(a)和(b)进行相互比较。
如果译码结果(a)和(b)彼此相同,则步骤S207确定已成功地对条形码进行译码。如果相互不一致,则步骤S208放弃译码结果,因为两个结果中的至少一个必然是错误的。
以这种方式,如果条形码含有任何需要条宽度校正的字符,则第二实施方式在不同方向上对条形码进行译码,对不同方向上的译码结果进行相互比较,并且确定是否已经正确地对条形码进行译码。
如果条形码不含有这种特殊字符中的任何一个,则第二初稿方式只在一个方向上对条形码进行译码,以缩短译码时间。
第二实施方式对图13的字符A的黑条宽度根据与字符A相邻的字符B和C的条宽度进行校正。这避免了加有条形码的表面的曲率的影响。然而,这并不限制本发明。条宽度校正可以根据例如第一个译码字符或保护条来进行。
图14是示出根据本发明第三实施方式的条形码译码程序的流程图。如果条形码连续含有特殊字符E1、E2、E7、E8、O1、O2、O7和O8中的任何一个,则该实施方式在第一和第二方向上对给定条形码进行译码。
第三字符的条宽度根据在第三字符之前的第二字符的条宽度得到校正。第二字符的条宽度根据在第二字符之前的第一字符的条宽度得到校正。如果第二字符的条宽度校正含有误差,则该误差将扩展到第三字符的校正中。于是,第三字符将具有更大的误差。
如果条形码连续地含有其条宽度已被校正的几个特殊字符,则第三实施方式除了在第一方向之外在第二方向上对给定条形码进行译码。在这种情形下,第三实施方式根据两个不同的字符的条宽度对一个给定特殊字符的条宽度进行校正,以提高条宽度校正和条形码译码的可靠性。
步骤S301在第一方向上对条形码进行译码,步骤S302存储译码结果(a)。步骤S303确定译码结果(a)是否连续含有特殊字符E1、E2、E7、E8、O1、O2、O7和O8中的任何一个。如果连续地含有它们,则步骤S304在第二方向上对条形码数据进行译码,并且步骤S305存储译码结果(b)。
步骤S306对译码结果(a)和(b)进行相互比较。如果它们彼此一致,则步骤S307确定已经正确地对条形码进行译码。如果它们彼此不一致,则步骤S308放弃译码结果,因为它们中的至少一个是错误的。
如果步骤S303确定译码结果(a)没有连续的特殊字符,则步骤S307确定译码结果(a)是正确的。
如果条形码含有不连续的特殊字符中的任何一个,则第三实施方式不在第二方向上对条形码进行译码。然而,这种技术并不限制本发明。
图15是示出根据本发明第四实施方式的条形码译码程序的流程图。第四实施方式检测刚刚被译码的第一个字符,以确定它是否是特殊字符E1、E2、E7、E8、O1、O2、O7和O8中的一个,并且如果是,则根据将被译码的第二字符的条宽度对第一字符的条宽度进行校正。之后,第四实施方式再次对第一字符进行译码并确定第一字符的译码结果在条宽度校正之前和之后是否是不变的。
当需要时,第一至第三实施方式中的任何一种都在第一和第二方向上对给定条形码进行完整地译码。这可能加长译码时间并降低条形码读出器的工作效率。于是,第四实施方式只在不同方向上对特殊字符进行译码,并确定译码结果是否彼此相同。
步骤S402对当前字符进行译码。步骤S403确定先前字符是否是特殊字符E1、E2、E7、E8、O1、O2、O7和O8中的一个。如果不是,则对下一字符进行译码。
如果前一字符是特殊字符中的一个,则步骤S404确定当前字符是否是特殊字符中的一个。如果当前字符是它们中的一个,则不必根据当前字符的条宽度对前一字符的条宽度进行校正,因为可能引起校正误差。因此,步骤S406进行到下一字符。
在步骤S404中如果当前字符不是特殊字符中的一个,则根据当前字符的条宽度对前一字符的条宽度进行校正。并再对前一字符进行译码。步骤S405对前一字符校正前后的译码结果进行相互比较。如果它们彼此一致,则步骤S406进行到下一字符。如果它们彼此不一致,则步骤S407确定前一字符的译码是错误的。
以这种方式,第四实施方式只对必须验证的字符在两个方向上进行译码,并确定译码结果是否是可接受的。第四实施方式仅在一个方向上对不需验证的字符进行译码,以缩短译码时间。
图16是示出根据本发明第五实施方式的条形码译码程序的流程图。该实施方式根据当前字符的译码结果重复对连续特殊字符的译码,以验证特殊字符。
步骤S502对当前字符进行译码。步骤S503检查第一先前字符,以确定它是否是特殊字符E1、E2、E7、E8、O1、O2、O7和O8中的一个。如果是这样,则步骤S504检查第二先前字符,以确定它是否是特殊字符中的一个。如果步骤S504和S504中的任何一个步骤给出否定回答,则步骤S507进行到下一字符。
如果第一和第二先前字符都是特殊字符之一,则步骤S505确定当前字符是否不是特殊字符中的一个。如果当前字符是正常字符,则步骤S506根据当前字符的条宽度校正连续特殊字符的条宽度,对校正后的连续特殊字符进行译码,并且对校正前后的字符进行相互比较。如果它们彼此一致,则步骤S507确定译码字符是正确的并且进行到下一字符。如果它们彼此不一致,则步骤S508确定译码字符是错误的。
在步骤S505如果当前字符是特殊字符中的一个,则步骤S507进行到下一字符,而不校正先前特殊字符的条宽度。
如上所述,本发明在两个方向上对条形码进行译码,并且对译码结果进行相互比较,以确定译码结果是否正确。本发明使得对条形码的译码可靠性高于现有技术。
本发明根据相邻字符两次校正特殊字符。对经过两次校正之后的译码结果进行相互比较,以对校正进行验证。
如果所译码的先前字符是特殊字符中的一个,则本发明根据当前字符对先前字符进行校正并再次译码。对校正前后的先前字符的译码结果进行相互比较,以对校正和译码结果进行验证。不需要验证的任何正常字符只在一个方向上译码,以减少译码时间。
如果有连续的特殊字符,则在不同方向上对它们进行译码,使得条宽度校正误差的传播最小,并且提高条形码译码的可靠性。
Claims (12)
1.根据从条形码反射的光束对条形码进行译码的方法,包括步骤:
检测反射光中的条形码数据;
将条形码数据存储在存储装置中;
在第一方向上从存储装置读条形码数据并对其进行译码;
在相反的第二方向上读条形码数据并对其进行译码;以及
确定在第一方向和第二方向上的译码结果是否彼此相同。
2.根据从条形码反射的光束对条形码进行译码的方法,包括步骤:
检测反射光中的条形码数据;
将条形码数据存储在存储装置中;
在第一方向上读条形码数据并对其进行译码;
如果在第一方向上的译码结果包括特殊数据,则在第二方向上读条形码数据并对其进行译码;以及
确定在第一方向和第二方向上的译码结果是否彼此相同。
3.权利要求2的方法,其中特殊数据涉及一种字符,在第一和第二方向的每个方向上,在对该字符译码之前,根据每个方向上已经译码的字符的条宽度,对该字符的条宽度进行校正。
4.根据从条形码反射的光束对条形码进行译码的方法,包括步骤:
检测反射光中的条形码数据;
将条形码数据存储在存储装置中;
在第一方向上读条形码数据并对其进行译码;
如果在第一方向上的译码结果包括连续的特殊数据,则在第二方向上读条形码数据并对其进行译码;以及
确定在第一方向和第二方向上的译码结果是否彼此相同。
5.权利要求4的方法,其中特殊数据涉及这样的字符,在第一和第二方向的每个方向上,在对这些字符译码之前,根据每个方向上已经译码的字符的条宽度,对这些字符的条宽度进行校正。
6.根据从条形码反射的光束对条形码进行译码的方法,包括步骤:
检测反射光中的条形码的条宽度数据;
将条宽度数据存储在存储装置中;
在第一方向上从存储装置读条宽度数据并将其译码为第一字符;
确定在第一字符之前刚被译码的第二字符的条宽度是否已经根据在第二字符之前刚被译码的第三字符的宽度得以校正;
如果第二字符的条宽度已经根据第三字符的条宽度得以校正,则根据第一字符的条宽度校正第二字符的条宽度,并且再次对第二字符进行译码;以及
确定第二字符的两个译码结果是否彼此相同。
7.条形码读出器,包括:
光源;
用于从其上照射有来自光源的光的条形码接收反射光、并提供表示条形码数据的信号的接收器;
用于存储条形码数据的存储器;
用于在第一方向和第二方向上分别对条形码数据进行译码的译码器;以及
用于对第一方向和第二方向上的译码结果进行相互比较的比较器。
8.条形码读出器,包括:
光源;
用于从光源外部发射光的装置;
用于从条形码接收反射光、并提供表示条形码数据的信号的装置;
用于存储条形码数据的装置;
用于在第一方向上对条形码数据进行译码、并且如果在第一方向上的译码结果包括特殊数据则在第二方向上进行译码的装置;以及
用于对第一方向和第二方向上的译码结果进行相互比较的装置。
9.权利要求8的条形码读出器,其中特殊数据涉及一种字符,在第一和第二方向的每个方向上,在对该字符译码之前,根据每个方向上已经译码的字符的条宽度,对该字符的条宽度进行校正。
10.条形码读出器,包括:
光源;
用于从光源外部发射光的装置;
用于从条形码接收反射光、并提供表示条形码数据的信号的装置;
用于存储条形码数据的装置;
用于在第一方向上对条形码数据进行译码、并且如果在第一方向上的译码结果包括连续的特殊数据则在第二方向上进行译码的装置;以及
用于对第一方向和第二方向上的译码结果进行相互比较的装置。
11.权利要求10的条形码读出器,其中特殊数据涉及这样的字符,在第一和第二方向的每个方向上,在对这些字符译码之前,根据每个方向上已经译码的字符的条宽度,对这些字符的条宽度进行校正。
12.条形码读出器,包括:
光源;
用于从光源外部发射光的装置;
用于从条形码接收反射光、并提供表示条形码数据的信号的装置;
用于存储条形码数据的装置;
用于在第一方向上对条形码数据进行译码、并且如果在第一字符之前刚被译码的第二字符的条宽度已经根据在第二字符之前刚被译码的第三字符的条宽度得到校正则根据第一字符的条宽度对第二字符的条宽度进行校正、而且再次对第二字符进行译码的装置;以及
用于对第二字符的两个译码结果进行相互比较的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP336711/95 | 1995-12-25 | ||
JP336711/1995 | 1995-12-25 | ||
JP33671195A JP3324374B2 (ja) | 1995-12-25 | 1995-12-25 | バーコード復調方法並びにバーコード読取装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1157443A true CN1157443A (zh) | 1997-08-20 |
CN1133132C CN1133132C (zh) | 2003-12-31 |
Family
ID=18302008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96117952A Expired - Fee Related CN1133132C (zh) | 1995-12-25 | 1996-12-25 | 对条形码译码的方法和条形码读出器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6095420A (zh) |
JP (1) | JP3324374B2 (zh) |
CN (1) | CN1133132C (zh) |
GB (1) | GB2308710B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6543691B1 (en) * | 1995-01-03 | 2003-04-08 | Jerome H. Lemelson | Method and apparatus for encoding and decoding bar codes with primary and secondary information and method of using such bar codes |
US6513714B1 (en) * | 1998-09-14 | 2003-02-04 | Psc Scanning, Inc. | Character reconstruction and element level processing in bar code scanning system |
US6585157B2 (en) | 1998-09-14 | 2003-07-01 | Psc Scanning, Inc. | Symbology determination to aid decoding in a bar code scanning system |
US6454168B1 (en) | 1998-09-14 | 2002-09-24 | Psc Scanning, Inc. | Correlation and stitching techniques in a bar code scanning system |
JP3510496B2 (ja) * | 1998-09-28 | 2004-03-29 | 富士通株式会社 | バー幅補正装置,バー幅補正方法,バーコード読取装置及びそのバーコード復調方法 |
US7380717B2 (en) * | 2004-01-14 | 2008-06-03 | International Barcode Corporation | System and method for compensating for bar code image distortions |
US6942152B1 (en) | 2004-01-21 | 2005-09-13 | The Code Corporation | Versatile graphical code reader that is configured for efficient decoding |
US20080240818A1 (en) * | 2007-03-26 | 2008-10-02 | Runbeck Elections Services, Inc. | Feed tray extension for an election ballot printing system |
US20100315483A1 (en) * | 2009-03-20 | 2010-12-16 | King Keith C | Automatic Conferencing Based on Participant Presence |
US8842153B2 (en) | 2010-04-27 | 2014-09-23 | Lifesize Communications, Inc. | Automatically customizing a conferencing system based on proximity of a participant |
US8786665B2 (en) | 2010-04-27 | 2014-07-22 | Lifesize Communications, Inc. | Streaming a videoconference from a server including boundary information for client layout adjustment |
JP5341951B2 (ja) * | 2011-05-30 | 2013-11-13 | 東芝テック株式会社 | コード読取装置及びプログラム |
US8717400B2 (en) | 2011-07-29 | 2014-05-06 | Lifesize Communications, Inc. | Automatically moving a conferencing based on proximity of a participant |
US8840025B2 (en) * | 2012-06-27 | 2014-09-23 | Symbol Technologies, Inc. | Arrangement for and method of preventing symbol misreads in electro-optical readers |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3684867A (en) * | 1970-07-15 | 1972-08-15 | Norbert Karl Acker | Apparatus for reading randomly positioned data |
US3798421A (en) * | 1971-12-07 | 1974-03-19 | Ncr | Double field code reading system |
US4578570A (en) * | 1984-08-14 | 1986-03-25 | Ncr Canada Ltd.-Ncr Canada Ltee | Bar code processing apparatus |
US5241164A (en) * | 1990-01-05 | 1993-08-31 | Symbol Technologies, Inc. | Method of decoding bar code symbols from partial scans |
US5155343A (en) * | 1990-03-28 | 1992-10-13 | Chandler Donald G | Omnidirectional bar code reader with method and apparatus for detecting and scanning a bar code symbol |
US5196684A (en) * | 1991-03-25 | 1993-03-23 | Opticon, Inc. | Method and apparatus for improving the throughput of a CCD bar code scanner/decoder |
US5329105A (en) * | 1992-08-10 | 1994-07-12 | United Parcel Service Of America, Inc. | Method and apparatus for determining the width of elements of bar code symbols |
US5433364A (en) * | 1993-02-19 | 1995-07-18 | Dynetics Engineering Corporation | Card package production system with burster and carrier verification apparatus |
US5521368A (en) * | 1993-09-22 | 1996-05-28 | Olympus Optical Co., Ltd. | Barcode symbol reading system having function for detecting and correcting inclination of barcode symbol |
JPH0793451A (ja) * | 1993-09-22 | 1995-04-07 | Olympus Optical Co Ltd | バーコードシンボル読取装置 |
US5719384A (en) * | 1996-05-10 | 1998-02-17 | Metanetics Corporation | Oblique access to image data for reading dataforms |
-
1995
- 1995-12-25 JP JP33671195A patent/JP3324374B2/ja not_active Expired - Lifetime
-
1996
- 1996-12-20 GB GB9626621A patent/GB2308710B/en not_active Expired - Fee Related
- 1996-12-20 US US08/771,254 patent/US6095420A/en not_active Expired - Lifetime
- 1996-12-25 CN CN96117952A patent/CN1133132C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB9626621D0 (en) | 1997-02-05 |
GB2308710B (en) | 2000-02-23 |
CN1133132C (zh) | 2003-12-31 |
US6095420A (en) | 2000-08-01 |
GB2308710A (en) | 1997-07-02 |
JP3324374B2 (ja) | 2002-09-17 |
JPH09179926A (ja) | 1997-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1133132C (zh) | 对条形码译码的方法和条形码读出器 | |
CN1039458C (zh) | 利用ccd/cmd摄象机对二维条形码解码的方法和装置 | |
EP0431264B1 (en) | Method and apparatus for decoding bar codes from multiple scans | |
JP4162279B2 (ja) | バーコード・スキャナ及びバーコード走査方法 | |
JP4911340B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
US7422153B2 (en) | Decoding with data from multiple scans | |
CN1117623A (zh) | 二维代码识别的器件和方法 | |
CN1079833A (zh) | 自适应条码扫描器 | |
JP3115003B2 (ja) | モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置 | |
JPH03204790A (ja) | 部分走査からバーコード記号を復号する方法 | |
US20090001167A1 (en) | Image processing apparatus, image processing method and computer-readable medium | |
US20190080130A1 (en) | Barcode Identification Method for Improving Decoding Reliability by Correcting Image Distortion | |
JPH096885A (ja) | バーコード復号方式 | |
CN1208904A (zh) | 条形码读取器,条形码读取方法和计算机可读介质 | |
JP4403750B2 (ja) | コード読取装置 | |
EP2088533A1 (en) | Apparatus and methods for decoding digital codes | |
US7364080B2 (en) | System and method for bar code detection | |
US20100163625A1 (en) | Minimizing misdecodes in electro-optical readers | |
JP4905767B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
US6976630B2 (en) | Bar-code reader, method of reading a bar code, and computer product | |
US5952643A (en) | Bar code decoder for a lightpen | |
JP3786861B2 (ja) | エッジ検出センサ | |
JP3606228B2 (ja) | バーコード読取装置 | |
JPH10240852A (ja) | 符号情報読取り装置 | |
JP2903792B2 (ja) | バーコード読取装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20031231 Termination date: 20151225 |
|
EXPY | Termination of patent right or utility model |