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

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

Info

Publication number
JP3548025B2
JP3548025B2 JP35971098A JP35971098A JP3548025B2 JP 3548025 B2 JP3548025 B2 JP 3548025B2 JP 35971098 A JP35971098 A JP 35971098A JP 35971098 A JP35971098 A JP 35971098A JP 3548025 B2 JP3548025 B2 JP 3548025B2
Authority
JP
Japan
Prior art keywords
bar
character
width
demodulated
bar width
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP35971098A
Other languages
English (en)
Other versions
JP2000181987A (ja
Inventor
光雄 渡辺
功 岩口
弘晃 川合
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
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Frontech 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, Fujitsu Frontech 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

Images

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

Description

【0001】
【発明の属する技術分野】
本発明は、キャラクタをバー幅により表したバーコードからの反射光に基づいて読み取られたバーコードデータからキャラクタを復調するバーコード読取装置および方法に関するものである。
【0002】
近時、小売業においては、商品の売上内容の把握の迅速化、省力化等を目的として、特に、コンビニエンスストア、百貨店、スーパマーケット等では、POS(Point Of Sales)システムが急速に普及している。このPOSシステムにおいては、商品に付されキャラクタを表すバーコードを光学的に読み取り、この読み取り結果に基づいて、キャラクタを復調するバーコード読取装置が組み込まれている。
【0003】
また、商品に付されたバーコードは、その印刷精度により、バー幅にばらつきが生じることがあるため、バーコード読取装置においては、上記ばらつきの影響を受けることなく、高精度でキャラクタの復調を行うことが要請されている。
【0004】
【従来の技術】
バーコードは、図示しない商品に付されており、複数の黒バーと白バーとが交互に組み合わされてなり、後述するE(EVEN)0〜E9、O(ODD)0〜O9という都合20種類のキャラクタを表現するものである。
【0005】
このバーコードとしては、たとえば、JAN(Japan Article Number)用として規定されているバーコードシンボル、世界共通のWPC(World Product Code)、ヨーロッパで用いられているEAN(European Article Number )、アメリカで用いられているUPC(Universal Product Code)がある。
【0006】
図6は、バーコード10の具体例を示す平面図である。この図に示すバーコード10は、一例として、交互に配設された黒バーBB、白バーWB、黒バーBBおよび白バーWBとを有している。また、バーコード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番目の黒バーの黒バー幅B、2番目の白バーの白バー幅B、3番目の黒バーの黒バー幅Bおよび4番目の白バーの白バー幅Bの組み合わせにより、基本的には、“0”から“9”までの10種類の数字(キャラクタ)を表現しているが、図8に示すように同じ数字でも黒バーの合計モジュール数を奇数および偶数とする2種類の組み合わせを導入することにより、20種類のキャラクタの表現が可能となる。
【0009】
ここで、黒バーのモジュール数が奇数となるものをODD(以下、Oと略称)と称し、一方、黒バーのモジュール数が偶数となるものをEVEN(以下、Eと略称)と称する。図8に示す例では、キャラクタO0〜キャラクタO9という黒バーのモジュール数が奇数となる10種類のキャラクタと、キャラクタE0〜キャラクタE9という黒バーのモジュール数が偶数となる10種類のキャラクタという都合20種類のキャラクタが図示されている。
【0010】
たとえば、同図に示すキャラクタO0およびキャラクタE0を例にして説明すれば、キャラクタO0は、同図右側から左側へ向かって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は、同図右側から左側へ向かって、黒バー幅Bが1モジュールの黒バーと、該黒バーに隣接し白バー幅Bが1モジュールの白バーと、該白バーに隣接し黒バー幅Bが3モジュールの黒バーと、該黒バーに隣接し白バー幅Bが2モジュールの白バーから構成されている。
【0013】
ここで、黒バー幅Bと白バー幅Bとの和、すなわち1番目の黒バーと2番目の白バーとのエッジ間距離はデルタディスタンスTと称されており、同図に示す例では、このデルタディスタンスTは、2モジュールである。さらに、白バー幅Bと黒バー幅Bとの和、すなわち2番目の白バーと3番目の黒バーとのエッジ間距離はデルタディスタンスTと称されており、同図に示す例では、このデルタディスタンスTは、4モジュールである。
【0014】
また、上記デルタディスタンスT、デルタディスタンスT、黒バー幅Bおよび黒バー幅Bは、当該キャラクタが図8に示すキャラクタO0〜キャラクタO9、およびキャラクタE0〜キャラクタE9のうちいずれのキャラクタに該当するかの特定に用いられる重要なパラメータである。
【0015】
すなわち、図8に示されるように、キャラクタO0〜キャラクタO9およびキャラクタE0〜キャラクタE9の各デルタディスタンスTおよびデルタディスタンスTが異なるため、デルタディスタンスTおよびデルタディスタンスTから当該キャラクタが特定される。この特定には、図10に示すデルタディスタンスTとデルタディスタンスTの組み合わせパターンと、当該キャラクタとの関係を示す第1の復調テーブル100が用いられる。
【0016】
ただし、図10に示すように、キャラクタE2とキャラクタE8、キャラクタO2とキャラクタO8、キャラクタO1とキャラクタO7、およびキャラクタE1とキャラクタE7においては、それぞれの組み合わせのデルタディスタンスTおよびデルタディスタンスTが同値であることから、デルタディスタンスTおよびデルタディスタンスTに基づいて当該キャラクタを特定することができない。
【0017】
具体的には、キャラクタE2とキャラクタE8を例にとれば、いずれもデルタディスタンスTが3モジュール、デルタディスタンスTが3モジュールという具合に同値とされており、デルタディスタンスTおよびデルタディスタンスTだけからでは、当該キャラクタがキャラクタE2であるのかキャラクタE8であるのかを特定することができない。
【0018】
そこで、上記キャラクタE2とキャラクタE8、キャラクタO2とキャラクタO8、キャラクタO1とキャラクタ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番目の黒バーの黒バー幅Bと3番目の黒バーの黒バー幅Bとの組み合わせパターンと、当該キャラクタとの関係を示す第2の復調テーブル200が用いられる。
【0021】
ここで、従来においては、上述したバーコード10を読み取りさらに復調する装置として、バーコード読取装置が用いられている。この種のバーコード読取装置は、バーコード10を光学的に読み取る読取部と、該読取部の読取結果に基づいて、バーコード10におけるキャラクタを復調するCPU(Central Processing Unit )から概略構成されている。
【0022】
以下、上述した従来のバーコード読取装置の動作を図13に示すフローチャートを参照して説明する。ここで、バーコード10の印刷精度が悪化した場合には、正規の黒バー幅に比して黒バー幅が狭くなる黒細りしたものと、これとは逆に正規の黒バー幅に比して黒バー幅が広くなる黒太りしたものとが存在する。
【0023】
具体的には、図12(b)には、正規の黒バー幅Bおよび黒バー幅B(図12(a)参照)に比して狭い黒バー幅B’および黒バー幅B’とされた黒細りの様子が図示されており、図12(c)には、正規の黒バー幅Bおよび黒バー幅B(図12(a)参照)に比して広い黒バー幅B’’および黒バー幅B’’とされた黒太りの様子が図示されている。
【0024】
このため、黒バー幅B’、B’、B’’、B’’等には、印刷上の誤差が含まれている。従って、正確なモジュール数を判別することが困難となる。そこで、従来よりモジュール数が判っている復調済キャラクタのバー幅を用いて被復調キャラクタの黒バー幅を補正し、復調を行う技術が提案されている。
【0025】
以下、図14に示す復調済キャラクタEに基づいて、被復調済キャラクタE7を復調する動作について説明する。まず、CPU(図示略)は、図13に示すステップSA1へ進み、キャラクタE7におけるデルタディスタンスTおよびデルタディスタンスTの各モジュール数を求める。図14に示す例では、CPUは、つぎの(1)式および(2)式から、デルタディスタンスTのモジュール数T 1m を「4」、デルタディスタンスTのモジュール数T 2m を「4」として求めた後、ステップSA2へ進む。
【0026】
1m=INT(T/(C/7)+0.5) ・・・(1)
2m=INT(T/(C/7)+0.5) ・・・(2)
ここで、上記(1)式および(2)式において、Cは被復調キャラクタ長を意味し、INTは、括弧内の「T/(C/7)」を四捨五入するということを意味する。
【0027】
すなわち、上記INTは、図9に示すように、「(T/(C/7)+0.5)」、「(T/(C/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へ進む。この場合、デルタディスタンスT=4モジュール、デルタディスタンスT=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の復調テーブル100によりキャラクタ復調が完了したことを意味する。この場合、キャラクタが補正キャラクタ(キャラクタE1またはキャラクタE7のいずれか一方)であるため、CPUは、ステップSA3の判断結果を「YES」として、ステップSA4へ進む。
【0032】
ステップSA4では、CPUは、印刷精度の良否による前述したバーコード10の黒細りまたは黒太りの影響を排除すべく、図14に示す黒バー幅Bの補正を基準黒バー幅Xを基準として行った後、ステップSA5へ進む。
【0033】
ステップSA5では、CPUは、基準黒バー幅Xのモジュール数(以下、基準黒バー幅モジュール数Xという)を求めた後、この計算結果と図9に示す判別方法により、補正された黒バー幅Bのモジュール数を求める。
【0034】
すなわち、CPUは、上記基準黒バー幅モジュール数Xから幅差ΔX(基準黒バー幅Xのモジュール数と黒バー幅Bのモジュール数との差)を減算した結果と、図9に示す判別方法とから、補正された黒バー幅Bのモジュール数を求める。また、CPUは、黒バー幅Bの場合と同様の手順にて、補正された黒バー幅Bのモジュール数を求めた後、ステップSA6へ進む。
【0035】
ステップSA6では、CPUは、ステップSA5において算出された黒バー幅Bおよび黒バー幅Bを第2の復調テーブル200(図11参照)に適用した後、当該キャラクタを判断した後、ステップSA7へ進む。ステップSA7では、CPUは、つぎのキャラクタの復調用に黒バー幅Bを基準黒バー幅Xとして、このモジュール数を求めた後、キャラクタ復調を完了させる。
【0036】
【発明が解決しようとする課題】
ところで、従来のバーコード読取装置におけるバー幅補正方法は、バーコードの印刷誤差によるバーの太り/細りが一様に表れる場合には、有効である。しかしながら、バーコードにおいて各キャラクタ長(幅)が異なるなど、印刷精度によりバーの太り/細りが一様に表れない場合には、バー幅補正時に誤差が生じる。
【0037】
従って、図13に示すステップSA6において、第2の復調テーブル200(図11参照)に上記黒バー幅B(=1モジュール)および黒バー幅B(=2モジュール)を適用すると、同図から明らかなように、該当するキャラクタが存在しえないため復調ができない状態となる。これは、従来のバーコード読取装置において、黒バー幅Bおよび黒バー幅Bに対して、バーコード10の全体にわたって同一の比率で黒太りまたは黒細りが生じることを大前提とし、基準黒バー幅Xを基準として補正を行っていることに起因する。
【0038】
すなわち、図14に示す例では、復調済キャラクタ長(幅)C(=198カウント)と被復調キャラクタ長(幅)C(=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のCPU70に相当)と、前記第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のステップSB4に相当)と、前記基準バーの前記バー幅を前記比率に基づいて補正する第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を光学的に読み取り、読み取り結果を読取信号Sとして出力するものであり、レーザ光Lをバーコード10に対して照射するレーザ発振器(図示略)、バーコード10により反射されたレーザ光Lを受光した後、読取信号Sを生成する受光部(図示略)とから概略構成されている。
【0067】
具体的には、読取部20は、図2(a)に示すバーコード10に照射されたレーザ光Lがバーコード10により反射された反射光を受光して、図2(b)に示す波形の読取信号Sを出力する。ここで、読取信号Sのレベルは、図2(a)に示す黒バーBB、白バーWB、黒バーBBおよび白バーWBに対応している。すなわち、黒バーBBおよび黒バーBBの光反射率が低いためこれらに対応する読取信号Sのレベルが低くなっており、一方、白バーWBおよび白バーWBの光反射率が高いためこれらに対応する読取信号Sのレベルが高くなっている。
【0068】
図1に戻り、A/D(Analog/Digital )変換部30は、図2(b)に示す読取信号Sとしきい値とを比較することにより、読取信号Sを図2(c)に示すように二値化(ディジタル化)する処理を行う。クロック信号発生部40は、所定周期のクロック信号Sを発生する。バー幅カウンタ50は、クロック信号発生部40より供給されるクロック信号Sの周期に同期してカウントアップ動作を行い、A/D変換部30によりディジタル化された読取信号Sのうち、図2(c)に示す黒バー幅B、白バー幅B、黒バー幅Bおよび白バー幅Bをカウント値として測定する。図2(c)に示す例では、黒バー幅Bが50カウント、白バー幅Bが50カウント、黒バー幅Bが100カウント、白バー幅Bが200カウントとされている。
【0069】
メモリ60は、上記バー幅カウンタ50のカウント値のデータを図2(d)に示すように黒バー幅B、白バー幅B、・・・ に対応させて記憶する。CPU70は、メモリ60に記憶されている各カウント値のデータ、上述した第1の復調テーブル100(図10参照)および第2の復調テーブル200(図11参照)に基づいて、バーコード10におけるキャラクタを復調して、復調結果を復調データDとして出力する。このCPU70の動作の詳細については、後述する。ROM80は、第1の復調テーブル100、第2の復調テーブル200、CPU70において実行されるプログラムを記憶する。
【0070】
次に、上述した実施の形態1によるバーコード読取装置の動作について図3に示すフローチャートを参照しつつ説明する。
図1において、バーコード読み取りを行うべく、読取部20のレーザ発振器(図示略)からレーザ光Lがバーコード10に照射されると、前述した動作を経て、読取部20の受光部からは、読取信号SがA/D変換部30へ出力される。これにより、A/D変換部30では、入力された読取信号Sとしきい値とが比較されることにより、読取信号Sが図14に示すように二値化され、この二値化された読取信号Sがバー幅カウンタ50によりカウントされる。
【0071】
図14には、前述したように、キャラクタE1のつぎにキャラクタE7が続いた例が図示されており、キャラクタE1は、既に復調済みのキャラクタであり、キャラクタE7は、復調される被復調キャラクタである。
【0072】
また、メモリ60には、図14に示す復調済キャラクタE1にするカウント結果として、黒バー幅B’=57カウント、白バー幅B’=54カウント、黒バー幅B’=56カウント、白バー幅B’=31カウント、復調済キャラクタ長(幅)C=198カウントが記憶されているものとする。ここで、復調済キャラクタE1において、黒バー幅B’を基準黒バー幅Xと称する。一方、メモリ60には、被復調キャラクタE7に関するカウント結果として、黒バー幅B=40カウント、白バー幅B=76カウント、黒バー幅B=42カウント、白バー幅B=53カウントおよび被復調キャラクタ長(幅)C=211カウントが記憶されているものとする。
【0073】
この状態において、CPU70(図1参照)は、図3に示すステップSB1へ進み、キャラクタE7におけるデルタディスタンスTおよびデルタディスタンスTの各モジュール数を求める。具体的には、CPU70は、まず、キャラクタE7の被復調キャラクタ長C(=211カウント)を7(モジュール)で除して、キャラクタE7における1モジュール長(=C/7)を求める。
【0074】
つぎに、CPU70は、デルタディスタンスTとして、黒バー幅B(=40カウント)と白バー幅B(=76カウント)との和(=116カウント)を求め、同様に、デルタディスタンスTとして白バー幅B(=76カント)と黒バー幅B(=42カウント)との和(=118カウント)を求める。
【0075】
つぎに、CPU70は、前述したつぎの(1)式および(2)式に、求められた被復調キャラクタE7のデルタディスタンスT、デルタディスタンスT、1モジュール長(=C/7)をそれぞれ代入することにより、デルタディスタンスTおよびデルタディスタンスTのモジュール数T1mおよびモジュール数T2mをそれぞれ求める。
【0076】
1m=INT(T/(C/7)+0.5) ・・・(1)
2m=INT(T/(Cz/7)+0.5) ・・・(2)
【0077】
図14に示す例では、CPU70は、上述した(1)式および(2)式から、デルタディスタンスTのモジュール数を「4」、デルタディスタンスTのモジュール数を「4」として求めた後、ステップSB2へ進む。ステップSB2では、CPU70は、図10に示す第1の復調テーブル100にアクセスすることにより、キャラクタ復調を行った後、ステップSB3へ進む。この場合、デルタディスタンスT=4モジュール、デルタディスタンスT=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の復調済キャラクタ長C(=198カウント)と、被復調キャラクタE7のキャラクタ長C(=211カウン)との比率(|C/C|)を求めた後、ステップ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%)であることから、復調済キャラクタ長Cと被復調キャラクタ長Cとの間にばらつきがあるものとして、ステップSB5の判断結果を「YES」として、ステップSB6へ進む。
【0084】
ステップSB6では、CPU70は、図14に示す基準黒バー幅Xを補正する。具体的には、CPU70は、つぎの(3)式に基準黒バー幅X(=57カウント)、復調済キャラクタ長C(=198カウント)および被復調キャラクタ長C(=211カウント)をそれぞれ代入して、補正された基準黒バー幅Xを算出した後、ステップSB8へ進む。
=X・(C/C) ・・・(3)
この場合、上記基準黒バー幅Xは、(57・(211/198))より60.74(小数点第3位四捨五入)カウントである。
【0085】
ステップSB8では、CPU70は、補正された基準黒バー幅X(=60.74カウント)が黒バー幅B(=40カウント)より大きいか否かを判断する。この場合、X>Bなる関係にあるため、CPU70は、ステップSB8の判断結果を「YES」として、ステップSB9へ進む。ステップSB9では、CPU70は、補正された基準黒バー幅X(=60.74カウント)から黒バー幅B(=40カウント)を減算した黒バー幅差ΔX20.74カウント)を求めた後、ステップSB11へ進む。
【0086】
一方、ステップSB8において、基準黒バー幅Xが黒バー幅B以下である場合には、CPU70は、判断結果を「NO」としてステップSB10へ進む。ステップSB10では、CPU70は、黒バー幅Bから基準黒バー幅Xを減算した黒バー幅差ΔXを求めた後、ステップSB11へ進む。ステップSB11では、CPU70は、補正された基準黒バー幅X(=60.74カウント)が黒バー幅B(=42カウント)より大きいか否かを判断する。この場合X>Bなる関係にあるため、CPU70は、ステップSB11の判断結果を「YES」として、ステップSB12へ進む。
【0087】
ステップSB12では、CPU70は、補正された基準黒バー幅X(=60.74カウント)から黒バー幅B(=42カウント)を減算した黒バー幅差ΔX18.74カウント)を求めた後、ステップSB14へ進む。一方、ステップSB11において、基準黒バー幅Xが黒バー幅B以下である場合には、CPU70は、判断結果を「NO」としてステップSB13へ進む。ステップSB13では、CPU70は、黒バー幅Bから基準黒バー幅Xを減算した黒バー幅差ΔXを求めた後、ステップSB14へ進む。
【0088】
ステップSB14では、CPU70は、ステップSB9(またはステップSB10)およびステップSB12(またはステップSB13)で求めた黒バー幅差ΔX(=20.74カウント)および黒バー幅差ΔX(=18.74カウント)の黒バー幅差モジュール数ΔX1mおよび黒バー幅差モジュール数ΔX3mを求める。具体的には、CPU70は、黒バー幅差ΔX(=20.74カウント)を被復調キャラクタE7における1モジュールのカウント数(=(C/7)=(211/7)=30.14カウント(小数点第3位四捨五入))で除算した結果を、黒バー幅差モジュール数ΔX1mとして求める。この場合、この黒バー幅差モジュール数ΔX1mは、0.69(小数点以下第3位四捨五入)である。
【0089】
同様にして、CPU70は、黒バー幅差ΔX(=18.74カウント)を被復調キャラクタE7における1モジュールのカウント数(=(C/7)=30.14カウント)で除算した結果を、黒バー幅差モジュール数ΔX3mとして求めた後、ステップSB15へ進む。この場合、この黒バー幅差モジュール数ΔX3mは、0.62(小数点以下第3位四捨五入)である。
【0090】
ステップSB15では、CPU70は、補正された基準黒バー幅X(=60.74カウント)が黒バー幅B(=40カウント)より大きいか否かを判断する。この場合X>Bなる関係にあるため、CPU70は、ステップSB15の判断結果を「YES」として、ステップSB16へ進む。ステップSB16では、CPU70は、まず、補正された基準黒バー幅X(=60.74カウント)の基準黒バー幅モジュール数Xを求める。具体的には、CPU70は、基準黒バー幅X(=60.74カウント)を復調済キャラクタE1における1モジュールのカウント数(=(C/7)=(198/7)=28.28カウント(小数点第3位四捨五入))で除算した結果と、前述した図9に示す判別方法とから基準黒バー幅モジュール数Xとして求める。
【0091】
この場合、上記除算結果(=60.74/28.28)が2.15(小数点第3位四捨五入)であることから、図9に示す判別方法を適用すれば、基準黒バー幅モジュール数Xは、2として求められる。
【0092】
つぎに、CPU70は、上記基準黒バー幅モジュール数X(=2モジュール)から黒バー幅差モジュール数ΔX1m(=0.69モジュール)を減算した結果、および図9に示す判別方法とから黒バー幅Bの黒バー幅モジュール数1mを求める。この場合、上記減算結果(2−0.69)が1.31であり、かつ図9に示す0.5〜1.5までの間であることから、上記黒バー幅モジュール数B1mは、1モジュールとして求められる。
【0093】
一方、ステップSB15において、基準黒バー幅Xが黒バー幅B以下である場合には、CPU70は、判断結果を「NO」として、ステップSB17へ進む。ステップSB17では、CPU70は、まず、ステップSB16とは逆に、黒バー幅差モジュール数ΔX1mから基準黒バー幅モジュール数Xを減算した結果に基づいて、黒バー幅モジュール数B1mを求めた後、ステップSB18へ進む。
【0094】
ステップSB18では、CPU70は、補正された基準黒バー幅X(=60.74カウント)が黒バー幅B(=42カウント)より大きいか否かを判断する。この場合X>Bなる関係にあるため、CPU70は、ステップSB18の判断結果を「YES」として、ステップSB19へ進む。
【0095】
ステップSB19では、CPU70は、まず、補正された基準黒バー幅X(=60.74カウント)の基準黒バー幅モジュール数Xを、ステップSB16で説明した手法により2として求めた後、上記基準黒バー幅モジュール数X(=2モジュール)から黒バー幅差モジュール数ΔX3m(0.62モジュール)を減算した結果、および図9に示す判別方法とから黒バー幅Bの黒バー幅モジュール数3mを求める。
【0096】
この場合、上記減算結果(2−0.62)が1.38であり、かつ図9に示す0.5〜1.5までの間であることから、上記黒バー幅モジュール数B3mは、1モジュールとして求められる。一方、ステップSB18において、基準黒バー幅Xが黒バー幅B以下である場合には、CPU70は、判断結果を「NO」として、ステップSB20へ進む。ステップSB20では、CPU70は、ステップSB19とは逆に、黒バー幅差モジュール数ΔX3mから基準黒バー幅モジュール数Xを減算した結果に基づいて、黒バー幅モジュール数B3mを求めた後、ステップSB21へ進む。
【0097】
ステップSB21では、CPU70は、ステップSB16(またはステップSB17)において求められた黒バー幅モジュール数B1m(=1モジュール)、ステップSB19(またはステップSB20)において求められた黒バー幅モジュール数B3m(=1モジュール)を、図11に示す第2の復調テーブル200に適用することにより、キャラクタ復調を行う。
【0098】
この場合、CPU70は、図11に示す第2の復調テーブル200における黒バー幅Bとして、黒バー幅モジュール数B1m(=1モジュール)を、また黒バー幅Bとして、黒バー幅モジュール数B3m(=1モジュール)を適用することにより、キャラクタE7を復調して、このキャラクタE7に関する復調データDを図示しないホストコンピュータ等へ出力した後、ステップSB22へ進む。
【0099】
すなわち、この場合には、図14に示すようにキャラクタE7のキャラクタ長CとキャラクタE1の復調済キャラクタ長Cとの間に差がある、言い換えればバーコード10における各キャラクタ長にばらつきがあるにもかかわらず、キャラクタE7が正しく復調されたのである。
【0100】
ステップSB22では、CPU70は、キャラクタ復調ができたか否かを判断し、この場合、判断結果を「YES」として、キャラクタの復調動作を終了(OK)する。一方、キャラクタ復調ができなかった場合には、CPU70は、ステップSB22の判断結果を「NO」としてキャラクタ復調動作を終了(NG)する。
【0101】
なお、上述したステップSB5において、比率がしきい値(=5%)以下である場合、CPU70は、復調済キャラクタ長Cと被復調キャラクタ長Cとの間にばらつきがないものとして、判断結果を「NO」として、ステップSB7へ進む。ステップSB7では、CPU70は、基準黒バー幅Xを基準黒バー幅Xとした後、ステップSB8へ進み、上述した工程を実行する。すなわち、ステップSB7においては、基準黒バー幅Xは補正されることなく、基準黒バー幅Xとして以後の算出でそのまま用いられるのである。
【0102】
ここで、上述した実施の形態1によるバーコード読取装置と、前述した従来のバーコード読取装置との差違を明確にすべく、従来のバーコード読取装置により図14に示す被復調キャラクタE7を復調した場合について、具体的数値を挙げて図13に示すフローチャートを参照しつつ対比説明する。つまり、以下の説明は、上述した実施の形態1において、キャラクタ間比率に基づいて基準黒バー幅の補正を行わない場合についてのものである。
【0103】
まず、CPU70(図1参照)は、図13に示すステップSA1へ進み、キャラクタE7におけるデルタディスタンスTおよびデルタディスタンスTの各モジュール数を求める。具体的には、CPU70は、まず、キャラクタE7の被復調キャラクタ長C(=211カウント)を7(モジュール)で除して、キャラクタE7における1モジュール長(=C/7)を求める。
【0104】
つぎに、CPU70は、デルタディスタンスTとして、黒バー幅B(=40カウント)と白バー幅B(=76カウント)との和(=116カウント)を求めた後、デルタディスタンスTとして白バー幅B(=76カント)と黒バー幅B(=42カウント)との和(=118カウント)を求める。
【0105】
つぎに、CPU70は、前述した(1)式および(2)式に、求められたキャラクタE7のデルタディスタンスT、デルタディスタンスT、1モジュール長(=C/7)および1モジュール長(=C/7)をそれぞれ代入することにより、デルタディスタンスTおよびデルタディスタンスTのモジュール数T1mおよびモジュール数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は、図14に示す黒バー幅Bの補正を基準黒バー幅Xを基準として行う。
具体的には、CPU70は、つぎの(4)式に、図14に示す基準黒バー幅X(=57カウント)、黒バー幅B(=40カウント)、被復調キャラクタE7における被復調キャラクタ長C(=211カウント)を代入することにより、基準黒バー幅Xと黒バー幅Bとの差である幅差ΔXを求めた後、ステップSA5へ進む。
ΔX=(X−B)/(C/7) ・・・(4)
上記幅差ΔXは、0.56(小数点第3位四捨五入)として求められる。
【0109】
ステップSA5では、CPU70は、基準黒バー幅Xのモジュール数(以下、基準黒バー幅モジュール数Xという)として、基準黒バー幅X/(C/7)の計算式から基準黒バー幅Xのモジュール数を求めた後、この計算結果(=2.02(小数点第3位四捨五入))と図9に示す判別方法により、2を求める。
【0110】
つぎに、CPU70は、上記基準黒バー幅モジュール数X(=2モジュール)から上述した幅差ΔX(=0.56)を減算した結果(=1.44)と、図9に示す判別方法とから、補正された黒バー幅Bのモジュール数を1として求める。また、CPU70は、黒バー幅Bの場合と同様の手順にて、補正された黒バー幅Bのモジュール数を2として求めた後、ステップSA6へ進む。
【0111】
ステップSA6では、CPU70は、ステップSA5において算出された黒バー幅B(=1モジュール)および黒バー幅B2モジュール)を第2の復調テーブル200(図11参照)に適用する。
【0112】
しかしながら、上記ステップSA6において、第2の復調テーブル200(図11参照)に上記黒バー幅B(=1モジュール)および黒バー幅B(=2モジュール)を適用すると、同図から明らかなように、該当するキャラクタが存在しえないため復調ができない状態となる。これは、従来のバーコード読取装置において、黒バー幅Bおよび黒バー幅Bに対して、バーコード10の全体にわたって同一の比率で黒太りまたは黒細りが生じることを大前提として、基準黒バー幅Xを基準として補正を行っていることに起因する。
【0113】
これに対して、上述した実施の形態1によるバーコード読取装置によれば、被復調キャラクタ長Cと復調済キャラクタ長Cとの比率としきい値とを比較して、この比較結果に基づいて、基準黒バー幅Xに対して補正をかけるように構成したので、バーコード10における各キャラクタ長Cのばらつきの影響を受けることなく、正常にキャラクタ復調動作を行うことができる。
【0114】
なお、上述した実施の形態1によるバーコード読取装置においては、図14に示す復調済キャラクタE1の各バーのモジュール数が既知であるため、例えば、復調済キャラクタE1の基準黒バー幅モジュール数X(=2モジュール(理論値)を用いて、図3に示すステップSB15〜ステップSB20の処理を行ってもよい。
【0115】
(実施の形態2)
図4は、本発明の実施の形態2によるバーコード読取装置の動作を示すフローチャート図である。この実施の形態2によるバーコード読取装置のハードウェア構成は、上述した実施の形態1によるバーコード読取装置のハードウェア構成と同一であるためその説明を省略する。ただし、実施の形態2によるバーコード読取装置においては、図1に示すCPU70の動作の一部が実施の形態1によるバーコード読取装置と異なる。
【0116】
具体的には、実施の形態1によるバーコード読取装置においては、図3に示すステップSB5で比率に基づいて基準黒バー幅Xに対して補正をかけるか否かが判断されたが、以下に説明する実施の形態2によるバーコード読取装置においては、図4に示すステップSC8でバーコード10の印刷精度に基づいて基準黒バー幅Xに対して補正をかけるか否かが判断される点が実施の形態1と大きく相違する点である。
【0117】
つぎに、上述した実施の形態2によるバーコード読取装置の動作について、図4に示すフローチャートを参照しつつ説明する。ここで、図1に示すメモリ60には、図14に示す復調済キャラクタE1に関するカウント結果として、基準黒バー幅X(黒バー幅B’)=57カウント、白バー幅B’=54カウント、黒バー幅B’=56カウント、白バー幅B’=31カウント、復調済キャラクタ長C=198カウントが記憶されているものとする。
【0118】
同様にして、メモリ60には、被復調キャラクタE7に関するカウント結果として、黒バー幅B=40カウント、白バー幅B=76カウント、黒バー幅B=42カウント、白バー幅B=53カウントおよび被復調キャラクタ長C=211カウントが記憶されているものとする。
【0119】
この状態において、CPU70(図1参照)は、図4に示すステップSC1へ進み、前述したステップSB1(図3参照)と同様にして、図14に示すキャラクタE7におけるデルタディスタンスTのモジュール数を「4」、デルタディスタンスTのモジュール数を「4」として求めた後、ステップSC2へ進む。ステップSC2では、CPU70は、図10に示す第1の復調テーブル100にアクセスすることにより、キャラクタ復調を行った後、ステップSC3へ進む。この場合、デルタディスタンスT=4モジュール、デルタディスタンスT=4モジュールであるため、CPU70は、復調結果をキャラクタE1またはキャラクタE7とする。
【0120】
ステップSC3では、CPU70は、ステップSC2により復調されたキャラクタが補正キャラクタであるか否かを判断し、判断結果が「NO」の場合、すなわち、復調されたキャラクタが上記補正キャラクタ以外のものである場合、復調されたキャラクタに関する復調データDを図示しないホストコンピュータ等へ出力した後、図3に示すEND(OK)へ進み、キャラクタの復調動作を終了する。
【0121】
この場合、キャラクタが補正キャラクタ(キャラクタE1またはキャラクタE7のいずれか一方)であるため、CPU70は、ステップSC3の判断結果を「YES」として、ステップSC4へ進む。ここで、以下の説明においては、図14に示す基準黒バー幅Xを有する黒バーをXバー、黒バー幅Bを有する黒バーをBバー、黒バー幅Bを有する黒バーをBバーと称する。
【0122】
ステップSC4では、CPU70は、基準黒バー幅X(=57カウント)をキャラクタE7における1モジュールのカウント値(C/7=211/7=30.14(小数点第3位四捨五入))で除算した結果をXバーの印刷精度X(=1.89モジュール(小数点第3位四捨五入))として求めた後、ステップSC5へ進む。ステップSC5では、CPU70は、黒バー幅B(=40カウント)を上記カウント値(C/7=30.14)で除算した結果をBバーの印刷精度B1S(=1.33モジュール(小数点第3位四捨五入))として求めた後、ステップSC6へ進む。
【0123】
ステップSC6では、CPU70は、黒バー幅B(=42カウント)を上記カウント値(C/7=30.14)で除算した結果をBバーの印刷精度B3S(=1.39モジュール(小数点第3位四捨五入))として求めた後、ステップSC7へ進む。ステップSC7では、CPU70は、ステップSC4〜ステップSC6でそれぞれ求めた印刷精度X、印刷精度B1Sおよび印刷精度B3Sをチェックする。具体的には、CPU70は、印刷精度X(=1.89モジュール)と印刷精度B1S(=1.33モジュール)との差の絶対値(=0.56モジュール:以下、第1の印刷精度と称する)、および印刷精度X(=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モジュール)以上に悪化していることから、復調済キャラクタ長Cと被復調キャラクタ長Cとの間にばらつきがあるものとして、ステップSC8の判断結果を「YES」として、ステップSC9へ進む。
【0127】
ステップSC9では、CPU70は、図14に示す基準黒バー幅Xを補正する。具体的には、CPU70は、前述したつぎの(3)式に基準黒バー幅X(=57カウント)、復調済キャラクタ長C(=198カウント)および被復調キャラクタ長C(=211カウント)をそれぞれ代入して、補正された基準黒バー幅Xを算出した後、図3に示すステップSB8へ進み、以後、前述した工程を実行する。
=X・(C/C) ・・・(3)
【0128】
一方、ステップSC8において、第1の印刷精度および(または)第2の印刷精度がしきい値(=0.3モジュール)より小である場合、CPU70は、判断結果を「NO」として、ステップSC10へ進む。ステップSC10では、CPU70は、基準黒バー幅Xを基準黒バー幅Xとした後、図3に示すステップSB8へ進み、上述した工程を実行する。すなわち、ステップSC7においては、基準黒バー幅Xは補正されることなく、基準黒バー幅Xとして以後の算出でそのまま用いられるのである。
【0129】
なお、上述した実施の形態2によるバーコード読取装置においては、図5に示す印刷精度テーブルを用いて、上述した第1および第2の印刷精度を求めてもよい。
【0130】
すなわち、この図5に示す印刷精度テーブルを用いる場合には、図4に示すステップSC7において、CPU70は、ステップSC4〜ステップSC6でそれぞれ求められた印刷精度X(=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に示す印刷精度テーブルから、印刷精度X(=1.89)のモジュールレジスタMreg として4、印刷精度B1S(=1.33)のモジュールレジスタMreg として0、同様にして印刷精度B3S(=1.39)のモジュールレジスタMreg として0を求める。
【0133】
つぎに、CPU70は、上記印刷精度XのモジュールレジスタMreg (=4)と印刷精度B1SのモジュールレジスタMreg (=0)との差の絶対値(=4モジュール:第1の印刷精度)、および印刷精度XのモジュールレジスタMreg (=4)と印刷精度B3SのモジュールレジスタMreg (=0)との差の絶対値(=4モジュール:第2の印刷精度)をそれぞれ求めた後、ステップSC8へ進む。ステップSC8では、CPU70は、上記第1の印刷精度および(または)第2の印刷精度がしきい値(ここでは、0.3モジュールに代えて3モジュール)以上であるか否かを判断する。ここで、上記しきい値(=3モジュール)は、前述したように図6に示すバーコード10において、すべての黒バーが全体的に黒太り(または黒細り)しているか、または部分的な黒バーのみが黒太り(または黒細り)しているか否かの判断に用いられる。
【0134】
この場合、CPU70は、第1の印刷精度(=4モジュール)および第2の印刷精度(=4モジュール)の双方がしきい値(3モジュール)以上であることから、復調済キャラクタ長Cと被復調キャラクタ長Cとの間にばらつきがあるものとして、ステップSC8の判断結果を「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 基準黒バー幅
黒バー幅
被復調キャラクタ長
復調済キャラクタ長

Claims (6)

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

Families Citing this family (12)

* 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
US7044382B2 (en) * 2002-06-28 2006-05-16 Fujitsu Limited Bar-code reader and computer product
EP1519295A4 (en) * 2002-06-28 2010-01-20 Fujitsu Ltd READER AND PROGRAM FOR READING BAR CODE
JP4170111B2 (ja) * 2003-02-21 2008-10-22 富士通株式会社 バーコード読取装置およびバーコード読取方法
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
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
JP6114320B2 (ja) * 2015-02-16 2017-04-12 株式会社ウェルキャット コード読取学習システム
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 富士通株式会社 バー幅補正装置,バー幅補正方法,バーコード読取装置及びそのバーコード復調方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3548025B2 (ja) バーコード読取装置および方法
EP0066680B1 (en) Systematic error correction in bar code scanner
US5675137A (en) Bar code decoding using moving averages to break the (n,k) code barrier for UPC, EAN Code 128 and others
EP0067414A2 (en) Method and apparatus for reading a bar code
US4757206A (en) Bar code reading method and apparatus
JP2000509537A (ja) モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置
US4687912A (en) Bar code reading method and apparatus
JP4117368B2 (ja) バーコード読取装置及びバーコード読取方法
JP2740418B2 (ja) バーコード読取復調方法
JP4416980B2 (ja) バーコード読取装置およびバーコード読取方法
JPH0354388B2 (ja)
JP3324374B2 (ja) バーコード復調方法並びにバーコード読取装置
US6299064B2 (en) Apparatus and method for correcting bar width, bar code reader, and method for decoding bar code
JP2718442B2 (ja) バーコード復調方法及び装置
JP2729168B2 (ja) バーコードおよびバーコード読取装置およびその読取方法
JP2009123096A (ja) 光学的情報読取装置
JPH0786904B2 (ja) バ−コ−ド復調方式
JP2953143B2 (ja) バーコード読取装置およびバーコード読取方法
JP2766768B2 (ja) バーコードデコーダのデコード方法
JP2757654B2 (ja) バーコード復調装置およびバーコード復調方法
JPS61251979A (ja) バ−コ−ド読取り方式
JP2742920B2 (ja) バーコード読取装置
JP2655758B2 (ja) バーコードリーダおよびバーコード読取方法
JP2919469B2 (ja) コード長相関検査装置
JPS60108978A (ja) Upc系バ−コ−ドシンボル復調方式

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