WO2000019355A1 - Dispositif et procede de correction de la largeur de barre, lecteur de code a barres et procede de decodage de code a barres - Google Patents

Dispositif et procede de correction de la largeur de barre, lecteur de code a barres et procede de decodage de code a barres Download PDF

Info

Publication number
WO2000019355A1
WO2000019355A1 PCT/JP1999/000483 JP9900483W WO0019355A1 WO 2000019355 A1 WO2000019355 A1 WO 2000019355A1 JP 9900483 W JP9900483 W JP 9900483W WO 0019355 A1 WO0019355 A1 WO 0019355A1
Authority
WO
WIPO (PCT)
Prior art keywords
bar
width
correction
character
modules
Prior art date
Application number
PCT/JP1999/000483
Other languages
English (en)
French (fr)
Inventor
Mitsuo Watanabe
Motohiko Itoh
Hiroaki Kawai
Isao Iwaguchi
Original Assignee
Fujitsu Limited
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to EP99901941A priority Critical patent/EP1120736A4/en
Publication of WO2000019355A1 publication Critical patent/WO2000019355A1/ja
Priority to US09/815,007 priority patent/US6299064B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded

Definitions

  • Bar width correction device bar width correction method, bar code reader
  • the present invention relates to a bar width correction device, a bar width correction method, a bar code reader, and a bar code demodulation method thereof.
  • a bar width correction device As represented by the POS system in the distribution industry and the like, it has become common to manage products and the like by bar codes. For example, in a store's POS system, information such as the individual version of a product is coded into a barcode format 1 and printed on the product. After that, the barcode is read at the cash register, so that the account is settled and the number of items sold is totaled in real time. This is useful for inventory management and purchase management.
  • the conventional bar width correction method is effective when the bar code is uniformly thick or thin.
  • the bar code is locally thick or thin due to curvature or the like, such as when the bar code is attached to a curved surface, the bar width is not effectively corrected and the bar code is misread. There was a case.
  • the following is an example of the case where bar width correction is not performed effectively.
  • a bar code with a normal black bar see Fig. 1L (A)
  • a bar code with a thick black bar see Fig. 1t (B)
  • a black bar When there is a thin bar code (see Fig. 11 (C)), the black bar portion and the white bar portion of the bar code are taken as continuous values, and each delta distance T 1 , T2 are detected. That is, the width of the d bar and c bar of each bar code shown in FIG. 1L is detected as the delta distance T 1, and the width of the c bar and b bar is detected as the delta distance T 2 . Thereafter, the number of modules at each Dell evening distance T 1, ⁇ 2 is detected.
  • a first demodulation table 6 I storing character values corresponding to the number of modules of each delta distance T 1, T 2 is prepared.
  • the bar code character is determined by detecting the character value corresponding to each of the delta distances T 1 and T 2.
  • the character values are 0 1 and 0 7 and the is ⁇ 2 and ⁇ 8
  • the number of black bar modules in the Dell evening distance ⁇ 1 is determined, and the characters are distinguished. You. That is, the number of modules of the d bar shown in FIG. 11 is obtained.
  • a second demodulation table 62 shown in FIG. 13 is prepared, and a character value corresponding to the number of modules of the d bar is detected from the second demodulation table 62. As a result, the character is identified.
  • the width of the black bar becomes thicker or thinner depending on the printing state. Therefore, if the number of thick and thin black bars is calculated as it is, the wrong number of modules will be calculated. Assuming that the bar is thick and thin, the bar width data of the black bar (referred to as “X bar”) of the character bar (or either guard bar or center bar) immediately before demodulation is completed Used, and the width of the d-bar was corrected (referred to as “correction demodulation processing”: see JP-A-6-36565).
  • each black bar of the character to be demodulated is displayed.
  • the widths of the b bar and d bar are b1 and b3, respectively
  • the bar width data (bar width count value) of the X bar is bV. If the ideal value of the width is Bv, Bl, ⁇ 3, and the difference from the width of the collision is ⁇ , ⁇ 1,
  • Equations (5) and (6) above show that errors due to printing or the like can be eliminated by taking the difference between adjacent widths.
  • the number of modules in equation (5) is calculated, the following is obtained.
  • the number of modules is £ It is indicated as a unit value.
  • ⁇ D ( ⁇ V- ⁇ 1) VI 0 D (' ⁇ ⁇ )-VI 0 ⁇ ( ⁇ 1)
  • ⁇ 0 D ( ⁇ V)- ⁇ 0 D (: ⁇ 1 :) ⁇ 0 D (b V-b 1)
  • the supplementary demodulation described above assumes that the black bar of the bar code is uniformly thick and thin. For this reason, when the bar code is thick or thin on the fe part, such as when the bar code is attached to a curved surface, the number of modules on the d bar is incorrectly calculated, and Evening was sometimes identified incorrectly.
  • the conventional bar width correction may not be able to properly compensate the bar width when the width of the bar width is not uniform.
  • the purpose of the present invention "J" is to provide a bar width correction device and a no width correction method capable of properly correcting the bar width even when the bar width of the bar code is not uniform. It is to provide.
  • an object of the present invention is to provide a bar code reading apparatus and a bar code demodulating method capable of suppressing a character demodulation error in a correction demodulation process, thereby preventing a bar code from being erroneously read.
  • Disclosure of the invention employs the following configuration in order to solve the above-described problem. That is, a first aspect of the present invention is a bar width correction device.
  • the bar width correction device includes: a reference bar width detection unit for obtaining a reference bar width serving as a reference of the bar width; and an average value calculation for obtaining an average value of a plurality of reference bar widths obtained by the reference bar width detection unit.
  • a bar width of the bar to be corrected Part, a bar width of the bar to be corrected, and an error calculation unit that calculates an error between the reference bar width and an error value obtained by the error calculation unit is equal to or greater than a predetermined value.
  • the bar width of the correction target bar is corrected using the average value of the plurality of reference bar widths obtained by the average value calculation unit, and when the error value is smaller than the predetermined value.
  • the bar width of the bar to be corrected is corrected using the average value. Even in such a case, the bar width can be effectively corrected.
  • a second aspect of the present invention is a bar width correction method for correcting a bar width of a bar forming a key to be adjusted using the bar width of a bar forming a demodulated character as a reference bar.
  • the reference bar width is calculated, an average value of a plurality of reference bar widths is calculated, and an error between the bar width of the correction target bar constituting the demodulation target character and the reference bar width is calculated.
  • the bar width of the correction target bar is corrected based on the average value of the reference bar width.
  • a bar code data detecting section for scanning a bar code including a plurality of characters to detect bar code data, and a bar code data detected by the bar code data detecting section are provided.
  • This is a bar code reader including a demodulation unit for demodulating each character.
  • the demodulation unit obtains a reference bar width which is included in the character to be demodulated and used as a reference for the width of the correction target bar used for discriminating the character when demodulating each character.
  • a reference bar width detection unit and an average value detection unit that calculates an average value of a plurality of reference bar widths obtained by the reference bar width detection unit.
  • a precision difference between the reference bar width and the bar width of the bar to be corrected is calculated.
  • An accuracy difference detection unit A correction unit that corrects the bar width of the correction target bar using the average value obtained by the average value detection unit when the accuracy difference obtained by the difference detection unit is equal to or more than a predetermined value. .
  • the correction processing of the bar to be corrected is performed using the average value. For this reason, the accuracy of the correction demodulation can be improved as compared with the related art, and erroneous reading of a bar code due to a character demodulation error can be prevented.
  • the bar code used in the present invention is, for example, a WPC code (EA @ 'code, JA ⁇ code, etc.).
  • the demodulation unit further includes a correction demodulation table storing character values corresponding to the number of modules of the bar to be corrected. The number of modules of the bar to be corrected later is obtained, and the character value corresponding to the number of modules is specified by protruding from the correction demodulation table.
  • the demodulating unit is configured such that the demodulating unit is configured to determine the number of modules in the first Dell distance, which is a width from the bar ⁇ 1 in the character to be demodulated to the white bar adjacent thereto.
  • the delta distance calculation unit that calculates the number of modules in the second delta distance ranging from the white bar to the second bar that is next to it, and the delta distance calculation unit that calculates the number of modules in the first and second delta distances.
  • a demodulation table storing a character value corresponding to the number of modules, and two character values corresponding to the number of modules calculated by the delta distance calculator are displayed in the demodulation table.
  • the first black bar is set as the bar to be corrected, and the bar width of the bar to be corrected is corrected using the reference bar width data.
  • a second correction unit for calculating the number of modules of the correction target bar of the correction bar, wherein the accuracy difference detection unit corrects the difference between the bar width of the correction target bar corrected by the second correction unit and the reference bar width. It is specified by asking.
  • the second correction section corrects the bar width of the second black bar using the reference bar width
  • the demodulation section compensates the bar width with the second correction section.
  • the black bar precision for calculating the difference in accuracy between the corrected bar width of the first black bar and the bar width of the second black bar
  • the bar accuracy difference detection unit further includes a power difference detection unit, and the bar accuracy difference detection unit specifies the accuracy by starting the process when the accuracy difference obtained by the black bar accuracy difference detection unit is less than a predetermined value. .
  • a bar code data detecting section for scanning a bar code including a plurality of characters to detect a bar code data, and a bar code data detected by the bar code data detecting section.
  • a reference bar width detection step for obtaining a reference bar width which is included in a character to be demodulated and which is used as a reference for a width of a correction target bar used for discriminating the character;
  • An average value detection step for obtaining an average value of a plurality of reference bar widths obtained in the bar width detection step; an accuracy difference detection step for obtaining an accuracy difference between the standard bar width and the width of the bar to be corrected;
  • the compensation step for correcting the bar width of the bar to be corrected by using the average value obtained in the average value detection step as ffl is performed.
  • the correction step stores the number of modules of the bar to be corrected after M, and stores the number of modules of the bar to be corrected in association with the character value. It is specified by reading the character values corresponding to this number of modules from the key table.
  • the number of modules in the first delta distance extending from the first bar in the evening to the white bar adjacent to the character to be demodulated iiif The delta distance calculation step for calculating the number of modules in the second Delhi distance, which is the width from the ⁇ bar to the second ⁇ bar next to it, and the liij
  • the first black bar is set as the correction target bar, and the bar width of the correction target bar is corrected using the reference bar width data, and after the correction.
  • the second correction step corrects the bar width of the second black bar using the reference bar width, and corrects the bar width in the second correction step.
  • FIG. 2 is a diagram showing an example of the barcode shown in FIG.
  • FIG. 3 is a flowchart showing a barcode demodulation process using the C page shown in FIG.
  • FIG. 4 is a flowchart showing the one-character demodulation processing shown in FIG.
  • FIG. 5 is a flowchart showing the bar accuracy check processing shown in FIG.
  • FIG. 6 is a flowchart showing the module accuracy check processing shown in FIG.
  • FIG. 7 is a flowchart showing the d-bar accuracy check process reduced in FIG.
  • FIG. 8 is a diagram illustrating the relationship between the character length and the number of modules in the present embodiment.
  • FIG. 9 is an explanatory diagram of the accuracy count in the module accuracy check processing shown in FIG.
  • FIG. 1 () is an explanatory diagram of an accuracy counter in the d-bar accuracy check process which is different from FIG.
  • FIG. 1L is an explanatory diagram of the delta distance due to the thickening and thinning of the black bar.
  • FIG. 12 is an explanatory diagram of the first demodulation table.
  • FIG. 13 is an explanatory diagram of the second demodulation table.
  • FIG. 14 is an explanatory diagram of a conventional correction double tone process.
  • FIG. 1 is a block diagram showing a schematic configuration of a bar code reader including a bar width correction device according to the present invention.
  • the bar code reader reads a bar code 21 according to, for example, UPCA, E ⁇ XI3 of a WPC code.
  • FIG. 2 is a diagram showing an example of the bar code 21 shown in FIG. In Fig.2, the two codes are the start guard bar (SGB: left guard bar (LGB;)) and the end guard bar (EGB: light guard bar (: RGB)).
  • SGB left guard bar
  • EGB light guard bar
  • a center bar (CB) a left data block consisting of 6 characters sandwiched by S (; B and CB, and a right data block consisting of 6 characters sandwiched by CB and E (; B
  • Each character consists of 7 modules, and each module consists of 2 bars (a bar, c bar) and 2 black bars (b bar, d bar).
  • the black bar consists of 1. ⁇ ! Modules depending on the value of the character.
  • the bar code reading device includes a CPU 1, a bar width data group storage buffer 2, a control unit circuit 3, an interface circuit 4, a R ⁇ M 5, and a R ⁇ M 6 connected to each other by a bus B. .
  • the bar code reading device includes a bar width counter 16 connected to the bar width data group storage buffer 2, a clock 19 connected to the bar width counter L6, and a.
  • ⁇ D converter 15 ⁇ ⁇ , ⁇ has a light receiving element 18 connected to the D converter 15.
  • the bar code reading device includes a motor drive circuit 8, a laser drive circuit 9, a speaker 1 () and an LED 11 connected to the control unit circuit 3, a motor drive circuit 8 connected to the motor drive circuit 8. 2. It has a scanning optical system 14 driven by a motor 12 and a semiconductor laser 13 connected to a laser drive circuit 9.
  • R0M5 is a read-only memory that stores a barcode recognition and demodulation processing program.
  • the CP controller 1 controls the entire bar code reader by executing the bar code recognition program and the demodulation processing program stored in the ROM 5, and obtains the bar code 21 by reading it.
  • the demodulated bar width data group is demodulated, and data corresponding to the entire bar code 21 is reproduced.
  • the interface circuit 4 controls the status of the bus B and controls data transmission to a higher-level device (upper-level computer) 20i.
  • the control unit circuit 3 controls the motor drive circuit 8, the laser drive circuit 9. the speaker 1 (), and the light emitting diode (LED) 11.
  • the motor drive circuit 8 drives the motor 12 to rotate a polygon mirror (not shown) constituting the scanning optical system 14.
  • the laser drive circuit 9 drives the semiconductor laser 13 to emit a laser beam L. A speed of 1.0 emits a sound indicating that barcode reading has been completed.
  • the light emitting diode 11 is a display element that displays information on information (for example, a selling price of a product) obtained as a result of demodulation of the bar code 21.
  • the laser beam L emitted from the semiconductor laser 13 enters the scanning optical system 14 and is deflected by the scanning optical system 14. That is, the scanning optical system 14 deflects the laser beam L in one direction by a polygon mirror (not shown) rotated by the motor 12. A plurality of fixed mirrors are fixed on the reflection side of the polygon mirror. Therefore, the laser beam L deflected by the polygon mirror is reflected by each fixed mirror once and its deflection direction (scanning direction) is changed in various directions. According to the scanning optical system 14, laser beam scanning in a plurality of directions is continuously performed at a high speed within the deflection period of one reflecting surface of the polygon mirror. Each of the plurality of laser beam scans performed within the deflection cycle by one reflection surface of the polygon mirror is hereinafter referred to as “one scan”.
  • the converter 15 compares a current value indicating the brightness of the reflected light R received by the light receiving element 18 with a predetermined threshold value and converts the current value into a binary signal.
  • This binarized signal indicates “ ⁇ ” when the intensity of the reflected light R corresponds to the reflectance of the black bar in the bar code 21, and the intensity of the reflected light R is white in the bar code 21. When it corresponds to the reflectance of the bar, "shi" is shown.
  • the bar width counter 16 calculates the time from the rising timing to the falling timing of the binarized signal (bar code 21) based on the binarized signal input from the ⁇ ′ D converter 15. Expected to correspond to the width of the black bar in the middle) and the rise of the binary signal Measure the time from falling timing to rising timing (which is expected to correspond to the width of the white bar in code 21).
  • the width counter 1_6 counts the number of clocks from the clock 19 to measure the time corresponding to these bar widths.
  • the read data (bar code data) of each bar output from the bar width counter 16 has a form in which this count value and a color identification signal indicating white or white are combined, and each time the laser beam is scanned. Such read data is continuously output.
  • the read data of one scan ⁇ which is continuously output in this manner is called a “bar width data group”.
  • the bar width data group is temporarily stored in the bar width data group storage buffer 2.
  • the bar width data group storage buffer 2 sequentially stores the bar width data groups manually input from the bar width counter 16 and, according to the request from CPI: 1, stores the bar width data groups one by one in the order in which they were stored. And pass it to '1.
  • RAV16 has a working area for barcode recognition and demodulation by CP1.
  • RAM 4 stores the bar code data read out from the bar data group storage buffer 2.
  • R ⁇ holds the demodulated bar code data obtained by the code demodulation processing by CP 1.
  • RA 4 has an X bar basic counter fbasebar as an area for storing data used in barcode demodulation processing described later, an average value storage area 3 1, an average value calculation counter (: totalbar; 3 2.
  • the light receiving element 18, the clock 19, and the bar width data storage buffer 2 correspond to the barcode data detection unit of the present invention.
  • the cp and i functions as a demodulation unit of the present invention, and includes a reference bar width detection (calculation) unit, an average value detection (calculation) unit, an error calculation unit, an accuracy difference detection unit, a correction unit, and a delta distance.
  • the calculation unit, the second correction unit, and the black bar accuracy detection unit are realized.
  • the first demodulation table 61 corresponds to the demodulation table of the present invention
  • the second demodulation table 62 corresponds to the correction demodulation table of the present invention.
  • FIGS. Figure 3 shows the main routine of bar code demodulation processing (hereinafter simply referred to as “demodulation processing”).
  • This main routine is started assuming the following processing. That is, for example, when the main power of the bar code reader is turned on, the CP 1 performs the bar code recognition process. Thus, the bar code 21 is scanned, and the bar width data group is stored in the bar width data group storage buffer 2. After that, the bar width data group is read from the buffer width data group storage buffer 2 for one CP, and stored in a predetermined area of R ⁇ M6.
  • CP 1 calculates the bar width count value and the number of modules of SGB. CB or EGB in the bar width day group, and calculates the bar width count value and the module number obtained by the X bar power factor. It is stored as an evening value and the number of modules in the X bird evening storage area in RAM 6. The number of modules for SGB, CB, and EGB is 1. After that, the main routine starts to run with one more CP.
  • CPU 1 clears the value of the X bar basic counter (base-barr) 31 in R A VI 6 which is reduced to I1 '[step S).
  • CP and I initialize the ⁇ -bar precision register b1cad-mod) 34 in RAM6 (step S2).
  • CPU 1 reads data for one-character demodulation processing into the work area.
  • the data for character demodulation processing consists of the bar width counter value of each of the bars a to d that constitute the character to be demodulated (see Fig. 2), the character length, the bar width count value of the X bar, and the X bar. It consists of the number of modules.
  • CP 1 executes a subroutine of one character demodulation processing which is reduced to I 4 (step S 4 :).
  • the CP 1 first obtains the number of modules of the X bar stored in the X bar data storage area 33 in the processing of steps S001 to S07.
  • CP 1 calculates a value obtained by increasing the X-bar width counter value stored in the X-bar data storage area 33 to 12 modules according to the obtained number of modules, and calculates the obtained value.
  • 2 1 2 is used to obtain the bar width counter value of X bar for 2 modules. This is the least common multiple of the number of X-bar modules (1 to 4). By calculating the bar width counter value per module from the X-bar width counter values for 12 modules, the difference in the number of X-bar modules This is to suppress the occurrence of errors.
  • step S () 08 it is determined whether or not C P ⁇ U and X bar basic force pin 31 are cleared. At this time, if the X bar basic counter 31 is clear (S () () 8; Y), the process proceeds to step S09, otherwise (S008) X), the process proceeds to step S 0 10.
  • step S 09 CP 1 copies the value of the average value calculation counter 32 to the X bar basic count 31.
  • step S () 10 CP 1 is stored in the value currently stored in the X bar basic counter 3 ⁇ and in the average value calculation counter 32. After adding the value, one half of the addition result is obtained, and the obtained value is stored in the X bar basic counter 32.
  • step S 0 1 () reference bar width data used for B 1 ead correction demodulation described later is generated.
  • step S09 or step S10 determines the delta distances T1 and T2 (see FIG. 2) for the c-bar and d-bar of the target to be demodulated. (Step, S 1 I :).
  • CP1 calculates the number of modules in each of the delta distances T1 and T2, and then refers to the first) demodulation table 61 in RAM4 (see FIG. 1.2).
  • CPU i determines whether the number of modules of the delta distance T1 is 3 or. '] And whether the number of modules of the delta distance T2 is 3 or 4.
  • CP 1 determines whether the demodulation target character is a character (correction character) requiring correction demodulation (step S 0 1 2).
  • step S21 If the character to be demodulated is a correction character (S012; Y), the process proceeds to step SO13; otherwise (S012; N), CPU 1 sets each delta After reading the character values corresponding to stances 1 and T2 from the first demodulation table 61, the processing proceeds to step S21.
  • step S013 CPU 1 returns to X bird Using the data related to the X bar held in the area 33, the correction demodulation described in the related art is performed. As a result, the number of modules of the b bar and the d bar of the character to be demodulated is corrected. Then, CP filter 1 refers to the second demodulation table 62 (see FIG. 13) of RA-VI 4 and calculates the character value corresponding to the number of d-bar modules after correction in the second demodulation table 62. Read from As a result, the value of the character to be demodulated is specified. That is, the character to be demodulated is demodulated.
  • step S () L 4 the CP 1 executes a subroutine of the black bar precision check processing shown in FIG. 5 (step S () L 4).
  • CP filter 1 first reads the number of modules on the b bar obtained by the processing of step S () 13 (step S101).
  • step S102 the module accuracy (error) check process shown in Fig. 6 (step S102)
  • CP 1 is the number of modules (de-mod) on the b bar, the module accuracy check
  • the bar width data (chkbar;) of (here, b1) and the character length (C) of the demodulation target character are prepared as arguments.
  • a length equal to or more than one-one-one and less than three-fourths of the character length is determined as one module, and exceeds one-third of the character length.
  • the length of less than 5/4 is determined as 2 modules, and the character length
  • a length greater than 1/4 and less than 7/4 is determined as 3 modules, and a length greater than 7/4 of the character length and less than 9/4 is defined as 4 modules. Is determined.
  • a value obtained by multiplying the number of modules by 10 is used to increase the check accuracy.
  • CP'1 increases the character length of the character to be demodulated five times (step S201).
  • CP 1 multiplies the character length of the character to be demodulated by 10 (step S202;).
  • CP1 determines whether the argument dec-mod (the number of modules on the b bar) is zero (step S2 () 3). At this time, if the argument d e c -mod is zero (S
  • step S2 the process proceeds to step S2 () 6. If the argument decmod is not zero (S203: ⁇ '), the process proceeds to step S204. .
  • step S2 () 4 CPU 1 adds the value obtained in step S201 and the value obtained in step S2 () 2. Then, CPC 1 decrements the value of the argument dec-mod by 1 (step S205), and returns the processing to step S203.
  • the CP 1 obtains a value (comparison value) obtained by multiplying the character length of the demodulation target character according to the number of modules of the b bar.
  • CP 1 sets the value of precision counter i, which is reduced in FIG. 9, to ⁇ .
  • the accuracy counter i shown in Fig. 9 is used when the number of modules is one, and one module on the X bar is set to 1.
  • () Scale from 5 to 1.5 modules Take one of the values from 1 to 1 () according to the range determined to be one module).
  • the precision counter i is on the scale from 1.5 to 2.5 modules.
  • the precision count i takes any value from 1 to I () on a scale from 2.5 modules to 3.5 modules.
  • the accuracy count i is changed from 3.5 modules to '1 Take any value from 1 to 10 in the scale up to 5 modules.
  • the CP filter 1 obtains a value (barcnt :) obtained by multiplying the argument chkbar (the bar width force center value of the b bar) by 70 (step S2 () 7). Subsequently, the CPU 1 determines whether or not the comparison value obtained in steps S201 to S2 () 5 is greater than the value of barent obtained in step S207 (: Step S2 () 8.). At this time, if the comparison value is greater than the value of barcnt (S208; Y), CP The module accuracy of the bar b according to the value of the degree counter i is obtained, and the subroutine of the module accuracy check process is terminated.
  • step S208 if the comparison value is equal to or less than the barcnt value (S208; X), CP 1 subtracts the character length from the comparison value (step S209), and returns the precision count i. the value 1 decrement Li main emission Tosuru (step S 2 1 0) 0 Then, CP Ji 1, the value of the precision counter evening i is equal to or zero if (step S 2 1 1. precision counter evening i If is equal to zero (S211; Y), the module accuracy check processing subroutine ends. If the accuracy counter i is not zero (S211; ⁇ '), the processing is terminated. Return to S208.
  • the module accuracy of the b-bar is determined by the CP 1 determining the value of the precision force counter i.
  • the character to be demodulated is "" (0111001)
  • the number of modules on the b bar is two.
  • the bar width data (count value) of the b bar is 2 L0
  • the character length (count value) of the character to be demodulated is 700.
  • CP 1 is obtained by extracting the value after the decimal point from the number of modules on the b bar, that is, () .1 module as the module accuracy (b-mod) of the b bar, and performing the module accuracy check processing. End and return to black bar accuracy check processing (see Fig. 5). Note that, in the module accuracy check processing, regardless of the number of modules of the bar to be checked (the b bar in this case), the fractional part of the module number corresponding to the accuracy counter is represented by the module accuracy. Is required.
  • step S103 CP 1 reads the number of modules of the data base obtained in step S013. Then, for the d-bar, the module shown in Figure 6 Perform numerical check processing to obtain the module accuracy (d—mod) of d bar (step S104) o
  • Step S105 the CP IJI determines whether or not b-mod is greater than d-mod. At this time, if b-mod exceeds d-mod (S105; Y), CPU 1 obtains a value obtained by subtracting d-mod from b-mod as mod-sabun, and executes processing. Proceed to step S108.
  • step S108 the CP controller 1 determines whether the ⁇ -bar precision register (b1 ead ⁇ mod) 3 is initial. At this time, if the black bar precision register 34 is initial (S108; Y), the CP 1 advances the processing to step S11 (). If the black bar precision register 3 4 is not initial (S 108; N), CP 1 uses the value of modsabun obtained in step S 106 or S 1 () 7 to calculate the black bar precision register 3.
  • step S109 The contents of step 4 are updated (step S109), the result of the black bar accuracy check is determined to be 0K, and the black bar accuracy check processing ends.
  • the CPU 1 determines that the value of the black bar precision register (b1 ead-mod) 34 is greater than the value of m () d-sabun. Is determined (step S110).
  • the admod of b1 is greater than mod-sab ⁇ n (: S1110; Y is the CPI; 1 is the value obtained by subtracting b1 ead-mod force, mod-sabun b 1 ad-sabun is obtained, and the process proceeds to step S 113.
  • the CP controller 1 determines whether the difference between the module accuracy bmod of the b bar and the module accuracy dmod of the d bar is equal to or more than () .3 module. That is, b 1 ead [ ⁇ . C to judge whether or not the value is 3 modules or more. At this time, b 1. If the value of admod is 0.3 modules or more (S 1 13; Y), CP 1 is ⁇ Bar accuracy check result is determined to be NG, black bar The accuracy check processing ends. On the other hand, if the value of b 1 ead-mod is less than () .3 module (S 1 13; X), CP 1 is the same as step S 1 () 6 or S 1
  • step S114 Update the black bar accuracy register 34 with the value of mod-sabun obtained in 07 (step S114), determine that the black bar accuracy check result is 0K, and check the black bar accuracy check.
  • the process ends.
  • the CP bar 1 determines that the accuracy of the black bar is ⁇ : (;
  • the CP 1 moves the processing to step S 0] 5 shown in FIG.
  • step S015 CP1 determines whether the black bar accuracy check result is NG. At this time, if the check result is ⁇ ′ G (S 1 15; Y), C page 1 determines that the demodulation processing of the character to be demodulated is ⁇ ′ G, and terminates the 1-character demodulation processing. I do. On the other hand, if the result of the check is () ⁇ (S115: X), the process proceeds to step S116.
  • step S116 CP1 executes a subroutine of the d-bar precision check process shown in FIG.
  • CP calculates the number of modules of the d-bar (d 1 m () d: 0 to 4) first (step S 3 () 1).
  • the CPU 1 performs almost the same processing as the above steps S201 to S2 () 5 (see FIG. 6), and according to the number of modules of the d-bar. To obtain a comparison value.
  • the CP 1 sets the value of the accuracy counter Xbar-mod shown in FIG. 1 () to 9 (step S307).
  • the accuracy counter X-bar-mod is, for example, when the number of modules on the d-bar is ⁇ , one module on the X-bar
  • C P '1 obtains a value obtained by multiplying the bar width counter value of the d bar by 70 as b a r c n t (step S 3 () 8).
  • CP 1 calculates the module accuracy of the d-bar corresponding to the counter value of the accuracy counter X-barmod at this time, d Bar accuracy check processing ends.
  • Step S31L if the value of barcnt is less than the comparison value (S309; ⁇ '), CP 1 subtracts the character length from the chr count value (comparison value:>) (step S3). 310), and decrement the value of the accuracy counter X-bar-m () d by 1. (Step S31L).
  • CP 1 determines whether or not the counter value of the i-degree counter Xbalmod is zero (step S312). At this time, if the counter value is zero (S312; Y), the CPU 1 ⁇ , d-bar accuracy check processing ends. On the other hand, if the counter value is not zero (S312; X;), CP1 returns the process to step S3 () 9. In this way, in steps S307 to S312, CP L obtains the module accuracy of d-bar divided by the value of the accuracy counter Xbarmod. Thereafter, CP 1 ends the d-bar accuracy check processing, and passes the processing to step S 017 of one-character demodulation processing (see FIG. 4).
  • the CP unit 1 determines whether or not the module accuracy of the d bar obtained in the d bar single-precision check process is () ⁇ 4 modules or more (step SO 1). 7). At this time, if the module accuracy is less than 0.4 (S 0 17; N), CP ⁇ i determines that the demodulation result j ⁇ ⁇ ⁇ ⁇ in step S 0 13 is 0 K, and ends the character demodulation processing. . On the other hand, if the module accuracy is 0.4 or more (SO17; Y), CP1 advances the process to step S018.
  • the CP unit 1 converts the reference bar width data (bv shown in FIG. 14) used for the correction demodulation from the X bar bar width to the X bar basic force (base- bar) 3 Change to the value of 1 (average value of X bar). Therefore, CP 1 calculates the value of 1/2 of the value of base-bar. Then, CP 1 is base-ba A correction demodulation process ( ⁇ 1 ead correction demodulation process) using the value of i of the value of r as the reference width is performed (step S 0 19). As a result, the character value corresponding to the corrected d-bar module number is read from the second demodulation table 62, and the character to be demodulated is demodulated with this character value.
  • step S 0 20 determines whether or not the result of the demodulation processing in step S ⁇ 19 is 0K (step S 0 20). At this time, if the demodulation result is () ((S 0 20; ⁇ ), the C page 1 ends the one-character demodulation process with the processing result that the demodulation result is ⁇ ⁇ . On the other hand, if the demodulation result is ⁇ ′ (; (S 0 2 0; ⁇ ), the CPU 1 ends the one-character demodulation process with the processing result that the demodulation result is ⁇ ′ G. .
  • the corrected character is subjected to the correction restoring process using the X bar, and in this case, the accuracy difference between the X bar and the d bar is ().
  • Correction demodulation is performed using the value of base-bar ⁇ .12 as the reference bar width (bv).
  • the character can be properly demodulated even when the bar of the bar code 21 is locally thick or thin.
  • SO 2 I the CP returns to steps S 0 2 1 to S (1) 2 in step S 0 1 1 to S (1). Performs almost the same processing as in 7.
  • step S () 24 the CPU 1 uses the counter value of the d-bar demodulated in this process and the number of modules to read the contents of the X-bar data storage area 33. Is updated (step S 0 25). As a result, in the correction demodulation processing of the next demodulation target character, the data power of d-node ⁇ is used as the data of the X bar.
  • step S5 CP 1 determines whether or not the demodulation result of the one-character demodulation process is 0K. At this time, if the demodulation result is (S5; N), the CPU 1 determines that valid demodulated data has not been obtained and ends the barcode demodulation process. In this case, the CP 1 reads the bar code data in another scanning locus from the R. ⁇ VI 4 or the bar width data group storage buffer 2 and performs the bar code demodulation processing described above.
  • step S6 the demodulation processing has been completed for all valid characters.
  • the CP 1 returns the processing to step S3 and performs one-character demodulation processing for the next character.
  • the loop process of steps S3 to S6 is executed until the determination of YES is made in step S6.
  • the demodulation processing is completed for all the valid characters (S6; Y)
  • it is determined that valid demodulation data has been obtained, and the barcode demodulation processing is terminated.
  • the demodulated barcode data (demodulated barcode data) is stored in RAM4.
  • the demodulated bar code data is demodulated data for a part of the bar code 21 (so-called split reading or block reading)
  • the CPL'1 is the bar code data for the remaining part.
  • the above-described bar code demodulation process is performed on the evening, and the obtained demodulated bar code data are combined (combined) to obtain the entire bar code 2 ,, that is, all characters included in the bar code 21. To obtain demodulated data.
  • CP IJ 1 executes a modular check process (modulus 1 () check). Thereafter, if the result of the modulus check processing is ⁇ K, an instruction to output a sound indicating that demodulation of the bar code 21 has been completed to the speaker 1 () to the control unit circuit 3. At the same time, the control unit circuit 3 is instructed to cause the LED 11 to display information based on the character value of the bar code 2 ⁇ . Further, the CP controller 1 transfers the contents of the demodulated bar code data (or information corresponding thereto) to the higher-level device (P 0 S) 201 via the interface circuit 4.
  • the CP controller 1 gives an instruction for performing an error display to the control unit circuit 3.
  • the speaker 1 () outputs a sound indicating a reading error, and the LED 11 displays the reading error.
  • one-character demodulation processing (see Fig. 4) If the accuracy difference (error) between the X bar and d bar is 0.4 module or more, the correction demodulation (bar width correction) of the bar to be corrected and demodulated is performed using the average value of the X bar. If the error is less than () .4 modules, the correction demodulation (bar width correction) of the bar to be corrected and restored is performed using the bar width of the X bar. For this reason, even when the black bar of the bar code 21 is locally thick or thin, the correction demodulation can be performed properly, and the erroneous reading of the bar code 21 can be prevented.
  • the present embodiment shows an example in which the bar width correction device and the single width correction method of the present invention are applied to a correction demodulation process.
  • the bar width correction device and the bar width correction method of the present invention are not limited to the present embodiment, and can be widely applied to the bar width correction of a bar code.
  • the bar code 2U and the WPC code of PC / A, EAX-13 are used, but the bar width correction device and the bar code reading device according to the present invention are It can be widely used for all ⁇ VPC codes.
  • the threshold value in step S () 17 shown in FIG. 4 is set to () .1 module, but this threshold value can be adjusted appropriately.
  • the bar width correction apparatus and the bar width correction method of the present invention when the error between the bar width of the bar to be corrected and the reference bar width is equal to or greater than a predetermined value, the average value of the reference bar width is calculated.
  • the bar width of the bar to be corrected is corrected by using this. For this reason, even if the bar width of the bar code is not uniform, the bar width can be properly corrected, and misreading of the bar code can be prevented.
  • the difference between the accuracy of the reference bar and the accuracy of the black bar to be corrected and demodulated is equal to or larger than a predetermined value.
  • the correction demodulation process is performed using the average value of the bar width of the reference bar. For this reason, even when the black bar of the bar code is locally thick or thin, the character can be demodulated more appropriately than the conventional correction demodulation. Therefore, a character demodulation error in the correction demodulation can be suppressed as compared with the related art, and a bar code misreading can be prevented.

Description

明細書 バー幅補正装置, バー幅補正方法, バーコー ド読取装置
及びそのバーコ一 ド復調方法 技術分野 本発明は、 バー幅補正装置, バー幅補正方法, バーコード読取装置及びそのバ —コー ド復調方法に関する。 背景技術 近年、 流通業等における P 0 Sシステムに代表されるように、 商品等の管理を バーコ一 ドによって行うことが一般化している。 例えば、 商店の P O S システム では、 品の嵇頹ゃ版 個格等の情報をバーコ一 ドのフ ォーマツ 1、にコー ド化し て商品に印刷しておく。 その後、 レジにてこのバーコー ドが読み取られることに よって、 精算が行われるとともに、 商品の売り上げ数がリアルタイムで集計され. 在庫管理や仕入れ管理に役 -てられる。
読み取られたバーコ一 ドが正確に読み取られるためには、 読み取り対象となる バーコ一 ドをなす各バーのバー幅が正確に把握される必要がある。 このため、 読 み取られたバーコ一 ドのバー幅を補正する方式が幾つか提案されている。 このバ 一幅補正における問題の .つには、 バーコー ドの印字品質の低下 Ίこよるバーコ一 ドの太り / 細りがある。
従来におけるバー幅補正の方式は、 バーコ一 ドが一様に太ったり細ったり した 場合に有効なものである。 しかし、 バーコードが曲面に貼付された場合等、 バー コー ドが湾曲等により局部的に太ったり細ったり している場合には、 バ一幅の補 正が有効に行われず、 バーコー ドが誤読される場合があった。 以下に、 バー幅補 正が有効に行われな t、例を示す。
印字品質の低いバーコ一 ドの一つには、 バーコ一 ドの黒バーの幅が太ったり細 つたり したものがある。 このようなバーコー ドの誤読を防止するため、 デルタデ ィ スタンスを用いてバーコ一 ドの印刷による黒バーの均一な太り細りの影響を除 く方式がある。
即ち、 図 1 1 に示すように、 正常な黒バーを持つバーコ一 ド(図 1 L ( A )参照) に対し、 黒バーが太ったバーコ一 ド(図 1 t ( B )参照)や黒バーが細ったバーコ一 ド(図 1 1 ( C )参照)がある場合に、 バーコ一 ドの黒バーの部分と白バーの部分と が連続した値で み取られることにより、 各デルタディ スタンス T 1 , T 2が検出 される。 即ち、 図 1 L に示す各バーコー ドの dバー及び cバーの幅がデルタディ スタンス T 1 と して検出されるとともに、 cバー及び bバーの幅がデルタディス タンス T 2 と して検出される。 その後、 各デル夕ディ スタンス T 1 , Ύ 2 における モジュ一ル数が検出される。
そして、 図 1 2 に示すように、 各デルタディ ス夕 ンス T 1 , T 2のモジユール数 に対応づけてキャラクタ値を格納した第 1 復調テーブル 6 I が用意され、 この第 I 復調テーブル 6 1 から各デルタディ スタ ンス T 1 , T 2 に対応するキャラクタ値 が検出されることによって、 バーコ一 ドのキャラクタが判別される。
但し、 各デル夕デイ ス夕 ンス T 1 , T 2のモジュール数によりキャラク夕が判別 される場合には、 図 1 2から明らかなように、 ォッ ドの " 1 " ( 0 1 )とォッ ドの " 7 " ( 0 7 とは、 T 1 = 3 . Ύ 2 = 4 となるため、 0 1 と 0 7 とを区別するこ とができない。 同様に、 イーブンの " 2 " ( Ε 2 )とイーブンの " 8 " (: Ε 8 )とは、 Τ 1 = 3 , Τ 2 = 3であるため、 Ε 2 と Ε 8 とを区別することができない。
このため、 キャラクタの値が 0 1 と 0 7 , 乂は Ε 2 と Ε 8 との場合には、 デル 夕ディ スタンス Τ 1 中に存する黒バーのモジュール数が求められことによって、 キャラクタが区別される。 即ち、 図 1 1 に示す dバーのモジュール数が求められ る。 そして、 図 1 3に示す第 2復調テーブル 6 2が用意され、 dバーのモジユー ル数に対応するキャラクタ値が第 2復調テーブル 6 2から検出される。 これによ つて、 キャラク夕が特定される。
例えば、 デル夕ディ スタ ンスが T 1 = 3 , T 2 = .1である場合において、 dノ、 一のモジュール数が 1 のときには、 キャラクタ値力 "() L " となり、 dバーのモ ジュール数が 2のときは、 キャラクタ値が " 0 7 " となる。 同様に、 デルタディ スタンスが T 1 = 3, Τ 2 = 3である場合において、 dバーのモジュール数が 2 のときは、 キャラクタ値が "E 2" となり、 dバーのモジュール数が 1のときは、 キャラク夕値が " E 8 " となる。
ところで、 上記したように、 黒バーの幅は、 印刷状態によって太ったり細った りする。 このため、 太ったり細ったり している黒バーのモジュール数がそのまま 求められると、 誤ったモジュール数が求められる "J能性がある。 このため、 従来 では、 バーコ一 ドの黒バーが均一に太ったり細ったり していることを前提として、 復調が完了している直前のキャラク夕(又は各ガー ドバー, センターバーの何れか) の黒バー( 「Xバー」 と称する)のバー幅データが用いられ、 dバーの幅が補正さ れていた( 「補正復調処理」 と称する : 特開平 6 - 3 6 0 6 5号公報参照)。
即ち、 例えば、 図 1 4に すキャラクタの補正復調が順方向(ス夕一 トガ一 ドバ 一からェン ドガ一 ドバーへ向かう 向)で行われる場合において、 復調対象のキヤ ラク夕の各黒バー〔 bバー, dバー の幅(バー幅カウン 卜値 が、 夫々 b 1, b3とさ れ、 Xバーのバ一幅データ(バー幅カウン ト値)が b Vとされる。 また、 各バー幅の 理想的な値が Bv, B l, Β3とされ、 突際のバ一幅との差が Δν, Δ1, とされると、
Β V b V +△ v !; 1 )式
Β 1 b 1 + Λ 1 (· 2 )式
Β3 b 3 + A3 3 式
△ 1 ^ )式 (前提)
となる。 ここで、 Βνと Β 1との差分及び Βνと Β 3との差分が夫々求められると、 ( 1 )式及び( 2 )式より、
Β V — Β 1 = ( b V + △、')— ( b 1 + A 1)
= ( b v - 1 + (:△ v △ 1 )
^ b \' - b 1 · · · · ( 5 式
となる。 同様に、 U )式及び( 3 )式より
Βν — Β3 ν — b3 · ' · · ( 6 )式
となる。 上記( 5 )式及び( 6 )式は、 隣同士のバ一幅の差分をとることによって印 刷等による誤差を除去できることを示している。 ここで、 (5 )式のモジュール数 が算出されると、 次のようになる。 但し、 モジュール数は、 £号 MO D (バー幅力 ゥン 卜値)として示される。
VI 0 D ( B V 一 B 1 ) = M 0 D ( b V — b 1 ) · · · · ( 5 V 式
ここで、 と Β 1とは理想的なバー幅を示しているので、
Μ〇 D ( Β V - Β 1)= VI 0 D (' Β ν)- VI 0 ϋ ( Β 1)
と分割することができる。 従って、 ( 5 )' 式は次のようになる。
Μ 0 D ( Β V ) - Μ 0 D (: Β 1:) = Μ 0 D ( b V - b 1 )
··. Vl() D(B 1)-M〇 D(Bv)— MO D( b V— b 1) . . · ( 5 )" 式
となる。 (: 5 )" 式は、 VI 0 D (: b V— b 1)が算出され、 Xバーの理想的なモジュ一 ル数 M 0 D ( B V)から VI 0 I)! b - b 1)が減算されれば、 dバーの理想的なモジュ ール数 M 0 D ( B 1)が算出されることを示している。 様に、
0 D ( B 3)= VI 0 D (; B Vリー M◦ D ( b - b v:)
として、 bバーの理想的なモジュール数 M 0 D ( 133)を算出することができる。 そ して、 得ふれた理想的な dバーのモジユール数 M 0 D ( B 1)に対応するキャラクタ 値が第 2復調テーブル 6 2から, み出され、 このキャラクタ値が復調対象キャラ クタのキャラクタ値とされる。
ところが、 ヒ記した補止復調は、 バーコー ドの黒バーが均一に太ったり細った り していることを前提とする。 このため、 バーコ一 ドが曲面に貼付された場合等, バーコ一 ドの黒バーが fe部的に太ったり細つたり した場合には、 dバーのモジュ ール数が誤って求められ、 キャラク夕が誤って特定される場合があった。
このように、 従来におけるバー幅補正は、 バー幅の太り方や細り方が一様では ない場合に適正にバー幅を補止できないことがあった。
本発 "J]の Ιΐΐ的は、 バーコー ドのバー幅の人り方や細り方が一様でない場合でも 適正にバ一幅を補正することができるバー幅補正装置及びノ 一幅補正方法を提供 することである。
また、 本発明の目的は、 補正復調処理の際におけるキャラクタの復調ミスを抑 え、 これによつて、 バーコー ドの誤読を防止することができるバーコード読取装 置及びそのバーコ一 ド復調方法を提供することである。 発明の開示 本発明は、 上述した問題を解決するために以下の構成を採用する。 すなわち、 本発明の第 1の態様は、 バー幅補正装置である。 このバー幅補正装置は、 バー幅 の基準となる基準バー幅を求める基準バー幅検出部と、 前記基準バー幅検出部に よつて求められた複数の基準バー幅の平均値を求める平均値算出部と、 補正対象 バーのバー幅と、 前記基準バー幅との誤差を算出する誤差算出部と、 前記誤差算 出部によって求められた誤差値が予め定められた値以上である場合には、 前記平 均値算出部によって求められた複数の基準バー幅の平均値を用いて前記補正対象 バーのバー幅を補正するとともに、 前記誤差値が前記予め定められた値未満であ る場合には、 lW記基準バー幅によって前記補正対象バーのバー幅を補正する補正 部とを備える。
第 1の態様によると、 誤差値が予め定められた値以上となった場合には、 平均 値を用いて補正対象バーのバー幅が補正されるので、 バー幅の太り方や細り方が 一様でない ¾合でも有効にバー幅を補正することができる。
本発明の第 2の態様は、 調対象キャラクタを構成するバーのバー幅を、 復調 済みキヤラク夕を 成するバーのバー幅を基準バーとして補正するバー幅補正方 法である。 この補正方法は、 前記基準バー幅を算出し、 複数の基準バー幅の平均 値を算出し、 前記復調対象キャラクタを構成する補正対象バーのバー幅と、 前記 基準バー幅との誤差を算出し、 前記算出された誤差が予め設定された値以上であ る場合、 前記基準バー幅の 均値に基づいて前記補正対象バーのバー幅を補正す る。
本発明の笫 3の態様は、 複数のキャラク夕を含むバーコ一 ドを走査してバーコ 一 ドデータを検出するバーコ一 ドデータ検出部と、 バーコードデータ検出部によ つて検出されたバーコ一 ドデータをキャラクタ毎に復調する復調部とを備えるバ 一コー ド読取装置である。 この読取装置は、 復調部が、 各キャラクタの復調に際 し、 復調対象のキヤラク夕中に含まれこのキャラク夕の判別に使用される補正対 象バーの幅の基準となる基準バー幅を求める基準バー幅検出部と、 前記基準バ一 幅検出部によって求められた複数の基準バー幅の平均値を求める平均値検出部と. 基準バー幅と補正対象バーのバー幅との精度差を求める精度差検出部と、 前記精 度差検出部によって求められた精度差が所定値以上である場合に、 前記平均値検 出部によって求められた平均値を用いて前記補正対象バーのバー幅を補正する補 正部とを含む。
第 3の態様によると、 基準バー幅と補正対象バーの幅との精度差が所定値以上 である場合には、 平均値を用いて補正対象バーの補正処理が行われる。 このため、 従来に比べて補正復調の精度を上げることができ、 キャラクタの復調ミスによる バーコ一 ドの誤読を防止することができる。
本発明に使用されるバーコー ドは、 例えば、 W P Cコー ド(E Aヽ'コー ド, J A \コ一 ド等 である。
本発明の第 4の態様は、 第 3の態様における復調部が、 補正対象バーのモジュ ール数に対応するキャラク夕値を記憶した補正復調テーブルをさらに含み、 前記 補正部が、 袖'正後の補正対象バーのモジユール数を求め、 このモジユール数に対 応するキャラクタ値を前記補正復調テーブルから^み出すことで特定したもので ある。
本発明の^ 5の態様は、 ί|5 4の態様における復調部が、 復調対象のキャラクタ 中の笫 1 , バーからその隣に存する白バーまでの幅たる第 1 デル夕ディスタンス におけるモジュール数と、 I 記白バーからその隣に存する第 2黑バーまでの幅た る第 2デルタディスタンスにおけるモジユール数とを算出するデルタディ スタン ス算出部と、 第 1デル夕ディ スタンス及び第 2デルタディスタンスにおける各モ ジュール数に対応するキヤラク夕値を記憶した復調テーブルと、 前記デルタディ スタンス算出部によって算出された各モジュール数に対応する 2つのキャラク夕 値が前記復調テーブルに, 恺されている場合に、 前記第 1黒バーを前記補正対象 バーとし、 この補正対象バーのバー幅を前記基準バ一幅データを用いて補正する とともに、 補正後の補正対象バーのモジユール数を求める第 2補正部とをさらに 含み、 前記精度差検出部が、 前記第 2補正部によつて補正された補正対象バーの バー幅と基準バー幅との精度差を求めることで特定したものである。
本発明の第 6の態様は、 第 5の態様における第 2補正部が、 前記第 2黒バーの バー幅を前記基準バー幅を用いて補正し、 復調部が、 前記第 2補正部によって補 正された第 1黒バーのバー幅と第 2黒バーのバ一幅との精度差を求める黒バー精 度差検出部をさらに含み、 黑バー精度差検出部が、 前記黒バー精度差検出部によ つて得られた精度差が所定値未満である場合に処理を開始することで特定したも のである。
本発明の第 7の態様は、 複数のキャラク夕を含むバーコ一 ドを走査してバーコ 一ドデ一夕を検出するバーコ一 ドデータ検出部と、 バーコ一 ドデータ検出部によ つて検出されたバーコー ドデータをキャラクタ ¾に復調する復識部とを備えたバ 一コー ド読取装置のバーコード復調方法である。 この復調方法は、 各キャラクタ の復調に際し、 復調対象のキヤラクタ中に含まれこのキヤラクタの判別に使用さ れる補正対象バーの幅の基準となる基準バー幅を求める基準バー幅検出ステツプ と、 前記基準バー幅検出ステツプにて求められた複数の基準バー幅の平均値を求 める平均値検出ステツプと、 ½準バー幅と補正対象バーの幅との精度差を求める 精度差検出ステツプと、 前 精度差検出ステツプにて求められた精度差が所定値 以上である場合に、 前記、 均値検出ステツプにて求めた平均値を fflいて前記補正 対象バーのバー幅を補正する補 £ステツプとを含む。
本発明の第 8の態様は、 7の態様における補正ステップが、 M正後の補正対 象バーのモジュール数を求め、 補正対象バーのモジュール数とキヤラク夕値とを 対応づけて記憶した補正 ¾調テーブルから、 このモジュール数に対応するキャラ クタ値を読み出すことで特定したものである。
本発明の第 9の態様は、 ¾ϊϊ 8の態様における復調方法が、 復調対象のキャラク 夕中の第 1黑バーからその隣に存する白バーまでの幅たる第 1 デルタディスタン スにおけるモジュール数と、 iiif記 ΰバーからその隣に存する第 2黑バーまでの幅 たる第 2デル夕ディスタンスにおけるモジユール数とを算出するデルタディスタ ンス算出ステップと、 liij , デル夕ディ スタンス算出ステップにて算出された各モ ジュール数に対応するキヤラク夕値が 2っ存する場合に、 前記第 1 黒バーを前記 補正対象バーとし、 この補正対象バーのバー幅を前記基準バー幅データを用いて 補正するとともに、 補正後の補正対象バーのモジュール数を求める第 2補正ステ ップとをさらに含み、 精度差検出ステップは、 前記第 2補正ステップにて補正さ れた補正対象バーのバー幅と基準バー幅との精度差を求めることで特定したもの である。 本発明の第 1 ()の態様は、 第 9の態様における第 2補正ステップが、 前記第 2 黒バーのバー幅を前記基準バー幅を用いて補正し、 前記第 2補正ステツプにて補 正された第 1黒バ一のバー幅と第 2黒バーのバー幅との精度差を求める黒バー精 度差検出ステップをさらに含み、 前記精度差検出ステップが、 前記黑バー精度差 検出部によつて得られた精度差が所定値未満である場合に処理を開始することで 特定したものである。 図面の簡単な説明 図 1 は、 本発明の実施形態によるバーコ一ド読取装置の構成図である。
図 2は、 図 1 に示したバーコ一 ドの例を示す図である。
図 3は、 図 1 に示した C Ρじによるバーコ一 ド復調処理を示すフローチャー 卜 である。
図 4は、 図 3に示した 1 キャラク夕復調処理を示すフローチヤ一 トである。 図 5は、 図 4に示した ¾バー精度チヱック処理を示すフローチヤ―トである。 図 6は、 図 5に示したモジュール精度チ Iック処理を示すフローチャー 卜であ る。
図 7は、 図 4に小した dバ一精度チヱック処理を示すフローチヤ一 卜である。 図 8は、 本実施形態におけるキャラクタ長とモジュール数との関係を示す図で ある。
図 9は、 図 6に示したモジュール精度チェック処理における精度カウン夕の説 明図である。
図 1 ()は、 図 7に不した dバー精度チヱック処理における精度カウンタの説明 図である。
図 1 Lは、 黒バーの太り細りによるデルタディスタンスの説明図である。
図 1 2は、 第 1復調テーブルの説明図である。
図 1 3は、 第 2復調テーブルの説明図である。
図 1 4は、 従来における補正複調処理の説明図である。 発明を実施するための最良の形態 以下、 本発明を実施するための最良の形態を図面を参照して説明する。
::バーコ一 ド読取装置の構成〉
図 1は、 本発明によるバー幅補正装置を含むバー コ一 ド読取装置の概略構成を 示すブロック図である。 バー コー ド読取装置は、 例えば、 W P Cコー ドの U P C A , E Λ X I 3に従ったバー コード 2 1を読み取る。
図 2は、 図 1に示したバー コ 一 ド 2 1の例を示す図である。 図 2において、 ノく 一コー ド 2 【は、 スタートガー ドバー( S G B : レフ 卜ガー ドバー( L G B;) )及び ェン ドガ一 ドバー( E G B : ライ トガー ドバー (: R G B ) )の各ガー ドバーと、 セン ターバー( C B )と、 S (; Bと C Bとで挟まれた 6キャラクタからなる左側データ ブロックと、 C Bと E (; Bとで挟まれた 6キャラクタからなる右側データブ口ッ クとを有している。 各キャラクタは、 7つのモジュールからなり、 各モジュール は、 2本の バー( aバー, cバー)と 2本の黒ノぐ一( bバー, dバー)とからなる。 各黒バーは、 キャラクタの値に応じて 1.〜 !個のモジュールで構成される。
図 1 において、 バーコー ド読取装置は、 互いにバス Bによって接続された C P U 1 , バー幅データ群格納バッ ファ 2 , 制御部回路 3, イ ンタフヱース回路 4 , R〇 M 5及び R Λ M 6を する。 また、 バー コ ー ド読取装置は、 バー幅データ群 格納バッファ 2に接続されたバ一幅カウンタ 1 6, バー幅カウンタ L 6に接続さ れたクロック 1 9及び .\ D変換器 1 5 , Λ ,· D変換器 1 5に接続された受光素 子 1 8を有する。 さらに、 バー コー ド読取装置は、 制御部回路 3に接続されたモ 一夕駆動回路 8, レーザ駆動回路 9 , スピーカ 1 ()及び L E D 1 1 , モータ駆動 回路 8に接続されたモ一夕 1 2, モータ 1 2によって駆動される走査光学系 1 4 , 並びに、 レーザ駆動回路 9に接続された半導体レーザ 1 3を有する。
R 0 M 5は、 バーコー ド認識, 復調処理プログラムを格納している読み出し専 用メモリである。 C Pじ 1 は、 R O M 5内に格納されているバーコー ド認識プロ グラム及び復調処理プログラムを実行することによって、 バー コ一ド読取装置全 体の制御を行うとともに、 バーコー ド 2 1を読み取って得られたバー幅データ群 を復調し、 バー コ一ド 2 1全体に対応するデータを再現する。 ィ ンタフヱース回路 4は、 バス Bのステータスを制御したり、 上位機(上位コン ピュータ) 2 0 iへのデータ送信等を制御したりする。
制御部回路 3は、 モータ駆動回路 8, レーザ駆動回路 9 . スピーカ 1 ()及び発 光ダイォ一 ド(L E D ) 1 1を制御する。 モータ駆動回路 8は、 モータ 1 2を駆動 して、 走査光学系 1 4を構成する図示せぬポリゴンミラ一を回転させる。 レーザ 駆動回路 9は、 半導体レーザ 1 3を駆動して、 レーザビーム Lを出射させる。 ス ピー力 1. 0は、 バーコ一 ドの読取完了を示す音声を発する。 発光ダイオー ド 1 1 は、 バーコー ド 2 1 の復調の結果得られた情報(例えば、 商品の販売価格等)の情 報を表示する表示素子である。
半導体レーザ 1 3から出射されたレーザビーム Lは、 走査光学系 1 4に入射さ れ、 この走査光学系 1 4によって偏向される。 即ち、 この走査光学系 1 4は、 モ —タ 1 2によって回転する図示せぬポリゴンミ ラーによってレーザビーム Lを一 方向に偏向する。 このポリゴン ミラーの反射側には、 複数の固定ミ ラーが固定さ れている。 従って、 ポリゴン ミ ラーによって偏向されたレーザビーム Lは、 各固 定ミ ラーによつて 度反射され、 その偏向方向(走査方向)が様々な方向に変えら れる。 この走査光学系 1 4によると、 ポリゴン ミラーの一反射面による偏向周期 内で、 複数の方向へのレーザビーム走査が連続的に高速で行われる。 このポリゴ ン ミ ラーの一反射面による偏向周期内でなされる複数のレーザビーム走査の夫々 を、 以下 「一走査」 という。
走査されたレーザビーム Lがバーコー ド 2 ίに当たると、 この表面においてレ ―ザビームしが乱反射され、 その反射光 Rの一部が受光素子(ホ 卜ダイオード) 1 8によって受光される。 Λ , 1)変換器 1 5は、 この受光素子 1 8によって受光さ れた反射光 Rの明暗を示す電流値を、 所定のしきい値と比較して、 二値化信号に 変換する。 この二値化信号は、 反射光 Rの強度がバーコード 2 1 中の黒バーの反 射率に対応する場合には " Π " を示し、 反射光 Rの強度がバーコー ド 2 1 中の白 バーの反射率に対応する場合には "し" を示す。
バー幅カウンタ 1 6は、 Λ ' D変換器 1 5から入力された二値化信号に基づい て、 二値化信号の立ち上がりタイ ミ ングから立ち下がりタイ ミ ングまでの時間(バ ーコー ド 2 1 中の黒バーの幅に対応するものと期待される)及び二値化信号の立ち 下がりタイ ミ ングから立ち上がりタイ ミ ングまでの時間(パ'一コ一 ド 2 1 中の白バ 一の幅に対応するものと期待される)を測定する。
なお、 パ'一幅カウン夕 1_ 6は、 これらのバー幅に対応する時間を計測するため に、 クロック 1 9からのクロック数をカウン 卜する。 バー幅カウンタ 1 6から出 力される各バーの読取データ(バーコ一 ドデータ)は、 このカウン ト値と白又は黑 を示す色識別信号とを組み合わせた形態であり、 レーザービームの一走査毎に、 このような読取データが連続的に出力される。 このように連続的に出力される一 走査^の読取データを 「バー幅データ群」 という。
バー幅データ群は、 バー幅データ群格納バッファ 2に一時的に格納される。 バ —幅データ群格納バッファ 2は、 バー幅カウンタ 1 6から人力されたバ一幅デー タ群を順次格納するとともに、 C P I: 1からの求めに応じて、 格納した順に一個 づっバー幅データ群を C Pし' 1 に渡す。
R A V1 6には、 C Pし 1 によるバーコー ド認識処理, バーコー ド復調処理のた めの作業領域が展 1 される。 R A M 4は、 バー データ群格納バッファ 2から読 み出されたバーコ一 ドデ一夕を格納する。 また、 R Λ は、 C Pし 1によるノ —コー ド復調処理によって得られた復調バーコードデータを保持する。 また、 R A 4には、 後述するバーコ一 ド復調処理に際し使用されるデータを格納する領 域として、 Xバ一基本カウンタ f b a s e b a r : 平均値格納領域) 3 1 , 平均値 計算用カウンタ (: t o t a l b a r ;) 3 2 . Xバーデータ格納領域 3 3, 黒バー精 度レジス夕 3 ] , W, 1復調テーブル 6 1 (図 1 2参照), 第 2復調テーブル 6 2 (図 1 3参照)等を有している。
なお、 上述した制御部回路 3, モー夕駆動回路 8, レーザ駆動回路 9, モータ 1 2 , 半導体レーザ〖 3, 査光学系 1 '1 , Λ , D変換器 1 5, バー幅カウンタ 1 6 , 受光素子 1 8 , クロック 1 9及びバー幅データ格納バッファ 2が、 本発明 のバーコードデータ検出部に相当する。 また、 c pし' i カ 、 本発明の復調部とし て機能し、 基準バー幅検出(算出)部, 平均値検出(算出)部, 誤差算出部, 精度差 検出部, 補正部, デルタディ スタ ンス算出部, 第 2補正部, 及び黒バー精度検出 部を実現する。 また、 第 1復調テーブル 6 1が本発明の復調テーブルに相当し、 第 2復調テーブル 6 2が本発明の補正復調テーブルに相当する。 〈バーコ一 ド復調処理〉
次に、 R O M 5 に格納され C P U 1 によって実行されるバーコ一 ド復調処理プ 口グラムの具体的内容を、 図 3〜図 7に不すフローチャー 卜に基づいて説明する。 図 3 は、 バーコー ド復調処理(以下、 単に 「復調処理」 という)のメ イ ンルーチン が示されている。 このメイ ンルーチンは、 以下の処理を前提と して開始される。 即ち、 例えば、 バーコ一 ド読取装置の主電源が投入されると、 C P じ 1がバ一 コー ド認識処理を行う。 これによつて'、 バーコ一 ド 2 1 が走査され、 バ一幅デー 夕群がバー幅データ群格納バッファ 2に格納される。 その後、 C P じ 1 カ 、 バー 幅データ群格納バッファ 2からバー幅データ群を読み出 し、 R Λ M 6の所定領域 に格納する。 いて、 C P し 1 は、 バー幅デー夕群中の S G B . C B又は E G B のバー幅カウン夕値とモジユール数を求め、 求めたバー幅カウン夕値及びモジュ —ル数を Xバーの力ゥン夕値及びモジユール数として、 R A M 6中の Xバーデー 夕格納領域に格納する。 なお、 S G B, C B , E G Bのモジュール数は 1.である。 その後、 C P じ 1 力く、 メ イ ンルーチンの実行を開始する。
最初に、 C P U 1 は、 I 1 に小す R A VI 6中の Xバー基本カウンタ( b a s e - b a r ) 3 1 の値をク リアする'〔ステップ S )。 次に、 C P し I は、 R A M 6 中の 黑バー精度レジスタ b 1 c a d — m o d ) 3 4 をイニシャルする(ステップ S 2 )。 次に、 C P U 1 は、 1 キャラクタ復調処理用のデータを作業領域に読み出す。 1 キャラクタ復調処理用のデータは、 復調対象のキャラク タ(図 2参照)をなす a〜 d の各バーのバー幅カウンタ値, キャラクタ長, Xバーのバー幅カウン ト値, 及 び Xバーのモジユール数からなる。
続いて、 C P じ 1 は、 Iズ I 4 に小される 1 キャラク夕復調処理のサブルーチンを 実行する(ステップ S 4 :)。 このサブルーチンにおいて、 C P じ 1 は、 最初に、 ス テツプ S 0 0 1 〜 S 0 0 7の処理において、 Xバーデータ格納領域 3 3に格納さ れた Xバーのモジュール数を求める。 続いて、 C Pじ 1 は、 求めたモジュール数 に応じて Xバーデータ格納領域 3 3に格納された Xバー幅カウンタ値を 1 2モジ ュ―ル分に増加した値を求め、 求めた値を R Λ 6 中の平均値計算用カウン夕( t () t a 1 b a r ) 3 2 に格納する。
こ こで、 ί 2モジュール分の Xバーのバー幅カウンタ値を求めるのは、 1 2が Xバーのモジュール数( 1 〜 4 )の最小公倍数であり、 1 2モジュール分の Xバー 幅カウンタ値から 1モジュールあたりのバー幅カウンタ値を求めることによって、 Xバーのモジュ一ル数の相違による誤差の発生を抑えるためである。
ステップ S O 0 1〜 S () 0 7の処理が終了すると、 C P ^ U 、 Xバー基本力 ゥン夕 3 1がク リアとなっているかを判定する(ステップ S () 0 8 )。 このとき、 Xバー基本カウンタ 3 1がク リ アとなっている場合( S () () 8 ; Y )には、 ステツ プ S 0 0 9に処理が進み、 そうでない場合( S 0 0 8 ; X )には、 ステップ S 0 1 0に処理が進む。
ステップ S 0 0 9に処理が進んだ場合、 C P じ 1 は、 平均値計算用カウンタ 3 2の値を Xバー基本カウン夕 3 1 にコピーする。 これに対し、 ステップ S () 1 0 に処理が進んだ場合には、 C P じ 1 は、 Xバー基本カウンタ 3 〖 に現在格納され ている値と平均値計算用カウンタ 3 2に格納されている値とを加算した後、 その 加算結果の 2分の 1 を求め、 求めた値を Xバー基本カウンタ 3 2に格納する。 ス テツプ S 0 1 ()の処理によって、 後述する B 1 e a d補正復調に際して用いられ る基準バー幅データが生成される。
ステップ S 0 9又はステップ S 1 0の処理が終了すると、 C P じ 1 は、 復調対 象のキヤラク 夕の cバ一及び dバーについての各デルタディ スタンス T 1, T 2 (図 2参照)を求める(ステツプ、 S 1 I :)。
続いて、 C P じ 1 は、 各デルタディ スタ ンス T 1 , T 2 におけるモジュール数を 求めた後、 R A M 4 中の第 ) 復調テーブル 6 1 (図 1. 2参照)を参照する。 このと き、 C P U i は、 デルタディ スタンス T 1 のモジュール数が 3又は .'】 であり且つ デルタディ スタンス T 2のモジュール数が 3又は 4であるか否かを判定する。 こ れによって、 C P 1 は、 復調対象キャラクタが補正復調を必要とするキャラク タ(補正キャラクタ)か否かを判定する(ステップ S 0 1 2 )。 復調対象のキャラク タが補正キャラクタである場合( S 0 1 2 ; Y )には、 処理がステップ S O 1 3へ 進み、 そうでない場合(S 0 1 2 ; N )には、 C P U 1が各デルタディ スタ ンス 1, T 2に対応するキャラクタ値を第 1復調テーブル 6 1から読み出した後、 処理 がステツプ S ϋ 2 1へ進む。
ステップ S 0 1 3に処理が進んだ場合には、 C P U 1 は、 Xバーデ一夕格納領 域 3 3に保持された Xバーに係るデータを用い、 従来技術にて説明した補正復調 を行う。 これによつて、 復調対象キャラクタの bバー及び dバーのモジュール数 が補正される。 そして、 C Pじ 1は、 R A -VI 4の第 2復調テーブル 6 2 (図 1 3参 照)を参照し、 補正後の dバーのモジュール数に対応するキャラク夕値を第 2復調 テーブル 6 2から読み出す。 これによつて、 復調対象キャラクタの値が特定され る。 即ち、 復調対象キャラクタが復調される。
ステップ S O 1 3の処理が終了すると、 C Pじ 1は、 図 5に示す黒バー精度チ ヱック処理のサブルーチンを実行する(ステップ S () L 4 )。 図 5に示すサブルー チンにおいて、 C Pじ 1は、 最初に、 ステップ、 S () 1 3の処理によって得られた bバーのモジュール数を読み込む(ステップ S 1 0 1〕。 続いて、 C Pじ 1は、 図 6に示すモジュール精度(誤差)チヱック処理を実行する(ステップ S 1 0 2 )。 図 6に示すサブルーチンにおいて、 C Pじ 1は、 bバーのモジュール数(d e - m o d ) , モジュール精度チヱックを行う (ここでは、 b 一)のバー幅デ一 夕( c h k b a r;), 及び復調対象キヤラク夕のキャラクタ長(C )を、 引数として 用意する。
本実施形態では、 図 8に示すように、 キャラクタ長の 1 1分の 1 以上で 1 4分 の 3以下の長さが 1 モジュールとして判定され、 キャラクタ長の 1 .】分の 3を上 回り且つ 1 4分の 5以下の長さが 2モジュールとして判定され、 キャラクタ長の
1 4分の 5を上回り且つ 1 4分の 7以下の長さが 3モジユールとして判定され、 キャラクタ長の L 4分の 7を上回り且つ 1 4分の 9以下の長さが 4 モジュールと して判定される。 伹し、 モジュール精度チヱック処理では、 後述するように、 チ エック精度を高めるため、 モジユール数を 1 0倍した値が用いられる。
図 6において、 C Pし' 1は、 復調対象キャラク夕のキャラクタ長を 5倍する(ス テツプ S 2 0 1 )。 続いて、 C Pじ 1は、 復調対象キャラクタのキャラクタ長を 1 0倍する(ステップ S 2 0 2;)。
次に、 C Pじ 1 は、 引数 d e c - m o d ( bバーのモジュール数)が零か否かを 判定する(ステップ S 2 () 3 )。 このとき、 引数 d e c - m o dが零である場合(S
2 0 3 ; Y )には、 ステツプ、 S 2 () 6へ処理が進み、 引数 d e c m o dが零でな い場合(S 2 0 3 ; λ' )には、 処理がステップ S 2 0 4へ進む。 ステップ S 2 () 4へ処理が進んだ場合、 C P U 1 は、 ステップ S 2 0 1 で得た 値とステップ S 2 () 2で得た値とを加算する。 そして、 C P C 1 は、 引数 d e c - m o dの値を 1 デク リ メ ン ト し(ステップ S 2 0 5 )、 処理をステツプ S 2 0 3へ 戻す。 ステップ S 2 0 〜 S 2 0 5の処理において、 C P し ' 1 は、 復調対象キヤ ラク夕のキャラクタ長を bバーのモジユール数に応じて乗じた値(比較値)を求め る。 即ち、 は、 bバーのモジュール数が 1 のとき、 キャラクタ長を 1 5 倍した値を求め、 モジュール数が 2のとき、 キャラクタ長を 2 5倍した値を求め、 モジュール数が 3のとき、 キャラクタ長を 3 5倍した値を求め、 モジュール数が 1 のとき、 キャラク夕長を 1 5倍した値を求める。
ステップ S 2 0 6へ処理が進むと、 C P じ 1 は、 図 9に小す精度カウンタ i の 値を 〖 〖 にセッ トする。 図 9に不す精度カウンタ i は、 モジュール数が 1 の場合 に用いられ、 Xバーの 1 モジュールを 1 . () (基準:)とする () . 5モジュールから 1 . 5モジュールまでのスケール( 1 モジュールと判定される範囲)に応じて 1 〜 1 ()の何れかの値を採る。 例えば、 0 . 5モジュール(キャラクタ長の 7 ()分の 5 ) から 0 . 6モジユールの I lでは、 粘-度カウンク i は i = 1 となり、 1 . 0モジュ ール(キャラクタ丄¾の 7 0 分の 1 ( から し 1 モジュールの問では、 精度カウン 夕 i は i = 6 となり、 1 . 1 モジュールから 1 . 5モジュール (:キャラクタ長の 7 ()分の 1 5 )の間では、 粘度カウンタ i は 1 = ! 0 となる。 これに対し、 モジュ一 ル数が 2の場合には、 精度カウンタ i は、 1 . 5モジュールから 2 . 5モジユ ー ルまでのスケールにおいて ! 〜 1 0の何れかの値を採る。 また、 モジュール数が 3の場合には、 精度カウン夕 i は、 2 . 5モジュールから 3 . 5モジュールまで のスケールにおいて 1 〜 I ()の何れかの値を採る。 また、 モジュール数が 4 の場 合には、 精度カウン夕 i は、 3 . 5モジュールから ' 1 . 5モジュールまでのスケ ールにおいて 1 〜 1 0の何れかの値を採る。
次に、 C P じ 1 は、 引数 c h k b a r ( bバ一のバー幅力ゥンタ値)を 7 0倍し た値( b a r c n t :)を求める(ステップ S 2 () 7 )。 続いて、 C P U 1 は、 ステツ プ S 2 0 1 〜 S 2 () 5にて求めた比較値がステツプ、 S 2 0 7にて求めた b a r e n t の値を上回っているか否かを判定する (:ステップ S 2 () 8 .)。 このとき、 比較 値が b a r c n t の値を上回っている場合( S 2 0 8 ; Y )には、 C P じ 1 は、 精 度カウンタ i の値に応じた bバーのモジュール精度を求め、 モジュール精度チヱ ック処理のサブルーチンを終了する。
これに対し、 比較値が b a r c n t の値以下である場合( S 2 0 8 ; X )には、 C Pじ 1 は、 比較値からキャラクタ長を減算し(ステップ S 2 0 9 )、 精度カウン 夕 i の値を 1 デク リ メ ン トする(ステップ S 2 1 0 )0 そして、 C Pじ 1 は、 精度 カウン夕 i の値が零か否かを判定する(ステツプ S 2 1 1 。 精度カウン夕 i が零 である場合( S 2 1 1 ; Y )には、 モジュール精度チヱ ッ ク処理のサブルーチンが 終了し、 精度カウンタ i が零でない場合( S 2 1 1 ; ヽ')には、 処理がステップ S 2 0 8へ戻る。
このように、 ステップ S 2 () 6 〜 S 2 1 1 にて、 C P じ 1 が精度力ゥンタ i の 値を求めることにより、 bバーのモジュール精度が求められる。 例えば、 ステツ プ S 0 1 3の補正復調処理の結果、 復調対象キャラクタがォッ ドの " に' ( 0 0 1 1 0 0 1 ;)であり、 bバーのモジュール数が 2であったとする。 また、 例えば、 b バーのバー幅データ(カウン夕値)が 2 L 0であり、 復調対象キャラクタのキャラ クタ長(カウン 卜値)が 7 0 0であったとする。
この場合、 ステップ S 2 0 1 〜 S 2 0 5にて、 比較値としてキャラクタ長を 2 δ倍した値 = 1 7 5 0 0が求められる。 また、 ステップ S 2 0 7にて、 b a r e n t の値 = 1 J 7 0 0が求められる。 モして、 ステップ 2 () 8 〜 S 2 1 1 のルー プ処理によって、 精度カウンタ i = 7が求められる。 この例では、 精度カウンタ i が 7のとき、 bバーのモジュール数は 2 . 1 モジュールとなる。 従って、 C P じ 1 は、 bバーのモジュール数から小数点以下を抽出した値, 即ち() . 1 モジュ ールを bバーのモジユール精度( b - m o d )と して求め、 モジユール精度チヱッ ク処理を終了し、 処理を黒バー精度チェ ッ ク処理(図 5参照)に戻す。 なお、 モジ ユール精度チェ ッ ク処理では、 チヱ ッ ク対象のバー(ここでは bバー)のモジユ ー ル数に拘わらず、 精度カウンタに対応するモジユール数の小数点以下の部分が、 モジュ一ル精度と して求められる。
その後、 C P U 1 は、 図 5に示したステップ S 1 0 3に処理を移す。 ステツプ S 1 0 3では、 C Pじ 1 は、 ステップ S 0 1 3 にて得られた dバ一のモジュール 数を読み込む。 続いて、 は、 dバーについて、 図 6 に示したモジュール 数チヱック処理を行い、 dバーのモジユール精度( d — m o d )を求める(ステツプ S 1 0 4 )o
次に、 C P IJ Iは、 b - m o dが d - m o dを上回っているか否かを判定する(ス テツプ S 1 0 5 )。 このとき、 b -m o dが d - m o dを上回っている場合( S 1 0 5 ; Y )には、 C P U 1は、 b - m o dから d - m o dを減算した値を m o d - s a b u nとして求め、 処理をステップ S 1 0 8へ進める。 これに対し、 b - m o dが d -m o d未満の場合( S 1 0 5 ; X )には、 C Pじ 1は、 d - m o dから b m o d を減算した値を m o d - s a b u nとして求め、 処理をステップ S 1 0 8へ進める c ステップ S 1 0 8へ処理が進むと、 C Pじ 1は、 黑バー精度レジスタ( b 1 e a d ^ m o d ) 3 がィニシャルかを判定する。 このとき、 黒バー精度レジスタ 3 4 がィニシャルである場合(S 1 0 8 ; Y )には、 C Pじ 1は、 処理をステツプ S 1 1 ()へ進める。 黒バー精度レジスタ 3 4がイニシャルでない場合(S 1 0 8 ; N ) には、 C Pじ 1は、 ステップ S 1 0 6又は S 1 () 7にて求めた m o d s a b u n の値をもって黒バー精度レジスタ 3 4 の内容を更新し(ステップ S 1 0 9 )、 黒バ 一精度チ ック結果が 0 Kであると決定し、 黒バー精度チェック処理を終了する。 一方、 ステップ S L 1 0へ処理が進んだ場合には、 C P U 1は、 黒バー精度レ ジス夕( b 1 e a d - m o d ) 3 4の値が m () d - s a b u nの値を上回っている力、 否かを判定する(ステップ S 1 1 0 )。 このとき、 b 1 じ a d m o dが m o d - s a b υ nを上回っている場合 (: S 1 1 0 ; Y には、 C P I; 1 は、 b 1 e a d -m o d力、ら m o d - s a b u nを減算した値を b 1 a d - s a b u nとして求め、 処 理をステップ S 1 1 3へ進める。 これに対し、 b 1 e a d m o dが m o d s a b u n未満である場合 (; S 1 1 () ; X )には、 C Pじ 1は、 m o d - s a b u nから b 1 e a d - m o dを減算した値を b 1 e a d - s a b u nとして求め、 処理をス テツプ S 1 1 3へ進める。
ステップ S 1 1 3へ処理が進むと、 C Pじ 1は、 bバーのモジュール精度 b m o dと dバーのモジュール精度 d m o dとの差分が() . 3モジユール以上かを判 定する。 即ち、 b 1 e a d [^。 の値がり . 3モジュール以上か否かを判定する c このとき、 b 1 し、 a d m o dの値が 0. 3モジュール以上である場合( S 1 1 3 ; Y )には、 C Pじ 1は、 黑バー精度チヱック結果が N Gであると決定し、 黒バー 精度チヱック処理を終了する。 これに対し、 b 1 e a d - m o dの値が() . 3モジ ユール未満の場合(S 1 1 3 ; X)には、 C Pじ 1は、 ステップ S 1 () 6又は S 1
0 7にて求めた m o d - s a b u nの値をもつて黒バー精度レジスタ 3 4を更新し (ステップ S 1 1 4 )、 黒バー精度チヱック結果が 0 Kであると決定し、 黒バー精 度チヱック処理を終了する。 このように、 C Pじ 1 は、 bバーと dバーの精度差 が ± 0. 3モジュール以上である場合には、 黒バー精度がヽ :(;と判定し、 ± 0.
3モジュール未満である場合には、 黒バー精度が◦ Kと判定する。 その後、 C P じ 1は、 図 4に示すステツプ S 0 】 5に処理を移す。
ステツプ S 0 1 5へ処理が進むと、 C Pじ 1は、 黒バー精度チヱック結果が N Gか否かを判定する。 このとき、 チェック結果がヽ' Gである場合( S 1 1 5 ; Y)、 C Ρじ 1は、 復調対象キャラクタの復調処理がヽ' Gであると判定し、 1キャラク 夕復調処理を終了する。 これに対し、 チヱック結果が() Κである場合(S 1 1 5 ; X)、 C Ρじ 1 は、 ステップ S 1 1 6へ処理を進める。
ステップ S 1 1 6では、 C P 1 は、 図 7に示す dバー精度チヱック処理のサ ブル一チンを実行する。 図 7において、 C Pじ 】 は、 最初に、 dバーのモジユ ー ル数( d 1 m () d : 0〜 4 )を算出する(ステップ S 3 () 1 )。 次のステップ S 3 0 2〜 S 3 0 6では、 C P U 1は、 上記したステップ S 2 0 1 〜 S 2 () 5 (図 6参照) とほぼ同じ処理を行い、 dバーのモジユール数に応じた比較値を得る。
即ち、 dバーのモジュール数が iのとき、 復調対象キャラクタのキャラクタ長 を 1 5倍した比較値が求められ、 dバーのモジュール数が 2のとき、 復調キャラ ク夕のキヤラク夕長を 2 5倍した比較値が求められ、 dバーのモジユール数が 3 のとき、 復調キャラクタのキャラクタ長を 3 5倍した比較値が求められ、 dバー のモジュール数が 4のとき、 復調キャラクタのキャラクタ長を 4 5倍した比較値 が求められる。 各比較値は、 図示せぬ c h rカウンタにセッ トされる。
次に、 C Pじ 1は、 図 1 ()に示す精度力ゥンタ X b a r -m o dの値を 9に設 定する(ステップ S 3 0 7 )。 図 1 ()に示すように、 精度カウンタ X - b a r - m o dは、 例えば、 dバーのモジュール数が〖の場合には、 Xバーの 1モジュールを
1. () (基準)とする() . 5モジュールから 1. 5モジュールまでのスケールに応 じて()〜 9の何れかの値を採る。 例えば、 精度カウンタ X - b a r m o dのカウ ン夕値が 1 のとき、 モジュール数は 0. 6モジュールであり、 カウンタ値が 9の とき、 モジュール数は 4 モジュールである。
次に、 C P し' 1 は、 dバーのバー幅カウンタ値を 7 0倍した値を b a r c n t と して求める(ステツプ S 3 () 8 )。 次に、 C P じ Uま、 b a r c n t の値がステ ップ S 3 () 2〜 S 3 () 6にて求めた比較値を上回るか否かを判定する(ステップ S 3 0 9 )。 このとき、 b a r c n t の値が比較値を上回る場合( S 3 0 9 ; Y)には、 C P じ 1 は、 このときの精度カウンタ X - b a r m o dのカウンタ値に対応する dバーのモジュール精度を求め、 dバー精度チヱ ッ ク処理を終了する。 これに対 し、 b a r c n t の値が比較値未満の場合( S 3 0 9 ; ヽ')には、 C Pじ 1 は、 c h r カウン夕の値(比較値:〉からキャラクタ長を減算し(ステップ S 3 1 0 )、 精度 カウンタ X - b a r - m () dの値を 1. デク リ メ ン 卜する(ステップ S 3 1 L )。
その後、 C P 1 は、 お i度カウンタ X b a r m o dのカウンタ値が零か否か を判定する(ステップ S 3 1 2 )。 このとき、 カウン タ値が零の場合( S 3 1 2 ; Y) には、 C P U 1^、 dバー精度チェ ッ ク処理を終了する。 これに対し、 カウンタ 値が零でない場合(S 3 1 2 ; X;)には、 C Pじ 1 は、 処理をステツプ S 3 () 9へ 戻す。 このように、 ステップ S 3 0 7〜 S 3 1 2にて、 C P じ L は、 精度カウン タ X b a r m o dの値に ί;じた dバーのモジュール精度を得る。 その後、 C P じ 1 は、 dバー精度チェ ッ ク処埋を終 Γし、 処理を 1 キャラク タ復調処理のステ ップ S 0 1 7 (図 4参照)に戾す。
ステップ S 0 1 7に処理が進むと、 C P じ 1 は、 dバ一精度チェ ック処理にて 得た dバーのモジユール精度が() · 4 モジユール以上か否かを判定する(ステツプ S O 1 7 )。 このとき、 モジュール精度が 0. 4 未満である場合( S 0 1 7 ; N)、 C P ϋ i は、 ステップ S 0 1 3 における復調結 j¾が 0 Kと判定し、 】 キャラクタ 復調処理を終了する。 これに対し、 モジュール精度が 0. 4 以上である場合( S O 1 7 ; Y )、 C Pじ 1 は、 処理をステツプ S 0 1 8へ進める。
ステップ S 0 1 8へ処理が進むと、 C P じ 1 は、 補正復調に用いる基準バー幅 データ(図 1 4 に示す bv)を、 Xバーのバー幅から Xバー基本力ゥン夕( b a s e - b a r ) 3 1 の値(Xバーの平均値)に変更する。 このため、 C P じ 1 は、 b a s e - b a rの値の 1 2分の 1 の値を求める。 その後、 C P じ 1 は、 b a s e - b a rの値の 1 2分の iの値を基準バ一幅として用いた補正復調処理(Β 1 e a d補正 復調処理)を行う(ステップ S 0 1 9 )。 これによつて、 補正後の dバーのモジュ一 ル数に対応するキャラクタ値が第 2復調テーブル 6 2から読み出され、 このキヤ ラクタ値をもって復調対象キャラクタが復調される。
その後、 C P U 1は、 ステップ S ϋ 1 9の復調処理の結果が 0 Kか否かを判定 する(ステップ S 0 2 0 )。 このとき、 復調結果が() Κの場合(S 0 2 0 ; Υ )には、 C Ρじ 1は、 復調結果が Ο Κであるとの処理結果をもって 1キャラクタ復調処理 を終了する。 これに対し、 復調結果がヽ'(;の場合( S 0 2 0 ; ヽ には、 C P U 1 は、 復調結果がヽ' Gであるとの処理結果をもつて 1キャラクタ復調処理を終了す る。
このように、 は、 補正キャラクタに対し、 まず Xバーを用いた補正復 調処理を施し、 この場合における Xバーと dバーとの精度差が(). 4モジュール 以上であった場合には、 b a s e - b a rの値の 〖 . 1 2の値を基準バー幅( b v ) として補正復調処理を行う。 これによつて、 バーコ一 ド 2 1 の黑バーが局部的に 太ったり細ったり している場合でもキヤラクタの復調を適正に行うことができる。 ところで、 ステップ、 S O 2 I に処理が進んだ場合には、 C Pし' 〖は、 ステップ S 0 2 1 〜、S () 2 '1にて、 上述したステップ S 0 1 4 〜 S () 1 7とほぼ同じ処理 を行う。 そして、 ステップ、 S () 2 4にて X 0の判定がなされた場合には、 C P U 1は、 本処理にて復調した dバーのカウンタ値及びモジユール数をもって Xバー データ格納領域 3 3の内容を更新する(ステップ S 0 2 5 )。 これによつて、 dノく 一のデータ力 <、 次の復調対象キャラクタの補正復調処理において、 Xバーのデー 夕として用いられる。
1 キャラク夕復調処理が終了すると、 C Pじ 1は、 処理をメィンルーチンのス テツプ S 5 (図 3参照)に移す。 ステップ S 5では、 C Pじ 1は、 1キャラクタ復 調処理による復調結果が 0 Kか否かを判定する。 このとき、 復調結果が であ る場合(S 5 ; N )には、 C P U 1は、 有効な復調データが得られなかったものと してバーコー ド復調処理を終了する。 この場合、 C P 1は、 他の走査軌跡にお けるバーコ一 ドデータを R .\ VI 4又はバ一幅データ群格納バッファ 2から読み出 し、 上記したバーコー ド復調処理を行う。 これに対し、 復調結果が 0 Kである場合( S 5 ; Y )には、 C P U 1は、 今回の バーコ一ド復調処理において処理対象となつたバー コ一ドデ一夕に含まれている 全ての有効キャ ラクタについて復調処理が終了したかを判定する(ステツプ S 6 )。 このとき、 全ての有効キャラクタについて復調処理が終了していない場合( S 6 ; X )には、 C Pし' 1は、 処理をステップ S 3に戻し、 次のキャラクタについての 1 キャラクタ復調処理を行い、 ステップ S 6にて Y E Sの判定がなされるまでステ ップ S 3 〜 S 6のループ処理を実行する。 そして、 全ての有効キヤラク夕につい て復調処理が終了した場合(S 6 ; Y )には、 有効な復調データが得られたものと してバー コ— ド復調処理を終了する。
この場合、 復調されたバーコー ドデータ(復調バーコー ドデータ)は、 R A M 4 に格納される。 このとき、 復調バーコー ドデータカ 、 バーコード 2 1の一部につ いての復調データである場合(いわゆる分割読取, プロック読取である場合)には、 C P L' 1は、 残りの部分に係るバーコ一 ドデー夕について上記したバーコ一ド復 調処理を実行し、 得られた復調バーコードデータ同士を合成(結合)し、 バーコ一 ド 2 〖全体, 即ち、 バーコ一 ド 2 1に含まれる全てのキャラク夕の復調データを 得る。
バーコード 2 1 全体の復調データが得られた場合には、 C P IJ 1 は、 モジュラ スチェ ッ ク処理(モジュラス 1 ()チヱック)を実行する。 その後、 モジュラスチェ ック処理の結果が ϋ Kであつた場合には、 バー コー ド 2 1 の復調が終了したこと を示す音声をスピーカ 1 ()に出力させるための指示を制御部回路 3に与えるとと もに、 バーコ一 ド 2 丄のキャラク夕値に基づく情報を L E D 1 1に表示させるた めの指示を制御部回路 3に与-える。 さらに、 C Pじ 1は、 復調バーコ一ドデータ の内容(又はこれに対応する情報)を、 ィンターフェイス回路 4を通じて上位機(P 0 S ) 2 0 1 に転送する。 お、 C Pじ 1は、 バーコー ド 2 1全体の復調データが 得られない場合には、 エラ一表示を行うための指示を制御部回路 3に与える。 こ れによって、 スピーカ 1 ()が読取エラーを示す音声を出力し、 L E D 1 1が読取 ェラ一を表示する。
〈実施形態の作用〉
以上説明したバーコ一ド読取装置によると、 1キャラクタ復調処理(図 4参照) において、 Xバーと dバーとの精度差(誤差)が 0 . 4モジュール以上であった場 合には、 Xバーの平均値を用いて補正復調対象バーの補正復調(バー幅補正)が行 われ、 誤差が() . 4 モジュール未満の場合には、 Xバーのバー幅を用いて補正復 調対象バーの補正復調(バー幅補正)が行われる。 このため、 バーコー ド 2 1の黒 バーが局部的に太ったり細ったり している場合でも、 適正に補正復調を行うこと ができるので、 バーコード 2 1 の誤読を防止することができる。
なお、 本実施形態は、 本発明のバー幅補正装置及びノ 一幅補正方法を補正復調 処理について適用した例を示したものである。 しかし、 本発明のバー幅補正装置 及びバー幅補正方法は、 本実施形態に限定されず、 バーコ一 ドのバー幅補正につ いて広く実施可能である。
なお、 本実施形態では、 バーコード 2 Uま、 W P Cコードのじ P C / A , E A X - 1 3に従ったものを用いたが、 本発明によるバ一幅補正装置及びバーコ一 ド読 取装置は、 \V P Cコー ド全般について広く用いることができる。 また、 図 4に示 したステップ S () 1 7におけるしきい値を() . 1モジュールとしたが、 このしき い値は適 変 ¾可能である。
本発明によるバー幅補正装置及びバー幅補正方法によれば、 補正対象バーのバ 一幅と基準バー幅との誤差が予め定められた値以上である場合には、 基準バー幅 の平均値を用いて補正対象バーのバー幅が補正される。 このため、 バーコードの バー幅の太り方や細り方が一様でない場合でも適正にバー幅を補正することがで き、 バーコー ドの誤読を防止することができる。
また、 本発明によるバーコ一 ド読取装置及びそのバーコ一 ド復調方法によると、 キャラク夕の復調処理において、 基準バーの精度と補正復調対象の黒バーの精度 との差が所定値以上となった場合には、 基準バーのバー幅の平均値を用いて補正 復調処理が行われる。 このため、 バーコー ドの黒バーが局部的に太ったり細った り した場合でも、 従来における補正復調に比べて適正にキヤラクタを復調するこ とができる。 従って、 従来に比べ、 補正復調の際におけるキャラクタの復調ミス を抑えることができ、 バーコ一 ドの誤読を防止することができる。

Claims

請求の範囲
1 . バー幅の基準となる基準バー幅を求める基準バー幅算出部と、
前記基準バー幅算出部によつて求められた複数の基準バー幅の平均値を求める 平均値算出部と、
補正対象バーのバー幅と、 前記基準バー幅との誤差を算出する誤差算出部と、 前記誤差算出部によって求められた誤差値が予め定められた値以上である場合 には、 前記平均値算出部によつて求められた複数の基準バー幅の平均値を用いて 前記補正対象バーのバー幅を補正するとともに、 前記誤差値が前記予め定められ た値未満である場合には、 前記基準バ一幅によって前記補正対象バーのバー幅を 補正する補正部とを備えたバー幅補正装置。
2 . 復調対象キャラクタを構成するバーのバー幅を、 復調済みキャラクタを構成 するバーのバー幅を基準バーとして補正するバー幅補正方法であつて、
前記基準バー幅を 出し、
複数の基準バー幅の、 F均値を算出し、
前記復調対象キヤラクタを構成する補正対象バーのバー幅と I 記基^バー幅と の誤差を算出し、
前記算出された誤差が予め設定された値以上である場合、 前記基準バー幅の平 均値に基づいて前記補正対象バーのバー幅を補正するバー幅補正方法。
3 . 複数のキャラク夕を含むバーコ一 ドを走査してバーコ一 ドデータを検出する バーコ一 ドデータ検出部と、 バーコ一 ドデータ検出部によって検出されたバーコ ードデータをキャラクタ每に復調する復調部とを備え、
前記復調部が、
各キャラク夕の復調に際し、 復調対象のキヤラクタ中に含まれこのキャラク 夕の判別に使用される補正対象バーの幅の基準となる基準バー幅を求める基準バ —幅検出部と、
前記基準バー幅検出部によって求められた複数の基準バー幅の平均値を求め る平均値検出部と、
基準バー幅と補正対象バーのバー幅との精度差を求める精度差検出部と、 前記精度差検出部によって求められた精度差が所定値以上である場合に、 前 記平均値検出部によつて求められた平均値を用いて前記補正対象バーのバー幅を 補正する補正部とを含むバーコード読取装置。
4 . 前記復調部が、 補正対象バーの乇ジュール数に対応するキャラクタ値を記憶 した補正復調テーブルをさらに含み、
fiU記補正部が、 補正後の補 I匸対象バーのモジュール数を求め、 このモジユ ール 数に対応するキヤラクタ値を前 補正復調テーブルから読み出す請求項 3記載の バーコ一 ド読取装置。
5 . 前記復調部が、
復調対象のキヤラク夕中の第 1 黒バーからその隣に存する白バーまでの幅たる 第 Iデルタディスタンスにおけるモジュール数と、 ii r記白バーからモの隣に存す る第 2黒バーまでの幅たる第 2デルタディ スタンスにおけるモジュール数とを算 出するデルタディスタンス :出部と、
第 1デルタディスタンス及び第 2デルタディ スタンスにおける各モジユール数 に対応するキャラクタ値を^憶した復調テーブルと、
前記デル夕ディスタンス算出部によつて算出された各モジユール数に対応する 2つのキヤラクタ値が ι)ϊ ^復調テーブルに記憶されている場合に、 前記第 1黒バ 一を前^補正対象バーとし、 この補 LE対象バーのバー幅を前,^基準バー幅データ を用いて補正するとともに、 補正後の補正対象バーのモジュール数を求める第 2 補正部とをさらに含み、
前記精度差検出部が、 前記第 2補正部によつて補正された補正対象バーのバー 幅と基準バー幅との精度 ¾を求める請求項 4記載のバーコ一 ド読取装置。
6 . 前記第 2補正部が、 liii記笫 2黒バーのバー幅を前記基準バー幅を用いて補正 し、 前記復調部が、 前記第 2補正部によって補正された第 1黒バーのバー幅と第 2 黒バーのバー幅との精度差を求める黒バー精度差検出部をさらに含み、
前記精度差検出部が、 前記黒バ—精度差検出部によって得られた精度差が所定 値未満である場合に処理を開始する請求項 5記載のバーコ一 ド読取装置。
7 . 複数のキャラクタを含むバーコ一 ドを走査してバーコ一 ドデータを検出する バーコ一 ドデータ検出部と、 バーコ一 ドデータ検出部によって検出されたバーコ ードデータをキャラクタ毎に復調する復調部とを備えたバーコ一 ド読取装置のバ ーコー ド復調方法であって、
各キャラク夕の復調に際し、 復調対象のキャラク夕中に含まれこのキャラクタ の判別に使用される補正対象バーの幅の基準となる基準バー幅を求める基準バー 幅検出ステツプと、
前記基準バー幅検出ステップにて求められた複数の基準バー幅の平均値を求め る平均値検出ステップと、
基準バー幅と補正対象ノ 一の幅との精度差を求める精度差検出ステップと、 前記精度差検出ステツプにて求められた精度差が所定値以上である場合に、 前 記平均値検出ステツプにて求めた平均値を用いて前記補正対象バーのバー幅を補 正する補正ステップとを含むバーコ一 ド読取装置のバーコ一 ド復調方法。
8 . 前記補正ステップは、 補正後の補正対象バーのモジュール数を求め、 補正対 象バーのモジユール数とキヤラク夕値とを対応づけて記憶した補正復調テーブル から、 このモジュール数に対応するキヤラクタ値を読み出す請求項 Ί ¾載のバー コー ド読取装置のバーコ一 ド復調方法。
9 . 復調対象のキヤラクタ中の第丄黒バーからその隣に存する白バーまでの幅た る第 1デルタディス夕ンスにおけるモジュール数と、 前記白バーからその隣に存 する第 2黒バーまでの幅たる第 2デルタディスタンスにおけるモジュール数とを 算出するデルタディスタンス算出ステップと、
前記デルタディスタンス算出ステツプにて算出された各モジュール数に対応す るキャラクタ値が 2っ存する場合に、 前記第 1黒バーを前記補正対象バーとし、 この補正対象バーのバー幅を前記基準バー幅データを用いて補正するとともに、 補正後の補正対象バーのモジュール数を求める第 2補正ステップとをさらに含み. 前記精度差検出ステツプは、 前記第 2補正ステツプにて補正された補正対象バ 一のバー幅と基準バー幅との精度差を求める請求項 8記載のバーコ一 ド読取装置 のバーコ一 ド復調方法。
1 0 . 前記第 2補正ステップは、 前記第 2黒バーのバー幅を前記基準バー幅を用 いて補正し、
前記第 2補正ステツプにて補正された第 1黒バーのバー幅と第 2黒バーのバー 幅との精度差を求める黒バー精度差検出ステツプをさらに含み、
前記精度差検出ステツプが、 前記黒バー精度差検出部によって得られた精度差 が所定値未満である場合に処理を開始する請求項 9記載のバーコ一 ド読取装置の バーコ一 ド復調方法。
PCT/JP1999/000483 1998-09-28 1999-02-04 Dispositif et procede de correction de la largeur de barre, lecteur de code a barres et procede de decodage de code a barres WO2000019355A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP99901941A EP1120736A4 (en) 1998-09-28 1999-02-04 STRIP WIDTH CONTROL DEVICE, STRIP WIDTH CONTROL METHOD, STRIP CODE READER, AND STRIP CODE DETECTING METHOD
US09/815,007 US6299064B2 (en) 1998-09-28 2001-03-23 Apparatus and method for correcting bar width, bar code reader, and method for decoding bar code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP27324998A JP3510496B2 (ja) 1998-09-28 1998-09-28 バー幅補正装置,バー幅補正方法,バーコード読取装置及びそのバーコード復調方法
JP10/273249 1998-09-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/815,007 Continuation US6299064B2 (en) 1998-09-28 2001-03-23 Apparatus and method for correcting bar width, bar code reader, and method for decoding bar code

Publications (1)

Publication Number Publication Date
WO2000019355A1 true WO2000019355A1 (fr) 2000-04-06

Family

ID=17525209

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/000483 WO2000019355A1 (fr) 1998-09-28 1999-02-04 Dispositif et procede de correction de la largeur de barre, lecteur de code a barres et procede de decodage de code a barres

Country Status (4)

Country Link
US (1) US6299064B2 (ja)
EP (1) EP1120736A4 (ja)
JP (1) JP3510496B2 (ja)
WO (1) WO2000019355A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3548025B2 (ja) * 1998-12-17 2004-07-28 富士通株式会社 バーコード読取装置および方法
WO2001031560A1 (fr) * 1999-10-25 2001-05-03 Fujitsu Limited Dispositif et procede de lecture de codes a barres
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US7044382B2 (en) * 2002-06-28 2006-05-16 Fujitsu Limited Bar-code reader and computer product
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
JP4257132B2 (ja) * 2003-02-21 2009-04-22 富士通株式会社 バーコード読取装置およびバーコード読取方法
US7416125B2 (en) * 2005-03-24 2008-08-26 Hand Held Products, Inc. Synthesis decoding and methods of use thereof
US20090078774A1 (en) * 2007-09-21 2009-03-26 Symbol Technologies, Inc. Graphical User Interface for Use in Programming a Barcode Reader
JP4539701B2 (ja) * 2007-09-26 2010-09-08 富士ゼロックス株式会社 コード読取装置、及びコード読取プログラム
US8668149B2 (en) * 2009-09-16 2014-03-11 Metrologic Instruments, Inc. Bar code reader terminal and methods for operating the same having misread detection apparatus
CN102722686B (zh) * 2012-05-25 2014-10-08 福建联迪商用设备有限公司 磁卡解码方法
US10146978B2 (en) * 2015-07-14 2018-12-04 Afero, Inc. Apparatus and method for accurate barcode scanning using dynamic timing feedback

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165484A (ja) * 1990-10-29 1992-06-11 Matsushita Electric Ind Co Ltd カードリーダ
JPH06337954A (ja) * 1993-05-31 1994-12-06 Tokyo Electric Co Ltd バーコードデコーダのデコード方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01156886A (ja) 1987-12-15 1989-06-20 Matsushita Electric Ind Co Ltd バーコード読取装置
JP2740418B2 (ja) 1992-07-14 1998-04-15 富士通株式会社 バーコード読取復調方法
JP2718442B2 (ja) * 1993-12-20 1998-02-25 富士通株式会社 バーコード復調方法及び装置
JP3550807B2 (ja) 1995-06-16 2004-08-04 株式会社デンソー バーコード復号方式
JP3324374B2 (ja) * 1995-12-25 2002-09-17 富士通株式会社 バーコード復調方法並びにバーコード読取装置
US5767497A (en) * 1996-12-04 1998-06-16 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using ratio analysis of module size
JP3472691B2 (ja) * 1997-11-26 2003-12-02 富士通株式会社 バーコード読取装置及びバーコード読取方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165484A (ja) * 1990-10-29 1992-06-11 Matsushita Electric Ind Co Ltd カードリーダ
JPH06337954A (ja) * 1993-05-31 1994-12-06 Tokyo Electric Co Ltd バーコードデコーダのデコード方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1120736A4 *

Also Published As

Publication number Publication date
EP1120736A4 (en) 2002-08-14
US6299064B2 (en) 2001-10-09
JP2000099622A (ja) 2000-04-07
JP3510496B2 (ja) 2004-03-29
US20010015378A1 (en) 2001-08-23
EP1120736A1 (en) 2001-08-01

Similar Documents

Publication Publication Date Title
WO2000019355A1 (fr) Dispositif et procede de correction de la largeur de barre, lecteur de code a barres et procede de decodage de code a barres
EP0066680A1 (en) Systematic error correction in bar code scanner
US5537431A (en) Method and apparatus for bar code reading and decoding
US5237163A (en) Method for scanning a plurality of bar code labels
US6206286B1 (en) Bar code reader
JP2001175806A (ja) バーコードのエラー検出と修正を行うための方法及びシステム
JPH10222600A (ja) バーコード読取方法
JP3550807B2 (ja) バーコード復号方式
WO2000019354A1 (fr) Lecteur de codes a barres et procede de lecture de code a barres
US6547143B2 (en) Bar-code reader and bar-code reading method providing display and correction of questionable characters
US6488207B1 (en) Bar code reader, scaling device and scaling method
US6283370B1 (en) Bar code reader, bar code reading method and computer readable medium
JP2718442B2 (ja) バーコード復調方法及び装置
JP3560477B2 (ja) バーコード読取装置及びバーコード読取方法
JP3472691B2 (ja) バーコード読取装置及びバーコード読取方法
US7021546B2 (en) Bar-code reader and method of reading bar-code
EP0840249B1 (en) Bar code reader
JP2655758B2 (ja) バーコードリーダおよびバーコード読取方法
JP2953143B2 (ja) バーコード読取装置およびバーコード読取方法
JP2736729B2 (ja) バーコード判定方法
JP2000285197A (ja) バーコード認識方法及びバーコード読み取り装置
JPH01290092A (ja) バーコードのバー幅判別方法
JPH0887563A (ja) コード読取装置
JPS6229837B2 (ja)
JPH10275204A (ja) バーコード、バーコード生成装置及びバーコード認識装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1999901941

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09815007

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999901941

Country of ref document: EP