(57)【要約】【課題】Ｓ／Ｎ比が良い場合に、バーコード記号の細いエレメントに対応する信号の値が小さくても有効な信号として検出すること。【解決手段】バーコード読取装置１０Ａを、光源５０から発生した光をバーコード記号２００に対して走査するための走査ミラー２０と、反射光を集める集光ミラー３０と、集光された光信号を電気信号に変換するセンサ６０及び光電変換部７０と、この電気信号から微分信号を生成する微分処理部８０と、微分信号の極値を検出するエッジ検出部９０Ａと、この極値の最大値を検出する極値最大値検出部１００Ａと、極値最大値検出部１００Ａによって検出された極値の最大値と、極値の最大値のＳ／Ｎの良否を判断するための第１の閾値とを比較する第１閾値比較部１１０Ａと、この比較結果に基づいて、極値の有効性を判断するための第２、第３の閾値を設定する閾値設定部１２０Ａとから構成する。【選択図】図１
2009110105.tif 000002
【特許請求の範囲】
【請求項１】
光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、
前記極値検出手段で検出された極値の最大値を検出する最大値検出手段と、
を備えたバーコード読取装置において、
極値の最大値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、
前記最大値検出手段によって検出された極値の最大値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、
を有することを特徴とするバーコード読取装置。
【請求項２】
前記閾値設定手段は、前記極値の最大値が前記Ｓ／Ｎ良否判断用閾値よりも大きい場合に、小さい極値有効性判断用閾値を設定することを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
検出された極値がノイズか否かを判断するためのノイズ判断用閾値を更に有し、
前記比較手段は、前記極値検出手段で検出された極値と、前記ノイズ判断用閾値とを比較すると共に、前記極値の最大値と前記検出された極値との差と、所定の値とを比較し、
前記閾値設定手段は、前記極値の最大値と前記極値との差が所定の値よりも大きい場合に、前記小さい極値有効性判断用閾値を設定することを特徴とする請求項２に記載のバーコード読取装置。
【請求項４】
前記ノイズ判断用閾値よりも大きな極値の中から選択される当該極値において、極値の最小値を含む所定の範囲内にて検出される極値の個数が所定以上存在する場合、
前記閾値設定手段は、前記小さい極値有効性判断用閾値を設定することを特徴とする請求項３記載のバーコード読取装置。
【請求項５】
前記小さい極値有効判断用閾値は、極値の最大値に基づいて算出されることを特徴とする請求項２乃至４のいずれか１に記載のバーコード読取装置。
【請求項６】
前記小さい極値有効判断用閾値は、極値の最小値に基づいて算出されることを特徴とする請求項３又は４に記載のバーコード読取装置
【請求項７】
前記小さい極値有効判断用閾値は、予め具備している電圧値の異なる複数の閾値の中から、小さい閾値を選択されることを特徴とする請求項２乃至４のいずれか１に記載のバーコード読取装置。
【請求項８】
光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、
を備えたバーコード読取装置において、
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、
前記極値検出手段によって検出された極値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、
を有することを特徴とするバーコード読取装置。
【請求項９】
光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、
を備えたバーコード読取装置において、
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、
全ての極値に対して、互いに隣接する２つの極値における電圧値の差分値を演算する演算手段と、
前記演算手段によって演算される差分値から、差分最大値を検出する差分最大値検出手段と、
前記差分最大値検出手段によって検出された差分最大値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、
を有することを特徴とするバーコード読取装置。
【請求項１０】
光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、
を備えたバーコード読取装置において、
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、
全ての極値に対して、互いに隣接する２つの極値における電圧値の差分値を演算する演算手段と、
前記演算手段によって演算された差分値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、
を有することを特徴とするバーコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取装置に関し、特に、Ｓ／Ｎ比が良いと考えられる場合に読取り特性が改善されるバーコード読取装置に関する。
【背景技術】
【０００２】
バーコード記号は、商品販売、物流、生産工程などにおける物品の管理情報を表記する手段として広汎に用いられている。
【０００３】
図１７は、バーコード記号を読み取るための一般的なバーコード読取装置の構成を概略的に示すブロック図である。図１８は、図１７に示されているバーコード読取装置内の信号の一例を示す図である。
【０００４】
このバーコード読取装置１０Ｅは、駆動制御部２０ａと、この駆動制御部２０ａにより制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、ピークホールド／ボトムホールド検出部９０Ｅと、閾値設定部１００Ｅと、比較部１１０Ｅと、バーコード幅データ生成部１２０Ｅとを有している。
【０００５】
バーコード記号２００は、図１８に一例として示されているように、複数の太いエレメントと細いエレメントのセットからなる。細いエレメントからの光の反射光量は、比較的低い。その反射光量は、エレメントの太さに応じて変化する場合があるため、その場合、変換後の電圧信号（光電変換信号）には、ほぼエレメントの太さに応じた極小値が生じる。
【０００６】
光電変換部７０は、微分処理部８０に接続され、この電圧信号を微分処理部８０に入力する。入力された電圧信号は、微分処理部８０で、微分信号に変換される。このような微分信号の一例が図１８に示されている。図示されている微分信号は、回路内の信号処理により光電変換信号よりも遅延している。
【０００７】
微分処理部８０は、ピークホールド／ボトムホールド検出部９０Ｅと比較部１１０Ｅとに接続され、この微分信号をこれらに入力する。ピークホールド／ボトムホールド検出部９０Ｅは、ノイズと信号との区別が行なわれる。ピークホールド／ボトムホールド検出部９０Ｅは、閾値設定部１００Ｅに接続され、ピークホールド／ボトムホールド検出部９０Ｅの出力（ピークホールド値、ボトムホールド値）は、閾値設定部１００Ｅに入力される。この閾値設定部１００Ｅでは、ピークホールド値とボトムホールド値とを所定の比率により分圧し、閾値となる閾値信号を出力する。閾値設定部１００Ｅは、比較部１１０Ｅに接続されている。比較部１１０Ｅでは、上記の微分信号と閾値信号とを比較することにより、微分信号のうち閾値以上のレベルを有する信号を有効な信号とし、複数の比較信号として出力する。一方、閾値信号未満のレベルの信号はノイズと判断される（図１８に示されている例では、細いエレメントに対応する信号は、有効性を判断する閾値よりも低く有効な信号として判断されない）。バーコード幅データ生成部１２０Ｅは、これら比較信号から、バーコード幅データを生成する。
【０００８】
特許文献１では、微分処理された微分信号が、２つのピークホールド／ボトムホールド検出部に入力され、これら２つのピークホールド／ボトムホールド検出部から出力された信号が、閾値設定部に入力されることが開示されている。この閾値設定部では、２つのピークホールド／ボトムホールド検出部からの出力を合成することにより、分圧する比率を決定し、閾値信号を出力する。この閾値信号と微分信号とを比較することにより、バーコード幅データが生成される。
【特許文献１】特開平８−３２４１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の特許文献１に開示されている一連の信号処理方法、特に閾値の設定方法では、Ｓ／Ｎ比が良い場合と悪い場合に関わらず、同一の比率を用いて分圧することによる閾値が用いられている。このため、Ｓ／Ｎ比が良い場合には、読取りレンジが犠牲とされていた。
【００１０】
また、光源として用いられているレーザのスポット径は、距離により異なる。したがって、バーコード記号と光源との距離に応じて、レーザのスポット径がバーコード記号の細いエレメントより太くなりうる。このような場合、細いエレメントが十分に解像されず、太いエレメントのみが解像される。この結果、太いエレメントに対応する信号振幅は大きく、細いエレメントに対応する信号振幅は小さくなる。
【００１１】
しかし、解像度の差が大きい場合でも、太いエレメントの信号振幅が所定の値より大きい場合は、バーコードが近くにあり、戻り光が多いため、Ｓ／Ｎ比が良いと考えられる。このように、Ｓ／Ｎ比が良い信号であっても、細いエレメントの微分信号のピーク振幅が、信号の有効性を判断するための閾値よりも小さくなる場合がある。このような場合には、このような細いエレメントの微分信号のピークが有効と判断されず、バーコード幅データのデコードを適切に行なうことができない。
【００１２】
本発明は、このような問題に鑑みてなされたものであり、バーコードの読み取り結果のＳ／Ｎ比が良い場合には判断のための閾値を変更し、バーコードの読取りレンジが改善されるバーコード読取装置を提供することを目的としている。
【課題を解決するための手段】
【００１３】
本発明の第１の態様によれば、  
光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
前記極値検出手段で検出された極値の最大値を検出する最大値検出手段と、  
を備えたバーコード読取装置において、  
極値の最大値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、  
前記最大値検出手段によって検出された極値の最大値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、  
を有することを特徴とするバーコード読取装置が提供される。
【００１４】
本発明の第２の態様によれば、  
光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
を備えたバーコード読取装置において、  
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、  
前記極値検出手段によって検出された極値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、  
を有することを特徴とするバーコード読取装置が提供される。
【００１５】
本発明の第３の態様によれば、  
光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
を備えたバーコード読取装置において、  
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、  
全ての極値に対して、互いに隣接する２つの極値における電圧値の差分値を演算する演算手段と、  
前記演算手段によって演算される差分値から、差分最大値を検出する差分最大値検出手段と、  
前記差分最大値検出手段によって検出された差分最大値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、  
を有することを特徴とするバーコード読取装置が提供される。
【００１６】
本発明の第４の態様によれば、  
光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
を備えたバーコード読取装置において、  
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有すると共に、  
全ての極値に対して、互いに隣接する２つの極値における電圧値の差分値を演算する演算手段と、  
前記演算手段によって演算された差分値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、極値の有効性を判断するための極値有効性判断用閾値を設定する閾値設定手段と、  
を有することを特徴とするバーコード読取装置が提供される。
【発明の効果】
【００１７】
本発明によれば、Ｓ／Ｎ比が良い場合に、バーコード記号の細いエレメントに対応する信号の値が小さくても有効な信号として判断して、バーコードの幅データの生成ができるという効果を得ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の以下、本発明を実施するための最良の形態を図面を参照して説明する。  
[第１実施形態]    
図１は、本発明の第１実施形態によるバーコード読取装置１０Ａの構成を概略的に示すブロック図である。  
このバーコード読取装置１０Ａは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、エッジ検出部９０Ａと、極値最大値検出部１００Ａと、第１閾値比較部１１０Ａと、閾値設定部１２０Ａと、比較部１３０Ａと、バーコード幅データ生成部１４０Ａとを有している。
【００１９】
以下で、これらの各構成要素の動作について述べる。光源制御部５０ａは、光源５０に制御線を介して接続されている。この光源５０は、光を発生させる。光源５０により発生された光は、反射ミラー４０に到達し反射される。反射ミラー４０により反射された光は、走査ミラー２０に到達する。走査ミラー２０は、駆動制御部２０ａにより制御線を介して制御されることにより、光をバーコード記号２００への走査光としてバーコード記号２００の左右両方向に繰り返し走査させる。
【００２０】
バーコード記号２００による走査光の反射光は、再び走査ミラー２０に到達し、反射される。この反射光は、集光ミラー３０により、センサ６０に集められる。センサ６０で受光された反射光は、センサ６０により、電流信号に変換される。センサ６０は、光電変換部７０に接続され、光電変換部７０は、この電流信号を電圧信号に変換する。
【００２１】
光電変換部７０は、微分処理部８０に接続され、この電圧信号を微分処理部８０に入力する。入力された電圧信号は、微分処理部８０で、微分信号に変換される。
【００２２】
第１実施形態の微分処理部８０は、エッジ検出部９０Ａに接続され、この微分信号をエッジ検出部９０Ａに入力する。第１実施形態のエッジ検出部９０Ａは、バーコード信号のエッジ、すなわち微分信号の極値を検出すると共に検出された極値の保存を行なう。（検出された極値は、電圧値だけでなく、時間データも有している。すなわち、極値の電圧値と時間とが検出される。）
エッジ検出部９０Ａは、極値最大値検出部１００Ａに接続されている。この極値最大値検出部１００Ａでは、エッジ検出部９０Ａで検出された極値の中から最大値を検出する。極値最大値検出部１００Ａは、第１閾値比較部１１０Ａに接続されている。第１閾値比較部１１０Ａは、極値最大値検出部１００Ａで検出された最大値と、第１の閾値を比較する。第１閾値比較部１１０Ａは、閾値設定部１２０Ａに接続されている。閾値設定部１２０Ａは、第１閾値比較部１１０Ａでの比較に基づいて、以下で詳細に説明される所定の方法により、閾値の設定を行なう。（このように第１実施形態では、極値の最大値と第１の閾値との比較により以下で述べる極値の有効性を判断するための閾値の設定を行なう。）
閾値設定部１２０Ａは、比較部１３０Ａに接続されている。また、比較部１３０Ａには、エッジ検出部９０の出力が入力されている。
【００２３】
比較部１３０Ａは、バーコード幅データ生成部１４０Ａに接続されている。上記のように、有効な極値が検出された後、バーコード幅データ生成部１４０Ａは、比較部１３０Ａから入力された有効な極値の時間データより、バーコード幅データを生成する。（このバーコード幅データ生成部１２０Ｅの処理を、以下で、２値化処理と称することがある。）
図２は、以上で述べたバーコード読取装置１０Ａの処理の詳細を示すフローチャートである。このフローチャートは、図１を参照して述べたバーコード読取装置１０Ａの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。
【００２４】
まず、光電変換部７０が、センサ６０で得られた電流信号を、光電変換により、電圧信号に変換する（ステップＳ１０Ａ）。微分処理部８０は、この電圧信号に対して、増幅とフィルタリングとを行ない、微分信号に変換する（ステップＳ２０Ａ）。エッジ検出部９０Ａは、微分信号をＡ／Ｄ変換し、デジタルサンプリングデータに変換する（ステップＳ３０Ａ）。このとき、極値最大値検出部１００Ａでは、後に最大値が代入される極値の最大値Ｖｍａｘ（極値）が初期化のために０にリセットされている（ステップＳ４０Ａ）。
【００２５】
また、エッジ検出部９０Ａは、ステップＳ３０Ａで生成されたデータから極値を検出すると共にその極値の保存を行なう（ステップＳ５０Ａ）。上述のように、この極値の保存では、経時データとして、電圧と時間データとが保存される。
【００２６】
続いて、ステップＳ６０ＡからステップＳ９０Ａでは、極値最大値検出部１００Ａで、保存された極値からの最大値が検出されている。この処理は、極値最大値検出部１００Ａで行なわれる。まず、極値データの読出しが終了しているかどうかが判定される（ステップＳ６０Ａ）。このステップＳ６０ＡをＹＥＳに分岐する場合、既に全てのデータを対象にして最大値の検出が行なわれていることを意味する。この場合の処理について、後述される。
【００２７】
以下では、このステップＳ６０ＡをＮＯに分岐する場合について述べる。ステップＳ６０ＡをＮＯに分岐した場合、ステップＳ５０Ａで保存された極値データが１つ読み出される（ステップＳ７０Ａ）。続いて、読み出された極値と、極値の最大値を表すＶｍａｘ（極値）に現在代入されている値とが比較される（ステップＳ８０Ａ）。この比較の結果、読み出された極値が、Ｖｍａｘ（極値）以下である場合は、フローは、このステップＳ８０ＡをＮＯに分岐する。この場合、読み出された極値により、最大値Ｖｍａｘ（極値）が更新されないため、フローは、ステップＳ６０Ａに戻り、次に読み出される極値に対して上述のフローを開始する。
【００２８】
逆に、ステップＳ８０Ａでの比較の結果、読み出された極値が、Ｖｍａｘ（極値）より大きい場合には、現在のＶｍａｘ（極値）に代入されている最大値よりも大きな極値が存在することを意味する。したがって、この場合には、フローは、ステップＳ８０ＡをＹＥＳに分岐し、Ｖｍａｘ（極値）の値として、この新たに発見された最大の極値を代入することにより、最大値Ｖｍａｘ（極値）を更新する（ステップＳ９０Ａ）。
【００２９】
続いて、フローが、極値最大値検出部１００Ａで行なわれたステップＳ６０ＡからステップＳ９０Ａを終了した場合（ステップＳ６０ＡをＹＥＳに分岐する場合）について説明する。この場合は、以下のように、２値化処理に用いられる有効な極値を判別するための閾値（以下で述べられる、第２又は第３の閾値）が、バーコードからの反射光のＳ／Ｎ比が大きい場合と、小さい場合とに応じて、設定される。
【００３０】
まず、第１閾値比較部１１０が、極値の最大値Ｖｍａｘ（極値）が、所定の第１の閾値より大きいかどうかを判定する（ステップＳ１００Ａ）。この処理は、第１閾値比較部１１０Ａで行なわれる。この第１の閾値は、固定されているが、極値の最大値Ｖｍａｘ（極値）との大小を求めることにより、上述のＳ／Ｎ比の大小が判別できるように適切な値が選ばれていることが好ましい。
【００３１】
フローが、このステップＳ１００Ａを、ＹＥＳに分岐する場合、閾値設定部１２０Ａは、極値の有効性を判定するための閾値として、所定のより低い第２の閾値を、設定する。この場合は、反射光のＳ／Ｎ比が高い場合（バーコードの位置が近くに位置する場合など）に対応する。この結果、反射光のＳ／Ｎ比が高いにも関わらず、従来の閾値の設定方法により無効な極値として判断されていた細いエレメントに対応する極値が有効な極値と判断されるようになる。このように第１実施形態では、極値の最大値Ｖｍａｘ（極値）と第１の閾値との大小関係によりＳ／Ｎ比の大小を評価する。
【００３２】
一方、フローが、このステップＳ１００Ａを、ＮＯに分岐する場合、閾値設定部１２０Ａは、極値の有効性を判定するための閾値として、所定の第３の閾値を、設定する。この場合は、反射光のＳ／Ｎ比が低い場合（バーコードの位置が遠くに位置する場合など）に対応する。
【００３３】
上述の第２及び第３の閾値の設定は、閾値設定部１２０Ａで行なわれる。  
図３（Ａ）、（Ｂ）は、第２及び第３の閾値の設定例を示すフローチャートである。
【００３４】
図３（Ａ）では、極値最大値検出部１００Ａで求められた極値の最大値Ｖｍａｘ（極値）に係数（α、γ）をかけることにより、それぞれ、第２及び第３の閾値が設定されている。所定より低い第２の閾値は、極値の最大値にαをかけた値として設定される。第３の閾値は、極値の最大値にγをかけた値として設定される。第２の閾値が、第３の閾値より小さいため、α＜γである。通常、αとして、０．２５の値、γとして、０．３の値が取られることが好ましい。しかし、α、γの値は、これらの値に限定されず他の値が選ばれてもよい。
【００３５】
図３（Ｂ）では、固定値により、第２及び第３の閾値が設定されている。所定より低い第２の閾値は、固定値１として設定される。第３の閾値は、固定値２として設定される。第２の閾値が、第３の閾値より小さいため、固定値１＜固定値２である。この固定値による閾値の設定方法は、簡単であるという利点がある。
【００３６】
ステップＳ１３０ＡからＳ１６０Ａでは、比較部１３０Ａが、上述のように決定された第２又は第３の閾値と極値の各々とを比較することにより有効な極値を判別し、有効と判別された極値を保存する。この処理は、比較部１３０Ａで行なわれる。
【００３７】
まず、極値の読み出しを行なう際に、極値データの読出しが終了しているかどうかが判定される（ステップＳ１３０Ａ）。このステップＳ１３０ＡをＹＥＳに分岐する場合、フローは、後述される２値化処理に進む。このステップＳ１３０ＡをＮＯに分岐する場合、極値の読み出しが行なわれ、比較部１３０Ａは、極値の読み出しを行なう（ステップＳ１４０Ａ）。
【００３８】
続いて、比較部１３０Ａは、ステップＳ１１０Ａ又はＳ１２０Ａで選択された第２又は第３の閾値と、この極値の絶対値とを比較する。極値の絶対値が、選択された閾値よりも大きい場合、フローは、ステップＳ１５０ＡをＹＥＳに分岐する。この場合、この極値は、２値化処理を行なうために有効な極値と判断される。
【００３９】
一方、極値の絶対値が、選択された閾値以下である場合、フローは、ステップＳ１５０ＡをＮＯに分岐してステップＳ１３０Ａに戻る。この場合、この場合、この極値は、２値化処理を行なうために無効な極値（即ち、ノイズ）として判断され、この極値は、２値化処理に用いられない。本実施形態では、比較部１３０ＡがステップＳ１５０Ａで有効と判断された極値を、引き続く２値化処理のために記憶する（ステップＳ１６０Ａ）。
【００４０】
図４は、サンプリング波の極値と、閾値との関係の一例を示している。図４で、括弧の中に対で示されている値は、それぞれ、その極値の時間データと極値とを示している。図４では、Ｖｐ＋２が最大値となっている場合が示されている。このＶｐ＋２は、第１の閾値を超えているため、極値の有効性を判断する閾値として、所定より低い第２の閾値が適用される。この結果、所定の第３の閾値が極値の有効性の判断のために用いられていたのだったら、無効と判断されていたＶｐ＋３、Ｖｐ＋４、Ｖｐ＋５が、有効と判断される。
【００４１】
続いて、ステップＳ１３０ＡをＹＥＳに分岐する場合の処理について述べる。この場合、有効な極値の判定が終了しているので、続いて２値化処理（ステップＳ１７０）が行なわれる。この処理では、上述したように比較部１３０Ａに記憶されている極値を読み出しながら極値の時間データを用いてバーコード幅データを生成する。この処理は、バーコード幅データ生成部１４０Ａで行なわれる。このステップＳ１７０の詳細は、以下で述べる。
【００４２】
図５は、２値化処理の詳細を示すフローチャートである。まず、フローを開始して、比較部１３０Ａに記憶された全ての有効な極値をバーコード幅データ生成部１４０Ａに読み出したかどうかを判定する（ステップＳ１７０１）。このステップＳ１７０１をＮＯに分岐する場合、比較部１３０Ａから有効と判断された極値を読み出し（ステップＳ１７０２）、読み出された極値をバーコード幅データ生成部１４０Ａに保存する（ステップＳ１７０３）。この処理をステップＳ１７０１がＹＥＳに分岐するまで行い、続いて読み出し保存された極値からバーコード幅データを生成する（ステップＳ１７０４）。
【００４３】
続いて、２値化処理の出力結果を出力する（ステップＳ１８０Ａ）。この出力は、図示されていないデコーダに対して行なわれる。出力結果が有効な出力結果かどうかはこのデコーダが判定する。しかし、図１に示されているバーコード読取装置１０Ａは、デコーダから処理の中断命令が出されない限り（図示されていない）、バーコードのからの反射光を光電変換してローデータを取得するＳ１０Ａに戻って信号処理を繰り返し継続する。
【００４４】
本実施形態では、第１の閾値が極大値側（ピーク側）に設定されているが、極小値側（ボトム側）に設定されていてもよい。また、所定の第３の閾値と、所定よりも低い第２の閾値との各々は、基準電圧を中心として、極大値側（ピーク側）と極小値側（ボトム側）とに同じ値に設定されているが、これらは、異なった値に設定されてもよい。また、微分処理の後にＡ／Ｄ変換が行なわれているが、Ａ／Ｄ変換の後に微分処理が行なわれてもよい。エッジ検出部９０Ａで、極値を検出する場合に、その後の処理を少なくするために、エッジ検出部９０Ａで、極値の前後の傾きが検出され、傾きが所定の値よりも小さい場合には、極値として検出されないようにしてもよい。
【００４５】
[第２実施形態]  
図６は、本発明の第２実施形態によるバーコード読取装置１０Ｂの構成を概略的に示すブロック図である。
【００４６】
このバーコード読取装置１０Ｂは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、エッジ検出部９０Ｂと、電圧差計測部１００Ｂと、差分最大値検出部１１０Ｂと、第１閾値比較部１２０Ｂと、閾値設定部１３０Ｂと、比較部１４０Ｂと、バーコード幅データ生成部１５０Ｂとを有している。
【００４７】
以下で、これらの各構成要素の動作について述べる。しかし、駆動制御部２０ａ、走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、光源５０と、センサ６０と、光電変換部７０と、微分処理部８０との動作は、第１実施形態と同等であるため、ここでは同じ参照符号を付して、その詳細な説明は省略する。
【００４８】
第２実施形態の微分処理部８０は、エッジ検出部９０Ｂに接続され、この微分信号をエッジ検出部９０Ｂに入力する。第２実施形態のエッジ検出部９０Ｂは、バーコード信号のエッジ、すなわち微分信号の極値を検出すると共に検出された極値の保存を行なう。
【００４９】
エッジ検出部９０Ｂは、電圧差計測部１００Ｂに接続されている。電圧差計測部１００Ｂには、エッジ検出部９０Ｂに保存された極値が読み出され、電圧差計測部１００Ｂは、隣り合う（極値の時間データが前後する）極値の電圧差を求める。第２実施形態の電圧差計測部１００Ｂは、このように検出した電圧差をさらに保存する。電圧差計測部１００Ｂは、差分最大値検出部１１０Ｂに接続されている。差分最大値検出部１１０Ｂは、第１閾値比較部１２０Ｂに接続されている。第１閾値比較部１２０Ｂは、閾値設定部１３０Ｂに接続されている。
【００５０】
閾値設定部１３０Ｂは、比較部１４０Ｂに接続されている。また、比較部１４０Ｂには、電圧差計測部１００Ｂの出力が入力されている。
【００５１】
比較部１４０Ｂは、バーコード幅データ生成部１５０Ｂに接続されている。バーコード幅データ生成部１４０Ａは、第１実施形態と同様に２値化処理を行なう。
【００５２】
図７は、図６に示されているバーコード読取装置１０Ｂの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。
【００５３】
まず、フローを開始して、光電変換部７０が、センサ６０で得られた電流信号を、光電変換により、電圧信号に変換する（ステップＳ１０Ｂ）。微分処理部８０は、この電圧信号に対して、増幅とフィルタリングとを行ない、微分信号に変換する（ステップＳ２０Ｂ）。エッジ検出部９０Ｂは、微分信号をＡ／Ｄ変換し、デジタルサンプリングデータに変換する（ステップＳ３０Ｂ）。このとき、差分最大値検出部１１０Ｂでは、後に電圧差分値の最大値が代入される変数Ｖｍａｘ（差分）が０にリセットされている（ステップＳ４０Ｂ）。エッジ検出部９０Ｂは、ステップＳ３０Ｂで生成されたデータから極値を検出すると共にその極値の保存を行なう（ステップＳ５０Ａ）。第２実施形態においても、この極値の保存では、経時データとして、電圧と時間データとが保存される。
【００５４】
さらに、第２実施形態では、上述のように、電圧差計測部１００Ｂは、ステップＳ５０Ａで保存された極値を読み出して、時間データが前後する極値どうしで極値の電圧差分値を検出するとともに、これらの電圧差分値を保存する（ステップＳ６０Ｂ）。
【００５５】
続いて、ステップＳ７０ＢからステップＳ１００Ｂでは、差分最大値検出部１１０Ｂで、保存された極値からの最大値が検出されている。図２に示されたステップＳ６０ＡからステップＳ９０Ａで、読み出されるデータが極値データであるのに対して、この処理では、読み出されるデータがステップＳ６０Ｂで保存された電圧差分値であるという点を除いて、図２に示されている最大値の検出処理と同様である。したがって、ここでは詳細に説明しない。
【００５６】
続いて、フローが、差分最大値検出部１１０Ｂで行なわれたステップＳ７０ＢからステップＳ１００Ｂを終了した場合（ステップＳ７０ＢをＹＥＳに分岐する場合）について説明する。この場合は、第１実施形態と同様に、２値化処理に用いられる有効な極値を判別するための閾値が設定される（ステップＳ１１０Ｂ、Ｓ１２０Ｂ、Ｓ１３０Ｂ）。この処理は、第１実施形態で、極値の最大値を用いて閾値を設定する処理（ステップＳ１００Ａ、Ｓ１１０Ａ、Ｓ１２０Ａ）と、第１の閾値と比較される量が、極値の最大値Ｖｍａｘ（極値）（の絶対値）ではなく、電圧差分値の最大値Ｖｍａｘ（差分）（の絶対値）であるという点を除いて同様である。したがって、以下では、詳細な説明を省く。第２実施形態においても、第１の閾値は、固定されているが、電圧差分値の最大値Ｖｍａｘ（差分）との大小を求めることにより、上述のＳ／Ｎ比の大小が判別できるように適切な値が選ばれていることが好ましい。
【００５７】
第１実施形態において、図３に示されているフローチャートを用いて、第２及び第３の閾値の設定例を示した。第２実施形態においても、図３と同様にして第２又は第３の閾値を設定することは可能である。
【００５８】
ステップＳ１４０ＢからＳ１７０Ｂでは、比較部１４０Ｂが、上述のように決定された第２又は第３の閾値と電圧差分値の各々とを比較することにより有効な極値を判別し、有効と判別された極値を保存する。この処理は、図２を参照して説明された第１実施形態のステップＳ１３０ＡからＳ１６０Ａとほぼ同一である。したがって、詳細な説明は省くが、電圧差分値の絶対値と第２又は第３の閾値とが比較され、電圧差分値の絶対値が、これら閾値よりも大きい場合には、電圧差分値を形成する２つの極値のうち時間データが後の方の極値の時間データだけがステップＳ１７０Ｂで保存されることが考えられる。
【００５９】
図８は、サンプリング波の極値と、閾値との関係の一例を示している。図８で、括弧の中に対で示されている値は、それぞれ、その極値の時間データと極値とを示している。図４では、｜Ｖｐ＋２−Ｖｐ＋１｜が最大値となっている場合が示されている。この｜Ｖｐ＋２−Ｖｐ＋１｜は、第１の閾値を超えているため、極値の有効性を判断する閾値として、所定より低い第２の閾値が適用される。この結果、所定の第３の閾値が極値の有効性の判断のために用いられていたのだったら、無効と判断されていた｜Ｖｐ＋５−Ｖｐ＋４｜が、有効と判断される。
【００６０】
続いて、ステップＳ１４０ＢをＹＥＳに分岐する場合の処理について述べる。この場合、有効な極値の判定が終了しているので、続いて２値化処理（ステップＳ１８０Ｂ）が行なわれる。この処理では、バーコード幅データ生成部１５０Ｂが、上述したように比較部１４０Ｂに記憶されている極値を読み出しながら極値の時間データを用いてバーコード幅データを生成する。このステップＳ１８０Ｂの詳細は、第１実施形態と同様であるためここでは説明を省く。
【００６１】
続いて、２値化処理の出力結果を出力する（ステップＳ１９０Ｂ）。この出力は、図示されていないデコーダに対して行なわれる。出力結果が有効な出力結果かどうかはこのデコーダが判定する。しかし、図６に示されているバーコード読取装置１０Ｂは、デコーダから処理の中断命令が出されない限り（図７には示されていない）、バーコードのからの反射光を光電変換してローデータを取得するＳ１０Ａに戻って信号処理を繰り返し継続する。
【００６２】
本実施形態では、微分処理の後にＡ／Ｄ変換が行なわれているが、Ａ／Ｄ変換の後に微分処理が行なわれてもよい。エッジ検出部９０Ｂで、極値を検出する場合に、その後の処理を少なくするために、エッジ検出部９０Ｂで、極値の前後の傾きが検出され、傾きが所定の値よりも小さい場合には、極値として検出されないようにしてもよい。
【００６３】
[第２の閾値設定の変形例]
以上で、本発明の第１及び第２実施形態によるバーコード読取装置１０の処理をフローチャートを用いて説明した。以下では、第１及び第２実施形態における、「所定のより低い第２の閾値設定」の工程（第１実施形態のステップＳ１５０Ａ、第２実施形態のステップＳ１２０Ｂ）の内部工程（サブフロー）の変形例を説明する。
【００６４】
これらのサブフローは、第１の実施形態において、閾値設定部１２０Ａが行なう。第２の実施形態において、閾値設定部１３０Ｂが行なう。
【００６５】
図９は、所定のより低い第２の閾値設定のための第１の変形例を示すフローチャートである。なお、この第１の変形例を行なうために、以下のような変更が必要である。図１のブロック図（第１実施形態）でエッジ検出部９０Ａの出力が閾値設定部１２０Ａに入力されるように配線が追加される。また、図６のブロック図（第２実施形態）で電圧差計測部１００Ｂの出力が閾値設定部１３０Ｂに入力されるように配線が追加される。これらの変更は、以下で図１１乃至１２をそれぞれ参照して述べる第２乃至第３の変形例でも同様である。
【００６６】
図９乃至図１２に示されているフローにおいて、これらのフローにそれぞれ示されている第１乃至第４の変形例が第１又は第２実施形態に適用される場合、フロー中のＶｍａｘ（極値／差分）は、それぞれ、Ｖｍａｘ（極値）、Ｖｍａｘ（差分）に読み替えるものとする。この読み替えは、これらのフロー中の記載「極値／電圧差分値」に関しても同様である。
【００６７】
フローが開始されると、まず、以下で説明される第４の閾値よりも大きい極値／電圧差分値の値が代入される、変数Ｖ０にＶｍａｘ（極値／差分）が代入され、Ｖ０は、リセットされる（ステップＴ１０Ａ）。
【００６８】
続いて、保存された極値／電圧差分値のデータを読み出す際に、すでに極値／電圧差分値のデータの読み出しが終了しているかどうかが判定される（ステップＴ２０Ａ）。フローが、このステップＴ２０ＡをＹＥＳに分岐する場合、全ての保存された極値／電圧差分値のデータが読み出されていることを意味する。この場合、フローは、以下で説明される閾値の設定の工程に進む。フローが、ステップＴ２０ＡをＮＯに分岐する場合、まだ、すべての保存された極値／電圧差分値のデータが読み出されていないことを意味する。この場合、フローは、保存された極値／電圧差分値の読み出しを行なう（ステップＴ３０Ａ）。
【００６９】
続いて、読み出された極値／電圧差分値が、所定の第４の極値よりも大きいかどうかの判定が行なわれる（ステップＴ４０Ａ）。この極値が第４の閾値より大きいかそれ以下であるかにより、変数Ｖ０に代入された極値／電圧差分値が、それぞれ有効な信号かノイズであるかの判定がおこなわれる。第１の変形例では、第４の閾値は、固定されている。したがって、第４の閾値は、この判定を行なうために適当な値が取られていることが好ましい。
【００７０】
極値／電圧差分値が、第４の閾値以下の場合、フローは、ステップＴ４０ＡでＮＯに分岐する。この場合、フローは、ステップＴ２０Ａに戻る。逆に、極値／電圧差分値が、第４の閾値より大きい場合、フローは、ステップＴ４０ＡでＹＥＳに分岐し、上述の変数Ｖ０に暫定的にこの極値／電圧差分値が代入される（ステップＴ５０Ａ）。
【００７１】
このように、変数Ｖ０が決定されると、フローは、極値／電圧差分値の最大値Ｖｍａｘ（極値／差分）とこの変数Ｖ０との差（Ｖｍａｘ（極値／差分）−Ｖ０）が、所定の値β（＞０）より大きいかどうかの判定を行なう（ステップＴ６０Ａ）。
【００７２】
この第１の変形例では、読み出される極値／電圧差分値の最小値（Ｖｍｉｎ（極値／差分））を求めていない。しかし、Ｖｍａｘ（極値／差分）−Ｖ０＞βであれば、Ｖｍａｘ（極値／差分）−Ｖｍｉｎ（極値／差分）＞βも成立する。極値／電圧差分値の最大値Ｖｍａｘ（極値／差分）と、極値／電圧差分値の最小値Ｖｍｉｎ（極値／差分）とは、それぞれ、バーコードの太いエレメントによる極値と、バーコードの細いエレメントによる極値／電圧差分値と考えられる。
【００７３】
したがって、Ｖｍａｘ（極値／差分）−Ｖｍｉｎ（極値／差分）を求めることは、バーコードの太いエレメントと細いエレメントとの変調度の差を求めることに相当する。そのため、Ｖｍａｘ（極値／差分）−Ｖ０を所定の値βと比較することは、この変調度の差の大小を判定することに相当する。
【００７４】
Ｖｍａｘ（極値／差分）−Ｖ０がβより大きい場合、この変調度の差が大きい場合と判定され、フローは、ステップＴ６０ＡでＹＥＳに分岐する。この場合、比較的小さい第２の閾値が設定される。この変形例では、第２の閾値をα（Ａ）×Ｖｍａｘ（極値／差分値）として定めている（ステップＴ８０Ａ）。
【００７５】
逆に、Ｖｍａｘ（極値／差分値）−Ｖ０がβ以下である場合、前記変調度の差が小さい場合と判定され、フローは、ステップＴ７０ＡでＮＯに分岐する。この場合、フローは、ステップＴ２０Ａに戻り、上述の処理を反復する。
【００７６】
ステップＴ２０ＡでＹＥＳに分岐する場合は、上述の処理にも関わらず、バーコード記号の太いエレメントと細いエレメントとに対応する極値の変調度の差が比較的小さい場合である。この場合、フローは、ステップＴ８０Ａに進み、比較的大きい第２の閾値が設定される（ステップＴ９０Ａ）。この変形例では、第２の閾値をγ（Ａ）×Ｖｍａｘ（極値／差分）として定めている。ここで、α（Ａ）＜γ（Ａ）が成立していることはもちろんである。このように、第２の閾値を定めるとフローは、図２又は図７に示されているメインのフローに戻る。この変形例では、第２の閾値をＶｍａｘ（極値／差分値）に基づいて定めているが、ステップＴ７０Ａ、Ｔ８０Ａで、第２の閾値に適当な固定値を与えることも考えられる。
【００７７】
このように、この変形例では、第１及び第２実施形態で、さらにバーコードの太いエレメントと細いエレメントとの変調度の差が大きい場合のみに、比較的小さな第２の閾値が採用される。この差が小さいときには、比較的大きな第２の閾値を極値の有効性の判断を行っても読み取りに影響はない。バーコードの細いエレメントと太いエレメントの変調度の差が大きい場合には、上記のように比較的小さな第２の閾値が用いられる。この結果、大きな変調度の差が読み取りに与える影響を回避することができる。
【００７８】
図１０は、所定のより低い第２の閾値設定のための第２の変形例を示すフローチャートである。（上述したように、第１の変形例で行なわれた回路の変更が第２の変形例でも行なわれる。）以下で詳細に説明されるように、この変形例では、第１の変形例で行なわれる判断に加えて、さらに、バーコードの細いエレメントとして認識された極値とほぼ同じ極値が複数存在する場合に、比較的小さな第２の極値が採用される。
【００７９】
フローを開始して、まず、バーコードの細いエレメントとして認識された極値とほぼ同じ極値がいくつあるかを示す変数Ｌに０が代入されることによりリセットされる（ステップＴ１０Ｂ）。また、後の処理で極値／電圧差分値の最小値が代入される変数Ｖｍｉｎ（極値／差分）がＶｍａｘ（極値／差分）にリセットされる（ステップＴ２０Ｂ）。
【００８０】
続くステップＴ３０ＢからＴ７０Ｂは、第４の閾値より大きな極値／電圧差分値の間からの最小値Ｖｍｉｎ（極値／差分）を求めるための処理である。まず、極値／電圧差分値の読出しが終了しているかどうかを判定する（ステップＴ３０Ｂ）。このステップをＹＥＳに分岐する場合の処理は後述する。
【００８１】
このステップＴ３０ＢをＮＯに分岐する場合、続いて極値／電圧差分値が１つ読み出される（ステップＴ４０Ｂ）。続いて、この極値／電圧差分値が第４の閾値より大きいかどうかを判定する（ステップＴ５０Ｂ）。このステップＴ５０ＢをＮＯに分岐する場合、フローはステップＴ３０Ｂに戻る。このステップＴ５０ＢをＹＥＳに分岐する場合、続いてこの極値／電圧差分値と現在の変数Ｖｍｉｎ（極値／差分）に代入されている値との比較を行なう（ステップＴ６０Ｂ）。
【００８２】
このステップＴ６０ＢをＮＯに分岐する場合は、現在の変数Ｖｍｉｎ（極値／差分）に代入されている値よりも前記極値／電圧差分値の方が小さいため、この極値は、Ｖｍｉｎ（極値／差分）の候補にはならない。フローは、ステップＴ３０Ｂに戻る。逆に、このステップＴ６０ＢをＹＥＳに分岐する場合は、Ｖｍｉｎ（極値／差分）を更新できるので、この極値をＶｍｉｎ（極値／差分）に代入する（ステップＴ７０Ｂ）。これらの処理を繰り返して最終的なＶｍｉｎ（極値／差分）を求める。
【００８３】
続いて、ステップＴ８０ＢからＴ１１０Ｂでは、極値／電圧差分値のうちで極値／電圧差分値の最小値Ｖｍｉｎ（極値／差分）とほぼ同じ大きさの極値／電圧差分値がいくつ存在するかが数えられる。
【００８４】
まず、保存されている極値／電圧差分値を読み出す際に、すでに極値／電圧差分値のデータの読み出しが終了しているかどうかが判定される（ステップＴ８０Ｂ）。すでに極値／電圧差分値のデータの読出しが終了している場合には、フローは、このステップＴ８０ＢをＹＥＳに分岐し、以下で説明される第２の閾値の設定の工程が行なわれる。
【００８５】
極値／電圧差分値のデータの読出しがまだ終了していない場合には、フローは、このステップＴ８０ＢをＮＯに分岐し、極値／電圧差分値の読み出しが行なわれる（ステップＴ９０Ｂ）。
【００８６】
続いて、この読み出された極値／電圧差分値が、極値／電圧差分値の最小値Ｖｍｉｎ（極値／差分値）を最小とする所定の範囲、すなわちＶｍｉｎ（極値／差分値）＋θ（θ＞０）内にあるかどうかが判定される（ステップＴ１００Ｂ）。この変形例の場合、Ｖｍｉｎ（極値／差分値）＋θは、第４の閾値より大きいことが保障されている。
【００８７】
バーコード記号の細いエレメントに対応する複数の極値／電圧差分値は、ノイズなどが原因である程度の電圧の幅の中に分布している。この電圧の幅は、いずれのバーコード記号を読み取るかによらずおおよその大きさが決まっているものと考えられる。上記のθは、この幅（全幅）に対応して好ましい大きさが取られる。Ｖｍｉｎ（極値／差分値）は、この分布の中で最も低いところに位置しているので、Ｖｍｉｎ（極値／差分値）とＶｍｉｎ（極値／差分値）＋θとの間の電圧幅で極値／電圧差分値の探索を行なえば、細いエレメントに対応する極値／電圧差分値が見出せると考えられる。
【００８８】
読み出された極値／電圧差分値が上記の範囲に入らない場合には、フローは、ステップＴ１００ＢをＮＯに分岐してステップＴ８０Ｂに戻る。これに対して、読み出された極値／電圧差分値が、この範囲に入る場合には、ステップＴ１００ＢをＹＥＳに分岐して、上記の変数Ｌが１だけ増加される（ステップＴ１１０Ｂ）。これらの工程は、全ての極値／電圧差分値が読み出されるまで、継続される。この結果、Ｌには、ステップＴ１００Ｂで規定されている範囲に入る極値／電圧差分値の個数が値として代入される。
【００８９】
続いて、上記の変数Ｌが所定の値Ｍより大きいかどうかが判定される（ステップＴ１２０Ｂ）。バーコードには、同じ幅の細いエレメントが複数個存在している。したがって、ステップＴ７０Ｂで決定された最小値Ｖｍｉｎ（極値／差分）が、細いエレメントに対応した極値／電圧差分値ならば、Ｌの値は、一般的にバーコードに含まれる細いエレメントの数として規定される適当な値Ｍより大きい。
【００９０】
ＬがＭ以下である場合、フローは、ステップＴ１２０ＢをＮＯに分岐する。この結果、第２の閾値として、比較的大きな値が設定される（ステップＴ１５０Ｂ）。ＬがＭより大きい場合、フローは、ステップＴ１２０ＢをＹＥＳに分岐する。この場合、続いて、Ｖｍａｘ（極値／差分）−Ｖｍｉｎ（極値／差分）＞β  （β＞０）が成立しているかどうかが判定される（ステップＴ１３０Ｂ）。これは、第１の変形例に関して述べたように極値の変調度の差の大きさが所定の大きさを超えているかどうかの判定に相当する。
【００９１】
このステップＴ１３０ＢをＮＯに分布する場合もステップＴ１５０Ｂに進む。このステップＴ１３０ＢをＹＥＳに分布する場合には、比較的小さい第２の閾値が設定される（ステップＴ１４０Ｂ）。ステップＴ１４０Ｂ、Ｔ１５０Ｂは、それぞれ、上述の第１の変形例のステップＴ７０Ａ、Ｔ８０Ａと同様の工程である。ここでは、説明は省略する。（第２の変形例でも、第２の閾値をＶｍａｘ（極値／差分）に基づいて定めているが、ステップＴ１４０Ｂ、Ｔ１５０Ｂで、第２の閾値に適当な固定値を与えることも考えられる。）
このように、第２の変形例では、バーコードの細いエレメントに対応すると考えられる極値／電圧差分値の最小値付近の値を有する極値／電圧差分値の個数の検索をさらに行なうことにより、細いエレメントの検出信頼性を上げることができる。
【００９２】
図１１は、所定のより低い第２の閾値設定のための第３の変形例を示すフローチャートである。（上述したように、第１の変形例で行なわれた回路の変更が第３の変形例でも行なわれる。）
フローが開始されて、ステップＴ１０ＣからＴ６０Ｃは、それぞれ、第２の変形例のステップＴ２０ＢからＴ７０Ｂと同一の工程である。したがって、ここでは、説明を省略する。
【００９３】
上記のステップＴ１０ＣからＴ６０Ｃが終了されると、極値／電圧差分値の最小値Ｖｍｉｎ（極値／差分）には、値が代入された状態になっている。続いて、この極値／電圧差分値の最小値Ｖｍｉｎ（極値／差分）に基づいて第２の閾値が決定される（ステップＴ７０Ｃ）。具体的には、第２の閾値は、Ｖｍｉｎ（極値／差分）に所定の定数α（Ｃ）をかけることにより決定される（ここで、α（Ｃ）＜１）。
【００９４】
α（Ｃ）は、ノイズを有効な極値として検出しないように、適当な値がとられることが好ましい。上述の第１及び第２の変形例では、第２の閾値を極値／電圧差分値の最大値Ｖｍａｘ（極値／差分）に基づいて決定しているが、これらの変形例でも、第２の閾値が、この第３の変形例のように最小値Ｖｍｉｎ（極値／差分）に基づいて決定されてもよい。
【００９５】
このように、極値／電圧差分値の最小値に基づいて、第２の閾値を決定することにより、極値／電圧差分値の最小値付近の値を有する極値が、確実に有効な極値として検出される。
【００９６】
図１２は、所定のより低い第２の閾値設定のための第４の変形例を示すフローチャートである。
【００９７】
まず、第２の閾値が、極値／電圧差分値の最大値Ｖｍａｘ（極値／差分）に基づいて求められる（ステップＴ１０Ｄ）。具体的には、第２の閾値が、Ｖｍａｘ（極値／差分）に所定の係数γ（Ｄ）をかけることにより求められる。続いて、求められた第２の閾値が、所定の第５の閾値より大きいかどうかが判定される（ステップＴ２０Ｄ）。第２の閾値が第５の閾値より大きい場合、フローは、ステップＴ２０ＤをＹＥＳに分岐する。この場合、第２の閾値は、ステップＴ１０Ｄで求められた第２の閾値である。逆に第２の閾値が第５の閾値以下である場合、フローは、ステップＴ２０ＤをＮＯに分岐する。この場合、第２の閾値には、第５の閾値の値が代入される（ステップＴ３０Ｄ）。
【００９８】
このように、第２の閾値が一定の値（第５の閾値）より下がらないことが保障されている。したがって、ステップＴ１０Ｄのような第２の閾値の算出方法の結果、第２の閾値が異常に下がりすぎてしまうことが防止される。この第４の変形例のステップＴ２０Ｄ及びＴ３０Ｄは、前述の他の変形例に応用することが考えられる。すなわち、第１乃至第３の変形例で、第２の閾値が求められてから、これらのステップが実行されることにより、第１乃至第３の変形例においても、第２の閾値の値が下がりすぎることが防止されるようにしてもよい。
【００９９】
[第３実施形態]
図１３は、本発明の第３実施形態によるバーコード読取装置１０Ｃの構成を概略的に示すブロック図である。
【０１００】
このバーコード読取装置１０Ｃは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、エッジ検出部９０Ｃと、極値最大値検出部１００Ｃと、第１閾値比較部１１０Ｃと、閾値設定部１２０Ｃと、比較部１３０Ｃと、バーコード幅データ生成部１４０Ｃとを有している。
【０１０１】
第３実施形態の微分処理部８０は、エッジ検出部９０Ｃに接続され、微分信号をエッジ検出部９０Ｃに入力する。第３実施形態のエッジ検出部９０Ｃは、バーコード信号のエッジ、すなわち微分信号の極値を検出するが、第１及び第２実施形態のエッジ検出部９０Ａ、Ｂと異なり、検出された極値の保存を行なわなくてもよい。
【０１０２】
エッジ検出部９０Ｃは、極値最大値検出部１００Ｃに接続されている。以下で、述べるようにこの極値最大値検出部１００Ｃは、極値の暫定的な最大値を求める。また、閾値の設定で極値の最大値を用いないならば(図３（Ｂ）参照)、この極値最大値検出部１００Ｃが設けられていない構成も考えられる。極値最大値検出部１００Ｃは、第１閾値比較部１１０Ｃに接続されている。第１閾値比較部１１０Ｃは、閾値設定部１２０Ｃに接続されている。
【０１０３】
閾値設定部１２０Ｃは、比較部１３０Ｃに接続されている。また、比較部１３０Ｃには、エッジ検出部９０Ｃの出力が入力されている。
【０１０４】
比較部１３０Ｃは、バーコード幅データ生成部１４０Ｃに接続されている。バーコード幅データ生成部１４０Ｃは、第１実施形態と同様に２値化処理を行なう。
【０１０５】
図１４は、図１５に示されているバーコード読取装置１０Ｃの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。
【０１０６】
まず、フローを開始して、光電変換部７０が、センサ６０で得られた電流信号を、光電変換により、電圧信号に変換する（ステップＳ１０Ｃ）。微分処理部８０は、この電圧信号に対して、増幅とフィルタリングとを行ない、微分信号に変換する（ステップＳ２０Ｃ）。エッジ検出部９０Ｃは、微分信号をＡ／Ｄ変換し、デジタルサンプリングデータに変換する（ステップＳ３０Ｃ）。
【０１０７】
極値最大値検出部１００Ｃでは、後に極値の暫定的な最大値が代入される変数Ｖｍａｘ（差分）が０にリセットされている（ステップＳ４０Ｂ）。また、以下のフローで極値が第１の閾値を少なくとも１度超えたことを示すフラグＮに０が代入されてリセットされる（ステップＳ５０Ｃ）。さらに、極値の読出しが終了したことを示すフラグＫに０が代入されてリセットされる（ステップＳ６０Ｃ）。
【０１０８】
エッジ検出部９０Ｃは、ステップＳ３０Ｂで生成されたデータから極値を検出する。このエッジ検出部から極値の読出しが行なわれる（ステップＳ７０Ｃ）。第３実施形態においても、この極値の読出しでは、経時データとして、電圧と時間データとが読み出される。
【０１０９】
この極値の読み出し後、極値の読出しが終了したかどうか判断する（ステップＳ８０Ｃ）。このステップＳ９０ＣをＹＥＳに分岐する場合、上述のフラグＫに１を代入し（ステップＳ９０Ｃ）、ステップＳ１００Ｃに進む。ステップ９０ＣをＮＯに分岐する場合は、フラグＫを変化させずにステップＳ１００Ｃに進む。
【０１１０】
続いて、ステップＳ１００Ｃ、Ｓ１１０Ｃでは、極値の（暫定的な）最大値Ｖｍａｘ（差分）を求める。しかし、これらの工程は、上述のように本実施形態では必須ではなく、ステップＳ８０Ｃ（又はＳ９０Ｃ）の後にステップＳ１２０Ｃに進むフローも可能である。
【０１１１】
フラグＮの値が０のままであるかどうかが判定される（ステップＳ１２０Ｃ）。このステップをＹＥＳに分岐する場合、以前にこのフロー中で極値が第１の閾値を超えたことがあることを意味する。この場合、ステップＳ１３０Ｃに進む。このステップをＮＯに分岐する場合、ステップ１５０Ｃに進む。
【０１１２】
ステップ１３０Ｃでは、第１閾値比較部１１０Ｃが、問題としている極値が第１の閾値より大きいかどうか判定する。このステップ１３０ＣをＹＥＳに分岐する場合、フラグＮに１を代入して（ステップＳ１４０Ｃ）、第２の閾値を設定し（ステップＳ１５０Ｃ）、問題をしている極値を第２の閾値と比較する（ステップＳ１６０Ｃ）。ステップ１３０ＣをＮＯに分岐する場合、第３の閾値を設定し（ステップＳ１７０Ｃ）、問題としている極値を第３の閾値と比較する（ステップＳ１８０Ｃ）。
【０１１３】
ステップＳ１３０Ｃを一度ＹＥＳに分岐すれば、以後のフローでは、問題とされている極値が常に第２の閾値と比較されることになる。ステップＳ１５０Ｃ、Ｓ１７０Ｃでは、図３（Ａ）に示されているようにＶｍａｘ（極値）に基づいて第２の閾値が求められてもよい。ステップＳ１３０Ｃから分岐した後の第２又は第３の閾値の設定（ステップＳ１５０Ｃ、Ｓ１７０Ｃ）は、閾値設定部１２０Ｃが行なう。これら設定された閾値と極値との比較（ステップＳ１６０Ｃ、Ｓ１８０Ｃ）は、比較部１３０Ｃが行なう。
【０１１４】
ステップＳ１５０Ｃ、Ｓ１７０ＣをＮＯに分岐する場合、極値は無効な極値（ノイズ）と判断され、フローは、それぞれ、ステップＳ７０Ｃに戻る。ステップＳ１５０Ｃ、１７０ＣをＹＥＳに分岐する場合、極値は有効な極値と判断され、この極値は比較部１３０Ｃに保存される（ステップＳ１９０Ｃ）。
【０１１５】
続いて、フラグＫの値が１であるかどうかを判定する（ステップＳ２００Ｃ）。このステップＳ２００をＮＯに分岐する場合、まだ、極値の読出しが終了していないので、フローは、ステップＳ７０Ｃに戻る。ステップＳ２００ＣをＹＥＳに分岐する場合、次に有効と判断された極値の時間データに基づいて２値化処理が行なわれる（ステップＳ２１０Ｃ）。この２値化処理は、図５に示されている処理と同様でありここでは説明を繰りかえさない。
【０１１６】
２値化処理を行なうと、その結果の出力を行なう（ステップＳ２２０Ｃ）。出力結果に基づいてデコーダがバーコード読取装置１０Ｃに対して何らかの指示を出すまで、バーコード読取装置１０Ｃは、ステップ１０Ｃに戻り上述のフローを繰り返す。
【０１１７】
[第４実施形態]
図１５は、本発明の第４実施形態によるバーコード読取装置１０Ｄの構成を概略的に示すブロック図である。
【０１１８】
このバーコード読取装置１０Ｄは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、エッジ検出部９０Ｄと、電圧差計測部１００Ｄと、差分最大値検出部１１０Ｄ、第１閾値比較部１２０Ｄと、閾値設定部１３０Ｄと、比較部１４０Ｄと、バーコード幅データ生成部１５０Ｄとを有している。
【０１１９】
第３実施形態の微分処理部８０は、エッジ検出部９０Ｄに接続され、微分信号をエッジ検出部９０Ｄに入力する。第４実施形態のエッジ検出部９０Ｄは、バーコード信号のエッジ、すなわち微分信号の極値を検出し、さらに保存を行なう。
【０１２０】
エッジ検出部９０Ｄは、電圧差計測部１００Ｄに接続されている。電圧差計測部１００Ｄでは、時間データが前後する極値どうしで極値の電圧差分値を検出するが、第２実施形態と異なりこの電圧差分値を保存しなくてもよい。
【０１２１】
電圧差計測部１００Ｄは、差分最大値検出部１１０Ｄに接続されている。第３実施形態と同様に、この差分最大値検出部１１０Ｄは、電圧差分値の暫定的な最大値を求める。また、閾値の設定で極値の最大値を用いないならば(図３（Ｂ）参照)、この差分最大値検出部１１０Ｄが設けられていない構成も考えられる。差分最大値検出部１１０Ｄは、第１閾値比較部１２０Ｄに接続されている。
【０１２２】
第１閾値比較部１２０Ｄは、閾値設定部１３０Ｄに接続されている。
【０１２３】
閾値設定部１３０Ｄは、比較部１４０Ｄに接続されている。また、比較部１４０Ｄには、電圧差計測部１００Ｄの出力が入力されている。
【０１２４】
比較部１４０Ｄは、バーコード幅データ生成部１５０Ｄに接続されている。バーコード幅データ生成部１５０Ｄは、第１実施形態と同様に２値化処理を行なう。
【０１２５】
図１６は、図１５に示されているバーコード読取装置１０Ｄの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。図１６に示されているフローは、図１４に示されている第３実施形態のフローと極値ではなく電圧差分値を用いる点を除くとほぼ同様である。したがって、以下では、簡単に説明する。
【０１２６】
フローを開始してステップＳ１０ＤからＳ６０Ｄは、図１４に示されているステップＳ１０ＣからＳ６０Ｃと同様である。ここでは詳しく説明しない。
【０１２７】
続いて、エッジ検出部９０Ｄは、極値の検出を行ない、さらに保存を行なう（ステップＳ７０Ｄ）。電圧差計測部１００Ｄは、電圧差分値の読み出しを行なう（ステップＳ８０Ｄ）。
【０１２８】
続くステップＳ９０ＤからＳ１３０Ｄは、電圧を電圧差分値に、Ｖｍａｘ（極値）をＶｍａｘ（差分）にそれぞれ置き換えて、図１４に示されているステップＳ８０ＣからＳ１２０Ｃを行なっていることに相当する。ここでは、説明を省略する。ステップＳ１１０Ｄ、Ｓ１２０Ｄは、差分最大値検出部１１０Ｄが行なう。
【０１２９】
ステップＳ１４０Ｄは、第１閾値比較部１２０Ｄが行なう。ステップＳ１４０Ｄ、Ｓ１５０Ｄは、図１４に示されているステップＳ１３０Ｃ、Ｓ１４０Ｃと同様であるため説明を省略する
ステップＳ１６０Ｄ、Ｓ１８０Ｄは、閾値設定部１３０Ｄが行なう。図１４に示されているステップＳ１５０Ｃ、Ｓ１７０Ｃと同様であるため説明を省略する。
【０１３０】
ステップＳ１７０Ｄ、Ｓ１９０Ｄ及びＳ２００Ｄは、比較部１４０Ｄが行なう。図１４に示されているステップＳ１６０Ｃ、Ｓ１８０Ｃ及びＳ１９０Ｃとそれぞれ同等であるため説明を省略する。
【０１３１】
ステップＳ２２０Ｄ、Ｓ２３０Ｄは、バーコード幅データ生成部１５０Ｄが行なう。図１４に示されているステップＳ２１０Ｃ、Ｓ２２０Ｃとそれぞれ同等であるため説明を省略する。
【０１３２】
（付記）
前記の具体的実施形態から、以下のような構成の発明を抽出することができる。  
（１）  光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
前記極値検出手段で検出された極値の最大値を検出する極値最大値検出手段とを具備するバーコード読取装置において、  
前記極値の最大値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有し、前記極値最大値検出手段によって検出された前記極値の最大値と、Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、前記極値がバーコードの幅データを生成するために有効な極値であるかどうかを判断するための第１又は第２の極値有効性判断用閾値を設定する閾値設定手段とをさらに具備し、  
前記第１の極値有効性判断用閾値は、前記第２の極値有効性判断用閾値よりも小さく、  
前記閾値設定手段は、前記極値の最大値が前記Ｓ／Ｎ良否判断用閾値よりも大きい場合に前記第１の極値有効性判断用閾値を設定し、前記極値の最大値が前記Ｓ／Ｎ良否判断用閾値以下である場合に前記第２の極値有効性判断用閾値を設定することを特徴とするバーコード読取装置。
【０１３３】
（対応する実施形態）  
この（１）に記載のバーコード読取装置に関する実施形態は、第１実施形態が対応する。この実施形態において、光源５０が光源に、走査ミラー２０が光走査手段に、集光ミラー３０が集光手段に、センサ６０と光電変換部７０とがセンサ手段に、微分処理部８０が微分処理手段に、エッジ検出部９０Ａが極値検出手段に、極値最大値検出部１００Ａが極値検出手段に、第１の閾値がＳ／Ｎ良否判断用閾値に、第１閾値比較部１１０Ａが比較手段に、第２及び第３の閾値が第１及び第２の極値有効性判断用閾値に、閾値設定部１２０Ａが閾値設定手段に、それぞれ対応する。
【０１３４】
（２）  前記比較手段は、検出された極値がノイズか否かを判断するためのノイズ判断用閾値を更に有し、前記極値検出手段で検出された極値と、前記ノイズ判断用閾値とを比較して前記極値が前記ノイズ判断用閾値より大きい場合に前記極値を前記有効な極値と判定し、さらに、前記極値の最大値と前記検出された極値との差と、所定の値とを比較し、  
前記閾値設定手段は、２つの異なる前記第１の極値有効性判断用閾値を有し、前記極値の最大値と前記極値との差が所定の値よりも大きい場合に、小さい方の前記第１の極値有効性判断用閾値を設定することを特徴とする（１）に記載のバーコード読取装置。
【０１３５】
（対応する実施形態）  
この（２）に記載のバーコード読取装置に関する実施形態は、第１実施形態に適用された第１の変形例が対応する。  
この実施形態において、第４の閾値がノイズ判断用閾値に、対応する。
【０１３６】
（３）  前記比較手段は、前記ノイズ判断用閾値よりも大きな極値の中から選択される前記極値の最小値を検出し、また、前記極値の最小値以上の所定の範囲内で検出される前記極値の個数を計測する極値個数計測手段を有し、  
前記閾値設定手段は、２つの異なる前記第１の極値有効性判断用閾値を有し、前記極値個数計数手段が計測した前記極値の個数が所定の数より大きい場合、小さい方の前記第１の極値有効性判断用閾値を設定することを特徴とする（２）に記載のバーコード読取装置。
【０１３７】
（対応する実施形態）  
この（３）に記載のバーコード読取装置に関する実施形態には、第１実施形態に適用された第２の変形例が対応する。
【０１３８】
（４）  前記第１の極値有効判断用閾値は、前記極値の最大値に基づいて算出されることを特徴とする（１）乃至（３）のいずれか１に記載のバーコード読取装置。
【０１３９】
（対応する実施形態）  
この（４）に記載のバーコード読取装置に関する実施形態は、第１実施形態に適用された第１、第２、及び第４の変形例が対応する。
【０１４０】
（５）  前記比較手段は、前記ノイズ判断用閾値よりも大きな極値の中から選択される前記極値の最小値を検出し、  
前記第１の極値有効判断用閾値は、前記極値の最小値に基づいて算出されることを特徴とする（１）乃至（４）のいずれか１に記載のバーコード読取装置。
【０１４１】
（対応する実施形態）  
この（５）に記載のバーコード読取装置に関する実施形態には、第１実施形態に適用された第３の変形例が対応する。
【０１４２】
（６）  前記第１の極値有効判断用閾値は、所定の固定された電圧値の異なる複数の閾値のうちから、選択されることを特徴とする（２）乃至（４）のいずれか１に記載のバーコード読取装置。
【０１４３】
（対応する実施形態）  
この（６）に記載のバーコード読取装置に関する実施形態には、第１実施形態、及び第１実施形態に適用された第１及び第２の変形例が対応する。
【０１４４】
（７）  光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ手段により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
を備えたバーコード読取装置において、  
前記極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有し、前記極値検出手段によって検出された極値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、前記極値がバーコードの幅データを生成するために有効な極値であるかどうかを判断するための第１又は第２の極値有効性判断用閾値を設定する閾値設定手段とをさらに具備し、  
前記第１の極値有効性判断用閾値は、前記第２の極値有効性判断用閾値よりも小さく、  
前記閾値設定手段は、前記極値の少なくとも１つが前記Ｓ／Ｎ良否判断用閾値よりも大きい場合に前記第１の極値有効性判断用閾値を設定し、前記極値の全てが前記Ｓ／Ｎ良否判断用閾値以下である場合に前記第２の極値有効性判断用閾値を設定することを特徴とするバーコード読取装置。
【０１４５】
（対応する実施形態）  
この（７）に記載のバーコード読取装置に関する実施形態には、第３実施形態が対応する。この実施形態において、光源５０が光源に、走査ミラー２０が光走査手段に、集光ミラー３０が集光手段に、センサ６０と光電変換部７０とがセンサ手段に、微分処理部８０が微分処理手段に、エッジ検出部９０Ｃが極値検出手段に、第１の閾値がＳ／Ｎ良否判断用閾値に、第１閾値比較部１１０Ｃが比較手段に、第２及び第３の閾値が第１及び第２の極値有効性判断用閾値に、閾値設定部１２０Ｃが閾値設定手段に、それぞれ対応する。
【０１４６】
（８）  光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ部により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
を備えたバーコード読取装置において、  
前記極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有し、全ての極値に対して、前記極値の時間データが互いに隣接する２つの極値における電圧値の差分値を演算する演算手段と、  
前記演算手段によって演算される差分値から、差分最大値を検出する差分最大値検出手段と、  
前記差分最大値検出手段によって検出された前記差分最大値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、前記極値がバーコードの幅データを生成するために有効な極値であるかどうかを判断するための第１又は第２の極値有効性判断用閾値を設定する閾値設定手段とをさらに具備し、  
前記第１の極値有効性判断用閾値は、前記第２の極値有効性判断用閾値よりも小さく、  
前記閾値設定手段は、前記差分最大値が前記Ｓ／Ｎ良否判断用閾値よりも大きい場合に前記第１の極値有効性判断用閾値を設定し、前記差分最大値が前記Ｓ／Ｎ良否判断用閾値以下である場合に前記第２の極値有効性判断用閾値を設定することを特徴とするバーコード読取装置。
【０１４７】
（対応する実施形態）  
この（８）に記載のバーコード読取装置に関する実施形態には、第２実施形態が対応する。この実施形態において、光源５０が光源に、走査ミラー２０が光走査手段に、集光ミラー３０が集光手段に、センサ６０と光電変換部７０とがセンサ手段に、微分処理部８０が微分処理手段に、エッジ検出部９０Ｂが極値検出手段に、電圧差計測部１００Ｂが演算手段に、差分最大値検出部１１０Ｂが差分最大値検出手段に、第１の閾値がＳ／Ｎ良否判断用閾値に、第１閾値比較部１２０Ｂが比較手段に、第２及び第３の閾値が第１及び第２の極値有効性判断用閾値に、閾値設定部１３０Ｂが閾値設定手段に、それぞれ対応する。
【０１４８】
（９）  光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ部により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
を備えたバーコード読取装置において、  
極値のＳ／Ｎの良否を判断するためのＳ／Ｎ良否判断用閾値を有し、全ての極値に対して、前記極値の時間データが互いに隣接する２つの極値における電圧値の差分値を演算する演算手段と、  
前記演算手段によって演算された差分値と、前記Ｓ／Ｎ良否判断用閾値とを比較する比較手段と、  
前記比較手段による比較結果に基づいて、前記極値がバーコードの幅データを生成するために有効な極値であるかどうかを判断するための第１又は第２の極値有効性判断用閾値を設定する閾値設定手段とをさらに具備し、  
前記第１の極値有効性判断用閾値は、前記第２の極値有効性判断用閾値よりも小さく、  
前記閾値設定手段は、前記差分値の少なくとも１つが前記Ｓ／Ｎ良否判断用閾値よりも大きい場合に前記第１の極値有効性判断用閾値を設定し、前記差分値の全てが前記Ｓ／Ｎ良否判断用閾値以下である場合に前記第２の極値有効性判断用閾値を設定することを特徴とするバーコード読取装置。
【０１４９】
（対応する実施形態）  
この（９）に記載のバーコード読取装置に関する実施形態には、第４実施形態が対応する。この実施形態において、光源５０が光源に、走査ミラー２０が光走査手段に、集光ミラー３０が集光手段に、センサ６０と光電変換部７０とがセンサ手段に、微分処理部８０が微分処理手段に、エッジ検出部９０Ｄが極値検出手段に、電圧差計測部１００Ｄが演算手段に、第１の閾値がＳ／Ｎ良否判断用閾値に、第１閾値比較部１２０Ｄが比較手段に、第２及び第３の閾値が第１及び第２の極値有効性判断用閾値に、閾値設定部１３０Ｄが閾値設定手段に、それぞれ対応する。
【図面の簡単な説明】
【０１５０】
【図１】本発明の第１実施形態によるバーコード読取装置の構成を概略的に示すブロック図である。
【図２】本発明の第１実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図３】（Ａ）第２及び第３の閾値を極値の最大値に基づいて決定する方法を示すフローチャートである。（Ｂ）第２及び第３の閾値を固定値に基づいて決定する方法を示すフローチャートである。
【図４】サンプリング波の極値と、閾値との関係の一例を示す図である。
【図５】２値化処理の詳細を示すフローチャートである。
【図６】本発明の第２実施形態によるバーコード読取装置の構成を概略的に示すブロック図である。
【図７】本発明の第２実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図８】サンプリング波の極値と、閾値との関係の一例を示す図である。
【図９】第２の閾値の設定の第１の変形例の処理を示すフローチャートである。
【図１０】第２の閾値の設定の第２の変形例の処理を示すフローチャートである。
【図１１】第２の閾値の設定の第３の変形例の処理を示すフローチャートである。
【図１２】第２の閾値の設定の第４の変形例の処理を示すフローチャートである。
【図１３】本発明の第３実施形態によるバーコード読取装置の構成を概略的に示すブロック図である。
【図１４】本発明の第３実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図１５】本発明の第４実施形態によるバーコード読取装置の構成を概略的に示すブロック図である。
【図１６】本発明の第４実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図１７】従来技術のバーコード読取装置の構成を概略的に示すブロック図である。
【図１８】従来技術のバーコード読取装置内の信号の一例を示す図である。
【符号の説明】
【０１５１】
１０、１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ…バーコード読取装置、  ２０ａ…駆動制御部、  ２０…走査ミラー、  ３０…集光ミラー、  ４０…反射ミラー、  ５０ａ…光源制御部、  ５０…光源、  ６０…センサ、  ７０…光電変換部、８０…微分処理部、  ９０、９０Ａ、９０Ｂ、９０Ｃ、９０Ｄ…エッジ検出部、  ９０Ｅ…ピークホールド／ボトムホールド検出部、  １００Ａ…極値最大値検出部、  １００Ｂ…電圧差計測部
１００Ｃ…極値最大値検出部、  １００Ｄ…電圧差計測部、  １００Ｅ…閾値設定部、  １１０、１１０Ａ、１１０Ｃ…閾値比較部、  １１０Ｂ、１１０Ｄ…差分最大値検出部、  １１０Ｅ…比較部、  １２０Ａ、１２０Ｃ…閾値設定部、  １２０Ｂ、１２０Ｄ…第１閾値比較部、  １２０Ｅ…バーコード幅データ生成部、  １３０Ａ…比較部、  １３０Ｂ…閾値設定部、  １３０Ｃ…比較部、  １３０Ｄ…閾値設定部、  １４０Ａ…バーコード幅データ生成部、  １４０Ｂ…比較部、  １４０Ｃ…バーコード幅データ生成部、  １４０Ｄ…比較部、  １５０Ｂ…バーコード幅データ生成部、  １５０Ｄ…バーコード幅データ生成部、  ２００…バーコード記号。
【図１】
2009110105.tif 000003
【図２】
2009110105.tif 000004
【図３】
2009110105.tif 000005
【図４】
2009110105.tif 000006
【図５】
2009110105.tif 000007
【図６】
2009110105.tif 000008
【図７】
2009110105.tif 000009
【図８】
2009110105.tif 000010
【図９】
2009110105.tif 000011
【図１０】
2009110105.tif 000012
【図１１】
2009110105.tif 000013
【図１２】
2009110105.tif 000014
【図１３】
2009110105.tif 000015
【図１４】
2009110105.tif 000016
【図１５】
2009110105.tif 000017
【図１６】
2009110105.tif 000018
【図１７】
2009110105.tif 000019
【図１８】
2009110105.tif 000020