(57)【要約】【課題】異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色でコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにする。【解決手段】ＣＰＵ１は、実際に２Ｄバーコードの読み取りを開始する前に、ＣＭＯＳセンサモジュール２内の照明用ＬＥＤ８を制御して、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて２Ｄバーコードの読取動作を開始する。【選択図】  図１
2005018391.tif 000002
【特許請求の範囲】
【請求項１】
読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置であって、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、
この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、
この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する判別手段と、
この判別手段によって基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始させる制御手段と、
を具備したことを特徴とするコード読取装置。
【請求項２】
読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取るコード読取装置であって、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、
この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、
この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する保持手段と、
この保持手段内に保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す制御手段と、
を具備したことを特徴とするコード読取装置。
【請求項３】
前記切換手段は、赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させる切換え動作を行う、
ようにしたことを特徴とする請求項１あるいは請求項２記載のコード読取装置。
【請求項４】
前記制御手段は、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを２値化する為の閾値を当該明度差に基づいて決定する、
ようにしたことを特徴とする請求項１あるいは請求項２記載のコード読取装置。
【請求項５】
読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取ると共に、このコードパターンを予め設定されている閾値に基づいて２値化するコード読取装置であって、
実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する検出手段と、
この検出手段によって検出された照明むらに基づいて前記２値化用の閾値を補正する補正手段と、
を具備したことを特徴とするコード読取装置。
【請求項６】
コンピュータに対して、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、
複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、
照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する機能と、
基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始する機能と、
を実現させるためのプログラム。
【請求項７】
コンピュータに対して、
実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、
複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、
照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する機能と、
保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す機能と、
を実現させるためのプログラム。
【請求項８】
コンピュータに対して、
実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する機能と、
コードパターンを２値化する為の閾値を前記検出された照明むらに基づいて補正する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置およびプログラムに関する。
【０００２】
【従来の技術】
従来、この種のコード読取装置としては、様々なものが提案されて実用化されているが、赤色等の照明光をバーコードに照射することによってバーコードを読み取るものとしては、例えば、赤色ＬＥＤ、緑色ＬＥＤを有する２つの光源のうち、先ず、赤色ＬＥＤを通電して赤色光をバーコードに照射させ、その反射光を受光してバーコードを読み取ると共に、その通電時間をタイマにて計時し、一定時間が経過すると、赤色ＬＥＤから緑色ＬＥＤに切換え通電させてその通電時間をタイマにて計時する動作を行うようにしたバーコード読取装置が知られている（特許文献１参照）。
【０００３】
【特許文献１】
特開平０６−３０９４８６号公報
【０００４】
【発明が解決しようとする課題】
この種のバーコード読取装置は、バーコードを構成するバーの色や隣接するバーの間部分の色が異なる場合でも、赤色ＬＥＤと緑色ＬＥＤと光源を切換えることによって認識率を高めることが可能となるが、例えば、定型的なバーコードを読み取る場合であっても、そのバーコードにとっては不要な色のＬＥＤまでも通電することになり、無駄な時間を要し、効率の良い読み取りを実現することが困難となる等の問題があった。
ところで、バーコードを照明する光源の品質や劣化等によってその輝度が“ばらつき”、輝度むら（照明むら）が起きているような場合があるが、このような光源をそのまま使用してバーコードの読み取りを行うと、認識率が大幅に低下してしまうという問題があった。
【０００５】
第１の発明の課題は、異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色でコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
第２の発明の課題は、異なる複数の照明色を順次切り替え発生させながら、照明色毎に明度差を事前に計測し、実際にコードを読み取る場合には、明度差の大きい順に照明色を切換えながらコードパターンの読取を行うことで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
第３の発明の課題は、コードパターンを照明する光源の照明むらを事前に計測し、コードパターンを２値化する為の閾値を照明むらに基づいて補正することで、認識率の向上と共に処理時間の短縮化を実現できるようにすることである。
【０００６】
【課題を解決するための手段】
請求項１記載の発明（第１の発明）は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取って処理するコード読取装置であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する判別手段と、この判別手段によって基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始させる制御手段とを具備するものである。
更に、コンピュータに対して、上述した請求項１記載の発明に示した主要機能を実現させるためのプログラムを提供する（請求項６記載の発明）。
【０００７】
したがって、請求項１、６記載の発明は、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて読取動作を開始するようにしたから、照明色毎に明度差を事前計測している過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で実際の読取動作を行うことができ、無駄な照明や時間が不要となり、認識率の大幅な向上と同時に処理時間の短縮化を実現することが可能となる。
【０００８】
なお、請求項１記載の発明は次のようなものであってもよい。
赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにすれば（請求項３記載の発明）、赤、緑、青の３種類の光源を使用して多数の照明色を発生させることができる為、あらゆるコードパターンにも対応可能となる。
また、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを２値化する為の閾値を当該明度差に基づいて決定するようにすれば（請求項４記載の発明）、例えば、明度差の１／２を閾値とすることにより処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【０００９】
請求項２記載の発明（第２の発明）は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取るコード読取装置であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生させる切換手段と、この切換手段によって複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する検出手段と、この検出手段によって照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する保持手段と、この保持手段内に保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す制御手段とを具備するものである。
更に、コンピュータに対して、上述した請求項２記載の発明に示した主要機能を実現させるためのプログラムを提供する（請求項７記載の発明）。
【００１０】
したがって、請求項２、７記載の発明は、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差をその時の照明色に対応付けて記憶保持しておき、この照明色毎の明度差をその大きい順に指定しながら指定明度差を生じさせた照明色を発生させて読取動作を開始した際に、この照明色では正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返すようにしたから、実際に読み取りを行う場合には、明度差の大きい順に照明色を切換えながら行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【００１１】
なお、請求項２記載の発明は、上述した請求項１記載の発明と同様、赤、緑、青の単色光を所定の順番で切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにしてもよく（請求項３記載の発明）、また、コードパターンの読取動作を開始した際の照明色の明度差を参照し、コードパターンを２値化する為の閾値を当該明度差に基づいて決定するようにしてもよい（請求項４記載の発明）。
【００１２】
請求項５記載の発明（第３の発明）は、読取対象物に付加されているコードパターンを照明し、その反射光を受光することによってコードパターンを読み取ると共に、このコードパターンを予め設定されている閾値に基づいて２値化するコード読取装置であって、実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する検出手段と、この検出手段によって検出された照明むらに基づいて前記２値化用の閾値を補正する補正手段とを具備するものである。
更に、コンピュータに対して、上述した請求項５記載の発明に示した主要機能を実現させるためのプログラムを提供する（請求項８記載の発明）。
【００１３】
したがって、請求項５、８記載の発明は、実際に読み取りを開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて２値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【００１４】
【発明の実施の形態】
（第１実施形態）
以下、図１〜図４を参照してこの発明の第１実施形態を説明する。
図１は、この実施形態におけるバーコード読取装置の基本的構成要素を示したブロック図である。
このバーコード読取装置は、その基本的な構成要素としてＣＰＵ１、ＣＭＯＳセンサモジュール２、ＣＭＯＳセンサＩ／Ｆ（インターフェイス）３、ＲＡＭ４、表示部５等を有する構成となっている。ここで、ＣＰＵ１は、オペレーティングシステムや各種アプリケーションソフトにしたがってこのバーコード読取装置の全体動作を制御する中央演算処理装置であり、スキャン開始スイッチ（トリガーキー）６が操作されると、ＣＭＯＳセンサモジュール２の電源を投入する他に、ＬＥＤ制御部７を介してＣＭＯＳセンサモジュール２内の照明用ＬＥＤ８を通電させて２次元バーコード（２Ｄバーコード）の読み取りを開始させる。この場合、ＣＭＯＳセンサ９は、その反射光を受光して光電変換するが、これによって得られたスキャンデータは、ＭＯＳセンサＩ／Ｆ３を介してＲＡＭ４内に格納される。このスキャンデータ（２５６階調のデータ）は、２階調のデータに変換されてデーコード処理される。
【００１５】
このようなバーコード読取装置において、例えば、２Ｄバーコードを構成する黒のバーが赤色で印刷されている場合には、赤色ＬＥＤを使用して照明すると、背景部分の白と赤との明度差が小さくなる為、２５６階調のデータを２階調のデータに変換する際に、その閾値の決定が困難となる。そこで、この第１実施形態においては、実際に２Ｄバーコードの読み取りを開始する前に、試験的な発光を実施し、異なる複数の照明色を順次切換え発生させながら、照明色毎に明度差を事前に計測すると共に、この計測過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で２Ｄバーコードを実際に読み取ってデコード処理する為の実読み取り動作を開始するようにしている。
【００１６】
図２は、ＣＭＯＳセンサモジュール２内に設けられている照明用ＬＥＤ８の構成を示した図である。
照明用ＬＥＤ８は、照明色が異なる複数の光源部として、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３を有し、各色のＬＥＤ８１〜８３は、それぞれ２個ずつ設けられている。すなわち、図中、右側おいてその上から順に、青ＬＥＤ８３、緑ＬＥＤ８２、赤ＬＥＤ８１が縦方向に配置され、また、左側においてもその上から順に、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３が縦方向に配置されている構成となっている。ここで、ＣＰＵ１は、実際に２Ｄバーコードの読み取りを開始する前の試験発光時において、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３を順次点灯させて、その単色光を切り換え発生させた後に、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるように照明用ＬＥＤ８の点灯／消灯を制御する。
【００１７】
次に、この第１実施形態におけるコード読取装置の動作概念を図３および図４に示すフローチャートを参照して説明する。ここで、これらのフローチャートに記述されている各機能は、読み取り可能なプログラムコードの形態で格納されており、このプログラムコードにしたがった動作を逐次実行する。また、伝送媒体を介して伝送されてきた上述のプログラムコードにしたがった動作を逐次実行することもできる。このことは後述する他の実施形態においても同様であり、記録媒体の他、伝送媒体を介して外部供給されたプログラム／データを利用してこの実施形態特有の動作を実行することもできる。
【００１８】
図３および図４は、スキャン開始スイッチ６の操作に応答して実行開始される動作を示したフローチャートである。
先ず、ＣＰＵ１は、スキャン開始スイッチ６が操作されると、ＣＭＯＳセンサモジュール２の電源を投入すると共に、ＬＥＤ制御部７を介してＣＭＯＳセンサモジュール２内の照明用ＬＥＤ８を通電させるが、その際、実際に２Ｄバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測する試験発光処理を実行する。
すなわち、ＣＰＵ１は、先ず、図２（Ａ）に示すように、一対の赤ＬＥＤ８１を点灯させた後（ステップＡ１）、ＣＭＯＳセンサ９によって光電変換されたスキャンデータ（２Ｄバーコードに中央付近における数ライン分のスキャンデータ）を取り込む（ステップＡ２）。ここで、取り込みデータとして、バーコードに中央付近における数ライン分のスキャンデータに限ったのは、全体の処理時間を極力短くする為である（以下、同様）。
【００１９】
このようにしてスキャンデータを取り込んだ後、ＣＰＵ１は、この受光状態を解析することによってそのコード部分とその背景部分との明度差を算出し（ステップＡ３）、この明度差が基準値以上か否かを判別する（ステップＡ４）。この基準値は、赤ＬＥＤ８１に対応して予め初期設定されている２値化用の閾値である（以下、同様、基準値は２値化用の閾値を示す）。
ここで、明度差が基準値以上であれば、この時点で試験発光処理を中止し、スキャンデータを２値化する為の閾値をこの明度差に基づいて決定する（図４のステップＡ３１）。この場合、例えば、明度差の１／２を赤ＬＥＤ対応の閾値として決定するようにしている。その後、ＣＰＵ１は、通常と同様、スキャンデータのデーコード処理を開始する（ステップＡ３２）。
【００２０】
一方、明度差が基準値未満の場合には（ステップＡ４）、赤ＬＥＤ８１を消灯させた後に（ステップＡ５）、図２（Ｂ）に示すように、一対の緑ＬＥＤ８２を点灯させる（ステップＡ６）。この状態において、上述の場合と同様に、２Ｄバーコードに中央付近における数ライン分のスキャンデータを取り込んだ後に（ステップＡ７）、この受光状態を解析することによって明度差演算を行い（ステップＡ８）、この明度差が緑ＬＥＤ対応の基準値以上か否かを判別する（ステップＡ９）。ここで、明度差が基準値以上であれば、この時点で試験発光処理を中止し、この明度差に基づいて緑ＬＥＤ対応の閾値を決定した後に（ステップＡ３１）、デーコード処理を開始するが（ステップＡ３２）、明度差が基準値未満であれば（ステップＡ９）、緑ＬＥＤ８２を消灯した後（ステップＡ１０）、図２（Ｃ）に示すように、一対の青ＬＥＤ８３を点灯させる（ステップＡ１１）。
【００２１】
以下、同様に、ＣＰＵ１は、スキャンデータを取り込んだ後に（ステップＡ１２）、明度差演算を行い（ステップＡ１３）、この明度差が青ＬＥＤ対応の基準値以上以上であれば（ステップＡ１４）、この時点で試験発光処理を中止して青ＬＥＤ対応の閾値を決定した後に（ステップＡ３１）、デーコード処理を開始する（ステップ３２）。
このようにして赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３を順次点灯させながらその時の明度差を計測してその基準値と比較する処理を順次行うが、最後の青ＬＥＤ８３を点灯した状態でも、この明度差がその基準値未満であることが検出された場合には（ステップＡ１４）、青ＬＥＤ８３を消灯させる（ステップＡ１５）。
【００２２】
その後、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させながら上述と同様の試験発光処理を繰り返す動作に移る。
先ず、図２（Ｄ）に示すように、赤ＬＥＤ８１および緑ＬＥＤ８２を同時に点灯させる（図４のステップＡ１６）。これによって照明色は、赤、緑の混合色となり、この混合色によってスキャンされたデータを取り込んだ後に（ステップＡ１７）、明度差演算を行い（ステップＡ１８）、この明度差が当該混合色対応の基準値以上であれば（ステップＡ１９）、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に（ステップＡ３１）、デーコード処理を開始する（ステップＡ３２）。また、この明度差が赤、緑の混合色対応の基準値未満であれば（ステップＡ１９）、赤ＬＥＤ８１のみを消灯した後に（ステップＡ２０）、青ＬＥＤ８３を点灯させる（ステップＡ２１）。
【００２３】
これによって図２（Ｅ）に示すように、緑ＬＥＤ８２、青ＬＥＤ８３が同時点灯された状態となる。この緑と青の混合色によってスキャンされたデータを取り込んだ後（ステップＡ２２）、明度差演算を行い（ステップＡ２３）、この明度差が当該混合色対応の基準値以上であれば（ステップＡ２４）、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に（ステップＡ３１）、デーコード処理を開始する（ステップＡ３２）。また、この明度差が緑、青の混合色対応の基準値未満であれば（ステップＡ２４）、緑ＬＥＤ８２のみを消灯した後に（ステップＡ２５）、赤ＬＥＤ８１を点灯させる（ステップＡ２６）。
【００２４】
これによって図２（Ｆ）に示すように、赤ＬＥＤ８１、青ＬＥＤ８３が同時点灯された状態となり、この赤と青の混合色によってスキャンされたデータを取り込んだ後（ステップＡ２７）、明度差演算を行い（ステップＡ２８）、この明度差が当該混合色対応の基準値以上であれば（ステップＡ２９）、この時点で試験発光処理を中止してこの混合色対応の閾値を決定した後に（ステップＡ３１）、デーコード処理を開始する（ステップＡ３２）。また、この明度差が赤、青の混合色対応の基準値未満であれば（ステップＡ２９）、赤ＬＥＤ８１、青ＬＥＤ８３を消灯した後（ステップＡ３０）、エラー終了となる。
【００２５】
以上のように、この第１実施形態のコード読取装置におけるＣＰＵ１は、実際に２Ｄバーコードの読み取りを開始する前に、ＣＭＯＳセンサモジュール２内の照明用ＬＥＤ８を制御して、異なる複数の照明色を順次切り替え発生させると共に、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色対応の基準値以上であることが判別された場合には、その時点で当該明度差を生じさせた照明色を発生させて２Ｄバーコードの読取動作を開始するようにしたから、照明色毎に明度差を事前計測している過程において最適な明度差を確認した時点で、この明度差を生じさせた照明色で２Ｄバーコードの読取を行うことができ、無駄な照明や時間が不要となり、認識率の大幅な向上と同時に処理時間の短縮化を実現することが可能となる。
【００２６】
この場合、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３を所定の順番で切り換え発生させた後に、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３の点灯を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させるようにしたから、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３の３種類の光源を使用して多数の照明色を発生させることができるようになり、あらゆる色の２Ｄバーコードにも対応可能となる。
また、バーコードの読取動作を開始した際の照明色の明度差を参照し、２値化用の閾値を当該明度差に基づいて決定するようにしたから、処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【００２７】
なお、上述した第１実施形態においては、異なる複数の照明色を順次切り替え発生させる際に、赤、緑、青の単一色を順次発生させた後、赤緑、青緑、赤青の混合色を順次発生させるようにしたが、その発生順位は、これに限定されず、任意であり、更には、３色を混合した混合色で照明するようにしてもよい。
また、上述した第１実施形態においては、全ての照明色を切換え発生させても最終的に基準値未満であることが検出された場合にエラー終了としたが、それまでに計測された明度差のうち、最も基準値に近い明度差を生じさせた照明色を実読取用の照明色として選択するようにしてもよい。
【００２８】
一方、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体（例えば、ＣＤ−ＲＯＭ、フロッピィデスク、ＲＡＭカード等）を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、照明色に対応してその時の明度差が検出される毎に、この明度差がその照明色に対応して設定されている基準値以上の大きさであるか否かを判別する機能と、基準値以上の明度差であることが判別された時点で、当該明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始する機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【００２９】
（第２実施形態）
以下、この発明の第２実施形態について図５〜図８を参照して説明する。なお、上述した第１実施形態においては、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色で２Ｄバーコードの読取動作を開始するようにしたが、この第２実施形態においては、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測してこの計測結果を保存しておき、実際に２Ｄバーコードを読み取る場合には、明度差の大きい順に照明色を切換えながら２Ｄバーコードの読取を行うようにしたものである。
ここで、両実施形態において基本的に同一のものは、同一符号を付して示し、その説明を省略する他、以下、第２実施形態の特徴部分を中心に説明するものとする。
【００３０】
図５（Ａ）は、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測した計測結果が発光パターン情報４１としてＲＡＭ４内に記録保持された状態を示した図である。
すなわち、発光パターン情報４１は、「照明色」、「明度差」、「スキャンデータ」の各項目を有する構成となっている。この場合、発光パターン情報４１は、計測完了直後には、単一色（赤、緑、青）の明度差、混合色（赤緑、青緑、赤青）の明度差の順となっているが、計測完了後においては、明度差の大きい順にその内容が並び替えられる。なお、図５（Ａ）は、ソート前の発光パターン情報４１の内容を例示した図、（Ｂ）は、ソート後の発光パターン情報４１の内容を例示した図である。
【００３１】
図６および図７は、スキャン開始スイッチ６の操作に応答して実行開始される動作を示したフローチャートである。
先ず、ＣＰＵ１は、上述した第１実施形態と同様、スキャン開始スイッチ６が操作されると、ＣＭＯＳセンサモジュール２の電源を投入すると共に、ＬＥＤ制御部７を介してＣＭＯＳセンサモジュール２内の照明用ＬＥＤ８を通電させるが、その際、実際に２Ｄバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測する試験発光処理を実行する。
【００３２】
すなわち、ＣＰＵ１は、先ず、図２（Ａ）に示すように、赤ＬＥＤ８１を点灯させた後に（ステップＢ１）、２Ｄバーコードに中央付近における数ライン分のスキャンデータを取り込み（ステップＢ２）、この受光状態を解析することによってそのコード部分とその背景部分との明度差を算出する（ステップＢ３）。
これによって算出された明度差と当該照明色（赤）とスキャンデータとを対応付けた情報を発光パターン情報４１としてＲＡＭ４内に記憶保持させる（ステップＢ４）。その後、この赤ＬＥＤ８１を消灯させる（ステップＢ５）。
【００３３】
次に、図２（Ｂ）に示すように、緑ＬＥＤ８２を点灯させた状態において（ステップＢ６）、スキャンデータを取り込むと共に（ステップＢ７）、受光状態を解析することによって明度差演算を行い（ステップＢ８）、この明度差と当該照明色（緑）とスキャンデータとを発光パターン情報４１としてＲＡＭ４内に記憶保持した後（ステップＢ９）、この緑ＬＥＤ８２を消灯させる（ステップＢ１０）。更に、図２（Ｃ）に示すように、青ＬＥＤ８３を点灯させた後（ステップＢ１１）、スキャンデータを取り込み（ステップＢ１２）、明度差演算を行い（ステップＢ１３）、この明度差と当該照明色（青）とスキャンデータとを発光パターン情報４１としてＲＡＭ４内に記憶保持した後（ステップＢ１４）、この青ＬＥＤ８３を消灯させる（ステップＢ１５）。
【００３４】
このようにして赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３を順次点灯させながらその時の明度差を計測して発光パターン情報４１として記憶保持する処理が終了すると、以下、赤、緑、青を組み合わせて成る複数の混合色光を所定の順番で切り換え発生させながら上述と同様の計測を繰り返す。
すなわち、図２（Ｄ）に示すように、赤ＬＥＤ８１および緑ＬＥＤ８２を同時に点灯させ（図７のステップＢ１６）、この混合色によってスキャンしたデータを取り込み（ステップＢ１７）、明度差演算を行い（ステップＢ１８）、この明度差と当該照明色（赤緑）とスキャンデータとを発光パターン情報４１としてＲＡＭ４内に記憶保持した後（ステップＢ１９）、この赤ＬＥＤ８１を消灯させる（ステップＢ２０）。
【００３５】
次に、青ＬＥＤ８３を点灯させる（ステップＢ２１）。すると、図２（Ｅ）に示すように、緑ＬＥＤ８２、青ＬＥＤ８３が同時点灯の状態となり、この混合色によってスキャンしたデータを取り込み（ステップＢ２２）、明度差演算を行い（ステップＢ２３）、この明度差と当該照明色（緑青）とスキャンデータとを発光パターン情報４１としてＲＡＭ４内に記憶保持した後（ステップＢ２４）、この緑ＬＥＤ８２を消灯させる（ステップＢ２５）。
【００３６】
更に、赤ＬＥＤ８１を点灯させると（ステップＢ２６）、図２（Ｆ）に示すように、赤ＬＥＤ８１、青ＬＥＤ８３が同時点灯の状態となり、この混合色によってスキャンしたデータを取り込み（ステップＢ２７）、明度差演算を行い（ステップＢ２８）、この明度差と当該照明色（赤青）とスキャンデータとを発光パターン情報４１としてＲＡＭ４内に記憶保持した後に（ステップＢ２９）、赤ＬＥＤ８１および青ＬＥＤ８３を消灯させる（ステップＢ３０）。
このようにして発光パターン情報４１をＲＡＭ４内に記録保持する処理が終了すると、上述のようにして得られた各スキャンデータを発光パターン情報４１から順次読み出しながらデコードする処理に移る（ステップＢ３１）。
【００３７】
図６は、この場合におけるデコード処理を示したフローチャートである。
先ず、ＣＰＵ１は、ＲＡＭ４内に記憶保持されている発光パターン情報４１をアクセスし、各明度差の大きさを比較しながら明度差の大きい順（昇順）にその内容を並び替えるソート処理を実行する（ステップＣ１）。そして、このＲＡＭ４内の先頭領域から明度差の大きい順に発光パターン情報を１つ読み出してその照明色を特定すると共に、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３のうち、この照明色に対応するＬＥＤを選択指定して点灯させるが、この場合、照明色が単色であれば、１種類のＬＥＤ、混合色であれば、２種類のＬＥＤを同時点灯させる（ステップＣ２）。
【００３８】
そして、この明度差に基づいて２値化用閾値を決定する（ステップＣ３）。この場合、例えば、明度差の１／２の値を当該照明色対応の２値化用閾値として決定する。その後、当該照明色対応のスキャンデータをデコードし（ステップＣ４）、正常にデコードすることができたか否かを調べる（ステップＣ５）。ここで、デーコードエラーが検出された場合には、ＲＡＭ４内から明度差が次に大きい発光パターン情報４１を１つ読み出し（ステップＣ６）、その閾値を決定し（ステップＣ３）、デコード処理を行う（ステップＣ４）。以下、正常デコードが検出されるまで、ＲＡＭ４内から明度差を順次読み出しながら上述の動作を繰り返す（ステップＣ４〜Ｃ６）。
【００３９】
以上のように、この第２実施形態のコード読取装置におけるＣＰＵ１は、実際に２Ｄバーコードの読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に明度差を検出し、この明度差をその時の照明色に対応付けて発光パターン情報４１として記憶保持した後に、この発光パターン情報４１の内容をその明度差の大きい順に並び換え、明度差が大きい順に発光パターン情報４１を読み出し、この発光パターン情報４１内の照明色で示されるＬＥＤを点灯させて２Ｄバーコードの読取動作を開始するが、この照明色では２Ｄバーコードを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差の発光パターン情報４１を読み出しながらその照明色を切換発生させる動作を繰返すようにしたから、実際にコードを読み取る場合には、明度差の大きい順に照明色を切換えながら２Ｄバーコードの読取を行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【００４０】
この場合、上述した第１実施形態と同様に、赤ＬＥＤ８１、緑ＬＥＤ８２、青ＬＥＤ８３の３種類の光源を使用して多数の照明色を発生させることができる為、あらゆる２Ｄバーコードにも対応可能となる。
また、バーコードの読取動作を開始した際の照明色の明度差を参照し、２値化用の閾値を当該明度差に基づいて決定するようしたから、処理効率の向上が可能となる他、照明色毎に最適な閾値を得ることができる。
【００４１】
なお、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体（例えば、ＣＤ−ＲＯＭ、フロッピィデスク、ＲＡＭカード等）を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、異なる複数の照明色を発生可能な光源部を制御することによって、複数の照明色を順次切り替え発生する機能と、複数の照明色が切換え発生される毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出する機能と、照明色に対応してその時の明度差が検出される毎に、この明度差をその時の照明色に対応付けて記憶保持する機能と、保持されている照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を前記光源部から発生させて、コードパターンの読取動作を開始した際に、この照明色ではコードパターンを正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返す機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【００４２】
（第３実施形態）
以下、この発明の第３実施形態について図９〜図１２を参照して説明する。
この第３実施形態においては、２Ｄバーコードを照明する光源の照明むらを事前に計測し、それを２値化する為の閾値を照明むらに基づいて補正するようにしたものである。
ここで、第１および第３実施形態において基本的に同一のものは、同一符号を付して示し、その説明は省略するものとする。
【００４３】
図９は、照明用ＬＥＤ８に輝度むらが発生している場合に、この照明用ＬＥＤ８からの照明光を所定の白色体に照射した際の受光波形を示した図である。
すなわち、左右に配置されている一対の照明用ＬＥＤ８に輝度むらが発生し、光源付近に比べてその周辺の照明が極端に暗い場合に、この照明用ＬＥＤ８からの照明光を所定の白色体（例えば、白色紙や白色ボード等）に照射し、この反射光を受光するとその受光波形は、図９に示すように、両光源付近だけが高くなっている２山状の波形となる。
【００４４】
図１０は、輝度むらが発生していない正常な照明用ＬＥＤ８を使用して２Ｄバーコードを読み取った場合の読取波形を例示した図である。この場合における読取波形の高さは、略均一となっている為に、予め設定されている閾値レベルによってデータを正常に２値化することが可能となる。
また、図１１は、輝度むらが発生している照明用ＬＥＤ８を使用して２Ｄバーコードを読み取った場合の読取波形を例示した図である。この場合における読取波形は、図９で示した受光波形のように、両光源付近に比べてその周辺の高さが極端に低くなり、これを図１０で示した閾値レベルによって２値化しようとしても、正常に２値化することができなくなる。
そこで、この第３実施形態においては、実際にコード読取を開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むら（輝度むら）を検出し、照明むらに基づいて閾値を補正するようにしている。
【００４５】
図１２は、照明むらに基づいて閾値を事前補正する処理を示したフローチャートである。
先ず、ＣＰＵ１は、照明用ＬＥＤ８に輝度むらが発生している場合に、この照明用ＬＥＤ８からの照明光を所定の白色体に対して照射すると共に（ステップＤ１）、この反射光を受光し（ステップＤ２）、この受光波形に基づいて照明むらを検出し（ステップＤ３）、照明むらに応じた波形を時間軸に沿って順次数値化する（ステップＤ４）。そして、予め設定されている２値化用の閾値を読み出し（ステップＤ５）、この設定閾値を上述のようにして数値化した照明むらの数値データに基づいて補正する（ステップＤ６）。
【００４６】
これによって、図１１で示した補正前の閾値レベルに対して補正後における閾値のレベル変化は、光源の照明むらを反映したものとなる。すなわち、例えば、図９に示したような照明むらが生じている光源の場合、補正後の閾値のレベル変化は、図１１に示す如く、照明むらを反映した２山状の波形となり、図９の照明むらの読取波形に合わせたものとなる為、スキャンデータが照明むらによって影響されたとしても、スキャンデータを正常に２値化することが可能となる。
【００４７】
以上のように、この第３実施形態のコード読取装置においてＣＰＵ１は、実際に２Ｄバーコードの読み取りを開始する前に、照明用ＬＥＤ８からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて２値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【００４８】
なお、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体（例えば、ＣＤ−ＲＯＭ、フロッピィデスク、ＲＡＭカード等）を提供するようにしてもよい。すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、実際にコードパターンの読み取りを開始する前に、コードパターンを照明する光源部からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出する機能と、コードパターンを２値化する為の閾値を前記検出された照明むらに基づいて補正する機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【００４９】
なお、上述した第１〜第３実施形態においては、２Ｄバーコードを読取対象としたが、１次元バーコードあるいはその他の２次元コード（ＰＤＦ４１７コード、ＱＲコード等）を読み取るようにしてもよい。
また、上述した第１〜第３実施形態においては、撮像素子としてＣＭＯＳセンサを使用したが、ＣＣＤ撮像素子を使用してもよい。
【００５０】
【発明の効果】
第１の発明（請求項１記載の発明）によれば、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させる毎に、その反射光を受光することによってコード部分とその背景部分との明度差を検出し、この明度差がその照明色に対応して設定されている基準値以上であることが判別された時点で、当該明度差を生じさせた照明色を発生させて読取動作を開始するようにしたから、照明色毎に明度差を事前に計測している過程において、最適な明度差を確認した時点で、この明度差を生じさせた照明色で読取を行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
第２の発明（請求項２記載の発明）によれば、実際に読み取りを開始する前に、異なる複数の照明色を順次切り替え発生させると共に、その受光状態に基づいてコード部分とその背景部分との明度差を検出し、この明度差をその時の照明色に対応付けて記憶保持しておき、この照明色毎の明度差をその大きい順に指定し、この指定明度差を生じさせた照明色を発生させて読取動作を開始した際に、この照明色では正常に認識することができなかった場合には、それを正常に認識するまでの間、次に大きい明度差を指定しながらその照明色を切換発生させる動作を繰返すようにしたから、実際に読み取りを行う場合には、明度差の大きい順に照明色を切換えながら行うことができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
第３の発明（請求項５記載の発明）によれば、実際に読み取りを開始する前に、光源からの照明光を所定の白色体に照射することによってその反射光を受光し、この受光波形に基づいて照明むらを検出し、この照明むらに基づいて２値化用の閾値を補正するようにしたから、照明むらによる誤認識を防止することができ、認識率の向上と共に処理時間の短縮化を実現することが可能となる。
【図面の簡単な説明】
【図１】コード読取装置の基本的構成要素を示したブロック図。
【図２】ＣＭＯＳセンサモジュール２内に設けられている照明用ＬＥＤ８の構成を示した図。
【図３】スキャン開始スイッチ６の操作に応答して実行開始される動作を示したフローチャート。
【図４】図３に続く、フローチャート。
【図５】第２実施形態において、（Ａ）は、異なる複数の照明色を順次切り替え発生させながら照明色毎に明度差を事前に計測した計測結果が発光パターン情報４１としてＲＡＭ４内に記録保持された状態を示した図、（Ｂ）は、明度差の大きい順に並び替えたソート後の発光パターン情報４１の内容を例示した図。
【図６】第２実施形態において、スキャン開始スイッチ６の操作に応答して実行開始される動作を示したフローチャート。
【図７】図６に続く、フローチャート。
【図８】第２実施形態におけるデコード処理を示したフローチャート。
【図９】第３実施形態において、照明用ＬＥＤ８に輝度むらが発生している場合に、この照明用ＬＥＤ８からの照明光を所定の白色体に照射した際の受光波形を示した図。
【図１０】第３実施形態において、輝度むらが発生していない正常な照明用ＬＥＤ８を使用して２Ｄバーコードを読み取った場合の読取波形を例示した図。
【図１１】第３実施形態において、輝度むらが発生している照明用ＬＥＤ８を使用して２Ｄバーコードを読み取った場合の読取波形を例示した図。
【図１２】第３実施形態において、照明むらに基づいて閾値を事前補正する処理を示したフローチャート。
【符号の説明】
１  ＣＰＵ
２  ＣＭＯＳセンサモジュール
３  ＣＭＯＳセンサＩ／Ｆ
４  ＲＡＭ
６  スキャン開始スイッチ
７  ＬＥＤ制御部
８  照明用ＬＥＤ
９  ＣＭＯＳセンサ
４１  発光パターン情報
８１  赤ＬＥＤ
８２  緑ＬＥＤ
８３  青ＬＥＤ
【図１】
2005018391.tif 000003
【図２】
2005018391.tif 000004
【図３】
2005018391.tif 000005
【図４】
2005018391.tif 000006
【図５】
2005018391.tif 000007
【図６】
2005018391.tif 000008
【図７】
2005018391.tif 000009
【図８】
2005018391.tif 000010
【図９】
2005018391.tif 000011
【図１０】
2005018391.tif 000012
【図１１】
2005018391.tif 000013
【図１２】
2005018391.tif 000014