JP4910822B2 - バーコード読取装置及びプログラム - Google Patents

バーコード読取装置及びプログラム Download PDF

Info

Publication number
JP4910822B2
JP4910822B2 JP2007082520A JP2007082520A JP4910822B2 JP 4910822 B2 JP4910822 B2 JP 4910822B2 JP 2007082520 A JP2007082520 A JP 2007082520A JP 2007082520 A JP2007082520 A JP 2007082520A JP 4910822 B2 JP4910822 B2 JP 4910822B2
Authority
JP
Japan
Prior art keywords
barcode
reading
movement
bar
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007082520A
Other languages
English (en)
Other versions
JP2008242829A (ja
Inventor
哲也 黒松
隆雄 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2007082520A priority Critical patent/JP4910822B2/ja
Priority to EP09008776.8A priority patent/EP2101281B1/en
Priority to DE602008006482T priority patent/DE602008006482D1/de
Priority to EP08004739A priority patent/EP1975849B1/en
Priority to US12/079,148 priority patent/US7832642B2/en
Publication of JP2008242829A publication Critical patent/JP2008242829A/ja
Application granted granted Critical
Publication of JP4910822B2 publication Critical patent/JP4910822B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、バーコード読取装置及びプログラムに関する。
スキャナの読取範囲よりも幅が広いバーコードのデータを得るには、バーコード面に対してスキャナを移動させながらスキャンする必要がある。従来、このような幅の広いバーコードをスキャンしてバーコードデータを得るために、ユーザがスキャナをバーの配列方向に移動させながら所定のスキャン速度(例えば、100スキャン/秒)でバーコードをスキャンし、スキャンする度にバーコードのパターンマッチングを行い、一致した部分を基に少しずつ合成を行っていた(例えば、特許文献1参照)。
特開平7−57035号公報
しかしながら、従来は、スキャン毎にバーコードのパターンマッチングを行っていたため、各スキャンに対するスキャナの移動距離が短くなると、パターンマッチング及び合成処理を実施する回数が多くなり、処理効率が悪いという問題があった。
本発明の課題は、バーコードデータの合成処理の効率化を図ることである。
請求項1に記載のバーコード読取装置は、バーコードに対する読取範囲の移動とともに当該バーコードを順次読み取ってバーコードデータを取得する読取手段と、前記読取手段により取得された各バーコードデータを記憶する記憶手段と、前記読取手段の3次元空間での移動状態を検出する検出手段と、前記検出手段により検出された移動状態に基づいて、バーコードデータの合成に必要な前記読取手段の移動量を算出する算出手段と、前記読取手段が前記算出された移動量分移動したか否かを判定する判定手段と、前記判定手段により前記読取手段が前記算出された移動量分移動したと判定された場合は、移動前に取得されたバーコードデータと、移動後に取得されたバーコードデータとを合成する合成手段と、前記合成手段により合成されたバーコードデータをデコードするデコード手段と、を備える。
請求項2に記載の発明は、請求項1に記載のバーコード読取装置において、前記検出手段により検出された移動状態に基づいて、前記取得されたバーコードデータを補正する補正手段を備え、前記合成手段は、前記補正手段により補正されたバーコードデータを合成する。
請求項3に記載の発明は、請求項1又は2に記載のバーコード読取装置において、前記検出手段は、ジャイロセンサを用いて前記移動状態を検出し、前記ジャイロセンサは、3次元空間での前記読取手段の加速度を検出する加速度センサと、3次元空間での前記読取手段の移動によって生じる当該読取手段の傾きを検出する傾きセンサと、を有する。
請求項4に記載の発明は、請求項1乃至3のいずれかに記載のバーコード読取装置において、前記検出手段は、前記読取手段が前記バーコードに近づくように移動した移動状態あるいは前記読取手段が前記バーコードから遠ざかるように移動した移動状態のいずれかを検出し、前記補正手段は、前記読取手段が前記バーコードに近づくように移動した場合は、前記読取手段の移動距離に応じてバー幅が細くなるように前記バーコードイメージデータを補正し、前記読取手段が前記バーコード面から遠ざかるように移動した場合は、前記読取手段の移動距離に応じてバー幅が太くなるように前記バーコードイメージデータを補正する。
請求項5に記載の発明は、請求項1乃至4のいずれかに記載のバーコード読取装置において、前記検出手段は、前記読取手段が前記バーコードに対して傾斜して光を照射した移動状態を検出し、前記補正手段は、前記読取手段が前記バーコードに対して傾斜して光を照射した場合は、前記読取手段の傾斜角に応じてバーコードイメージデータのバー幅を補正する。
請求項6に記載の発明は、請求項1乃至5のいずれかに記載のバーコード読取装置において、前記検出手段は、前記読取手段が前記バーコードに対してバー配列方向に移動した移動状態を検出し、前記補正手段は、前記読取手段が前記バーコードに対してバー配列方向に移動した場合は、前記読取手段の移動距離に応じてバーコードイメージデータのスタートマージンの幅を補正する。
請求項7に記載の発明は、請求項1乃至6のいずれかに記載のバーコード読取装置において、前記検出手段は、前記読取手段が前記バーコードのバー配列方向に対して傾斜して光を照射した移動状態を検出し、前記補正手段は、前記読取手段が前記バーコードのバー配列方向に対して傾斜して光を照射した場合は、前記読取手段の前記バー配列方向に対する傾斜角に応じてバーコードイメージデータのバー幅を補正する。
請求項8に記載の発明は、コンピュータを、バーコードに対する読取範囲の移動とともに当該バーコードを順次読取手段により読み取らせ、バーコードデータを取得する手段、前記取得された各バーコードデータを記憶手段に記憶させる手段、前記読取手段の3次元空間での移動状態を検出する手段、前記検出された移動状態に基づいて、バーコードデータの合成に必要な前記読取手段の移動量を算出する手段、前記読取手段が前記算出された移動量分移動したか否かを判定する手段、前記読取手段が前記算出された移動量分移動したと判定された場合は、移動前に取得されたバーコードデータと、移動後に取得されたバーコードデータとを合成する手段、前記合成されたバーコードデータをデコードする手段、として機能させるためのプログラムである。
本発明によれば、読取手段の移動状態に基づいてバーコードの合成処理を実施することにより、合成処理の回数が大幅に削減され、バーコードデータの合成処理を効率化させることができる。
以下、図面を参照して、本発明の実施形態を説明する。
本発明の実施形態に係るバーコード読取装置1は、ユーザがスキャナ部分を手に持ってバーコードを読み取らせる手持ち式であるものとする。また、本実施形態では、読取対象のバーコード全体の幅が、バーコード読取装置1が一回で読取可能な範囲よりも広いものとし、この読取範囲をバーの配列方向に連続的に移動させて、当該バーコード全体を読み取らせることを前提とする。
まず、本実施形態における構成を説明する。
図1に、本発明の実施形態に係るバーコード読取装置1の主要部構成を示す。バーコード読取装置1は、図1に示すように、CPU(Central Processing Unit)10、表示部11、入力部12、記憶部13、RAM(Random Access Memory)14、読取部15、ジャイロセンサ16を備え、各部はバス17を介して電気的に接続され、電源部18からの電力供給を受けている。
CPU10は、記憶部13に記憶された各種制御プログラムをRAM14に展開し、当該制御プログラムとの協働によって、各種の処理を行う。具体的にCPU10は、記憶部13に記憶された制御プログラムに従ってバーコード読取処理を行う(図2参照)。
表示部11は、LCD(Liquid Crystal Display)等のディスプレイを有し、CPU10から入力される表示制御信号に従って所要の表示処理を行う。
入力部12は、バーコードの読み取りを開始させるためのトリガキー等の各種のキーや、表示部11の表示画面上を覆うように設けられたタッチパネルを有し、キー操作又はタッチパネルの操作による操作信号をCPU10に出力する。
記憶部13は、CPU10により実行される各種制御プログラム及びこれらの制御プログラムの実行時に必要なデータを記憶している。
RAM14は、CPU10により実行される各種制御プログラムを展開するプログラム格納領域と、入力データ及び制御プログラムの実行時に生じる処理結果等のデータを一時的に格納するデータ格納領域とを有する。
読取部15は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ又はCCD(Charge Coupled Device)イメージセンサ、A/Dコンバータ等により構成される。読取部15は、CMOSイメージセンサ又はCCDイメージセンサにより、読取対象のバーコードに照射されたレーザ光の反射光によってバーコードを読み取り、読取により得られた光画像信号を光電変換により電気信号(アナログ信号)に変換し、A/Dコンバータにより、このアナログ信号をデジタル信号に変換し、バーコードデータを取得する。
読取部15で取得されるバーコードデータは、バーコードの白色又は黒色のバーの幅を示すカウンタ値として表される。例えば、バーの配列順に、白色の幅が60、黒色の幅が10、白色の幅が20、…のように表される。以下では、読取部15で取得されるバーコードデータを「バーデータ」と呼ぶことにする。
ジャイロセンサ16は、加速度センサ161及び傾きセンサ162を有し、3次元空間における読取部15の移動状態を検出する。加速度センサ161は、3次元空間で移動した読取部15の加速度、移動した時間、移動した方向を検出する。加速度センサ161により検出された情報によって、読取部15の移動距離を算出することができる。傾きセンサ162は、3次元空間での読取部15の動きによって生じた読取部15の傾きを検出する。傾きセンサ162で検出された傾きによって、バーコード面に対する光の照射角度を算出することができる。
次に、本実施形態における動作を説明する。
まず、図2のフローチャートを参照して、バーコード読取装置1のCPU10の制御の下で実行されるバーコード読取処理について説明する。
入力部12のトリガキーが押下されると、所定のスキャン速度(例えば、100スキャン/秒)で読取部15によりバーコードの読取が開始される(ステップS1)。トリガキーの押下後タイムアウトになる時間内であれば(ステップS2;NO)、バーコードの読取によってバーデータが取得され、RAM14に格納される(ステップS3)。
次いで、ステップS3で取得されたバーデータに対してデコード処理が施される(ステップS4)。ステップS4でのデコード処理では、バーデータによって表される白色と黒色の配列が数値や文字の配列を表すデータに変換される。
デコード処理が終了すると、ステップS4のデコード処理において正常にデコードすることができたか否かが判定される(ステップS5)。ステップS5において、正常にデコードすることができたと判定された場合(ステップS5;YES)、バーデータの合成処理が「無効」に設定され(ステップS9)、本バーコード読取処理が終了する。
ステップS5において、正常にデコードすることができなかったと判定された場合(ステップS5;NO)、ステップS3で取得されたバーデータの補正処理が行われ(ステップS6)、続いて、補正後のバーデータの合成処理が行われる(ステップS7)。ここで、バーデータの合成処理の前にバーデータの補正処理が行われるのは、ユーザの手のぶれ等に起因して、実際に取得されるバーデータが、予め設定された基準位置から読み取られた場合に取得されるバーデータと異なる可能性が高いためである。
ステップS6の補正処理については、後に図5〜図22を参照して詳細に説明する。また、ステップS7の合成処理については、後に図3及び図4を参照して詳細に説明する。
ステップS7の合成処理では、バーデータの合成後に再度デコード処理が行われる。そして、ステップS7の終了後、合成されたバーデータを正常にデコードすることができたか否かが判定される(ステップS8)。
ステップS8において、合成されたバーデータを正常にデコードすることができなかったと判定された場合(ステップS8;NO)、ステップS2に戻り、タイムアウトになるまで、ステップS3以降の処理が繰り返される。
一方、ステップS8において、合成されたバーデータを正常にデコードすることができたと判定された場合(ステップS8;YES)、以降のバーデータの合成処理が「無効」に設定され(ステップS9)、本バーコード読取処理が終了する。
次に、図3のフローチャート及び図4を参照して、バーデータの合成処理(図2のステップS7)について説明する。図3では、後に説明する補正処理が施された後のバーデータ(即ち、予め設定された基準位置から読み取られた場合に取得されるバーデータ)の合成処理を説明する。
まず、バーデータの合成処理が「有効」に設定されているか否かが判定される(ステップS11)。なお、バーコードの読取を開始する時点では、バーコードの合成処理が「無効」に設定されているものとする。
ステップS11においてバーデータの合成処理が「有効」に設定されていない場合、即ち「無効」に設定されていると判定された場合(ステップS11;NO)、1回目の読取で取得されたバーデータからスタートコード又はストップコードが検出され(ステップS12)、スタートコード又はストップコードを検出することができたか否かが判定される(ステップS13)。
ステップS13において、スタートコード又はストップコードを検出することができなかったと判定された場合(ステップS13;NO)、本合成処理が終了する。一方、ステップS13において、スタートコード又はストップコードを検出することができたと判定された場合(ステップS13;YES)、バーデータの合成処理が「有効」に設定される(ステップS14)。
また、次回の合成に必要な移動距離を表す合成用移動距離が0に設定され(ステップS15)、ジャイロセンサ16において現在の位置情報がリセットされる(ステップS16)。更に、1回目の読取で取得されたバーデータがRAM14に格納され(ステップS17)、図2のステップS8に戻る。
ステップS11において、バーコードの合成処理が「有効」に設定されていると判定された場合(ステップS11;YES)、合成用移動距離が0に設定されているか否かが判定される(ステップS18)。ステップS18において、合成用移動距離が0に設定されていると判定された場合(ステップS18;YES)、2回目の読取で取得されたバーデータからスタートコード又はストップコードが検出される(ステップS19)。
次いで、ステップS19で検出されたスタートコード又はストップコードのパターンが、1回目の読取で検出されたスタートコード又はストップコードのパターンと一致するか否かが判定される(ステップS20)。
ステップS20において、両パターンが一致しないと判定された場合(ステップS20;NO)、ステップS24に移行し、前回(1回目)取得されたバーデータがRAM14からクリアされ(ステップS24)、今回(2回目)取得されたバーデータがRAM14に格納され(ステップS25)、図2のステップS8に戻る。
一方、ステップS20において、両パターンが一致すると判定された場合(ステップS20;YES)、ジャイロセンサ16により検出された移動距離が取得され(ステップS21)、この取得された移動距離に基づいて1カウンタ値の移動距離(1カウンタ値あたりの移動距離)が算出される(ステップS22)。
図4に示すように、1回目、2回目の読取時のバーコード面における光の照射ライン(読取範囲)をそれぞれL1、L2とする。このとき、1回目、2回目の読取で取得されたバーコードの最初の黒色までのカウンタ値をそれぞれC1、C2とし、1回目と2回目の読取の間にジャイロセンサ16により検出された移動距離をΔX1とすると、1カウンタ値の移動距離ΔXは、式(1)のように算出される。
ΔX=ΔX1/(C1−C2) …(1)
1カウンタ値の移動距離が算出されると、今回の読取で取得されたバーデータのカウンタ値の総計及び1カウンタ値の移動距離から、次回の合成までに必要な移動距離を表す合成用移動距離が算出される(ステップS23)。図4において、2回目に取得されたバーデータのカウンタ値の総計をCW1とすると、合成用移動距離ΔX2は、1カウンタ値の移動距離ΔXを用いて式(2)のように算出される。
ΔX2=CW1×ΔX …(2)
合成用移動距離の算出後、前回(1回目)取得されたバーデータがRAM14からクリアされ(ステップS24)、今回(2回目)取得されたバーデータがRAM14に格納され(ステップS25)、図2のステップS8に戻る。
ステップS18において、合成用移動距離が0ではないと判定された場合(ステップS18;NO)、ジャイロセンサ16により、読取部15が合成用移動距離分移動したことが検出されると(ステップS26;YES)、前回取得されたバーデータ(即ち合成用移動距離分移動する直前までに取得されたバーデータ)と、今回取得されたバーデータ(即ち合成用移動距離分移動した直後に取得されたバーデータ)とが合成される(ステップS27)。
ステップS27では、図4に示すように、2回目に取得されたバーデータ(合成用移動距離ΔX2分移動する直前に取得されたバーデータ)と、2回目の読取時から合成用移動距離ΔX2分移動した直後の照射ラインL3において取得されたバーデータとが結合される。なお、図4において、1回目、2回目、3回目、…とは、バーデータの合成のために最低限必要な読取回数を示すものであり、読取部15が実際に所定のスキャン速度で読み取った回数を示すものではない。
ステップS27での合成後、その合成されたバーデータに対してデコード処理が施される(ステップS28)。デコード処理が終了すると、ステップS28のデコード処理において正常にデコードすることができたか否かが判定される(ステップS29)。ステップS29において、正常にデコードすることができたと判定された場合(ステップS29;YES)、本合成処理が終了し、図2のステップS8へ戻る。
一方、ステップS29において、正常にデコードすることができなかったと判定された場合(ステップS29;NO)、式(2)と同様に、今回の読取で取得されたバーデータのカウンタ値の総計に、ステップS22で算出された1カウンタ値の移動距離ΔXを乗算することにより、次回の合成に必要な移動距離を表す合成用移動距離が算出される(ステップS30)。ステップS30の終了後、ステップS27で合成されたバーデータがRAM14に格納され(ステップS31)、図2のステップS8へ戻る。
次に、図5のフローチャート及び図6〜図22を参照して、バーデータの補正処理(図2のステップS6)について詳細に説明する。
本実施形態においてバーデータの補正処理とは、ジャイロセンサ16から取得される読取部15の3次元空間(x−y−z)における移動状態に基づいて、読取部15から実際に取得されたバーデータを、予め設定された基準位置から読み取られた場合に取得されるバーデータに補正する処理である。以下では、バーコード面の中心部分を直交座標系の原点Oとし、バーコード面に垂直な方向をx軸方向、バーコード面上の各バーが配列する方向をy軸方向として説明する。
本実施形態では、ジャイロセンサ16から取得される読取部15の3次元空間における移動状態を、読取部15の光源OSからの照射状態に基づいて以下の5通りに分類し、それぞれの移動状態に対応する補正処理(補正H1〜補正H5)について説明する。
[1]バーコード面βに近づくように光を照射した状態(図6参照);
[2]バーコード面βから遠ざかるように光を照射した状態(図9参照);
[3]x−y平面内の基準方向(x軸方向に平行)に対して傾斜するように光を照射した状態(図12参照);
[4]バーコード面βに対してバーの配列方向(y軸方向)に移動するように光を照射した状態(図15参照);
[5]バーコード面β上の照射ラインがバーの配列方向(y軸方向)に対して傾斜するように光を照射した状態(図18参照).
なお、実際にジャイロセンサ16で検出される移動状態は、上記[1]〜[5]に対応する移動状態が複合されたものであるが、これらの複合された移動状態を上記[1]〜[5]に分離して、各々の移動状態に対する補正処理を行うことにより、最終的には複合された移動状態に対する補正処理と同等の結果が得られる。
図5に示すバーデータの補正処理では、まず、ジャイロセンサ16から読取部15の移動状態が取得される(ステップS40)。そして、当該移動状態が、図6に示すようにバーコード面βに近づくように光を照射した状態(移動状態[1])又は図9に示すようにバーコード面βから遠ざかるように光を照射した状態(移動状態[2])を含むか否かが判定される(ステップS41)。
ステップS41において、ジャイロセンサ16から取得された移動状態が、移動状態[1]又は移動状態[2]を含むと判定された場合(ステップS41;YES)、以下の補正H1又は補正H2が行われる(ステップS42)。
[補正H1]
図6に示す移動状態[1]の場合、光源OSがバーコード面βに近づくにつれ、図7(a)に示すように、バーコード面βにおける光の照射ラインLの幅が狭くなる。よって、図7(b)に示すように、実際に読取部15が認識する各バーの幅は、図7(a)に示す元の幅よりも太くなる。図7(a)及び図7(b)において白色及び黒色それぞれに対応する「バー幅」は、バーの幅を表すカウンタ値である。以下の、図10、図13、図16、図19についても同様である。
読取部15の光源OSの移動距離に応じてバー幅が太くなる割合は、読取部15で使用されるスキャナモジュールの特性により異なっており、移動距離の関数として予め設定されている。例えば、図8に示すように、1回目の読取で取得されるバー幅をB1、2回目の読取で取得されるバー幅をB2、ジャイロセンサ16から取得される光源OSの移動距離をΔD、移動距離に応じてバー幅が太くなる割合を補正係数f1とすると、補正H1での補正後のバー幅は、式(3)のように表される。
補正後のバー幅=補正前のバー幅×ΔD×f1 …(3)
[補正H2]
図9に示す移動状態[2]の場合、光源OSがバーコード面βから遠ざかるにつれ、図10(a)に示すように、バーコード面βにおける光の照射ラインLが広くなる。よって、図10(b)に示すように実際に読取部15が認識する各バーの幅は、図10(a)に示す元の幅よりも細くなる。
移動距離に応じてバー幅が細くなる割合は、読取部15で使用されるスキャナモジュールの特性により異なっており、予め設定されている。例えば、図11に示すように、1回目の読取で取得されるバー幅をB1、2回目の読取で取得されるバー幅をB2、ジャイロセンサ16から取得される光源OSの移動距離をΔD、移動距離に応じてバー幅が細くなる割合を補正係数f2とすると、補正H2での補正後のバー幅は、式(4)のように表される。
補正後のバー幅=補正前のバー幅×ΔD×f2 …(4)
図5のステップS41において、ジャイロセンサ16から取得された移動状態が、移動状態[1]又は移動状態[2]の何れも含まないと判定された場合(ステップS41;NO)、又はステップS42の補正H1若しくは補正H2が終了すると、ジャイロセンサ16から取得された移動状態が、図12に示すように、x−y平面内において基準方向(x軸方向に平行)に対して傾斜するように光を照射した状態(移動状態[3])を含むか否かが判定される(ステップS43)。
ステップS43において、ジャイロセンサ16から取得された移動状態が移動状態[3]を含むと判定された場合(ステップS43;YES)、以下の補正H3が行われる(ステップS44)。
[補正H3]
図12に示すように、光の照射方向がx軸に対して傾斜している場合、図13(a)に示すバーコード面β上の照射ラインLは、バーの位置(y座標の値)によって光源OSからの距離が異なる。従って、図12に示す移動状態[3]の場合、図13(b)に示すように、y軸の正の方向に向かって光源OSからの距離が近くなるため、バー幅が太くなり、y軸の負の方向に向かって光源OSからの距離が遠くなるため、バー幅が細くなる。
図14に示すように、光の照射方向がx軸に対して傾斜角Θで傾斜している場合、バーの位置(y=Bd)に応じてバー幅が変化する割合は、読取部15で使用されるスキャナモジュールの特性により異なっており、バーの位置Bd、ジャイロセンサ16から取得される傾斜角Θの関数として予め設定されている。バー幅が変化する割合を補正係数f(Bd,Θ)とすると、補正H3での補正後のバー幅は、式(5)のように表される。
補正後のバー幅=補正前のバー幅×f(Bd,Θ) …(5)
図5のステップS43において、ジャイロセンサ16から取得された移動状態が、移動状態[3]を含まないと判定された場合(ステップS43;NO)、又はステップS44の補正H3が終了すると、ジャイロセンサ16から取得された移動状態が、図15に示すように、バーコード面βに対してy軸方向に移動するように光を照射した状態(移動状態[4])を含むか否かが判定される(ステップS45)。
ステップS45において、ジャイロセンサ16から取得された移動状態が、移動状態[4]を含むと判定された場合(ステップS45;YES)、以下の補正H4が行われる(ステップS46)。
[補正H4]
図15に示す移動状態[4]の場合、図16(a)に示すバーコード面β上の照射ラインLは、バーの配列方向に移動するため、読取部15が認識するバーコードのスタートマージンの幅(又はエンドマージンの幅)は、図16(b)に示すように変化してしまう。そこで、補正H4では、1回目の読取で取得されたバーデータを基準として、2回目の読取で取得されたバーデータのスタートマージンの幅を、スタートコード等の特徴を有するバーデータに基づいて補正する。
図17に示すように、1回目、2回目の読取でのバーコードの最初の黒色までのカウンタ値をそれぞれc1、c2とすると、スタートマージンの幅を、cx=c1−c2の分だけ補正すればよい。即ち、補正後のスタートマージンの幅は、式(6)のように表される。
補正後のスタートマージンの幅=補正前のスタートマージンの幅+cx …(6)
図5のステップS45において、ジャイロセンサ16から取得された移動状態が、移動状態[4]を含まないと判定された場合(ステップS45;NO)、又はステップS46の補正H4が終了すると、ジャイロセンサ16から取得された移動状態が、図18に示すように、バーコード面β上の照射ラインがバーの配列方向(y軸方向)に対して傾斜するように光を照射した状態(移動状態[5])を含むか否かが判定される(ステップS47)。
ステップS47において、ジャイロセンサ16から取得された移動状態が、移動状態[5]を含むと判定された場合(ステップS47;YES)、以下の補正H5が行われる(ステップS48)。
[補正H5]
図18に示す移動状態[5]では、図19(a)に示すように、バーコード面β上の照射ラインLがバーの配列方向(y軸方向)に対して傾斜しているため、図19(b)に示すように、各バーの幅は図19(a)に示す元の幅よりも太くなる。
例えば、図20に示すように、1回目の読取方向がバーの配列方向と平行であり(バー幅B1)、2回目の読取方向がバーの配列方向に対して角度θ傾斜している場合、2回目の読取で得られるバー幅B2を補正したバー幅Bは式(7)のように表される。
B=B2・cosθ …(7)
しかし、実際の読取では、1回目の読取が図20のようにバーの配列方向に平行になっているとは限らないため、図21に示すように、1回目の読取もバーの配列方向に対して傾斜している場合も含めてバー幅の補正値を算出すべきである。図21に示すように、1回目の読取で得られるバー幅をB1、2回目の読取で得られるバー幅をB2、1回目と2回目の読取の間にジャイロセンサ16から取得された傾斜角をθとする。この場合、図22に示すように、二辺の長さをB1、B2とし、両辺が挟む角度をθとした三角形において、角度θに対応する頂点から対辺(長さC)に下ろした垂線の長さBが、バー幅の補正値となる。
図22の三角形において、長さCは式(8)のように算出される。
Figure 0004910822
この三角形の面積は(1/2)B・C=(1/2)B1・B2・sinθゆえ、補正後のバー幅Bは、式(9)のように算出される。
Figure 0004910822
図5のステップS47において、ジャイロセンサ16から取得された移動状態が、移動状態[5]を含まないと判定された場合(ステップS47;NO)、又はステップS48の補正H5が終了すると、補正されたバーデータがRAM14に格納され(ステップS49)、本補正処理が終了する。
以上のように、本実施形態のバーコード読取装置1によれば、幅の広いバーコードを読み取る場合、ジャイロセンサ16から最初に取得された移動距離ΔX1に基づいて算出された1カウンタの移動距離ΔXを用いて、バーデータの合成に必要な移動距離(合成用移動距離)を算出し、合成用移動距離分移動する前と後のバーデータを合成するようにしたことにより、合成する領域の重複部分が大幅に削減され、合成処理を実施する回数が大幅に削減される。これにより、バーデータの合成処理を効率化(最適化)させ、デコード処理の処理速度を向上させることができる。
また、ジャイロセンサ16から取得された移動状態に基づいて、読取部15により取得されたバーデータを、予め設定された基準位置から読み取った場合のバーデータに補正することにより、より精密な合成処理を行うことができる。
なお、本実施形態における記述内容は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
例えば、上述の実施形態では、バーコード面βに対して光源OSが略x−y平面内を移動したときの補正処理を示したが、上記の移動状態[1]〜[5]に加えてz軸方向への移動を含めた移動状態に対応した補正処理を行うと、より精密な合成処理が可能となる。
また、上述の実施形態では、合成用移動距離を読取部15による1回の読取で得られたバー幅の総計(カウンタ値の総計)に対応する値としたが、任意の幅に対応する距離に設定してもよい。
また、上述の実施形態では、ジャイロセンサ16を用いて読取部15の移動状態を検出する場合を示したが、3次元空間での移動状態が検出可能なものであれば、他のセンサを用いてもよい。
本発明の実施形態に係るバーコード読取装置の主要部構成を示すブロック図。 本実施形態のバーコード読取装置のCPUの制御の下で実行されるバーコード読取処理を示すフローチャート。 図2に示した合成処理の詳細を示すフローチャート。 バーデータの合成方法を説明するための図。 図2に示した補正処理の詳細を示すフローチャート。 バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面に近づくように光を照射した状態を示す図。 読取対象のバーコードのイメージデータ及び光の照射ラインを示す図(a)と、図6に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図(b)。 図6に示す照射状態におけるバー幅の補正方法を説明するための図。 バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面から遠ざかるように光を照射した状態を示す図。 読取対象のバーコードのイメージデータ及び光の照射ラインを示す図(a)と、図9に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図(b)。 図9に示す照射状態におけるバー幅の補正方法を説明するための図。 バーコード面に対する光の照射状態を模式的に示す図であって、x−y平面内において基準方向(x軸方向に平行)から傾斜するように光を照射した状態を示す図。 読取対象のバーコードのイメージデータ及び光の照射ラインを示す図(a)と、図12に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図(b)。 図12に示す照射状態におけるバー幅の補正方法を説明するための図。 バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面に対してy軸方向に移動するように光を照射した状態を示す図。 読取対象のバーコードのイメージデータ及び光の照射ラインを示す図(a)と、図15に示す照射状態において読取部により認識されるバーコードのイメージデータを示す図(b)。 図15に示す照射状態におけるスタートマージン幅の補正方法を説明するための図。 バーコード面に対する光の照射状態を模式的に示す図であって、バーコード面上の照射ラインがバーの配列方向(y軸方向)に対して傾斜するように光を照射した状態を示す図。 読取対象のバーコードのイメージデータ及び光の照射ラインを示す図(a)と、図18に示す照射状態の場合に読取部により認識されるバーコードのイメージデータを示す図(b)。 図18に示す照射状態におけるバー幅の補正方法を説明するための図。 図18に示す照射状態におけるバー幅の補正方法を説明するための図。 図18に示す照射状態におけるバー幅の補正方法を説明するための図。
符号の説明
1 バーコード読取装置
10 CPU
11 表示部
12 入力部
13 記憶部
14 RAM
15 読取部
16 ジャイロセンサ
161 加速度センサ
162 傾きセンサ
18 電源部

Claims (8)

  1. バーコードに対する読取範囲の移動とともに当該バーコードを順次読み取ってバーコードデータを取得する読取手段と、
    前記読取手段により取得された各バーコードデータを記憶する記憶手段と、
    前記読取手段の3次元空間での移動状態を検出する検出手段と、
    前記検出手段により検出された移動状態に基づいて、バーコードデータの合成に必要な前記読取手段の移動量を算出する算出手段と、
    前記読取手段が前記算出された移動量分移動したか否かを判定する判定手段と、
    前記判定手段により前記読取手段が前記算出された移動量分移動したと判定された場合は、移動前に取得されたバーコードデータと、移動後に取得されたバーコードデータとを合成する合成手段と、
    前記合成手段により合成されたバーコードデータをデコードするデコード手段と、
    を備えるバーコード読取装置。
  2. 前記検出手段により検出された移動状態に基づいて、前記取得されたバーコードデータを補正する補正手段を備え、
    前記合成手段は、前記補正手段により補正されたバーコードデータを合成する請求項1に記載のバーコード読取装置。
  3. 前記検出手段は、ジャイロセンサを用いて前記移動状態を検出し、
    前記ジャイロセンサは、3次元空間での前記読取手段の加速度を検出する加速度センサと、3次元空間での前記読取手段の移動によって生じる当該読取手段の傾きを検出する傾きセンサと、を有する請求項1又は2に記載のバーコード読取装置。
  4. 前記検出手段は、前記読取手段が前記バーコードに近づくように移動した移動状態あるいは前記読取手段が前記バーコードから遠ざかるように移動した移動状態のいずれかを検出し、
    前記補正手段は、前記読取手段が前記バーコードに近づくように移動した場合は、前記読取手段の移動距離に応じてバー幅が細くなるように前記バーコードイメージデータを補正し、前記読取手段が前記バーコード面から遠ざかるように移動した場合は、前記読取手段の移動距離に応じてバー幅が太くなるように前記バーコードイメージデータを補正することを特徴とする請求項1乃至3のいずれかに記載のバーコード読取装置。
  5. 前記検出手段は、前記読取手段が前記バーコードに対して傾斜して光を照射した移動状態を検出し、
    前記補正手段は、前記読取手段が前記バーコードに対して傾斜して光を照射した場合は、前記読取手段の傾斜角に応じてバーコードイメージデータのバー幅を補正することを特徴とする請求項1乃至4のいずれかに記載のバーコード読取装置。
  6. 前記検出手段は、前記読取手段が前記バーコードに対してバー配列方向に移動した移動状態を検出し、
    前記補正手段は、前記読取手段が前記バーコードに対してバー配列方向に移動した場合は、前記読取手段の移動距離に応じてバーコードイメージデータのスタートマージンの幅を補正することを特徴とする請求項1乃至5のいずれかに記載のバーコード読取装置。
  7. 前記検出手段は、前記読取手段が前記バーコードのバー配列方向に対して傾斜して光を照射した移動状態を検出し、
    前記補正手段は、前記読取手段が前記バーコードのバー配列方向に対して傾斜して光を照射した場合は、前記読取手段の前記バー配列方向に対する傾斜角に応じてバーコードイメージデータのバー幅を補正することを特徴とする請求項1乃至6のいずれかに記載のバーコード読取装置。
  8. コンピュータを、
    バーコードに対する読取範囲の移動とともに当該バーコードを順次読取手段により読み取らせ、バーコードデータを取得する手段、
    前記取得された各バーコードデータを記憶手段に記憶させる手段、
    前記読取手段の3次元空間での移動状態を検出する手段、
    前記検出された移動状態に基づいて、バーコードデータの合成に必要な前記読取手段の移動量を算出する手段、
    前記読取手段が前記算出された移動量分移動したか否かを判定する手段、
    前記読取手段が前記算出された移動量分移動したと判定された場合は、移動前に取得されたバーコードデータと、移動後に取得されたバーコードデータとを合成する手段、
    前記合成されたバーコードデータをデコードする手段、
    として機能させるためのプログラム。
JP2007082520A 2007-03-27 2007-03-27 バーコード読取装置及びプログラム Expired - Fee Related JP4910822B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007082520A JP4910822B2 (ja) 2007-03-27 2007-03-27 バーコード読取装置及びプログラム
EP09008776.8A EP2101281B1 (en) 2007-03-27 2008-03-13 Bar-code reading apparatus and computer-readable medium
DE602008006482T DE602008006482D1 (de) 2007-03-27 2008-03-13 Strichcode-Lesegerät und computerlesbares Medium
EP08004739A EP1975849B1 (en) 2007-03-27 2008-03-13 Bar-code reading apparatus and computer-readable medium
US12/079,148 US7832642B2 (en) 2007-03-27 2008-03-25 Bar-code reading apparatus and computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007082520A JP4910822B2 (ja) 2007-03-27 2007-03-27 バーコード読取装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008242829A JP2008242829A (ja) 2008-10-09
JP4910822B2 true JP4910822B2 (ja) 2012-04-04

Family

ID=39914095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007082520A Expired - Fee Related JP4910822B2 (ja) 2007-03-27 2007-03-27 バーコード読取装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4910822B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6065719B2 (ja) * 2013-04-04 2017-01-25 株式会社デンソーウェーブ 光学的情報読取装置
KR102311903B1 (ko) * 2019-12-27 2021-10-13 안동대학교 산학협력단 가속도 센서와 바코드를 이용한 시각장애인용 물품구매 시스템 및 그 시스템을 이용한 물품구매방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08114439A (ja) * 1994-10-14 1996-05-07 Nippondenso Co Ltd 携帯形寸法測定装置
JP2000099709A (ja) * 1998-09-25 2000-04-07 Ascii Mirai Kenkyusho:Kk 手走査型スキャナ
JP2003203198A (ja) * 2002-01-08 2003-07-18 Canon Inc 撮像装置、撮像方法、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2008242829A (ja) 2008-10-09

Similar Documents

Publication Publication Date Title
JP5012133B2 (ja) バーコード読取装置及びプログラム
EP1975849B1 (en) Bar-code reading apparatus and computer-readable medium
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
KR100785594B1 (ko) 화상 처리 장치
US6970600B2 (en) Apparatus and method for image processing of hand-written characters using coded structured light and time series frame capture
US7747080B2 (en) System and method for scanning edges of a workpiece
CN1898677A (zh) 利用具有光电子速度传感器的扫描型成像器的指纹检测
JP6241052B2 (ja) 画像処理システムおよび画像処理プログラム
JP2005196543A (ja) 光学情報読取装置
JP4147528B2 (ja) 位置コーディングパターンをデコードするための方法およびデバイス
JP2008547115A (ja) 画像内に所定のパターンを配置するためのシステムおよび方法
JP6314688B2 (ja) 入力装置
JP4910822B2 (ja) バーコード読取装置及びプログラム
JP2006279442A (ja) 画像処理方法および装置並びにプログラム
US20020114022A1 (en) Image input apparatus, recording medium and image synthesis method
JP2007026423A (ja) 画像処理装置および画像処理方法
JP6041011B2 (ja) 携帯処理装置及びプログラム
JP5403091B2 (ja) 読取装置及びプログラム
JP4403750B2 (ja) コード読取装置
EP3062516B1 (en) Parallax image generation system, picking system, parallax image generation method, and computer-readable recording medium
JP2009064262A (ja) 画像補正装置及び画像補正方法及びこれらを用いた指紋画像読取装置及び指紋画像読取方法
JP2013250993A (ja) 携帯処理装置及びプログラム
JP6171165B2 (ja) 運転免許証読取装置及び運転免許証読取方法
CN113452920A (zh) 一种对焦点确定方法、装置、设备及介质
JP4397866B2 (ja) 2次元パターン読み取り装置、2次元パターン読み取り方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110802

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120102

R150 Certificate of patent or registration of utility model

Ref document number: 4910822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees