JP3560477B2 - バーコード読取装置及びバーコード読取方法 - Google Patents
バーコード読取装置及びバーコード読取方法 Download PDFInfo
- Publication number
- JP3560477B2 JP3560477B2 JP23781798A JP23781798A JP3560477B2 JP 3560477 B2 JP3560477 B2 JP 3560477B2 JP 23781798 A JP23781798 A JP 23781798A JP 23781798 A JP23781798 A JP 23781798A JP 3560477 B2 JP3560477 B2 JP 3560477B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- demodulated data
- overlapping portion
- characters
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1491—Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1465—Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Cash Registers Or Receiving Machines (AREA)
Description
【発明の属する技術分野】
本発明は、バーコード読取装置及びバーコード読取方法に関し、複数のキャラクタを有するバーコードを分割読み取りによって読み取るバーコード読取装置及びバーコード読取方法に関する。
【0002】
【従来の技術】
近年、流通業等におけるPOSシステムに代表されるように、商品等の管理をバーコードによって行うことが一般化している。例えば、商店のPOSシステムでは、商品の種類や販売価格等の情報をバーコードのフォーマットにコード化して商品に印刷しておく。そして、レジにてこのバーコードを読み取ることによって、精算を行うとともに、商品の売り上げ数をリアルタイムで集計し、在庫管理や仕入れ管理に役立てるようにしている。
【0003】
このようなバーコードは、JANコード,UPCコード,EANコード等のWPCコードと、可変長のセカンドコードに大別される。このうち、WPCコードは、図6に示すように、左端に付加されるスタートガードバー(SGB:「レフトガードバー(LGB)」ともいう),中間部に挿入されるセンターバー(CB),及び、右端に付加されるエンドガードバー(EGB:「ライトガードバー(RGB)」ともいう)を有している。スタートガードバーとセンターバーとの間に6キャラクタ又は4キャラクタのデータキャラクタからなる左側データブロックが格納されている。センターバーとエンドガードバーとの間に6キャラクタ又は4キャラクタのデータキャラクタからなる右側データブロックが格納されている。データキャラクタは、コード化した数値又は記号の最小単位であり、複数個のモジュールからなる。
【0004】
各ガードバー及びセンターバーは、予め規格によってそのパターンが定められているので、バーコードの読取装置は、これらのガードバー及びセンターバーを検知することができる。
【0005】
また、バーコード読取装置は、これらガードバー及びセンターバーを手掛かりに、バーコードのデータキャラクタ(以下、単に「キャラクタ」という)を読み取ることができる。読み取りの方式としては、連続読み取り,ブロック読み取り,及び分割読み取りの3通りの方式がある。連続読み取りとは、1回のバーコード走査によって両ガードバー及びセンターバーを検出した場合に、各バーに挟まれたキャラクタを、バーコードとして認識して復調する方式である。ブロック読み取りとは、一方のガードバーとセンターバーとに挟まれたキャラクタのブロックのみをバーコードとして認識し、2つのブロックを夫々別個に復調した後でこれら各ブロックの復調データを合成(結合)し、1個のバーコードに変調されていたデータを再現する方式である。分割読み取りとは、最小限1個のガードバー又はセンターバーに連接するキャラクタ列であってもバーコードとして認識し、夫々別個に読み出したこれらキャラクタの復調データの断片を合成し、1個のバーコード全体に対応するデータを再現する方式である。
【0006】
分割読み取りには、バーコードに対する走査ビームの通過の仕方によって、図7に示すように、(1)LGBのみを含む復調データと、CB及びRGBを含む復調データとを検出し、これらを合成することによって、バーコード全体のデータを取得する「2分割」(図7(A)参照),(2)LGBのみを含む復調データと、CBのみを含む復調データと、RGBのみを含む復調データとを検出し、これらを合成することによってバーコード全体のデータを取得する「3−1分割」(図7(B)参照),(3)LGBのみを含む復調データと、CBのみを含む復調データと、CB及びRGBを含む復調データとを検出し、これらを合成することによってバーコード全体のデータを取得する「3−2分割」(図7(C)参照)とがある。
【0007】
従来、分割読み取りでは、2つの復調データの合成によってデータブロックの復調データを作成する場合には、以下の手法が取られていた。即ち、左側データブロックを合成により作成する場合には、合成すべき復調データ同士が対比され、重複するキャラクタが2つあり(図7に示す例では、第3,4キャラクタが重複)、且つこれらのキャラクタが同じか否かが判定される。このとき、重複する2つのキャラクタが同じである場合には、復調データ同士が合成される。
【0008】
ここで、上記処理が「2分割」の場合には、この時点でバーコード全体の復調データが得られる。「3−1分割」又は「3−2分割」の場合には、上記処理によって合成された復調データと他の復調データとが合成されることで、バーコード全体の復調データが得られる。その後、バーコード全体の復調データにキャラクタ数チェックやモジュラスチェックが施され、良好なチェック結果が得られた場合には、その復調データは、正常な復調データとして取り扱われていた。
【0009】
【発明が解決しようとする課題】
しかしながら、上記した手法では以下の問題があった。例えば、図8(A)に示すように、各ガードバーとセンターバーとの間に6キャラクタからなるデータブロックが夫々格納されたバーコード(UPC/Aコード)があるとする。このバーコードは、“027000 388150”のデータを有しているものとする。
【0010】
ここで、バーコードが、走査ビーム(a)と走査ビーム(b)とによって走査されたとする。走査ビーム(a)は、左側データブロックの第1キャラクタの途中から入り、センターバー(CB)を通過しないビームである。一方、走査ビーム(b)は、左側データブロックの第4キャラクタからライトガードバー(RGB)までを通過するビームである。このとき、走査ビーム(a)が通過した部分の第1キャラクタの明暗パターンが、レフトガードバー(LGB)の明暗パターンと同じであった場合、第1キャラクタはLGBと誤認される(「ビットシフト」と呼ばれる)。この結果、走査ビーム(a)によって得られる復調データの断片は、LGB,第1キャラクタ(C1(O−2)),第2キャラクタ(C2(O−7)),第3キャラクタ(C3(O−0)),第4キャラクタ(C4(O−0)),及び第5キャラクタ(C5(O−0))となる。一方、走査ビーム(b)によって得られる復調データの断片は、第4キャラクタ(C4(O−0)),第5キャラクタ(C5(O−0)),第6キャラクタ(C6(O−0)),CB,右側データブロックの各キャラクタ,及びRGBとなる。
【0011】
上記した2つの復調データの断片は、左側データブロックの第4,5ブロックについて重複部分を有する。また、左側データブロックの正常なコードは、第4〜6キャラクタが“0”であるので、図8(B)に示すように、重複部分が一致する。このため、これらの復調データの断片が適正なものとして合成されてしまい、誤読データ“270000 388150”が作成されてしまう。
【0012】
その後、この誤読データには、キャラクタ数チェックやモジュラスチェック(モジュラス10/ウェイト3)が施され、正確性に対する判定がなされる。しかし、このエラー復調データは、正確なデータブロックのキャラクタ数,及び正確なモジュラスチェック結果を有する。このため、誤読データであることが検出できなかった。
【0013】
本発明は、上記問題に鑑みなされたものであり、分割読み取りによってバーコードを読み取る場合において、ビットシフトによるバーコードの誤読を防止することができるバーコード読取装置及びバーコード読取方法を提供することを課題とする。
【0014】
【課題を解決するための手段】
本発明は、上述した問題を解決するために以下の構成を採用する。すなわち、本発明は、バーコード読取装置である。このバーコード読取装置は、複数のキャラクタからなるバーコードを2回以上走査し、その走査軌跡におけるバーコードデータを検出するバーコードデータ検出手段と、前記バーコードデータ検出手段によって検出された各バーコードデータを復調する復調手段と、前記復調手段によって復調された復調データのうち、第1の走査軌跡における第1の復調データと第2の走査軌跡における第2の復調データとの重複部分を検出し、この重複部分が所定数のキャラクタからなるかを判定する第1判定手段と、前記第1判定手段によって重複部分が所定数のキャラクタからなると判定された場合に、その重複部分が前記第1の復調データと前記第2の復調データとの間で同一かを判定する第2判定手段と、前記第2判定手段によって重複部分が同一と判定された場合に、この重複部分をなす各キャラクタが同一かを判定する第3判定手段と、前記第3判定手段によって各キャラクタが同一と判定された場合に、前記第1の復調データの重複部分の一つ前に存するキャラクタ,前記第2の復調データの重複部分の一つ後に存するキャラクタ,及び前記重複部分をなす各キャラクタの全てが同一かを判定する第4判定手段とを備える。
【0015】
本発明は、第1の復調データと前記第2の復調データとを合成する合成手段をさらに備え、第4の判定手段によってキャラクタの全てが同一と判定された場合に、前記合成手段が、前記第1の復調データと前記第2の復調データとを合成しないように構成しても良い。
【0016】
また、本発明の第1の判定手段は、重複部分が2つのキャラクタからなる場合に、重複部分が所定数のキャラクタからなると判定するように構成しても良い。本発明によると、第4判定手段が、第1の復調データの重複部分の一つ前に存するキャラクタ,第2の復調データの重複部分の一つ後に存するキャラクタ,及び重複部分をなす各キャラクタの全てが同一かを判定する。このとき、全てのキャラクタが同一である場合には、ビットシフトによる誤読が生じている可能性が高い。従って、例えば、第4判定手段によって全てのキャラクタが同一と判定された場合には、合成手段が第1の復調データと第2の復調データとを合成しないようにすれば、ビットシフトによるバーコードの誤読を防止することができる。
【0017】
第4判定手段は、第1の復調データの重複部分の一つ前に存するキャラクタのさらに一つ前に存するキャラクタがさらに同一であるかを判定しても良く、また、第2の復調データの重複部分の一つ後に存するキャラクタのさらに一つ後に存するキャラクタがさらに同一であるかを判定しても良い。
【0018】
バーコードは、例えば、WPCコード,EANコード,JANコード,UPCコードであって、4キャラクタ以上のデータブロックをもつものであれば良い。特に、本発明は、例えば、EAN−13コード,又はUPC/Aコードについて用いるのが好ましい。
【0019】
本発明は、バーコード読取方法である。このバーコード読取方法は、複数のキャラクタからなるバーコードを2回以上走査し、その走査軌跡における各キャラクタのバーコードデータを検出する第1のステップと、第1のステップにて検出した各バーコードデータを復調する第2のステップと、第2のステップにて復調した復調データのうち、第1の走査軌跡における第1の復調データと、第2の走査軌跡における第2の復調データとを対比し、両者間に重複部分がある場合に、この重複部分が所定数のキャラクタからなるかを判定する第3のステップと、第3のステップにて重複部分が所定数のキャラクタからなると判定した場合に、その重複部分が前記第1の復調データと前記第2の復調データとの間で同一かを判定する第4のステップと、第4のステップにて重複部分が同一と判定された場合に、この重複部分をなす各キャラクタが同一かを判定する第5のステップと、第5のステップにて各キャラクタが同一と判定した場合に、前記第1の復調データの重複部分の一つ前に存するキャラクタ,前記第2の復調データの重複部分の一つ後に存するキャラクタ,及び前記重複部分をなす各キャラクタの全てが同一かを判定する第6のステップとを含む。
【0020】
本発明の読取方法は、第1の復調データと前記第2の復調データとを合成する第7のステップをさらに含み、第6のステップにてキャラクタの全てが同一と判定された場合には、第7のステップを行わないようにするのが好ましい。
【0021】
【発明の実施の形態】
以下、本発明の実施形態を図面を参照して説明する。
〈バーコード読取装置の構成〉
図1は、本発明の実施形態によるバーコード読取装置の概略構成を示すブロック図である。本実施形態におけるバーコード読取装置は、WPCコードのUPC/A,EAN−13に従ったバーコード21を読み取る。バーコード21は、レフトガードバー(スタートガードバー)及びライトガードバー(エンドガードバー)の各ガードバーと、センターバーとを有し、各ガードバーとセンターバーとの間に夫々挟まれた6キャラクタからなるデータブロック(左側データブロック,右側データブロック)を有している(図6参照)。
【0022】
図1において、バーコード読取装置は、互いにバスBによって接続されたCPU1,バー幅データ群格納バッファ2,制御部回路3,インタフェース回路4,ROM5及びRAM6,バー幅データ群格納バッファ2に接続されたバー幅カウンタ16,バー幅カウンタ16に接続されたクロック19及びA/D変換器15,このA/D変換器15に接続された受光素子18,制御部回路3に夫々接続されたモータ駆動回路8,レーザ駆動回路9,スピーカ10及びLED11,モータ駆動回路8に接続されたモータ12,このモータ12によって駆動される走査光学系14,並びに、レーザ駆動回路9に接続された半導体レーザ13からなる。
【0023】
ROM5は、バーコード認識/復調処理プログラムを格納している読み出し専用メモリである。CPU1は、ROM5内に格納されているバーコード認識/復調処理プログラムを実行することにより、バーコード読取装置全体の制御を行うとともに、バーコード21を読み取って得られたバー幅データ群を夫々復調し、バーコード21全体に対応するデータを再現する。このCPU1が、本発明の復調手段,第1〜第4の判定手段として機能する。
【0024】
インタフェース回路4は、バスBのステータスを制御したり、上位機(上位コンピュータ)201へのデータ送信等を制御したりする。
制御部回路3は、モータ駆動回路8,レーザ駆動回路9,スピーカ10,及び発光ダイオード(LED)11を制御する。モータ駆動回路8は、モータ12を駆動して、走査光学系14を構成する図示せぬポリゴンミラーを回転させる。レーザ駆動回路9は、半導体レーザ13を駆動して、レーザビームLを出射させる。スピーカ10は、バーコードの読取(復調)完了を示す音声を発する。発光ダイオード11は、バーコード21の復調の結果得られた商品20の販売価格等の情報を表示する表示素子である。
【0025】
半導体レーザ13から出射されたレーザビームLは、走査光学系14に入射され、この走査光学系14によって偏向される。即ち、この走査光学系14は、モータ12によって回転する図示せぬポリゴンミラーによってレーザビームLを一方向に偏向する。このポリゴンミラーの反射側には、複数の固定ミラーが固定されている。従って、ポリゴンミラーによって偏向されたレーザビームLは、各固定ミラーによって再度反射され、その偏向方向(走査方向)が様々な方向に変えられる。この走査光学系14によると、ポリゴンミラーの一反射面による偏向周期内で、複数の方向へのレーザビーム走査が連続的に高速で行われる。このポリゴンミラーの一反射面による偏向周期内でなされる複数のレーザビーム走査の夫々を、以下、「一走査」という。
【0026】
このようにして走査されたレーザビームLがバーコード21に当たると、この表面においてレーザビームLが乱反射され、その反射光Rの一部が受光素子(ホトダイオード)18に受光される。A/D変換器15は、この受光素子18によって受光された反射光Rの明暗を示す電流値を、所定のしきい値と比較して、二値化信号に変換する。この二値化信号は、反射光Rの強度がバーコード21中の黒バーの反射率に対応する場合には“H”を示し、反射光Rの強度がバーコード21中の白バーの反射率に対応する場合には“L”を示す。
【0027】
バー幅カウンタ16は、A/D変換器15から入力された二値化信号に基づいて、二値化信号の立ち上がりタイミングから立ち下がりタイミングまでの時間(二段バーコード21中の黒バーの幅に対応するものと期待される),及び、二値化信号の立ち下がりタイミングから立ち上がりタイミングまでの時間(二段バーコード21中の白バーの幅に対応するものと期待される)を測定する。なお、バー幅カウンタ16は、これらバー幅に対応する時間を計測するためにクロック19からのクロック数をカウントする。バー幅カウンタ16から出力される各バーの読取データ(バーコードデータ)は、このカウント値と白又は黒を示す色識別信号とを組み合わせた形態であり、レーザービームの一走査毎に、このような読取データが連続的に出力される。このように連続的に出力される一走査毎の読取データを「バー幅データ群」という。
【0028】
バー幅データ群は、バー幅データ群格納バッファ2に一時格納される。このバー幅データ群格納バッファ2は、バー幅カウンタ16から入力されたバー幅データ群を順次格納するとともに、CPU1からの求めに応じて、格納した順に一個づつこのバー幅データ群をCPU1に渡す。
【0029】
なお、上述した制御部回路3,モータ駆動回路8,レーザ駆動回路9,モータ12,半導体レーザ13,走査光学系14,A/D変換器15,バー幅カウンタ16,受光素子18,クロック19,バー幅データ格納バッファ2が、本発明のバーコードデータ検出手段に相当する。
【0030】
RAM6には、CPU1の作業領域が展開される。また、RAM4は、バー幅データ群に対する復調処理の結果得られた復調データを一時的に格納するためのLバッファ6a,Rバッファ6b,及びCバッファ6cを有している。Lバッファ6aには、レフトガードバーを検出した復調データ,又は一回の走査でレフトガードバー及びライトガードバーを検出した復調データが格納される。Rバッファ6bには、レフトガードバーは検出していないがライトガードバーを検出した復調データが格納される。Cバッファ6cには、センターバーを検出したが各ガードバーを検出していない復調データが格納される。
【0031】
図2は、各バッファ6a〜6cの説明図である。図2に示すように、各バッファ6a〜6cは、15バイトの記憶容量を有し、格納情報(1バイト),左側データブロックの復調桁数(1バイト),右側データブロックの復調桁数(1バイト),左側データブロックの復調データ(6バイト),右側データブロックの復調データ(6バイト)を夫々格納するための格納領域が設けられている。
【0032】
ここに、格納情報の格納領域には、復調完了データの格納の有無を示すフラグ,復調データのモジュラスチェック結果を示すフラグ,復調データがデッドゾーンのデータか否かを示すフラグ,等が格納される。
【0033】
左側データブロックの復調桁数の格納領域には、左側データブロックの復調データの格納領域に格納される復調データの桁数(キャラクタ数:“1”〜“6”の何れか)が格納される。但し、復調データがレフトガードバー及びセンターバーを検出したものである場合には、この復調データとレフトガードバー及び左側データブロックの全てのキャラクタを検出したがセンターバーを検出していない復調データとを区別するため、“7”が格納される。
【0034】
右側データブロックの復調桁数の格納領域には、右側データブロックの復調データの格納領域に格納される復調データの桁数(キャラクタ数:“1”〜“6”の何れか)が、格納される。但し、復調データがライトガードバー及びセンターバーを検出したものである場合には、この復調データとライトガードバー及び右側データブロックの全てのキャラクタを検出したがセンターバーを検出していない復調データとを区別するため、“7”が格納される。
【0035】
左側データブロック及び右側データブロックの各復調データの格納領域には、復調データがキャラクタの位置に応じて格納される。
〈バーコード認識/復調処理〉
次に、ROM5に格納されCPU1によって実行されるバーコード認識/復調処理プログラムの具体的内容を、図3及び図4のフローチャートに基づいて説明する。このバーコード認識/復調処理のメインルーチンである図3のフローチャートは、バーコード読取装置に主電源が投入され、バー幅データ群格納バッファ2にバー幅データ群が格納されることによりスタートする。
【0036】
最初に、CPU1は、バー幅データ群格納バッファ2から、複数のバー幅データ群を順次取り出し、各バー幅データ群に対する復調処理を実行する(S01)。即ち、CPU1は、各バー幅データ群からスタートガードバー(レフトガードバー),センターバー,エンドガードバー(ライトガードバー)の検出を行い、何れかのバーを検出した場合には、そのバー幅データのキャラクタ長チェックを行い、その有効キャラクタ数を算出し、有効キャラクタ数分の復調データを復調する。
【0037】
続いて、CPU1は、ステップS01にて復調された復調データを、その復調データの状態(各ガードバー又はセンターバーの検出状態)に応じて、Lバッファ6a,Rバッファ6b,Cバッファ6cの何れかに格納する(S02)。
【0038】
次に、CPU1は、各バッファ6a〜6cに格納された復調データの合成方法を、各バッファ6a〜6cに格納された各データブロックの復調桁数に基づいて判別する(S03)。即ち、Lバッファ6aにおける左側データブロックの復調桁数及び右側データブロックの復調桁数がともに“7”である場合には、CPU1は、Lバッファ6aに格納された復調データが一回の走査で各ガードバー及びセンターバーが検出された(バーコード全体が検出された)ものとして、合成方法を連続読み取りと判別する。これに対し、Lバッファ6aの左側データブロックの復調桁数が“7”であり、且つRバッファ6bの右側データブロックの復調桁数が“7”である場合には、CPU1は、合成方法をブロック読み取りと判別する。
【0039】
これに対し、Lバッファ6aの左側データブロックの復調桁数と、Rバッファ6bの左側データブロックの復調桁数とがともに“7”であり、且つLバッファ6aの右側データブロックの復調桁数とRバッファ6bの右側データブロックの復調桁数との和,及びLバッファ6aの左側データブロックの復調桁数とRバッファ6bの左側データブロックの復調桁数との和がともに“8”以上である場合には、CPU1は、合成方法を「2分割」と判別する。
【0040】
また、Lバッファ6aの左側データブロックの復調桁数とCバッファ6cの左側データブロックの復調桁数との和,Cバッファ6cの右側データブロックの復調桁数とRバッファ6bの右側データブロックの復調桁数との和がともに“8”以上である場合には、CPU1は、合成方法を「3−1分割」と判別する。
【0041】
また、Lバッファ6aの左側データブロックの復調桁数とRバッファ6bの右側データブロックの復調桁数とがともに“7”であり、且つCバッファ6cの右側データブロックの復調桁数とRバッファ6bの右側データブロックの復調桁数との和が“8”以上である場合には、CPU1は、合成方法を「3−2分割」と判別する。
【0042】
次に、CPU1は、ステップS03での判別結果が連続読み取りか否か判定する(S04)。このとき、判別結果が連続読み取りである場合(S04;Y)には、CPU1は、処理をステップS09へ進め、そうでない場合(S04;N)には、CPU1は処理をステップS05に進める。
【0043】
CPU1が処理をステップS05に進めた場合、CPU1は、ステップS03での判別結果がブロック読み取りか否かを判別する。このとき、判別結果がブロック読み取りである場合(S05;Y)には、CPU1は処理をステップS08へ進め、そうでない場合(S05;N)には、CPU1は、判別結果が分割読み取りであるものとして、処理をステップS06に進める。
【0044】
CPU1が処理をステップS06に進めた場合、CPU1は、重複部チェックのサブルーチン(図4のフローチャート)を実行する。図4において、最初に、CPU1は、合成方法の判別結果に従って、合成すべき(対比すべき)二つの復調データを特定する(S001)。
【0045】
このとき、合成方法が「2分割」である場合には、CPU1は、Lバッファ6a内の復調データを一方の復調データ(本発明の第1の復調データに相当)として特定するとともに、Rバッファ6b内の復調データを他方の復調データ(本発明の第2の復調データに相当)として特定する。これに対し、合成方法が「3−2分割」である場合には、CPU1は、Lバッファ6a内の復調データを一方の復調データとして特定するとともに、Cバッファ6c内の復調データを他方の復調データとして特定する。
【0046】
これに対し、合成方法が「3−1分割」である場合には、CPU1は、以下の処理を行う。即ち、CPU1は、所定の重複部チェックの終了フラグの状態を読み取る。このとき、終了フラグが“0”である場合、CPU1は、Lバッファ6a内の復調データを一方の復調データとして特定するとともに、Cバッファ6c内の復調データを他方の復調データとして特定する。これに対し、終了フラグが“1”である場合、CPU1は、Cバッファ6c内の復調データを一方の復調データとして特定するとともに、Rバッファ6b内の復調データを他方の復調データとして特定する。
【0047】
なお、終了フラグは、このサブルーチンの実行の終了時に“0”に設定されるようになっている。
続いて、CPU1は、ステップS001にて特定された2つの復調データを対比し、合成されるデータブロック間に重複部分(重複する桁(キャラクタ))が存するか否かを判定する(S002)。このとき、重複部分がない場合(S002;N)には、CPU1は、重複部チェックがNGであるものと判定し(S008)、このサブルーチンの実行を終了する。これに対し、重複部分がある場合(S002;Y)には、CPU1は、処理をステップS003へ進める。
【0048】
CPU1が処理をステップS003へ進めた場合、CPU1は、重複部分がキャラクタ2つ分か否かを判定する。このとき、重複部分がキャラクタ2つ分でない場合(S003;N)には、CPU1は、重複部チェックがNGであるものと判定し(S008)、このサブルーチンの実行を終了する。これに対し、重複部分がキャラクタ2つ分である場合(S003;Y)には、CPU1は、処理をステップS004へ進める。
【0049】
CPU1が処理をステップS004へ進めた場合、CPU1は、重複部分が同一か否かが判定される。このとき、重複部分が同一でない場合(S004;N)には、CPU1は、重複部チェックがNGであるものと判定し(S008)、このサブルーチンの実行を終了する。これに対し、重複部分が同一である場合(S004;Y)には、CPU1は、処理をステップS005へ進める。
【0050】
CPU1が処理をステップS005へ進めた場合、CPU1は、一方又は他方の復調データの重複部分をなす2つのキャラクタが同一か否かを判定する。このとき、2つのキャラクタが同一でない場合(S005;N)には、CPU1は、処理をステップS007へ進める。これに対し、2つのキャラクタが同一である場合(S006;Y)には、CPU1は、処理をステップS006へ進める。
【0051】
CPU1が処理をステップS006へ進めた場合、CPU1は、一方の復調データの重複部分の左隣に存するキャラクタ,他方の復調データの重複部分の右隣に存するキャラクタ,及び一方又は他方の復調データの重複部分をなす各キャラクタの全てが同一か否かを判定する。このとき、全てのキャラクタが同一である場合(S006;Y)には、CPU1は、復調データがビットシフトによる誤読データであるものとして、重複部チェックがNGであるものと判定し(S008)、このサブルーチンの実行を終了する。これに対し、全てのキャラクタが同一でない場合(S006;N)には、CPU1は、処理をステップS007へ進める。
【0052】
CPU1が処理をステップS007へ進めた場合、CPU1は、一方の復調データと他方の復調データが合成(結合)のための条件を満たしているものとして、重複部チェックがOKであると判定し、処理をステップS009へ進める。
【0053】
CPU1が処理をステップS009へ進めた場合、CPU1は、ステップS03での判別結果が「3−1分割」か否かを判定する。このとき、判別結果が「3−1分割」でない場合(S009;N)には、CPU1は、このサブルーチンの実行を終了する。これに対し、判別結果が「3−1分割」である場合(S009;Y)には、CPU1は、処理をステップS010へ進める。
【0054】
CPU1が処理をステップS010へ進めた場合、CPU1は、重複部チェックの終了フラグが“1”か否かを判定する。このとき、終了フラグが“1”である場合(S010;Y)には、CPU1は、「3−1分割」における2箇所の重複部チェックが終了したものとして、このサブルーチンの実行を終了する。これに対し、終了フラグが“1”でない(“0”である)場合(S010;Y)には、CPU1は、終了フラグを“1”に設定した後(S011)、処理をステップS001へ戻す。
【0055】
図5は、重複部チェックのサブルーチンによる処理の具体例を示す説明図である。図5に示す例では、ステップS001の処理によって、左側データブロックの第1〜第5キャラクタ“・・XAB”の復調データが、一方の復調データとして特定され、左側データブロックの第4〜第6キャラクタ“CDY”を含む復調データが、他方の復調データとして特定されたものとする。
【0056】
この場合、一方の復調データの“AB”と他方の復調データの“CD”とが重複部分として特定され(S002;Y)、重複部分がキャラクタ2つ分であると判定される(S003;Y)。次に、重複部分“AB”と重複部分“CD”とが同一か否かが判定される(S004)。このとき、“AB”と“CD”とが同一である場合(S004;Y)には、重複部分“AB”をなす2つのキャラクタ,即ち、“A”と“B”とが同一か否かが判定される(S005)。このとき、“A”と“B”とが同一と判定された場合(S005;Y)には、“C”と“D”とが同一として取り扱われる。
【0057】
その後、重複部分“AB”の左隣のキャラクタ(第3キャラクタ)“X”と“A”(又は“B”)とが同一であり、且つ重複部分“CD”の右隣のキャラクタ(第6キャラクタ)“Y”と“A”(“B”,“C”,“D”の何れか)とが同一か否かが判定される(S006)。このとき、“X”=“A”(“B”,“C”,“D”の何れか)=“Y”が成立する場合(S006;Y)には、ステップS008にて、重複部チェックがNGであるとの判定がなされる。
【0058】
重複部チェックのサブルーチンが終了した場合、CPU1は、メインルーチン(図3参照)のステップS07へ処理を進める。ステップS07では、CPU1は、重複部チェック結果がOKかNGかを判定する。このとき、チェック結果がNGの場合(S07;NG)には、CPU1は、処理をステップS11へ進める。これに対し、チェック結果がOKの場合(S07;OK)には、CPU1は、処理をステップS08へ進める。
【0059】
ステップS08では、CPU1は、各バッファ6a〜6cに格納された復調データの合成処理(ペアリング)を行い、バーコード全体の復調データを作成する。続いて、CPU1は、ステップS08にて作成された復調データについてモジュラス10チェックを行い、このチェック結果がOKかNGかを判定する(S09)。このとき、チェック結果がOKである場合(S09;OK)には、CPU1は、処理をS10へ進める。これに対し、チェック結果がNGである場合(S09;NG)には、CPU1は、処理をS11へ進める。
【0060】
処理がステップS10に進んだ場合、CPU1は、バーコード21の読み取りがOKであるものとして、バーコード21の読み取り完了の音声をスピーカ10に発生させるとともに、バーコード21の復調結果に基づく情報を発行ダイオード11に表示させる。そして、CPU1は、バーコード21の復調結果を上位機201へ転送するための命令を、インターフェイス回路4に与える。その後、CPU1は、メインルーチンの処理を終了する。
【0061】
処理がステップS11に進んだ場合、CPU1は、バーコード21の読み取りがNGであるものとして、バーコード21の読み取り完了の音声を、スピーカ10に発生させるとともに、バーコード21の復調がNGである旨(読み取りNGである旨)を、発行ダイオード11に表示させる。その後、CPU1は、メインルーチンの処理を終了する。
【0062】
〈実施形態の作用〉
本発明の実施形態によるバーコード読取装置によると、重複部チェック処理(図4参照)において、一方の復調データの重複部分の左隣に存するキャラクタ,他方の復調データの重複部分の右隣に存するキャラクタ,及び一方又は他方の復調データの重複部分をなす各キャラクタの全てが同一である場合には、復調データがビットシフトによる誤読データであるものとして取り扱われ、バーコード21の読取がNGとされる。
【0063】
即ち、図8に示した例では、合成後の第3〜第6キャラクタが全て同じ“0”であるため、復調データの合成条件を満たさないものとして取り扱われる。このため、このバーコード21の読取は、他のバー幅データ群を用いた復調・合成処理によって行われる。従って、分割読取を行う場合に、ビットシフトによるバーコード21の誤読を防止することができる。
【0064】
【発明の効果】
本発明によるバーコード読取装置及びバーコード読取方法によると、分割読取によってバーコードを読み取る場合において、ビットシフトによるバーコードの誤読を防止することができる。
【図面の簡単な説明】
【図1】本発明の実施形態によるバーコード読取装置の構成図
【図2】図1に示した各バッファの説明図
【図3】図1に示したCPUによる処理を示すフローチャート
【図4】図3に示した重複部チェック処理を示すフローチャート
【図5】図4に示した重複部チェック処理の具体例を示す説明図
【図6】WPCコードの説明図
【図7】分割読取の説明図
【図8】従来の問題点を示す図
【符号の説明】
1 CPU(復調手段,第1〜第4判定手段)
2 バー幅データ格納バッファ
3 制御部回路
5 ROM
6 RAM
6a Lバッファ
6b Rバッファ
6c Cバッファ
8 モータ駆動回路
9 レーザ駆動回路
12 モータ
13 半導体レーザ
14 走査光学系
15 A/D変換器
16 バー幅カウンタ
19 クロック
18 受光素子
21 バーコード
Claims (6)
- 複数のキャラクタからなるバーコードを2回以上走査し、その走査軌跡におけるバーコードデータを検出するバーコードデータ検出手段と、
前記バーコードデータ検出手段によって検出された各バーコードデータを復調する復調手段と、
前記復調手段によって復調された復調データのうち、第1の走査軌跡における第1の復調データと、第2の走査軌跡における第2の復調データとの重複部分を検出し、この重複部分が所定数のキャラクタからなるかを判定する第1判定手段と、
前記第1判定手段によって重複部分が所定数のキャラクタからなると判定された場合に、その重複部分が前記第1の復調データと前記第2の復調データとの間で同一かを判定する第2判定手段と、
前記第2判定手段によって重複部分が同一と判定された場合に、この重複部分をなす各キャラクタが同一かを判定する第3判定手段と、
前記第3判定手段によって各キャラクタが同一と判定された場合に、前記第1の復調データの重複部分の一つ前に存するキャラクタ,前記第2の復調データの重複部分の一つ後に存するキャラクタ,及び前記重複部分をなす各キャラクタの全てが同一かを判定する第4判定手段と
を備えたことを特徴とするバーコード読取装置。 - 前記第1の復調データと前記第2の復調データとを合成する合成手段をさらに備え、
前記第4の判定手段によってキャラクタの全てが同一と判定された場合に、前記合成手段が、前記第1の復調データと前記第2の復調データとを合成しない
ことを特徴とする請求項1記載のバーコード読取装置。 - 前記バーコードが、EAN−13コード,又はUPC/Aコードである
ことを特徴とする請求項1記載のバーコード読取装置。 - 前記第1の判定手段は、前記重複部分が2つのキャラクタからなる場合に、前記重複部分が所定数のキャラクタからなると判定する
ことを特徴とする請求項1記載のバーコード読取装置。 - 複数のキャラクタからなるバーコードを2回以上走査し、その走査軌跡における各キャラクタのバーコードデータを検出する第1のステップと、
前記第1のステップにて検出した各バーコードデータを復調する第2のステップと、
前記第2のステップにて復調した復調データのうち、第1の走査軌跡における第1の復調データと、第2の走査軌跡における第2の復調データとを対比し、両者間に重複部分がある場合に、この重複部分が所定数のキャラクタからなるかを判定する第3のステップと、
前記第3のステップにて重複部分が所定数のキャラクタからなると判定した場合に、その重複部分が前記第1の復調データと前記第2の復調データとの間で同一かを判定する第4のステップと、
前記第4のステップにて重複部分が同一と判定された場合に、この重複部分をなす各キャラクタが同一かを判定する第5のステップと、
前記第5のステップにて各キャラクタが同一と判定した場合に、前記第1の復調データの重複部分の一つ前に存するキャラクタ,前記第2の復調データの重複部分の一つ後に存するキャラクタ,及び前記重複部分をなす各キャラクタの全てが同一かを判定する第6のステップと
を含むバーコード読取方法。 - 前記第1の復調データと前記第2の復調データとを合成する第7のステップをさらに含み、
前記第6のステップにてキャラクタの全てが同一と判定された場合には、前記第7のステップを行わない
ことを特徴とする請求項5記載のバーコード読取方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23781798A JP3560477B2 (ja) | 1998-08-24 | 1998-08-24 | バーコード読取装置及びバーコード読取方法 |
DE69925925T DE69925925T2 (de) | 1998-08-24 | 1999-02-04 | Barcodeleser und barleseverfahren |
EP99901940A EP1117059B1 (en) | 1998-08-24 | 1999-02-04 | Bar code reader and bar code reading method |
PCT/JP1999/000482 WO2000011594A1 (fr) | 1998-08-24 | 1999-02-04 | Lecteur de codes a barres et procede de lecture de codes a barres |
US09/790,817 US6695210B2 (en) | 1998-08-24 | 2001-02-23 | Bar code reader and bar code reading method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23781798A JP3560477B2 (ja) | 1998-08-24 | 1998-08-24 | バーコード読取装置及びバーコード読取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000067154A JP2000067154A (ja) | 2000-03-03 |
JP3560477B2 true JP3560477B2 (ja) | 2004-09-02 |
Family
ID=17020851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23781798A Expired - Fee Related JP3560477B2 (ja) | 1998-08-24 | 1998-08-24 | バーコード読取装置及びバーコード読取方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6695210B2 (ja) |
EP (1) | EP1117059B1 (ja) |
JP (1) | JP3560477B2 (ja) |
DE (1) | DE69925925T2 (ja) |
WO (1) | WO2000011594A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004017504A1 (de) * | 2004-04-08 | 2005-10-27 | Sick Ag | Verfahren und Vorrichtung zum Lesen eines Strichcodes |
CN103745523A (zh) * | 2013-12-26 | 2014-04-23 | 北京中科金财科技股份有限公司 | 一种票据混合隐形防伪信息识别装置及识别方法 |
CN104182711B (zh) * | 2014-08-21 | 2017-06-06 | 深圳市兴通物联科技有限公司 | 防泄密的方法及激光条码扫描平台 |
US10460141B2 (en) * | 2016-05-31 | 2019-10-29 | University Of Rochester | Per-channel color barcodes for displays |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6373488A (ja) * | 1986-09-17 | 1988-04-04 | Fujitsu Ltd | バ−コ−ド読取方式 |
DE3854885T2 (de) * | 1987-09-28 | 1996-05-15 | Sumitomo Electric Industries | Kombinieren von gelesenen Strichcode-Daten |
JP2725221B2 (ja) | 1991-12-12 | 1998-03-11 | 松下電器産業株式会社 | バーコードリーダ |
US5296691A (en) * | 1992-09-14 | 1994-03-22 | Lazerdata Corporation | Scanning device for reconstructing a complete code from scanned segments |
US5493108A (en) * | 1992-10-14 | 1996-02-20 | Spectra-Physics Scanning Systems, Inc. | Method and apparatus for recognizing and assembling optical code information from partially scanned segments |
US5457308A (en) * | 1993-09-14 | 1995-10-10 | Symbol Technologies, Inc. | Bar code scan stitching |
JP3470738B2 (ja) * | 1995-09-14 | 2003-11-25 | 富士通株式会社 | バーコード読取装置及びバーコード読取方法 |
JPH09179927A (ja) * | 1995-12-26 | 1997-07-11 | Fujitsu Ltd | バーコード読取装置 |
JP3576356B2 (ja) * | 1997-08-08 | 2004-10-13 | 富士通株式会社 | バーコード読取装置,バーコード読取方法,及びコンピュータ可読媒体 |
JPH1166222A (ja) * | 1997-08-19 | 1999-03-09 | Fujitsu Ltd | バーコード読取装置,バーコード読取方法,及びコンピュータ可読媒体 |
JP2001076088A (ja) * | 1999-09-02 | 2001-03-23 | Nec Eng Ltd | バーコード読取装置、方法、読取プログラム記録媒体 |
-
1998
- 1998-08-24 JP JP23781798A patent/JP3560477B2/ja not_active Expired - Fee Related
-
1999
- 1999-02-04 DE DE69925925T patent/DE69925925T2/de not_active Expired - Lifetime
- 1999-02-04 EP EP99901940A patent/EP1117059B1/en not_active Expired - Lifetime
- 1999-02-04 WO PCT/JP1999/000482 patent/WO2000011594A1/ja active IP Right Grant
-
2001
- 2001-02-23 US US09/790,817 patent/US6695210B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1117059A4 (en) | 2004-03-31 |
WO2000011594A1 (fr) | 2000-03-02 |
US20010006192A1 (en) | 2001-07-05 |
DE69925925T2 (de) | 2005-11-24 |
EP1117059B1 (en) | 2005-06-22 |
EP1117059A1 (en) | 2001-07-18 |
US6695210B2 (en) | 2004-02-24 |
DE69925925D1 (de) | 2005-07-28 |
JP2000067154A (ja) | 2000-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4868375A (en) | Method for changing the functions of a bar code reader | |
US6321987B1 (en) | Bar code reading apparatus for reading plural code systems | |
US5493108A (en) | Method and apparatus for recognizing and assembling optical code information from partially scanned segments | |
US6247646B1 (en) | Bar code reader, and bar code reading method | |
KR100319414B1 (ko) | 바코드판독방법 | |
JPH10134130A (ja) | バーコード読取方法およびバーコード読取装置 | |
EP0896291B1 (en) | Bar code reader | |
JP3514982B2 (ja) | バーコード読取装置及びバーコード読取方法 | |
JP3560477B2 (ja) | バーコード読取装置及びバーコード読取方法 | |
US6299064B2 (en) | Apparatus and method for correcting bar width, bar code reader, and method for decoding bar code | |
US6283370B1 (en) | Bar code reader, bar code reading method and computer readable medium | |
JPH09161001A (ja) | バーコード読取装置 | |
KR100308415B1 (ko) | 바코드판독장치,바코드판독방법및컴퓨터판독가능매체 | |
JP3448404B2 (ja) | バーコード読取装置及びバーコード読取方法 | |
US5519199A (en) | Method and apparatus for detecting and storing bar bode data and re-detecting undetected data | |
US7021546B2 (en) | Bar-code reader and method of reading bar-code | |
JP2004234264A (ja) | バーコードラベル | |
JP2741404B2 (ja) | バーコード読取装置 | |
JP2001216464A (ja) | バーコード | |
JP2953143B2 (ja) | バーコード読取装置およびバーコード読取方法 | |
JP2783234B2 (ja) | バーコード読取装置 | |
JPH0887563A (ja) | コード読取装置 | |
JPH08180126A (ja) | バーコード読取方法およびバーコード読取装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
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: 20040518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040525 |
|
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: 20090604 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100604 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110604 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120604 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120604 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130604 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140604 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |