(57)【要約】【課題】  読取りが成功しない位置に置かれたバーコードをも読取ることができるようにすることにより、装置間の性能のばらつきを抑制する。【解決手段】  一定幅のバーおよび一定幅のスペースのみからなる補正用バーコードを読取りが成功しない位置に配置し、補正用バーコードの各幅を計測する。その位置に配置された補正用バーコードの各計測幅と、読取りが成功する位置に配置したときの各計測幅との比率を求め、その比率と、幅の最小値から最大値の幅ランクと対応付けて幅補正値格納テーブル６ｃに設定する。読取り対象であるバーコードの各幅の平均値を算出し、その平均値が含まれる幅ランクと対応付けられた比率を幅補正値格納テーブル６ｃから選択し、その比率に基づいて、計測した幅データを補正する。【選択図】  図７
2009098717.tif 000002
【特許請求の範囲】
【請求項１】
レーザ光源からのレーザ光をバーコードに向けて照射させる揺動自在な揺動走査手段と、
この揺動走査手段により発生する前記バーコードからの反射光を受光して、前記バーコードを構成するバー幅およびスペース幅を計測し、当該計測結果に基づいて前記バーコードを読取る読取手段と、
を有するバーコード読取装置において、
前記読取手段による読取結果が成功か否かを判定する判定手段と、
この判定手段により否と判定される位置に置かれたバーコードの、バーおよびスペースの各々の位置に対応した幅補正値を記憶する記憶手段と、
前記判定手段により否と判定された場合は、計測した前記バーコードのバーおよびスペースの各々の位置に対応する前記幅補正値を前記記憶手段より読み出して、計測した前記バー幅および前記スペース幅を補正する補正手段と、を備え、
前記読取手段は、前記補正手段による補正結果に基づいて前記バーコードを読取ることを特徴とするバーコード読取装置。
【請求項２】
一定幅のバーおよびスペースのみからなる補正用バーコードが前記判定手段により否と判定される位置に置かれたときの前記読取手段が計測した前記補正用バーコードのバー幅およびスペース幅と、前記一定幅のバーおよび前記一定幅のスペースとの各々の位置での比率を、前記幅補正値として前記記憶手段に記憶させることを特徴とする請求項１記載のバーコード読取装置。
【請求項３】
前記記憶手段には、
前記幅補正値を算出した前記補正用バーコードの特徴を示す特徴値が前記幅補正値に対応付けて記憶されると共に、前記一定幅のバーおよび前記一定幅のスペースの、前記一定幅が異なる複数の補正用バーコードに基づいて算出された複数の前記幅補正値および複数の前記特徴値をも記憶されており、
前記補正手段は、
前記読取手段が計測した前記バーコードの特徴値を抽出し、前記記憶手段に記憶された前記複数の特徴値の中から当該抽出結果に最も近い特徴値を選択し、該選択された特徴値に対応付けられた幅補正値を用いて、前記計測した前記バー幅および前記スペース幅を補正することを特徴とする請求項２記載のバーコード読取装置。
【請求項４】
前記補正用バーコードの特徴を示す特徴値は、前記補正用バーコードのバー幅またはスペース幅の全領域における平均値であることを特徴とする請求項３記載のバーコード読取装置。
【請求項５】
前記補正用バーコードの特徴を示す特徴値は、前記補正用バーコードのバー幅またはスペース幅の全領域における最小値から最大値の範囲を示す値であることを特徴とする請求項３記載のバーコード読取装置。
【請求項６】
前記補正用バーコードの特徴を示す特徴値は、前記補正用バーコードのバー幅またはスペース幅の全領域の中で最も多い値であることを特徴とする請求項３記載のバーコード読取装置。
【請求項７】
前記補正用バーコードは、前記判定手段により否と判定される位置に置かれたときの前記揺動走査手段の走査範囲に等しい長さを有するものであり、
前記記憶手段は、
前記補正用バーコードを複数の領域として記憶し、前記補正用バーコードの中央領域における幅補正値の平均値を第１の幅補正値として記憶すると共に、前記補正用バーコードの前記中央領域およびマージン領域の間の所定領域における幅補正値の平均値を第２の幅補正値として記憶するものであり、
前記補正手段は、
計測した前記バーコードのバーおよびスペースが前記補正用バーコードの前記中央領域に位置するものは前記第１の幅補正値にて補正し、計測した前記バーコードのバーおよびスペースが前記補正用バーコードの前記所定領域に位置するものは前記第２の幅補正値にて補正することを特徴とする請求項２記載のバーコード読取装置。
【請求項８】
前記読取手段は、前記反射光を受光して当該受光強度に応じた電気信号を出力する光電変換手段を有し、
さらに、この光電変換手段からの電気信号のゲインを増減させるゲイン変更手段と、
前記判定手段が否と判定した回数を計数する計数手段と、を備え、
この計数手段により計数された回数が所定回数未満である場合には、前記ゲイン変更手段にてゲインを増減させた電気信号に基づいて前記読取手段に前記バーコードを読取らせると共に、前記計数手段により計数された回数が所定回数以上である場合には、前記補正手段による補正結果に基づいて前記読取手段に前記バーコードを読取らせることを特徴とする請求項１記載のバーコード読取装置。
【請求項９】
前記読取手段は、前記反射光を受光して当該受光強度に応じた電気信号を出力する光電変換手段を有し、
さらに、この光電変換手段からの電気信号に含まれるノイズを除去するフィルタ手段と、
前記判定手段が否と判定した回数を計数する計数手段と、を備え、
この計数手段により計数された回数が所定回数未満である場合には、前記フィルタ手段にてノイズが除去された電気信号に基づいて前記読取手段に前記バーコードを読取らせると共に、前記計数手段により計数された回数が所定回数以上である場合には、前記補正手段による補正結果に基づいて前記読取手段に前記バーコードを読取らせることを特徴とする請求項１記載のバーコード読取装置。
【請求項１０】
前記補正手段による補正の結果、前記読取手段による読取結果が前記判定手段により成功と判定されたとき、読取られたバーコードの中心位置を含む前記補正用バーコードの領域を特定して逐一記憶する特定領域記憶手段を備え、
前記判定手段により否と判定された場合には、前記補正手段は、前記特定領域記憶手段に記憶された領域の中から最も多い領域を選択し、当該選択された領域における幅補正値に基づいて補正することを特徴とする請求項７記載のバーコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、レーザ光によってバーコードを走査し、バーコードからの反射光に基づいてバーコードを読取るバーコード読取装置に関する。
【背景技術】
【０００２】
従来、この種のバーコード読取装置として、レーザ光源からのレーザ光を、揺動する反射ミラーにて反射させることにより、その反射したレーザ光でバーコード上を往復走査し、バーコードからの反射光を受光してバーコードを構成するバー幅およびスペース幅を計測し、その計測結果に基づいてバーコードを読取るものがある。
【０００３】
しかし、上記のものは、走査領域の中心で走査速度が大きくなり、走査領域の両端部分で走査速度が急激に減少して両端で走査速度が０となるため、走査領域の両端部のバー幅およびスペース幅が本来の幅よりも太く計測されてしまい、読取り成功率が低下するという問題があった。
そこで、走査領域の両端部に向かうレーザ光を遮断する開口絞りを設けたり、走査領域の両端部に対応する計測データを読取りに使用しないようにすることにより、上記の問題を解決することが提案されている（特許文献１）。
【特許文献１】特開平７−２７０６９７号公報（第２３〜２５段落、図６，８）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、バーコード読取装置では、バーコードの読取りを成功することができる範囲として、装置からバーコードまでの距離が仕様に定められている（図４参照）。また、バーコード読取装置ごとに、使用する部品の個体差や組付け精度の差により、上記の距離にばらつきがあるため、どの装置でも読取りが成功する距離を仕様値に設定している。
しかし、実際には、ユーザが仕様範囲外で読取りを開始する場合があり、このような場合に前述した装置間の性能のばらつきにより、装置によって仕様範囲外でも読取りが成功するものと、そうでないものとが出てしまう。
そこで、読取りが成功しない位置に置かれたバーコードをも読取ることができるようにすることにより、装置間の性能のばらつきを抑制することが課題となっている。
【０００５】
この発明は、上述の問題を解決するためになされたものであり、読取が成功しない位置に置かれたバーコードをも読取ることができるようにすることにより、装置間の性能のばらつきを抑制することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、上記目的を達成するため、請求項１に記載の発明では、レーザ光源（２）からのレーザ光（Ｌ１）をバーコード（Ｃ）に向けて照射させる揺動自在な揺動走査手段（３，５）と、この揺動走査手段により発生する前記バーコードからの反射光（Ｌ２）を受光して、前記バーコードを構成するバー幅およびスペース幅を計測し、当該計測結果に基づいて前記バーコードを読取る読取手段（８）と、を有するバーコード読取装置（１）において、前記読取手段による読取結果が成功か否かを判定する判定手段（Ｓ５）と、この判定手段により否と判定される位置に置かれたバーコードの、バーおよびスペースの各々の位置に対応した幅補正値を記憶する記憶手段（６ｃ）と、前記判定手段により否と判定された場合は、計測した前記バーコードのバーおよびスペースの各々の位置に対応する前記幅補正値を前記記憶手段より読み出して、計測した前記バー幅および前記スペース幅を補正する補正手段（Ｓ６〜Ｓ１０）と、を備え、前記読取手段は、前記補正手段による補正結果に基づいて前記バーコードを読取ることを特徴とするバーコード読取装置という技術的手段を用いる。
【０００７】
前記の背景技術で述べたように、レーザ光でバーコード上を往復走査し、バーコードからの反射光を受光してバーコードを構成するバー幅およびスペース幅を計測するバーコード読取装置では、走査領域の両端部分で走査速度が急激に減少するため、両端部分のバーおよびスペースの各幅が本来の幅よりも太く計測されてしまう。特に、仕様範囲外に置かれたバーコードを読取ると、上記の現象が顕著に表れ、読取り成功率が低下する。
【０００８】
そこで、請求項１に係る発明では、読取りが成功しないと判定される位置にバーコードが存在する場合に計測したバーおよびスペースの各幅と、読取りが成功すると判定される位置にバーコードが存在する場合に計測したバーおよびスペースの各幅との関係を示す値を幅補正値として記憶手段に記憶しておく。そして、読取りが成功しないと判定される位置にバーコードが存在すると判定した場合に、補正手段が、幅補正値を記憶手段から読み出し、その読出した幅補正値により、計測したバー幅およびスペース幅を補正し、読取手段が、その補正結果に基づいてバーコードを読取るようにする。
【０００９】
請求項２に記載の発明では、請求項１記載のバーコード読取装置（１）において、一定幅のバーおよびスペースのみからなる補正用バーコード（Ｃ１，Ｃ２）が前記判定手段により否と判定される位置に置かれたときの前記読取手段（８）が計測した前記補正用バーコードのバー幅およびスペース幅と、前記一定幅のバーおよび前記一定幅のスペースとの各々の位置での比率を、前記幅補正値として前記記憶手段（６ｃ）に記憶させるという技術的手段を用いる。
【００１０】
一定幅のバーおよび一定幅のスペースのみからなる補正用バーコードを、読取りが成功しない位置に置いたときと、読取りが成功する位置に置いたときの各位置における補正用バーコードのバー幅およびスペース幅を計測する。そして、読取りが成功しない位置でのバー幅およびスペース幅と、読取りが成功する位置でのバー幅およびスペース幅との比率を幅補正値として記憶手段に記憶させ、その比率により、読取りが成功しない位置に存在するバーコードのバー幅およびスペース幅を補正する。
【００１１】
請求項３に記載の発明では、請求項２記載のバーコード読取装置（１）において、前記記憶手段（６ｃ）には、前記幅補正値を算出した前記補正用バーコード（Ｃ１，Ｃ２）の特徴を示す特徴値が前記幅補正値に対応付けて記憶されると共に、前記一定幅のバーおよび前記一定幅のスペースの、前記一定幅が異なる複数の補正用バーコードに基づいて算出された複数の前記幅補正値および複数の前記特徴値をも記憶されており、前記補正手段（Ｓ６〜Ｓ１０）は、前記読取手段（８）が計測した前記バーコードの特徴値を抽出し、前記記憶手段に記憶された前記複数の特徴値の中から当該抽出結果に最も近い特徴値を選択し、該選択された特徴値に対応付けられた幅補正値を用いて、前記計測した前記バー幅および前記スペース幅を補正するという技術的手段を用いる。
【００１２】
読取りが成功しない範囲の中でも、バーコードの存在する位置は、ユーザの操作状況によって変化する。このため、バーコードが存在する位置によってバー幅およびスペース幅の計測値には、幅の平均値、最も多い幅、幅の最小値から最大値の範囲など、位置に対応した所定の特徴が現れる。また、各位置によってバー幅およびスペース幅も変化するため、それに応じて幅補正値も異なってくる。そこで、予め上記特徴を示す特徴値と幅補正値とを求めておき、それらを対応付けて記憶手段に記憶しておく。
そして、読取りが成功しなかったときに、そのバーコードの特徴値を抽出し、その抽出結果に最も近い特徴値を選択し、その選択した特徴値に対応付けられた幅補正値を記憶手段から読出し、その読出した幅補正値を用いて、計測したバー幅およびスペース幅を補正する。
【００１３】
請求項４に記載の発明では、請求項３記載のバーコード読取装置（１）において、前記補正用バーコード（Ｃ１，Ｃ２）の特徴を示す特徴値は、前記補正用バーコードのバー幅またはスペース幅の全領域における平均値であるという技術的手段を用いる。
【００１４】
つまり、読取りが成功しない範囲に補正用バーコードを置いたときの補正用バーコードのバー幅およびスペース幅の平均値を予め求めておき、その平均値と幅補正値とを対応付けて記憶手段に記憶しておく。
そして、読取りが成功しなかったときのバーコードのバー幅およびスペース幅の平均値を算出し、その平均値に最も近い平均値を記憶手段から選択し、その選択した平均値に対応付けられた幅補正値を記憶手段から読出し、その読出した幅補正値を用いて、計測したバー幅およびスペース幅を補正する。
【００１５】
請求項５に記載の発明では、請求項３記載のバーコード読取装置（１）において、前記補正用バーコード（Ｃ１，Ｃ２）の特徴を示す特徴値は、前記補正用バーコードのバー幅またはスペース幅の全領域における最小値から最大値の範囲を示す値であるという技術的手段を用いる。
【００１６】
つまり、読取りが成功しない範囲に補正用バーコードを置いたときの補正用バーコードの全領域におけるバー幅およびスペース幅の最小値から最大値の範囲を予め求めておき、その範囲と幅補正値とを対応付けて記憶手段に記憶しておく。
そして、読取りが成功しなかったときのバーコードのバー幅およびスペース幅の全領域におけるバー幅およびスペース幅の平均値、あるいは、最も多い幅を算出し、その平均値または幅を含む最小値から最大値の範囲に対応付けられた幅補正値を記憶手段から選択し、その選択した幅補正値を用いて、計測したバー幅およびスペース幅を補正する。
【００１７】
請求項６に記載の発明では、請求項３記載のバーコード読取装置（１）において、前記補正用バーコード（Ｃ１，Ｃ２）の特徴を示す特徴値は、前記補正用バーコードのバー幅またはスペース幅の全領域の中で最も多い値であるという技術的手段を用いる。
【００１８】
つまり、読取りが成功しない範囲に補正用バーコードを置いたときの補正用バーコードのバー幅およびスペース幅の全領域の中で最も多い値を予め求めておき、その値と幅補正値とを対応付けて記憶手段に記憶しておく。
そして、読取りが成功しなかったときのバーコードのバー幅およびスペース幅の全領域の中でも最も多い値を求め、その値に最も近い値に対応付けられた幅補正値を記憶手段から選択し、その選択した幅補正値を用いて、計測したバー幅およびスペース幅を補正する。
【００１９】
請求項７に記載の発明では、請求項２記載のバーコード読取装置（１）において、前記補正用バーコード（Ｃ１，Ｃ２）は、前記判定手段により否と判定される位置に置かれたときの前記揺動走査手段（３，５）の走査範囲に等しい長さを有するものであり、前記記憶手段（６ｃ）は、前記補正用バーコードを複数の領域として記憶し、前記補正用バーコードの中央領域における幅補正値の平均値を第１の幅補正値として記憶すると共に、前記補正用バーコードの前記中央領域およびマージン領域の間の所定領域における幅補正値の平均値を第２の幅補正値として記憶するものであり、前記補正手段（Ｓ６〜Ｓ１０）は、計測した前記バーコード（Ｃ）のバーおよびスペースが前記補正用バーコードの前記中央領域に位置するものは前記第１の幅補正値にて補正し、計測した前記バーコードのバーおよびスペースが前記補正用バーコードの前記所定領域に位置するものは前記第２の幅補正値にて補正するという技術的手段を用いる。
【００２０】
前述のように、レーザ光でバーコード上を往復走査し、バーコードからの反射光を受光してバーコードを構成するバー幅およびスペース幅を計測するバーコード読取装置では、走査領域の中央部分から端部へ行くほど、バー幅およびスペース幅が本来の幅よりも太く計測される傾向にある。
そこで、補正用バーコードを複数の領域に分割し、中央領域における幅補正値の平均値を第１の幅補正値として、また、中央領域およびマージン領域の間の所定領域における幅補正値の平均値を第２の幅補正値としてそれぞれ記憶手段に予め記憶しておく。
そして、読取りが成功しなかったときのバーコードの中央領域に位置するバーおよびスペースの各幅は、第１の幅補正値にて補正し、前記所定領域に位置するものは第２の幅補正値にて補正する。
【００２１】
請求項８に記載の発明では、請求項１記載のバーコード読取装置（１）において、前記読取手段（８）は、前記反射光（Ｌ２）を受光して当該受光強度に応じた電気信号を出力する光電変換手段を有し、さらに、この光電変換手段からの電気信号のゲインを増減させるゲイン変更手段（Ｓ１３）と、前記判定手段（Ｓ５）が否と判定した回数を計数する計数手段（Ｓ１３）と、を備え、この計数手段により計数された回数が所定回数未満である場合には、前記ゲイン変更手段にてゲインを増減させた電気信号に基づいて前記読取手段に前記バーコードを読取らせると共に、前記計数手段により計数された回数が所定回数以上である場合には、前記補正手段による補正結果に基づいて前記読取手段に前記バーコードを読取らせるという技術的手段を用いる。
【００２２】
読取りが成功しない場合の原因としては、例えば、バーコードからの反射光の受光強度不足が考えられる。そこで、読取りが成功しなかった回数が所定回数未満である場合は、まず、光電変換手段からの電気信号のゲインを増減し、そのゲインを増減させた電気信号に基づいて読取手段にバーコードを読取らせる。
また、読取りが成功しなかった回数が所定回数以上である場合は、読取りが成功しない原因は、反射光の受光強度不足ではなく、読取りが成功しない位置にバーコードが存在することにあるとみなし、補正手段による補正結果に基づいて読取手段にバーコードを読取らせる。
【００２３】
請求項９に記載の発明では、請求項１記載のバーコード読取装置（１）において、前記読取手段（８）は、前記反射光（Ｌ２）を受光して当該受光強度に応じた電気信号を出力する光電変換手段を有し、さらに、この光電変換手段からの電気信号に含まれるノイズを除去するフィルタ手段（Ｓ１３）と、前記判定手段（Ｓ５）が否と判定した回数を計数する計数手段（Ｓ１３）と、を備え、この計数手段により計数された回数が所定回数未満である場合には、前記フィルタ手段にてノイズが除去された電気信号に基づいて前記読取手段に前記バーコードを読取らせると共に、前記計数手段により計数された回数が所定回数以上である場合には、前記補正手段による補正結果に基づいて前記読取手段に前記バーコードを読取らせるという技術的手段を用いる。
【００２４】
読取りが成功しない場合の原因としては、例えば、光電変換手段からの電気信号にノイズが含まれていることが考えられる。そこで、読取りが成功しなかった回数が所定回数未満である場合は、まず、光電変換手段からの電気信号に含まれるノイズをフィルタ手段によって除去し、そのノイズが除去された電気信号に基づいて読取手段にバーコードを読取らせる。
また、読取りが成功しなかった回数が所定回数以上である場合は、読取りが成功しない原因は、光電変換手段からの電気信号にノイズが含まれていることではなく、読取りが成功しない位置にバーコードが存在することにあるとみなし、補正手段による補正結果に基づいて読取手段にバーコードを読取らせる。
【００２５】
請求項１０に記載の発明では、請求項７記載のバーコード読取装置（１）において、前記補正手段（Ｓ６〜Ｓ１０）による補正の結果、前記読取手段（８）による読取結果が前記判定手段（Ｓ５）により成功と判定されたとき、読取られたバーコード（Ｃ）の中心位置を含む前記補正用バーコードの領域を特定して逐一記憶する特定領域記憶手段（６ｂ）を備え、前記判定手段により否と判定された場合には、前記補正手段は、前記特定領域記憶手段に記憶された領域の中から最も多い領域を選択し（Ｓ７）、当該選択された領域における幅補正値に基づいて補正するという技術的手段を用いる。
【００２６】
同じユーザが操作すると、バーコードの走査方向に対する読取り位置が略一定することが多い。そこで、補正手段による補正の結果、読取手段による読取結果が判定手段により成功と判定されたとき、読取られたバーコードの中心位置を含む領域と対応する補正用バーコードの領域を特定し、その特定した領域を、補正後に読取り成功と判定される毎に、逐一、特定領域記憶手段に記憶する。
そして、読取りが成功しなかったと判定された場合には、特定領域記憶手段に記憶された領域の中から最も多い領域を選択し、その選択された領域に対応して記憶手段に記憶されている幅補正値に基づいて補正する。
【００２７】
なお、上記括弧内の符号は、後述する発明の実施形態において記載されている符号と対応するものである。
【発明の効果】
【００２８】
（請求項１に係る発明の効果）
読取りが成功しなかったと判定された位置に存在するバーコードであっても、そのバー幅およびスペース幅を幅補正値によって補正することにより、読取り可能にすることができる。
従って、読取が成功しないと判定された位置に存在するバーコードの読取りを成功する装置と、成功しない装置とが混在することがなくなるため、装置間の性能のばらつきを抑制することができる。
【００２９】
（請求項２に係る発明の効果）
予め求めておいた補正用の比率を用いて、読取りが成功しないと判定された位置に置かれたバーコードの計測されたバー幅およびスペース幅を補正することができる。
例えば、読取りが成功しなかったときのバーコードの計測されたバー幅およびスペース幅にそれぞれ上記比率を乗じるという比較的簡易な手法によって各幅を補正することができるため、補正時のＣＰＵの処理負荷を比較的軽くすることができる。
【００３０】
（請求項３に係る発明の効果）
読取りが成功しない範囲の中で、バーコードが存在する位置が読取りの度に変化する場合であっても、バーコードの特徴値を抽出することにより、その抽出した特徴値と対応付けられた幅補正値を記憶手段から選択し、その選択した幅補正値を用いて、計測されたバー幅およびスペース幅を精度良く補正することができる。
【００３１】
（請求項４に係る発明の効果）
読取りが成功しない範囲の中で、バーコードが存在する位置が読取りの度に変化する場合であっても、バーコードのバー幅またはスペース幅の全領域における平均値を抽出することにより、その抽出した平均値と対応付けられた幅補正値を記憶手段から選択し、その選択した幅補正値を用いて、計測されたバー幅およびスペース幅を精度良く補正することができる。
【００３２】
（請求項５に係る発明の効果）
読取りが成功しない範囲の中で、バーコードが存在する位置が読取りの度に変化する場合であっても、バーコードのバー幅またはスペース幅の全領域における平均値、あるいは、最も多い幅を抽出することにより、その抽出した平均値または幅を含む最小値から最大値に対応付けられた幅補正値を記憶手段から選択し、その選択した幅補正値を用いて、計測されたバー幅およびスペース幅を精度良く補正することができる。
【００３３】
（請求項６に係る発明の効果）
読取りが成功しない範囲の中で、バーコードが存在する位置が読取りの度に変化する場合であっても、バーコードのバー幅またはスペース幅の全領域の中で最も多い値を抽出することにより、その抽出した値を含む最小値から最大値の範囲に対応付けられた幅補正値を記憶手段から選択し、その選択した幅補正値を用いて、計測されたバー幅およびスペース幅を精度良く補正することができる。
【００３４】
（請求項７に係る発明の効果）
バーコードの中央領域と、中央領域およびマージン領域の間の所定領域とに分けて、それぞれ個別の幅補正値により、計測されたバー幅およびスペース幅を補正できるため、領域間の補正精度の差を小さくし、全体の読取精度を高めることができる。
【００３５】
（請求項８に係る発明の効果）
読取りが成功しなかった回数が所定回数未満である場合には、バーコードからの反射光の受光強度が最適でないとみなし、光電変換手段からの電気信号のゲインを増減して再度読取りを試みることができる。また、読取りが成功しなかった回数が所定回数以上の場合には、読取りが成功しないと判定される位置にバーコードが存在するとみなし、補正手段による補正結果に基づいて再度読取りを試みることができる。
つまり、読取りが成功しなかった原因を、バーコードからの反射光の受光強度が最適でないことと、読取りが成功しないと判定される位置にバーコードが存在することとに分け、各原因に対応する対策を自動的に講じてから再度バーコードの読取りを試みることができる。
【００３６】
（請求項９に係る発明の効果）
読取りが成功しなかった回数が所定回数未満である場合には、光電変換手段からの電気信号にノイズが含まれているとみなし、フィルタ手段によってノイズを除去して再度読取りを試みることができる。また、読取りが成功しなかった回数が所定回数以上の場合には、読取りが成功しないと判定される位置にバーコードが存在するとみなし、補正手段による補正結果に基づいて再度読取りを試みることができる。
つまり、読取りが成功しなかった原因を、光電変換手段からの電気信号にノイズが含まれていることと、読取りが成功しないと判定される位置にバーコードが存在することとに分け、各原因に対応する対策を自動的に講じてから再度バーコードの読取りを試みることができる。
【００３７】
（請求項１０に係る発明の効果）
補正手段による補正の結果、読取りが成功したとき、読取られたバーコードの中心位置を含む補正用バーコードの領域を特定して特定領域記憶手段に逐一記憶することにより、バーコードの走査方向に対する読取り位置の傾向、つまりユーザの操作の特徴を検出することができる。
そして、特定領域記憶手段に記憶された領域の中から最も多い領域を選択し、当該選択された領域における幅補正値に基づいて補正することができるため、読取りを実行する毎に、バーコードの読取り位置を検出する処理を省略することができるので、ＣＰＵの処理負荷を軽減することができる。
【発明を実施するための最良の形態】
【００３８】
＜第１実施形態＞
この発明に係る実施形態について図を参照しながら説明する。
以下の各実施形態では、この発明に係るバーコード読取装置としてバーコードリーダを代表に説明する。なお、バーコードとは、ＥＡＮ／ＵＰＣ、インターリーブド２オブ５、コーダバー、コード３９／１２８、スタンダード２オブ５、ＲＳＳなどの１次元コードを意味する。
【００３９】
［主要構成］
この実施形態に係るバーコードリーダの主要構成について図を参照しながら説明する。図１は、この実施形態に係るバーコードリーダの一部内部構造を示す説明図である。
【００４０】
バーコードリーダ１は、レーザ光Ｌ１を出射するレーザ光源２と、レーザ光源２から出射されたレーザ光Ｌ１をバーコードＣに向けて反射する反射ミラー３と、バーコードＣからの反射光Ｌ２を受光する受光素子４とを備える。受光素子４は、光電変換する機能を有し、受光した反射光Ｌ２の受光強度に対応したアナログの電気信号を出力する。反射ミラー３は、揺動装置（図２において符号５で示す）の作用によって揺動自在に構成されている。この実施形態では、レーザ光源２としてレーザダイオードを用いる。
【００４１】
揺動装置５としては公知の種々の装置を用いることができる。例えば、反射ミラー３をステップモータの回転軸に取付け、そのステップモータを低周波正逆転駆動する装置を用いることができる（特許第３２２５６２１号公報）。また、反射ミラー３の一端にコイルを取付け、そのコイルにマグネットを挿入し、コイルに交流電流を通電することにより、反射ミラー３を周期的に揺動させる装置を用いることもできる（特許第２６０３８８３号公報）。さらに、磁歪素子、電歪素子、または表面弾性波素子などのいわゆる表面振動素子で反射ミラー３を構成し、該素子の表面を振動させる装置を用いることもできる。
【００４２】
レーザ光源２から出射されたレーザ光Ｌ１は、揺動装置５によって揺動する反射ミラー３にて反射され、バーコードＣ上を複数回往復走査する。図１において符号Ｒで示す線は、レーザ光Ｌ１による走査線を示す。バーコードＣにて反射したレーザ光Ｌ１は、反射光Ｌ２となって受光素子４に取込まれる。
なお、図示しないが、バーコードリーダ１には、バーコードＣの読取り範囲を照明するためのマーカ光を照射するマーカ光照射装置などが設けられている。
【００４３】
［主な電気的構成］
次に、バーコードリーダ１の主な電気的構成について、それをブロックで示す図２を参照して説明する。
【００４４】
バーコードリーダ１は、信号処理部１１と、２値化処理部１０と、計測処理部９と、デコード部８と、制御部７と、格納部６とを備える。
【００４５】
信号処理部１１は、受光素子４から出力された電気信号のノイズを除去するローパスフィルタと、このローパスフィルタから出力された信号を所定のゲイン（増幅率）で増幅する増幅回路と、この増幅回路から出力された信号をパルス信号に変換する微分回路と、この微分回路から出力されたパルス信号を絶対値を取ったパルス列に変換する絶対値回路とを備える。
【００４６】
２値化処理部１０は、信号処理部１１から出力された上記パルス列の各パルスを所定の基準値と比較することにより明暗（スペースかバーか）を判定し、その判定結果に対応する２値データを生成する。計測処理部９は、２値化処理部１０により生成された２値データを計数し、バー幅値およびスペース幅値を算出する。
【００４７】
格納部６は、計測処理部９により算出されたバー幅値およびスペース幅値、さらには後述するデコード部８に備えられたＣＰＵの処理結果などを格納するＲＡＭと、ＣＰＵが実行するシステムプログラムや各種の制御プログラム、幅補正値格納テーブル（図７において符号６ｃで示す）、読取り位置学習テーブル（図９において符号６ｂで示す）などが格納されたＲＯＭと、ＲＯＭから読出したシステムプログラム、読取り位置学習テーブルなどをワークエリアに格納するフラッシュメモリとを備える。
【００４８】
デコード部８は、図示しないが、デコード処理および各処理部の制御などを実行するＣＰＵを備えており、そのＣＰＵは、格納部６に格納されたバー幅値およびスペース幅値を、予め格納されている明暗パターンと比較することにより、明暗パターンを抽出し、読取対象のバーコードＣにエンコード（符号化）されている光学的情報をデコード（復号）する。
【００４９】
また、ＣＰＵは、読取りが成功しなかった回数が所定回数以上になった場合に、格納部６に格納されたバー幅およびスペース幅を幅補正値に基づいて補正する処理を実行する。
さらに、デコード部８は、クロック信号発生回路と、各回路との間でデータの入出力を行う入出力回路とを備える。
【００５０】
制御部７は、信号処理部１１に備えられたローパスフィルタの帯域幅の変更、増幅回路のゲインの増減などを必要に応じて実行する。また、制御部７は、レーザ光源２および揺動装置５の制御、バーコードのデコードが成功したときに「ピッ」などの音を発生するブザーの制御、デコードしたデータなどを外部装置（図示せず）へ出力する制御などを実行する。
なお、図示しないが、バーコードリーダ１には、格納部６、制御部７、デコード部８、計測処理部９、２値化処理部１０および信号処理部１１へ電源を供給する電源回路が備えられている。
【００５１】
［補正用バーコード］
次に、仕様範囲を超えた位置に存在するバーコードを読取るときにバー幅およびスペース幅を補正するために用いる補正用バーコードについて図を参照して説明する。
図３は、補正用バーコードを示す説明図である。図４は、仕様範囲を超えた位置に存在する補正用バーコードを読取る様子を模式的に示す説明図である。図５は、仕様範囲を超えた位置に存在する補正用バーコードＣ２のバー幅およびスペース幅を計測したときの中央領域に対する各領域の幅の比率を示す説明図である。なお、図５は、領域間の幅の変化を分かり易くするため、計測した実際の幅よりも誇張して描かれている。
【００５２】
補正用バーコードＣ１，Ｃ２は、それぞれ一定幅のバーおよび一定幅のスペースを交互に配置して構成されている。補正用バーコードＣ１は、比較的幅の狭いバーおよびスペースから構成されており、補正用バーコードＣ２は、補正用バーコードＣ１よりも幅の広いバーおよびスペースから構成されている。
つまり、読取対象となるバーコードが存在する位置は、仕様範囲を超えた範囲の中でも、種々の位置が想定され、また、読取対象となるバーコードとしては、種々の幅のバーおよびスペースを組み合わせた複数種類のバーコードが想定されるため、一定幅が異なる複数の補正用バーコードを使用して補正精度を高める。図３では、２種類の補正用バーコードを示したが、実際にはさらに多くの補正用バーコードを使用し、補正の精度を高めている。
【００５３】
図４に示すように、バーコードリーダ１には、仕様値（仕様に定められた値）の読取り範囲Ｅが設定されている。つまり、バーコードが読取り範囲Ｅ内に存在する場合は、高確率で読取りが成功するが、読取り範囲Ｅを超えた位置に存在する場合は、殆ど読取りが成功しない。これは、前述したように、走査速度が走査領域の両端部で急激に減速され、走査領域の両端部のバー幅およびスペース幅が本来の幅よりも太く計測されてしまう傾向が、読取り範囲Ｅを超えた位置では顕著になり、読取り成功率が低下することに起因している。
【００５４】
ここでは、補正用バーコードＣ２を用いて幅補正値を作成する場合を説明する。まず、読取り範囲Ｅを超えた位置に補正用バーコードＣ２を配置する。続いて、バーコードリーダ１を用いて補正用バーコードＣ２のバー幅およびスペース幅を計測する。次に、図５に示すように、補正用バーコードＣ２を走査方向に沿って奇数個の複数のブロック（領域）に分割し、各領域毎にバーおよびスペースの幅の平均値を算出する。ブロックの数は、３個以上の奇数個であれば任意であるが、この実施形態ではブロックの数が７個の場合を説明する。
【００５５】
次に、中央のブロック４におけるバーおよびスペースの各幅の平均値に対する他のブロックの平均値の比率を算出する。例えば、ブロック４の平均値が１mmであり、ブロック２およびブロック６の平均値がそれぞれ２mmであり、ブロック１およびブロック７の平均値がそれぞれ2.4mmであった場合は、ブロック４に対するブロック２およびブロック６の比率は２となり、ブロック４に対するブロック１およびブロック７の比率は2.4となる。
【００５６】
［補正用テーブル］
次に、バー幅およびスペース幅の補正時に参照する幅補正値格納テーブルについて図６および図７を参照して説明する。図６は、補正用バーコードの幅データを格納する幅データ格納領域の説明図であり、図７は、幅補正値格納テーブルの構成を示す説明図である。
【００５７】
図４に示したように、補正用バーコードを読取り範囲Ｅを超えた位置に配置し、その補正用バーコードの各バー幅およびスペース幅をバーコードリーダ１によって計測する。計測されたバー幅またはスペース幅を示す幅データは、図６に示すように、計測順に、かつ、ブロック単位で幅データ格納領域６ａに格納される。
【００５８】
次に、各ブロック毎のバー幅およびスペース幅の平均値を算出し、基準となる中央のブロックの平均値と、他のブロックの平均値との比率を各ブロック毎に算出する。また、１つのブロック内におけるバー幅およびスペース幅の最小値から最大値までの範囲を各ブロック毎に算出し、それらを各ブロック毎の幅ランクに設定する。
【００５９】
図７に示すように、幅補正値格納テーブル６ｃには、１〜ｎのｎ個の補正用テーブルが設定されており、各補正用テーブルの各ブロックには、ブロック毎に算出した比率が設定されている。例えば、補正用テーブル１には、ブロック４を基準の比率1.0として、ブロック３，５には比率1.1が、ブロック２，６には比率1.25が、ブロック１，７には比率1.5がそれぞれ設定されている。
【００６０】
また、各補正用テーブルの各ブロックには、各ブロックにおける幅の最小値から最大値の範囲が幅ランクとしてそれぞれ設定されている。例えば、補正用テーブル１のブロック１には幅ランクとしてAmin〜Amaxが、ブロック２には幅ランクとしてBmin〜Bmaxがそれぞれ設定されている。
【００６１】
［読取り位置の学習］
次に、バーコードの読取り位置の学習について図８および図９を参照して説明する。図８は、種々の読取り位置を示す説明図であり、（ａ）はブロック４が読取り位置に決定される場合、（ｂ）はブロック３が読取り位置に決定される場合、（ｃ）はブロック３が読取り位置に決定される場合をそれぞれ示す。図９は、読取り位置学習テーブルの構成を示す説明図である。
【００６２】
計測した幅データを幅補正値によって補正した結果、バーコードの読取りが成功した場合に、その読取り時に計測されたバー幅およびスペース幅を示すバーコードデータ（幅データ）が最も多く含まれるブロックを読取り位置に決定する。例えば、バーコードの両端に配置されているマージンを示すマージンデータが存在した位置を算出し、その位置が補正用バーコードのどの位置にあるのかを計算する。そして、両端のマージンデータによって挟まれたバーコードデータが、どのブロックに多く含まれるかを算出し、そのブロックを読取り位置に決定する。
【００６３】
図８（ａ）に示す例では、バーコードデータが補正用バーコードのブロック４に最も多く含まれているため、ブロック４を読取り位置に決定する。図８（ｂ）に示す例では、バーコードデータが補正用バーコードのブロック３に最も多く含まれているため、ブロック３を読取り位置に決定する。図８（ｃ）に示すように、バーコードデータが補正用バーコードのブロック２およびブロック３の両方に含まれている場合は、バーコードデータの中央位置に近い方のブロックに決定する。
【００６４】
図９に示すように、読取り位置学習テーブル６ｂは、読取り位置を格納するための複数の格納領域を有する。図９の左図に示すように、読取り位置学習テーブル６ｂの各格納領域には、初期値として補正用バーコードの中央のブロック４がそれぞれ格納されている。そして、幅補正値によって幅データの補正が行われた結果、バーコードの読取りが成功すると、読取り位置を示すブロック（ブロックを特定するデータ）が読取り位置学習テーブル６ｂの先頭から順に格納される。
【００６５】
図９の右図に示す例は、左図に示す初期状態から読取り位置としてブロック５，４，５，３，２，６が順に格納された状態を示す。総ての格納領域にブロックが格納されると、次のブロックは先頭に格納され、それまで先頭から後尾まで格納されていたブロックは１つずつ下の順位の格納領域へ移動する。
後述する幅データの補正処理では、読取り位置学習テーブル６ｂに最も多く格納されているブロックを、読取り位置として格納された数が最も多いランクの読取り位置として選択し、その読取り位置に対応する幅補正値によって幅データを補正する。
【００６６】
［デコード処理］
次に、デコード部８（図２）に備えられたＣＰＵが実行する読取り処理の流れについて図１０および図１１を参照して説明する。図１０は、ＣＰＵが実行する読取り処理の流れを示すフローチャートであり、図１１は、ＣＰＵが図１０のＳ４にて実行するデコード処理の流れを示すフローチャートである。
【００６７】
この読取り処理の特徴を簡単に説明する。バーコードの読取りを最初に失敗すると、まず、増幅回路のゲインの増減およびローパスフィルタの帯域幅の変更などの読取り制御条件を変更して再度デコードを試みる。そして、デコードの失敗回数が所定回数に達するまでは、上記の読取り制御条件を次の新たな制御条件に更新しながら読取りを繰り返す。そして、デコードの失敗回数が上記の所定回数以上になった場合は、バーコードが仕様に定められた読取り範囲Ｅ（図４）を超えた位置に置かれているとみなし、幅データを補正し、その補正結果に基づいてデコードを試みる。
【００６８】
ＣＰＵは、バーコードのデコードを失敗した回数をクリアし、制御部７により実行される、信号処理部１１（図２）に備えられたローパスフィルタの帯域幅、増幅回路のゲインなどの制御条件を設定する（図１０のステップ（以下、ステップをＳと略す）１）。続いて、ＣＰＵは、バーコードの読取りを実行し（Ｓ２）、計測処理部９により計測されたバー幅およびスペース幅を示すデータ（以下、幅データという）を取得する（Ｓ３）。
【００６９】
続いて、ＣＰＵは、デコード処理を実行する（Ｓ４）。計測処理部９から取得した幅データをデコードし（図１１のＳ５）、デコードが成功したか否かを判定する（Ｓ６）。ここで、デコードが成功しなかった、つまり失敗したと判定した場合は（Ｓ６：失敗）、幅データを補正する必要があるか否かを判定する（Ｓ７）。ここでは、幅データを補正する必要がないと判定したとする（Ｓ７：不要）。
【００７０】
続いて、ＣＰＵは、デコードを失敗した回数を更新し（例えば、失敗回数に１を加算する）、ローパスフィルタの帯域幅、増幅回路のゲインなどの制御条件を更新する（Ｓ８）。例えば、ローパスフィルタの帯域幅を狭くしたり、あるいは、増幅回路のゲインを増やしたりする。
【００７１】
続いて、ＣＰＵは、幅データを補正する必要のある条件（幅データ補正必要条件）に到達したか否かを判定する（Ｓ９）。例えば、デコードを失敗した回数が、予め設定された所定回数以上に到達したか否かを判定する。ここで、幅データを補正する必要のある条件に達していないと判定した場合は（Ｓ９：未達）、先のＳ２（図１０）へスキップし、再度読取りを実行する。以降、Ｓ６においてデコードが成功したと判定されるまで、読取り制御条件を更新しながら読取りおよびデコードを繰り返す。
【００７２】
そして、デコード失敗回数が上記の所定回数以上に到達した場合は（Ｓ９：到達）、幅データを補正する必要あり（幅データ補正必要）に設定する（Ｓ１０）。例えば、幅データを補正する必要があることを示すフラグをオンする。そして、Ｓ７へスキップし、幅データを補正する必要があると判定すると（Ｓ７：必要）、読取り位置学習テーブル６ｂ（図９）を参照し、最も多く格納されている読取り位置、つまり読取り位置ランクの最も高いブロックを取得する（Ｓ１１）。例えば、読取り位置学習テーブル６ｂにおいて、ブロック３が最も多く格納されている場合は、ブロック３を取得する。
【００７３】
続いて、ＣＰＵは、計測処理部９で測定した幅データ（バーコードデータ）を分割した複数のブロックのうち、Ｓ１１にて取得した読取り位置ブロックに対応するブロックを抽出し、その抽出したブロック内で最も多い幅データを抽出する（Ｓ１２）。例えば、抽出したブロック内の幅データとその数との関係を示すヒストグラムを作成し、最も数の多い幅データを選択する。
【００７４】
続いて、幅補正値格納テーブル６ｃ（図７）を参照し、先のＳ１１にて取得した読取り位置ブロックに対応し、かつ、先のＳ１２にて抽出した幅データが含まれる幅ランクに対応する補正用テーブルを選択する（Ｓ１３）。例えば、先のＳ１１にて取得した読取り位置ブロックがブロック３であり、かつ、先のＳ１２にて抽出した幅データがJmin〜Jmaxの範囲に入る幅である場合は、幅補正値格納テーブル６ｃにおいて、ブロック３に幅ランクJmin〜Jmaxが対応付けられている補正用テーブル２を選択する。
【００７５】
続いて、Ｓ１３にて選択した補正用テーブルの各ブロックに対応付けられている各比率を用いて、先のＳ３にて計測処理部９から取得した各幅データをブロック毎に補正する（Ｓ１４）。例えば、Ｓ１３にて補正用テーブル２を選択した場合は、先のＳ３にて計測処理部９から取得したブロック１〜７の各幅データに、補正用テーブル２のブロック１〜７に対応付けられている比率1.55、1.3、1.15、1.0、1.15、1.3、1.55をそれぞれ乗じることにより補正する。
【００７６】
続いて、Ｓ１４にて補正した幅データをデコードする（Ｓ１５）。続いて、デコードが成功したか否かを判定し（Ｓ１６）、成功したと判定した場合は（Ｓ１６：成功）、読取り対象のバーコードの両端に配置されたマージンの位置を計算し（Ｓ１７）、そのマージン間に存在するバーコードデータが最も多く含まれるブロックを所定の補正用テーブルから選択し、その選択したブロックを読取り位置学習テーブル６ｂの先頭に格納することにより、読取り位置学習テーブル６ｂを更新する（Ｓ１８）。
【００７７】
続いて、幅データを補正する必要がない（幅データ補正不要）に設定し（例えば、幅データ補正必要を示すフラグをオフにする）、デコード失敗回数をクリアし、読取り条件を１サイクル目の値に再設定する（Ｓ１９）。また、先のＳ６において、デコードが成功したと判定した場合は、上記のＳ１９を実行する。
【００７８】
［実施形態の効果］
(1)上述の実施形態に係るバーコードリーダ１を使用すれば、仕様に定められた読取り範囲Ｅを超えた位置に存在するバーコードであっても、そのバー幅およびスペース幅を幅補正値によって補正することにより、読取り可能にすることができる。
従って、仕様に定められた読取り範囲Ｅを超えた位置に存在するバーコードの読取りを成功する装置と、成功しない装置とが混在することがなくなるため、装置間の性能のばらつきを抑制することができる。
【００７９】
(2)また、予め求めておいた補正用の比率を用いて、仕様に定められた読取り範囲Ｅを超えた位置に存在するバーコードの計測されたバー幅およびスペース幅を補正する、つまり、計測されたバー幅およびスペース幅にそれぞれ上記比率を乗じるという比較的簡易な手法によって各幅を補正することができるため、補正時のＣＰＵの処理負荷を比較的軽くすることができる。
【００８０】
(3)さらに、複数の補正用テーブルから補正に最適な補正用テーブルを選択し、その補正用テーブルを用いて、計測した幅データを補正することができるため、仕様に定められた読取り範囲Ｅを超えた範囲においてバーコードの位置が変化した場合にも対応することができ、かつ、バー幅およびスペース幅の異なる種々のバーコードの読取りにも対応することができるので、補正の精度を高めることができる。
【００８１】
(4)さらに、各補正用テーブルには、バーコードの各ブロック毎の比率が設定されているため、読取ったバーコードの幅データをブロック毎に補正することができるので、バーコードの領域間に存在する幅データの差をなくし、全体の補正精度を高めることができる。
【００８２】
(5)さらに、読取りを失敗した回数が所定回数未満である場合には、バーコードからの反射光の受光強度が低いとみなし、受光素子４からの電気信号のゲインを増減したり、その電気信号のノイズを除去するフィルタの帯域幅を狭くするなど、読取り制御条件を更新して再度読取りを試みることができる。また、読取りを失敗した回数が所定回数以上の場合には、仕様に定められた読取り範囲Ｅを超えた位置にバーコードが存在するとみなし、幅補正値を用いて幅データを補正してから再度読取りを試みることができる。
つまり、読取りを失敗した原因を、バーコードからの反射光の受光強度が低いこと、あるいは、受光素子４からの電気信号にノイズが含まれていることと、仕様に定められた読取り範囲Ｅを超えた位置にバーコードが存在することとに分け、各原因に対応する対策を自動的に講じてから再度バーコードの読取りを試みることができる。
【００８３】
(6)さらに、幅補正処理による補正の結果、読取りが成功したとき、読取られたバーコードの中心位置を含む補正用バーコードのブロックを特定して読取り位置学習テーブル６ｂに逐一格納することにより、バーコードの走査方向に対する読取り位置の傾向、つまりユーザの操作の特徴を検出することができる。
そして、読取り位置学習テーブル６ｂに格納されたブロックの中から最も多いブロックを選択し、その選択されたブロックに対応する幅補正値に基づいて補正することができるため、読取りを実行する毎に、バーコードの読取り位置を検出する処理を省略することができるので、ＣＰＵの処理負荷を軽減することができる。
【００８４】
＜他の実施形態＞
(1)図１１のＳ１２において、ブロック内で最も多い幅データに代えて、ブロック内の幅データの平均値を抽出し、Ｓ１３では、Ｓ１２にて抽出した平均値が含まれる幅ランクに対応する補正用テーブルを選択するように構成することもできる。
【００８５】
(2)補正用バーコードおよび読取り対象のバーコードは、それぞれ中央領域および両端領域の計３つの領域に分割することもできる。この構成によれば、幅補正値格納テーブル６ｃの記憶容量を小さくできるとともに、幅データを補正するためのＣＰＵの処理負荷を軽減することができる。
【００８６】
(3)補正用バーコードを複数のブロックに分割しないで、各補正用テーブル毎に１つの幅補正値を格納しておき、その幅補正値を用いて、幅データの中央領域以外の幅データを補正する構成でもよい。この構成によれば、幅補正値格納テーブル６ｃの記憶容量をより一層小さくできるとともに、幅データを補正するためのＣＰＵの処理負荷をより一層軽減することができる。
【００８７】
(4)読取り範囲Ｅを超えた範囲におけるバーコードの位置に関係なく、１つの幅補正値を用いて幅データを補正することもできる。この構成によれば、上記(3)の構成と比較して幅補正値格納テーブル６ｃの記憶容量を小さくできるとともに、幅データを補正するためのＣＰＵの処理負荷を軽減することもできる。
【図面の簡単な説明】
【００８８】
【図１】本発明実施形態に係るバーコードリーダの一部内部構造を示す説明図である。
【図２】図１に示すバーコードリーダ１の主な電気的構成をブロックで示す説明図である。
【図３】補正用バーコードを示す説明図である。
【図４】仕様範囲を超えた位置に存在する補正用バーコードを読取る様子を模式的に示す説明図である。
【図５】仕様範囲を超えた位置に存在する補正用バーコードＣ２のバー幅およびスペース幅を計測したときの中央領域に対する各領域の幅の比率を示す説明図である。
【図６】補正用バーコードの幅データを格納する幅データ格納テーブルの説明図である。
【図７】幅補正値格納テーブルの構成を示す説明図である。
【図８】種々の読取り位置を示す説明図であり、（ａ）はブロック４が読取り位置に決定される場合、（ｂ）はブロック３が読取り位置に決定される場合、（ｃ）はブロック３が読取り位置に決定される場合をそれぞれ示す。
【図９】読取り位置学習テーブルの構成を示す説明図である。
【図１０】ＣＰＵが実行する読取り処理の流れを示すフローチャートである。
【図１１】ＣＰＵが図１０のＳ４にて実行するデコード処理の流れを示すフローチャートである。
【符号の説明】
【００８９】
１・・バーコードリーダ（バーコード読取装置）、２・・レーザ光源、
３・・反射ミラー（揺動走査手段）、４・・受光素子、
５・・揺動装置（揺動走査手段）、
６ｂ・・読取り位置学習テーブル（特定領域記憶手段）、
６ｃ・・幅補正値格納テーブル（記憶手段）、８・・デコード部（読取手段）。
【図１】
2009098717.tif 000003
【図２】
2009098717.tif 000004
【図３】
2009098717.tif 000005
【図４】
2009098717.tif 000006
【図５】
2009098717.tif 000007
【図６】
2009098717.tif 000008
【図７】
2009098717.tif 000009
【図８】
2009098717.tif 000010
【図９】
2009098717.tif 000011
【図１０】
2009098717.tif 000012
【図１１】
2009098717.tif 000013