(57)【要約】【課題】取り込んだバーコードの画像が、バーのエッジ部分で不鮮明であったとしても、より正確に解読する。【解決手段】画像検出手段によって取り込んだバーコードの画像において、明暗の境界を中心にしてその両側の所定長さ範囲を明暗のはっきりしない境界エラー範囲とし、１ワードコードを構成する各モジュールの中心を初期位置からその両側に移動させたとき、境界エラー範囲に入る境界モジュール数が所定条件を満たした時の状態で正規化明暗パターンを作成し、この正規化明暗パターンを解読対象とするので、取り込んだバーコードの画像において、バーのエッジ部が不鮮明であっても、より正確にバーコードを解読することができる。【選択図】　図５
2004094471.tif 000002
【特許請求の範囲】
【請求項１】
画像検出手段により読み取り対象であるバーコードの画像を取り込み、この画像検出手段から多段階のレベルの信号として出力される画像信号を画像データとして記憶し、この記憶した画像データに基づいてバーコードを解読するバーコード読取方法において、
前記多段階レベルの画像データを明または暗に分けて明暗の境界位置を検出した後、バーコードを構成する複数のコードワードの各々について、以下の（１）ないし（５）の動作を実行して各コードワードを構成するモジュールの明暗を正規化し、この正規化された明暗パターンに対して解読処理を行うことを特徴とするバーコード読取方法。
（１）前記多段階レベルの画像データを明または暗に分けたときの明暗パターンを取り込み時明暗パターンとしたとき、この取り込み時明暗パターンでの１コードワードにおける明暗の境界を中心としたその両側の所定長さ範囲を境界エラー範囲として設定する。
（２）前記取り込み時明暗パターンにおいて、バーコードの種類毎に定められた数のバーによって構成されている１コードワードの長さを算出し、当該１コードワードの長さと１コードワードのモジュール数とから１モジュールの長さを算出する。
（３）前記取り込み時明暗パターンにおいて、１コードワードを１モジュールの長さ毎に区切って各モジュールの中心の位置を初期位置として検出する。
（４）１コードワードを構成する各モジュールの中心を前記初期位置からその両側に各回で移動量が異なるように複数回移動させ、中心が前記境界エラー範囲に位置したモジュールの数を境界モジュール数として移動量が０の前記初期位置を含めて移動量毎にカウントする。
（５）前記境界モジュール数が所定条件を満たしたときの移動量での各モジュールの中心と前記取り込み時明暗パターンとを比較し、各モジュールの明暗を、その中心が位置する取り込み時明暗パターンの明暗と同じに定めて正規化された明暗パターンを作成する。
【請求項２】
前記（１）ないし（５）の動作は、前記多段階レベルの画像データを明または暗に分けた前記取り込み時明暗パターンに基づいてバーコードの種類を判別した後に実行することを特徴とする請求項１記載のバーコード読取方法。
【請求項３】
前記取り込み時明暗パターンの明暗の境界は、明暗の変化が最大となる位置としたことを特徴とする請求項１または２記載のバーコード読取方法。
【請求項４】
１コードワードを構成する各モジュールの中心を前記初期位置から両側に各回で移動量が異なるように複数回移動させ、中心が前記境界エラー範囲に位置したモジュールの数を境界モジュール数として初期位置を含めて移動量毎にカウントする前記（３）の動作は、境界モジュール数が所定の中止条件を満たした時点で中止することを特徴とする請求項１ないし３のいずれかに記載のバーコード読取方法。
【請求項５】
前記境界モジュール数が所定条件を満たす移動量が複数あったとき、移動量の小さい方を採用して前記（５）の動作を行うことを特徴とする請求項１ないし４のいずれかに記載のバーコード読取方法。
【請求項６】
画像検出手段により読み取り対象であるバーコードの画像を取り込み、この画像検出手段から多段階のレベルの信号として出力される画像信号を画像データとして記憶し、この記憶した画像データに基づいてバーコードを解読するバーコード読取装置において、
前記多段階レベルの画像データを明または暗に分けて明暗の境界位置を検出する明暗検出手段と、
前記多段階レベルの画像データを明または暗に分けたときの明暗パターンを取り込み時明暗パターンとしたとき、この取り込み時明暗パターンでの１コードワードにおける明暗の境界を中心としたその両側の所定長さ範囲を境界エラー範囲として設定する境界エラー範囲設定手段と、
前記取り込み時明暗パターンにおいて、バーコードの種類毎に定められた数の明暗バーによって構成されている１コードワードの長さを算出して当該１コードワードの長さと１コードワードのモジュール数とから１モジュールの長さを算出するモジュール長算出手段と、
前記取り込み時明暗パターンにおいて、１コードワードを１モジュールの長さ毎に区切って各モジュールの中心の位置を初期位置として検出するモジュール位置検出手段と、
１コードワードを構成する各モジュールの中心を前記初期位置からその両側に各回で移動量が異なるように複数回移動させ、中心が前記境界エラー範囲に位置したモジュールの数を境界モジュール数として移動量が０の前記初期位置を含めて移動量毎にカウントする境界モジュール数検出手段と、
前記境界モジュール数が所定条件を満たした移動量での各モジュールの中心と前記取り込み時明暗パターンとを比較し、各モジュールの明暗を、その中心が位置する取り込み時明暗パターンの明暗と同じに定めて正規化された明暗パターンを作成する正規化明暗パターン作成手段とを具備し、
前記正規化された明暗パターンについて解読処理を行うようにしたことを特徴とするバーコード読取装置。
【請求項７】
前記取り込み時明暗パターンに基づいてバーコードの種類を判別する種類判別手段が設けられていることを特徴とする請求項６記載のバーコード読取装置。
【請求項８】
前記明暗検出手段は、前記取り込み時明暗パターンの明暗の境界を、明暗の変化が最大となる位置に定めることを特徴とする請求項６または７記載のバーコード読取装置。
【請求項９】
前記モジュール位置検出手段は、境界モジュール数が所定の中止条件を満たした時点で、境界モジュール数を移動量毎にカウントする動作を中止することを特徴とする請求項６ないし８のいずれかに記載のバーコード読取装置。
【請求項１０】
前期正規化明暗パターン作成手段は、前記境界モジュール数が所定条件を満たす移動量が複数あったとき、移動量の小さい方を採用して前記正規化された明暗パターンを作成することを特徴とする請求項６ないし９のいずれかに記載のバーコード読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバーコード読取方法およびバーコード読取装置に係り、特にモジュールの中央が白か黒かの判定を優先して白黒パターンを判定するようにしたものに関するものである。
【０００２】
【従来の技術】
バーコード読取装置は、ＣＣＤセンサなどからなるカメラ部によってバーコードを撮影し、その画像信号を二値化してバーコードの明暗（白黒）判別を行うと共に、その白バー、黒バーの幅を検出して解読する。
【０００３】
【発明が解決しようとする課題】
バーコードをカメラ部によって撮影した場合、バーのエッジ部はノイズの影響を受け易く、白バーと黒バーの境界を正確に検出することが難しいため、バー幅を正確に検出できないことがあり、誤読の恐れがある。この問題を解消するものとして、特開昭６１−１２５６８４号公報に開示されたバーコード読取装置は、バーの中心位置がスタートバー、エンドバーの中心位置に対して相対的に変化しないことに着目し、中心付近の論理１の値の部分の面積計算により白バー、黒バーの判定を行うことによって安定した読み取りを行い得るようにしている。
【０００４】
しかしながら、この白バー、黒バーの判定方式（明暗判定方式）のものでは、バーコードに対してカメラ部が傾いたりすると、撮影したバーコードが遠近差のために部分部分でサイズが異なるようになるので、同じ幅のバーでも、その中心部分の面積が変化するようになり、正確性に欠けるものであった。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、画像検出手段により取り込んだバーコードの画像が、バーのエッジ部分で不鮮明であったり、撮影した画像のサイズが部分部分で異なっていたりしたとしても、より正確に解読することができるバーコード読取方法およびバーコード読取装置を提供するところにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、請求項１，６の発明は、多段階レベルの画像データを明または暗に分けて明暗の境界位置を検出した後、
（１）前記多段階レベルの画像データを明または暗に分けたときの明暗パターンを取り込み時明暗パターンとしたとき、この取り込み時明暗パターンでの１コードワードにおける明暗の境界を中心としたその両側の所定長さ範囲を境界エラー範囲として設定し、
（２）前記取り込み時明暗パターンにおいて、バーコードの種類毎に定められた数のバーによって構成されている１コードワードの長さを算出し、当該１コードワードの長さと１コードワードのモジュール数とから１モジュールの長さを算出し、
（３）前記取り込み時明暗パターンにおいて、１コードワードを１モジュールの長さ毎に区切って各モジュールの中心の位置を初期位置として検出し、
（４）１コードワードを構成する各モジュールの中心を前記初期位置からその両側に各回で移動量が異なるように複数回移動させ、中心が前記境界エラー範囲に位置したモジュールの数を境界モジュール数として移動量が０の前記初期位置を含めて移動量毎にカウントし、
（５）前記境界モジュール数が所定条件を満たしたときの移動量での各モジュールの中心と前記取り込み時明暗パターンとを比較し、各モジュールの明暗を、その中心が位置する取り込み時明暗パターンの明暗と同じに定めて正規化された明暗パターンを作成し、
この正規化された明暗パターンに対して解読処理を行うことを特徴とする。
【０００７】
この手段によれば、画像検出手段によって取り込んだバーコードの画像において、明暗の境界を中心にその両側の所定長さ範囲を明暗のはっきりしない境界エラー範囲として設定し、１ワードコードを構成する各モジュールの中心を初期位置からその両側に移動させたとき、境界エラー範囲に入る境界モジュール数が所定条件を満たした時の状態で正規化明暗パターンを作成し、この正規化明暗パターンを解読対象とするので、取り込んだバーコードの画像において、バーのエッジ部が不鮮明であっても、より正確にバーの境界位置を検出することができてバーコードをより正確に解読することができる。しかも、１ワードコードずつ解読するので、取り込んだバーコードの画像が遠近差のために部分部分でサイズが異なったとしても、その影響を極力排除してより正確な解読処理を行うことができる。
【０００８】
請求項２，７の発明は、前記（１）ないし（３）の動作は、前記多段階レベルの画像データを明または暗に分けた取り込み時明暗パターンに基づいてバーコードの種類を判別した後に実行することを特徴とする。
【０００９】
請求項３，８の発明によれば、前記取り込み時明暗パターンの明暗の境界は、明暗の変化が最大となる位置としたので、画像検出手段の画素間に明暗の境界がある場合でも、それを検出できる。
【００１０】
請求項４，９の発明は、前記（３）の動作を、境界モジュール数が所定の中止条件を満たした時点で中止するので、明暗の境界をある程度正しく検出できて正規化明暗パターンを作成できる状態になったにも係らず、更に明暗の境界を検出するための動作を継続するという不具合を解消することができる。
【００１１】
請求項５，１０の発明は、前記境界モジュール数が所定条件を満たす場合が複数あったとき、移動量の小さい方を採用して明暗パターンを決定するようにしたものである。
【００１２】
【発明の実施の形態】
以下、本発明の一実施例を図面に基づいて説明する。図１はハンディタイプのバーコード読取装置の電気的構成を示すもので、読取対象部分を撮像するカメラ部１、増幅回路２、Ａ／Ｄ変換器３、クロック発生回路４、アドレス発生回路５、画像メモリ６、液晶表示器７、ホストコンピュータなどとの間でデータの送受を行う入出力回路８、各種のスイッチ９および制御手段としての制御回路１０などから構成されている。
【００１３】
上記カメラ部１は、受光素子としてのＣＣＤを縦横に配列して構成された二次元の画像検出手段としてのＣＣＤエリアセンサ１１、読取対象部を照明する照明手段としてのＬＥＤ（発光ダイオード）１２、読取対象部分からの反射光をＣＣＤエリアセンサ１２上に結像するレンズ１３から構成されている。
【００１４】
ＣＣＤエリアセンサ１１は、二次元画像を検出すると、その二次元画像を水平方向の走査線信号として増幅回路２を介してＡ／Ｄ変換器３に出力する。Ａ／Ｄ変換器３は、ＣＣＤエリアセンサ１１から出力され、増幅回路２で増幅されたアナログの走査線信号を多段階のレベルからなるデジタル信号に変換する。
【００１５】
一方、クロック発生回路４は、ＣＣＤエリアセンサ１１から出力される同期パルスに応じて、当該ＣＣＤエリアセンサ１１が出力する走査線信号のパルスよりも充分に細かいクロックパルスを出力する。アドレス発生回路５は、クロック発生回路４から出力されるパルスをカウントして画像メモリ６に対するアドレスを発生させる。そして、制御回路１０は、多段階レベルの走査線信号をアドレス発生回路５により定められた画像メモリ６のアドレスに記憶させる。
なお、制御回路１０は、ＣＰＵ、ＲＡＭ、ＲＯＭなどを備えたマイクロコンピュータシステムからなる。
【００１６】
ここで、バーコードは、幅の異なる黒バーと白バーとを交互に並べて構成されているが、そのバーの最小幅を１モジュールと称する。また、バーコードの左右両側には、スタートコードとストップコードが設けられ、これらスタートコードとストップコードとの間に、複数のコードワードからなるデータコードが設けられている。スタートコードとストップコードを構成するバーの本数、およびモジュール数などはバーコードの種類によって異なり、１コードワードを構成するバーの本数、および１コードワードを構成するモジュール数などもバーコードの種類によって異なる。
【００１７】
次に、上記構成のバーコード読取装置の作用を図２〜図４のフローチャートをも参照しながら説明する。なお、この作用説明では、バーコード読取装置が特定種類のバーコード、例えば図８に示すＰＤＦ４１７の読み取り専用に構成されているとして説明する。
【００１８】
ＰＤＦ４１７は、左右両側のスタートコードＳＲとストップコードＳＴとの間に、白バーと黒バーとが並ぶデータコードパターンＤＴを複数段重ねて構成されている。そして、データコードを構成する１コードワードは、ＰＤＦ４１７の場合、図５に示すように、８本のバーからなり、それら８本のバーの合計モジュールは１７モジュールである。
【００１９】
さて、制御回路１０の制御の下に、ＣＣＤエリアセンサ１１がＰＤＦ４１７のバーコードを検出すると（ステップＳ１）、ＣＣＤエリアセンサ１１から出力される画像信号が多段階のレベル、例えば２５６階調の画像データとして画像メモリ６に記憶される（ステップＳ２）。
【００２０】
次に制御回路１０は、複数段あるＰＤＦ４１７バーコードのデータコードの段数カウンタｎを１にセットし（ステップＳ３）、第１段目（図８で最上段）のデータコードパターンについて明暗の境界位置を検出し（明暗境界位置検出手段）、その明暗のパターンを取り込み時明暗パターンとして（明暗パターン検出手段）図示いないＲＡＭなどの記憶装置に記憶する（ステップＳ４）。この取り込み時明暗パターンの一部を図５（ａ）に例示する。
【００２１】
この場合の明と暗の二値の境界位置は次のようにして検出する。即ち、記憶された多段階レベルの画像データが図６（ａ）に示すようなものであったとする。なお、図６（ａ）において、プロットした点はＣＣＤエリアセンサの画素が検出した明暗度（デジタル）である。明暗の境界位置を求めるには、左側の画素の明暗レベルから右側の明暗レベルを差し引いて明暗レベル差を求めることを、互いに隣どうしとなっている画素のすべてについて行い、図６（ｂ）に示す明暗レベルの一次差分を求める。次に、図６（ｂ）の一次差分データにプロットされた各点について、左側の点の値から右側の点の値を差し引くことを、互いに隣どうしとなっている各点について行い、図６（ｃ）に示す二次差分を求める。そして、二次差分データにプロットされた各点を包絡線で結んだとき、その包絡線がゼロレベルと交差する点の位置を明（白バー）と暗（黒バー）の境界と定める（図６（ｄ））。
【００２２】
このようにして明暗の境界を定めると、画素と画素との間に明暗の境界がある場合であっても、画素と画素の間の途中位置を境界として認識し、実際のバーコードに即した境界として定めることができる。例えば、図７に示すように、画素１および２間の一次差分と画素２および３間の一次差分の二次差分ａ点が＋１、画素２および３間の一次差分と画素３および４間の一次差分との二次差分ｂ点が−４であったとき、明暗の境界は画素２と画素３との間に存在する。そこで、二次差分ａ点とｂ点との間の包絡線Ｓが直線と見なせることから、ゼロクロス点は画素２から画素間の距離Ｒの１／５の位置にあるとする。このように本実施例の境界検出法によれば、明暗の境界が２つの画素の途中にある場合でも、これを検出できる。
【００２３】
以上のようにして明暗の境界位置を検出した後、制御回路１０は、その検出した境界位置から第１段目のデータコードパターンを構成する多数の白バーと黒バーの幅を算出する（バー幅検出手段、ステップＳ５）。次に、制御回路１０は、１段目のデータコードパターンの１番目のコードワード、例えば最も左側に位置する１コードワード（図５（ｂ））について、そのコードワードを構成する複数本のバーの幅を加算し、その１コードワードの長さを算出する（コードワード長検出手段、ステップＳ６）。そして、制御回路１０は、１コードワードの長さを１コードワードのモジュール（１７）で除して、そのコードワードにおける１モジュールの長さを算出し（モジュール長検出手段、ステップＳ７）、図５（ｃ）に示すように、各モジュールの中心位置を初期位置として算出する（モジュール位置検出手段、ステップＳ８）。
【００２４】
この後、制御回路１０は、明暗の境界位置からその左右両側（コードワードの長さ方向両側）に所定範囲、例えばモジュール幅Ｍの１６分の１ずつ取った範囲を境界エラー範囲（図５（ｄ））として設定し（ステップＳ９）、図５（ｅ）に示すように、前記初期位置において、中心が境界エラー範囲に位置しているモジュールの数をカウントし、これを境界モジュール数として移動量０（初期位置）と関連付けて図示しないＲＯＭなどの記憶装置に記憶する（ステップＳ１１）。
【００２５】
次に、制御回路１０は、移動回数カウンタｍを０にセットし（ステップＳ１２）、次にこのカウンタｍに１を加算する（ステップＳ１３）。そして、制御回路１０は、各モジュールの中心を初期位置から１モジュールの長さＭの１／１６だけ左側に移動し（ステップＳ１４）、この移動位置で中心が境界エラー範囲に入ったモジュールの数を境界モジュール数としてカウントし（ステップＳ１５）、この境界モジュール数を移動量（方向も含めて）と関連付けて記憶装置に記憶する（ステップＳ１６）。
【００２６】
更に、制御回路１０は、各モジュールの中心を初期位置から右側に１モジュールの長さＭの１／１６だけ移動し（ステップＳ１７）、この移動位置で中心が境界エラー範囲に入ったモジュールの数を境界モジュール数としてカウントし（ステップＳ１８）、この境界モジュール数を移動量（方向も含めて）と関連付けて記憶装置に記憶する（ステップＳ１９）
次に、制御回路１０は、ｍが８であるか否かを判断し（ステップＳ２１）、８未満のときには（ステップＳ２１で「ＮＯ」）、次にカウントした境界モジュール数が１以下であったか否かを判断し（ステップＳ２１）、１を越えていた場合にはステップＳ２１で「ＮＯ」となって前記ステップＳ１３に戻り、カウンタｍに１をプラスしてｍを２にセットする。
【００２７】
そして、制御回路１０は、各モジュールを初期位置から左側および右側にモジュール長さＭの２／１６だけ移動させ、中心が境界エラー範囲に入ったモジュールの数を移動量と関連つけて記憶するという動作を（境界モジュール数検出手段）、ｍが８となるまで、即ち初期位置からの左右への移動量をＭ／１６ずつ増加させて夫々の移動量がＭ／２となるまで実行する。
【００２８】
ｍが８になると、制御回路１０は、ステップＳ２０で「ＹＥＳ」と判断し、次に境界モジュール数が所定条件を満たす移動量、この実施例では境界モジュール数が最小である移動量を検出し（ステップＳ２２）、その後、最小境界モジュール数である移動量の数を検出してその数が複数か否かを判断する（ステップＳ２３）。そして、制御回路１０は、最小境界モジュール数である移動量が１つしかない場合には、ステップＳ２３で「ＮＯ」となって次のステップＳ２５に移行し、また最小境界モジュール数である移動量が複数存在する場合には、ステップＳ２３で「ＹＥＳ」となってステップＳ２４に以降し、ここで当初のモジュールの中心位置に最も近く且つ明暗境界位置から最も遠くなる移動量の方を最小境界モジュール数である移動量に設定してステップＳ２５移行する。
【００２９】
そして、制御回路１０は、ステップＳ２５で、図５（ｉ）に示すように、最小境界モジュール数であるときの移動量に各モジュールの中心を移動させたとき、それら各モジュールの中心が取り込み時明暗パターンにおいて属する明、暗に設定し、これを正規化明暗パターンとする（正規化パターン作成手段）。図５（ｉ）の例では、同図（ｊ）に示すように、左から５モジュール目まで暗（黒）、次の１モジュールは明（白）、次の２モジュールは暗、次の２モジュールは明、次の２モジュールは暗、次の２モジュールは明、次の２モジュールは暗、最後の１モジュールは明である。そして、制御回路１０は、１コードワードこの正規化された明暗パターンであるとして、当該コードワードを解読する（解読手段、ステップＳ２６）。
【００３０】
ところで、モジュールの中心をモジュール長さＭの１／１６ずつ増加させながら左右に移動させて境界モジュール数を検出する動作の実行中に、その境界モジュール数が１以下（所定の中止条件）となる場合がある。この場合には、制御回路１０は、ステップＳ２１で「ＹＥＳ」となり、ステップＳ２５に移行する。このことは、ｍが８にならなくとも（モジュールの中心を初期位置から８Ｍ／１６まで移動させる前に）、境界モジュール数を検出する動作を中止することを意味する。
【００３１】
この後、制御回路１０は、１段目のコードワードを全て解読したか否かを判断するステップＳ２７で「ＮＯ」となってステップＳ２８に移行して次のコードワードを解読対象に設定し、前記ステップＳ５に戻り、２番目のコードワードの解読動作に入る。そして、前述したと同様にして２番目のコードワードを解読し、次いで３番目以降のコードワードを順次解読してゆく。
【００３２】
そして、１段目のデータコードパターンのコードワードを全て解読すると（ステップＳ２７で「ＹＥＳ」）、制御回路１０は、次の最終段のデータコードワードまで解読を終了したか否かを判断するステップＳ２９で「ＮＯ」となり、続いてｎに１を加算して２段目のデータコードパターンの解読に移行する。そして、全ての段のデータコードパターンの解読動作に入り、全ての段のデータコードワードパターンの解読を終了したところで（ステップＳ２９で「ＹＥＳ」）、ＰＤＦ４１７バーコードの解読動作を終了する。
【００３３】
このように本実施例によれば、バーコードを１コードワード毎に解読するので、バーコードに対してカメラ部１が傾いたりして、バーコードが遠近差のために部分部分で大きさが異なった場合でも、その大きさの違いの影響を極力排除しながら解読することができる。
【００３４】
また、明暗の境界が不鮮明となり勝ちな範囲を境界エラー範囲と定め、コードワードを構成する各モジュールの中心を両側に移動させたとき、中心が境界エラー範囲に入るモジュールの数が最も少ないとき、即ち、境界の位置が不確かであっても、明、暗と定めて間違いのないモジュール数が最も多い場合を正規化された明暗パターンに定めて、これを解読するので、バーコードをより正確に解読することができる。
【００３５】
また、本実施例では、最小境界モジュール数である移動量が複数存在する場合には、モジュール中心から最も遠く且つ明暗境界位置から最も遠くなる移動量の方を最小境界モジュール数である移動量に設定して正規化された明暗パターンを作成するので、より正確な明暗パターンを作成することができる。
【００３６】
なお、本発明は上記し且つ図面に示す実施例に限定されるものではなく、以下のような変形或いは拡張が可能である。
請求項１において、（１）ないし（５）の動作の順序は昇順に限られるものではない。
バーコード読取装置にバーコードの種類を判別する機能を持たせても良い。このようにすれば、読み取ろうとするバーコードの種類が予め分かっていなくても解読が可能となり、読み取り可能なバーコードの種類が拡大する。このときのバーコード種別の判別は制御回路１０が行うが、その判別法は、スタートコード、或いはストップコードを構成するバー数およびモジュール数は種類毎に異なるので、種類検出手段としての制御回路１０はまずＡ種のバーコードと仮定してバーコードの一方側からＡ種のバーコードのスタートコードを構成するバー数の明暗パターンがＡ種のバーコードのスタートコードパターンと一致するかを判別し、一致するならＡ種のバーコードと判定する。Ａ種のバーコードと判定できなかったら、次にバーコードの画像を左右逆に取り込んだ可能性もあるので、バーコードの一方側からＡ種のバーコードのエンドコードを構成するバー数の明暗パターンがＡ種のバーコードのエンドコードの、明暗パターンと一致するかを判別し、一致するならＡ種のバーコードと判定する。Ａ種のバーコードのエンドコードと判定できなかったら、次にＢ種のバーコードと仮定して上記と同様の動作を行い、以下、同様な動作を繰り返してバーコードの種類を判別するというものである。　　１コードワードを明暗に分ける分け方は、画像データの多段階レベルの明暗度の分布を求めてこれをしきい値として明、暗に分けるようにしても良い。
明暗の境界位置はバーコード全体に対して一括して検出するようにしても良いし、コードワード毎に行うようにしても良い。
【図面の簡単な説明】
【図１】本発明の一実施例を示すバーコード読取装置の電気的構成図
【図２】バーコードの解読動作の内容を示すフローチャートその１
【図３】同その２
【図４】同その３
【図５】主要ステップの実行内容を示す図
【図６】バーコードの明暗境界位置を求める方法の説明図
【図７】同詳細図
【図８】読み取り対象のバーコードを示す図
【符号の説明】
６は画像メモリ、９は制御回路（明暗検出手段、境界エラー範囲設定手段、モジュール位置検出手段、境界モジュール数検出手段、正規化パターン作成手段）、１０はＣＣＤエリアセンサ（画像検出手段）である。
【図１】
2004094471.tif 000003
【図２】
2004094471.tif 000004
【図３】
2004094471.tif 000005
【図４】
2004094471.tif 000006
【図５】
2004094471.tif 000007
【図６】
2004094471.tif 000008
【図７】
2004094471.tif 000009
【図８】
2004094471.tif 000010