JP2000181987A - バーコード読取装置および方法 - Google Patents

バーコード読取装置および方法

Info

Publication number
JP2000181987A
JP2000181987A JP10359710A JP35971098A JP2000181987A JP 2000181987 A JP2000181987 A JP 2000181987A JP 10359710 A JP10359710 A JP 10359710A JP 35971098 A JP35971098 A JP 35971098A JP 2000181987 A JP2000181987 A JP 2000181987A
Authority
JP
Japan
Prior art keywords
bar
character
width
bar width
demodulated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10359710A
Other languages
English (en)
Other versions
JP3548025B2 (ja
Inventor
Mitsuo Watanabe
光雄 渡辺
Isao Iwaguchi
功 岩口
Hiroaki Kawai
弘晃 川合
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Ltd filed Critical Fujitsu Ltd
Priority to JP35971098A priority Critical patent/JP3548025B2/ja
Priority to US09/282,468 priority patent/US6357660B1/en
Priority to EP99302870A priority patent/EP1011063A3/en
Priority to KR1019990016040A priority patent/KR100334047B1/ko
Publication of JP2000181987A publication Critical patent/JP2000181987A/ja
Application granted granted Critical
Publication of JP3548025B2 publication Critical patent/JP3548025B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Printers Characterized By Their Purpose (AREA)
  • Character Input (AREA)
  • Character Discrimination (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【課題】 バーコードにおける各キャラクタ幅のばらつ
きの影響を受けることなく正常にキャラクタ復調を行う
ことができるバーコード読取装置および方法を得るこ
と。 【解決手段】 複数のキャラクタが表されたバーコード
を読み取る読取部と、該読取部の読み取り結果に基づい
て、キャラクタを復調するCPUとを備え、CPUは、
復調済キャラクタE2の復調済キャラクタ長Cy と被復
調キャラクタE7の被復調キャラクタ長Cz との比率が
しきい値以上であるとき、基準黒バー幅Xに対して補正
をかけた後、この基準黒バー幅Xを基準として黒バー幅
1 および黒バー幅B2 に補正をかける。そして、CP
Uは、補正された黒バー幅B1 および黒バー幅B3 に基
づいて、被復調キャラクタE7を復調する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャラクタをバー
幅により表したバーコードからの反射光に基づいて読み
取られたバーコードデータからキャラクタを復調するバ
ーコード読取装置および方法に関するものである。
【0002】近時、小売業においては、商品の売上内容
の把握の迅速化、省力化等を目的として、特に、コンビ
ニエンスストア、百貨店、スーパマーケット等では、P
OS(Point Of Sales)システムが急速に普及してい
る。このPOSシステムにおいては、商品に付されキャ
ラクタを表すバーコードを光学的に読み取り、この読み
取り結果に基づいて、キャラクタを復調するバーコード
読取装置が組み込まれている。
【0003】また、商品に付されたバーコードは、その
印刷精度により、バー幅にばらつきが生じることがある
ため、バーコード読取装置においては、上記ばらつきの
影響を受けることなく、高精度でキャラクタの復調を行
うことが要請されている。
【0004】
【従来の技術】バーコードは、図示しない商品に付され
ており、複数の黒バーと白バーとが交互に組み合わされ
てなり、後述するE(EVEN)0〜E9、O(OD
D)0〜O9という都合20種類のキャラクタを表現す
るものである。
【0005】このバーコードとしては、たとえば、JA
N(Japan Article Number)用として規定されているバ
ーコードシンボル、世界共通のWPC(World Product
Code)、ヨーロッパで用いられているEAN(European
Article Number )、アメリカで用いられているUPC
(Universal Product Code)がある。
【0006】図6は、バーコード10の具体例を示す平
面図である。この図に示すバーコード10は、一例とし
て、交互に配設された黒バーBB1 、白バーWB1 、黒
バーBB2 および白バーWB2 とを有している。また、
バーコード10は、商品メーカコードを表す左ブロック
11と、この左ブロック11の右側にセンターバー13
を挟んで商品アイテムコードを表す右ブロック12と、
左右の左ブロック11および右ブロック12の左端およ
び右端に設けられた左ガードバー14および右ガードバ
ー15とから構成されている。
【0007】バーコード10における一つのキャラクタ
は、図7(a)〜(d)に示すように同図右側から左側
へ向かって、1番目の黒バー、2番目の白バー、3番目
の黒バーおよび4番目の白バーという4本のバー(エレ
メント)から構成されているとともに、そのキャラクタ
長(幅)C(1番目の黒バーから4番目の白バーまでの
エッジ間距離)は、7モジュール(単位の長さを「モジ
ュール」と称する)とされている。
【0008】また、バーコード10においては、1番目
の黒バーの黒バー幅B1 、2番目の白バーの白バー幅B
2 、3番目の黒バーの黒バー幅B3 および4番目の白バ
ーの白バー幅B4 の組み合わせにより、基本的には、
“0”から“9”までの10種類の数字(キャラクタ)
を表現しているが、図8に示すように同じ数字でも黒バ
ーの合計モジュール数を奇数および偶数とする2種類の
組み合わせを導入することにより、20種類のキャラク
タの表現が可能となる。
【0009】ここで、黒バーのモジュール数が奇数とな
るものをODD(以下、Oと略称)と称し、一方、黒バ
ーのモジュール数が偶数となるものをEVEN(以下、
Eと略称)と称する。図8に示す例では、キャラクタO
0〜キャラクタO9という黒バーのモジュール数が奇数
となる10種類のキャラクタと、キャラクタE0〜キャ
ラクタE9という黒バーのモジュール数が偶数となる1
0種類のキャラクタという都合20種類のキャラクタが
図示されている。
【0010】たとえば、同図に示すキャラクタO0およ
びキャラクタE0を例にして説明すれば、キャラクタO
0は、同図右側から左側へ向かって1番目の黒バー(モ
ジュール数1)と、2番目の白バー(モジュール数1)
と、3番目の黒バー(モジュール数2)と、4番目の白
バー(モジュール数3)とから構成されている。また、
キャラクタO0は、1番目の黒バーのモジュール数(=
1)と3番目の黒バーのモジュール数(=2)との和が
3モジュール、すなわち奇数とされている。
【0011】一方、キャラクタE0は、同図右側から左
側へ向かって1番目の黒バー(モジュール数3)と、2
番目の白バー(モジュール数2)と、3番目の黒バー
(モジュール数1)と、4番目の白バー(モジュール数
1)とから構成されている。また、キャラクタE0は、
1番目の黒バーのモジュール数(=3)と3番目の黒バ
ーのモジュール数(=1)との和が4モジュール、すな
わち偶数とされている。
【0012】図7(a)に示すキャラクタE4は、同図
右側から左側へ向かって、黒バー幅B1 が1モジュール
の黒バーと、該黒バーに隣接し白バー幅B2 が1モジュ
ールの白バーと、該白バーに隣接し黒バー幅B3 が3モ
ジュールの黒バーと、該黒バーに隣接し白バー幅B4
2モジュールの白バーから構成されている。
【0013】ここで、黒バー幅B1 と白バー幅B2 との
和、すなわち1番目の黒バーと2番目の白バーとのエッ
ジ間距離はデルタディスタンスT1 と称されており、同
図に示す例では、このデルタディスタンスT1 は、2モ
ジュールである。さらに、白バー幅B2 と黒バー幅B3
との和、すなわち2番目の白バーと3番目の黒バーとの
エッジ間距離はデルタディスタンスT2 と称されてお
り、同図に示す例では、このデルタディスタンスT
2 は、4モジュールである。
【0014】また、上記デルタディスタンスT1 、デル
タディスタンスT2 、黒バー幅B1および黒バー幅B3
は、当該キャラクタが図8に示すキャラクタO0〜キャ
ラクタO9、およびキャラクタE0〜キャラクタE9の
うちいずれのキャラクタに該当するかの特定に用いられ
る重要なパラメータである。
【0015】すなわち、図8に示されるように、キャラ
クタO0〜キャラクタO9およびキャラクタE0〜キャ
ラクタE9の各デルタディスタンスT1 およびデルタデ
ィスタンスT2 が異なるため、デルタディスタンスT1
およびデルタディスタンスT 2 から当該キャラクタが特
定される。この特定には、図10に示すデルタディスタ
ンスT1 とデルタディスタンスT2 の組み合わせパター
ンと、当該キャラクタとの関係を示す第1の復調テーブ
ル100が用いられる。
【0016】ただし、図10に示すように、キャラクタ
E2とキャラクタE8、キャラクタO2とキャラクタO
8、キャラクタO1とキャラクタO7、およびキャラク
タE1とキャラクタE7においては、それぞれの組み合
わせのデルタディスタンスT 1 およびデルタディスタン
スT2 が同値であることから、デルタディスタンスT 1
およびデルタディスタンスT2 に基づいて当該キャラク
タを特定することができない。
【0017】具体的には、キャラクタE2とキャラクタ
E8を例にとれば、いずれもデルタディスタンスT1
3モジュール、デルタディスタンスT2 が3モジュール
という具合に同値とされており、デルタディスタンスT
1 およびデルタディスタンスT2 だけからでは、当該キ
ャラクタがキャラクタE2であるのかキャラクタE8で
あるのかを特定することができない。
【0018】そこで、上記キャラクタE2とキャラクタ
E8、キャラクタO2とキャラクタO8、キャラクタO
1とキャラクタO7、およびキャラクタE1とキャラク
タE7においては、1番目の黒バーの黒バー幅と3番目
の黒バーの黒バー幅とが異なることを利用して、両黒バ
ー幅、あるいは一方の黒バー幅から当該キャラクタを特
定することができる。
【0019】具体的には、図8に示すキャラクタE2と
キャラクタE8を例にとれは、キャラクタE2において
は、1番目の黒バーの黒バー幅が2モジュール、3番目
の黒バーの黒バー幅が2モジュールである。一方、キャ
ラクタE8においては、1番目の黒バーの黒バー幅が1
モジュール、3番目の黒バーの黒バー幅が1モジュール
であり、キャラクタE8のそれぞれの黒バー幅は、キャ
ラクタE2の場合と相違する。従って、キャラクタE2
とキャラクタE8とは、1番目の黒バーの黒バー幅と3
番目の黒バーの黒バー幅とから判別可能となる。当然、
一方の黒バー幅のみからもキャラクタの判別は可能であ
る。
【0020】また、第1の復調テーブル100(図10
参照)を用いても特定することができない、上述したキ
ャラクタO1およびキャラクタE7、キャラクタO2お
よびキャラクタO8、キャラクタE1およびキャラクタ
E7、キャラクタE2およびキャラクタE8の特定に
は、図11に示す1番目の黒バーの黒バー幅B1 と3番
目の黒バーの黒バー幅B3 との組み合わせパターンと、
当該キャラクタとの関係を示す第2の復調テーブル20
0が用いられる。
【0021】ここで、従来においては、上述したバーコ
ード10を読み取りさらに復調する装置として、バーコ
ード読取装置が用いられている。この種のバーコード読
取装置は、バーコード10を光学的に読み取る読取部
と、該読取部の読取結果に基づいて、バーコード10に
おけるキャラクタを復調するCPU(Central Processi
ng Unit )から概略構成されている。
【0022】以下、上述した従来のバーコード読取装置
の動作を図13に示すフローチャートを参照して説明す
る。ここで、バーコード10の印刷精度が悪化した場合
には、正規の黒バー幅に比して黒バー幅が狭くなる黒細
りしたものと、これとは逆に正規の黒バー幅に比して黒
バー幅が広くなる黒太りしたものとが存在する。
【0023】具体的には、図12(b)には、正規の黒
バー幅B1 および黒バー幅B3 (図12(a)参照)に
比して狭い黒バー幅B1 ’および黒バー幅B3 ’とされ
た黒細りの様子が図示されており、図12(c)には、
正規の黒バー幅B1 および黒バー幅B3 (図12(a)
参照)に比して広い黒バー幅B1 ’’および黒バー幅B
3 ’’とされた黒太りの様子が図示されている。
【0024】このため、黒バー幅B1 ’、B3 ’、
1 ’’、B3 ’’等には、印刷上の誤差が含まれてい
る。従って、正確なモジュール数を判別することが困難
となる。そこで、従来よりモジュール数が判っている復
調済キャラクタのバー幅を用いて被復調キャラクタの黒
バー幅を補正し、復調を行う技術が提案されている。
【0025】以下、図14に示す復調済キャラクタE1
に基づいて、被復調済キャラクタE7を復調する動作に
ついて説明する。まず、CPU(図示略)は、図13に
示すステップSA1へ進み、キャラクタE7におけるデ
ルタディスタンスT1 およびデルタディスタンスT2
各モジュール数を求める。図14に示す例では、CPU
は、つぎの(1)式および(2)式から、デルタディス
タンスT1 のモジュール数T1mを「4」、デルタディス
タンスT2 のモジュール数T2mを「4」として求めた
後、ステップSA2へ進む。
【0026】 T1m=INT(T1 /(Cz /7)+0.5) ・・・(1) T2m=INT(T2 /(Cz /7)+0.5) ・・・(2) ここで、上記(1)式および(2)式において、Cz
被復調キャラクタ長を意味し、INTは、括弧内の「T
1 /(Cz /7)」を四捨五入するということを意味す
る。
【0027】すなわち、上記INTは、図9に示すよう
に、「(T1 /(Cz /7)+0.5)」、「(T2
(Cz /7)+0.5)」の値が0.5〜1.5のとき
モジュール数を1とし、上記値が1.5〜2.5のとき
モジュール数を2とし、上記値が2.5〜3.5のとき
モジュール数を3とし、上記値が3.5〜4.5のとき
モジュール数を4とし、同様に上記値が4.5〜のとき
モジュールを数を5とする処理である。
【0028】ステップSA2では、CPUは、図10に
示す第1の復調テーブル100にアクセスすることによ
り、キャラクタ復調を行った後、ステップSA3へ進
む。この場合、デルタディスタンスT1 =4モジュー
ル、デルタディスタンスT2 =4モジュールであるた
め、CPUは、復調結果をキャラクタE1またはキャラ
クタE7とする。すなわち、この場合には、復調キャラ
クタがキャラクタE1またはキャラクタE7のいずれか
一方であるため、復調キャラクタの特定がされていない
状態にある。
【0029】ここで、キャラクタがキャラクタE(O)
1、E(O)7、E(O)2およびE(O)8であると
判断されるときには、第1の復調テーブル100のみか
らではキャラクタ復調を行うことができないため、第2
の復調テーブル200(図11参照)を用いてキャラク
タ復調を行う必要がある。
【0030】以下、上記キャラクタE(O)1、E
(O)7、E(O)2およびE(O)8(図13では単
に1、7、2、8と図示)を、補正キャラクタと称す
る。この補正キャラクタは、前述したバーコード10の
黒細りまたは黒太りの影響を回避するために黒バーの黒
バー幅の誤差を補正する必要があるキャラクタである。
【0031】ステップSA3では、CPUは、ステップ
SA2で復調されたキャラクタが補正キャラクタである
か否かを判断し、判断結果が「NO」の場合、ステップ
SA7へ進む。ここで、ステップSA3における判断結
果が「NO」である場合には、第1の復調テーブル10
0によりキャラクタ復調が完了したことを意味する。こ
の場合、キャラクタが補正キャラクタ(キャラクタE1
またはキャラクタE7のいずれか一方)であるため、C
PUは、ステップSA3の判断結果を「YES」とし
て、ステップSA4へ進む。
【0032】ステップSA4では、CPUは、印刷精度
の良否による前述したバーコード10の黒細りまたは黒
太りの影響を排除すべく、図14に示す黒バー幅B1
補正を基準黒バー幅Xを基準として行った後、ステップ
SA5へ進む。
【0033】ステップSA5では、CPUは、基準黒バ
ー幅Xのモジュール数(以下、基準黒バー幅モジュール
数Xm という)を求めた後、この計算結果と図9に示す
判別方法により、補正された黒バー幅B1 のモジュール
数を求める。
【0034】すなわち、CPUは、上記基準黒バー幅モ
ジュール数Xm から幅差ΔX(基準黒バー幅Xのモジュ
ール数と黒バー幅B1 のモジュール数との差)を減算し
た結果と、図9に示す判別方法とから、補正された黒バ
ー幅B1 のモジュール数を求める。また、CPUは、黒
バー幅B1 の場合と同様の手順にて、補正された黒バー
幅B3 のモジュール数を求めた後、ステップSA6へ進
む。
【0035】ステップSA6では、CPUは、ステップ
SA5において算出された黒バー幅B1 および黒バー幅
3 を第2の復調テーブル200(図11参照)に適用
した後、当該キャラクタを判断した後、ステップSA7
へ進む。ステップSA7では、CPUは、つぎのキャラ
クタの復調用に黒バー幅B1 を基準黒バー幅Xとして、
このモジュール数を求めた後、キャラクタ復調を完了さ
せる。
【0036】
【発明が解決しようとする課題】ところで、従来のバー
コード読取装置におけるバー幅補正方法は、バーコード
の印刷誤差によるバーの太り/細りが一様に表れる場合
には、有効である。しかしながら、バーコードにおいて
各キャラクタ長(幅)が異なるなど、印刷精度によりバ
ーの太り/細りが一様に表れない場合には、バー幅補正
時に誤差が生じる。
【0037】従って、図13に示すステップSA6にお
いて、第2の復調テーブル200(図11参照)に上記
黒バー幅B1 (=1モジュール)および黒バー幅B
3 (=2モジュール)を適用すると、同図から明らかな
ように、該当するキャラクタが存在しえないため復調が
できない状態となる。これは、従来のバーコード読取装
置において、黒バー幅B1 および黒バー幅B3 に対し
て、バーコード10の全体にわたって同一の比率で黒太
りまたは黒細りが生じることを大前提とし、基準黒バー
幅Xを基準として補正を行っていることに起因する。
【0038】すなわち、図14に示す例では、復調済キ
ャラクタ長(幅)Cy (=198カウント)と被復調キ
ャラクタ長(幅)Cz (=211)との間に差があり、
この差、すなわちバーコード10における各キャラクタ
長(幅)のばらつきにより、上述した復調、特に被復調
キャラクタのバー幅補正に誤差が生じる。
【0039】本発明はこのような背景の下になされたも
ので、バーコードにおける各キャラクタの幅のばらつき
の影響を受けることなく正常にキャラクタ復調を行うこ
とができるバーコード読取装置および方法を提供するこ
とを目的とする。
【0040】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に記載のバーコード読取装置は、キャラク
タを複数のバーにより表したバーコードを読み取って得
られたバーコードデータより、前記キャラクタを復調す
るバーコード読取装置において、復調済キャラクタにお
けるバー幅基準となる基準バーのバー幅を基準として、
被復調キャラクタを構成するバーのバー幅を補正する第
1の補正手段(後述する実施の形態1のCPU70に相
当)と、前記第1の補正手段により補正された被復調キ
ャラクタを構成するバーのバー幅に基づいて、前記被復
調キャラクタを復調する復調手段と、前記復調済キャラ
クタの幅と前記被復調キャラクタの幅との比率を求める
比率算出手段(後述する実施の形態1のCPU70に相
当)と、前記基準バーのバー幅を前記比率算出手段によ
り算出された比率に基づいて補正する第2の補正手段
(後述する実施の形態1のCPU70に相当)と、を備
え、前記比率算出手段により算出された比率が予め定め
られたしきい値以上である場合、前記第1の補正手段は
前記第2の補正手段により補正された基準バーのバー幅
に基づいて、前記被復調キャラクタを構成するバーのバ
ー幅を補正することを特徴とする。
【0041】この請求項1に記載の発明によれば、バー
コードにおける各キャラクタの幅が同一比率で変化した
場合には、復調済キャラクタのキャラクタの幅と被復調
キャラクタのキャラクタの幅とに差がでないため、比率
算出手段により算出される比率は、しきい値以下とな
る。
【0042】従って、この場合には、第1の補正手段
は、第2の補正手段により補正されない基準バーのバー
幅を基準として、被復調キャラクタを構成するバーのバ
ー幅に対する補正が行われる。そして、復調手段により
復調済キャラクタのバー幅に基づいて、被復調キャラク
タの復調が行われる。
【0043】一方、バーコードにおける各キャラクタの
幅が異なる比率で変化した場合には、復調済キャラクタ
のキャラクタの幅と被復調キャラクタのキャラクタの幅
とに差がでるため、比率算出手段により算出される比率
は、しきい値以上となる。
【0044】従って、この場合には、第1の補正手段
は、第2の補正手段による基準バーのバー幅により補正
された基準バーのバー幅に基づいて、被復調キャラクタ
を構成するバーのバー幅に対する補正が行われる。そし
て、復調手段により復調済キャラクタのバー幅に基づい
て、被復調キャラクタの復調が行われる。
【0045】このように、請求項1に記載の発明によれ
ば、復調済キャラクタのキャラクタの幅と被復調キャラ
クタのキャラクタの幅との比率をとり、この比率がしき
い値以上である場合に、第1の補正手段が、第2の補正
手段によって補正された基準バーのバー幅を基準とし
て、被復調キャラクタを構成するバーのバー幅に対して
補正を行うように構成したので、バーコードにおける各
キャラクタの幅のばらつきの影響を受けることなく正常
にキャラクタ復調を行うことができる。
【0046】請求項2に記載のバーコード読取装置は、
キャラクタを複数のバーにより表したバーコードを読み
取って得られたバーコードデータより、前記キャラクタ
を復調するバーコード読取装置において、復調済キャラ
クタにおけるバー幅基準となる基準バーのバー幅を基準
として、被復調キャラクタを構成するバーのバー幅を補
正する第1の補正手段(後述する実施の形態2のCPU
70に相当)と、前記第1の補正手段により補正された
被復調キャラクタを構成するバーのバー幅に基づいて、
前記被復調キャラクタを復調する復調手段(後述する実
施の形態2のCPU70に相当)と、前記バーコードに
おける印刷精度を求める印刷精度算出手段と、前記基準
バーのバー幅を、前記復調済キャラクタの幅と前記被復
調キャラクタの幅との比率に基づいて補正する第2の補
正手段(後述する実施の形態2のCPU70に相当)
と、を備え、前記印刷精度算出手段により算出された当
該バーコードの印刷精度が予め定められたしきい値以上
に悪化している場合、前記第1の補正手段は、前記第2
の補正手段により補正された基準バーのバー幅に基づい
て、前記被復調キャラクタを構成するバーのバー幅を補
正することを特徴とする。
【0047】この請求項2に記載の発明によれば、バー
コードにおける印刷精度が悪化した場合(各キャラクタ
の幅が異なる値で変化した場合)には、第1の補正手段
は、第2の補正手段により補正された基準バーのバー幅
に基づいて、被復調キャラクタを構成するバーのバー幅
に対する補正が行われる。そして、復調手段により復調
済キャラクタのバー幅に基づいて、被復調キャラクタの
復調が行われる。
【0048】このように、請求項2に記載の発明によれ
ば、バーコードの印刷精度を求め、この印刷精度がしき
い値以上に悪化した場合、第1の補正手段により、第2
の補正手段によって補正された基準バーのバー幅に基づ
いて、被復調キャラクタを構成するバーのバー幅に対し
て補正を行うように構成したので、バーコードにおける
各キャラクタの幅のばらつきの影響を受けることなく正
常にキャラクタ復調を行うことができる。
【0049】請求項3に記載のバーコード読取装置は、
請求項2に記載のバーコード読取装置において、前記印
刷精度算出手段は、前記復調済キャラクタにおける少な
くとも一つの基準バー幅と前記被復調キャラクタにおけ
るバー幅との対比において前記印刷精度を求めることを
特徴とする。
【0050】この請求項3に記載の発明によれば、印刷
精度算出手段においては、復調済キャラクタにおける少
なくとも一つの基準バー幅と被復調キャラクタにおける
バー幅との対比において印刷精度を求めている。
【0051】このように請求項3に記載の発明によれ
ば、印刷精度、すなわち復調済キャラクタのキャラクタ
の幅と被復調キャラクタのキャラクタの幅との比率が異
なる場合であっても請求項2に記載の発明と同様にし
て、バーコードにおける各キャラクタの幅のばらつきに
影響を受けることなく正常にキャラクタ復調を行うこと
ができる。
【0052】請求項4に記載のバーコード復調方法は、
キャラクタを複数のバー幅により表したバーコードを読
み取るバーコード読取装置において、復調済キャラクタ
における少なくとも一つの基準バーのバー幅を基準にし
て、被復調キャラクタのバー幅を補正する第1の補正工
程(後述する実施の形態1のステップSB8〜ステップ
SB12に相当)と、前記第1の補正工程において補正
された前記復調済キャラクタのバー幅に基づいて、前記
被復調キャラクタを復調する復調工程(後述する実施の
形態1のステップSB21に相当)と、前記復調済キャ
ラクタの幅と前記被復調キャラクタの幅との比率を求め
る比率算出工程(後述する実施の形態1のステップSB
4に相当)と、前記基準バーの前記バー幅を前記比率に
基づいて補正する第2の補正工程(後述する実施の形態
1のステップSB6に相当)と、を備え、前記比率算出
工程において算出された前記比率が予め定められたしき
い値以上である場合、前記第2の補正工程により補正さ
れた基準バーのバー幅に基づいて前記第1の補正工程に
よるバー幅補正を行い、当該補正されたバー幅に基づい
て、前記被復調キャラクタを構成するバーのバー幅を補
正することを特徴とする。
【0053】この請求項4に記載の発明によれば、バー
コードにおける各キャラクタの幅が同一比率変化した場
合には、復調済キャラクタのキャラクタの幅と被復調キ
ャラクタのキャラクタの幅とに差がでないため、比率算
出工程において算出される比率は、しきい値以下とな
る。
【0054】従って、この場合には、第1の補正工程で
は、第2の補正工程により補正されない基準バーのバー
幅を基準として、被復調キャラクタを構成するバーのバ
ー幅に対する補正が行われる。そして、復調工程により
復調済キャラクタのバー幅に基づいて、被復調キャラク
タの復調が行われる。
【0055】一方、バーコードにおける各キャラクタの
幅が異なる比率で変化した場合には、復調済キャラクタ
のキャラクタの幅と被復調キャラクタのキャラクタの幅
とに差がでるため、比率算出工程により算出される比率
は、しきい値以上となる。
【0056】従って、この場合には、第1の補正工程で
は、第2の補正工程による基準バーのバー幅により補正
された基準バーのバー幅に基づいて、被復調キャラクタ
を構成するバーのバー幅に対する補正が行われる。そし
て、復調工程により復調済キャラクタのバー幅に基づい
て、被復調キャラクタの復調が行われる。
【0057】このように、請求項4に記載の発明によれ
ば、復調済キャラクタのキャラクタの幅と被復調キャラ
クタのキャラクタの幅との比率をとり、この比率がしき
い値以上である場合、第1の補正工程において、第2の
補正工程によって補正された基準バーのバー幅を基準と
して、被復調キャラクタを構成するバーのバー幅に対し
て補正を行うように構成したので、バーコードにおける
各キャラクタの幅のばらつきの影響を受けることなく正
常にキャラクタ復調を行うことができる。
【0058】請求項5に記載のバーコード復調方法は、
キャラクタを複数のバー幅により表したバーコードを読
み取るバーコード読取方法において、復調済キャラクタ
における少なくとも一つの基準バーのバー幅を基準にし
て、被復調キャラクタのバー幅を補正する第1の補正工
程(後述する実施の形態2のステップSB8〜ステップ
SB12に相当)と、前記第1の補正工程において補正
された前記復調済キャラクタのバー幅に基づいて、前記
被復調キャラクタを復調する復調工程(後述する実施の
形態2のステップSB21に相当)と、前記バーコード
における印刷精度を求める印刷精度算出工程と、前記基
準バーの前記バー幅を、前記復調済キャラクタの幅と前
記被復調キャラクタの幅との比率に基づいて補正する第
2の補正工程(後述する実施の形態2のステップSC9
に相当)と、を備え、前記印刷精度算出工程により算出
された当該バーコードの印刷精度が予め定められたしき
い値以上に悪化している場合、前記第2の補正工程によ
り補正された基準バーのバー幅に基づいて、前記第1の
補正工程によるバー幅補正を行い、当該補正されたバー
幅に基づいて、前記被復調キャラクタを構成するバーの
バー幅を補正することを特徴とする。
【0059】この請求項5に記載の発明によれば、バー
コードにおける印刷精度が悪化した場合(各キャラクタ
の幅が異なる値で変化した場合)には、第1の補正工程
では、第2の補正工程において補正された基準バーのバ
ー幅に基づいて、被復調キャラクタを構成するバーのバ
ー幅に対する補正が行われる。そして、復調工程におい
ては、被復調キャラクタのバー幅に基づいて、被復調キ
ャラクタの復調が行われる。
【0060】このように、請求項5に記載の発明によれ
ば、バーコードの印刷精度を求め、この印刷精度がしき
い値以上に悪化した場合に、第1の補正工程で、第2の
補正工程において補正された基準バーのバー幅に基づい
て、被復調キャラクタを構成するバーのバー幅に対して
補正を行うようにしたので、バーコードにおける各キャ
ラクタの幅のばらつきの影響を受けることなく正常にキ
ャラクタ復調を行うことができる。
【0061】請求項6に記載のバーコード復調方法は、
請求項5に記載のバーコード復調方法において、前記印
刷精度算出工程では、前記復調済キャラクタにおける少
なくとも一つの基準バー幅と前記被復調キャラクタにお
けるバー幅との対比において前記印刷精度を求めること
を特徴とする。
【0062】この請求項6に記載の発明によれば、印刷
精度算出工程においては、復調済キャラクタにおける少
なくとも一つの基準バー幅と被復調キャラクタにおける
バー幅との対比において印刷精度を求めている。
【0063】このように請求項6に記載の発明によれ
ば、印刷精度、すなわち復調済キャラクタのキャラクタ
の幅と被復調キャラクタのキャラクタの幅との比率が異
なる場合であっても請求項5に記載の発明と同様にし
て、バーコードにおける各キャラクタの幅のばらつきに
影響を受けることなく正常にキャラクタ復調を行うこと
ができる。
【0064】
【発明の実施の形態】以下、図面を参照して、本発明に
かかるバーコード読取装置の実施の形態1および2につ
いて詳述する。
【0065】(実施の形態1)図1は、本発明の実施の
形態1によるバーコード読取装置の構成を示すブロック
図である。この図において、バーコード10(図6参
照)は、図示しない商品に付されており、前述したよう
に複数の黒バーと白バーとが交互に組み合わされてな
り、E0〜E9、O0〜O9という都合20種類のキャ
ラクタを表現するためのものである。
【0066】読取部20は、バーコード10を光学的に
読み取り、読み取り結果を読取信号Sb として出力する
ものであり、レーザ光Lをバーコード10に対して照射
するレーザ発振器(図示略)、バーコード10により反
射されたレーザ光Lを受光した後、読取信号Sb を生成
する受光部(図示略)とから概略構成されている。
【0067】具体的には、読取部20は、図2(a)に
示すバーコード10に照射されたレーザ光Lがバーコー
ド10により反射された反射光を受光して、図2(b)
に示す波形の読取信号Sb を出力する。ここで、読取信
号Sb のレベルは、図2(a)に示す黒バーBB1 、白
バーWB1 、黒バーBB2 および白バーWB2 に対応し
ている。すなわち、黒バーBB1 および黒バーBB2
光反射率が低いためこれらに対応する読取信号Sb のレ
ベルが低くなっており、一方、白バーWB1 および白バ
ーWB2 の光反射率が高いためこれらに対応する読取信
号Sb のレベルが高くなっている。
【0068】図1に戻り、A/D(Analog/Digital )
変換部30は、図2(b)に示す読取信号Sb としきい
値とを比較することにより、読取信号Sb を図2(c)
に示すように二値化(ディジタル化)する処理を行う。
クロック信号発生部40は、所定周期のクロック信号S
c を発生する。バー幅カウンタ50は、クロック信号発
生部40より供給されるクロック信号Sc の周期に同期
してカウントアップ動作を行い、A/D変換部30によ
りディジタル化された読取信号Sb のうち、図2(c)
に示す黒バー幅B1 、白バー幅B2 、黒バー幅B3 およ
び白バー幅B4をカウント値として測定する。図2
(c)に示す例では、黒バー幅B1 が50カウント、白
バー幅B2 が50カウント、黒バー幅B3 が100カウ
ント、白バー幅B4 が200カウントとされている。
【0069】メモリ60は、上記バー幅カウンタ50の
カウント値のデータを図2(d)に示すように黒バー幅
1 、白バー幅B2 、・・・ に対応させて記憶する。CP
U70は、メモリ60に記憶されている各カウント値の
データ、上述した第1の復調テーブル100(図10参
照)および第2の復調テーブル200(図11参照)に
基づいて、バーコード10におけるキャラクタを復調し
て、復調結果を復調データDとして出力する。このCP
U70の動作の詳細については、後述する。ROM80
は、第1の復調テーブル100、第2の復調テーブル2
00、CPU70において実行されるプログラムを記憶
する。
【0070】次に、上述した実施の形態1によるバーコ
ード読取装置の動作について図3に示すフローチャート
を参照しつつ説明する。図1において、バーコード読み
取りを行うべく、読取部20のレーザ発振器(図示略)
からレーザ光Lがバーコード10に照射されると、前述
した動作を経て、読取部20の受光部からは、読取信号
b がA/D変換部30へ出力される。これにより、A
/D変換部30では、入力された読取信号Sb としきい
値とが比較されることにより、読取信号Sb が図14に
示すように二値化され、この二値化された読取信号Sb
がバー幅カウンタ50によりカウントされる。
【0071】図14には、前述したように、キャラクタ
E1のつぎにキャラクタE7が続いた例が図示されてお
り、キャラクタE1は、既に復調済みのキャラクタであ
り、キャラクタE7は、復調される被復調キャラクタで
ある。
【0072】また、メモリ60には、図14に示す復調
済キャラクタE1にするカウント結果として、黒バー幅
1 ’=57カウント、白バー幅B2 ’=54カウン
ト、黒バー幅B3 ’=56カウント、白バー幅B4 ’=
31カウント、復調済キャラクタ長(幅)Cy =198
カウントが記憶されているものとする。ここで、復調済
キャラクタE1において、黒バー幅B1 ’を基準黒バー
幅Xと称する。一方、メモリ60には、被復調キャラク
タE7に関するカウント結果として、黒バー幅B 1 =4
0カウント、白バー幅B2 =76カウント、黒バー幅B
3 =42カウント、白バー幅B4 =53カウントおよび
被復調キャラクタ長(幅)Cz =211カウントが記憶
されているものとする。
【0073】この状態において、CPU70(図1参
照)は、図13に示すステップSB1へ進み、キャラク
タE7におけるデルタディスタンスT1 およびデルタデ
ィスタンスT2 の各モジュール数を求める。具体的に
は、CPU70は、まず、キャラクタE7の被復調キャ
ラクタ長Cz (=211カウント)を7(モジュール)
で除して、キャラクタE7における1モジュール長(=
z /7)を求める。
【0074】つぎに、CPU70は、デルタディスタン
スT1 として、黒バー幅B1 (=40カウント)と白バ
ー幅B2 (=76カウント)との和(=116カウン
ト)を求め、同様に、デルタディスタンスT2 として白
バー幅B2 (=76カント)と黒バー幅B3 (=42カ
ウント)との和(=118カウント)を求める。
【0075】つぎに、CPU70は、前述したつぎの
(1)式および(2)式に、求められた被復調キャラク
タE7のデルタディスタンスT1 、デルタディスタンス
2 、1モジュール長(=Cz /7)をそれぞれ代入す
ることにより、デルタディスタンスT1 およびデルタデ
ィスタンスT2 のモジュール数T1mおよびモジュール数
2mをそれぞれ求める。
【0076】 T1m=INT(T1 /(Cz /7)+0.5) ・・・(1) T2m=INT(T2 /(Cz/7)+0.5) ・・・(2)
【0077】図14に示す例では、CPU70は、上述
した(1)式および(2)式から、デルタディスタンス
1 のモジュール数を「4」、デルタディスタンスT2
のモジュール数を「4」として求めた後、ステップSB
2へ進む。ステップSB2では、CPU70は、図10
に示す第1の復調テーブル100にアクセスすることに
より、キャラクタ復調を行った後、ステップSB3へ進
む。この場合、デルタディスタンスT1 =4モジュー
ル、デルタディスタンスT2 =4モジュールであるた
め、CPU70は、復調結果をキャラクタE1またはキ
ャラクタE7とする。
【0078】ここで、前述したように、キャラクタE
(O)1、E(O)7、E(O)2およびE(O)8
(図3では単に1、7、2、8と図示)は、補正キャラ
クタである。従って、上記キャラクタE1またはE7は
補正キャラクタである。
【0079】ステップSB3では、CPU70は、ステ
ップSB2により復調されたキャラクタが補正キャラク
タであるか否かを判断し、判断結果が「NO」の場合、
すなわち、復調されたキャラクタが上記補正キャラクタ
以外のものである場合、復調されたキャラクタに関する
復調データDを図示しないホストコンピュータ等へ出力
した後、キャラクタの復調動作を終了する。この場合、
キャラクタが補正キャラクタ(キャラクタE1またはキ
ャラクタE7のいずれか一方)であるため、CPU70
は、ステップSB3の判断結果を「YES」として、ス
テップSB4へ進む。
【0080】ステップSB4では、CPU70は、すで
に復調済みのキャラクタのキャラクタ長と、復調すべき
キャラクタのキャラクタ長との比率を求める。具体的に
は、CPU70は、図14に示す復調済キャラクタE1
の復調済キャラクタ長Cy (=198)と、被復調キャ
ラクタE7のキャラクタ長Cz (=211)との比率
(|Cy /Cz |)を求めた後、ステップSB5へ進
む。この場合、上記比率は、6.16%(小数点第3位
四捨五入)である。
【0081】ステップSB5では、CPU70は、ステ
ップSB4において求められた比率がしきい値(たとえ
ば、5%)以上であるか否かを判断する。ここで、上記
しきい値は、図6に示すバーコード10において、すべ
ての黒バーが全体的に黒太り(または黒細り)している
か、または部分的な黒バーのみが黒太り(または黒細
り)しているか否かの判断に用いられる。言い換えれ
ば、上記しきい値は、キャラクタ間におけるキャラクタ
長/バー幅の誤差の程度を判断するための値である。
【0082】すなわち、バーコード10において、すべ
ての黒バーが全体的に黒太り(または黒細り)している
場合、各キャラクタ長Cは同値となり、一方、部分的な
黒バーのみが黒太り(または黒細り)している場合、バ
ーコード10における各キャラクタ長Cにばらつきが生
じている。
【0083】従って、ステップSB5における比率の判
断において、比率がしきい値以上である場合には、バー
コード10における各キャラクタ長Cにばらつきが生じ
ているものとみなされる一方、比率がしきい値より小で
ある場合には、誤差が軽微であり、バーコード10にお
いて各キャラクタ長Cが等しいものとみなされる。この
場合、CPU70は、比率が6.16%(≧5%)であ
ることから、復調済キャラクタ長Cy と被復調キャラク
タ長Cz との間にばらつきがあるものとして、ステップ
SB5の判断結果を「YES」として、ステップSB6
へ進む。
【0084】ステップSB6では、CPU70は、図1
4に示す基準黒バー幅Xを補正する。具体的には、CP
U70は、つぎの(3)式に基準黒バー幅X(=57カ
ウント)、復調済キャラクタ長Cy (=198カウン
ト)および被復調キャラクタ長Cz (=211カウン
ト)をそれぞれ代入して、補正された基準黒バー幅Xh
を算出した後、ステップSB8へ進む。 Xh =X・(Cz /Cy ) ・・・(3) この場合、上記基準黒バー幅Xh は、(57・(211
/198))より60.74(小数点第3位四捨五入)
カウントである。
【0085】ステップSB8では、CPU70は、補正
された基準黒バー幅Xh (=60.74カウント)が黒
バー幅B1 (=40カウント)より大きいか否かを判断
する。この場合、Xh >B1 なる関係にあるため、CP
U70は、ステップSB8の判断結果を「YES」とし
て、ステップSB9へ進む。ステップSB9では、CP
U70は、補正された基準黒バー幅Xh (=60.74
カウント)から黒バー幅B1 (=40カウント)を減算
した黒バー幅差ΔX1 (20.74カウント)を求めた
後、ステップSB11へ進む。
【0086】一方、ステップSB8において、基準黒バ
ー幅Xh が黒バー幅B1 以下である場合には、CPU7
0は、判断結果を「NO」としてステップSB10へ進
む。ステップSB10では、CPU70は、黒バー幅B
1 から基準黒バー幅Xh を減算した黒バー幅差ΔX1
求めた後、ステップSB11へ進む。ステップSB11
では、CPU70は、補正された基準黒バー幅Xh (=
60.74カウント)が黒バー幅B3 (=42カウン
ト)より大きいか否かを判断する。この場合Xh>B3
なる関係にあるため、CPU70は、ステップSB11
の判断結果を「YES」として、ステップSB12へ進
む。
【0087】ステップSB12では、CPU70は、補
正された基準黒バー幅Xh (=60.74カウント)か
ら黒バー幅B3 (=42カウント)を減算した黒バー幅
差ΔX3 (18.74カウント)を求めた後、ステップ
SB14へ進む。一方、ステップSB11において、基
準黒バー幅Xh が黒バー幅B3 以下である場合には、C
PU70は、判断結果を「NO」としてステップSB1
3へ進む。ステップSB13では、CPU70は、黒バ
ー幅B3 から基準黒バー幅Xh を減算した黒バー幅差Δ
3 を求めた後、ステップSB14へ進む。
【0088】ステップSB14では、CPU70は、ス
テップSB9(またはステップSB10)およびステッ
プSB12(またはステップSB13)で求めた黒バー
幅差ΔX1 (=20.74カウント)および黒バー幅差
ΔX3 (=18.74)の黒バー幅差モジュール数ΔX
1mおよび黒バー幅差モジュール数ΔX3mを求める。具体
的には、CPU70は、黒バー幅差ΔX1 (=20.7
4)を被復調キャラクタE7における1モジュールのカ
ウント数(=(Cz /7)=(211/7)=30.1
4カウント(小数点第3位四捨五入))で除算した結果
を、黒バー幅差モジュール数ΔX1mとして求める。この
場合、この黒バー幅差モジュール数ΔX 1mは、0.69
(小数点以下第3位四捨五入)である。
【0089】同様にして、CPU70は、黒バー幅差Δ
3 (=18.74)を被復調キャラクタE7における
1モジュールのカウント数(=(Cz /7)=30.1
4カウント)で除算した結果を、黒バー幅差モジュール
数ΔX3mとして求めた後、ステップSB15へ進む。こ
の場合、この黒バー幅差モジュール数ΔX3mは、0.6
2(小数点以下第3位四捨五入)である。
【0090】ステップSB15では、CPU70は、補
正された基準黒バー幅Xh (=60.74カウント)が
黒バー幅B1 (=40カウント)より大きいか否かを判
断する。この場合Xh >B1 なる関係にあるため、CP
U70は、ステップSB15の判断結果を「YES」と
して、ステップSB16へ進む。ステップSB16で
は、CPU70は、まず、補正された基準黒バー幅Xh
(=60.74カウント)の基準黒バー幅モジュール数
m を求める。具体的には、CPU70は、基準黒バー
幅Xh (=60.74)を復調済キャラクタE1におけ
る1モジュールのカウント数(=(Cy /7)=(19
8/7)=28.28カウント(小数点第3位四捨五
入))で除算した結果と、前述した図9に示す判別方法
とから基準黒バー幅モジュール数Xm として求める。
【0091】この場合、上記除算結果(=60.74/
28.28)が2.15(小数点第3位四捨五入)であ
ることから、図9に示す判別方法を適用すれば、基準黒
バー幅モジュール数Xm は、2として求められる。
【0092】つぎに、CPU70は、上記基準黒バー幅
モジュール数Xm (=2モジュール)から黒バー幅差モ
ジュール数ΔX1m(=0.69モジュール)を減算した
結果、および図9に示す判別方法とから黒バー幅B1
黒バーモジュール数幅B1mを求める。この場合、上記減
算結果(2−0.69)が1.31であり、かつ図9に
示す0.5〜1.5までの間であることから、上記黒バ
ー幅モジュール数B1mは、1モジュールとして求められ
る。
【0093】一方、ステップSB15において、基準黒
バー幅Xh が黒バー幅B1 以下である場合には、CPU
70は、判断結果を「NO」として、ステップSB17
へ進む。ステップSB17では、CPU70は、まず、
ステップSB16とは逆に、黒バー幅差モジュール数Δ
1mから基準黒バー幅モジュール数Xm を減算した結果
に基づいて、黒バー幅モジュール数B1mを求めた後、ス
テップSB18へ進む。
【0094】ステップSB18では、CPU70は、補
正された基準黒バー幅Xh (=60.74カウント)が
黒バー幅B3 (=42カウント)より大きいか否かを判
断する。この場合Xh >B3 なる関係にあるため、CP
U70は、ステップSB18の判断結果を「YES」と
して、ステップSB19へ進む。
【0095】ステップSB19では、CPU70は、ま
ず、補正された基準黒バー幅Xh (=60.74カウン
ト)の基準黒バー幅モジュール数Xm を、ステップSB
16で説明した手法により2として求めた後、上記基準
黒バー幅モジュール数Xm (=2モジュール)から黒バ
ー幅差モジュール数ΔX3m(0.62モジュール)を減
算した結果、および図9に示す判別方法とから黒バー幅
3 の黒バーモジュール数幅B3mを求める。
【0096】この場合、上記減算結果(2−0.62)
が1.38であり、かつ図9に示す0.5〜1.5まで
の間であることから、上記黒バー幅モジュール数B
3mは、1モジュールとして求められる。一方、ステップ
SB18において、基準黒バー幅Xh が黒バー幅B3
下である場合には、CPU70は、判断結果を「NO」
として、ステップSB20へ進む。ステップSB20で
は、CPU70は、ステップSB19とは逆に、黒バー
幅差モジュール数ΔX3mから基準黒バー幅モジュール数
m を減算した結果に基づいて、黒バー幅モジュール数
3mを求めた後、ステップSB21へ進む。
【0097】ステップSB21では、CPU70は、ス
テップSB16(またはステップSB17)において求
められた黒バー幅モジュール数B1m(=1モジュー
ル)、ステップSB19(またはステップSB20)に
おいて求められた黒バー幅モジュール数B3m(=1モジ
ュール)を、図11に示す第2の復調テーブル200に
適用することにより、キャラクタ復調を行う。
【0098】この場合、CPU70は、図11に示す第
2の復調テーブル200における黒バー幅B1 として、
黒バー幅モジュール数B1m(=1モジュール)を、また
黒バー幅B3 として、黒バー幅モジュール数B3m(=1
モジュール)を適用することにより、キャラクタE7を
復調して、このキャラクタE7に関する復調データDを
図示しないホストコンピュータ等へ出力した後、ステッ
プSB22へ進む。
【0099】すなわち、この場合には、図14に示すよ
うにキャラクタE7のキャラクタ長Cz とキャラクタE
1の復調済キャラクタ長Cy との間に差がある、言い換
えればバーコード10における各キャラクタ長にばらつ
きがあるにもかかわらず、キャラクタE7が正しく復調
されたのである。
【0100】ステップSB22では、CPU70は、キ
ャラクタ復調ができたか否かを判断し、この場合、判断
結果を「YES」として、キャラクタの復調動作を終了
(OK)する。一方、キャラクタ復調ができなかった場
合には、CPU70は、ステップSB22の判断結果を
「NO」としてキャラクタ復調動作を終了(NG)す
る。
【0101】なお、上述したステップSB5において、
比率がしきい値(=5%)以下である場合、CPU70
は、復調済キャラクタ長Cy と被復調キャラクタ長Cz
との間にばらつきがないものとして、判断結果を「N
O」として、ステップSB7へ進む。ステップSB7で
は、CPU70は、基準黒バー幅Xを基準黒バー幅Xh
とした後、ステップSB8へ進み、上述した工程を実行
する。すなわち、ステップSB7においては、基準黒バ
ー幅Xは補正されることなく、基準黒バー幅Xhとして
以後の算出でそのまま用いられるのである。
【0102】ここで、上述した実施の形態1によるバー
コード読取装置と、前述した従来のバーコード読取装置
との差違を明確にすべく、従来のバーコード読取装置に
より図14に示す被復調キャラクタE7を復調した場合
について、具体的数値を挙げて図13に示すフローチャ
ートを参照しつつ対比説明する。つまり、以下の説明
は、上述した実施の形態1において、キャラクタ間比率
に基づいて基準黒バー幅の補正を行わない場合について
のものである。
【0103】まず、CPU70(図1参照)は、図13
に示すステップSA1へ進み、キャラクタE7における
デルタディスタンスT1 およびデルタディスタンスT2
の各モジュール数を求める。具体的には、CPU70
は、まず、キャラクタE7の被復調キャラクタ長C
z (=211カウント)を7(モジュール)で除して、
キャラクタE7における1モジュール長(=Cz /7)
を求める。
【0104】つぎに、CPU70は、デルタディスタン
スT1 として、黒バー幅B1 (=40カウント)と白バ
ー幅B2 (=76カウント)との和(=116カウン
ト)を求めた後、デルタディスタンスT2 として白バー
幅B2 (=76カント)と黒バー幅B3 (=42カウン
ト)との和(=118カウント)を求める。
【0105】つぎに、CPU70は、前述した(1)式
および(2)式に、求められたキャラクタE7のデルタ
ディスタンスT1 、デルタディスタンスT2 、1モジュ
ール長(=Cz /7)および1モジュール長(=Cy
7)をそれぞれ代入することにより、デルタディスタン
スT1 およびデルタディスタンスT2 のモジュール数T
1mおよびモジュール数T2mを「4」および「4」として
それぞれ求めた後、ステップSA2へ進む。
【0106】ステップSA2では、CPUは、図10に
示す第1の復調テーブル100にアクセスすることによ
り、キャラクタ復調を行った後、ステップSA3へ進
む。この場合、モジュール数T1m=4モジュール、モジ
ュール数T2m=4モジュールであるため、CPUは、復
調結果をキャラクタE1またはキャラクタE7とした
後、ステップSA3へ進む。
【0107】ステップSA3では、CPU70は、ステ
ップSA2で復調されたキャラクタが補正キャラクタで
あるか否かを判断し、この場合、キャラクタが補正キャ
ラクタ(キャラクタE1またはキャラクタE7のいずれ
か一方)であるため、CPU70は、ステップSA3の
判断結果を「YES」として、ステップSA4へ進む。
【0108】ステップSA4では、CPU70は、図1
4に示す黒バー幅B1 の補正を基準黒バー幅Xを基準と
して行う。具体的には、CPU70は、つぎの(4)式
に、図14に示す基準黒バー幅X(=57カウント)、
黒バー幅B1 (=40カウント)、被復調キャラクタE
7における被復調キャラクタ長Cz (=211カウン
ト)を代入することにより、基準黒バー幅Xと黒バー幅
1 との差である幅差ΔXを求めた後、ステップSA5
へ進む。 ΔX=(X−B1 )/(Cz /7) ・・・(4) 上記幅差ΔXは、0.56(小数点第3位四捨五入)と
して求められる。
【0109】ステップSA5では、CPU70は、基準
黒バー幅Xのモジュール数(以下、基準黒バー幅モジュ
ール数Xm という)として、基準黒バー幅X/(Cy
7)の計算式から基準黒バー幅Xのモジュール数を求め
た後、この計算結果(=2.02(小数点第3位四捨五
入))と図9に示す判別方法により、2を求める。
【0110】つぎに、CPU70は、上記基準黒バー幅
モジュール数Xm (=2モジュール)から上述した幅差
ΔX(=0.56)を減算した結果(=1.44)と、
図9に示す判別方法とから、補正された黒バー幅B1
モジュール数を1として求める。また、CPU70は、
黒バー幅B1 の場合と同様の手順にて、補正された黒バ
ー幅B3 のモジュール数を2として求めた後、ステップ
SA6へ進む。
【0111】ステップSA6では、CPU70は、ステ
ップSA5において算出された黒バー幅B1 (=1モジ
ュール)および黒バー幅B3 (2モジュール)を第2の
復調テーブル200(図11参照)に適用する。
【0112】しかしながら、上記ステップSA6におい
て、第2の復調テーブル200(図11参照)に上記黒
バー幅B1 (=1モジュール)および黒バー幅B3 (=
2モジュール)を適用すると、同図から明らかなよう
に、該当するキャラクタが存在しえないため復調ができ
ない状態となる。これは、従来のバーコード読取装置に
おいて、黒バー幅B1 および黒バー幅B3 に対して、バ
ーコード10の全体にわたって同一の比率で黒太りまた
は黒細りが生じることを大前提として、基準黒バー幅X
を基準として補正を行っていることに起因する。
【0113】これに対して、上述した実施の形態1によ
るバーコード読取装置によれば、被復調キャラクタ長C
z と復調済キャラクタ長Cy との比率としきい値とを比
較して、この比較結果に基づいて、基準黒バー幅Xに対
して補正をかけるように構成したので、バーコード10
における各キャラクタ長Cのばらつきの影響を受けるこ
となく、正常にキャラクタ復調動作を行うことができ
る。
【0114】なお、上述した実施の形態1によるバーコ
ード読取装置においては、図14に示す復調済キャラク
タE1の各バーのモジュール数が既知であるため、例え
ば、復調済キャラクタE1の基準黒バー幅モジュール数
m (=2モジュール(理論値)を用いて、図3に示す
ステップSB15〜ステップSB20の処理を行っても
よい。
【0115】(実施の形態2)図4は、本発明の実施の
形態2によるバーコード読取装置の動作を示すフローチ
ャート図である。この実施の形態2によるバーコード読
取装置のハードウェア構成は、上述した実施の形態1に
よるバーコード読取装置のハードウェア構成と同一であ
るためその説明を省略する。ただし、実施の形態2によ
るバーコード読取装置においては、図1に示すCPU7
0の動作の一部が実施の形態1によるバーコード読取装
置と異なる。
【0116】具体的には、実施の形態1によるバーコー
ド読取装置においては、図3に示すステップSB5で比
率に基づいて基準黒バー幅Xに対して補正をかけるか否
かが判断されたが、以下に説明する実施の形態2による
バーコード読取装置においては、図4に示すステップS
C8でバーコード10の印刷精度に基づいて基準黒バー
幅Xに対して補正をかけるか否かが判断される点が実施
の形態1と大きく相違する点である。
【0117】つぎに、上述した実施の形態2によるバー
コード読取装置の動作について、図4に示すフローチャ
ートを参照しつつ説明する。ここで、図1に示すメモリ
60には、図14に示す復調済キャラクタE1に関する
カウント結果として、基準黒バー幅X(黒バー幅
1 ’)=57カウント、白バー幅B2 ’=54カウン
ト、黒バー幅B3 ’=56カウント、白バー幅B4 ’=
31カウント、復調済キャラクタ長Cy =198カウン
トが記憶されているものとする。
【0118】同様にして、メモリ60には、被復調キャ
ラクタE7に関するカウント結果として、黒バー幅B1
=40カウント、白バー幅B2 =76カウント、黒バー
幅B 3 =42カウント、白バー幅B4 =53カウントお
よび被復調キャラクタ長Cz=211カウントが記憶さ
れているものとする。
【0119】この状態において、CPU70(図1参
照)は、図4に示すステップSC1へ進み、前述したス
テップSB1(図3参照)と同様にして、図14に示す
キャラクタE7におけるデルタディスタンスT1 のモジ
ュール数を「4」、デルタディスタンスT2 のモジュー
ル数を「4」として求めた後、ステップSC2へ進む。
ステップSC2では、CPU70は、図10に示す第1
の復調テーブル100にアクセスすることにより、キャ
ラクタ復調を行った後、ステップSC3へ進む。この場
合、デルタディスタンスT1 =4モジュール、デルタデ
ィスタンスT2 =4モジュールであるため、CPU70
は、復調結果をキャラクタE1またはキャラクタE7と
する。
【0120】ステップSC3では、CPU70は、ステ
ップSC2により復調されたキャラクタが補正キャラク
タであるか否かを判断し、判断結果が「NO」の場合、
すなわち、復調されたキャラクタが上記補正キャラクタ
以外のものである場合、復調されたキャラクタに関する
復調データDを図示しないホストコンピュータ等へ出力
した後、図3に示すEND(OK)へ進み、キャラクタ
の復調動作を終了する。
【0121】この場合、キャラクタが補正キャラクタ
(キャラクタE1またはキャラクタE7のいずれか一
方)であるため、CPU70は、ステップSC3の判断
結果を「YES」として、ステップSC4へ進む。ここ
で、以下の説明においては、図14に示す基準黒バー幅
Xを有する黒バーをXバー、黒バー幅B1 を有する黒バ
ーをB1 バー、黒バー幅B3 を有する黒バーをB3 バー
と称する。
【0122】ステップSC4では、CPU70は、基準
黒バー幅X(=57カウント)をキャラクタE7におけ
る1モジュールのカウント値(Cz /7=211/7=
30.14(小数点第3位四捨五入))で除算した結果
をXバーの印刷精度Xs (=1.89モジュール(小数
点第3位四捨五入))として求めた後、ステップSC5
へ進む。ステップSC5では、CPU70は、黒バー幅
1 (=40カウント)を上記カウント値(Cz /7=
30.14)で除算した結果をB1 バーの印刷精度B1S
(=1.33モジュール(小数点第3位四捨五入))と
して求めた後、ステップSC6へ進む。
【0123】ステップSC6では、CPU70は、黒バ
ー幅B3 (=42カウント)を上記カウント値(Cz
7=30.14)で除算した結果をB3 バーの印刷精度
3S(=1.39モジュール(小数点第3位四捨五
入))として求めた後、ステップSC7へ進む。ステッ
プSC7では、CPU70は、ステップSC4〜ステッ
プSC6でそれぞれ求めた印刷精度Xs 、印刷精度B1S
および印刷精度B3Sをチェックする。具体的には、CP
U70は、印刷精度Xs (=1.89モジュール)と印
刷精度B1S(=1.33モジュール)との差の絶対値
(=0.56モジュール:以下、第1の印刷精度と称す
る)、および印刷精度Xs (=1.89モジュール)と
印刷精度B3S(=1.39)との差の絶対値(=0.5
モジュール:以下、第2の印刷精度と称する)をそれぞ
れ求めた後、ステップSC8へ進む。
【0124】ステップSC8では、CPU70は、ステ
ップSC7において求められた第1の印刷精度および
(または)第2の印刷精度がしきい値(たとえば、0.
3モジュール)以上に悪化しているか否かを判断する。
ここで、上記しきい値は、図6に示すバーコード10に
おいて、すべての黒バーが全体的に黒太り(または黒細
り)しているか、または部分的な黒バーのみが黒太り
(または黒細り)しているか否かの判断に用いられる。
【0125】すなわち、バーコード10において、すべ
ての黒バーが全体的に黒太り(または黒細り)している
場合、各キャラクタ長Cは同値となり、一方、部分的な
黒バーのみが黒太り(または黒細り)している場合、バ
ーコード10における各キャラクタ長Cにばらつきが生
じている。
【0126】この場合、CPU70は、第1の印刷精度
(=0.56モジュール)および第2の印刷精度(=
0.5モジュール)の双方がしきい値(0.3モジュー
ル)以上に悪化していることから、復調済キャラクタ長
y と被復調キャラクタ長Czとの間にばらつきがある
ものとして、ステップSC8の判断結果を「YES」と
して、ステップSC9へ進む。
【0127】ステップSC9では、CPU70は、図1
4に示す基準黒バー幅Xを補正する。具体的には、CP
U70は、前述したつぎの(3)式に基準黒バー幅X
(=57カウント)、復調済キャラクタ長Cy (=19
8カウント)および被復調キャラクタ長Cz (=211
カウント)をそれぞれ代入して、補正された基準黒バー
幅Xh を算出した後、図3に示すステップSB8へ進
み、以後、前述した工程を実行する。 Xh =X・(Cz /Cy ) ・・・(3)
【0128】一方、ステップSC8において、第1の印
刷精度および(または)第2の印刷精度がしきい値(=
0.3モジュール)より小である場合、CPU70は、
判断結果を「NO」として、ステップSC10へ進む。
ステップSC10では、CPU70は、基準黒バー幅X
を基準黒バー幅Xh とした後、図3に示すステップSB
8へ進み、上述した工程を実行する。すなわち、ステッ
プSC7においては、基準黒バー幅Xは補正されること
なく、基準黒バー幅Xh として以後の算出でそのまま用
いられるのである。
【0129】なお、上述した実施の形態2によるバーコ
ード読取装置においては、図5に示す印刷精度テーブル
を用いて、上述した第1および第2の印刷精度を求めて
もよい。
【0130】すなわち、この図5に示す印刷精度テーブ
ルを用いる場合には、図4に示すステップSC7におい
て、CPU70は、ステップSC4〜ステップSC6で
それぞれ求められた印刷精度Xs (=1.89モジュー
ル)、印刷精度B1S(=1.33モジュール)および印
刷精度B3S(=1.39モジュール)から、モジュール
レジスタMreg を求める。
【0131】このモジュールレジスタMreg は、印刷精
度をモジュール値で表したものであり、印刷精度が1.
5〜1.6である場合には、モジュールレジスタMreg
が1であり、同様にして印刷精度が1.6〜1.7であ
る場合には、モジュールレジスタMreg が2である。以
下、同様にして印刷精度が2.4〜2.5である場合に
は、モジュールレジスタMreg が10である。なお、印
刷精度が1.5より小である場合には、モジュールレジ
スタMreg は、0である。
【0132】具体的には、CPU70は、図5に示す印
刷精度テーブルから、印刷精度Xs(=1.89)のモ
ジュールレジスタMreg として4、印刷精度B1S(=
1.33)のモジュールレジスタMreg として0、同様
にして印刷精度B3S(=1.39)のモジュールレジス
タMreg として0を求める。
【0133】つぎに、CPU70は、上記印刷精度Xs
のモジュールレジスタMreg (=4)と印刷精度B1S
モジュールレジスタMreg (=0)との差の絶対値(=
4モジュール:第1の印刷精度)、および印刷精度Xs
のモジュールレジスタMreg(=4)と印刷精度B3S
モジュールレジスタMreg (=0)との差の絶対値(=
4モジュール:第2の印刷精度)をそれぞれ求めた後、
ステップSC8へ進む。ステップSC8では、CPU7
0は、上記第1の印刷精度および(または)第2の印刷
精度がしきい値(ここでは、0.3モジュールに代えて
3モジュール)以上であるか否かを判断する。ここで、
上記しきい値(=3モジュール)は、前述したように図
6に示すバーコード10において、すべての黒バーが全
体的に黒太り(または黒細り)しているか、または部分
的な黒バーのみが黒太り(または黒細り)しているか否
かの判断に用いられる。
【0134】この場合、CPU70は、第1の印刷精度
(=4モジュール)および第2の印刷精度(=4モジュ
ール)の双方がしきい値(3モジュール)以上であるこ
とから、復調済キャラクタ長Cy と被復調キャラクタ長
z との間にばらつきがあるものとして、ステップSC
8の判断結果を「YES」として、ステップSC9へ進
み、前述した工程を実行する。
【0135】以上説明したように、上述した実施の形態
2によるバーコード読取装置によれば、バーコード10
における第1および第2の印刷精度としきい値とを比較
して、この比較結果に基づいて、基準黒バー幅Xに対し
て補正をかけるように構成したので、前述した実施の形
態1によるバーコード読取装置と同様にして、バーコー
ド10における各キャラクタ長Cのばらつきの影響を受
けることなく、正常にキャラクタ復調動作を行うことが
できる。
【0136】
【発明の効果】以上説明したように、請求項1に記載の
発明によれば、復調済キャラクタのキャラクタの幅と被
復調キャラクタのキャラクタの幅との比率をとり、この
比率がしきい値以上である場合に、第1の補正手段が、
第2の補正手段によって補正された基準バーのバー幅を
基準として、被復調キャラクタを構成するバーのバー幅
に対して補正を行うように構成したので、バーコードに
おける各キャラクタの幅のばらつきの影響を受けること
なく正常にキャラクタ復調を行うことができるという効
果を奏する。
【0137】また、請求項2に記載の発明によれば、バ
ーコードの印刷精度を求め、この印刷精度がしきい値以
上に悪化した場合、第1の補正手段により、第2の補正
手段によって補正された基準バーのバー幅に基づいて、
被復調キャラクタを構成するバーのバー幅に対して補正
を行うように構成したので、バーコードにおける各キャ
ラクタの幅のばらつきの影響を受けることなく正常にキ
ャラクタ復調を行うことができるという効果を奏する。
【0138】また、請求項3に記載の発明によれば、印
刷精度、すなわち復調済キャラクタのキャラクタの幅と
被復調キャラクタのキャラクタの幅との比率が異なる場
合であっても請求項2に記載の発明と同様にして、バー
コードにおける各キャラクタの幅のばらつきに影響を受
けることなく正常にキャラクタ復調を行うことができる
という効果を奏する。
【0139】また、請求項4に記載の発明によれば、復
調済キャラクタのキャラクタの幅と被復調キャラクタの
キャラクタの幅との比率をとり、この比率がしきい値以
上である場合、第1の補正工程において、第2の補正工
程によって補正された基準バーのバー幅を基準として、
被復調キャラクタを構成するバーのバー幅に対して補正
を行うように構成したので、バーコードにおける各キャ
ラクタの幅のばらつきの影響を受けることなく正常にキ
ャラクタ復調を行うことができるという効果を奏する。
【0140】さらに、請求項5に記載の発明によれば、
バーコードの印刷精度を求め、この印刷精度がしきい値
以上に悪化した場合に、第1の補正工程で、第2の補正
工程において補正された基準バーのバー幅に基づいて、
被復調キャラクタを構成するバーのバー幅に対して補正
を行うようにしたので、バーコードにおける各キャラク
タの幅のばらつきの影響を受けることなく正常にキャラ
クタ復調を行うことができるという効果を奏する。
【0141】加えて、請求項6に記載の発明によれば、
印刷精度、すなわち復調済キャラクタのキャラクタの幅
と被復調キャラクタのキャラクタの幅との比率が異なる
場合であっても請求項5に記載の発明と同様にして、バ
ーコードにおける各キャラクタの幅のばらつきに影響を
受けることなく正常にキャラクタ復調を行うことができ
るという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態1によるバーコード読取装
置の構成を示すブロック図である。
【図2】同実施の形態1によるバーコード読取装置の動
作を説明する図である。
【図3】同実施の形態1によるバーコード読取装置の動
作を説明するフローチャートである。
【図4】同実施の形態2によるバーコード読取装置の動
作を説明するフローチャートである。
【図5】印刷精度テーブルを示す図である。
【図6】バーコード10を示す平面図である。
【図7】キャラクタE4、E6、E2およびE8を示す
図である。
【図8】キャラクタO0〜O9およびキャラクタE0〜
E9を示す図である。
【図9】モジュール数の判別方法を説明する図である。
【図10】第1の復調テーブル100を示す図である。
【図11】第2の復調テーブル200を示す図である。
【図12】キャラクタが全体的に黒細りおよび黒太りし
た場合の様子を説明する図である。
【図13】従来におけるバーコード読取装置の動作を説
明するフローチャートである。
【図14】復調済キャラクタE1および被復調キャラク
タE7を示す図である。
【符号の説明】
10 バーコード 20 読取部 50 バー幅カウンタ 70 CPU X 基準黒バー幅 B1 黒バー幅 Cz 被復調キャラクタ長 Cy 復調済キャラクタ長
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年5月20日(1999.5.2
0)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】以下、図14に示す復調済キャラクタE1
に基づいて、被復調済キャラクタE7を復調する動作に
ついて説明する。まず、CPU(図示略)は、図13に
示すステップSA1へ進み、キャラクタE7におけるデ
ルタディスタンスT1 およびデルタディスタンスT2
各モジュール数を求める。図14に示す例では、CPU
は、つぎの(1)式および(2)式から、デルタディス
タンスT1 のモジュール数T 1m を「4」、デルタディス
タンスT2 のモジュール数T 2m を「4」として求めた
後、ステップSA2へ進む。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正内容】
【0038】すなわち、図14に示す例では、復調済キ
ャラクタ長(幅)Cy (=198カウント)と被復調キ
ャラクタ長(幅)Cz (=211カウント)との間に差
があり、この差、すなわちバーコード10における各キ
ャラクタ長(幅)のばらつきにより、上述した復調、特
に被復調キャラクタのバー幅補正に誤差が生じる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0059
【補正方法】変更
【補正内容】
【0059】この請求項5に記載の発明によれば、バー
コードにおける印刷精度が悪化した場合(各キャラクタ
の幅が異なる値で変化した場合)には、第1の補正工程
では、第2の補正工程において補正された基準バーのバ
ー幅に基づいて、被復調キャラクタを構成するバーのバ
ー幅に対する補正が行われる。そして、復調工程におい
ては、復調済キャラクタのバー幅に基づいて、被復調キ
ャラクタの復調が行われる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0073
【補正方法】変更
【補正内容】
【0073】この状態において、CPU70(図1参
照)は、図3に示すステップSB1へ進み、キャラクタ
E7におけるデルタディスタンスT1 およびデルタディ
スタンスT2 の各モジュール数を求める。具体的には、
CPU70は、まず、キャラクタE7の被復調キャラク
タ長Cz (=211カウント)を7(モジュール)で除
して、キャラクタE7における1モジュール長(=Cz
/7)を求める。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0074
【補正方法】変更
【補正内容】
【0074】つぎに、CPU70は、デルタディスタン
スT1 として、黒バー幅B1 (=40カウント)と白バ
ー幅B2 (=76カウント)との和(=116カウン
ト)を求め、同様に、デルタディスタンスT2 として白
バー幅B2 (=76カント)と黒バー幅B3 (=42
カウント)との和(=118カウント)を求める。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0080
【補正方法】変更
【補正内容】
【0080】ステップSB4では、CPU70は、すで
に復調済みのキャラクタのキャラクタ長と、復調すべき
キャラクタのキャラクタ長との比率を求める。具体的に
は、CPU70は、図14に示す復調済キャラクタE1
の復調済キャラクタ長Cy (=198カウント)と、被
復調キャラクタE7のキャラクタ長Cz (=211カウ
)との比率(|Cy /Cz |)を求めた後、ステップ
SB5へ進む。この場合、上記比率は、6.16%(小
数点第3位四捨五入)である。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0085
【補正方法】変更
【補正内容】
【0085】ステップSB8では、CPU70は、補正
された基準黒バー幅Xh (=60.74カウント)が黒
バー幅B1 (=40カウント)より大きいか否かを判断
する。この場合、Xh >B1 なる関係にあるため、CP
U70は、ステップSB8の判断結果を「YES」とし
て、ステップSB9へ進む。ステップSB9では、CP
U70は、補正された基準黒バー幅Xh (=60.74
カウント)から黒バー幅B1 (=40カウント)を減算
した黒バー幅差ΔX1 20.74カウント)を求め
た後、ステップSB11へ進む。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0087
【補正方法】変更
【補正内容】
【0087】ステップSB12では、CPU70は、補
正された基準黒バー幅Xh (=60.74カウント)か
ら黒バー幅B3 (=42カウント)を減算した黒バー幅
差ΔX3 18.74カウント)を求めた後、ステッ
プSB14へ進む。一方、ステップSB11において、
基準黒バー幅Xh が黒バー幅B3 以下である場合には、
CPU70は、判断結果を「NO」としてステップSB
13へ進む。ステップSB13では、CPU70は、黒
バー幅B3 から基準黒バー幅Xh を減算した黒バー幅差
ΔX3 を求めた後、ステップSB14へ進む。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0088
【補正方法】変更
【補正内容】
【0088】ステップSB14では、CPU70は、ス
テップSB9(またはステップSB10)およびステッ
プSB12(またはステップSB13)で求めた黒バー
幅差ΔX1 (=20.74カウント)および黒バー幅差
ΔX3 (=18.74カウント)の黒バー幅差モジュー
ル数ΔX1mおよび黒バー幅差モジュール数ΔX3mを求め
る。具体的には、CPU70は、黒バー幅差ΔX1 (=
20.74カウント)を被復調キャラクタE7における
1モジュールのカウント数(=(Cz /7)=(211
/7)=30.14カウント(小数点第3位四捨五
入))で除算した結果を、黒バー幅差モジュール数ΔX
1mとして求める。この場合、この黒バー幅差モジュール
数ΔX1mは、0.69(小数点以下第3位四捨五入)で
ある。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0089
【補正方法】変更
【補正内容】
【0089】同様にして、CPU70は、黒バー幅差Δ
3 (=18.74カウント)を被復調キャラクタE7
における1モジュールのカウント数(=(Cz /7)=
30.14カウント)で除算した結果を、黒バー幅差モ
ジュール数ΔX3mとして求めた後、ステップSB15へ
進む。この場合、この黒バー幅差モジュール数ΔX
3mは、0.62(小数点以下第3位四捨五入)である。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0090
【補正方法】変更
【補正内容】
【0090】ステップSB15では、CPU70は、補
正された基準黒バー幅Xh (=60.74カウント)が
黒バー幅B1 (=40カウント)より大きいか否かを判
断する。この場合Xh >B1 なる関係にあるため、CP
U70は、ステップSB15の判断結果を「YES」と
して、ステップSB16へ進む。ステップSB16で
は、CPU70は、まず、補正された基準黒バー幅Xh
(=60.74カウント)の基準黒バー幅モジュール数
m を求める。具体的には、CPU70は、基準黒バー
幅Xh (=60.74カウント)を復調済キャラクタE
1における1モジュールのカウント数(=(Cy /7)
=(198/7)=28.28カウント(小数点第3位
四捨五入))で除算した結果と、前述した図9に示す判
別方法とから基準黒バー幅モジュール数Xm として求め
る。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0092
【補正方法】変更
【補正内容】
【0092】つぎに、CPU70は、上記基準黒バー幅
モジュール数Xm (=2モジュール)から黒バー幅差モ
ジュール数ΔX1m(=0.69モジュール)を減算した
結果、および図9に示す判別方法とから黒バー幅B1
黒バー幅モジュール数1mを求める。この場合、上記減
算結果(2−0.69)が1.31であり、かつ図9に
示す0.5〜1.5までの間であることから、上記黒バ
ー幅モジュール数B1mは、1モジュールとして求められ
る。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0095
【補正方法】変更
【補正内容】
【0095】ステップSB19では、CPU70は、ま
ず、補正された基準黒バー幅Xh (=60.74カウン
ト)の基準黒バー幅モジュール数Xm を、ステップSB
16で説明した手法により2として求めた後、上記基準
黒バー幅モジュール数Xm (=2モジュール)から黒バ
ー幅差モジュール数ΔX3m(0.62モジュール)を減
算した結果、および図9に示す判別方法とから黒バー幅
3 の黒バー幅モジュール数3mを求める。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0104
【補正方法】変更
【補正内容】
【0104】つぎに、CPU70は、デルタディスタン
スT1 として、黒バー幅B1 (=40カウント)と白バ
ー幅B2 (=76カウント)との和(=116カウン
ト)を求めた後、デルタディスタンスT2 として白バー
幅B2 (=76カント)と黒バー幅B3 (=42カウ
ント)との和(=118カウント)を求める。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0111
【補正方法】変更
【補正内容】
【0111】ステップSA6では、CPU70は、ステ
ップSA5において算出された黒バー幅B1 (=1モジ
ュール)および黒バー幅B3 2モジュール)を第2
の復調テーブル200(図11参照)に適用する。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0114
【補正方法】変更
【補正内容】
【0114】なお、上述した実施の形態1によるバーコ
ード読取装置においては、図14に示す復調済キャラク
タE1の各バーのモジュール数が既知であるため、例え
ば、復調済キャラクタE1の基準黒バー幅モジュール数
m (=2モジュール(理論値)を用いて、図3に示
すステップSB15〜ステップSB20の処理を行って
もよい。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0123
【補正方法】変更
【補正内容】
【0123】ステップSC6では、CPU70は、黒バ
ー幅B3 (=42カウント)を上記カウント値(Cz
7=30.14)で除算した結果をB3 バーの印刷精度
3S(=1.39モジュール(小数点第3位四捨五
入))として求めた後、ステップSC7へ進む。ステッ
プSC7では、CPU70は、ステップSC4〜ステッ
プSC6でそれぞれ求めた印刷精度Xs 、印刷精度B1S
および印刷精度B3Sをチェックする。具体的には、CP
U70は、印刷精度Xs (=1.89モジュール)と印
刷精度B1S(=1.33モジュール)との差の絶対値
(=0.56モジュール:以下、第1の印刷精度と称す
る)、および印刷精度Xs (=1.89モジュール)と
印刷精度B3S(=1.39モジュール)との差の絶対値
(=0.5モジュール:以下、第2の印刷精度と称す
る)をそれぞれ求めた後、ステップSC8へ進む。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0126
【補正方法】変更
【補正内容】
【0126】この場合、CPU70は、第1の印刷精度
(=0.56モジュール)および第2の印刷精度(=
0.5モジュール)の双方がしきい値(0.3モジュ
ール)以上に悪化していることから、復調済キャラクタ
長Cy と被復調キャラクタ長C z との間にばらつきがあ
るものとして、ステップSC8の判断結果を「YES」
として、ステップSC9へ進む。
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0134
【補正方法】変更
【補正内容】
【0134】この場合、CPU70は、第1の印刷精度
(=4モジュール)および第2の印刷精度(=4モジュ
ール)の双方がしきい値(3モジュール)以上である
ことから、復調済キャラクタ長Cy と被復調キャラクタ
長Cz との間にばらつきがあるものとして、ステップS
C8の判断結果を「YES」として、ステップSC9へ
進み、前述した工程を実行する。
【手続補正20】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 川合 弘晃 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B072 AA02 BB10 CC24 DD02 FF29

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 キャラクタを複数のバーにより表したバ
    ーコードを読み取って得られたバーコードデータより、
    前記キャラクタを復調するバーコード読取装置におい
    て、 復調済キャラクタにおけるバー幅基準となる基準バーの
    バー幅を基準として、被復調キャラクタを構成するバー
    のバー幅を補正する第1の補正手段と、 前記第1の補正手段により補正された被復調キャラクタ
    を構成するバーのバー幅に基づいて、前記被復調キャラ
    クタを復調する復調手段と、 前記復調済キャラクタの幅と前記被復調キャラクタの幅
    との比率を求める比率算出手段と、 前記基準バーのバー幅を前記比率算出手段により算出さ
    れた比率に基づいて補正する第2の補正手段と、 を備え、 前記比率算出手段により算出された比率が予め定められ
    たしきい値以上である場合、前記第1の補正手段は前記
    第2の補正手段により補正された基準バーのバー幅に基
    づいて、前記被復調キャラクタを構成するバーのバー幅
    を補正することを特徴とするバーコード読取装置。
  2. 【請求項2】 キャラクタを複数のバーにより表したバ
    ーコードを読み取って得られたバーコードデータより、
    前記キャラクタを復調するバーコード読取装置におい
    て、 復調済キャラクタにおけるバー幅基準となる基準バーの
    バー幅を基準として、被復調キャラクタを構成するバー
    のバー幅を補正する第1の補正手段と、 前記第1の補正手段により補正された被復調キャラクタ
    を構成するバーのバー幅に基づいて、前記被復調キャラ
    クタを復調する復調手段と、 前記バーコードにおける印刷精度を求める印刷精度算出
    手段と、 前記基準バーのバー幅を、前記復調済キャラクタの幅と
    前記被復調キャラクタの幅との比率に基づいて補正する
    第2の補正手段と、 を備え、 前記印刷精度算出手段により算出された当該バーコード
    の印刷精度が予め定められたしきい値以上に悪化してい
    る場合、前記第1の補正手段は、前記第2の補正手段に
    より補正された基準バーのバー幅に基づいて、前記被復
    調キャラクタを構成するバーのバー幅を補正することを
    特徴とするバーコード読取装置。
  3. 【請求項3】 前記印刷精度算出手段は、前記復調済キ
    ャラクタにおける少なくとも一つの基準バー幅と前記被
    復調キャラクタにおけるバー幅との対比において前記印
    刷精度を求めることを特徴とする請求項2に記載のバー
    コード読取装置。
  4. 【請求項4】 キャラクタを複数のバー幅により表した
    バーコードを読み取るバーコード読取方法において、 復調済キャラクタにおける少なくとも一つの基準バーの
    バー幅を基準にして、被復調キャラクタのバー幅を補正
    する第1の補正工程と、 前記第1の補正工程において補正された前記復調済キャ
    ラクタのバー幅に基づいて、前記被復調キャラクタを復
    調する復調工程と、 前記復調済キャラクタの幅と前記被復調キャラクタの幅
    との比率を求める比率算出工程と、 前記基準バーの前記バー幅を前記比率に基づいて補正す
    る第2の補正工程と、 を備え、 前記比率算出工程において算出された前記比率が予め定
    められたしきい値以上である場合、前記第2の補正工程
    により補正された基準バーのバー幅に基づいて前記第1
    の補正工程によるバー幅補正を行い、当該補正されたバ
    ー幅に基づいて、前記被復調キャラクタを構成するバー
    のバー幅を補正することを特徴とするバーコード読取方
    法。
  5. 【請求項5】 キャラクタを複数のバー幅により表した
    バーコードを読み取るバーコード読取方法において、 復調済キャラクタにおける少なくとも一つの基準バーの
    バー幅を基準にして、被復調キャラクタのバー幅を補正
    する第1の補正工程と、 前記第1の補正工程において補正された前記復調済キャ
    ラクタのバー幅に基づいて、前記被復調キャラクタを復
    調する復調工程と、 前記バーコードにおける印刷精度を求める印刷精度算出
    工程と、 前記基準バーの前記バー幅を、前記復調済キャラクタの
    幅と前記被復調キャラクタの幅との比率に基づいて補正
    する第2の補正工程と、を備え、 前記印刷精度算出工程により算出された当該バーコード
    の印刷精度が予め定められたしきい値以上に悪化してい
    る場合、前記第2の補正工程により補正された基準バー
    のバー幅に基づいて、前記第1の補正工程によるバー幅
    補正を行い、当該補正されたバー幅に基づいて、前記被
    復調キャラクタを構成するバーのバー幅を補正すること
    を特徴とするバーコード読取方法。
  6. 【請求項6】 前記印刷精度算出工程では、前記復調済
    キャラクタにおける少なくとも一つの基準バー幅と前記
    被復調キャラクタにおけるバー幅との対比において前記
    印刷精度を求めることを特徴とする請求項5に記載のバ
    ーコード読取方法。
JP35971098A 1998-12-17 1998-12-17 バーコード読取装置および方法 Expired - Fee Related JP3548025B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP35971098A JP3548025B2 (ja) 1998-12-17 1998-12-17 バーコード読取装置および方法
US09/282,468 US6357660B1 (en) 1998-12-17 1999-03-31 Bar code reading apparatus and a method for the same
EP99302870A EP1011063A3 (en) 1998-12-17 1999-04-13 Bar code reading apparatus and a method for the same
KR1019990016040A KR100334047B1 (ko) 1998-12-17 1999-05-04 바코드 판독 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35971098A JP3548025B2 (ja) 1998-12-17 1998-12-17 バーコード読取装置および方法

Publications (2)

Publication Number Publication Date
JP2000181987A true JP2000181987A (ja) 2000-06-30
JP3548025B2 JP3548025B2 (ja) 2004-07-28

Family

ID=18465911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35971098A Expired - Fee Related JP3548025B2 (ja) 1998-12-17 1998-12-17 バーコード読取装置および方法

Country Status (4)

Country Link
US (1) US6357660B1 (ja)
EP (1) EP1011063A3 (ja)
JP (1) JP3548025B2 (ja)
KR (1) KR100334047B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016151800A (ja) * 2015-02-16 2016-08-22 株式会社ウェルキャット コード読取学習システム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031560A1 (fr) * 1999-10-25 2001-05-03 Fujitsu Limited Dispositif et procede de lecture de codes a barres
US6398113B1 (en) * 1999-12-23 2002-06-04 Ncr Corporation System and methods for collaborative bar code error detection and correction
US6751814B2 (en) * 2001-11-02 2004-06-22 Roy Mattson Whirlpool bath filter and suction device
CN1630874A (zh) * 2002-06-28 2005-06-22 富士通株式会社 条形码阅读器以及条形码阅读程序
US7044382B2 (en) * 2002-06-28 2006-05-16 Fujitsu Limited Bar-code reader and computer product
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
JP4170111B2 (ja) * 2003-02-21 2008-10-22 富士通株式会社 バーコード読取装置およびバーコード読取方法
US20050211612A1 (en) * 2004-03-25 2005-09-29 Mattson Roy W Jr Water suction purification device
US8196836B2 (en) * 2007-06-28 2012-06-12 Fuji Xerox Co., Ltd. Image processing apparatus, image processing method and computer-readable medium
JP2021103499A (ja) * 2019-12-26 2021-07-15 セイコーエプソン株式会社 画像処理装置、印刷装置および画像処理方法
CN112733564A (zh) * 2020-12-29 2021-04-30 深圳市新锐科技有限公司 一维码识别方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3882464A (en) * 1974-04-04 1975-05-06 Computer Identics Corp Size ratio label reading system
JPS586982B2 (ja) * 1976-08-18 1983-02-07 株式会社デンソー バ−コ−ド読取方法および装置
US4414468A (en) * 1981-05-18 1983-11-08 International Business Machines Corporation Systematic error correction in bar code scanner
US4438327A (en) * 1982-04-21 1984-03-20 Burr-Brown Research Corporation Bar code reading system and method
US4528443A (en) * 1982-04-21 1985-07-09 Burr-Brown Corporation Bar code reading system and method
JP2740418B2 (ja) * 1992-07-14 1998-04-15 富士通株式会社 バーコード読取復調方法
JPH07175632A (ja) * 1993-12-17 1995-07-14 Ricoh Co Ltd バーコード読取装置
JP2718442B2 (ja) 1993-12-20 1998-02-25 富士通株式会社 バーコード復調方法及び装置
US5821520A (en) * 1995-04-28 1998-10-13 Symbol Technologies, Inc. Bar code scanning system with the pre-decoding signal processing and method for bar code candidate selection for decoding
JP3550807B2 (ja) * 1995-06-16 2004-08-04 株式会社デンソー バーコード復号方式
JP2729168B2 (ja) * 1995-12-21 1998-03-18 日本電気アイシーマイコンシステム株式会社 バーコードおよびバーコード読取装置およびその読取方法
US5767498A (en) * 1996-09-17 1998-06-16 Ncr Corporation Bar code error scanner
JPH10134130A (ja) * 1996-10-28 1998-05-22 Fujitsu Ltd バーコード読取方法およびバーコード読取装置
JP3472691B2 (ja) * 1997-11-26 2003-12-02 富士通株式会社 バーコード読取装置及びバーコード読取方法
JP3510496B2 (ja) * 1998-09-28 2004-03-29 富士通株式会社 バー幅補正装置,バー幅補正方法,バーコード読取装置及びそのバーコード復調方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016151800A (ja) * 2015-02-16 2016-08-22 株式会社ウェルキャット コード読取学習システム

Also Published As

Publication number Publication date
KR100334047B1 (ko) 2002-04-26
EP1011063A3 (en) 2002-05-08
US6357660B1 (en) 2002-03-19
JP3548025B2 (ja) 2004-07-28
KR20000047394A (ko) 2000-07-25
EP1011063A2 (en) 2000-06-21

Similar Documents

Publication Publication Date Title
JP2000181987A (ja) バーコード読取装置および方法
JPS6227434B2 (ja)
KR910005389B1 (ko) 바아코오드 판독합성을 위한 전처리방법 및 바아코오드 판독데이타의 합성방법
JP2616921B2 (ja) ラベル識別装置
US5889270A (en) Bar code decoding using moving averages to break the (N.K.) code barrier for UPC, EAN, code 128 and others
EP0067414B1 (en) Method and apparatus for reading a bar code
JP2000509537A (ja) モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置
EP0180152A2 (en) Bar code reading method and apparatus
US4687912A (en) Bar code reading method and apparatus
JP2740418B2 (ja) バーコード読取復調方法
JP4416980B2 (ja) バーコード読取装置およびバーコード読取方法
JPS6324116A (ja) 形状測定装置
JPH0354388B2 (ja)
US20140084061A1 (en) Optical information reading device, optical information reading method, computer-readable program and recording medium
JP3510496B2 (ja) バー幅補正装置,バー幅補正方法,バーコード読取装置及びそのバーコード復調方法
US5502296A (en) Method of and apparatus for demodulating bar code
JP2729168B2 (ja) バーコードおよびバーコード読取装置およびその読取方法
JPH0786904B2 (ja) バ−コ−ド復調方式
EP0895175A1 (en) Process for scanning a bar-code
JPH0239824B2 (ja)
JP2835275B2 (ja) バーコード読取装置
JP2953143B2 (ja) バーコード読取装置およびバーコード読取方法
JP2689158B2 (ja) バーコード読取装置
JPH0740014B2 (ja) Dnaパターン読取り装置
JPH0816693A (ja) バーコード検査装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080423

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100423

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees