JP2005018391A - コード読取装置およびプログラム - Google Patents
コード読取装置およびプログラム Download PDFInfo
- Publication number
- JP2005018391A JP2005018391A JP2003182099A JP2003182099A JP2005018391A JP 2005018391 A JP2005018391 A JP 2005018391A JP 2003182099 A JP2003182099 A JP 2003182099A JP 2003182099 A JP2003182099 A JP 2003182099A JP 2005018391 A JP2005018391 A JP 2005018391A
- Authority
- JP
- Japan
- Prior art keywords
- illumination
- brightness difference
- code
- code pattern
- color
- 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.)
- Pending
Links
Images
Abstract
【課題】異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色でコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにする。
【解決手段】CPU1は、実際に2Dバーコードの読み取りを開始する前に、CMOSセンサモジュール2内の照明用LED8を制御して、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて2Dバーコードの読取動作を開始する。
【選択図】 図1
【解決手段】CPU1は、実際に2Dバーコードの読み取りを開始する前に、CMOSセンサモジュール2内の照明用LED8を制御して、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて2Dバーコードの読取動作を開始する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置およびプログラムに関する。
【0002】
【従来の技術】
従来、この種のコード読取装置としては、様々なものが提案されて実用化されているが、赤色等の照明光をバーコードに照射することによってバーコードを読み取るものとしては、例えば、赤色LED、緑色LEDを有する2つの光源のうち、先ず、赤色LEDを通電して赤色光をバーコードに照射させ、その反射光を受光してバーコードを読み取ると共に、その通電時間をタイマにて計時し、一定時間が経過すると、赤色LEDから緑色LEDに切換え通電させてその通電時間をタイマにて計時する動作を行うようにしたバーコード読取装置が知られている(特許文献1参照)。
【0003】
【特許文献1】
特開平06−309486号公報
【0004】
【発明が解決しようとする課題】
この種のバーコード読取装置は、バーコードを構成するバーの色や隣接するバーの間部分の色が異なる場合でも、赤色LEDと緑色LEDと光源を切換えることによって認識率を高めることが可能となるが、例えば、定型的なバーコードを読み取る場合であっても、そのバーコードにとっては不要な色のLEDまでも通電することになり、無駄な時間を要し、効率の良い読み取りを実現することが困難となる等の問題があった。
ところで、バーコードを照明する光源の品質や劣化等によってその輝度が“ばらつき”、輝度むら(照明むら)が起きているような場合があるが、このような光源をそのまま使用してバーコードの読み取りを行うと、認識率が大幅に低下してしまうという問題があった。
【0005】
第1の発明の課題は、異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色でコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
第2の発明の課題は、異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測し、実際にコードを読み取る場合には、明度差の大きい順に照明色を切換えながらコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
第3の発明の課題は、コードパターンを照明する光源の照明むらを事前に計測し、コードパターンを2値化する為の閾値を照明むらに基づいて補正することで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
【0006】
【課題を解決するための手段】
請求項1記載の発明(第1の発明)は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する判別手段と、この判別手段によって基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始させる制御手段とを具備するものである。
更に、コンピュータに対して、上述した請求項1記載の発明に示した主要機能を実現させるためのプログラムを提供する(請求項6記載の発明)。
【0007】
したがって、請求項1、6記載の発明は、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて読取動作を開始するようにしたから、照明色毎に明度差を事前計測している過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で実際の読取動作を行うことができ、無駄な照明や時間が不要となり、認識率の大幅な向上と同時に処理時間の短縮化を実現することが可能となる。
【0008】
なお、請求項1記載の発明は次のようなものであってもよい。
赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにすれば(請求項3記載の発明)、赤、緑、青の3種類の光源を使用して多数の照明色を発生させることができる為、あらゆるコードパターンにも対応可能となる。
また、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを2値化する為の閾値を当該明度差に基づいて決定するようにすれば(請求項4記載の発明)、例えば、明度差の1/2を閾値とすることにより処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【0009】
請求項2記載の発明(第2の発明)は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取るコード読取装置であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する保持手段と、この保持手段内に保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す制御手段とを具備するものである。
更に、コンピュータに対して、上述した請求項2記載の発明に示した主要機能を実現させるためのプログラムを提供する(請求項7記載の発明)。
【0010】
したがって、請求項2、7記載の発明は、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差をその時の照明色に対応付けて記憶保持しておき、この照明色毎の明度差をその大きい順に指定しながら指定明度差を生じさせた照明色を発生させて読取動作を開始した際に、この照明色では正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返すようにしたから、実際に読み取りを行う場合には、明度差の大きい順に照明色を切換えながら行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0011】
なお、請求項2記載の発明は、上述した請求項1記載の発明と同様、赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにしてもよく(請求項3記載の発明)、また、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを2値化する為の閾値を当該明度差に基づいて決定するようにしてもよい(請求項4記載の発明)。
【0012】
請求項5記載の発明(第3の発明)は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取ると共に、このコードパターンを予め設定されている閾値に基づいて2値化するコード読取装置であって、実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する検出手段と、この検出手段によって検出された照明むらに基づいて前記2値化用の閾値を補正する補正手段とを具備するものである。
更に、コンピュータに対して、上述した請求項5記載の発明に示した主要機能を実現させるためのプログラムを提供する(請求項8記載の発明)。
【0013】
したがって、請求項5、8記載の発明は、実際に読み取りを開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて2値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0014】
【発明の実施の形態】
(第1実施形態)
以下、図1〜図4を参照してこの発明の第1実施形態を説明する。
図1は、この実施形態におけるバーコード読取装置の基本的構成要素を示したブロック図である。
このバーコード読取装置は、その基本的な構成要素としてCPU1、CMOSセンサモジュール2、CMOSセンサI/F(インターフェイス)3、RAM4、表示部5等を有する構成となっている。ここで、CPU1は、オペレーティングシステムや各種アプリケーションソフトにしたがってこのバーコード読取装置の全体動作を制御する中央演算処理装置であり、スキャン開始スイッチ(トリガーキー)6が操作されると、CMOSセンサモジュール2の電源を投入する他に、LED制御部7を介してCMOSセンサモジュール2内の照明用LED8を通電させて2次元バーコード(2Dバーコード)の読み取りを開始させる。この場合、CMOSセンサ9は、その反射光を受光して光電変換するが、これによって得られたスキャンデータは、MOSセンサI/F3を介してRAM4内に格納される。このスキャンデータ(256階調のデータ)は、2階調のデータに変換されてデーコード処理される。
【0015】
このようなバーコード読取装置において、例えば、2Dバーコードを構成する黒のバーが赤色で印刷されている場合には、赤色LEDを使用して照明すると、背景部分の白と赤との明度差が小さくなる為、256階調のデータを2階調のデータに変換する際に、その閾値の決定が困難となる。そこで、この第1実施形態においては、実際に2Dバーコードの読み取りを開始する前に、試験的な発光を実施し、異なる複数の照明色を順次切換え発生させながら、照明色毎に明度差を事前に計測すると共に、この計測過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で2Dバーコードを実際に読み取ってデコード処理する為の実読み取り動作を開始するようにしている。
【0016】
図2は、CMOSセンサモジュール2内に設けられている照明用LED8の構成を示した図である。
照明用LED8は、照明色が異なる複数の光源部として、赤LED81、緑LED82、青LED83を有し、各色のLED81〜83は、それぞれ2個ずつ設けられている。すなわち、図中、右側おいてその上から順に、青LED83、緑LED82、赤LED81が縦方向に配置され、また、左側においてもその上から順に、赤LED81、緑LED82、青LED83が縦方向に配置されている構成となっている。ここで、CPU1は、実際に2Dバーコードの読み取りを開始する前の試験発光時において、赤LED81、緑LED82、青LED83を順次点灯させて、その単色光を切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるように照明用LED8の点灯/消灯を制御する。
【0017】
次に、この第1実施形態におけるコード読取装置の動作概念を図3および図4に示すフローチャートを参照して説明する。ここで、これらのフローチャートに記述されている各機能は、読み取り可能なプログラムコードの形態で格納されており、このプログラムコードにしたがった動作を逐次実行する。また、伝送媒体を介して伝送されてきた上述のプログラムコードにしたがった動作を逐次実行することもできる。このことは後述する他の実施形態においても同様であり、記録媒体の他、伝送媒体を介して外部供給されたプログラム/データを利用してこの実施形態特有の動作を実行することもできる。
【0018】
図3および図4は、スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャートである。
先ず、CPU1は、スキャン開始スイッチ6が操作されると、CMOSセンサモジュール2の電源を投入すると共に、LED制御部7を介してCMOSセンサモジュール2内の照明用LED8を通電させるが、その際、実際に2Dバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測する試験発光処理を実行する。
すなわち、CPU1は、先ず、図2(A)に示すように、一対の赤LED81を点灯させた後(ステップA1)、CMOSセンサ9によって光電変換されたスキャンデータ(2Dバーコードに中央付近における数ライン分のスキャンデータ)を取り込む(ステップA2)。ここで、取り込みデータとして、バーコードに中央付近における数ライン分のスキャンデータに限ったのは、全体の処理時間を極力短くする為である(以下、同様)。
【0019】
このようにしてスキャンデータを取り込んだ後、CPU1は、この受光状態を解析することによってそのコード部分とその背景部分との明度差を算出し(ステップA3)、この明度差が基準値以上か否かを判別する(ステップA4)。この基準値は、赤LED81に対応して予め初期設定されている2値化用の閾値である(以下、同様、基準値は2値化用の閾値を示す)。
ここで、明度差が基準値以上であれば、この時点で試験発光処理を中止し、スキャンデータを2値化する為の閾値をこの明度差に基づいて決定する(図4のステップA31)。この場合、例えば、明度差の1/2を赤LED対応の閾値として決定するようにしている。その後、CPU1は、通常と同様、スキャンデータのデーコード処理を開始する(ステップA32)。
【0020】
一方、明度差が基準値未満の場合には(ステップA4)、赤LED81を消灯させた後に(ステップA5)、図2(B)に示すように、一対の緑LED82を点灯させる(ステップA6)。この状態において、上述の場合と同様に、2Dバーコードに中央付近における数ライン分のスキャンデータを取り込んだ後に(ステップA7)、この受光状態を解析することによって明度差演算を行い(ステップA8)、この明度差が緑LED対応の基準値以上か否かを判別する(ステップA9)。ここで、明度差が基準値以上であれば、この時点で試験発光処理を中止し、この明度差に基づいて緑LED対応の閾値を決定した後に(ステップA31)、デーコード処理を開始するが(ステップA32)、明度差が基準値未満であれば(ステップA9)、緑LED82を消灯した後(ステップA10)、図2(C)に示すように、一対の青LED83を点灯させる(ステップA11)。
【0021】
以下、同様に、CPU1は、スキャンデータを取り込んだ後に(ステップA12)、明度差演算を行い(ステップA13)、この明度差が青LED対応の基準値以上以上であれば(ステップA14)、この時点で試験発光処理を中止して青LED対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップ32)。
このようにして赤LED81、緑LED82、青LED83を順次点灯させながらその時の明度差を計測してその基準値と比較する処理を順次行うが、最後の青LED83を点灯した状態でも、この明度差がその基準値未満であることが検出された場合には(ステップA14)、青LED83を消灯させる(ステップA15)。
【0022】
その後、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させながら上述と同様の試験発光処理を繰り返す動作に移る。
先ず、図2(D)に示すように、赤LED81および緑LED82を同時に点灯させる(図4のステップA16)。これによって照明色は、赤、緑の混合色となり、この混合色によってスキャンされたデータを取り込んだ後に(ステップA17)、明度差演算を行い(ステップA18)、この明度差が当該混合色対応の基準値以上であれば(ステップA19)、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップA32)。また、この明度差が赤、緑の混合色対応の基準値未満であれば(ステップA19)、赤LED81のみを消灯した後に(ステップA20)、青LED83を点灯させる(ステップA21)。
【0023】
これによって図2(E)に示すように、緑LED82、青LED83が同時点灯された状態となる。この緑と青の混合色によってスキャンされたデータを取り込んだ後(ステップA22)、明度差演算を行い(ステップA23)、この明度差が当該混合色対応の基準値以上であれば(ステップA24)、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップA32)。また、この明度差が緑、青の混合色対応の基準値未満であれば(ステップA24)、緑LED82のみを消灯した後に(ステップA25)、赤LED81を点灯させる(ステップA26)。
【0024】
これによって図2(F)に示すように、赤LED81、青LED83が同時点灯された状態となり、この赤と青の混合色によってスキャンされたデータを取り込んだ後(ステップA27)、明度差演算を行い(ステップA28)、この明度差が当該混合色対応の基準値以上であれば(ステップA29)、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップA32)。また、この明度差が赤、青の混合色対応の基準値未満であれば(ステップA29)、赤LED81、青LED83を消灯した後(ステップA30)、エラー終了となる。
【0025】
以上のように、この第1実施形態のコード読取装置におけるCPU1は、実際に2Dバーコードの読み取りを開始する前に、CMOSセンサモジュール2内の照明用LED8を制御して、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色対応の基準値以上であることが判別された場合には、その時点で当該明度差を生じさせた照明色を発生させて2Dバーコードの読取動作を開始するようにしたから、照明色毎に明度差を事前計測している過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で2Dバーコードの読取を行うことができ、無駄な照明や時間が不要となり、認識率の大幅な向上と同時に処理時間の短縮化を実現することが可能となる。
【0026】
この場合、赤LED81、緑LED82、青LED83を所定の順番で切り換え発生させた後に、赤LED81、緑LED82、青LED83の点灯を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにしたから、赤LED81、緑LED82、青LED83の3種類の光源を使用して多数の照明色を発生させることができるようになり、あらゆる色の2Dバーコードにも対応可能となる。
また、バーコードの読取動作を開始した際の照明色の明度差を参照し、2値化用の閾値を当該明度差に基づいて決定するようにしたから、処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【0027】
なお、上述した第1実施形態においては、異なる複数の照明色を順次切り替え発生させる際に、赤、緑、青の単一色を順次発生させた後、赤緑、青緑、赤青の混合色を順次発生させるようにしたが、その発生順位は、これに限定されず、任意であり、更には、3色を混合した混合色で照明するようにしてもよい。
また、上述した第1実施形態においては、全ての照明色を切換え発生させても最終的に基準値未満であることが検出された場合にエラー終了としたが、それまでに計測された明度差のうち、最も基準値に近い明度差を生じさせた照明色を実読取用の照明色として選択するようにしてもよい。
【0028】
一方、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する機能と、基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始する機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0029】
(第2実施形態)
以下、この発明の第2実施形態について図5〜図8を参照して説明する。なお、上述した第1実施形態においては、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色で2Dバーコードの読取動作を開始するようにしたが、この第2実施形態においては、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測してこの計測結果を保存しておき、実際に2Dバーコードを読み取る場合には、明度差の大きい順に照明色を切換えながら2Dバーコードの読取を行うようにしたものである。
ここで、両実施形態において基本的に同一のものは、同一符号を付して示し、その説明を省略する他、以下、第2実施形態の特徴部分を中心に説明するものとする。
【0030】
図5(A)は、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測した計測結果が発光パターン情報41としてRAM4内に記録保持された状態を示した図である。
すなわち、発光パターン情報41は、「照明色」、「明度差」、「スキャンデータ」の各項目を有する構成となっている。この場合、発光パターン情報41は、計測完了直後には、単一色(赤、緑、青)の明度差、混合色(赤緑、青緑、赤青)の明度差の順となっているが、計測完了後においては、明度差の大きい順にその内容が並び替えられる。なお、図5(A)は、ソート前の発光パターン情報41の内容を例示した図、(B)は、ソート後の発光パターン情報41の内容を例示した図である。
【0031】
図6および図7は、スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャートである。
先ず、CPU1は、上述した第1実施形態と同様、スキャン開始スイッチ6が操作されると、CMOSセンサモジュール2の電源を投入すると共に、LED制御部7を介してCMOSセンサモジュール2内の照明用LED8を通電させるが、その際、実際に2Dバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測する試験発光処理を実行する。
【0032】
すなわち、CPU1は、先ず、図2(A)に示すように、赤LED81を点灯させた後に(ステップB1)、2Dバーコードに中央付近における数ライン分のスキャンデータを取り込み(ステップB2)、この受光状態を解析することによってそのコード部分とその背景部分との明度差を算出する(ステップB3)。
これによって算出された明度差と当該照明色(赤)とスキャンデータとを対応付けた情報を発光パターン情報41としてRAM4内に記憶保持させる(ステップB4)。その後、この赤LED81を消灯させる(ステップB5)。
【0033】
次に、図2(B)に示すように、緑LED82を点灯させた状態において(ステップB6)、スキャンデータを取り込むと共に(ステップB7)、受光状態を解析することによって明度差演算を行い(ステップB8)、この明度差と当該照明色(緑)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB9)、この緑LED82を消灯させる(ステップB10)。更に、図2(C)に示すように、青LED83を点灯させた後(ステップB11)、スキャンデータを取り込み(ステップB12)、明度差演算を行い(ステップB13)、この明度差と当該照明色(青)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB14)、この青LED83を消灯させる(ステップB15)。
【0034】
このようにして赤LED81、緑LED82、青LED83を順次点灯させながらその時の明度差を計測して発光パターン情報41として記憶保持する処理が終了すると、以下、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させながら上述と同様の計測を繰り返す。
すなわち、図2(D)に示すように、赤LED81および緑LED82を同時に点灯させ(図7のステップB16)、この混合色によってスキャンしたデータを取り込み(ステップB17)、明度差演算を行い(ステップB18)、この明度差と当該照明色(赤緑)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB19)、この赤LED81を消灯させる(ステップB20)。
【0035】
次に、青LED83を点灯させる(ステップB21)。すると、図2(E)に示すように、緑LED82、青LED83が同時点灯の状態となり、この混合色によってスキャンしたデータを取り込み(ステップB22)、明度差演算を行い(ステップB23)、この明度差と当該照明色(緑青)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB24)、この緑LED82を消灯させる(ステップB25)。
【0036】
更に、赤LED81を点灯させると(ステップB26)、図2(F)に示すように、赤LED81、青LED83が同時点灯の状態となり、この混合色によってスキャンしたデータを取り込み(ステップB27)、明度差演算を行い(ステップB28)、この明度差と当該照明色(赤青)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後に(ステップB29)、赤LED81および青LED83を消灯させる(ステップB30)。
このようにして発光パターン情報41をRAM4内に記録保持する処理が終了すると、上述のようにして得られた各スキャンデータを発光パターン情報41から順次読み出しながらデコードする処理に移る(ステップB31)。
【0037】
図6は、この場合におけるデコード処理を示したフローチャートである。
先ず、CPU1は、RAM4内に記憶保持されている発光パターン情報41をアクセスし、各明度差の大きさを比較しながら明度差の大きい順(昇順)にその内容を並び替えるソート処理を実行する(ステップC1)。そして、このRAM4内の先頭領域から明度差の大きい順に発光パターン情報を1つ読み出してその照明色を特定すると共に、赤LED81、緑LED82、青LED83のうち、この照明色に対応するLEDを選択指定して点灯させるが、この場合、照明色が単色であれば、1種類のLED、混合色であれば、2種類のLEDを同時点灯させる(ステップC2)。
【0038】
そして、この明度差に基づいて2値化用閾値を決定する(ステップC3)。この場合、例えば、明度差の1/2の値を当該照明色対応の2値化用閾値として決定する。その後、当該照明色対応のスキャンデータをデコードし(ステップC4)、正常にデコードすることができたか否かを調べる(ステップC5)。ここで、デーコードエラーが検出された場合には、RAM4内から明度差が次に大きい発光パターン情報41を1つ読み出し(ステップC6)、その閾値を決定し(ステップC3)、デコード処理を行う(ステップC4)。以下、正常デコードが検出されるまで、RAM4内から明度差を順次読み出しながら上述の動作を繰り返す(ステップC4〜C6)。
【0039】
以上のように、この第2実施形態のコード読取装置におけるCPU1は、実際に2Dバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に明度差を検出し、この明度差をその時の照明色に対応付けて発光パターン情報41として記憶保持した後に、この発光パターン情報41の内容をその明度差の大きい順に並び換え、明度差が大きい順に発光パターン情報41を読み出し、この発光パターン情報41内の照明色で示されるLEDを点灯させて2Dバーコードの読取動作を開始するが、この照明色では2Dバーコードを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差の発光パターン情報41を読み出しながらその照明色を切換発生させる動作を繰返すようにしたから、実際にコードを読み取る場合には、明度差の大きい順に照明色を切換えながら2Dバーコードの読取を行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0040】
この場合、上述した第1実施形態と同様に、赤LED81、緑LED82、青LED83の3種類の光源を使用して多数の照明色を発生させることができる為、あらゆる2Dバーコードにも対応可能となる。
また、バーコードの読取動作を開始した際の照明色の明度差を参照し、2値化用の閾値を当該明度差に基づいて決定するようしたから、処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【0041】
なお、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する機能と、保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0042】
(第3実施形態)
以下、この発明の第3実施形態について図9〜図12を参照して説明する。
この第3実施形態においては、2Dバーコードを照明する光源の照明むらを事前に計測し、それを2値化する為の閾値を照明むらに基づいて補正するようにしたものである。
ここで、第1および第3実施形態において基本的に同一のものは、同一符号を付して示し、その説明は省略するものとする。
【0043】
図9は、照明用LED8に輝度むらが発生している場合に、この照明用LED8からの照明光を所定の白色体に照射した際の受光波形を示した図である。
すなわち、左右に配置されている一対の照明用LED8に輝度むらが発生し、光源付近に比べてその周辺の照明が極端に暗い場合に、この照明用LED8からの照明光を所定の白色体(例えば、白色紙や白色ボード等)に照射し、この反射光を受光するとその受光波形は、図9に示すように、両光源付近だけが高くなっている2山状の波形となる。
【0044】
図10は、輝度むらが発生していない正常な照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図である。この場合における読取波形の高さは、略均一となっている為に、予め設定されている閾値レベルによってデータを正常に2値化することが可能となる。
また、図11は、輝度むらが発生している照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図である。この場合における読取波形は、図9で示した受光波形のように、両光源付近に比べてその周辺の高さが極端に低くなり、これを図10で示した閾値レベルによって2値化しようとしても、正常に2値化することができなくなる。
そこで、この第3実施形態においては、実際にコード読取を開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むら(輝度むら)を検出し、照明むらに基づいて閾値を補正するようにしている。
【0045】
図12は、照明むらに基づいて閾値を事前補正する処理を示したフローチャートである。
先ず、CPU1は、照明用LED8に輝度むらが発生している場合に、この照明用LED8からの照明光を所定の白色体に対して照射すると共に(ステップD1)、この反射光を受光し(ステップD2)、この受光波形に基づいて照明むらを検出し(ステップD3)、照明むらに応じた波形を時間軸に沿って順次数値化する(ステップD4)。そして、予め設定されている2値化用の閾値を読み出し(ステップD5)、この設定閾値を上述のようにして数値化した照明むらの数値データに基づいて補正する(ステップD6)。
【0046】
これによって、図11で示した補正前の閾値レベルに対して補正後における閾値のレベル変化は、光源の照明むらを反映したものとなる。すなわち、例えば、図9に示したような照明むらが生じている光源の場合、補正後の閾値のレベル変化は、図11に示す如く、照明むらを反映した2山状の波形となり、図9の照明むらの読取波形に合わせたものとなる為、スキャンデータが照明むらによって影響されたとしても、スキャンデータを正常に2値化することが可能となる。
【0047】
以上のように、この第3実施形態のコード読取装置においてCPU1は、実際に2Dバーコードの読み取りを開始する前に、照明用LED8からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて2値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0048】
なお、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する機能と、コードパターンを2値化する為の閾値を前記検出された照明むらに基づいて補正する機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0049】
なお、上述した第1〜第3実施形態においては、2Dバーコードを読取対象としたが、1次元バーコードあるいはその他の2次元コード(PDF417コード、QRコード等)を読み取るようにしてもよい。
また、上述した第1〜第3実施形態においては、撮像素子としてCMOSセンサを使用したが、CCD撮像素子を使用してもよい。
【0050】
【発明の効果】
第1の発明(請求項1記載の発明)によれば、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させる毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて読取動作を開始するようにしたから、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色で読取を行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
第2の発明(請求項2記載の発明)によれば、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、その受光状態に基づいてコード部分とその背景部分との明度差を検出し、この明度差をその時の照明色に対応付けて記憶保持しておき、この照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を発生させて読取動作を開始した際に、この照明色では正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返すようにしたから、実際に読み取りを行う場合には、明度差の大きい順に照明色を切換えながら行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
第3の発明(請求項5記載の発明)によれば、実際に読み取りを開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて2値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【図面の簡単な説明】
【図1】コード読取装置の基本的構成要素を示したブロック図。
【図2】CMOSセンサモジュール2内に設けられている照明用LED8の構成を示した図。
【図3】スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャート。
【図4】図3に続く、フローチャート。
【図5】第2実施形態において、(A)は、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測した計測結果が発光パターン情報41としてRAM4内に記録保持された状態を示した図、(B)は、明度差の大きい順に並び替えたソート後の発光パターン情報41の内容を例示した図。
【図6】第2実施形態において、スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャート。
【図7】図6に続く、フローチャート。
【図8】第2実施形態におけるデコード処理を示したフローチャート。
【図9】第3実施形態において、照明用LED8に輝度むらが発生している場合に、この照明用LED8からの照明光を所定の白色体に照射した際の受光波形を示した図。
【図10】第3実施形態において、輝度むらが発生していない正常な照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図。
【図11】第3実施形態において、輝度むらが発生している照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図。
【図12】第3実施形態において、照明むらに基づいて閾値を事前補正する処理を示したフローチャート。
【符号の説明】
1 CPU
2 CMOSセンサモジュール
3 CMOSセンサI/F
4 RAM
6 スキャン開始スイッチ
7 LED制御部
8 照明用LED
9 CMOSセンサ
41 発光パターン情報
81 赤LED
82 緑LED
83 青LED
【発明の属する技術分野】
この発明は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置およびプログラムに関する。
【0002】
【従来の技術】
従来、この種のコード読取装置としては、様々なものが提案されて実用化されているが、赤色等の照明光をバーコードに照射することによってバーコードを読み取るものとしては、例えば、赤色LED、緑色LEDを有する2つの光源のうち、先ず、赤色LEDを通電して赤色光をバーコードに照射させ、その反射光を受光してバーコードを読み取ると共に、その通電時間をタイマにて計時し、一定時間が経過すると、赤色LEDから緑色LEDに切換え通電させてその通電時間をタイマにて計時する動作を行うようにしたバーコード読取装置が知られている(特許文献1参照)。
【0003】
【特許文献1】
特開平06−309486号公報
【0004】
【発明が解決しようとする課題】
この種のバーコード読取装置は、バーコードを構成するバーの色や隣接するバーの間部分の色が異なる場合でも、赤色LEDと緑色LEDと光源を切換えることによって認識率を高めることが可能となるが、例えば、定型的なバーコードを読み取る場合であっても、そのバーコードにとっては不要な色のLEDまでも通電することになり、無駄な時間を要し、効率の良い読み取りを実現することが困難となる等の問題があった。
ところで、バーコードを照明する光源の品質や劣化等によってその輝度が“ばらつき”、輝度むら(照明むら)が起きているような場合があるが、このような光源をそのまま使用してバーコードの読み取りを行うと、認識率が大幅に低下してしまうという問題があった。
【0005】
第1の発明の課題は、異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色でコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
第2の発明の課題は、異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測し、実際にコードを読み取る場合には、明度差の大きい順に照明色を切換えながらコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
第3の発明の課題は、コードパターンを照明する光源の照明むらを事前に計測し、コードパターンを2値化する為の閾値を照明むらに基づいて補正することで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
【0006】
【課題を解決するための手段】
請求項1記載の発明(第1の発明)は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する判別手段と、この判別手段によって基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始させる制御手段とを具備するものである。
更に、コンピュータに対して、上述した請求項1記載の発明に示した主要機能を実現させるためのプログラムを提供する(請求項6記載の発明)。
【0007】
したがって、請求項1、6記載の発明は、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて読取動作を開始するようにしたから、照明色毎に明度差を事前計測している過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で実際の読取動作を行うことができ、無駄な照明や時間が不要となり、認識率の大幅な向上と同時に処理時間の短縮化を実現することが可能となる。
【0008】
なお、請求項1記載の発明は次のようなものであってもよい。
赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにすれば(請求項3記載の発明)、赤、緑、青の3種類の光源を使用して多数の照明色を発生させることができる為、あらゆるコードパターンにも対応可能となる。
また、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを2値化する為の閾値を当該明度差に基づいて決定するようにすれば(請求項4記載の発明)、例えば、明度差の1/2を閾値とすることにより処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【0009】
請求項2記載の発明(第2の発明)は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取るコード読取装置であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する保持手段と、この保持手段内に保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す制御手段とを具備するものである。
更に、コンピュータに対して、上述した請求項2記載の発明に示した主要機能を実現させるためのプログラムを提供する(請求項7記載の発明)。
【0010】
したがって、請求項2、7記載の発明は、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差をその時の照明色に対応付けて記憶保持しておき、この照明色毎の明度差をその大きい順に指定しながら指定明度差を生じさせた照明色を発生させて読取動作を開始した際に、この照明色では正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返すようにしたから、実際に読み取りを行う場合には、明度差の大きい順に照明色を切換えながら行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0011】
なお、請求項2記載の発明は、上述した請求項1記載の発明と同様、赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにしてもよく(請求項3記載の発明)、また、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを2値化する為の閾値を当該明度差に基づいて決定するようにしてもよい(請求項4記載の発明)。
【0012】
請求項5記載の発明(第3の発明)は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取ると共に、このコードパターンを予め設定されている閾値に基づいて2値化するコード読取装置であって、実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する検出手段と、この検出手段によって検出された照明むらに基づいて前記2値化用の閾値を補正する補正手段とを具備するものである。
更に、コンピュータに対して、上述した請求項5記載の発明に示した主要機能を実現させるためのプログラムを提供する(請求項8記載の発明)。
【0013】
したがって、請求項5、8記載の発明は、実際に読み取りを開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて2値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0014】
【発明の実施の形態】
(第1実施形態)
以下、図1〜図4を参照してこの発明の第1実施形態を説明する。
図1は、この実施形態におけるバーコード読取装置の基本的構成要素を示したブロック図である。
このバーコード読取装置は、その基本的な構成要素としてCPU1、CMOSセンサモジュール2、CMOSセンサI/F(インターフェイス)3、RAM4、表示部5等を有する構成となっている。ここで、CPU1は、オペレーティングシステムや各種アプリケーションソフトにしたがってこのバーコード読取装置の全体動作を制御する中央演算処理装置であり、スキャン開始スイッチ(トリガーキー)6が操作されると、CMOSセンサモジュール2の電源を投入する他に、LED制御部7を介してCMOSセンサモジュール2内の照明用LED8を通電させて2次元バーコード(2Dバーコード)の読み取りを開始させる。この場合、CMOSセンサ9は、その反射光を受光して光電変換するが、これによって得られたスキャンデータは、MOSセンサI/F3を介してRAM4内に格納される。このスキャンデータ(256階調のデータ)は、2階調のデータに変換されてデーコード処理される。
【0015】
このようなバーコード読取装置において、例えば、2Dバーコードを構成する黒のバーが赤色で印刷されている場合には、赤色LEDを使用して照明すると、背景部分の白と赤との明度差が小さくなる為、256階調のデータを2階調のデータに変換する際に、その閾値の決定が困難となる。そこで、この第1実施形態においては、実際に2Dバーコードの読み取りを開始する前に、試験的な発光を実施し、異なる複数の照明色を順次切換え発生させながら、照明色毎に明度差を事前に計測すると共に、この計測過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で2Dバーコードを実際に読み取ってデコード処理する為の実読み取り動作を開始するようにしている。
【0016】
図2は、CMOSセンサモジュール2内に設けられている照明用LED8の構成を示した図である。
照明用LED8は、照明色が異なる複数の光源部として、赤LED81、緑LED82、青LED83を有し、各色のLED81〜83は、それぞれ2個ずつ設けられている。すなわち、図中、右側おいてその上から順に、青LED83、緑LED82、赤LED81が縦方向に配置され、また、左側においてもその上から順に、赤LED81、緑LED82、青LED83が縦方向に配置されている構成となっている。ここで、CPU1は、実際に2Dバーコードの読み取りを開始する前の試験発光時において、赤LED81、緑LED82、青LED83を順次点灯させて、その単色光を切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるように照明用LED8の点灯/消灯を制御する。
【0017】
次に、この第1実施形態におけるコード読取装置の動作概念を図3および図4に示すフローチャートを参照して説明する。ここで、これらのフローチャートに記述されている各機能は、読み取り可能なプログラムコードの形態で格納されており、このプログラムコードにしたがった動作を逐次実行する。また、伝送媒体を介して伝送されてきた上述のプログラムコードにしたがった動作を逐次実行することもできる。このことは後述する他の実施形態においても同様であり、記録媒体の他、伝送媒体を介して外部供給されたプログラム/データを利用してこの実施形態特有の動作を実行することもできる。
【0018】
図3および図4は、スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャートである。
先ず、CPU1は、スキャン開始スイッチ6が操作されると、CMOSセンサモジュール2の電源を投入すると共に、LED制御部7を介してCMOSセンサモジュール2内の照明用LED8を通電させるが、その際、実際に2Dバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測する試験発光処理を実行する。
すなわち、CPU1は、先ず、図2(A)に示すように、一対の赤LED81を点灯させた後(ステップA1)、CMOSセンサ9によって光電変換されたスキャンデータ(2Dバーコードに中央付近における数ライン分のスキャンデータ)を取り込む(ステップA2)。ここで、取り込みデータとして、バーコードに中央付近における数ライン分のスキャンデータに限ったのは、全体の処理時間を極力短くする為である(以下、同様)。
【0019】
このようにしてスキャンデータを取り込んだ後、CPU1は、この受光状態を解析することによってそのコード部分とその背景部分との明度差を算出し(ステップA3)、この明度差が基準値以上か否かを判別する(ステップA4)。この基準値は、赤LED81に対応して予め初期設定されている2値化用の閾値である(以下、同様、基準値は2値化用の閾値を示す)。
ここで、明度差が基準値以上であれば、この時点で試験発光処理を中止し、スキャンデータを2値化する為の閾値をこの明度差に基づいて決定する(図4のステップA31)。この場合、例えば、明度差の1/2を赤LED対応の閾値として決定するようにしている。その後、CPU1は、通常と同様、スキャンデータのデーコード処理を開始する(ステップA32)。
【0020】
一方、明度差が基準値未満の場合には(ステップA4)、赤LED81を消灯させた後に(ステップA5)、図2(B)に示すように、一対の緑LED82を点灯させる(ステップA6)。この状態において、上述の場合と同様に、2Dバーコードに中央付近における数ライン分のスキャンデータを取り込んだ後に(ステップA7)、この受光状態を解析することによって明度差演算を行い(ステップA8)、この明度差が緑LED対応の基準値以上か否かを判別する(ステップA9)。ここで、明度差が基準値以上であれば、この時点で試験発光処理を中止し、この明度差に基づいて緑LED対応の閾値を決定した後に(ステップA31)、デーコード処理を開始するが(ステップA32)、明度差が基準値未満であれば(ステップA9)、緑LED82を消灯した後(ステップA10)、図2(C)に示すように、一対の青LED83を点灯させる(ステップA11)。
【0021】
以下、同様に、CPU1は、スキャンデータを取り込んだ後に(ステップA12)、明度差演算を行い(ステップA13)、この明度差が青LED対応の基準値以上以上であれば(ステップA14)、この時点で試験発光処理を中止して青LED対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップ32)。
このようにして赤LED81、緑LED82、青LED83を順次点灯させながらその時の明度差を計測してその基準値と比較する処理を順次行うが、最後の青LED83を点灯した状態でも、この明度差がその基準値未満であることが検出された場合には(ステップA14)、青LED83を消灯させる(ステップA15)。
【0022】
その後、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させながら上述と同様の試験発光処理を繰り返す動作に移る。
先ず、図2(D)に示すように、赤LED81および緑LED82を同時に点灯させる(図4のステップA16)。これによって照明色は、赤、緑の混合色となり、この混合色によってスキャンされたデータを取り込んだ後に(ステップA17)、明度差演算を行い(ステップA18)、この明度差が当該混合色対応の基準値以上であれば(ステップA19)、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップA32)。また、この明度差が赤、緑の混合色対応の基準値未満であれば(ステップA19)、赤LED81のみを消灯した後に(ステップA20)、青LED83を点灯させる(ステップA21)。
【0023】
これによって図2(E)に示すように、緑LED82、青LED83が同時点灯された状態となる。この緑と青の混合色によってスキャンされたデータを取り込んだ後(ステップA22)、明度差演算を行い(ステップA23)、この明度差が当該混合色対応の基準値以上であれば(ステップA24)、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップA32)。また、この明度差が緑、青の混合色対応の基準値未満であれば(ステップA24)、緑LED82のみを消灯した後に(ステップA25)、赤LED81を点灯させる(ステップA26)。
【0024】
これによって図2(F)に示すように、赤LED81、青LED83が同時点灯された状態となり、この赤と青の混合色によってスキャンされたデータを取り込んだ後(ステップA27)、明度差演算を行い(ステップA28)、この明度差が当該混合色対応の基準値以上であれば(ステップA29)、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に(ステップA31)、デーコード処理を開始する(ステップA32)。また、この明度差が赤、青の混合色対応の基準値未満であれば(ステップA29)、赤LED81、青LED83を消灯した後(ステップA30)、エラー終了となる。
【0025】
以上のように、この第1実施形態のコード読取装置におけるCPU1は、実際に2Dバーコードの読み取りを開始する前に、CMOSセンサモジュール2内の照明用LED8を制御して、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色対応の基準値以上であることが判別された場合には、その時点で当該明度差を生じさせた照明色を発生させて2Dバーコードの読取動作を開始するようにしたから、照明色毎に明度差を事前計測している過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で2Dバーコードの読取を行うことができ、無駄な照明や時間が不要となり、認識率の大幅な向上と同時に処理時間の短縮化を実現することが可能となる。
【0026】
この場合、赤LED81、緑LED82、青LED83を所定の順番で切り換え発生させた後に、赤LED81、緑LED82、青LED83の点灯を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにしたから、赤LED81、緑LED82、青LED83の3種類の光源を使用して多数の照明色を発生させることができるようになり、あらゆる色の2Dバーコードにも対応可能となる。
また、バーコードの読取動作を開始した際の照明色の明度差を参照し、2値化用の閾値を当該明度差に基づいて決定するようにしたから、処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【0027】
なお、上述した第1実施形態においては、異なる複数の照明色を順次切り替え発生させる際に、赤、緑、青の単一色を順次発生させた後、赤緑、青緑、赤青の混合色を順次発生させるようにしたが、その発生順位は、これに限定されず、任意であり、更には、3色を混合した混合色で照明するようにしてもよい。
また、上述した第1実施形態においては、全ての照明色を切換え発生させても最終的に基準値未満であることが検出された場合にエラー終了としたが、それまでに計測された明度差のうち、最も基準値に近い明度差を生じさせた照明色を実読取用の照明色として選択するようにしてもよい。
【0028】
一方、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する機能と、基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始する機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0029】
(第2実施形態)
以下、この発明の第2実施形態について図5〜図8を参照して説明する。なお、上述した第1実施形態においては、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色で2Dバーコードの読取動作を開始するようにしたが、この第2実施形態においては、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測してこの計測結果を保存しておき、実際に2Dバーコードを読み取る場合には、明度差の大きい順に照明色を切換えながら2Dバーコードの読取を行うようにしたものである。
ここで、両実施形態において基本的に同一のものは、同一符号を付して示し、その説明を省略する他、以下、第2実施形態の特徴部分を中心に説明するものとする。
【0030】
図5(A)は、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測した計測結果が発光パターン情報41としてRAM4内に記録保持された状態を示した図である。
すなわち、発光パターン情報41は、「照明色」、「明度差」、「スキャンデータ」の各項目を有する構成となっている。この場合、発光パターン情報41は、計測完了直後には、単一色(赤、緑、青)の明度差、混合色(赤緑、青緑、赤青)の明度差の順となっているが、計測完了後においては、明度差の大きい順にその内容が並び替えられる。なお、図5(A)は、ソート前の発光パターン情報41の内容を例示した図、(B)は、ソート後の発光パターン情報41の内容を例示した図である。
【0031】
図6および図7は、スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャートである。
先ず、CPU1は、上述した第1実施形態と同様、スキャン開始スイッチ6が操作されると、CMOSセンサモジュール2の電源を投入すると共に、LED制御部7を介してCMOSセンサモジュール2内の照明用LED8を通電させるが、その際、実際に2Dバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測する試験発光処理を実行する。
【0032】
すなわち、CPU1は、先ず、図2(A)に示すように、赤LED81を点灯させた後に(ステップB1)、2Dバーコードに中央付近における数ライン分のスキャンデータを取り込み(ステップB2)、この受光状態を解析することによってそのコード部分とその背景部分との明度差を算出する(ステップB3)。
これによって算出された明度差と当該照明色(赤)とスキャンデータとを対応付けた情報を発光パターン情報41としてRAM4内に記憶保持させる(ステップB4)。その後、この赤LED81を消灯させる(ステップB5)。
【0033】
次に、図2(B)に示すように、緑LED82を点灯させた状態において(ステップB6)、スキャンデータを取り込むと共に(ステップB7)、受光状態を解析することによって明度差演算を行い(ステップB8)、この明度差と当該照明色(緑)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB9)、この緑LED82を消灯させる(ステップB10)。更に、図2(C)に示すように、青LED83を点灯させた後(ステップB11)、スキャンデータを取り込み(ステップB12)、明度差演算を行い(ステップB13)、この明度差と当該照明色(青)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB14)、この青LED83を消灯させる(ステップB15)。
【0034】
このようにして赤LED81、緑LED82、青LED83を順次点灯させながらその時の明度差を計測して発光パターン情報41として記憶保持する処理が終了すると、以下、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させながら上述と同様の計測を繰り返す。
すなわち、図2(D)に示すように、赤LED81および緑LED82を同時に点灯させ(図7のステップB16)、この混合色によってスキャンしたデータを取り込み(ステップB17)、明度差演算を行い(ステップB18)、この明度差と当該照明色(赤緑)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB19)、この赤LED81を消灯させる(ステップB20)。
【0035】
次に、青LED83を点灯させる(ステップB21)。すると、図2(E)に示すように、緑LED82、青LED83が同時点灯の状態となり、この混合色によってスキャンしたデータを取り込み(ステップB22)、明度差演算を行い(ステップB23)、この明度差と当該照明色(緑青)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後(ステップB24)、この緑LED82を消灯させる(ステップB25)。
【0036】
更に、赤LED81を点灯させると(ステップB26)、図2(F)に示すように、赤LED81、青LED83が同時点灯の状態となり、この混合色によってスキャンしたデータを取り込み(ステップB27)、明度差演算を行い(ステップB28)、この明度差と当該照明色(赤青)とスキャンデータとを発光パターン情報41としてRAM4内に記憶保持した後に(ステップB29)、赤LED81および青LED83を消灯させる(ステップB30)。
このようにして発光パターン情報41をRAM4内に記録保持する処理が終了すると、上述のようにして得られた各スキャンデータを発光パターン情報41から順次読み出しながらデコードする処理に移る(ステップB31)。
【0037】
図6は、この場合におけるデコード処理を示したフローチャートである。
先ず、CPU1は、RAM4内に記憶保持されている発光パターン情報41をアクセスし、各明度差の大きさを比較しながら明度差の大きい順(昇順)にその内容を並び替えるソート処理を実行する(ステップC1)。そして、このRAM4内の先頭領域から明度差の大きい順に発光パターン情報を1つ読み出してその照明色を特定すると共に、赤LED81、緑LED82、青LED83のうち、この照明色に対応するLEDを選択指定して点灯させるが、この場合、照明色が単色であれば、1種類のLED、混合色であれば、2種類のLEDを同時点灯させる(ステップC2)。
【0038】
そして、この明度差に基づいて2値化用閾値を決定する(ステップC3)。この場合、例えば、明度差の1/2の値を当該照明色対応の2値化用閾値として決定する。その後、当該照明色対応のスキャンデータをデコードし(ステップC4)、正常にデコードすることができたか否かを調べる(ステップC5)。ここで、デーコードエラーが検出された場合には、RAM4内から明度差が次に大きい発光パターン情報41を1つ読み出し(ステップC6)、その閾値を決定し(ステップC3)、デコード処理を行う(ステップC4)。以下、正常デコードが検出されるまで、RAM4内から明度差を順次読み出しながら上述の動作を繰り返す(ステップC4〜C6)。
【0039】
以上のように、この第2実施形態のコード読取装置におけるCPU1は、実際に2Dバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に明度差を検出し、この明度差をその時の照明色に対応付けて発光パターン情報41として記憶保持した後に、この発光パターン情報41の内容をその明度差の大きい順に並び換え、明度差が大きい順に発光パターン情報41を読み出し、この発光パターン情報41内の照明色で示されるLEDを点灯させて2Dバーコードの読取動作を開始するが、この照明色では2Dバーコードを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差の発光パターン情報41を読み出しながらその照明色を切換発生させる動作を繰返すようにしたから、実際にコードを読み取る場合には、明度差の大きい順に照明色を切換えながら2Dバーコードの読取を行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0040】
この場合、上述した第1実施形態と同様に、赤LED81、緑LED82、青LED83の3種類の光源を使用して多数の照明色を発生させることができる為、あらゆる2Dバーコードにも対応可能となる。
また、バーコードの読取動作を開始した際の照明色の明度差を参照し、2値化用の閾値を当該明度差に基づいて決定するようしたから、処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【0041】
なお、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する機能と、保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0042】
(第3実施形態)
以下、この発明の第3実施形態について図9〜図12を参照して説明する。
この第3実施形態においては、2Dバーコードを照明する光源の照明むらを事前に計測し、それを2値化する為の閾値を照明むらに基づいて補正するようにしたものである。
ここで、第1および第3実施形態において基本的に同一のものは、同一符号を付して示し、その説明は省略するものとする。
【0043】
図9は、照明用LED8に輝度むらが発生している場合に、この照明用LED8からの照明光を所定の白色体に照射した際の受光波形を示した図である。
すなわち、左右に配置されている一対の照明用LED8に輝度むらが発生し、光源付近に比べてその周辺の照明が極端に暗い場合に、この照明用LED8からの照明光を所定の白色体(例えば、白色紙や白色ボード等)に照射し、この反射光を受光するとその受光波形は、図9に示すように、両光源付近だけが高くなっている2山状の波形となる。
【0044】
図10は、輝度むらが発生していない正常な照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図である。この場合における読取波形の高さは、略均一となっている為に、予め設定されている閾値レベルによってデータを正常に2値化することが可能となる。
また、図11は、輝度むらが発生している照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図である。この場合における読取波形は、図9で示した受光波形のように、両光源付近に比べてその周辺の高さが極端に低くなり、これを図10で示した閾値レベルによって2値化しようとしても、正常に2値化することができなくなる。
そこで、この第3実施形態においては、実際にコード読取を開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むら(輝度むら)を検出し、照明むらに基づいて閾値を補正するようにしている。
【0045】
図12は、照明むらに基づいて閾値を事前補正する処理を示したフローチャートである。
先ず、CPU1は、照明用LED8に輝度むらが発生している場合に、この照明用LED8からの照明光を所定の白色体に対して照射すると共に(ステップD1)、この反射光を受光し(ステップD2)、この受光波形に基づいて照明むらを検出し(ステップD3)、照明むらに応じた波形を時間軸に沿って順次数値化する(ステップD4)。そして、予め設定されている2値化用の閾値を読み出し(ステップD5)、この設定閾値を上述のようにして数値化した照明むらの数値データに基づいて補正する(ステップD6)。
【0046】
これによって、図11で示した補正前の閾値レベルに対して補正後における閾値のレベル変化は、光源の照明むらを反映したものとなる。すなわち、例えば、図9に示したような照明むらが生じている光源の場合、補正後の閾値のレベル変化は、図11に示す如く、照明むらを反映した2山状の波形となり、図9の照明むらの読取波形に合わせたものとなる為、スキャンデータが照明むらによって影響されたとしても、スキャンデータを正常に2値化することが可能となる。
【0047】
以上のように、この第3実施形態のコード読取装置においてCPU1は、実際に2Dバーコードの読み取りを開始する前に、照明用LED8からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて2値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【0048】
なお、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する機能と、コードパターンを2値化する為の閾値を前記検出された照明むらに基づいて補正する機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0049】
なお、上述した第1〜第3実施形態においては、2Dバーコードを読取対象としたが、1次元バーコードあるいはその他の2次元コード(PDF417コード、QRコード等)を読み取るようにしてもよい。
また、上述した第1〜第3実施形態においては、撮像素子としてCMOSセンサを使用したが、CCD撮像素子を使用してもよい。
【0050】
【発明の効果】
第1の発明(請求項1記載の発明)によれば、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させる毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて読取動作を開始するようにしたから、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色で読取を行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
第2の発明(請求項2記載の発明)によれば、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、その受光状態に基づいてコード部分とその背景部分との明度差を検出し、この明度差をその時の照明色に対応付けて記憶保持しておき、この照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を発生させて読取動作を開始した際に、この照明色では正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返すようにしたから、実際に読み取りを行う場合には、明度差の大きい順に照明色を切換えながら行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
第3の発明(請求項5記載の発明)によれば、実際に読み取りを開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて2値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【図面の簡単な説明】
【図1】コード読取装置の基本的構成要素を示したブロック図。
【図2】CMOSセンサモジュール2内に設けられている照明用LED8の構成を示した図。
【図3】スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャート。
【図4】図3に続く、フローチャート。
【図5】第2実施形態において、(A)は、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測した計測結果が発光パターン情報41としてRAM4内に記録保持された状態を示した図、(B)は、明度差の大きい順に並び替えたソート後の発光パターン情報41の内容を例示した図。
【図6】第2実施形態において、スキャン開始スイッチ6の操作に応答して実行開始される動作を示したフローチャート。
【図7】図6に続く、フローチャート。
【図8】第2実施形態におけるデコード処理を示したフローチャート。
【図9】第3実施形態において、照明用LED8に輝度むらが発生している場合に、この照明用LED8からの照明光を所定の白色体に照射した際の受光波形を示した図。
【図10】第3実施形態において、輝度むらが発生していない正常な照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図。
【図11】第3実施形態において、輝度むらが発生している照明用LED8を使用して2Dバーコードを読み取った場合の読取波形を例示した図。
【図12】第3実施形態において、照明むらに基づいて閾値を事前補正する処理を示したフローチャート。
【符号の説明】
1 CPU
2 CMOSセンサモジュール
3 CMOSセンサI/F
4 RAM
6 スキャン開始スイッチ
7 LED制御部
8 照明用LED
9 CMOSセンサ
41 発光パターン情報
81 赤LED
82 緑LED
83 青LED
Claims (8)
- 読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置であって、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、
この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、
この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する判別手段と、
この判別手段によって基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始させる制御手段と、
を具備したことを特徴とするコード読取装置。 - 読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取るコード読取装置であって、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、
この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、
この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する保持手段と、
この保持手段内に保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す制御手段と、
を具備したことを特徴とするコード読取装置。 - 前記切換手段は、赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させる切換え動作を行う、
ようにしたことを特徴とする請求項1あるいは請求項2記載のコード読取装置。 - 前記制御手段は、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを2値化する為の閾値を当該明度差に基づいて決定する、
ようにしたことを特徴とする請求項1あるいは請求項2記載のコード読取装置。 - 読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取ると共に、このコードパターンを予め設定されている閾値に基づいて2値化するコード読取装置であって、
実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する検出手段と、
この検出手段によって検出された照明むらに基づいて前記2値化用の閾値を補正する補正手段と、
を具備したことを特徴とするコード読取装置。 - コンピュータに対して、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、
複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、
照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する機能と、
基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始する機能と、
を実現させるためのプログラム。 - コンピュータに対して、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、
複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、
照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する機能と、
保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す機能と、
を実現させるためのプログラム。 - コンピュータに対して、
実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する機能と、
コードパターンを2値化する為の閾値を前記検出された照明むらに基づいて補正する機能と、
を実現させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003182099A JP2005018391A (ja) | 2003-06-26 | 2003-06-26 | コード読取装置およびプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003182099A JP2005018391A (ja) | 2003-06-26 | 2003-06-26 | コード読取装置およびプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2005018391A true JP2005018391A (ja) | 2005-01-20 |
Family
ID=34182574
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003182099A Pending JP2005018391A (ja) | 2003-06-26 | 2003-06-26 | コード読取装置およびプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2005018391A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009169931A (ja) * | 2007-12-20 | 2009-07-30 | Denso Wave Inc | 光学的情報読取装置 |
| WO2010018351A3 (fr) * | 2008-08-14 | 2010-04-08 | Tpl Vision | Systeme d'eclairage pour la mise en contraste de codes graves |
| US7871003B2 (en) | 2006-07-20 | 2011-01-18 | Denso Wave Incorporated | Information reader for optically reading code on object |
| JP2012164153A (ja) * | 2011-02-07 | 2012-08-30 | Denso Wave Inc | 光学情報読み取り装置 |
| CN111460848A (zh) * | 2020-04-01 | 2020-07-28 | 福州符号信息科技有限公司 | 能够识别多种材质条码及彩色条码的识读设备及识别方法 |
| CN115545056A (zh) * | 2022-06-29 | 2022-12-30 | 苏州宇量电池有限公司 | 一种提高机器视觉在高反光背景下识别准确率的方法 |
| JP2023113222A (ja) * | 2022-02-03 | 2023-08-16 | カシオ計算機株式会社 | 端末装置、制御方法及びプログラム |
-
2003
- 2003-06-26 JP JP2003182099A patent/JP2005018391A/ja active Pending
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7871003B2 (en) | 2006-07-20 | 2011-01-18 | Denso Wave Incorporated | Information reader for optically reading code on object |
| DE102007032589B4 (de) * | 2006-07-20 | 2013-05-29 | Denso Wave Inc. | Informationslesegerät zum optischen Lesen eines Codes auf einem Objekt |
| JP2009169931A (ja) * | 2007-12-20 | 2009-07-30 | Denso Wave Inc | 光学的情報読取装置 |
| WO2010018351A3 (fr) * | 2008-08-14 | 2010-04-08 | Tpl Vision | Systeme d'eclairage pour la mise en contraste de codes graves |
| US8302863B2 (en) | 2008-08-14 | 2012-11-06 | Tpl Vision | Lighting system for contrasting engraved codes |
| JP2012164153A (ja) * | 2011-02-07 | 2012-08-30 | Denso Wave Inc | 光学情報読み取り装置 |
| CN111460848A (zh) * | 2020-04-01 | 2020-07-28 | 福州符号信息科技有限公司 | 能够识别多种材质条码及彩色条码的识读设备及识别方法 |
| CN111460848B (zh) * | 2020-04-01 | 2023-05-02 | 福州符号信息科技有限公司 | 能够识别多种材质条码及彩色条码的识读设备及识别方法 |
| JP2023113222A (ja) * | 2022-02-03 | 2023-08-16 | カシオ計算機株式会社 | 端末装置、制御方法及びプログラム |
| JP7830972B2 (ja) | 2022-02-03 | 2026-03-17 | カシオ計算機株式会社 | 端末装置、制御方法及びプログラム |
| CN115545056A (zh) * | 2022-06-29 | 2022-12-30 | 苏州宇量电池有限公司 | 一种提高机器视觉在高反光背景下识别准确率的方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4059173B2 (ja) | 光学的情報読取装置および光学的情報の読取方法 | |
| CN102473236B (zh) | 设定条形码扫描器中的光电检测器阵列的曝光量的方法 | |
| US20070001014A1 (en) | Multi-format bar code reader | |
| JPH08287181A (ja) | バーコード読取装置 | |
| GB2313441A (en) | Power conserving scanning method | |
| JP2005018391A (ja) | コード読取装置およびプログラム | |
| JP5358384B2 (ja) | 光学的情報読取装置及びその撮像条件設定方法 | |
| US8718370B2 (en) | Optical information-reading apparatus and optical information-reading method | |
| JP2018136858A (ja) | 光学的情報読取装置 | |
| JPS61233876A (ja) | 光学式読取装置 | |
| JPH05151381A (ja) | バーコード読取装置 | |
| JP2021015489A (ja) | 画像解析装置、画像解析システム、画像解析方法及び画像解析プログラム | |
| JP5183612B2 (ja) | シンボル認識装置及びその制御プログラム | |
| JP3711725B2 (ja) | 画像認識装置 | |
| JP5896488B2 (ja) | バーコード読取装置、バーコード読取方法及びバーコード読取プログラム | |
| JP3918713B2 (ja) | 光学的情報読取装置 | |
| JP5533714B2 (ja) | 光学情報読み取り装置 | |
| JP2003006568A (ja) | エリアコード読取装置、及びエリアコード読取方法 | |
| JP2005018649A (ja) | 2次元コードの読取方法および2次元コード読取装置 | |
| JP2012009058A (ja) | データコード読取装置及びその方法 | |
| JPH0855179A (ja) | 光学読取装置 | |
| JP5380613B2 (ja) | シンボル認識装置及びその制御プログラム | |
| JP2006134160A (ja) | 光学式情報読取装置 | |
| JP4622992B2 (ja) | 光学情報読取装置 | |
| JP2010097317A (ja) | バーコード読取方法およびバーコード読取装置 |