(57)【要約】【課題】複数種類の類似したパターンのバーコードが混在する場合でも、夫々をより確実に判別することができるバーコード読取方法を提供する。【解決手段】バーコード読取装置の制御回路は、RSS＿Limitedのデコードが正常に終了した場合は（ステップＡ１５：「ＹＥＳ」）、RSS＿Limitedのコードパターン両端部の少なくとも一方に、ＵＰＣ−Ａ／ＥＡＮ−１３のキャラクタコードが存在するか否かを判定する（ステップＡ１８）。前記キャラクタコードが存在しなければ（「ＮＯ」）読取ったコードパターンをRSS＿Limitedとして確定し、前記キャラクタコードが存在すると（「ＹＥＳ」）読取りを「ＮＧ」とする（ステップＡ１４）。【選択図】図４
2008159084.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の規格に基づいて作成されたバーコードを光学的に読み取り、当該バーコードに記録されているデータをデコードするバーコード読取方法において、
前記複数種類の内、第１規格に基づく第１バーコードの一部のコードパターンが、前記第１規格よりもバーの構成本数が少なく設定されている第２規格に基づく第２バーコードとして読取れる可能性がある場合に、
読取ったバーコードを２値化処理して得られた明暗パターン列について、前記第２規格の読取りアルゴリズムを適用して読み取りを行う第１過程と、
前記読取りが正常終了した場合は、前記明暗パターン列の両端の少なくとも一方に前記第１バーコードのキャラクタパターン，スタート又はストップパターンが存在するかどうかを判定する第２過程とからなり、
前記第２過程において前記第１バーコードのパターンが存在すると判定した場合は、読み取り失敗と判定することを特徴とするバーコード読取方法。
【請求項２】
複数種類の規格に基づいて作成されたバーコードを光学的に読み取り、当該バーコードに記録されているデータをデコードするバーコード読取方法において、
前記複数種類の内、第１規格に基づく第１バーコードの一部のコードパターンが、前記第１規格よりもバーの構成本数が少なく設定されており、且つ両端にマージンの設定がない第２規格に基づく第２バーコードとして読取れる可能性がある場合に、
読取ったバーコードを２値化処理して得られた明暗パターン列について、前記第２規格の読取りアルゴリズムを適用して読み取りを行い、
前記読取りが正常終了した場合において、前記明暗パターン列の両端の少なくとも一方に前記第１バーコードのキャラクタパターンが存在する場合は、読取り失敗と判定することを特徴とするバーコード読取方法。
【請求項３】
請求項１又は２記載のバーコード読取方法を実行可能に構成されていることを特徴とするバーコード読取装置。
【請求項４】
夫々のバーコードにマージンが適切に設定されているか否かを判別する手段を、バーコードの種類毎に設定可能に構成されていることを特徴とする請求項３記載のバーコード読取装置。
【請求項５】
複数種類の規格に基づいて作成されたバーコードを光学的に読み取り、当該バーコードに記録されているデータをデコードするバーコード読取装置を制御するコンピュータによって実行されるプログラムにおいて、
前記複数種類の内、第１規格に基づく第１バーコードの一部のコードパターンが、前記第１規格よりもバーの構成本数が少なく設定されている第２規格に基づく第２バーコードとして読取れる可能性がある場合に、
読取ったバーコードを２値化処理して得られた明暗パターン列について、前記第２規格の読取りアルゴリズムを適用して読み取りを行う第１過程を実行させ、
前記読取りが正常終了した場合は、前記明暗パターン列の両端の少なくとも一方に前記第１バーコードのキャラクタパターン，スタート又はストップパターンが存在するかどうかを判定する第２過程を実行させると共に、
前記第２過程において前記第１バーコードのパターンが存在すると判定した場合は、読み取り失敗と判定させることを特徴とするコンピュータプログラム。
【請求項６】
複数種類の規格に基づいて作成されたバーコードを光学的に読み取り、当該バーコードに記録されているデータをデコードするバーコード読取装置を制御するコンピュータによって実行されるプログラムにおいて、
前記複数種類の内、第１規格に基づく第１バーコードの一部のコードパターンが、前記第１規格よりもバーの構成本数が少なく設定されており、且つ両端にマージンの設定がない第２規格に基づく第２バーコードとして読取れる可能性がある場合に、
読取ったバーコードを２値化処理して得られた明暗パターン列について、前記第２規格の読取りアルゴリズムを適用して読み取りを行わせ、
前記読取りが正常終了した場合において、前記明暗パターン列の両端の少なくとも一方に前記第１バーコードのキャラクタパターンが存在する場合は、読取り失敗と判定させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類の規格に基づいて作成されたバーコードを光学的に読み取り、当該バーコードに記録されているデータをデコードするためのバーコード読取方法、及びバーコード読取り装置、並びに前記装置を制御するコンピュータによって実行されるプログラムに関する。
【背景技術】
【０００２】
近年、バーコードについても多くの種類が開発されて実際に運用されている。そのため、所定のバーコードの一部分が他の種類のバーコードを構成しているという場合も存在する。従って、複数種類のバーコードの読取りに対応するようにリーダを構成する際には、そのような事態においてもバーコードの種類を明確に峻別することができなければ、読取り間違いが起きる可能性がある。
例えば、特許文献１には、複数種類のバーコードの読取りに対応可能な装置の一構成例が開示されている。
【特許文献１】特開平６−２９５３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示されている技術は、複数種類のバーコードの読み取りについて共通して行なわれる処理を冒頭に実行することで、読取り処理に要する時間を短縮することを目的としてなされたものである。従って、上記のように、類似したパターンのバーコードが存在する場合に、夫々をどのようにして判別するかという技術課題の解決に資するものではない。
【０００４】
本発明は上記事情に鑑みてなされたものであり、その目的は、複数種類の類似したパターンのバーコードが混在する場合でも、夫々をより確実に判別することができるバーコード読取方法、及びバーコード読取装置、並びにコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載のバーコード読取方法によれば、読取ったバーコードを２値化処理して得られた明暗パターン列について第２規格の読取りアルゴリズムを適用して読み取りを行い、その読取りが正常終了した場合でも、明暗パターン列の両端の少なくとも一方に第１バーコードのキャラクタパターン，スタート又はストップパターンが存在すれば読取り失敗と判定する。即ち、読取ったバーコードの少なくとも一方の端に、第１バーコードのパターンが存在すれば、その明暗パターンは第１バーコードである可能性がある。従って、その場合に読取り失敗と判定することで読取り誤りを防止することができる。
【０００６】
請求項２記載のバーコード読取方法によれば、読取ったバーコードを２値化処理して得られた明暗パターン列について第２規格の読取りアルゴリズムを適用して読み取りを行い、その読取りが正常終了した場合でも、明暗パターン列の両端の少なくとも一方に第１バーコードのキャラクタパターンが存在すれば読取り失敗と判定する。即ち、読取り視野のぎりぎりで読取ったバーコードがマージンの設定がない第２バーコードであれば、実際はその外側に読み取れなかったバーが存在する可能性がある。従って、その場合に読取り失敗と判定することで読取り誤りを防止することができる。
【０００７】
請求項４記載のバーコード読取装置によれば、請求項１又は２記載のバーコード読取方法を実行可能に構成されている場合に、夫々のバーコードにマージンが適切に設定されているか否かを判別する手段を、バーコードの種類毎に設定可能に構成される。従って、例えば、マージンが規定されていないバーコードだけを読取るような場合には、不要な判定処理を行うことなく読み取りを迅速に行うことができる。
【発明を実施するための最良の形態】
【０００８】
（第１実施例）
以下、本発明の第１実施例について図１乃至図３を参照して説明する。図３は、バーコード読取装置の電気的構成を概略的に示している。このバーコード読取装置１は、読取対象Ａに印字されたバーコードを光学的に読取るためのもので、電源回路２，制御回路（コンピュータ）３，メモリ４，操作部５，照明駆動回路６，照射部７，結像手段８，センサ駆動回路９，光学的センサ１０，クロック制御回路１１，波形整形部１２および外部インタフェイス部１３を備えている。
電源回路２は、例えばＡＣ／ＤＣ変換器により構成されるもので、外部から供給された交流電源を直流に変換し読取装置１の全構成に直流電源供給するようになっている。尚、電源回路２は必要に応じて設ければ良く、例えばハンディタイプのバーコード読取装置の場合には、内蔵している電池を電源として駆動される構成でも良い。
【０００９】
制御回路３は、例えばマイクロコンピュータにより構成されており、制御用プログラムに基づいて読取装置１の全体を制御するようになっているが詳細は後述する。操作部５は、例えばトリガーキーや数字キー等の各種操作設定用キーが設けられて構成されており、ユーザ等によりトリガーキーが操作されると、制御回路３の制御に基づいて読取装置１が処理動作を開始する。照明駆動回路６は、制御回路３の制御に基づいて照射部７に駆動信号を与える。また、メモリ４には、制御回路３の制御プログラム（コンピュータプログラム）１４が記憶されている。照射部７は、例えばＬＥＤ等により構成されており、照明駆動回路６から駆動信号が与えられると読取対象Ａに光を照射する。
【００１０】
結像手段８は、例えばレンズにより構成されており、照射部７から読取対象Ａに照射され反射した光を結像し光学的センサ１０に与える。光学的センサ１０は例えばエリアセンサとも称されており、例えばＣＣＤ等の受光素子が二次元平面状に配列され、対応する受光素子やその範囲（取込対象エリア）を設定することで全画素信号を独立に取込むことができるように構成されているもので、読取対象Ａに反射した反射光を光電変換する。この光学的センサ１０で露光するための露光時間は、制御回路３により設定可能に構成されている。
【００１１】
制御回路３がセンサ駆動回路９を介して光学的センサ１０を駆動制御すると、光学的センサ１０は取込モードに基づいて光電変換した信号を波形整形部１２に与えるようになっている。センサ駆動回路９は、光学的センサ１０の受光素子から画素信号を出力させるためのクロックを光学的センサ１０に与える。波形整形部１２は、光学的センサ１０により光電変換された信号を増幅し輝度レベルの信号を制御回路３に与えるようになっている。波形整形部１２の増幅率は、制御回路３により設定可能に構成されている。外部インタフェイス部１３は、制御回路３と外部装置（図示せず）との間でデータを入出力可能にしている。
【００１２】
次に、本実施例の作用について図１及び図２も参照して説明する。図１は、制御回路３が制御プログラム１４を実行した場合の処理内容を示すフローチャートであり、本発明の要旨に係る部分のみを示すものである。尚、ステップＡ１〜Ａ１４までの処理は、一般的な構成のバーコード読取装置と変わるところはない。
【００１３】
制御回路３は、先ず、ユーザにより読取り対象として指定された複数種類のバーコードから、読取り可能な最小バー本数Ｘを設定する（ステップＡ１）。それから、光学的センサ１０により光学的に読取られ、波形整形部１２を介して与えられるバーコードの輝度レベル信号を二値化、即ち明暗パターン化してからコード領域を切り出す。続いて、明暗パターンよりバーの本数ｎとバーを検出する（ステップＡ２，Ａ３）。
【００１４】
次に、制御回路３は、バー本数ｎと最小バー本数Ｘとを比較し、ｎ≧Ｘの場合は（ステップＡ４，「ＹＥＳ」）、バー本数ｎに応じてデコード対象とするバーコードを決定する（ステップＡ５）。そして、明暗パターンの最初の白バー（通常はマージン領域に相当）とその次（内側）に位置する黒バーとの間、又は最初のキャラクタパターンより、バーコードの種類に応じてマージンチェックを行う（ステップＡ６）。また、ステップＡ４においてバー本数ｎが最小バー本数Ｘ未満であれば（「ＮＯ」）、その時点で読取りは失敗、「ＮＧ」と判定される（ステップＡ１４）。
【００１５】
ステップＡ６において、規定されているマージンが存在すれば（「ＯＫ」）、明暗パターン列にバーコードの種類に応じた読取りアルゴリズムを適用してデコードを行う（ステップＡ７，第１過程）。一方、規定されているマージンが存在しない場合は（「ＮＧ」）、パターン列両端のバーを１本ずつ減らして（ｎ＝ｎ−２，ステップＡ１０）ステップＡ４に戻り、再度最小バー本数Ｘとの比較を行う。ステップＡ７におけるデコード結果が問題なく「ＯＫ」であれば（ステップＡ８，「ＹＥＳ」）、パターン列最後の黒バー又はキャラクタパターンを基準としてマージンチェックを行う（ステップＡ９）。
【００１６】
また、ステップＡ７におけるデコードが失敗し「ＮＧ」であれば（ステップＡ８，「ＮＯ」）、ステップＡ７でデコード対象として評価したバーの本数ｍをバー本数ｎより減じ（ｎ＝ｎ−ｍ，ステップＡ１１）、ステップＡ４に戻り、再度最小バー本数Ｘとの比較を行う。ステップＡ９におけるマージンチェックが「ＯＫ」であれば、読取りは成功「ＯＫ」となり（ステップＡ１３）、マージンチェックが「ＮＧ」である場合はステップＡ１１に移行する。
【００１７】
以下のステップＡ１５〜Ａ１７における処理内容が、本発明の特徴的な部分である。即ち、ステップＡ１３において一旦読み取りが「ＯＫ」となった場合、制御回路３は、そのバーコードがRSS＿Limited（第２バーコード）であるか否かを判定し（ステップＡ１５，第２過程）、RSS＿Limitedでなければ（「ＮＯ」）そのまま処理を終了する。一方、バーコードがRSS＿Limitedである場合は（「ＹＥＳ」）、ステップＡ７におけるデコード結果より、バーの最小単位幅であるモジュールを検出する（ステップＡ１６）。そして、そのバーコードパターン両端外側の少なくとも一方に、５モジュール以上の白バーが存在するか否かを判定する（ステップＡ１７）。
【００１８】
ここで、図２を参照する。図２は、RSS＿Limitedのバーコードパターンの一例と、ＰＯＳコードの１種であるＵＰＣ−Ａのバーコードパターンの一例であり、前者のパターンが後者のパターンの一部と一致するものを上下に配列して示している。RSS＿Limitedは、コードサイズがＵＰＣ−Ａよりも小さく（即ち、バーの構成本数がより少なく）、また、マージンを設けることが規定されていない仕様である。そのため、ＵＰＣ−Ａ／ＥＡＮ−１３のパターンを読もうとした場合に、読取り状態によってはRSS＿Limitedと間違って読んでしまう可能性がある。
【００１９】
そこで、ステップＡ１７では、バーコードの少なくとも一方に５モジュール以上のマージンが存在する場合に、RSS＿Limitedとしての読取り結果を「ＯＫ」とするようにしている。即ち、ＵＰＣ−Ａ／ＥＡＮ−１３を構成するバーは１〜４モジュールであるから、幅が５モジュール以上のバーはＵＰＣ−Ａ／ＥＡＮ−１３の一部を構成するものではない。従って、RSS＿Limited少なくとも一方に上記白バーが存在すれば、そのバーコードをRSS＿Limitedとして読取ることに問題がないと確定することができる。
【００２０】
一方、ステップＡ１７において１〜４モジュール幅のバーが存在する場合は（「ＮＯ」）、デコードしたコードパターンはＵＰＣ−Ａ／ＥＡＮ−１３の一部である可能性がある。従って、その場合はステップＡ１４に移行して読取りを「ＮＧ」として処理する。
【００２１】
以上のように本実施例によれば、バーコード読取装置１の制御回路３は、RSS＿Limitedのデコードが正常に終了した場合は、そのコードパターンがＰＯＳコードの一部であると仮定した場合に存在し得るバーの最大幅（４モジュール）に対し、明暗パターン列の両端側の少なくとも一方に、５モジュール以上の白バーが存在するかどうかを判定する。そして、前記白バーが存在すれば、読取ったバーコードをRSS＿Limitedとして確定するので、実際にそのコードパターンが部分的に一致するＰＯＳコードとの誤読を防止することができる。
【００２２】
（第２実施例）
図４及び図５は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。尚、バーコード読取装置１の構成は基本的に第１実施例と同様であり、制御回路３によるソフトウエア的な読取り処理が異なっている。
【００２３】
図４は図１相当図であるが、制御回路３は、ステップＡ１５において「ＹＥＳ」と判断すると、RSS＿Limitedのコードパターン両端部の少なくとも一方に、ＵＰＣ−Ａ／ＥＡＮ−１３のキャラクタコードが存在するか否かを判定する（ステップＡ１８）。そして、前記キャラクタコードが存在しなければ（「ＮＯ」）読取ったコードパターンをRSS＿Limitedとして確定し、そのまま処理を終了するが、前記キャラクタコードが存在すると（「ＹＥＳ」）読取りを「ＮＧ」とする（ステップＡ１４）。
【００２４】
即ち、図５に示すように、本来はＵＰＣ−Ａ／ＥＡＮ−１３であるにもかかわらず、そのバーコードの全体が読取装置１の読取り視野に収まらず、一部のコードパターンを読取った結果がRSS＿Limitedのコードパターンに一致する場合がある。斯様な場合において、読取ったコードパターン両端部の少なくとも一方にＵＰＣ−Ａ／ＥＡＮ−１３のキャラクタコードが存在したとすれば、前記コードパターンはＵＰＣ−Ａ／ＥＡＮ−１３の可能性があると推定できる。従って、その場合に読取りを「ＮＧ」とすることで、読取り誤りを防止することができる。
【００２５】
（第３実施例）
図６及び図７は本発明の第３実施例を示すものであり、第２実施例と異なる部分についてのみ説明する。第３実施例では、制御回路３は、ステップＡ１７に替わるステップＡ１９において、読取ったコードパターン両端と読取り視野の両端との間に所定の距離が存在するか否かを判定する。そして、所定の距離が存在すれば（「ＹＥＳ」）読取ったコードパターンをRSS＿Limitedとして確定し、そのまま処理を終了するが、所定の距離がなければ（「ＮＯ」）読取りを「ＮＧ」とする（ステップＡ１４）。
【００２６】
即ち、図７に示すように、第３実施例と同様に本来はＵＰＣ−Ａ／ＥＡＮ−１３のコードパターンであるがその全体が読取装置１の読取り視野に収まらず、視野のぎりぎりで読取れた部分がRSS＿Limitedのコードパターンに一致する場合がある。従って、その場合に読取りを「ＮＧ」とすることで、ＵＰＣ−Ａ／ＥＡＮ−１３の読取り誤りを防止することができる。
【００２７】
また、図７の状態とは異なり、実際にバーコードがRSS＿Limitedであることも想定されるが、視野の両端はどうしても照射部７による照明の照度が低くなりがちであり、正確な２値化ができないことも想定される。従って、斯様な場合に読取りを失敗と判定することで、読取り誤りを防止することができる。
【００２８】
（第４実施例）
図８乃至図１１は本発明の第４実施例を示すものである。第４実施例は、バーコード読取装置１の制御回路３が、バーコードのマージンチェックを行う場合の処理に関するものである。尚、第４実施例のマージンチェックは、例えば、第１実施例におけるステップＡ６やステップＡ９において行うものである。先ず、読取ったバーコードのマージンチェックを行う場合の現状の問題について図９乃至図１１を参照して説明する。
【００２９】
２次元センサによってバーコードを読取る場合、上述したように、読取った画像の全体からバーコードが位置するエリアを抽出し、そのエリアに対して１本の走査線を引き、当該走査線に沿って読み取りを行う。この走査線上において、例えば図１０に示すように鏡面反射により黒バーが飽和して白くなっていたり、或いは、ラベルの印刷が粗悪なため黒バーに擦れやボイドがあったりすると、その部分をマージン領域と間違えて処理してしまうことがある。その場合、バーコードの桁落ちや読み間違いが発生する。
【００３０】
また、３６０度全ての角度で読み取りが可能であり、バーコードが２次元的に傾いた状態で読取った場合には、図１１に示すように走査線が途中からバーコードより外れてしまうことがある。このような事態を防止するには、走査線に最初に当たった黒バーが延びている方向を追跡し、当該黒バーが読取り基準の水平に対してなす角度を求め、当該黒バーに対する垂線を算出し、その垂線に沿って走査線を引き直し読み取りを行うようにしている。
【００３１】
ところが、２次元センサでバーコードを読取る場合、バーコードが印刷されている平面に対して仰角、俯角が付いた状態で読み取りを行うと、図９に示すようにバーコードの画像が台形状に歪んでしまうことがある。このように、画像が歪んだ場合には、上記のように最初に当たった黒バーに対する垂線に沿って走査線を引き直しても、その走査線が途中からバーコードより外れてしまうおそれがある。
【００３２】
そこで、第４実施例では、図８に示すフローチャートに従ってマージンチェックを行う。制御回路３は、先ず、走査線を設定する（ステップＢ０）。それから、読取ったバーコードの両端に位置する黒バーについて追跡を行い（ステップＢ１）、それら２本の黒バーが平行であるか否かを判断する（ステップＢ２）。両者が平行であれば（「ＹＥＳ」）、従来通りで問題なく、走査線に沿ってマージンチェックを行うことが可能である（ステップＢ３）。そして、バーコードの種類に応じたマージンが存在すれば（ステップＢ４，「ＹＥＳ」）処理は終了する。
【００３３】
一方、ステップＢ２において、両端のバーコードが平行でなければ（「ＮＯ」）、走査線に沿ってバーコードの外形ＡＢＣＤを求める（ステップＢ６，図９（ｂ）参照）。次に、バーコードの種類に応じて規定されているマージンの量を外形ＡＢＣＤから計算し、マージン領域ＡＢＡ’Ｂ’，ＣＤＣ’Ｄ’を求めて外形ＡＢＣＤの両側に設定する（ステップＢ７）。
【００３４】
続いて、マージン領域ＡＢＡ’Ｂ’，ＣＤＣ’Ｄ’に対し、図９（ｃ）に示すように、外形ＡＢＣＤの両端から外方に向けて複数の検査線を設定すると（ステップＢ８）、それらの各検査線について規定されたマージンが確保されているか否かを判断する（ステップＢ９）。例えば、検査線を３本以上設定し、それらの内でマージンが確保されているものが多数を占めた場合は「ＯＫ」と判断し（「ＹＥＳ」）処理を終了する。マージンが確保されているものが少数であれば（「ＮＯ」）読取りは「ＮＧ」とする（ステップＢ５）。
【００３５】
以上のように第４実施例によれば、エリアセンサである光学的センサ１０によりバーコードの読取りを２次元的に行う場合、バーコードパターンの少なくとも一端において、バー高さ方向の異なる位置に複数の検査線を設定して、それら検査線上の夫々につきマージンが確保されているかを判定するようにした。従って、読取装置１による読取りが、バーコードが印刷されている平面に対し仰角または俯角が付くように傾いた状態で行われた結果、バーコードの画像が両端側で傾いてしまったような場合やバーコードの印字品質が良くない場合でも、マージンが存在するか否かを確実に判定することができる。
【００３６】
また、複数の検査線を３本以上設定し、これらの検査線についてマージンが確保されているかを多数決原理で決定するので、マージンの存否を妥当に判定することができる。そして、両端に位置するバーの配置が平行であるか否かを判定し、両者が不平行である場合に複数の検査線を設定し、両者が平行である場合は従来と同様にマージンチェックを行うようにした。従って、バーコードの読取りが傾いた状態で行われたものと推定される場合にだけ複数の検査線が設定することで、読取りをより迅速に行うことができる。
【００３７】
（第５実施例）
図１２及び図１３は本発明の第５実施例を示すものである。例えば、表などのスペースが限られている所にバーコードを付す場合、ラベル１５の枠線に対して、規定されたマージンを確保することなくバーコードを印刷するようなことがある（図１３参照）。第５実施例は、斯様な場合にも対応して確実にマージンチェックを行うものである。
【００３８】
図１２において、制御回路３は、バーコード両端外側の規定されたマージン領域中に検査線を設定し、黒バーが存在するか否かを判断する（ステップＣ１）。即ち、図１３に示すような状態では、ラベル１５の枠線自体を黒バーとして検出する場合がある。黒バーがなければ（「ＮＯ」）従来通りで問題はないので、ステップＣ５に移行して規定されたマージンがあるか否かを判断する。ステップＣ５で規定されたマージンがない場合は（「ＮＯ」）読取り「ＮＧ」とする（ステップＣ６）。
【００３９】
一方、マージン領域中に、黒バーが存在した場合は（「ＹＥＳ」）、その黒バーを追跡して高さＨ２を検出する（ステップＣ２）。それから、検出した高さＨ２を、既に読取ったバーコードのバーの高さＨ１と比較する（ステップＣ３）。「Ｈ１＜Ｈ２」であれば（「ＹＥＳ」）、ステップＣ１で検出した黒バーは、バーコードパターンを構成するバーではなくラベル１５の枠線であると推定することができる。従って、ステップＣ１で検出した黒バーは無視して、当該黒バーが位置する部分はマージン領域の一部であると判別し（ステップＣ４）、ステップＣ５に移行する。また、ステップＣ３において、「Ｈ１≧Ｈ２」であれば（「ＮＯ」）、ステップＣ１で検出した黒バーはバーコードパターンを構成するバーの可能性があるので、当該黒バーをコードパターンに加えて再度デコードを行う（ステップＣ７）。
【００４０】
以上のように第５実施例によれば、バーコードパターンの両端外側に検査線上で検出されたバーの高さＨ２を測定して当該バーの高さを読取り済みバーコードのバーの高さＨ１と比較し、両者の高さが異なる場合は検査線上で検出されたバーをマージンと判定するようにした。従って、バーコードがラベル１５の枠内に規定されたマージンが確保されていない状態で印刷されているような場合でも、バーコードの一部であるバーとラベル１５の枠線とを確実に判別することができる。
【００４１】
（第６実施例）
図１４は本発明の第６実施例を示すものであり、第１実施例と異なる部分について説明する。第６実施例では、第１実施例の図２で示したように、RSS＿Limitedのコードパターンの内、ＵＰＣ−Ａ／ＥＡＮ−１３のコードパターンの一部に一致するものを全て、予めメモリ４に記憶させておく。そして、制御回路３は、ステップＡ１５で「ＹＥＳ」と判断すると、メモリ４に記憶させたRSS＿Limitedのコードパターンを検索する（ステップＡ２０）。それから、ステップＡ７でデコードしたRSS＿Limitedのコードパターンが、メモリ４に記憶させたパターンに一致するか否かを判断する（ステップＡ２１）。
【００４２】
ステップＡ２１において、一致するパターンが存在しなければ（「ＮＯ」）、その時点で、デコードしたRSS＿LimitedがＵＰＣ−Ａ／ＥＡＮ−１３のコードパターンの一部でないことが確定するので処理を終了する。一方、一致するパターンが存在すれば（「ＹＥＳ」）ステップＡ１６に移行して第１実施例と同様に処理を行なう。
以上のように第６実施例によれば、RSS＿LimitedがＵＰＣ−Ａ／ＥＡＮ−１３のコードパターンの一部と一致するため両者を読み間違える可能性がある場合にだけ、第１実施例と同様の処理を行うので、読取りをより効率的に行うことができる。
【００４３】
（第７実施例）
図１５は本発明の第７実施例を示すものであり、第１実施例と異なる部分について説明する。第７実施例では、制御回路３は、ステップＡ１３の実行後に、ユーザによってRSS＿LimitedとＰＯＳコードの少なくとも１種類とが双方とも読取り対象に設定されているか否かを判断する（ステップＡ２２）。そして、双方とも読取り対象に設定されていれば（「ＹＥＳ」）ステップＡ１５に移行し、双方とも読取り対象に設定されていない場合は（「ＮＯ」，この場合、何れか一方だけが対象の場合も含む）そのまま処理を終了する。
即ち、双方が読取り対象に設定されていない場合は、読み取り対象のバーコードは何れか一方のみであることが前提であるから、ＰＯＳコードを誤ってRSS＿Limitedと読取る可能性はない。従って、双方が読取り対象に設定されている場合にだけステップＡ１５〜Ａ１７を実行することで読取り効率を向上させることができる。
【００４４】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
第１乃至第３実施例で行うバーコードの読み取りは、ラインセンサによって１次元的に行っても良い。
第１バーコードを構成するバーの最大幅の決定は、ステップＡ３でバー幅を検出した段階で行っても良い。また、必ずしも実際に読取ったパターンに基づいて決定する必要はなく、読取り対象として想定されるバーコードの種類に応じてバーの最大幅を予めデータとして保持しておき、そのデータに基づいて決定しても良い。
第２実施例において、ＵＰＣ−Ａ／ＥＡＮ−１３のキャラクタコードが存在するかどうかに替えて、バーコードの両端が全て１〜４モジュールのバーで構成されている場合に、読み取りを「ＮＧ」としても良い。
【００４５】
また、第２実施例においてステップＡ１５を削除し、「読み取りＯＫ」となったバーコードがRSS＿Limitedであるか否かに係らず、ステップＡ１８で第１バーコードのキャラクタコードについて存否を判定するようにしても良い。そして、この時ステップＡ１８では、第１バーコードのキャラクタコードのみならず、スタートパターン又はストップパターンが存在するか否かについても判定するようにしても良い。
第４実施例において、複数の検査線の全てについてマージンが確保されている場合にのみマージンの存在を確定しても良く、この場合、マージンの存否を一層確実に判定することができる。
また、第４実施例において、ステップＢ２を省略し、両端のバーが平行であるか否かにかかわらず以降の処理を実施しても良い。
第４又は第５実施例のマージンチェック方法を、例えば第１実施例のステップＡ１７に対して適用しても良い。
【００４６】
第２過程における最大幅を超えるバーは、黒バーを対象としても良い。
バーコード読取装置１を、夫々のバーコードにマージンが適切に設定されているか否かを判別する手段を、バーコードの種類毎に設定可能となるように構成しても良い。斯様に構成すれば、例えばRSS＿Limitedのようにマージンが規定されていないバーコードだけを読取るような場合には、不要な判定処理を行うことなく読み取りを迅速に行うことができる。
第１，第２バーコードは、夫々ＰＯＳコード，RSS＿Limitedに限ることはなく、要は、第１バーコードの一部のコードパターンが、第２バーコードのコードパターンに一致又は類似するような関係にあるものに適用することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の第１実施例であり、バーコード読取装置の制御回路が制御プログラムを実行した場合の処理内容を示すフローチャート
【図２】RSS＿Limitedと、ＵＰＣ−Ａのバーコードパターンの一部とが一致するものを上下に配列して示す図
【図３】バーコード読取装置の電気的構成を概略的に示す機能ブロック図
【図４】本発明の第２実施例を示す図１相当図
【図５】読取り対象のバーコードと、バーコード読取装置の読取り視野との位置関係の一例を示す図
【図６】本発明の第３実施例を示す図１相当図
【図７】図５相当図
【図８】本発明の第４実施例であり、制御回路がマージンチェックを行う場合の処理内容を示すフローチャート
【図９】図８の処理内容を、読取ったバーコードパターンに即して説明する図
【図１０】従来の走査線の設定状態を示す図（その１）
【図１１】従来の走査線の設定状態を示す図（その２）
【図１２】本発明の第５実施例を示す図１相当図
【図１３】ラベルの枠に対して、規定されたマージンを確保せずバーコードを印刷した状態を示す図
【図１４】本発明の第６実施例を示す図１相当図
【図１５】本発明の第７実施例を示す図１相当図
【符号の説明】
【００４８】
図面中、１はバーコード読取装置、３は制御回路（コンピュータ）、４はメモリ、１０は光学的センサ（エリアセンサ）、１４は制御プログラム（コンピュータプログラム）を示す。
【図１】
2008159084.tif 000003
【図２】
2008159084.tif 000004
【図３】
2008159084.tif 000005
【図４】
2008159084.tif 000006
【図５】
2008159084.tif 000007
【図６】
2008159084.tif 000008
【図７】
2008159084.tif 000009
【図８】
2008159084.tif 000010
【図９】
2008159084.tif 000011
【図１０】
2008159084.tif 000012
【図１１】
2008159084.tif 000013
【図１２】
2008159084.tif 000014
【図１３】
2008159084.tif 000015
【図１４】
2008159084.tif 000016
【図１５】
2008159084.tif 000017