(57)【特許請求の範囲】
【請求項１】
媒体上に記録されたバーコード情報を読取手段により読み取り、所定の２値化しきい値で２値化情報に変換する第１ステップと、
前記２値化情報に基づいて、バーコード情報を構成する複数の黒エレメントと白エレメントのエレメント幅を順次測定するとともに、各エレメント幅を測定した順番に並べた幅配列を生成する第２ステップと、
所定の規則に基づいて各エレメント幅の「細」または「太」を判定し、この判定された結果に基づいて、前記幅配列をビットパターンに変換する第３ステップと、
前記ビットパターンに該当するキャラクタを判定する第４ステップと、
を含み、
前記第４ステップにおいて、前記ビットパターンに該当するキャラクタが存在しない場合に、キャラクタを構成する「太」の個数に基づいて第２幅しきい値を求めて各エレメント幅の「細」または「太」を再判定し、この再判定された結果に基づいて、前記幅配列をビットパターンに再変換する第５ステップと、
再変換されたビットパターンに該当するキャラクタを判定する第６ステップと、を有することを特徴とするバーコード情報読取方法。
【請求項２】
前記第５ステップは、再判定した「太」の構成を、黒エレメントと白エレメントの規定の組合せと比較し、一致するか否かを判定することを特徴とする請求項１記載のバーコード情報読取方法。
【請求項３】
前記キャラクタは、ＣＯＤＥ３９に基づいて構成されていることを特徴とする請求項１又は２記載のバーコード情報読取方法。
【請求項４】
前記第３ステップは、エレメント幅Ｔが、キャラクタの全長幅Ｓに対して、
Ｔ≧Ｓ／８であるエレメント幅を「太」と判定することを特徴とする請求項３記載のバーコード情報読取方法。
【請求項５】
前記第５ステップは、前記第２ステップで生成した幅配列を太い順に並べ替え、太い方から３番目のエレメントのエレメント幅を第２幅しきい値ＴＨ２とし、
エレメント幅Ｔが、Ｔ≧ＴＨ２であるエレメントを「太」と判定することを特徴とする請求項３又は４記載のバーコード情報読取方法。
【請求項６】
前記第５ステップは、再判定した「太」の構成を、ＣＯＤＥ３９に規定される黒エレメントと白エレメントの組合せと比較し、一致しない場合にキャラクタ不明と判定することを特徴とする請求項３から５のいずれか記載のバーコード情報読取方法。
【請求項７】
媒体上に記録されたバーコード情報を読み取る読取部と、
読み取られた情報を所定の２値化しきい値で２値化情報に変換する２値化処理部と、
前記２値化情報に基づいて、バーコード情報を構成する複数のエレメントのエレメント幅を順次測定するとともに、各エレメント幅を測定した順番に並べた幅配列を生成する幅配列生成部と、
所定の規則に基づいて各エレメント幅の「細」または「太」を判定し、この判定された結果に基づいて、前記幅配列をビットパターンに変換するビットパターン第１変換部と、
前記ビットパターンに該当するキャラクタを判定する判定部と、
を有し、
前記判定部において、前記ビットパターンに該当するキャラクタが存在しない場合に、キャラクタを構成する「太」の個数に基づいて第２幅しきい値を求めて各エレメント幅の「細」または「太」を再判定し、この再判定された結果に基づいて、前記幅配列をビットパターンに再変換するビットパターン第２変換部を備え、
再変換されたビットパターンに該当するキャラクタを前記判定部において判定することを特徴とするバーコード情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード情報を光学的に読み取るバーコード情報読取装置及びバーコード情報読取方法に関する。
【背景技術】
【０００２】
従来より、バーコード情報は、物体に固有の識別情報を付与して、これを自動認識するための手段として幅広く使われている。例えば、商品などに添付されたバーコード情報は、レーザスキャナやＣＣＤカメラなどのバーコード情報読取装置により、通常は多値情報として読み取られ、所定の２値化しきい値によって多値情報を２値化してから復号するのが一般的である。
【０００３】
例えば、バーコード情報は、エレメント幅が太いか細いかの２つのパターンを持つ、白エレメント（スペース）及び黒エレメント（バー）の２種類のエレメント群より構成された２値レベルコードである。
【０００４】
一般に、このようなバーコード情報は、バーコード情報読取装置によって、１つのキャラクタを構成する黒エレメント及び白エレメント毎に、各エレメント幅を計測し、計測結果から算出される幅しきい値に基づいて、各エレメント幅を比較することによって、それぞれの幅が太いか細いかを判断し、その「太」／「細」の並びで構成される２進数のビットパターンを解析することにより、キャラクタを判読することで、バーコード情報の復号が行なわれている。
【０００５】
しかしながら、上記した各エレメント幅は、バーコード情報の印刷状態やバーコード情報読取装置の証明ムラになどによって変動し、各エレメント幅の計測が正確に行えず、本来のキャラクタとは異なるキャラクタに復号して誤読となってしまう場合がある。このため、バーコード情報読取装置は、さらに読取精度を改良する試みがなされ、誤読を低減する手段が、例えば、特許文献１に開示されている。
【０００６】
特許文献１に開示されたバーコード情報読取装置は、最もノイズを受けて誤差が大きいと思われる最大及び最小のデータは用いず、２番目にエレメント幅が太いデータ及び２番目にエレメント幅が細いデータを用いて２値化しきい値を算出し、この２値化しきい値を用いて、黒エレメント（バー）や白エレメント（スペース）の太りや細りの影響を排除するものである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平５−１０１２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に開示されたバーコード情報読取装置では、黒エレメント（バー）や白エレメント（スペース）の印刷条件に起因する太りや細りの影響を緩和することはできるが、バーコード情報を読み取る際、読取速度が変動して発生する読み取り信号のジッタ（時間方向の変動）、または、読み取り対象のバーコード情報と下地とのコントラストの差が少ないものや下地の濃度が徐々に変化するものによる読み取られたデータのレベルの変動により、黒エレメントと白エレメントが微小に変動して生じる誤読に対しては、あまり有効でないという問題がある。
【０００９】
本発明は、このような点に鑑みてなされたものであり、その目的は、バーコード情報の読み取り時の環境条件の影響に左右されずに、バーコード情報を、正しく読み取ることが可能なバーコード情報読取方法及びバーコード情報読取装置を提供することにある。
【課題を解決するための手段】
【００１０】
以上のような課題を解決するために、本発明は、従来方法では読取不能となっていたバーコード情報を、キャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定し、この再判定された結果に基づいて、前記幅配列をビットパターンに再変換するとともに、再変換されたビットパターンに該当するキャラクタを判定することを特徴とする。
【００１１】
より具体的には、本発明は、以下のものを提供する。
【００１２】
（１）  媒体上に記録されたバーコード情報を読取手段により読み取り、所定の２値化しきい値で２値化情報に変換する第１ステップと、前記２値化情報に基づいて、バーコード情報を構成する複数の黒エレメントと白エレメントのエレメント幅を順次測定するとともに、各エレメント幅を測定した順番に並べた幅配列を生成する第２ステップと、所定の規則に基づいて各エレメント幅の「細」または「太」を判定し、この判定された結果に基づいて、前記幅配列をビットパターンに変換する第３ステップと、前記ビットパターンに該当するキャラクタを判定する第４ステップと、を含み、前記第４ステップにおいて、前記ビットパターンに該当するキャラクタが存在しない場合に、キャラクタを構成する「太」の個数に基づいて第２幅しきい値を求めて各エレメント幅の「細」または「太」を再判定し、この再判定された結果に基づいて、前記幅配列をビットパターンに再変換する第５ステップと、再変換されたビットパターンに該当するキャラクタを判定する第６ステップと、を有することを特徴とするバーコード情報読取方法。
【００１３】
本発明によれば、第１ステップで読取手段により読み取ったバーコード情報を所定の２値化しきい値で２値化情報に変換し、第２ステップで２値化情報に基づいてバーコード情報を構成する複数の黒および白エレメントのエレメント幅を順次測定し、第３ステップで所定の規則に基づいて各エレメント幅の「細」または「太」を判定して幅配列をビットパターンに変換し、第４ステップでビットパターンに該当するキャラクタを判定し、ビットパターンに該当するキャラクタが存在しない場合に、第５ステップでキャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定して幅配列をビットパターンに再変換し、第６ステップで再変換されたビットパターンに該当するキャラクタを判定することから、所定の規則に基づく従来方法では読取不能であったキャラクタであっても、キャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定することにより、バーコード情報を正しく読み取ることができる。
【００１４】
従って、バーコード情報の読み取り時の環境条件の影響に左右されずに、バーコード情報を、正しく読み取ることが可能である。
【００１５】
ここで、第３ステップの所定の規則とは、例えば、「太」と「細」の幅の比率から決められている第１幅しきい値など従来から用いられているものであり、第５ステップのキャラクタ構成上の特徴とは、例えば、キャラクタを構成するエレメントの個数、エレメント幅が「太」の個数及び「太」における黒白の割合などが挙げられる。
【００１６】
（２）  前記第５ステップは、再判定した「太」の構成を、黒エレメントと白エレメントの規定の組合せと比較し、一致するか否かを判定することを特徴とするバーコード情報読取方法。
【００１７】
本発明によれば、前記第５ステップは、キャラクタを構成する「太」の個数に基づいて第２幅しきい値を求めて各エレメント幅の「細」または「太」を再判定し、再判定した「太」の構成を、黒エレメントと白エレメントの規定の組合せと比較し、一致するか否かを判定することから、キャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定することができるとともに、黒エレメントと白エレメントの組合せを比較することにより、簡単かつ迅速に読取結果の成否を判断することができる。
【００１８】
（３）  前記キャラクタは、ＣＯＤＥ３９に基づいて構成されていることを特徴とするバーコード情報読取方法。
【００１９】
本発明によれば、ＣＯＤＥ３９において、キャラクタのエレメント幅配列が、１）「太」の数は３であり、２）「太」の構成は２種類のみ（「黒エレメント２個、白エレメント１個」および「黒エレメント０個、白エレメント３個」）であるという規則性を利用して復号を行うことができる。
【００２０】
（４）  前記第３ステップは、エレメント幅Ｔが、キャラクタの全長幅Ｓに対して、Ｔ≧Ｓ／８  であるエレメント幅を「太」と判定することを特徴とするバーコード情報読取方法。
【００２１】
本発明によれば、初めに、所定の規則（Ｔ≧Ｓ／８）に基づいて各エレメント幅の「細」または「太」を判定することから、誤読を低減することができる。ここで、ＣＯＤＥ３９の復号アルゴリズムは、日本工業規格ＪＩＳＸ０５０３に記載されているものを用いることも可能である。
【００２２】
（５）  前記第５ステップは、前記第２ステップで生成した幅配列を太い順に並べ替え、太い方から３番目のエレメントのエレメント幅を第２幅しきい値ＴＨ２とし、エレメント幅Ｔが、Ｔ≧ＴＨ２  であるエレメントを「太」と判定することを特徴とするバーコード情報読取方法。
【００２３】
本発明によれば、既に第２ステップで生成した幅配列から簡単に第２幅しきい値ＴＨ２を求めることができると共に、ＣＯＤＥ３９に基づいて構成されるキャラクタは「太」の数が３であるというキャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定するから、所定の規則に基づく方法では読取不能であったキャラクタであっても、バーコード情報を正しく読み取ることができる。
【００２４】
（６）  前記第５ステップは、再判定した「太」の構成を、ＣＯＤＥ３９に規定される黒エレメントと白エレメントの組合せと比較し、一致しない場合にキャラクタ不明と判定することを特徴とするバーコード情報読取方法。
【００２５】
本発明によれば、ＣＯＤＥ３９に基づいて構成されるキャラクタは、「太」の構成が２種類のみ（「黒エレメント２個、白エレメント１個」および「黒エレメント０個、白エレメント３個」）であるという規則性を利用して、黒エレメントと白エレメントの個数の組合せを比較することにより、ビットパターンをキャラクタのコードと比較することなく、簡単に読取結果の成否を判断することができる。
【００２６】
（７）  媒体上に記録されたバーコード情報を読み取る読取部と、読み取られた情報を所定の２値化しきい値で２値化情報に変換する２値化処理部と、前記２値化情報に基づいて、バーコード情報を構成する複数のエレメントのエレメント幅を順次測定するとともに、各エレメント幅を測定した順番に並べた幅配列を生成する幅配列生成部と、所定の規則に基づいて各エレメント幅の「細」または「太」を判定し、この判定された結果に基づいて、前記幅配列をビットパターンに変換するビットパターン第１変換部と、前記ビットパターンに該当するキャラクタを判定する判定部と、を有し、前記判定部において、前記ビットパターンに該当するキャラクタが存在しない場合に、キャラクタを構成する「太」の個数に基づいて第２幅しきい値を求めて各エレメント幅の「細」または「太」を再判定し、この再判定された結果に基づいて、前記幅配列をビットパターンに再変換するビットパターン第２変換部を備え、再変換されたビットパターンに該当するキャラクタを前記判定部において判定することを特徴とするバーコード情報読取装置。
【００２７】
本発明によれば、上述した（１）と同様に、所定の規則に基づく従来方法では読取不能であったキャラクタであっても、キャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定することにより、バーコード情報を正しく読み取ることができる。
【発明の効果】
【００２８】
本発明に係るバーコード情報読取方法及びバーコード情報読取装置は、バーコード情報の読み取り時の環境条件の影響に左右されずに、バーコード情報を、正しく読み取ることが可能である。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係るバーコード情報読取装置の電気的構成を示すブロック図である。
【図２】本発明の実施の形態に係る第１のバーコード情報読取方法の流れを示すフローチャートである。
【図３】本発明の実施の形態に係る第２のバーコード情報読取方法の流れを示すフローチャートである。
【図４】ＣＯＤＥ３９の規格による数値情報とバーコード配置との関係を示す説明図である。
【図５】多値情報を２値化情報に変換する様子を説明するための説明図である。
【図６】エレメント幅配列の一例を示す図である。
【図７】図６に示すエレメント幅配列を変換したビットパターンを示す図である。
【図８】本発明の実施の形態に係る第２のバーコード情報読取方法により図６に示すエレメント幅配列を変換したビットパターンを示す図である。
【発明を実施するための形態】
【００３０】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００３１】
［バーコード情報読取装置］
図１は、本発明の実施の形態に係るバーコード情報読取装置１の電気的構成を示すブロック図である。
【００３２】
図１において、バーコード情報読取装置１は、密着型の一次元撮像素子１１ａと、媒体搬送機構（搬送ガイド１１ｂを含む）と、を有する撮像装置１１と、画像メモリ１２と、読取制御部１３と、データ処理部２０と、を備えている。
【００３３】
撮像装置１１は、カードなどの記録媒体２上に記録されたバーコード情報２１を多値情報として読み取る読取手段である。本実施の形態では、撮像装置１１は、密着型の一次元撮像素子１１ａを備え、撮像素子１１ａによって光学像を撮像するようになっている。カードなどの記録媒体２は、媒体搬送機構の搬送ガイド１１ｂに沿って搬送され、一次元撮像素子１１ａを通過することによって、バーコード情報２１を含む記録媒体２の表面が撮像されるようになっている。本実施の形態では、撮像装置１１は、密着型の一次元撮像素子１１ａを備え、撮像素子１１ａによって光学像を撮像し、撮像によって得られたアナログの画像信号を光電変換し、デジタルの多値情報として画像データに変換した後に画像メモリ１２に記憶している。
【００３４】
画像メモリ１２は、画像を有限個の画素の行列とみなし、各画素の画素値である輝度値を数値で表したものである。輝度値は一定の範囲の数で表される。例えば、８ビットの２５６階調の多値情報で表され、輝度値は０から２５５までの整数値として表される。具体的には、白エレメントを構成する画素では輝度値が相対的に大きな値になり、黒エレメントを構成する画素では輝度値が相対的に小さな値になっている。本実施の形態では、Ｍ×Ｎ個の画素をマトリクス状に配列して構成され、Ｍ×Ｎ個の領域にバーコード情報２１全体の画像データが記憶されている。なお、この画像メモリ１２は、ＲＡＭ，ＳＤＲＡＭ,ＤＤＲＳＤＲＡＭ，ＲＤＲＡＭなど、画像データを記憶しうるものであれば如何なるものであってもよい。
【００３５】
読取制御部１３は、所定の搬送速度となるように、記録媒体２の移動量を制御している。
【００３６】
また、データ処理部２０は、２値化処理部１４と、幅配列生成部１５と、第１復号部１６及び第２復号部１７と、判定部１８とから構成されている。
【００３７】
２値化処理部１４は、バーコード情報２１の画像データを画像メモリ１２から取り込み、所定の２値化しきい値で２値化情報に変換し、黒エレメントと白エレメントに判定する。幅配列生成部１５は、２値化処理部１４で変換された２値化情報に基づいて、各エレメント幅を順次測定し、測定した順番に並べた幅配列を生成する。
【００３８】
第１復号部１６は、所定の規則に基づいて第１幅しきい値を算出する第１幅しきい値算出部１６ａと、第１幅しきい値に基づいて各エレメント幅の「細」または「太」を判定するビットパターン第１変換部１６ｃとを備えている。
【００３９】
第１幅しきい値算出部１６ａは、幅配列生成部１５において測定された各エレメント幅の総和であるキャラクタの全長幅Ｓから所定の規則に基づいて第１幅しきい値を算出し、ビットパターン第１変換部１６ｃは、算出された第１幅しきい値に基づいて、各エレメント幅を比較し、それぞれについて「太」か「細」かを判断する。その「太」／「細」のエレメント幅の組合せ状態に基づいて復号が行われ、復号結果が、２進数の「０」または「１」に対応させてこれを順に並べて得られるビットパターン（ビット列）として出力される。
【００４０】
判定部１８は、変換処理されたビットパターンが有効なキャラクタに合致するか否かを判定する。
【００４１】
また、第２復号部１７は、キャラクタの構成上の特徴に基づいて第２幅しきい値を算出する第２幅しきい値算出部１７ａと、エレメント幅が「太」の数を黒エレメントと白エレメントと別々にカウントする黒・白エレメントカウンタ部１７ｂと、第２幅しきい値に基づいて各エレメント幅の「細」または「太」を再判定するビットパターン第２変換部１７ｃとを備えている。
【００４２】
第２幅しきい値算出部１７ａは、幅配列生成部１５において測定された各エレメント幅からキャラクタの構成上の特徴に基づいて第２幅しきい値を算出し、ビットパターン第２変換部１７ｃは、算出された第２幅しきい値に基づいて、各エレメント幅を比較し、それぞれについて「太」か「細」かを判断し、黒・白エレメントカウンタ部１７ｂは、エレメント幅が「太」の数を黒エレメントと白エレメントと別々にカウントして読み取りの成否を検証する。そして、その「太」／「細」のエレメント幅の組合せ状態に基づいて復号が行われ、復号結果が、２進数の「０」または「１」に対応させてこれを順に並べて得られるビットパターン（ビット列）として出力される。
【００４３】
本実施の形態では、第１幅しきい値ＴＨ１は、日本工業規格ＪＩＳＸ０５０３に記載されている所定の規則（Ｔ≧Ｓ／８）に基づいて求められる値であり、第２幅しきい値ＴＨ２は幅配列を太い順に並べ替え、太い方から３番目のエレメントのエレメント幅の値としている。
【００４４】
第２復号部１７は、ＣＯＤＥ３９に基づいて構成されるキャラクタが、ＣＯＤＥ３９がもつ規則性を利用して、エレメント幅が「太」の黒エレメントと白エレメントの個数の組合せを比較し、読み取りの成否を検証する。
【００４５】
このような電気的構成からなるバーコード情報読取装置１において、本発明の実施の形態に係るバーコード情報読取方法について説明する。
【００４６】
［バーコード情報読取方法］
図２及び図３は、本発明の実施の形態に係る第１、第２のバーコード情報読取方法の流れを示すフローチャートである。図４はＣＯＤＥ３９の規格による数値情報とバーコード配置との関係を示す説明図である。図５は、バーコード情報の多値情報を２値化情報に変換する様子を説明する説明図である。
【００４７】
本実施例では、バーコード情報は、エレメント幅が「太」と「細」との２種類で構成された２値レベルコードの一種であるＣＯＤＥ３９と呼ばれるバーコードタイプを例にして説明する。
【００４８】
図４に示すように、ＣＯＤＥ３９に基づいて構成されたバーコード情報は、キャラクタ当たりのエレメント数が９本であり、５本の黒エレメントと、４本の白エレメントとで構成されている。このうち、エレメント幅が「太」は３本、「細」は６本と決められている。そして、１つのキャラクタを表現したバーコード情報は、必ず黒エレメントで始まり、必ず黒エレメントで終わるようになっている。
具体的には、図４において、左欄の「コード」は、数値情報（キャラクタ）を示し、中央欄の「パターン」は、黒エレメントと白エレメントを交互に用いながら、エレメント幅の「太」、「細」のパターン配置を示し、右欄の「ビットパターン」は、中央欄のエレメント幅において、「太」を「１」、細バーを「０」として２進数で表現している。
【００４９】
次に、図２を用いて、第１のバーコード情報読取方法の流れを概説する。
まず、１キャラクタ分の画像データを取り込む（Ｓ１１）。具体的には、バーコード情報読取装置１の撮像素子１１ａは、搬送ガイド１１ｂに沿って所定位置まで移動した記録媒体２のバーコード情報２１を、光電変換によって撮像する。そして、撮像されたバーコード情報２１全ての画像データは、画素毎に多値情報として画像メモリ１２において記憶される。例えば、画像メモリ１２はＭ×Ｎ個の画素をマトリクス状に配列して構成され、各画素に多値情報としての２５６階調の輝度値が記憶される。
【００５０】
その後、２値化処理部１４は、画像メモリ１２に記憶された多値情報で表された画像データを、その画像データ中の１キャラクタ分の画像データを取り込む。具体的には、図１に示すようなバーコード情報２１においては、エレメントの長手方向に対して垂直な方向（エレメント幅の方向、すなわちエレメントが配列される方向）にだけ情報を持っている。すなわち、エレメントの長手方向を縦方向とすると、それに垂直な横方向の輝度値の変化によって決まるので、画像データの中で、実際にバーコード情報の認識に必要な部分は全部の画素ではなく、例えば、Ｍ×Ｎ画素の画像データの場合、１×Ｎ画素の１次元の画素列の画像データを用いている。そこで、本実施の形態では、図１に示す読取走査線ＳＬ上に該当する画素の輝度値（多値情報）を読み込むようにしている。本実施の形態では、読取走査線ＳＬはバーコード情報２１の縦方向（読取走査線ＳＬに直交する方向）のほぼ真中に形成され、１×Ｎ個の画素で構成されている。なお、読取走査線ＳＬは、１×Ｎ画素に限定されるものではなく、縦方向に２、３画素を選択した２（または３）×Ｎ画素の輝度値から決めてもよい。この場合には、各画素の輝度値は、それらの合計値または平均値をとるようにしてもよい。
【００５１】
図５上段は、１キャラクタ分の画像データにおける、読取走査線ＳＬ方向に配列された各画素の輝度値分布を示している。同図において、横軸は、画素位置を表し、縦軸は各画素の輝度値（０〜２５５）を表している。
【００５２】
２値化処理部１４は、この多値情報を所定の２値化しきい値ｔｈを用いて、図５下段に示す２値化情報に変換し、黒エレメントと白エレメントを判別可能な状態にして画像メモリ１２に記憶する。本実施の形態では、図５上段に示す２値化しきい値ｔｈは、読取走査線ＳＬを構成する全画素の画像データの多値情報の総和を全画素数で除算した値である。
【００５３】
次いで、幅配列生成部１５は、図５下段に示す２値化情報に基づいて、１キャラクタを構成する９本の黒エレメント及び白エレメントのエレメント幅を順次測定して、エレメント幅配列ＴＸ（Ｘ＝１〜９）を求める（Ｓ１２）。具体的には、図５下段に示すように、横軸の画素数、すなわち、読取走査線ＳＬ方向に配列された画素数をエレメント幅として計測している。（図６のサンプル１参照。）
【００５４】
次いで、第１復号部１６は、所定の規則に基づいて各エレメント幅の「細」または「太」を判定する（Ｓ１３）。ここで、ＣＯＤＥ３９の復号アルゴリズムは、日本工業規格ＪＩＳＸ０５０３に記載されているものに準じて、次に説明するように判定を行う。
【００５５】
第１幅しきい値算出部１６ａは、以下の手順により第１幅しきい値を算出する。
まず、９本のエレメントからなる１キャラクタの全長幅をＳとする（図５参照）。キャラクタの各エレメント幅をＴとし、Ｔ≧Ｓ／８＝ＴＨ１（第１幅しきい値）であれば、そのエレメント幅は「太」とみなしてビット「１」を与え、そうでない場合（Ｔ<Ｓ／８）には、「細」とみなしてビット「０」を与える（Ｓ１４）。より詳細に説明すると、まず、９本のエレメントからなる１キャラクタの全長幅をＳとする。ここでエレメント幅の「太」「細」が２対１の比率の場合に、１つのキャラクタは「太」３本、「細」６本で構成されるから１キャラクタで「細」を基準とした全体の比は２×３＋１×６＝１２となり１キャラクタ分のエレメント幅の合計値を１２で割ったものが「細」のエレメント幅すなわちＳ／１２となる。ここで「太」「細」を判断する第１幅しきい値ＴＨ１としては中間の値が必要となり「細」のエレメント幅を１．５倍することで第１幅しきい値ＴＨ１＝１．５Ｓ／１２＝Ｓ／８を得る。
【００５６】
ビットパターン第１変換部１６ｃは、このビット変換処理を１キャラクタの全エレメントに対して行う。そして、判定部１８は、ビットパターン第１変換部１６ｃにおいて各エレメント幅が「細」または「太」をそれぞれ２進数の０または１に変換処理されてこれを順に並べたビットパターン（ビット列）が有効なキャラクタに合致するか否かを判定する（Ｓ１５）。
【００５７】
例えば、あるキャラクタに関して、図６に示すサンプル１のようなエレメント幅配列が得られたとする。この例では、
Ｓ１＝６＋３＋１１＋７＋１１＋３＋６＋３＋６＝５６
第１幅しきい値ＴＨ１＝Ｓ／８＝５６／８＝７
となり、左から１番目のエレメント幅Ｔ１＝６について、６<７となるので、「細」とみなしてビット「０」が与えられる。他のエレメントについても順次ビット変換を行うと、図７に示すサンプル１のようなビットパターンが得られる。
【００５８】
次いで、判定部１８は、得られたビットパターンからキャラクタを決定する（Ｓ１６）。このビットパターンは、図４においてキャラクタコード６が該当し、正しい結果が得られたと判定し、復号処理を終了する。
【００５９】
一方で、同じキャラクタに関して、読み取り信号のジッタ、または、画像データのレベルの変動等のバーコード読み取り時の条件によって、図６に示すサンプル２のようなエレメント幅配列が得られる場合がある。この例では、２番目、６番目のエレメント幅が増加しており、
Ｓ１０＝６＋４＋１１＋７＋１１＋４＋６＋３＋６＝５８
第１幅しきい値ＴＨ１０＝Ｓ／８＝５８／８＝７．２５
となり、左から４番目のエレメント幅Ｔ４＝７について、７<７．２５となるので、細エレメントとみなされ、このビットには「０」が与えられ、図７に示すサンプル２のようなビットパターンに変換される。しかし、サンプル２のパターンは、図４において、対応するキャラクタコードがないために、判定部１８は、キャラクタ不明と判定し、読取不可となる（Ｓ１７）。
【００６０】
図２に示すＳ１７において、判定部１８が、ビットパターンに対応するキャラクタが存在しないと判定した場合には、Ａに進む。すなわち、第２復号部１７が、図３に示す第２のバーコード情報読取方法を用いて、再度、復号処理を行う。
【００６１】
次に、図３を用いて、第２のバーコード情報読取方法の流れを概説する。
ＣＯＤＥ３９では、キャラクタのエレメント幅配列に次のような規則性がある。
１）エレメント幅が「太」のビットの合計は３である。
２）エレメント幅が「太」の構成は次の２種類のみである。
黒エレメント２個、白エレメント１個
黒エレメント０個、白エレメント３個
この規則性を利用し、図３に示すフローチャートに従って、次に説明する復号処理を行うことができる。
【００６２】
第２復号部１７は、図２に示すＳ１２で求めた１キャラクタ分のエレメント幅配列を読み込む。
【００６３】
次に、第２幅しきい値算出部１７ａは、エレメント幅が「太」か「細」かを分離する第２幅しきい値ＴＨ２を決定する（Ｓ２１）。第２幅しきい値算出部１７ａは、１キャラクタに含まれる９本のエレメント幅を太い順に並べ替えて、上位から３番目に位置するエレメント幅を第２幅しきい値ＴＨ２とする。
【００６４】
図６に示されるサンプル２について具体的に説明する。このエレメント幅を太い順に並べ替えると、エレメント幅配列は、
１１,１１，７，６，６，６，４，４，３
となり、上記した規則性の１）により、上位から３番目に位置するエレメント幅は７であるから、第２幅しきい値ＴＨ２＝７となる。
【００６５】
ビットパターン第２変換部１７ｃは、全てのエレメントに対して、ビットの初期値「０」を与える。次に、図６に示されるサンプル２において、１番目のエレメントＴ１＝６について、これは図５に示すとおり黒エレメントであるが、Ｔ１≧ＴＨ２  を満たさないので、ビットＢ１は初期値「０」のままである（Ｓ２２）。２番目のエレメントＴ２＝４は、白エレメントであって、Ｔ２≧ＴＨ２  を満たさないので、ビットＢ２は初期値「０」のままである（Ｓ２４）。
【００６６】
３番目のエレメントＴ３＝１１は、黒エレメントで、Ｔ３≧ＴＨ２  を満たすので、ビットＢ３は、エレメント幅が「太」と判定し、初期値「０」が「１」に置き換えられる（Ｂ３＝１）。そして、黒・白エレメントカウンタ部１７ｂは、黒エレメントのカウンターを１つカウントアップさせる（Ｓ２２，Ｓ２３）。
【００６７】
４番目のエレメントＴ４＝７は、白エレメントであって、Ｔ１≧ＴＨ２  を満たすので、ビットＢ４は初期値「０」が「１」に置き換えられる（欄Ｂ４＝１）。そして、黒・白エレメントカウンタ部１７ｂは、白エレメントのカウンターが１つカウントアップされる（Ｓ２４，Ｓ２５）。
【００６８】
ビットパターン第２変換部１７ｃは、この処理を最後のエレメントＴ９まで繰り返し実行すると、図８に示すサンプル２のようなビットパターンを得る。
【００６９】
次いで、判定部１８は、第２のバーコード情報読取方法で得られたビットパターンからキャラクタを決定する（Ｓ２７）。このビットパターンは、図４においてキャラクタコード６が該当し、正しい結果が得られたと判定し、復号処理を終了する。これにより、第１のバーコード情報読取方法で読取不能となっていたものが、正しく読み取りすることができる。
【００７０】
また、第２復号部１７は、図３に示すＳ２６において、ＣＯＤＥ３９に基づいて構成されるキャラクタが、「太」の構成が２種類のみ（「黒エレメント２個、白エレメント１個」および「黒エレメント０個、白エレメント３個」）であるという上述した規則性の２）を利用して、黒エレメントと白エレメントの個数の組合せを比較し、読み取りの成否を検証する。
【００７１】
上述のサンプル２では、「太」のエレメント幅は黒エレメントが２個（Ｔ３，Ｔ５）、白エレメントが１個（Ｔ４）であるから、上記した規則性１）、２）のキャラクタ構成上の特徴を満たし、読み取りは成功している。第２復号部１７は、読取成功と判断して、判定部１８によりキャラクタを決定する。
【００７２】
一方、黒エレメントと白エレメントの個数の組合せがキャラクタ構成上の特徴を満たさない場合には、第２復号部１７がキャラクタ不明と判断し、復号処理を終了する（Ｓ２８）。これにより、読取不能の場合には、判定部１８による判定を行わないから、データ処理部２０の負荷を低減することができる。
【００７３】
（本実施の形態の主な効果）
本実施の形態では、図２に示す第１のバーコード情報読取方法において、バーコード情報２１を構成する複数の黒および白エレメントのエレメント幅を順次測定し、所定の規則に基づく第１幅しきい値ＴＨ１＝Ｓ／８により各エレメント幅の「細」または「太」を判定して幅配列をビットパターンに変換し、第４ステップでビットパターンに該当するキャラクタを判定する。そこで、ビットパターンに該当するキャラクタが存在しない場合に、図３に示す第２のバーコード情報読取方法に進み、キャラクタの構成上の特徴、すなわち、上記エレメント幅を太い順に並べ替えて、ＣＯＤＥ３９がもつ規則性により、上位から３番目に位置するエレメント幅を第２幅しきい値ＴＨ２とする。この第２幅しきい値ＴＨ２を用いて、各エレメント幅の「細」または「太」を再判定して幅配列をビットパターンに再変換し、再変換されたビットパターンに該当するキャラクタを判定する。これにより、所定の規則に基づく第１のバーコード読取方法では読取不能であったキャラクタであっても、第２のバーコード読取方法で、キャラクタの構成上の特徴に基づいて各エレメント幅の「細」または「太」を再判定することにより、バーコード情報を正しく読み取ることが可能となる。従って、バーコード情報の読み取り時の環境条件の影響に左右されずに、バーコード情報を、正しく読み取ることが可能である。
【００７４】
本発明は、ＣＯＤＥ３９に基づいて構成されたキャラクタに限られず、２値化レベルコードとしてのＣＯＤＡＢＡＲ（ＮＷ−７）や２ｏｆ５など他のコードに基づいて構成されたキャラクタを読み取ることも可能である。
【００７５】
バーコードの読取方法には、図１に示す例の他に、レーザスキャン方式と、画像処理方式とがある。
【００７６】
本実施の形態は画像処理方式であり、撮像装置としてのカメラによってバーコードを撮影し、その画像データに画像処理を施すことで、バーコード情報を抽出するとともにバーコード情報を構成する４種類のバーの組み合わせを検出し解読する方法である。本願発明は、これに限定されるものではなく、例えば、レーザスキャン方式であってもよい。すなわち、バーコード情報をレーザ光線で走査し、その反射光を光学式１次元センサで検出することで、バーコード情報を構成する４種類（「太」の黒エレメント、「細」の黒エレメント、「太」の白エレメント、「細」の白エレメント）のエレメントの組合せを解読する方法を用いることもできる。
【産業上の利用可能性】
【００７７】
本発明に係るバーコード情報読取方法及びバーコード情報読取装置は、読み取り信号のジッタ（時間方向の変動）やモジュレーション（レベルの変動）により、黒部と白部が微小に変動する外乱にも強く、従来方法では読取不能であったキャラクタであっても、正しく読み取ることができるものとして有用である。
【符号の説明】
【００７８】
１  バーコード情報読取装置
２  記録媒体
１１  撮像装置
１１ａ  撮像素子
１２  画像メモリ
１３  読取制御部
１４  ２値化処理部
１５  幅配列生成部
１６  第１復号部
１７  第２復号部
１８  判定部
２０  データ処理部
【図１】
0005515012.tif 000002
【図２】
0005515012.tif 000003
【図３】
0005515012.tif 000004
【図４】
0005515012.tif 000005
【図５】
0005515012.tif 000006
【図６】
0005515012.tif 000007
【図７】
0005515012.tif 000008
【図８】
0005515012.tif 000009