(57)【特許請求の範囲】
【請求項１】
読取対象を複数回読み取り、読取毎にイメージデータを取得する読取手段と、
前記読取手段により取得された各イメージデータを記憶する記憶手段と、
前記読取動作中における前記読取手段の３次元空間での複数の移動状態を検出する検出手段と、
前記検出手段により検出された複数の移動状態に基づいて、各々の移動状態に対応する補正処理を行い、前記記憶手段に記憶された各イメージデータを補正する補正手段と、
前記補正手段により補正された各イメージデータを合成する合成手段と、
を備え、
前記検出手段は、ジャイロセンサを用いて前記読取手段の３次元空間での複数の移動状態を検出し、
前記ジャイロセンサは、３次元空間での前記読取手段の加速度を検出する加速度センサと、３次元空間での前記読取手段の移動によって生じる当該読取手段の傾きを検出する傾きセンサと、を有する読取装置。
【請求項２】
前記イメージデータは、バーコードイメージデータであり、
前記合成手段は、前記補正手段により補正された各バーコードイメージデータを合成し、
前記合成手段により合成されたバーコードイメージデータをデコードするデコード手段をさらに備える請求項１に記載の読取装置。
【請求項３】
３次元空間での加速度を検出する加速度センサと、３次元空間での移動によって生じる傾きを検出する傾きセンサと、を有するジャイロセンサを備えたコンピュータを制御するためのプログラムであって、
前記コンピュータを、
読取手段により読取対象を複数回読み取り、読取毎にイメージデータを取得する手段、
前記取得された各イメージデータを記憶手段に記憶させる手段、
前記ジャイロセンサを用いて前記読取動作中における前記読取手段の３次元空間での複数の移動状態を検出する手段、
前記検出された複数の移動状態に基づいて、各々の移動状態に対応する補正処理を行い、前記記憶手段に記憶された各イメージデータを補正する手段、
前記補正された各イメージデータを合成する手段、
として機能させるようにしたコンピュータ読み取り可能なプログラム。
【請求項４】
読取対象を読み取り、イメージデータを取得する読取手段と、
前記読取手段により取得されたイメージデータを記憶する記憶手段と、
ジャイロセンサを用いて前記読取動作中における３次元空間での前記読取手段の加速度を検出すると共に、前記３次元空間での前記読取手段の移動によって生じる前記読取手段の傾きを検出する検出手段と、
前記検出手段により検出された前記読取手段の加速度及び前記読取手段の傾きに基づいて、前記読取手段の加速度及び前記読取手段の傾きに対応する補正処理を行い、前記記憶手段に記憶されたイメージデータを補正する補正手段と、
を備える読取装置。
【請求項５】
３次元空間での加速度及び３次元空間での移動によって生じる傾きを検出するジャイロセンサを備えたコンピュータを制御するためのプログラムであって、
前記コンピュータを、
読取手段により読取対象を読み取り、イメージデータを取得する手段、
前記取得されたイメージデータを記憶手段に記憶させる手段、
前記ジャイロセンサを用いて前記読取動作中における前記３次元空間での前記読取手段の加速度を検出すると共に、前記３次元空間での前記読取手段の移動によって生じる前記読取手段の傾きを検出する手段、
前記検出された前記読取手段の加速度及び前記読取手段の傾きに基づいて、前記読取手段の加速度及び前記読取手段の傾きに対応する補正処理を行い、前記記憶手段に記憶されたイメージデータを補正する手段、
として機能させるようにしたコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取装置及びプログラムに関する。
【背景技術】
【０００２】
印刷品質が粗悪であったり、一部が破損したりしているなど、欠陥を有するバーコード（図２１参照）を、レーザ光等を光源とする一次元スキャナで読み取る場合、光が照射される位置によっては、正確に読み取ることができず、デコードすることができないことがある。しかし、実際の読取動作はユーザがスキャナを手に持った状態で行われるため、読取中のユーザの手の動きによって、バーコード面上の様々な位置が読み取られている。このため、図２１に示すような欠陥を有するバーコードの場合、図２２に示すように、ユーザの手の動きによって光の照射位置（照射ライン）が異なる複数回の読取でそれぞれ得られたイメージデータをメモリに記憶しておき、それぞれのイメージデータを重ね合わせるなどの合成処理によって正しいイメージデータとして再生し、デコードする処理が行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−５７０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のように、バーコードの読取動作は、ユーザがスキャナを手に持った状態で行われているため、ユーザの手の動きに起因して、読取中の光の照射位置が、図２２に示すように上下方向へ移動するだけでなく、バーの配列方向へ移動したり、当該配列方向に対して傾斜したりするなど、様々に変化する。よって、複数回の読取で得られたイメージデータをそのまま合成しても、正確な読取結果を得ることができないという問題がある。
【０００５】
本発明の課題は、ジャイロセンサを用いて読取動作中における３次元空間での読取手段の加速度を検出すると共に、３次元空間での読取手段の移動によって生じる読取手段の傾きを検出し、検出された読取手段の加速度及び読取手段の傾きに対応する補正処理を行い、記憶されたイメージデータを補正することにより、正確な読取結果が得られるようにすることである。
【課題を解決するための手段】
【０００６】
請求項１に記載の読取装置は、読取対象を複数回読み取り、読取毎にイメージデータを取得する読取手段と、前記読取手段により取得された各イメージデータを記憶する記憶手段と、前記読取動作中における前記読取手段の３次元空間での複数の移動状態を検出する検出手段と、前記検出手段により検出された複数の移動状態に基づいて、各々の移動状態に対応する補正処理を行い、前記記憶手段に記憶された各イメージデータを補正する補正手段と、前記補正手段により補正された各イメージデータを合成する合成手段と、を備え、前記検出手段は、ジャイロセンサを用いて前記読取手段の３次元空間での複数の移動状態を検出し、前記ジャイロセンサは、３次元空間での前記読取手段の加速度を検出する加速度センサと、３次元空間での前記読取手段の移動によって生じる当該読取手段の傾きを検出する傾きセンサと、を有する。
【０００７】
請求項２に記載の発明は、請求項１に記載の読取装置において、前記イメージデータは、バーコードイメージデータであり、前記合成手段は、前記補正手段により補正された各バーコードイメージデータを合成し、前記合成手段により合成されたバーコードイメージデータをデコードするデコード手段をさらに備える。
【０００８】
請求項３に記載の発明は、３次元空間での加速度を検出する加速度センサと、３次元空間での移動によって生じる傾きを検出する傾きセンサと、を有するジャイロセンサを備えたコンピュータを制御するためのプログラムであって、前記コンピュータを、読取手段により読取対象を複数回読み取り、読取毎にイメージデータを取得する手段、前記取得された各イメージデータを記憶手段に記憶させる手段、前記ジャイロセンサを用いて前記読取動作中における前記読取手段の３次元空間での複数の移動状態を検出する手段、前記検出された複数の移動状態に基づいて、各々の移動状態に対応する補正処理を行い、前記記憶手段に記憶された各イメージデータを補正する手段、前記補正された各イメージデータを合成する手段、として機能させるようにしたコンピュータ読み取り可能なプログラムである。
請求項４に記載の発明の読取装置は、読取対象を読み取り、イメージデータを取得する読取手段と、前記読取手段により取得されたイメージデータを記憶する記憶手段と、ジャイロセンサを用いて前記読取動作中における３次元空間での前記読取手段の加速度を検出すると共に、前記３次元空間での前記読取手段の移動によって生じる前記読取手段の傾きを検出する検出手段と、 前記検出手段により検出された前記読取手段の加速度及び前記読取手段の傾きに基づいて、前記読取手段の加速度及び前記読取手段の傾きに対応する補正処理を行い、前記記憶手段に記憶されたイメージデータを補正する補正手段と、を備える。
請求項５に記載の発明は、３次元空間での加速度及び３次元空間での移動によって生じる傾きを検出するジャイロセンサを備えたコンピュータを制御するためのプログラムであって、前記コンピュータを、読取手段により読取対象を読み取り、イメージデータを取得する手段、前記取得されたイメージデータを記憶手段に記憶させる手段、前記ジャイロセンサを用いて前記読取動作中における前記３次元空間での前記読取手段の加速度を検出すると共に、前記３次元空間での前記読取手段の移動によって生じる前記読取手段の傾きを検出する手段、前記検出された前記読取手段の加速度及び前記読取手段の傾きに基づいて、前記読取手段の加速度及び前記読取手段の傾きに対応する補正処理を行い、前記記憶手段に記憶されたイメージデータを補正する手段、として機能させるようにしたコンピュータ読み取り可能なプログラムである。
【発明の効果】
【０００９】
本発明によれば、ジャイロセンサを用いて読取動作中における３次元空間での読取手段の加速度を検出すると共に、３次元空間での読取手段の移動によって生じる読取手段の傾きを検出し、検出された読取手段の加速度及び読取手段の傾きに対応する補正処理を行い、記憶されたイメージデータを補正することにより、正確な読取結果を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るバーコード読取装置の主要部構成を示すブロック図。
【図２】本実施形態のバーコード読取装置のＣＰＵの制御の下で実行されるバーコード読取処理を示すフローチャート。
【図３】図２に示した補正処理の詳細を示すフローチャート。
【図４】バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面に近づくように光を照射した状態を示す図。
【図５】読取対象のバーコードのイメージデータ及び光の照射ラインを示す図（ａ）と、図４に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図（ｂ）。
【図６】図４に示す照射状態におけるバー幅の補正方法を説明するための図。
【図７】バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面から遠ざかるように光を照射した状態を示す図。
【図８】読取対象のバーコードのイメージデータ及び光の照射ラインを示す図（ａ）と、図７に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図（ｂ）。
【図９】図７に示す照射状態におけるバー幅の補正方法を説明するための図。
【図１０】バーコード面に対する光の照射状態を模式的に示す図であって、ｘ−ｙ平面内において基準方向（ｘ軸方向に平行）から傾斜するように光を照射した状態を示す図。
【図１１】読取対象のバーコードのイメージデータ及び光の照射ラインを示す図（ａ）と、図１０に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図（ｂ）。
【図１２】図１０に示す照射状態におけるバー幅の補正方法を説明するための図。
【図１３】バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面に対してｙ軸方向に移動するように光を照射した状態を示す図。
【図１４】読取対象のバーコードのイメージデータ及び光の照射ラインを示す図（ａ）と、図１３に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図（ｂ）。
【図１５】図１３に示す照射状態におけるスタートマージン幅の補正方法を説明するための図。
【図１６】バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面上の照射ラインがバーの配列方向（ｙ軸方向）に対して傾斜するように光を照射した状態を示す図。
【図１７】読取対象のバーコードのイメージデータ及び光の照射ラインを示す図（ａ）と、図１６に示す照射状態の場合に読取部により認識されるバーコードのイメージデータを示す図（ｂ）。
【図１８】図１６に示す照射状態におけるバー幅の補正方法を説明するための図。
【図１９】図１６に示す照射状態におけるバー幅の補正方法を説明するための図。
【図２０】図１６に示す照射状態におけるバー幅の補正方法を説明するための図。
【図２１】欠陥を有するバーコードの一例を示す図。
【図２２】図２１に示すバーコード面において光の照射位置が異なる複数の照射ラインを示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を説明する。
まず、本実施形態における構成を説明する。
【００１２】
図１に、本発明の実施形態に係るバーコード読取装置１の主要部構成を示す。バーコード読取装置１は、ユーザがスキャナ部分を手に持ってバーコードを読み取らせる手持ち式の読取装置であり、図１に示すように、ＣＰＵ（Central Processing Unit）１０、表示部１１、入力部１２、記憶部１３、ＲＡＭ（Random Access Memory）１４、読取部１５、ジャイロセンサ１６を備え、各部はバス１７を介して電気的に接続され、電源部１８からの電力供給を受けている。
【００１３】
ＣＰＵ１０は、記憶部１３に記憶された各種制御プログラムをＲＡＭ１４に展開し、当該制御プログラムとの協働によって、各種の処理を行う。具体的にＣＰＵ１０は、記憶部１３に記憶された制御プログラムに従ってバーコード読取処理を行う（図２参照）。
【００１４】
表示部１１は、ＬＣＤ（Liquid Crystal Display）等のディスプレイを有し、ＣＰＵ１０から入力される表示制御信号に従って所要の表示処理を行う。
【００１５】
入力部１２は、バーコードの読み取りを開始させるためのトリガキー等の各種のキーや、表示部１１の表示画面上を覆うように設けられたタッチパネルを有し、キー操作又はタッチパネルの操作による操作信号をＣＰＵ１０に出力する。
【００１６】
記憶部１３は、ＣＰＵ１０により実行される各種制御プログラム及びこれらの制御プログラムの実行時に必要なデータを記憶している。
【００１７】
ＲＡＭ１４は、ＣＰＵ１０により実行される各種制御プログラムを展開するプログラム格納領域と、入力データ及び制御プログラムの実行時に生じる処理結果等のデータを一時的に格納するデータ格納領域とを有する。
【００１８】
読取部１５は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ又はＣＣＤ（Charge Coupled Device）イメージセンサ、Ａ／Ｄコンバータ等により構成される。読取部１５は、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサにより、読取対象のバーコードに照射されたレーザ光の反射光によってバーコードを読み取り、読取により得られた光画像信号を光電変換により電気信号（アナログ信号）に変換し、Ａ／Ｄコンバータにより、このアナログ信号をデジタル信号に変換し、バーコードのイメージデータを取得する。
【００１９】
ジャイロセンサ１６は、加速度センサ１６１及び傾きセンサ１６２を有し、バーコードの読取動作中における読取部１５の３次元空間での移動状態を検出する。加速度センサ１６１は、３次元空間で移動した読取部１５の加速度、移動した時間、移動した方向を検出する。加速度センサ１６１により検出された情報によって、読取部１５の移動距離を算出することができる。傾きセンサ１６２は、３次元空間での読取部１５の動きによって生じた読取部１５の傾きを検出する。傾きセンサ１６２で検出された傾きによって、バーコード面に対する光の照射角度を算出することができる。
【００２０】
次に、本実施形態における動作を説明する。
まず、図２のフローチャートを参照して、バーコード読取装置１のＣＰＵ１０の制御の下で実行されるバーコード読取処理について説明する。
【００２１】
入力部１２のトリガキーが押下されると、所定のスキャン速度（例えば、１００スキャン／秒）で読取部１５によりバーコードの読取が開始され、読取毎にバーコードのイメージデータ（以下、「バーコードイメージデータ」という。）が取得される（ステップＳ１）。ステップＳ１で読取毎に取得された各々のバーコードイメージデータは、ＲＡＭ１４に保存される（ステップＳ２）。
【００２２】
次いで、ステップＳ２においてＲＡＭ１４に保存された各バーコードイメージデータを、予め設定された基準位置から読み取られた場合に取得されるバーコードイメージデータに補正する補正処理が行われる（ステップＳ３）。ステップＳ３の補正処理については、後に図３〜図２０を参照して詳細に説明する。
【００２３】
次いで、ステップＳ３において補正された各バーコードイメージデータの合成が行われる（ステップＳ４）。ステップＳ４での合成では、例えば、各バーコードイメージデータを重ね合わせることにより、一のバーコードイメージデータにおけるバーの欠損箇所（擦れた箇所、印字が薄い箇所など）を他のバーコードイメージデータで補うなどの処理が行われる。
【００２４】
次いで、合成後のバーコードイメージデータを用いてバーコードのデコード処理が行われる（ステップＳ５）。ステップＳ５でのデコード処理では、バーコードイメージデータによって表される白色と黒色のバーの配列が、数値や文字の配列を表すデータに変換される。
【００２５】
デコード処理が終了すると、ステップＳ５のデコード処理において正常にデコードすることができたか否かが判定される（ステップＳ６）。ステップＳ６において、正常にデコードすることができなかったと判定された場合（ステップＳ６；ＮＯ）、タイムアウトになる前であれば（ステップＳ７）、ステップＳ１に戻り、引き続きバーコードの読取動作を継続する。
【００２６】
ステップＳ６において、正常にデコードすることができたと判定された場合（ステップＳ６；ＹＥＳ）、デコード処理の処理結果が出力（例えば、表示部１１に表示）され（ステップＳ８）、本バーコード読取処理が終了する。
【００２７】
次に、図３のフローチャート及び図４〜図２０を参照して、バーコードイメージデータの補正処理（図２のステップＳ３）について詳細に説明する。
【００２８】
本実施形態においてバーコードイメージデータの補正処理とは、ジャイロセンサ１６から取得される読取部１５の３次元空間（ｘ−ｙ−ｚ）における移動状態に基づいて、読取部１５から実際に取得されたバーコードイメージデータを、予め設定された基準位置から読み取られた場合に取得されるバーコードイメージデータに補正する処理である。以下では、バーコード面の中心部分を直交座標系の原点Ｏとし、バーコード面に垂直な方向をｘ軸方向、バーコード面上の各バーが配列する方向をｙ軸方向として説明する。
【００２９】
本実施形態では、ジャイロセンサ１６から取得される読取部１５の３次元空間における移動状態を、読取部１５の光源ＯＳからの照射状態に基づいて以下の５通りに分類し、それぞれの移動状態に対応する補正処理（補正Ｈ１〜補正Ｈ５）について説明する。
【００３０】
［１］バーコード面βに近づくように光を照射した状態（図４参照）；
［２］バーコード面βから遠ざかるように光を照射した状態（図７参照）；
［３］ｘ−ｙ平面内の基準方向（ｘ軸方向に平行）に対して傾斜するように光を照射した状態（図１０参照）；
［４］バーコード面βに対してバーの配列方向（ｙ軸方向）に移動するように光を照射した状態（図１３参照）；
［５］バーコード面β上の照射ラインがバーの配列方向（ｙ軸方向）に対して傾斜するように光を照射した状態（図１６参照）；
【００３１】
なお、実際にジャイロセンサ１６で検出される移動状態は、上記［１］〜［５］に対応する移動状態が複合されたものであるが、これらの複合された移動状態を上記［１］〜［５］に分離して、各々の移動状態に対する補正処理を行うことにより、最終的には複合された移動状態に対する補正処理と同等の結果が得られる。
【００３２】
図３に示すバーコードイメージデータの補正処理では、まず、ジャイロセンサ１６から読取部１５の移動状態が取得される（ステップＳ２０）。そして、当該移動状態が、図４に示すようにバーコード面βに近づくように光を照射した状態（移動状態［１］）又は図７に示すようにバーコード面βから遠ざかるように光を照射した状態（移動状態［２］）を含むか否かが判定される（ステップＳ２１）。
【００３３】
ステップＳ２１において、ジャイロセンサ１６から取得された移動状態が、移動状態［１］又は移動状態［２］を含むと判定された場合（ステップＳ２１；ＹＥＳ）、以下の補正Ｈ１又は補正Ｈ２が行われる（ステップＳ２２）。
【００３４】
［補正Ｈ１］
図４に示す移動状態［１］の場合、光源ＯＳがバーコード面βに近づくにつれ、図５（ａ）に示すように、バーコード面βにおける光の照射ラインＬの幅が狭くなる。よって、図５（ｂ）に示すように、実際に読取部１５が認識する各バーの幅は、図５（ａ）に示す元の幅よりも太くなる。図５（ａ）及び図５（ｂ）において白色及び黒色それぞれに対応する「バー幅」は、バーの幅を表すカウンタ値であり、例えば、バーの配列順に、白色の幅が６０、黒色の幅が１０、白色の幅が２０、…のように表される。以下の、図８、図１１、図１４、図１７についても同様である。
【００３５】
読取部１５の光源ＯＳの移動距離に応じてバー幅が太くなる割合は、読取部１５で使用されるスキャナモジュールの特性により異なっており、予め設定されている。例えば、図６に示すように、１回目の読取で取得されるバー幅をＢ１、２回目の読取で取得されるバー幅をＢ２、ジャイロセンサ１６から取得される光源ＯＳの移動距離をΔＤ、移動距離に応じてバー幅が太くなる割合を補正係数ｆ１とすると、補正Ｈ１での補正後のバー幅は、式（１）のように表される。
補正後のバー幅＝補正前のバー幅×ΔＤ×ｆ１      …（１）
【００３６】
［補正Ｈ２］
図７に示す移動状態［２］の場合、光源ＯＳがバーコード面βから遠ざかるにつれ、図８（ａ）に示すように、バーコード面βにおける光の照射ラインＬが広くなる。よって、図８（ｂ）に示すように実際に読取部１５が認識する各バーの幅は、図８（ａ）に示す元の幅よりも細くなる。
【００３７】
移動距離に応じてバー幅が細くなる割合は、読取部１５で使用されるスキャナモジュールの特性により異なっており、予め設定されている。例えば、図９に示すように、１回目の読取で取得されるバー幅をＢ１、２回目の読取で取得されるバー幅をＢ２、ジャイロセンサ１６から取得される光源ＯＳの移動距離をΔＤ、移動距離に応じてバー幅が細くなる割合を補正係数ｆ２とすると、補正Ｈ２での補正後のバー幅は、式（２）のように表される。
補正後のバー幅＝補正前のバー幅×ΔＤ×ｆ２      …（２）
【００３８】
図３のステップＳ２１において、ジャイロセンサ１６から取得された移動状態が、移動状態［１］若しくは移動状態［２］の何れも含まないと判定された場合（ステップＳ２１；ＮＯ）、又はステップＳ２２の補正Ｈ１若しくは補正Ｈ２が終了すると、ジャイロセンサ１６から取得された移動状態が、図１０に示すように、ｘ−ｙ平面内において基準方向（ｘ軸方向に平行）に対して傾斜するように光を照射した状態（移動状態［３］）を含むか否かが判定される（ステップＳ２３）。
【００３９】
ステップＳ２３において、ジャイロセンサ１６から取得された移動状態が移動状態［３］を含むと判定された場合（ステップＳ２３；ＹＥＳ）、以下の補正Ｈ３が行われる（ステップＳ２４）。
【００４０】
［補正Ｈ３］
図１０に示すように、光の照射方向がｘ軸に対して傾斜している場合、図１１（ａ）に示すバーコード面β上の照射ラインＬは、バーの位置（ｙ座標の値）によって光源ＯＳからの距離が異なる。従って、図１０に示す移動状態［３］の場合、図１１（ｂ）に示すように、ｙ軸の正の方向に向かって光源ＯＳからの距離が近くなるため、バー幅が太くなり、ｙ軸の負の方向に向かって光源ＯＳからの距離が遠くなるため、バー幅が細くなる。
【００４１】
図１２に示すように、光の照射方向がｘ軸に対して傾斜角Θで傾斜している場合、バーの位置（ｙ＝Ｂｄ）に応じてバー幅が変化する割合は、読取部１５で使用されるスキャナモジュールの特性により異なっており、バーの位置Ｂｄ、ジャイロセンサ１６から取得される傾斜角Θの関数として予め設定されている。バー幅が変化する割合を補正係数ｆ（Ｂｄ,Θ）とすると、補正Ｈ３での補正後のバー幅は、式（３）のように表される。
補正後のバー幅＝補正前のバー幅×ｆ（Ｂｄ,Θ）      …（３）
【００４２】
図３のステップＳ２３において、ジャイロセンサ１６から取得された移動状態が、移動状態［３］を含まないと判定された場合（ステップＳ２３；ＮＯ）、又はステップＳ２４の補正Ｈ３が終了すると、ジャイロセンサ１６から取得された移動状態が、図１３に示すように、バーコード面βに対してバーの配列方向（ｙ軸方向）に移動するように光を照射した状態（移動状態［４］）を含むか否かが判定される（ステップＳ２５）。
【００４３】
ステップＳ２５において、ジャイロセンサ１６から取得された移動状態が、移動状態［４］を含むと判定された場合（ステップＳ２５；ＹＥＳ）、以下の補正Ｈ４が行われる（ステップＳ２６）。
【００４４】
［補正Ｈ４］
図１３に示す移動状態［４］の場合、図１４（ａ）に示すバーコード面β上の照射ラインＬは、バーの配列方向に移動するため、読取部１５が認識するバーコードのスタートマージンの幅（又はエンドマージンの幅）は、図１４（ｂ）に示すように変化してしまう。そこで、補正Ｈ４では、１回目の読取で取得されたバーコードイメージデータを基準として、２回目の読取で取得されたバーコードイメージデータのスタートマージンの幅を、スタートコード等の特徴を有するバーコードイメージデータに基づいて補正する。
【００４５】
図１５に示すように、１回目、２回目の読取でのバーコードの最初の黒色までのカウンタ値をそれぞれｃ１、ｃ２とすると、スタートマージンの幅を、ｃｘ＝ｃ１−ｃ２の分だけ補正すればよい。即ち、補正後のスタートマージンの幅は、式（４）のように表される。
補正後のスタートマージンの幅＝補正前のスタートマージンの幅＋ｃｘ      …（４）
【００４６】
図３のステップＳ２５において、ジャイロセンサ１６から取得された移動状態が、移動状態［４］を含まないと判定された場合（ステップＳ２５；ＮＯ）、又はステップＳ２６の補正Ｈ４が終了すると、ジャイロセンサ１６から取得された移動状態が、図１６に示すように、バーコード面β上の照射ラインがバーの配列方向（ｙ軸方向）に対して傾斜するように光を照射した状態（移動状態［５］）を含むか否かが判定される（ステップＳ２７）。
【００４７】
ステップＳ２７において、ジャイロセンサ１６から取得された移動状態が、移動状態［５］を含むと判定された場合（ステップＳ２７；ＹＥＳ）、以下の補正Ｈ５が行われる（ステップＳ２８）。
【００４８】
［補正Ｈ５］
図１６に示す移動状態［５］では、図１７（ａ）に示すように、バーコード面β上の照射ラインＬがバーの配列方向（ｙ軸方向）に対して傾斜しているため、図１７（ｂ）に示すように、各バーの幅は図１７（ａ）に示す元の幅よりも太くなる。
【００４９】
例えば、図１８に示すように、１回目の読取方向がバーの配列方向と平行であり（バー幅Ｂ１）、２回目の読取方向がバーの配列方向に対して角度θ傾斜している場合、２回目の読取で得られるバー幅Ｂ２を補正したバー幅Ｂは式（５）のように表される。
Ｂ＝Ｂ２・cosθ      …（５）
【００５０】
しかし、実際の読取では、１回目の読取が図１８のようにバーの配列方向に平行になっているとは限らないため、図１９に示すように、１回目の読取もバーの配列方向に対して傾斜している場合も含めてバー幅の補正値を算出すべきである。図１９に示すように、１回目の読取で得られるバー幅をＢ１、２回目の読取で得られるバー幅をＢ２、１回目と２回目の読取の間にジャイロセンサ１６から取得された傾斜角をθとする。この場合、図２０に示すように、二辺の長さをＢ１、Ｂ２とし、両辺が挟む角度をθとした三角形において、角度θに対応する頂点から対辺（長さＣ）に下ろした垂線の長さＢが、バー幅の補正値となる。
【００５１】
図２０の三角形において、長さＣは式（６）のように算出される。
【数１】
0005403091.tif 000002
この三角形の面積は（１／２）Ｂ・Ｃ＝（１／２）Ｂ１・Ｂ２・sinθゆえ、補正後のバー幅Ｂは、式（７）のように算出される。
【数２】
0005403091.tif 000003
【００５２】
図３のステップＳ２７において、ジャイロセンサ１６から取得された移動状態が、移動状態［５］を含まないと判定された場合（ステップＳ２７；ＮＯ）、又はステップＳ２８の補正Ｈ５が終了すると、補正されたバーコードイメージデータがＲＡＭ１４に保存され（ステップＳ２９）、本補正処理が終了する。
【００５３】
以上のように、本実施形態のバーコード読取装置１によれば、ジャイロセンサ１６から取得された移動状態に基づいて、読取部１５により取得されたバーコードイメージデータを、予め設定された基準位置から読み取った場合のバーコードイメージデータに補正することにより、図２１に示すような欠陥を有するバーコードであっても正しく合成処理を行うことができる。これにより、正確な読取結果を得ることができる。
【００５４】
なお、本実施形態における記述内容は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００５５】
例えば、上述の実施形態では、バーコード面βに対して光源ＯＳが略ｘ−ｙ平面内を移動したときの補正処理を示したが、上記の移動状態［１］〜［５］に加えてｚ軸方向への移動を含めた移動状態に対応した補正処理を行うと、より精密な合成処理が可能となる。
【００５６】
また、上述の実施形態では、ジャイロセンサ１６を用いて読取部１５の移動状態を検出する場合を示したが、３次元空間での移動状態が検出可能なものであれば、他のセンサを用いてもよい。
【符号の説明】
【００５７】
１  バーコード読取装置
１０  ＣＰＵ
１１  表示部
１２  入力部
１３  記憶部
１４  ＲＡＭ
１５  読取部
１６  ジャイロセンサ
１６１  加速度センサ
１６２  傾きセンサ
１８  電源部
【図１】
0005403091.tif 000004
【図２】
0005403091.tif 000005
【図３】
0005403091.tif 000006
【図４】
0005403091.tif 000007
【図５】
0005403091.tif 000008
【図６】
0005403091.tif 000009
【図７】
0005403091.tif 000010
【図８】
0005403091.tif 000011
【図９】
0005403091.tif 000012
【図１０】
0005403091.tif 000013
【図１１】
0005403091.tif 000014
【図１２】
0005403091.tif 000015
【図１３】
0005403091.tif 000016
【図１４】
0005403091.tif 000017
【図１５】
0005403091.tif 000018
【図１６】
0005403091.tif 000019
【図１７】
0005403091.tif 000020
【図１８】
0005403091.tif 000021
【図１９】
0005403091.tif 000022
【図２０】
0005403091.tif 000023
【図２１】
0005403091.tif 000024
【図２２】
0005403091.tif 000025