[第1実施形態]
以下、本発明の光学的情報読取装置をバーコードリーダに適用した第1実施形態を図を参照して説明する。図1は、本実施形態に係るバーコードリーダ10の構成概要を示す斜視図である。図2は、バーコードリーダ10の電気的構成を示すブロック図である。
図1に示すように、バーコードリーダ10は、主に、ハウジングを構成する上ケース11および下ケース12、このハウジング内に収容される図略のプリント配線板および光学系、さらにこのハウジングから外部に延びて上位システムと電気的な接続を可能にするケーブル50等より構成されている。このバーコードリーダ10は、JAN,CODE39,NW−7,ITF等のいわゆるバーコード(「一次元コード」の一例)を読み取るとともに読み取ったバーコードのデータを上位システムに転送する光学的情報読取装置である。
上ケース11および下ケース12は、ABS樹脂等の合成樹脂からなる成形部材で、主に、バーコードリーダ10の表側の外観を形成している。これら上ケース11および下ケース12の一端側には、読取口13が形成され、また他端側にはケーブル取付部15が形成されている。この読取口13が形成される一端側は、裏面側に大きく前傾する首曲がり形状に形成されている。これにより、使用者がバーコードリーダ10を当該上ケース11側から把持した状態で、読取対象物に貼付されたバーコードBに読取口13を当て易くしている。
なお、上ケース11の首曲がり形状部のほぼ中央には、後述するように、バーコードの読み取りに関する情報を光で使用者に通知し得る発光部43が形成されている。
図略のプリント配線板は、上ケース11および下ケース12により形成される内部空間に収容可能な矩形状に形成されており、メモリ35や制御回路40、あるいは発光部43の光源となる発光ダイオード(LED)等の電気系の電子部品を実装することにより、所定の電子回路を構成し得る配線パターンがプリントされている。このプリント配線板には、これらの電子部品のほかに、バーコードの読み取りに必要な光学系の照明光源21や受光センサ28等も実装されている。
次に、このようなプリント配線板に実装されるバーコードリーダ10の電気的構成を図2に基づいて説明する。図2に示すように、バーコードリーダ10の電気的構成は、主に、照明光源21、受光センサ28、結像レンズ27等の光学系と、メモリ35、制御回路40、発光部43、ブザー44、バイブレータ45等のマイコン系と、から構成されている。
光学系は、投光光学系と、受光光学系とに分かれている。投光光学系を構成する照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられるレンズとから構成されている。なお、図1では、複数のバーコードBが貼付された読取対象物であるメニューシートSに向けて照明光Lfを照射する例を概念的に示している。
受光光学系は、受光センサ28、結像レンズ27、反射鏡(図示略)などによって構成されている。受光センサ28は、メニューシートSの各バーコードBに照射されて反射した反射光Lrを受光可能に構成されるものである。この受光センサ28は、結像レンズ27を介して入射する入射光を受光可能にプリント配線板(図示略)に実装されている。なお、受光センサ28は、特許請求の範囲に記載の「受光手段」に相当し得るものである。
結像レンズ27は、外部から読取口13を介して入射する入射光を集光して受光センサ28の受光面28aに像を結像可能な結像光学系として機能するものである。本実施形態では、照明光源21から照射された照明光Lfが、バーコードBにて反射した後、この反射光Lrを結像レンズ27で集光し、受光センサ28の受光面28aにコード像を結像させている。
マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、発光部43、ブザー44、バイブレータ45、通信インタフェース48等から構成されている。
光学系の受光センサ28から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力されると、所定のコード画像情報格納領域に蓄積される。なお、同期信号発生回路38は、受光センサ28およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
制御回路40は、バーコードリーダ10全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなるもので、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40は、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本実施形態の場合、発光部43、ブザー44、バイブレータ45、通信インタフェース48等が接続されている。
これにより、例えば、バーコードBの読み取りに関する情報を通知するインジケータとして機能する発光部43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、さらには当該バーコードリーダ10の使用者に伝達し得る振動を発生可能なバイブレータ45の駆動制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。なお、通信インタフェース48に接続される外部装置には、当該バーコードリーダ10の上位システムに相当するホストコンピュータHST等が含まれる。
次に、バーコードリーダ10の読取処理について説明する。図3は、複数のバーコードBが貼付されたメニューシートSの一例を示す説明図である。図4は、バーコードリーダ10の読取口13を読取対象のバーコードBaに近接させる読取作業を示す説明図である。図5(A)は、バーコードBを読取口13に近接させた状態で読み取る場合の明暗の差と、各信号波形部分における最大値および最小値の差のばらつき度合との関係を示す説明図であり、図5(B)は、バーコードBを読取口13から離間させた状態で読み取る場合の明暗の差と、各信号波形部分における最大値および最小値の差のばらつき度合との関係を示す説明図である。なお、図5および後述する図8〜図11にて示す信号波形の縦軸は、大きくなるほど明度が高い(暗度が低い)ことを示し、小さくなるほど暗度が高い(明度が低い)ことを示す。
この読取処理では、図3に示すように複数のバーコードBが近接して貼付されたメニューシートSに対していずれかのバーコードBをデコードした場合に、読取口13から離間した状態で読み取られたバーコードBの読み取りを無効とする処理がなされる。
なお、図3に示すメニューシートSの一例としては、コンビニエンスストア等の小売店においておでん等を販売する際に使用されるメニューシートが挙げられる。このメニューシートSの右上には後述する登録用コードB0が貼付されている。また、各バーコードBのコード種別としては、例えば、POS(JAN)ラベルが採用されている。
このように処理される理由について、以下に説明する。
図4に示すように、メニューシートSに近接して貼付される複数のバーコードBのうちの読取対象のバーコードBaを読み取る場合、使用者は、バーコードBaに読取口13を近づけるようにして読取作業を行う。このとき、読取対象以外のバーコードBb,Bcも読み取られる場合があり、このように意図しないバーコードBを読み取ってしまう場合にはバーコードBb,Bcは読取口13から離間した状態で読み取られることとなる。そこで、離間した状態で読み取られるバーコードBを無効にすることで、読取対象のバーコードBaのみを読み取り可能とすることができる。
また、バーコードBを読取口13に近接させた状態で読み取る場合、図5(A)の上段に示すように、読み取る画像のピントが合い明暗の差が比較的大きくなる。このとき、図5(A)の下段に示すように、読み取られた画像に応じて形成される各信号波形部分における最大値および最小値の差のばらつきが小さくなる。一方、バーコードBを読取口13から離間させた状態で読み取る場合、図5(B)の上段に示すように、読み取る画像のピントが合わず明暗の差が比較的小さくなる。このとき、図5(B)の下段に示すように、読み取られた画像に応じて形成される各信号波形部分における最大値および最小値の差のばらつきが大きくなる。
そこで、本実施形態においては、読み取ったバーコードBが予め設定される登録コード群に含まれる場合、このバーコードBに関する画像の明暗の差に基づいて当該バーコードBが読取口13から離間した状態で読み取られたか否かを判定する。そして、離間した状態で読み取られた場合には当該バーコードBの読み取りが無効とされる。
以下、読取処理の具体的な流れについて説明する。なお、図6は、登録コード群設定処理の流れを例示するフローチャートである。図7は、読取処理の流れを例示するフローチャートである。図8は、ピントが合う場合のバーコード画像での、最大二色ピーク値Pa1および最小二色ピーク値Pb1の導出過程を示す説明図である。図9は、ピントが合う場合のバーコード画像での、最大単色ピーク値Pa2および最小単色ピーク値Pb2の導出過程を示す説明図である。図10は、ピントが合わない場合のバーコード画像での、最大二色ピーク値Pa1および最小二色ピーク値Pb1の導出過程を示す説明図である。図11は、ピントが合わない場合のバーコード画像での、最大単色ピーク値Pa2および最小単色ピーク値Pb2の導出過程を示す説明図である。
本実施形態においては、図7に示すフローチャートに基づいて読取処理を開始する前に、上述した登録コード群を設定するため、図6に示すフローチャートに基づいて登録コード群設定処理がなされる。この処理は、メニューシートSに近接して貼付される複数のバーコードBの全てが含まれるように登録コード群を設定する処理である。以下、登録コード群設定処理について、図6を用いて詳細に説明する。
まず、図6のステップS101において、登録用画像データ取得処理がなされる。この処理では、使用者の操作により受光センサ28にメニューシートSの右上に貼付された登録用コードB0のコード情報を読み取らせる処理(即ち、受光センサ28に登録用コードB0からの反射光を受光させ、画像データを取得させる処理)がなされる。
次に、ステップS103において、デコード処理がなされる。この処理では、受光センサ28からの受光信号の信号波形を所定の閾値と比較し、その比較に基づいて信号波形を明色領域と暗色領域とに区分けする。上記所定の閾値は、予め定められた一定の値であってもよく、信号波形に基づいて定められる値であってもよい。
これにより、暗色領域と明色領域との配列データが得られる。この配列データは、登録用コードB0における暗色パターン及び明色パターンの配列に対応するものであり、各暗色パターンの位置(所定の基準位置に対する相対位置)及び幅を特定でき、各明色パターンの位置(所定の基準位置に対する相対位置)及び幅を特定できるようになっている。
なお、登録用コードB0は、後述する連続する太領域を有するように構成されている。また、登録用コードB0はメニューシートSの右上に貼付されているので、読取口13を登録用コードB0のみに近づけて読み取ることができるため、読み取る画像のピントが合い明暗の差を比較的大きくすることができる。
次に、ステップS105において、登録コード群の設定処理がなされる。この処理では、登録用コードB0の配列データに基づいて登録コード群が設定されてこの登録コード群に関する情報がメモリ35等に記憶される。具体的には、例えば、登録コード群は、登録用コードB0の先頭の値から6桁目の値までが一致するバーコードを含むように、設定される。この場合、メニューシートSに貼付された全てのバーコードBは、登録用コードB0の先頭の値から6桁目の値までが一致するように構成される。このように、登録用コードB0を読み取るだけで、メニューシートSに貼付されたバーコードBの全てに共通する情報領域を有するコードを予め登録コード群に含むように登録することができるので、登録コード群の設定作業(登録作業)を容易かつ確実に行うことができる。なお、このステップS105による設定処理は、特許請求の範囲に記載の「登録手段」に相当し得るものである。
次に、ステップS107において、二色ピーク閾値設定処理がなされる。この処理では、登録用コードB0を読み取ったときの最大二色ピーク値Pa1および最小二色ピーク値Pb1の差に等しくなるように二色ピーク閾値Pt1が設定されてメモリ35等に記憶される。なお、二色ピーク閾値Pt1は、例えば、最大二色ピーク値Pa1および最小二色ピーク値Pb1の差に所定の係数を乗算した値に等しくなるように設定されてもよい。
ここで、最大二色ピーク値Pa1は、受光センサ28から出力される信号波形の複数の明色領域および暗色領域のうち、連続して配列される明色領域および暗色領域の幅データの合計が最大となる連続領域B1maxに対応する信号波形部分の最大値と最小値との差である(図8参照)。また、最小二色ピーク値Pb1は、受光センサ28から出力される信号波形の複数の明色領域および暗色領域のうち、連続して配列される明色領域および暗色領域の幅データの合計が最小となる連続領域B1minに対応する信号波形部分の最大値と最小値との差である(図8参照)。これにより、二色ピーク閾値Pt1は、明暗の差が小さい状態を示す閾値として設定されることとなる。
このように二色ピーク閾値Pt1を設定する理由について、以下に説明する。
バーコードBを読取口13に近接させた状態で読み取る場合、上述したように読み取る画像のピントが合い明暗の差が比較的大きくなるため、受光センサ28から出力される信号波形の明色領域または暗色領域のそれぞれに対応する各信号波形部分は、図8に示すように、それぞれの最大値および最小値の差のばらつきが小さくなるように変化する。また、バーコードBを読取口13から離間させた状態で読み取る場合、上述したように読み取る画像のピントが合わず明暗の差が比較的小さくなるため、受光センサ28から出力される信号波形の明色領域または暗色領域のそれぞれに対応する各信号波形部分は、図10に示すように、それぞれの最大値および最小値の差のばらつきが大きくなるように変化する。
そこで、バーコードBが読取口13から離間した状態で読み取られたか否かを、明色領域および暗色領域が連続する各連続領域に対応する信号波形部分の最大値および最小値の差に基づいて判定する場合には、後述するように読み取られるバーコードBにおける最大二色ピーク値Pa1および最小二色ピーク値Pb1の差とステップS107にて設定される二色ピーク閾値Pt1とに基づいて判定する。具体的には、最大二色ピーク値Pa1および最小二色ピーク値Pb1の差が上記二色ピーク閾値Pt1以上になる場合に、明暗の差が比較的小さいと判断してバーコードBが読取口13から離間した状態で読み取られたことを判定する。
特に、実際に登録用コードB0が読み取られて登録コード群が設定される際の作業状態に応じて二色ピーク閾値Pt1が設定されるので、実際の読取作業を反映させた二色ピーク閾値Pt1を設定することができ、意図しないバーコードBの読み取りを確実に防止することができる。
次に、ステップS109において、単色ピーク閾値設定処理がなされる。この処理では、登録用コードB0を読み取ったときの最大単色ピーク値Pa2および最小単色ピーク値Pb2の差に等しくなるように単色ピーク閾値Pt2が設定されてメモリ35等に記憶される。なお、単色ピーク閾値Pt2は、例えば、最大単色ピーク値Pa2および最小単色ピーク値Pb2の差に所定の係数を乗算した値に等しくなるように設定されてもよい。
ここで、最大単色ピーク値Pa2は、受光センサ28から出力される信号波形の複数の明色領域のうち、最大幅データの明色領域B2maxに対応する信号波形部分の最大値と最小値との差である(図9参照)。また、最小単色ピーク値Pb2は、受光センサ28から出力される信号波形の明色領域のうち、最小幅データの明色領域B2minに対応する信号波形部分の最大値と最小値との差である(図9参照)。これにより、単色ピーク閾値Pt2は、明暗の差が小さい状態を示す閾値として設定されることとなる。
このように単色ピーク閾値Pt2を設定する理由について、以下に説明する。
デコードされたバーコードにおける最小幅データの明色領域に対して2倍以上の幅データを有する太い明色領域と最小幅データの暗色領域に対して2倍以上の幅データを有する太い暗色領域とが連続して配列される場合(以下、連続する太領域を有する場合ともいう)には、最大二色ピーク値Pa1が比較的大きな値として取得できる。このため、読み取ったバーコードが連続する太領域を有する場合には、最大二色ピーク値Pa1に基づいてバーコードBが読取口13から離間した状態で読み取られたか否かを判定することにより、単色ピーク閾値Pt2に基づいて判定するよりも高精度に判定することができる。
一方、読み取ったバーコードが連続する太領域を有しない場合には、最大二色ピーク値Pa1が上述のように比較的大きな値として取得できない。そこで、この場合には、バーコードBが読取口13から離間した状態で読み取られたか否かを、各明色領域に対応する信号波形部分の最大値および最小値の差に基づいて判定する。具体的には、この読み取られたバーコードBにおける最大単色ピーク値Pa2および最小単色ピーク値Pb2の差が上記単色ピーク閾値Pt2以上になる場合に、明暗の差が比較的小さいと判断してバーコードBが読取口13から離間した状態で読み取られたことを判定する。
特に、実際に登録用コードB0が読み取られて登録コード群が設定される際の作業状態に応じて単色ピーク閾値Pt2が設定されるので、実際の読取作業を反映させた単色ピーク閾値Pt2を設定することができ、意図しないバーコードBの読み取りを確実に防止することができる。
上述のように、登録コード群と二色ピーク閾値Pt1および単色ピーク閾値Pt2とが設定されることにより登録コード群設定処理が終了し、図7に示す読取処理が開始される。以下、読取処理について説明する。
まず、図7のステップS201において、登録用画像データ取得処理がなされる。この処理では、使用者の操作により受光センサ28にメニューシートSのいずれかのバーコード(以下、対象コードBaともいう)のコード情報を読み取らせる処理(即ち、受光センサ28にバーコードBからの反射光を受光させ、画像データを取得させる処理)がなされる。
次に、ステップS203において、デコード処理がなされる。この処理では、上記ステップS103におけるデコード処理と同様に、受光センサ28からの受光信号の信号波形を上記所定の閾値と比較し、その比較に基づいて信号波形を明色領域と暗色領域とに区分けする。
これにより、暗色領域と明色領域との配列データが得られる。この配列データは、対象コードBaにおける暗色パターン及び明色パターンの配列に対応するものであり、各暗色パターンの位置(所定の基準位置に対する相対位置)及び幅を特定でき、各明色パターンの位置(所定の基準位置に対する相対位置)及び幅を特定できるようになっている。各暗色パターンおよび各明色パターンは、1または2以上の単位モジュールから構成され、暗色パターンおよび明色パターンの組み合わせにより1キャラクタが構成される。なお、このステップS203によるデコード処理は、特許請求の範囲に記載の「二値化手段」および「デコード手段」に相当し得るものである。
そして、ステップS205において、対象コードBaが登録コード群に含まれるか否かについて判定される。ここで、デコードされた対象コードBaの先頭の値から6桁目の値までが登録用コードB0の先頭の値から6桁目の値までのものと一致しない場合には、対象コードBaが登録コード群に含まれないと判定される(S205でNo)。そして、後述するステップS221における処理がなされる。なお、このように登録コード群を設定することにより、メニューシートSに貼付されておらず互いに近接していないバーコード(登録コード群に含まれないバーコード)は、読み取り時の読取口13との距離に関係なく読取処理を継続することができる。
一方、デコードされた対象コードBaの先頭の値から6桁目の値までが登録用コードB0の先頭の値から6桁目の値までのものと一致する場合には、対象コードBaが登録コード群に含まれると判定される(S205でYes)。
そして、ステップS207において、対象コードBaが連続する太領域を有するか否かについて判定される。具体的には、デコードされた対象コードBaにおける最小幅データの明色領域に対して2倍以上の幅データを有する太い明色領域と最小幅データの暗色領域に対して2倍以上の幅データを有する太い暗色領域とが連続して配列されているか否かについて判定される。
ここで、対象コードBaにおいて太い明色領域と太い暗色領域とが連続して配列されており対象コードBaが連続する太領域を有すると判定されると(S207でYes)、ステップS209にて対象コードBaにおける最大二色ピーク値Pa1の演算処理がなされるとともに、ステップS211にて対象コードBaにおける最小二色ピーク値Pb1の演算処理がなされる。なお、このステップS209およびステップS211による演算処理は、特許請求の範囲に記載の「二色ピーク値演算手段」に相当し得るものである。
このように演算される最大二色ピーク値Pa1および最小二色ピーク値Pb1は、対象コードBaが読取口13に近接した状態で読み取られたことから図8に示すように読み取った画像のピントが合う場合には、最大二色ピーク値Pa1と最小二色ピーク値Pb1との差が小さくなる。また、対象コードBaが読取口13から離間した状態で読み取られたことから図10に示すように読み取った画像のピントが合わない場合には、最大二色ピーク値Pa1と最小二色ピーク値Pb1との差が大きくなる。
そして、ステップS213において、上述のように演算された最大二色ピーク値Pa1および最小二色ピーク値Pb1の差が上記ステップS107にて演算された二色ピーク閾値Pt1以上であるか否かについて判定される。ここで、最大二色ピーク値Pa1および最小二色ピーク値Pb1の差が二色ピーク閾値Pt1以上である場合には(S213でYes)、明暗の差が比較的小さいことから対象コードBaが読取口13から離間した状態で読み取られたと判断される。このため、当該対象コードBaの読み取りが無効となり、上述したステップS201からの処理が繰り返される。
一方、最大二色ピーク値Pa1および最小二色ピーク値Pb1の差が二色ピーク閾値Pt1以上でない場合には(S213でNo)、明暗の差が比較的大きいことから対象コードBaが読取口13に近接した状態で読み取られたと判断される。このため、ステップS221の処理にて、当該対象コードBaの読み取りが有効とされる。
上述したステップS207において、対象コードBaにおいて太い明色領域と太い暗色領域とが連続して配列されておらず対象コードBaが連続する太領域を有していない場合には、Noと判定される。次に、ステップS215において、対象コードBaにおける最大単色ピーク値Pa2の演算処理がなされるとともに、ステップS217にて対象コードBaにおける最小単色ピーク値Pb2の演算処理がなされる。なお、このステップS215およびステップS217による演算処理は、特許請求の範囲に記載の「単色ピーク値演算手段」に相当し得るものである。
このように演算される最大単色ピーク値Pa2および最小単色ピーク値Pb2は、対象コードBaが読取口13に近接した状態で読み取られたことから図9に示すように読み取った画像のピントが合う場合には、最大単色ピーク値Pa2と最小単色ピーク値Pb2との差が小さくなる。また、対象コードBaが読取口13から離間した状態で読み取られたことから図11に示すように読み取った画像のピントが合わない場合には、最大単色ピーク値Pa2と最小単色ピーク値Pb2との差が大きくなる。
そして、ステップS219において、上述のように演算された最大単色ピーク値Pa2および最小単色ピーク値Pb2の差が上記ステップS109にて演算された単色ピーク閾値Pt2以上であるか否かについて判定される。ここで、最大単色ピーク値Pa2および最小単色ピーク値Pb2の差が単色ピーク閾値Pt2以上である場合には(S219でYes)、明暗の差が比較的小さいことから対象コードBaが読取口13から離間した状態で読み取られたと判断される。このため、当該対象コードBaの読み取りが無効となり、上述したステップS201からの処理が繰り返される。
一方、最大単色ピーク値Pa2および最小単色ピーク値Pb2の差が単色ピーク閾値Pt2以上でない場合には(S219でNo)、明暗の差が比較的大きいことから対象コードBaが読取口13に近接した状態で読み取られたと判断される。このため、ステップS221の処理にて、当該対象コードBaの読み取りが有効となる。
以上説明したように、本第1実施形態に係るバーコードリーダ10では、メニューシートSに近接して配置されるバーコードBの全てが登録コード群に含まれるように予め登録されている。そして、対象コードBaにおいて、連続領域B1maxに対応する信号波形部分の最大値と最小値との差が最大二色ピーク値Pa1として演算されるとともに、連続領域B1minに対応する信号波形部分の最大値と最小値との差が最小二色ピーク値Pb1として演算される。また、対象コードBaにおいて、明色領域B2maxに対応する信号波形部分の最大値と最小値との差が最大単色ピーク値Pa2として演算されるとともに、明色領域B2minに対応する信号波形部分の最大値と最小値との差が最小単色ピーク値Pb2として演算される。そして、対象コードBaが登録コード群に含まれ、この対象コードBaが連続する太領域を有する場合には、この対象コードBaの最大二色ピーク値Pa1と最小二色ピーク値Pb1との差がステップS107にて設定される二色ピーク閾値Pt1以上である場合に当該対象コードBaの読み取りを無効とする。また、対象コードBaが登録コード群に含まれ、この対象コードBaが連続する太領域を有しない場合には、この対象コードBaの最大単色ピーク値Pa2と最小単色ピーク値Pb2との差がステップS109にて設定される単色ピーク閾値Pt2以上である場合に当該対象コードBaの読み取りを無効とする。
このように、対象コードBaが連続する太領域を有している場合には、最大二色ピーク値Pa1と最小二色ピーク値Pb1との差が二色ピーク閾値Pt1以上である場合に、対象コードBaが読取口13から離間しており読取対象のコードではないとして、当該対象コードBaの読み取りを無効にすることができる。また、対象コードBaが連続する太領域を有していない場合には、最大単色ピーク値Pa2と最小単色ピーク値Pb2との差が単色ピーク閾値Pt2以上である場合に、対象コードBaが読取口13から離間しており読取対象のコードではないとして、当該対象コードBaの読み取りを無効にすることができる。
したがって、近接して配置される複数のバーコードBのうちの読取対象のコードのみを煩雑な操作を行うことなく読み取ることができる。
また、本第1実施形態に係るバーコードリーダ10では、登録用コードB0を読み取るだけで、メニューシートSに貼付されたバーコードBの全てに共通する情報領域を有するコードを予め登録コード群に含むように登録(設定)するので、登録コード群の設定作業(登録作業)を容易かつ確実に行うことができる。
さらに、本第1実施形態に係るバーコードリーダ10では、二色ピーク閾値Pt1は、上記ステップS107にて説明したように、登録コード群設定時の最大二色ピーク値Pa1および最小二色ピーク値Pb1に基づいて設定される。このように、実際に登録用コードB0が読み取られて登録コード群が設定される際の作業状態に応じて二色ピーク閾値Pt1が設定されるので、実際の読取作業を反映させた二色ピーク閾値Pt1を設定することができ、メニューシートS上の意図しないバーコードBの読み取りを確実に防止することができる。
さらに、本第1実施形態に係るバーコードリーダ10では、単色ピーク閾値Pt2は、上記ステップS109にて説明したように、登録コード群設定時の最大単色ピーク値Pa2および最小単色ピーク値Pb2に基づいて設定される。このように、実際に登録用コードB0が読み取られて登録コード群が設定される際の作業状態に応じて単色ピーク閾値Pt2が設定されるので、実際の読取作業を反映させた単色ピーク閾値Pt2を設定することができ、メニューシートS上の意図しないバーコードBの読み取りを確実に防止することができる。
[第2実施形態]
次に、本発明の光学的情報読取装置をバーコードリーダに適用した第2実施形態について図12を参照して説明する。
本第2実施形態に係るバーコードリーダ10では、上述した読取処理を図7に示すフローチャートに代えて図12に示すフローチャートに基づいて演算処理している点が、上記第1実施形態に係るバーコードリーダと異なる。
以下、本第2実施形態に係るバーコードリーダ10の読取処理について、図12のフローチャートを参照して説明する。
上記第1実施形態と同様にステップS211までの処理がなされ、上述したステップS213において、最大二色ピーク値Pa1および最小二色ピーク値Pb1の差が二色ピーク閾値Pt1以上であることから、明暗の差が比較的小さく対象コードBaが読取口13から離間した状態で読み取られたと判断されると(S213でYes)、ステップS223において、装置本体と対象コードBaとの間の距離が所定値以上変化したか否かについて判定される。
ここで、ステップS223および後述するステップS225を設けた理由について説明すると、使用者が読取口13から離間するコードを読取対象とする場合もあり、この場合には使用者が装置本体と対象コードBaとの間の距離を一定に保とうとするので、読取口13と対象コードBaとの間の距離が所定値以上変化しないこととなる。そこで、本第2実施形態では、装置本体と対象コードBaとの間の距離が所定値以上変化しないと判定される場合には、対象コードBaが装置本体から離間する場合であっても、当該対象コードBaの読み取りを無効としない(有効とする)ことにより、使用者が所望するコードを確実に読み取り対象とすることができる。
具体的には、本第2実施形態では、最大二色ピーク値Pa1および最小二色ピーク値Pb1の比や最大単色ピーク値Pa2および最小単色ピーク値Pb2の比が順次メモリ35に記憶されている。そして、ステップS223では、ステップS209,S211にて演算された最大二色ピーク値Pa1および最小二色ピーク値Pb1の比と、所定時間前に演算されてメモリ35に記憶された最大二色ピーク値Pa1および最小二色ピーク値Pb1の比との相対比である比較値C1が所定範囲内であるか否かに基づいて、装置本体と対象コードBaとの間の距離が所定値以上変化したか否かを判定する。ここで、本第2実施形態では、上記所定時間は、例えば、40画像分に相当する200msに設定されており、上記所定範囲は、例えば、20%に設定されている。なお、比較値C1は、最大二色ピーク値Pa1および最小二色ピーク値Pb1の比と所定時間前の最大二色ピーク値Pa1および最小二色ピーク値Pb1の比との相対比として演算されることに限らず、最大二色ピーク値Pa1および最小二色ピーク値Pb1の比較(例えば差)と所定時間前の最大二色ピーク値Pa1および最小二色ピーク値Pb1の比較(例えば差)との比較値(例えば差分)として演算されてもよい。
例えば、ステップS209,S211にて演算された最大二色ピーク値Pa1および最小二色ピーク値Pb1の比が0.48であり、所定時間前に演算されてメモリ35に記憶された最大二色ピーク値Pa1および最小二色ピーク値Pb1の比が0.42である場合には、比較値C1が14%となる。この場合、比較値C1は上記所定範囲内にあるから、装置本体と対象コードBaとの間の距離が所定値以上変化していないと判定されて(S223でNo)、使用者が読取口13から離間するコードを読取対象としていると判断されることから、ステップS221にて当該対象コードBaの読み取りが有効とされる。
一方、比較値C1が上記所定範囲内にないことから対象コードBaとの間の距離が所定値以上変化していると判定される場合には(S223でYes)、使用者が装置本体を他のコードに近づけている途中であると判断されて、当該対象コードBaの読み取りが無効となり、上述したステップS201からの処理が繰り返される。
また、上記第1実施形態と同様にステップS217までの処理がなされ、上述したステップS219において、最大単色ピーク値Pa2および最小単色ピーク値Pb2の差が単色ピーク閾値Pt2以上であることから、明暗の差が比較的小さく対象コードBaが読取口13から離間した状態で読み取られたと判断されると(S219でYes)、ステップS225において、装置本体と対象コードBaとの間の距離が所定値以上変化したか否かについて判定される。
具体的には、最大単色ピーク値Pa2および最小単色ピーク値Pb2の比と、上記所定時間前に演算されてメモリ35に記憶された最大単色ピーク値Pa2および最小単色ピーク値Pb2の比との相対比である比較値C2が上記所定範囲内であるか否かに基づいて、装置本体と対象コードBaとの間の距離が所定値以上変化したか否かを判定する。なお、比較値C2は、最大単色ピーク値Pa2および最小単色ピーク値Pb2の比と所定時間前の最大単色ピーク値Pa2および最小単色ピーク値Pb2の比との相対比として演算されることに限らず、最大単色ピーク値Pa2および最小単色ピーク値Pb2の比較(例えば差)と所定時間前の最大単色ピーク値Pa2および最小単色ピーク値Pb2の比較(例えば差)との比較値(例えば差分)として演算されてもよい。
比較値C2が上記所定範囲内にある場合には、装置本体と対象コードBaとの間の距離が所定値以上変化していないと判定されて(S225でNo)、使用者が読取口13から離間するコードを読取対象としていると判断されることから、ステップS221にて当該対象コードBaの読み取りが有効とされる。
一方、比較値C2が上記所定範囲内にないことから対象コードBaとの間の距離が所定値以上変化していると判定される場合には(S225でYes)、使用者が装置本体を他のコードに近づけている途中であると判断されて、当該対象コードBaの読み取りが無効となり、上述したステップS201からの処理が繰り返される。
以上説明したように、本第2実施形態に係るバーコードリーダ10では、最大二色ピーク値Pa1および最小二色ピーク値Pb1の比と所定時間前に演算された最大二色ピーク値Pa1および最小二色ピーク値Pb1の比との比較値C1が予め設定された所定範囲内であるか否かに基づいて対象コードBaとの間の距離が所定値以上変化したか否かについて判定される。そして、対象コードBaが登録コード群に含まれ、この対象コードBaの最大二色ピーク値Pa1および最小二色ピーク値Pb1との差が上記二色ピーク閾値Pt1以上であり、かつ対象コードBaとの間の距離が所定値以上変化したと判定される場合には、当該対象コードの読み取りを無効とする。
このように、比較値C1が上記所定範囲内であることから、装置本体と対象コードBaとの間の距離が所定値以上変化しないと判定される場合には、最大二色ピーク値Pa1および最小二色ピーク値Pb1との差が上記二色ピーク閾値Pt1以上であり対象コードBaが離間する場合であっても、当該対象コードBaの読み取りを無効としない(有効とする)ことにより、使用者が所望するコードを確実に読み取り対象とすることができる。
また、本第2実施形態に係るバーコードリーダ10では、最大単色ピーク値Pa2と最小単色ピーク値Pb2の比と所定時間前に演算された最大単色ピーク値Pa2と最小単色ピーク値Pb2の比との比較値C2が予め設定された所定範囲内であるか否かに基づいて対象コードBaとの間の距離が所定値以上変化したか否かについて判定される。そして、対象コードBaが登録コード群に含まれ、この対象コードBaの最大単色ピーク値Pa2と最小単色ピーク値Pb2との差が上記単色ピーク閾値Pt2以上であり、かつ対象コードBaとの間の距離が所定値以上変化したと判定される場合には、当該対象コードBaの読み取りを無効とする。
このように、比較値C2が上記所定範囲内であることから、装置本体と対象コードBaとの間の距離が所定値以上変化しないと判定される場合には、最大単色ピーク値Pa2および最小単色ピーク値Pb2との差が上記単色ピーク閾値Pt2以上であり対象コードBaが離間する場合であっても、当該対象コードBaの読み取りを無効としない(有効とする)ことにより、使用者が所望するコードを確実に読み取り対象とすることができる。
上記第2実施形態の変形例として、上述したステップS223において、所定時間前の最大二色ピーク値Pa1および最小二色ピーク値Pb1の比に基づく比較値C1が所定範囲内であるか否かに基づいて上記判定をすることに限らず、前回までに演算された少なくとも一部の最大二色ピーク値Pa1および最小二色ピーク値Pb1の比とのそれぞれの比較値が上記所定範囲内であるか否かに基づいて上記判定をしてもよい。
具体的には、例えば、ステップS209,S211にて演算された最大二色ピーク値Pa1および最小二色ピーク値Pb1の比がn番目の値として0.42と演算される場合には、この0.42と、n―1番目,・・・,n―40番目の値としてメモリ35に既に記憶されている0.38,・・・,0.48とのそれぞれの比較値が全て上記所定範囲内であるか否かに基づいて上記判定をする。
このように複数の比較値を考慮することから対象コードBaとの間の距離の変化が時間的に考慮されるので、使用者が所望するコードをより確実に読み取り対象とすることができる。また、上述したステップS225においても、上述のように、複数の比較値が全て上記所定範囲内であるか否かに基づいて上記判定をすることで、上記作用・効果を奏する。
[第3実施形態]
次に、本発明の光学的情報読取装置をQRコードリーダ10aに適用した第3実施形態について図13〜図16を参照して説明する。本第3実施形態に係るQRコードリーダ10aは、上述したバーコードリーダ10と同じ機械構成であり、すなわち、両コードリーダ10,10aは、バーコードなどの一次元コードやQRコードなどの二次元コードの双方を読み取り可能に構成されている。そして、QRコードリーダ10aでは、上述した登録コード群設定処理および読取処理を図6および図7に示すフローチャートに代えて図13および図14に示すフローチャートに基づいて演算処理している点が、上記第1実施形態に係るバーコードリーダと異なる。
QRコードリーダ10aは、図15に示すようなQRコードQを読取対象としており、このQRコードQには、特定パターンとしてQRコードQの位置を検出するためのパターンである3つのファインダパターンFPが含まれている。各ファインダパターンFPは、所定の幅の明色パターンおよび暗色パターンが所定の順序で配列されて構成されている。本第3実施形態では、ファインダパターンFPに対応する信号波形部分における最大値および最小値の差に基づいて当該QRコードQが読取口13から離間した状態で読み取られたか否かを判定し、離間した状態で読み取られた場合にはこのQRコードQの読み取りが無効とされる。
以下、本第3実施形態に係るQRコードリーダ10aの登録コード群設定処理および読取処理について、図13および図14のフローチャートを参照して説明する。
まず、図13のステップS101にて登録用画像データ取得処理がなされて、例えば、上述したメニューシートSのように複数のQRコードが貼付されるメニューシートにおいて、登録用コードのコード情報を読み取らせる処理がなされる。そして、上記第1実施形態と同様に、ステップS103にてデコード処理がなされた後、ステップS105にて登録コード群の設定処理がなされる。
次に、ステップS109aにおいて、特定単色ピーク閾値設定処理がなされる。この処理では、登録用コードを読み取ったときのファインダパターンFPの1つに対して所定の配列方向に沿う基準線L(図15参照)における特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の差に等しくなるように特定単色ピーク閾値Pt3が設定されてメモリ35等に記憶される。なお、特定単色ピーク閾値Pt3は、例えば、特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の差に所定の係数を乗算した値に等しくなるように設定されてもよい。
ここで、特定最大単色ピーク値Pa3は、受光センサ28から出力される信号波形であって上記基準線Lに沿い配列される複数の暗色領域のうち、最大幅データの暗色領域B3maxに対応する信号波形部分の最大値と最小値との差である(図16参照)。また、特定最小単色ピーク値Pb3は、受光センサ28から出力される信号波形であって上記基準線Lに沿い配列される複数の暗色領域のうち、最小幅データの暗色領域B3minに対応する信号波形部分の最大値と最小値との差である(図16参照)。これにより、特定単色ピーク閾値Pt3は、上記第1実施形態における単色ピーク閾値Pt2と同様に、明暗の差が小さい状態を示す閾値として設定されることとなる。
上述のように、登録コード群および特定単色ピーク閾値Pt3が設定されることにより登録コード群設定処理が終了し、図14に示す読取処理が開始される。以下、読取処理について説明する。
まず、図14のステップS201にて登録用画像データ取得処理がなされて、メニューシートのいずれかのQRコード(以下、対象コードQaともいう)のコード情報を読み取らせる処理がなされる。続いてステップS203にてデコード処理がなされ、対象コードQaが登録コード群に含まれない場合には(S205でNo)、ステップS221における処理がなされる。一方、対象コードQaが登録コード群に含まれる場合には(S205でYes)、ステップS215aにおいて、対象コードQaにおける特定最大単色ピーク値Pa3の演算処理がなされるとともに、ステップS217aにて対象コードQaにおける特定最小単色ピーク値Pb3の演算処理がなされる。
このように演算される特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3は、対象コードQaが読取口13に近接した状態で読み取られたことから読み取った画像のピントが合う場合には、図16(A)に示すように特定最大単色ピーク値Pa3と特定最小単色ピーク値Pb3との差が小さくなる。また、対象コードQaが読取口13から離間した状態で読み取られたことから読み取った画像のピントが合わない場合には、図16(B)に示すように特定最大単色ピーク値Pa3と特定最小単色ピーク値Pb3との差が大きくなる。
そして、ステップS219aにおいて、上述のように演算された特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の差が上記ステップS109aにて演算された特定単色ピーク閾値Pt3以上であるか否かについて判定される。ここで、特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の差が特定単色ピーク閾値Pt3以上である場合には(S219aでYes)、明暗の差が比較的小さいことから対象コードQaが読取口13から離間した状態で読み取られたと判断される。このため、当該対象コードBaの読み取りが無効となり、上述したステップS201からの処理が繰り返される。
一方、特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の差が特定単色ピーク閾値Pt3以上でない場合には(S219aでNo)、明暗の差が比較的大きいことから対象コードQaが読取口13に近接した状態で読み取られたと判断される。このため、ステップS221の処理にて、当該対象コードQaの読み取りが有効となる。
以上説明したように、本第3実施形態に係るQRコードリーダ10aでは、対象コードQaのファインダパターンFPにおいて、暗色領域B3maxに対応する信号波形部分の最大値と最小値との差が特定最大単色ピーク値Pa3として演算されるとともに、暗色領域B3minに対応する信号波形部分の最大値と最小値との差が特定最小単色ピーク値Pb3として演算される。そして、対象コードQaが登録コード群に含まれ、この対象コードQaの特定最大単色ピーク値Pa3と特定最小単色ピーク値Pb3との差がステップS109aにて設定される特定単色ピーク閾値Pt3以上である場合に当該対象コードQaの読み取りを無効とする。
このように、対象コードQaのファインダパターンFPにおける特定最大単色ピーク値Pa3と特定最小単色ピーク値Pb3との差が上記特定単色ピーク閾値Pt3以上である場合、すなわち、ファインダパターンFPの各暗色領域における信号波形部分の最大値および最小値の差のばらつきが大きい場合に、対象コードQaが読取口13から離間しており読取対象のコードではないとして、当該対象コードQaの読み取りを無効にすることができる。これにより、近接して配置されて上記ファインダパターンFPを含む複数のQRコードのうちの読取対象のコードのみを煩雑な操作を行うことなく読み取ることができる。
また、本第3実施形態に係るQRコードリーダ10aでは、特定単色ピーク閾値Pt3は、上記ステップS109aにて説明したように、登録コード群設定時の特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3に基づいて設定される。このように、実際に登録用コードが読み取られて登録コード群が設定される際の作業状態に応じて特定単色ピーク閾値Pt3が設定されるので、実際の読取作業を反映させた特定単色ピーク閾値Pt3を設定することができ、メニューシート上の意図しないQRコードQの読み取りを確実に防止することができる。
上記第3実施形態における第1の変形例として、上述した読取処理を図14に示すフローチャートに代えて図17に示すフローチャートに基づいて演算処理してもよい。この読取処理では、上記第2実施形態と同様に、対象コードQaが読取口13から離間した状態で読み取られたためにステップS219aにてNoと判定されると、ステップS225aにて、装置本体と対象コードBaとの間の距離が所定値以上変化したか否かについて判定される。
具体的には、特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の比と、所定時間前に演算されてメモリ35に記憶された特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の比との相対比である比較値C3が所定範囲内であるか否かに基づいて、装置本体と対象コードQaとの間の距離が所定値以上変化したか否かを判定する。
比較値C3が上記所定範囲内にある場合には、装置本体と対象コードQaとの間の距離が所定値以上変化していないと判定されて(S225aでNo)、使用者が読取口13から離間するコードを読取対象としていることから、ステップS221にて当該対象コードQaの読み取りが有効とされる。
一方、比較値C3が上記所定範囲内にないことから対象コードQaとの間の距離が所定値以上変化していると判定される場合には(S225aでYes)、使用者が装置本体を他のコードに近づけている途中であると判断されて、当該対象コードQaの読み取りが無効となり、上述したステップS201からの処理が繰り返される。
このように、比較値C3が上記所定範囲内であることから、装置本体と対象コードQaとの間の距離が所定値以上変化しないと判定される場合には、特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3との差が上記特定単色ピーク閾値Pt3以上であり対象コードQaが離間する場合であっても、当該対象コードQaの読み取りを無効としない(有効とする)ことにより、使用者が所望するコードを確実に読み取り対象とすることができる。
また、上述したステップS225aにおいて、所定時間前の特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の比に基づく比較値C3が所定範囲内であるか否かに基づいて上記判定をすることに限らず、前回までに演算された少なくとも一部の特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3の比とのそれぞれの比較値が上記所定範囲内であるか否かに基づいて上記判定をしてもよい。このように複数の比較値を考慮することから対象コードQaとの間の距離の変化が時間的に考慮されるので、使用者が所望するコードをより確実に読み取り対象とすることができる。
上記第3実施形態における第2の変形例として、QRコードと異なる二次元コードであって、所定の順序で配列される特定パターンとして当該二次元コードの位置などを検出するためのパターンを含む二次元コードを読取対象とするとき、この特定パターンに関する特定最大単色ピーク値Pa3および特定最小単色ピーク値Pb3に基づいて、対象コードとの距離やその距離の変化を考慮して当該対象コードの読み取りを無効にするか否かを判定してもよい。
この第2の変形例において、上記二次元コードの特定パターンに上記第1,第2実施形態で述べた連続する太領域が含まれる場合には、上述した図14または図17のフローチャートにおいて、ステップS205におけるYesと判定後に上記ステップS207を追加するとともに、このステップS207にてNoと判定される場合に上記ステップS215a以降の処理を実施してもよい。
この場合、このステップS207におけるYesとの判定後に、対象コードBaの最大二色ピーク値Pa1を演算するステップS209に対応して対象コードQaの特定最大二色ピーク値を演算するステップと、対象コードBaの最小二色ピーク値Pb1を演算するステップS211に対応して対象コードQaの特定最小二色ピーク値を演算するステップとが設けられる。さらにこれら両ステップの後に、対象コードBaの最大二色ピーク値Pa1および最小二色ピーク値Pb1の差が二色ピーク閾値Pt1以上であるか否かを判定するステップS213に対応して対象コードQaの特定最大二色ピーク値および特定最小二色ピーク値の差が特定二色ピーク閾値以上であるか否かを判定するステップが設けられる。この特定二色ピーク閾値は、ステップS107にて演算される対象コードBaの二色ピーク閾値Pt1と同様に演算されるものとする。
このように、対象コードQaが連続する太領域を有している場合には、特定最大二色ピーク値と特定最小二色ピーク値との差が特定二色ピーク閾値以上である場合に、対象コードQaが読取口13から離間しており読取対象のコードではないとして、当該対象コードQaの読み取りを無効にすることができる。また、対象コードQaが連続する太領域を有していない場合には、特定最大単色ピーク値Pa3と特定最小単色ピーク値Pb3との差が特定単色ピーク閾値Pt3以上である場合に、対象コードQaが読取口13から離間しており読取対象のコードではないとして、当該対象コードQaの読み取りを無効にすることができる。
したがって、近接して配置される複数の二次元コードのうちの読取対象のコードのみを煩雑な操作を行うことなく読み取ることができる。
また、上記第3実施形態における第2の変形例において、第3実施形態における第1の変形例と同様に、特定最大二色ピーク値および特定最小二色ピーク値の比との相対比である比較値が上記所定範囲内であることから、装置本体と対象コードQaとの間の距離が所定値以上変化しないと判定される場合には、特定最大二色ピーク値および特定最小二色ピーク値との差が上記特定二色ピーク閾値以上であり対象コードQaが離間する場合であっても、当該対象コードQaの読み取りを無効としない(有効とする)ことにより、使用者が所望するコードを確実に読み取り対象とすることができる。
なお、本発明は上記各実施形態に限定されるものではなく、以下のように具体化してもよく、その場合でも、上記各実施形態と同等の作用・効果が得られる。
(1)登録用コードB0は、メニューシートSの右上に貼付されることに限らず、読取作業時に他のバーコードを読み取ることがないメニューシートS上の位置に貼付されてもよい。
(2)上記第1実施形態では、登録用コードB0を別途設けることに限らず、ステップS101において、メニューシートSに近接して貼付される複数のバーコードBのいずれか1つを読み取ることにより、所定の共通する情報領域、例えば、コード種別を示すキャラクタや、所定のデータを有するコードが含まれるように登録コード群を設定(登録)するようにしてもよい。このようにしても、登録コード群の設定作業を容易かつ確実に行うことができる。上記第2,第3実施形態でも同様の作用・効果を奏する。
(3)上記第1実施形態では、登録用コードB0を別途設けることに限らず、ステップS101において、メニューシートSに近接して貼付される複数のバーコードBの全てを個別に読み取ることにより、読み取ったコードのみを含むように登録コード群を設定(登録)するようにしてもよい。特に、実際にバーコードBが読み取られて登録コード群が設定される際に各閾値Pt1,Pt2が設定される場合には、実際の読取作業を反映させた各閾値Pt1,Pt2をバーコード毎に個別に設定することができ、意図しないバーコードBの読み取りを確実に防止することができる。上記第2,第3実施形態でも同様の作用・効果を奏する。
(4)上記第1,第2実施形態では、ステップS105において、登録コード群は、登録用コードB0と同じコード種別のバーコードが含まれるように設定(登録)されてもよい。また、上記3実施形態では、ステップS105において、登録コード群は、登録用コードと同じコード種別のQRコードが含まれるように設定(登録)されてもよい。
(5)上記第1,第2実施形態では、ステップS109において、単色ピーク閾値Pt2は、最大単色ピーク値Pa2と最小単色ピーク値Pb2との差に等しくなるように設定されることに限らず、最大幅データの暗色領域に対応する信号波形部分の最大単色ピーク値と最小幅データの暗色領域に対応する信号波形部分の最小単色ピーク値との差に等しくなるように設定されてもよい。この場合、ステップS215,S217においても、上述のように暗色領域に対応する最大単色ピーク値および最小単色ピーク値が演算される。
また、上記第3実施形態では、ステップS109aにおいて、特定単色ピーク閾値Pt3は、特定最大単色ピーク値Pa3と特定最小単色ピーク値Pb3との差に等しくなるように設定されることに限らず、最大幅データの明色領域に対応する信号波形部分の特定最大単色ピーク値と最小幅データの明色領域に対応する信号波形部分の特定最小単色ピーク値との差に等しくなるように設定されてもよい。この場合、ステップS215a,S217aにおいても、上述のように明色領域に対応する特定最大単色ピーク値および特定最小単色ピーク値が演算される。
(6)二色ピーク閾値Pt1は、上記ステップS107にて説明したように、登録コード群設定時の最大二色ピーク値Pa1および最小二色ピーク値Pb1に基づいて設定されることに限らず、例えば、通常の読取作業時における対象コードBaと読取口13との距離に応じて設定されてもよい。また、単色ピーク閾値Pt2は、上記ステップS109にて説明したように、登録コード群設定時の最大単色ピーク値Pa2および最小単色ピーク値Pb2に基づいて設定されることに限らず、例えば、通常の読取作業時における対象コードBaと読取口13との距離に応じて設定されてもよい。
(7)ステップS207およびステップS215〜S219の処理を廃止して、ステップS209以降の処理のみを実行してもよい。この場合の処理は、特許請求の範囲の請求項2の発明に対応する。
また、ステップS207およびステップS209〜213の処理を廃止して、ステップS215以降の処理のみを実行してもよい。この場合の処理は、特許請求の範囲の請求項1の発明に対応する。