1) Field of the Invention
The present invention relates to a bar-code reader, a method of reading a bar code, and a computer program for reading a bar code efficiently and accurately.
2) Description of the Related Art
The bar-code system is well known in the field of products distribution. In this system, a product is provided with a bar code in advance and when the product is held up to a bar-code reader (bar-code scanner), the bar code of the product is read. By reading the bar code of a product, information of the product such as product price, product name etc. is obtained and recorded in a register.
Concretely, in the bar-code unit, the following series of processes is performed.
Thus, in the conventional bar-code reader, if the light reflected from the bar code has sufficient optical power and large amplitude, the ratio of widths of the white bars and the black bars can be known accurately. Consequently, the product information obtained with the help of the bar code is more accurate.
However, there are practical problems in operating a bar-code reader. For instance, if the light reflected from the bar code is insufficient, an error occurs in reading widths of bars of the bar code.
Sometimes black bars become thicker than desired, particularly, due to spreading of ink when the bar code is printed. Amplitude of reflected light declines due to the presence of a thick black bar or a thick white bar. This results in a misjudgment of a bar being a part of a white bar in spite of being a part of a black bar, and vice versa.
To describe this concretely, as illustrated in
Moreover, if the distance between a reading surface of a bar-code reader and a bar code is large, the scanning speed of the light beam becomes relatively faster than the speed when the distance is less and the diameter of the light beam becomes greater than the basic distance between bars. This also results in an inability to acquire substantial reflected light, thereby leading to errors in reading the white and black bars of the bar code.
Japanese Patent Application Laid-open Publication No. H7-234913 discloses a technology to compensate the change in a level of a signal received, due to thickness of a black bar or a white bar, by applying an HPF (high pass filter) to an output of light that is received by a light receiving unit and that is reflected from a bar code. However, the disclosure is related only to an absorption of the change in a level of a signal received and does not prevent decline in an accuracy of reading that is caused due to problems such as a thick black bar etc.
It is an object of the present invention to solve at least the problems in the conventional technology.
A bar-code reader according to one aspect of the present invention includes an optical scanner that optically scans a bar code to obtain signal strength of light reflected from black bars and white bars of the bar code; an extracting unit that extracts edge data, which includes a plurality of edges and the signal strength of which changes corresponding to a change from a black bar to a white bar and vice versa; an edge-emphasizing unit that emphasizes edge data of an edge that satisfies a predetermined condition; a ternary judgment unit that makes a ternary judgment of each edge based on the edge emphasized to obtain a ternarizing result; and a decoder that decodes bar-code characters from the ternarizing result.
A method of reading a bar code according to still another aspect of the present invention includes optically scanning a bar code to obtain signal strength of light reflected from black and white bars of the bar code; extracting edge data, which includes a plurality of edges and the signal strength of which changes corresponding to a change from a black bar to a white bar and vice versa; emphasizing an edge from the edge data; making a ternary judgment for each edge based on the edge emphasized to obtain a ternarizing result; and decoding bar-code characters from the ternarizing result.
A computer program according to still another aspect of the present invention makes it possible to realize the method according to the above aspect on a computer.
The other objects, features, and advantages of the present invention are specifically set forth in or will become apparent from the following detailed descriptions of the invention when read in conjunction with the accompanying drawings.
Exemplary embodiments of a bar-code reader, a method, and a computer program relating to reading a bar-code according to the present invention are explained in detail below with reference to the accompanying diagrams.
The optical scanner 2 includes a laser diode (LD) 2a and a polygon mirror 2b. The LD 2a emits a light beam. A mirror that reflects the light beam emitted from the LD 2a forms the polygon mirror 2b. The direction of reflection of the light beam is changed by rotating the polygon mirror 2b using a motor (not shown in the diagram). Thus, the polygon mirror 2b provides a plurality of scanning patterns. Using the optical scanner 2, the light beam emitted from the LD 2a is radiated, due to the rotation of the polygon mirror 2b, on a bar code 1 that is held on a reading surface. The light beam is irradiated in a direction from a to b in the diagram.
A light receiving section of the analog processor 3 receives light reflected from the bar code 1. The analog processor 3 performs opto-electric conversion of the light received and converts it to an electric signal. The amplitude of this electric signal depends on the intensity of the light. The analog processor 3 then amplifies the signal according to the requirement. The AD converter 4 performs digital sampling of the opto-electrical signal amplified by the analog processor 3, and outputs it as a digital signal.
The reading processor 5 specifies bar-code characters based on the digital signal that is received from the AD converter 4 and outputs the signal. The reading processor 5 includes an extractor 5a, a narrow-band differential processor 5b, a module-frequency extractor 5c, a module-point extractor 5d, a module-timing extractor 5e, an edge-emphasizing processor 5f, an EQL processor 5g, a ternary judgment section 5h, and a bar-code demodulator 5i.
The extractor 5a extracts, from the opto-electrical signal, only a signal that is apparently a bar code signal, to reduce the load of processing in the latter part. Concretely, the opto-electrical signal is in the form of a wave with time on the vertical axis and amplitude on the horizontal axis. Therefore, the extractor 5a extracts a part of the waveform as illustrated in
The module-frequency extractor 5c extracts a module-frequency that is equivalent to a basic module of a bar code signal. The narrow-band differential processor 5b performs the narrow-band differentiation of the opto-electrical signal based on the module-frequency. Therefore, the narrow-band differential processor 5b extracts a waveform of an edge as illustrated in
The module-timing extractor 5e extracts timing for extracting a module point, based on the module-frequency extracted by the module-frequency extractor 5c. The module-point extractor 5d extracts a module point according to the timing that is extracted by the module-timing extractor 5e as illustrated in
The edge-emphasizing processor 5f is a processor peculiar to the present invention and emphasizes amplitude of a module point that fulfils a predetermined condition, among module points that are extracted by the module-point extractor 5d. The edge-emphasizing processor 5f outputs edge-emphasizing output as illustrated in
The reason for performing the edge emphasizing is as follows. A module point has a positive amplitude that changes from a black bar to a white bar of the bar code 1 or a negative amplitude that changes from a white bar to a black bar. In spite of the module point having the positive amplitude or the negative amplitude, the amplitude of the module point decreases due to practical problems like a thick black bar developed due to spreading of ink during printing of a bar code. Edge emphasizing is performed to prevent a case that is not regarded as an edge that changes from a black bar to a white bar or an edge that changes from a white bar to a black bar.
Concretely, in a case of a thick black bar or a thick white bar of the bar code 1 a beam diameter 31 is smaller than the basic width of a black bar or a white bar (see (a) in
The EQL processor 5g automatically equalizes the amplitude of a module point that has undergone edge emphasizing and a module point that has not undergone edge emphasizing. The ternary judgment section 5h makes a judgment of whether each module point is a ‘1’ or a ‘0’ or a ‘−1’ using the amplitude of the module point equalized by the EQL processor 5g. A module point that has a value ‘1’ denotes an edge that is changed from a black bar to a white bar, a module point that has a value ‘0’ denotes an edge that is changed from a white bar to a black bar, and a module point that has a value ‘−1’ denotes an edge without any change (in other words ‘a case of no change’).
The bar-code demodulator 5i specifies the combination of black bars and white bars that forms the bar code 1 and outputs bar-code characters corresponding to the specified combination.
Then, the narrow-band differential processor 5b performs narrow-band differentiation of the signal using the module frequency that is extracted by the module-frequency extractor 5c and extracts a waveform of an edge from the signal extracted by the extractor 5a (step S102). Moreover, the module-point extractor 5d extracts a module point from a waveform of an edge by using the module-timing that is extracted by the module-timing extractor 5e (step S103).
Thus, when a module point is extracted from the waveform of an edge, the edge-emphasizing processor 5f detects a thick black bar or a thick white bar, then emphasizes the edge of the corresponding part, and increases the amplitude of the module point (step S104 and S105).
Then, the EQL processor 5g performs automatic equalization (step S106). Based on the result of the automatic equalization, the ternary judgment section 5h makes a judgment of whether the module point is a ‘1’ or a ‘0’ or a ‘−1’ (step S107). Using this judgment, the bar-code demodulator 5i demodulates the signal to obtain bar-code characters (step S108).
Following is a concrete description of the edge-emphasizing processor 5f with reference to
Yn=ΣCiXn−i
where Y is the output signal, C is a tap coefficient, X is a delay signal, and n and i are suffixes.
A case in which the amplitude of the module point is applied to the transversal filter is examined concretely.
If we assume that the amplitude of the module point A1 is 0.04254, the amplitude of the module point A2 is −0.05176, the amplitude of the module point A3 is 0.04260, the amplitude of the module point A4 is −0.04767, and the amplitude of the point A5 is 0.04688, these amplitude values are set in the delays X1 to X5 of the transversal filter as shown in
Therefore, according to the calculation formula
Y3=X1·C1+X2·C2+X3·C3+X4·C4+X5·C5, Y3=0.092315.
Since the output Y3 is an output corresponding to X3, it can be seen that the amplitude is increased as compared to the original amplitude of 0.4260.
Thus, by using the transversal filter, the edge-emphasizing can be performed to increase the amplitude of the module points having their amplitude decreased due to a thick black bar or a thick white bar. When the excessive width is less than a threshold value 1 or when the amplitude of X3 is less than a threshold value 2, the tap coefficients C1, C2, C4, and C5 are assumed to be 0 and the tap coefficient C3 is assumed to be 1. When the excessive width is more than the threshold value 1 and the amplitude of X3 is more than the predetermined threshold value 2, the tap coefficients that are shown in
Thus, in this embodiment, the extractor 5a extracts, from the signal that is subjected to opto-electric conversion, a part that is apparently a bar-code signal. The narrow-band differential processor 5b performs narrow-band differentiation using the module frequency and forms the edge waveform. Further the module-point extractor 5d extracts the module point from the edge waveform. Then, the edge-emphasizing processor 5f detects a thick black bar or a thick white bar and emphasizes the edge of the corresponding part, thereby increasing the amplitude of the module point. Due to such structure, even in a case of a thick black bar or a thick white bar, the amplitude of the corresponding part can be emphasized.
In this embodiment, the edge is emphasized when there is a thick black bar or a thick white bar. However, when an edge that has amplitude greater than the predetermined threshold value is detected, the amplitude of the edge can be emphasized. In this case, in the transversal filter in
Moreover, if an edge for which the frequency of the module is more than the predetermined threshold value is detected, the amplitude of the edge that is included in this module can be emphasized. In this case, in the transversal filter in
Moreover, in this embodiment, a case of using an optical system that irradiates a bar code by a light beam to acquire reflected light is described. However, the present invention is not restricted to this case only and can also be applied similarly for a case of using an optical system in which extraneous light such as a charged coupled device (CCD) is used.
Furthermore, while realizing the bar-code reader by a computer program, each section (processor) in the reading processor 5 illustrated in
Thus, the present invention provides a bar-code reader, a method of reading a bar code, and a computer program for realizing the method according to the present invention on a computer that enables efficient and accurate reading of a bar code.
Although the invention has been described with respect to a specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art which fairly fall within the basic teaching herein set forth.
Number | Date | Country | Kind |
---|---|---|---|
2003-044987 | Feb 2003 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5442164 | Adachi | Aug 1995 | A |
5675136 | Keinath et al. | Oct 1997 | A |
5767497 | Lei | Jun 1998 | A |
5801369 | Akeda | Sep 1998 | A |
5969325 | Hecht et al. | Oct 1999 | A |
5979765 | Watanabe et al. | Nov 1999 | A |
6050489 | Goto et al. | Apr 2000 | A |
6126075 | Agabra et al. | Oct 2000 | A |
6209788 | Bridgelall et al. | Apr 2001 | B1 |
6328213 | He et al. | Dec 2001 | B1 |
6334572 | Iwaguchi et al. | Jan 2002 | B1 |
6386454 | Hecht et al. | May 2002 | B2 |
6478223 | Ackley | Nov 2002 | B1 |
6478224 | Gettys | Nov 2002 | B1 |
6494376 | Davis et al. | Dec 2002 | B1 |
6499662 | Coleman et al. | Dec 2002 | B1 |
20010035458 | Schum et al. | Nov 2001 | A1 |
20020021835 | Andreasson et al. | Feb 2002 | A1 |
20020162890 | Tsi et al. | Nov 2002 | A1 |
20040129784 | Iwaguchi et al. | Jul 2004 | A1 |
20040164158 | Miyazawa et al. | Aug 2004 | A1 |
Number | Date | Country |
---|---|---|
0 427 528 | May 1991 | EP |
1 205 873 | May 2002 | EP |
7-234913 | Sep 1995 | JP |
Number | Date | Country | |
---|---|---|---|
20040164160 A1 | Aug 2004 | US |