(57)【要約】      （修正有）【課題】情報コードの印字状態を適切に把握し、印字状態に適したフィルタ処理を行い得る情報コード読取装置を提供する。【解決手段】情報コード読取装置は、情報コードを撮像（Ｓ１）して得られた画像について、二値化（Ｓ２）後の暗色エリアの幅値についての幅値度数分布を検出（Ｓ４、Ｓ５）し、更に、その検出された幅値度数分布の分布特徴を検出（Ｓ６）している。また、当該画像において、線切れ度合及び暗色セルの太さ度合を検出（Ｓ８、Ｓ７）し、それら、分布特徴、線切れ度合、太さ度合、に応じた種別のフィルタを選択している。そして、その選択されたフィルタを用いてフィルタ処理（画像処理）Ｓ９を行っている。【選択図】図２
2010146335.tif 000002
【特許請求の範囲】
【請求項１】
情報コードを撮像する撮像手段と、
前記撮像手段にて撮像された前記情報コードの画像データを記憶する記憶手段と、
前記記憶手段に記憶される前記画像データを処理する画像処理手段と、
前記画像処理手段による処理後の前記画像データについてデコード処理を行うデコード手段と、
を備えた情報コード読取装置であって、
前記画像データによって構成される画像について、二値化後の明色エリア又は暗色エリアの幅値についての幅値度数分布を検出する度数分布検出手段と、
前記度数分布検出手段によって検出された前記幅値度数分布の分布特徴を検出する分布特徴検出手段と、
前記画像データによって構成される前記画像について、明色セル又は暗色セルが連続するべき領域におけるその連続するべきセルが途切れた度合を示す線切れ度合、及び、明色セル又は暗色セルの太さ度合、の少なくともいずれかの度合を検出する度合検出手段と、
を備え、
前記画像処理手段は、前記画像データに対し、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段による度合検出結果と、に基づくフィルタ処理を行うことを特徴とする情報コード読取装置。
【請求項２】
前記画像データによって構成される前記画像内において前記情報コードが存在するコード領域を検出する領域検出手段を備え、
前記度数分布検出手段は、前記領域検出手段にて検出された前記コード領域において前記幅値度数分布を検出し、
前記分布特徴検出手段は、前記度数分布検出手段によって検出された前記コード領域の前記幅値度数分布に基づいて前記分布特徴を検出し、
前記度合検出手段は、前記領域検出手段にて検出された前記コード領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、
前記画像処理手段は、前記コード領域における前記幅値度数分布と、前記コード領域における前記線切れ度合及び前記太さ度合の少なくともいずれかの度合と、に基づいて前記画像データに対し前記フィルタ処理を行うことを特徴とする請求項１に記載の情報コード読取装置。
【請求項３】
前記度合検出手段は、前記線切れ度合及び前記太さ度合をいずれも検出する構成をなしており、
前記画像処理手段は、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段によって検出された前記線切れ度合及び前記太さ度合に基づいてフィルタ種類を選択し、その選択されたフィルタ種類の前記フィルタ処理を行うことを特徴とする請求項１又は請求項２に記載の情報コード読取装置。
【請求項４】
前記度数分布検出手段は、前記幅値度数分布に加え、前記画像データの明暗反転画像における反転後明色エリア又は反転後暗色エリアの幅値についての反転後度数分布を検出する構成をなしており、
前記分布特徴検出手段は、前記幅値度数分布と前記反転後度数分布とに基づいて、前記幅値度数分布の前記分布特徴を検出することを特徴とする請求項１から請求項３のいずれか一項に記載の情報コード読取装置。
【請求項５】
前記分布特徴検出手段は、前記幅値度数分布のピーク状態と、前記反転後度数分布のピーク状態との一致状態を検出することを特徴とする請求項４に記載の情報コード読取装置。
【請求項６】
前記度合検出手段は、前記情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、前記太さ度合として、前記明色単位サイズと前記暗色単位サイズとの比率を算出することを特徴とする請求項１から請求項５のいずれか一項に記載の情報コード読取装置。
【請求項７】
前記情報コードの規定パターンを検出する規定パターン検出手段を備え、
前記度合検出手段は、前記規定パターン検出手段によって検出された前記規定パターンの領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかの度合を検出することを特徴とする請求項１から請求項６のいずれか一項に記載の情報コード読取装置。
【請求項８】
前記規定パターン検出手段は、前記撮像手段によってＱＲコードが撮像されたときに、前記ＱＲコードのファインダパターンを検出するファインダパターン検出手段を含み、
前記度合検出手段は、前記ファインダパターン検出手段にて前記ファインダパターンが検出された場合、その検出された前記ファインダパターン内の前記明色セル又は前記暗色セルに基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出することを特徴とする請求項７に記載の情報コード読取装置。
【請求項９】
前記規定パターン検出手段は、前記撮像手段によってデータマトリックスコードが撮像されたときに、前記データマトリックスコードの外周部に配置されるべきＬ字型パターンを検出するＬ字型パターン検出手段を含み、
前記度合検出手段は、前記Ｌ字型パターン検出手段によって前記Ｌ字型パターンが検出された場合、その検出された前記Ｌ字型パターンの状態に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出することを特徴とする請求項７に記載の情報コード読取装置。
【請求項１０】
前記度合検出手段は、前記規定パターン検出手段によって前記規定パターンが検出されない場合、前記分布特徴検出手段によって検出された前記分布特徴に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出することを特徴とする請求項７から請求項９のいずれか一項に記載の情報コード読取装置。
【請求項１１】
前記デコード手段は、前記画像処理手段による前記フィルタ処理後の前記画像データについて前記デコード処理を行い、
前記度数分布検出手段は、前記フィルタ処理後の前記画像データの前記デコード処理が失敗した場合、前記フィルタ処理後の前記画像データによって構成される処理後画像における処理後明色エリア又は処理後暗色エリアの幅値についての処理後度数分布を検出し、
前記分布特徴検出手段は、前記処理後度数分布についての処理後分布特徴を検出し、
前記度合検出手段は、前記処理後画像について前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、
前記画像処理手段は、前記処理後分布特徴と、前記処理後画像についての前記度合検出手段による度合検出結果とに基づいて、前記処理後画像に対し再度のフィルタ処理を行うことを特徴とする請求項１から請求項１０のいずれか一項に記載の情報コード読取装置。
【請求項１２】
前記度数分布検出手段は、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記幅値度数分布を検出し、
前記度合検出手段は、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記線切れ度合及び太さ度合の少なくともいずれかの度合を検出することを特徴とする請求項１から請求項１１のいずれか一項に記載の情報コード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【０００２】
現在、様々な分野において、バーコードやＱＲコードなどの情報コードが広く用いられている。この種の情報コードは、プリンタによる印刷や、ダイレクトマーキングなどによって様々な対象物に付されており、他方、このような情報コードを光学的に読み取る装置として、バーコードリーダ等の情報コード読取装置が広く用いられている。
【特許文献１】特開２００４−２１７３６公報
【特許文献２】特開２００２−７４２５８公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記のような情報コード読取装置では、情報コードを撮像したときの撮像画像が印字状態や撮像状態の影響を受けやすいという問題があり、場合によっては、撮像画像に情報コードを構成する要素以外のノイズが多く含まれてしまう場合がある。例えばダイレクトマーキングによって形成される情報コードでは、印字面の凹凸やキズなどがノイズとして撮像画像に含まれやすく、このようなノイズは情報コードの読み取りに多大な影響を及ぼしてしまう。
【０００４】
上記のような画像不良は読取精度低下の一因となるため、適切な対処が求められ、その対策としてはフィルタ処理が有効である。例えば、ノイズが数多く存在する画像データであっても、適切なのフィルタ処理を行うことで画像状態を改善できる場合があり、これにより、読取不良とされた画像データを読取可能なものとできる場合がある。なお、画像データに対してフィルタ処理を行い、画像状態を改善する技術としては例えば特許文献２のようなものがある。
【０００５】
しかしながら、上記のようなフィルタ処理を行う場合、適切なフィルタを如何に選択するかが問題となる。即ち、情報コードの画像に対してフィルタ処理を行う場合、その対象画像の状態に応じた適切なフィルタを選択することが望ましいが、特許文献２や他の従来技術では、画像状態を的確に把握し、画像状態に適したフィルタを選択するといった方法は提供されていなかった。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、情報コードの印字状態を適切に把握し、印字状態に適したフィルタ処理を行い得る情報コード読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１の発明は、情報コードを撮像する撮像手段と、前記撮像手段にて撮像された前記情報コードの画像データを記憶する記憶手段と、前記記憶手段に記憶される前記画像データを処理する画像処理手段と、前記画像処理手段による処理後の前記画像データについてデコード処理を行うデコード手段と、を備えた情報コード読取装置として構成される。
更に、前記画像データによって構成される画像について、二値化後の明色エリア又は暗色エリアの幅値についての幅値度数分布を検出する度数分布検出手段と、前記度数分布検出手段によって検出された前記幅値度数分布の分布特徴を検出する分布特徴検出手段と、前記画像データによって構成される前記画像について、明色セル又は暗色セルが連続するべき領域におけるその連続するべきセルが途切れた度合を示す線切れ度合、及び、明色セル又は暗色セルの太さ度合、の少なくともいずれかの度合を検出する度合検出手段と、を備えている。
そして、前記画像処理手段は、前記画像データに対し、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段による度合検出結果と、に基づくフィルタ処理を行う構成をなしている。
【０００８】
請求項２の発明は、請求項１に記載の情報コード読取装置において、更に、前記画像データによって構成される前記画像内において前記情報コードが存在するコード領域を検出する領域検出手段が設けられている。
そして、前記度数分布検出手段は、前記領域検出手段にて検出された前記コード領域において前記幅値度数分布を検出し、前記分布特徴検出手段は、前記度数分布検出手段によって検出された前記コード領域の前記幅値度数分布に基づいて前記分布特徴を検出し、前記度合検出手段は、前記領域検出手段にて検出された前記コード領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、前記画像処理手段は、前記コード領域における前記幅値度数分布と、前記コード領域における前記線切れ度合及び前記太さ度合の少なくともいずれかの度合と、に基づいて前記画像データに対し前記フィルタ処理を行う構成をなしている。
【０００９】
請求項３の発明は、請求項１又は請求項２に記載の情報コード読取装置において、前記度合検出手段が、前記線切れ度合及び前記太さ度合をいずれも検出する構成をなしている。更に、前記画像処理手段は、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段によって検出された前記線切れ度合及び前記太さ度合に基づいてフィルタ種類を選択し、その選択されたフィルタ種類の前記フィルタ処理を行う構成をなしている。
【００１０】
請求項４の発明は、請求項１から請求項３のいずれか一項に記載の情報コード読取装置において、前記度数分布検出手段が、前記幅値度数分布に加え、前記画像データの明暗反転画像における反転後明色エリア又は反転後暗色エリアの幅値についての反転後度数分布を検出する構成をなしている。更に、前記分布特徴検出手段は、前記幅値度数分布と前記反転後度数分布とに基づいて、前記幅値度数分布の前記分布特徴を検出する構成をなしている。
【００１１】
請求項５の発明は、請求項４に記載の情報コード読取装置において、前記分布特徴検出手段が、前記幅値度数分布のピーク状態と、前記反転後度数分布のピーク状態との一致状態を検出する構成をなしている。
【００１２】
請求項６の発明は、請求項１から請求項５のいずれか一項に記載の情報コード読取装置において、前記度合検出手段が、前記情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、前記太さ度合として、前記明色単位サイズと前記暗色単位サイズとの比率を算出する構成をなしている。
【００１３】
請求項７の発明は、請求項１から請求項６のいずれか一項に記載の情報コード読取装置において、更に、前記情報コードの規定パターンを検出する規定パターン検出手段が設けられている。また、前記度合検出手段は、前記規定パターン検出手段によって検出された前記規定パターンの領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかの度合を検出する構成をなしている。
【００１４】
請求項８の発明は、請求項７に記載の情報コード読取装置において、前記規定パターン検出手段が、前記撮像手段によってＱＲコードが撮像されたときに、前記ＱＲコードのファインダパターンを検出するファインダパターン検出手段を有している。また、前記度合検出手段は、前記ファインダパターン検出手段にて前記ファインダパターンが検出された場合、その検出された前記ファインダパターン内の前記明色セル又は前記暗色セルに基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出する構成をなしている。
【００１５】
請求項９の発明は、請求項７に記載の情報コード読取装置において、前記規定パターン検出手段が、前記撮像手段によってデータマトリックスコードが撮像されたときに、前記データマトリックスコードの外周部に配置されるべきＬ字型パターンを検出するＬ字型パターン検出手段を有している。また、前記度合検出手段は、前記Ｌ字型パターン検出手段によって前記Ｌ字型パターンが検出された場合、その検出された前記Ｌ字型パターンの状態に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出する構成をなしている。
【００１６】
請求項１０の発明は、請求項７から請求項９のいずれか一項に記載の情報コード読取装置において、前記度合検出手段は、前記規定パターン検出手段によって前記規定パターンが検出されない場合、前記分布特徴検出手段によって検出された前記分布特徴に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出する構成をなしている。
【００１７】
請求項１１の発明は、請求項１から請求項１０のいずれか一項に記載の情報コード読取装置において、前記デコード手段が、前記画像処理手段による前記フィルタ処理後の前記画像データについて前記デコード処理を行う構成をなしており、前記度数分布検出手段は、前記フィルタ処理後の前記画像データの前記デコード処理が失敗した場合、前記フィルタ処理後の前記画像データによって構成される処理後画像における処理後明色エリア又は処理後暗色エリアの幅値についての処理後度数分布を検出する構成をなしている。
更に、前記分布特徴検出手段は、前記処理後度数分布についての処理後分布特徴を検出し、前記度合検出手段は、前記処理後画像について前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、前記画像処理手段は、前記処理後分布特徴と、前記処理後画像についての前記度合検出手段による度合検出結果とに基づいて、前記処理後画像に対し再度のフィルタ処理を行う構成をなしている。
【００１８】
請求項１２の発明は、請求項１から請求項１１のいずれか一項に記載の情報コード読取装置において、前記度数分布検出手段が、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記幅値度数分布を検出する構成をなし、更に、前記度合検出手段が、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記線切れ度合及び太さ度合の少なくともいずれかの度合を検出する構成をなしている。
【発明の効果】
【００１９】
請求項１の発明は、情報コードの画像について、二値化後の明色エリア又は暗色エリアの幅値について幅値度数分布を検出し、更に、その幅値度数分布の分布特徴を検出している。また、その情報コードの画像について、線切れ度合及び太さ度合の少なくともいずれかの度合を検出しており、その度合検出結果と、上記幅値度数分布の分布特徴とに基づいてフィルタ処理を行うようにしている。
本発明のように、幅値度数分布の分布特徴を検出することで、画像が適切な分布状態であるか、或いはどのように画像不良が生じているか、等を適切に把握できる。更に、このような分布特徴だけでなく、線切れ度合あるいは太さ度合をも検出することで、情報コードの画像状態を２以上の尺度で多面的に確認できる。そして、このように画像状態をより詳細且つ具体的に把握した上でフィルタ処理を行うようにすれば、情報コードの印字状態により適したフィルタ処理を迅速に行うことができ、ひいては読取精度の向上、読取処理の迅速化を効果的に図ることができる。
【００２０】
請求項２の発明は、撮像画像内において情報コードが存在するコード領域を検出し、その検出されたコード領域において、幅値度数分布の分布特徴、及び線切れ度合及び前記太さ度合の少なくともいずれかを検出している。このようにすると、読み取りに必要な範囲について幅値度数分布検出、分布特徴検出、度合検出を行うことができ、画像状態の詳細な把握を適切な範囲で迅速に行うことができる。
【００２１】
請求項３の発明では、線切れ度合及び前記太さ度合をいずれも検出し、それら検出された線切れ度合及び太さ度合に基づいてフィルタ種類を選択している。線切れ度合は平滑化処理を行うべきか否かの重要な指標となり、太さ度合は、膨張処理や収縮処理を行うべきか否かの重要な指標となるため、線切れ度合及び太さ度合のいずれをも考慮してフィルタを選択するようにすれば、より適切なフィルタを迅速に選択できる。
【００２２】
請求項４の発明は、幅値度数分布に加え、画像データの明暗反転画像における反転後明色エリア又は反転後暗色エリアの幅値についての反転後度数分布を検出している。そして、幅値度数分布と反転後度数分布とに基づいて、幅値度数分布の分布特徴を検出している。
このように、通常の幅値度数分布だけでなく、反転後度数分布をも検出することで、画像状態をより多面的に確認でき、これら両度数分布を考慮してフィルタ選択処理を行うようにすれば、より一層適切なフィルタを選択できるようになる。
【００２３】
請求項５の発明は、幅値度数分布のピーク状態と、反転後度数分布のピーク状態との一致状態を検出している。情報コードの画像において線切れがあまり生じていない場合には、幅値度数分布と反転後度数分布のピークが一致するため、両度数分布のピーク一致状態を「分布特徴」として検出した上でフィルタ処理を行うようにすれば、コード画像の線切れ度合を考慮して適切なフィルタ処理を行うことができる。
【００２４】
請求項６の発明では、情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、太さ度合として、明色単位サイズと暗色単位サイズとの比率を算出している。このようにすると、コード画像における明色セル又は暗色セルの太さ度合を精度高く迅速に検出できる。
【００２５】
請求項７の発明では、検出された規定パターンの領域において、線切れ度合及び太さ度合の少なくともいずれかの度合を検出している。予め形状が定められた規定パターンの領域では、どの部分がどの程度の幅であるべきか、或いは、どの部分がセルが連続すべき部分であるべきか等を特定しやすく、線切れ度合や太さ度合を迅速且つ的確に検出できる。
【００２６】
請求項８の発明では、情報コードがＱＲコードである場合に、ファインダパターン内の明色セル又は暗色セルに基づいて線切れ度合及び太さ度合の少なくともいずれかを検出している。ファインダパターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、ファインダパターンは、ＱＲコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【００２７】
請求項９の発明は、情報コードがデータマトリックスコードである場合に、Ｌ字型パターンの状態に基づいて線切れ度合及び太さ度合の少なくともいずれかを検出している。Ｌ字型パターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、Ｌ字型パターンは、データマトリックコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【００２８】
請求項１０の発明は、規定パターンが検出されない場合、分布特徴検出手段によって検出された分布特徴に基づいて線切れ度合及び太さ度合の少なくともいずれかを検出している。このようにすると、規定パターンが検出されない場合であっても、次善の策として、分布特徴に基づいて線切れ度合或いは太さ度合を把握することができ、画像状態の詳細且つ具体的な把握を担保できる。
【００２９】
請求項１１の発明は、画像処理手段によるフィルタ処理後の画像データについてデコード処理を行い、そのデコード処理が失敗した場合、フィルタ処理後の処理後画像における明色エリア（処理後明色エリア）又は暗色エリア（処理後暗色エリア）の幅値についての処理後度数分布を検出している。そして、その処理後度数分布についての分布特徴（処理後分布特徴）を検出し、この処理後分布特徴と、処理後画像についての度合検出結果と、に基づいて、処理後画像に対し再度のフィルタ処理を行っている。
このようにすると、撮像画像の状態に応じたフィルタ処理を行ってもデコードが成功しなかった場合に、その失敗した画像（処理後画像）を詳細且つ具体的に把握した上で、その処理後画像に適したフィルタ処理を再度行うことができ、読取成功確率を効果的に高めることができる。
【００３０】
請求項１２の発明は、撮像手段から記憶手段に送られる記憶前の画像データに基づいて幅値度数分布を検出し、その記憶前の画像データに基づいて線切れ度合及び太さ度合の少なくともいずれかの度合を検出している。このようにすると、画像データを記憶手段に取り込む前に当該画像データの画像状態を確認できるため、画像状態の確認の迅速化、ひいては読取処理の迅速化を効果的に図ることができる。
【発明を実施するための最良の形態】
【００３１】
[第１実施形態]
以下、第１実施形態に係る情報コード読取装置について図面を参照しつつ説明する。
図１は、第１実施形態に係る情報コード読取装置の電気的構成を例示するブロック図であり、図２は、図１の情報コード読取装置で行われる読取処理を例示するフローチャートである。また、図３（ａ）は、コード領域における暗色エリアの幅値度数分布を検出するための走査について説明する説明図であり、図３（ｂ）は、反転画像における明色エリアの幅値の度数分布（反転後幅値度数分布）を検出するための走査について説明する説明図である。また、図４（ａ）は、幅値度数分布の一例を示すグラフであり、図４（ｂ）は、反転後度数分布の一例を示すグラフである。図５（ａ）は、幅値度数分布についての図４（ａ）とは異なる例を示すグラフであり、図５（ｂ）は、反転後度数分布についての図４（ｂ）とは異なる例を示すグラフである。図６（ａ）は、ＱＲコードにおける太さ度合及び線切れ度合の検出方法を説明する説明図であり、図６（ｂ）は、線切れ度合の検出方法について、図６（ａ）とは異なる例を示す説明図である。図７は、分布特徴、太さ度合、線切れ度合に基づいてフィルタを選択する方法を例示する説明図である。図８は、平滑フィルタについて説明する説明図である。
【００３２】
（全体構成）
まず、図１等を参照して本実施形態に係る情報コード読取装置の全体構成について説明する。図１に示すように、本実施形態に係る情報コード読取装置１は、一次元コード、二次元コード等の情報コードＱを読み取るコードリーダとして構成されるものであり、図示しないケースによって外郭が構成され、このケース内に各種電子部品が収容された構成をなしている。
【００３３】
この情報コード読取装置１は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示装置４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース（図示略）内に内装されている。
【００３４】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、ケースに形成された読取口（図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒとしては、例えば、樹脂材料、金属材料等の様々な対象が考えられ、このような読取対象物Ｒに情報コード（図１ではＱＲコードＱ）が印刷、ダイレクトマーキングなどによって形成されている。なお、以下の説明では、情報コードとしてＱＲコードＱを例示して説明するが、データマトリックコードやマキシコードなどの他の二次元コードに置き換えてもよい。
【００３５】
受光センサ２３は、読取対象物ＲやＱＲコードＱに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。この受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａで受光可能に図略のプリント配線板に実装されている。なお、受光センサ２３は、「撮像手段」の一例に相当する。
【００３６】
フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口（図示略）と結像レンズ２７との間に設けられている。これにより、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口（図示略）に入射する反射光Ｌｒを集光し、受光センサ２３の受光面２３ａにＱＲコードＱのコード画像を結像するように構成されている。
【００３７】
マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等から構成されている。このマイコン系は、マイコン（情報処理装置）として機能し得る制御回路４０及びメモリ３５を中心として構成され、前述した光学系によって撮像されたＱＲコードＱの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【００３８】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力され、当該メモリ３５の画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００３９】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。なお、メモリ３５は、「記憶手段」の一例に相当し、受光センサ２３にて撮像されたＱＲコードＱの画像データを記憶するように機能する。
【００４０】
制御回路４０は、情報コード読取装置１全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるものであり、情報処理機能を有している。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）が接続されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等が接続されている。また、通信インタフェース４８には、情報コード読取装置１の上位システムに相当するホストコンピュータＨＳＴなどを接続できるようになっている。
【００４１】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。なお、電池４９は、所定の直流電圧を発生可能な２次電池で、例えば、リチウムイオン電池等がこれに相当する。
【００４２】
（読取処理）
次に、情報コード読取装置１で行われる読取処理について説明する。
図２に示す読取処理では、まず、処理開始に伴い画像取得処理を行う（Ｓ１）この画像取得処理では、ＱＲコードＱの画像データを取得し、メモリ３５に記憶する。ＱＲコードＱの画像データは、受光センサ２３の各受光素子に対応する画素データの集合として構成される。
【００４３】
Ｓ１の後には、Ｓ１で取得した画像データに対して公知の二値化処理を行う（Ｓ２）。この二値化処理では、各画素データの濃度値を所定の閾値と比較して明色画素と暗色画素とに区別する。
【００４４】
Ｓ２で二値化処理を行った後には、Ｓ２で得られた二値化後の画像データについてラベリング処理を行う（Ｓ３）。このラベリング処理は、Ｓ２で得られた二値化後の画像データによって構成される画像内において情報コードが存在するコード領域（コードらしさ）を検出する処理であり、公知の様々なコード領域検出処理のいずれを採用してもよい。なお、本実施形態では、制御手段４０が「領域検出手段」の一例に相当する。
【００４５】
その後、Ｓ４の度数分布検出処理を行う。Ｓ４は、Ｓ３ラベリング処理にて検出されたコード領域において幅値度数分布を検出する処理であり、図３（ａ）に概念的に示すように、Ｓ３で得られた二値化後のコード領域（ラベリング領域）において、所定方向（例えば横方向）に走査し、暗色画素が走査方向に連続してなる各暗色エリアを検出すると共に、各暗色エリアの幅値（連続セル数）を求め、幅値毎の度数分布（幅値度数分布）を生成する。なお、本実施形態では、コード領域（ラベリング領域）において横方向に並ぶ画素ライン（横ライン）全てについて走査し、コード領域の全走査ラインに含まれる各暗色エリアの幅値を取得し、度数分布を生成している。
【００４６】
図４（ａ）は、Ｓ４の処理で得られる幅値度数分布の一例をグラフによって可視化して示すものである。本実施形態では、画素数によって幅値が示されており、画素１つ分が最小幅値（幅値１）であり、画素２つ分がその次のサイズの幅値（幅値２）、画素３つ分が更にその次のサイズの幅値（幅値３）といったように示されている。なお、最小幅値（幅値１）の度数とは、走査方向に連続しない単一暗色画素の度数（検出数）を示しており、その次の幅値（幅値２）の度数とは、暗色画素が走査方向に２つ連続してなる暗色エリアの度数（検出数）を示している。また、幅値３以上の各幅値の度数も同様であり、例えば、幅値３の度数とは暗色画素が走査方向に３つ連続してなる暗色エリアの度数（検出数）を示している。
【００４７】
なお、本実施形態では、制御回路４０が、「度数分布検出手段」の一例に相当し、ＱＲコードＱの画像データによって構成される画像において、二値化後の暗色エリアの幅値についての幅値度数分布を検出するように機能する。
【００４８】
Ｓ４にて暗色エリアの幅値度数分布を生成した後には、Ｓ３で得られたコード領域の画像の明暗を反転した画像（明暗反転画像）において、明色エリア（反転後明色エリア）についての度数分布（反転後度数分布）を検出する処理を行う（Ｓ５）。具体的には、図３（ｂ）のように、Ｓ３で得られた二値化後のコード領域（ラベリング領域）の反転画像を生成した後、図３（ｂ）の矢印にて概念的に示すように、所定方向（例えば横方向）に走査し、明色画素が走査方向に連続してなる各明色エリアを検出する。そして、それら各明色エリアの幅値（連続画素数）を求め、幅値毎の度数分布（反転後度数分布）を生成する。なお、この処理でも、対象画像（コード領域の反転画像）において横方向に並ぶ画素ライン（横ライン）全てについて走査し、当該反転画像の全走査ラインに含まれる各明色エリアの幅値を取得し、度数分布を生成する。
【００４９】
図４（ｂ）は、Ｓ５の処理で得られる度数分布（反転後度数分布）の一例をグラフによって可視化して示すものであり、この例でも、画素数によって幅値が示されており、画素１つ分が最小幅値（幅値１）であり、画素２つ分がその次のサイズの幅値（幅値２）、画素３つ分が更にその次のサイズの幅値（幅値３）といったように示されている。
【００５０】
次に、Ｓ４で得られた幅値度数分布の分布特徴を検出する処理を行う（Ｓ６）。この分布特徴検出処理は、Ｓ４で得られた幅値度数分布がどのような特徴を有しているかを検出する処理であり、まず、Ｓ４で得られた幅値度数分布において所定の小サイズの総度数が大きいか否かを確認する。「所定の小サイズ」は、例えば特定画素数以下のサイズであってもよく、単位セルサイズ以下のサイズ（即ち、単位セルサイズと推定されるピーク画素数（図５（ａ）では「５」）以下のサイズ）などであってもよい。
【００５１】
「所定の小サイズ」の総度数が大きいか否かの判断は、当該「所定の小サイズ」の総度数が予め規定された閾値（度数閾値）以上か否かに基づいて判断してもよく、当該「所定の小サイズ」の総度数が全度数に対して所定割合以上であるか否かに基づいて判断してもよい。
【００５２】
例えば、「所定の小サイズ」を画素数Ｎ以下のサイズ（即ち、幅値Ｎ以下のサイズ）とした場合、画素数Ｎ以下の総度数と、予め規定された度数閾値とを比較し、画素数Ｎ以下の総度数が当該度数閾値以上である場合に「所定の小サイズの総度数が大きい」と判断する。或いは、画素数Ｎ以下の総度数が、Ｓ４で得られた幅値度数分布の全度数に対して所定割合以上（例えば３０％以上）である場合に、「所定の小サイズの総度数が大きい」と判断する。
【００５３】
上記判断により「所定の小サイズの総度数が大きい」とされた場合には、その旨の情報をメモリ３５に記憶しておく。なお、この情報は後述するフィルタ選択処理（Ｓ９）で利用される。
【００５４】
更に、Ｓ４で得られた幅値度数分布のピーク状態と、Ｓ５で得られた反転後度数分布のピーク状態との一致状態を検出する処理を行う。ピークの一致状態を判断する方法は様々に考えうるが、例えば、図４（ａ）のような幅値度数分布において、検出度数が最大値となっている幅値を検出すると共に、図４（ｂ）のような反転後度数分布において、検出度数が最大値となっている幅値を検出し、それら幅値が一致するか否かを判断する。
【００５５】
図４（ａ）では、検出度数が最大値となっている幅値が「７」であり、図４（ｂ）でも、最大値となっている幅値が「７」であるので、ピーク状態が互いに一致すると判断される。このような場合、ピーク状態が互いに一致する旨の情報をメモリ３５に記憶しておく。
【００５６】
他方、図５（ａ）（ｂ）では、Ｓ４で得られた幅値度数分布において検出度数が最大値となっている幅値が「５」であり、Ｓ５で得られた反転後幅値度数分布においては、最大値となっている幅値が「１１」であるため、ピーク状態が互いに一致しないと判断される。このような場合には、ピーク状態が互いに一致しない旨の情報をメモリ３５に記憶しておく。
【００５７】
このようにして、Ｓ４で得られた幅値度数分布の分布特徴を検出する。なお、本実施形態では、制御回路４０が、「分布特徴検出手段」の一例に相当し、Ｓ４で得られた幅値度数分布の分布特徴を検出するように機能する。
【００５８】
Ｓ６の処理の後には、コード画像内の暗色セルの「太さ度合」を検出する処理を行う（Ｓ７）。この処理は、Ｓ３で得られたコード領域において暗色セルとされるべき領域を検出し、暗色セルの太さ度合を算出する処理であり、まず、Ｓ３で得られたコード領域において規定パターンを検出する処理を行う。例えば、図３（ａ）のようＱＲコードが撮像される場合、当該ＱＲコードについて公知のファインダパターン検出処理を行い、いずれかのファインダパターンＦＰを検出する。そして、その検出されたファインダパターンＦＰ内、或いはファインダパターンＦＰに近接する他の規定パターンにおいて暗色セルの太さ度合を検出する。
【００５９】
暗色セルの太さ度合の検出方法は様々に考えうるが、本実施形態では、明色単位セルとして構成されるべき領域のサイズ（明色単位サイズ）と、暗色単位セルとして構成されるべき領域のサイズ（暗色単位サイズ）とを検出し、それら明色単位サイズと暗色単位サイズとの比率を算出する方法を用いている。図６の例では、ＱＲコードのタイミングパターンにおいて、いずれかの暗色単位セルの幅値Ｌｂと、いずれかの明色単位セルの幅値Ｌｗとを検出し、その比率Ｌｂ／Ｌｗを「太さ度合」として算出している。
【００６０】
Ｓ７の後には、Ｓ３で得られたコード画像において「線切れ度合」を検出する処理を行う（Ｓ８）。この「線切れ度合」とは、即ち、暗色セルが連続するべき領域におけるその連続するべきセルが途切れた度合を示すものであり、例えば、上記のように検出されたファインダパターンＦＰ（規定パターン）内の暗色セルに基づき、図６（ａ）のように検出する。
【００６１】
図６（ａ）の例では、ファインダパターンＦＰにおいて暗色セルが連続すべき領域（例えば、ファインダパターンＦＰの外周部領域）を特定し、断続的に形成されている暗色部のいずれかの長さｂと、それに隣接する明色部の長さｗとを求め、それら合計（ｂ＋ｗ）に対する暗色部ｂの比（線切れ比ｂ／（ｂ＋ｗ））を「線切れ度合」として算出している。なお、暗色セルが断続的に形成されておらず、暗色部間に明色部が介在していない場合（即ち、線切れが生じていない場合）にはｗ＝０とする（この場合、線切れ比は１となる）。
【００６２】
なお、本実施形態では、制御回路４０が「規定パターン検出手段」「ファインダパターン検出手段」の一例に相当する。また、制御回路４０は、「度合検出手段」の一例に相当し、上記「線切れ度合」及び「太さ度合」を検出する機能を有する。
【００６３】
Ｓ８の処理の後には、Ｓ１の処理で取得された画像データに対してフィルタ処理を行う（Ｓ９）。このフィルタ処理では、まず、Ｓ６で検出された分布特徴、Ｓ７で検出された太さ度合、及びＳ８で検出された線切れ度合に基づいてフィルタ種別を選択する処理を行い、その後、その選択された種別のフィルタを用いた画像処理を行う。
【００６４】
具体的には、例えば、図７のようにフィルタ種別を選択する。
図７の例では、Ｓ６の分布特徴検出処理において、「所定の小サイズの総度数が大きい」と判断される場合、又はＳ８で得られた線切れ度合が１未満である場合（即ち、線切れが発生している場合）、平滑フィルタを選択するように設定されている。なお、この例では、いずれかの条件を満たす場合に平滑フィルタを選択しているが、両条件を満たす場合、（即ち、Ｓ６で「所定の小サイズの総度数が大きい」と判断され、かつＳ８で得られた線切れ度合が１未満である場合（即ち、線切れが発生している場合）に平滑フィルタを選択するようにしてもよい。
【００６５】
また、Ｓ６の処理において、「Ｓ４の幅値度数分布のピーク状態とＳ５の反転後度数分布のピーク状態とが互いに一致しない」とされ、Ｓ７で検出された太さ度合が第１閾値（例えば０．８）未満である場合、膨張フィルタを選択する。
【００６６】
また、Ｓ６の処理において「Ｓ４の幅値度数分布のピーク状態とＳ５の反転後度数分布のピーク状態とが互いに一致しない」とされ、Ｓ７で検出された太さ度合が第２閾値（例えば１．２）を超えている場合、収縮フィルタを選択する。
【００６７】
上記のようにフィルタ種別が選択された場合には、その選択された種別のフィルタを用いてフィルタ処理（画像処理）を行う。なお、本実施形態では、制御回路４が「画像処理手段」の一例に相当し、メモリ３５記憶される画像データ（即ち、情報コードを撮像した撮像データ）を処理する機能を有する。
【００６８】
なお、Ｓ６の分布特徴検出処理において、「所定の小サイズの総度数が大きい」とされておらず、「Ｓ４の幅値度数分布のピーク状態とＳ５の反転後度数分布のピーク状態とが互いに一致する」とされ、Ｓ７で検出された太さ状態が第１閾値（例えば０．８）以上且つ第２閾値（例えば１．２）以下であり、線切れ比が１である場合、画像状態が良好であると推定できるので、この場合には画像処理は行わずに後述するデコード処理を行う（Ｓ１０）。
【００６９】
Ｓ９でフィルタ処理を行う場合、そのフィルタサイズは、一定のサイズであってもよく、画像状態に応じたサイズであってもよい。例えば、３×３の一定サイズを用いるように定められる場合、図７の判断条件に従って平滑フィルタが選択された場合には、図８（ａ）のような平滑フィルタを用いた平滑化処理が行われる。なお、平滑化フィルタを用いた平滑化処理自体は公知であり、詳細は省略するが、例えば、図８（ｂ）のように規則的に配列される画素のいずれかを着目画素Ｑ０とし、当該着目画素Ｑ０及び当該画素Ｑ０の周囲に配置される画素Ｑ１〜Ｑ８（図８（ｃ））の濃度値の平均値を求め、それを着目画素Ｑ０の濃度値とするといった演算処理を行う。いずれかの画素を着目画素として上記演算処理を行った後には、他の画素について同様の処理を行うといった方法で、全ての画素について上記演算処理を行う。
【００７０】
本実施形態では、「所定の小サイズの総度数が大きい」とされる場合、即ちノイズが多い場合に平滑化処理が行われ、ノイズと推定される画素をその周囲の画素と平均化できるため、ノイズ部分の濃度値を低下（輝度レベルを増大）させることができる。従って、再度二値化処理を行うことでノイズを効果的に除去できる。
【００７１】
また、線切れ度合が発生している場合にも平均化処理が行われる。この場合、線切れ部分の各画素を、その周囲の画素と平均化できるため、線切れ部分の濃度値を増大（輝度レベルを減少）することができる。従って、再度二値化処理を行うことで線切れ部分を効果的に除去ないし抑制できる。
【００７２】
また、Ｓ７の判断条件に従って膨張フィルタが選択された場合には、膨張フィルタを用いた公知の膨張処理が行われる。例えば、フィルタサイズが３×３と規定されている場合、図８（ｂ）のように規則的に配列される画素のいずれかを着目画素Ｑ０とし、当該着目画素Ｑ０及び当該画素Ｑ０の周囲に配置される画素Ｑ１〜Ｑ８（図８（ｃ））の濃度値の最大値を求め、それを着目画素Ｑ０の濃度値とするといった演算処理を行う。いずれかの画素を着目画素として上記演算処理を行った後には、他の画素について同様の処理を行うといった方法で、全ての画素について上記演算処理を行う。本実施形態では、図７に示すように太さ度合が小さい場合（黒が細っており、白が太っている場合）に膨張フィルタを用いた膨張処理が行われ、暗色セルの太さの適正化が図られる。
【００７３】
Ｓ７の判断条件に従って収縮フィルタが選択された場合も同様であり、収縮フィルタを用いた公知の収縮処理が行われる。例えば、フィルタサイズが３×３と規定されている場合、図８（ｂ）のように規則的に配列される画素のいずれかを着目画素Ｑ０とし、当該着目画素Ｑ０及び当該画素Ｑ０の周囲に配置される画素Ｑ１〜Ｑ８（図８（ｃ））の濃度値の最小値を求め、それを着目画素Ｑ０の濃度値とするといった演算処理を行う。いずれかの画素を着目画素として上記演算処理を行った後には、他の画素について同様の処理を行うといった方法で、全ての画素について上記演算処理を行う。本実施形態では、図７に示すように太さ度合が大きい場合（黒が太っており、白が細っている場合）に収縮フィルタを用いた収縮処理が行われ、暗色セルの太さの適正化が図られる。
【００７４】
また、上記フィルタ種別の選択条件は、優先度を設けてもよい。例えば、図７において、フィルタを使用しないための条件（図７のフィルタ種別「なし」の条件）を優先度１とし、当該条件が成立した場合には他の条件を考慮しないでフィルタ処理を行わないようにすることができる。更に、平滑フィルタを選択するための条件を、膨張フィルタ及び収縮フィルタを選択するための条件よりも優先度を高く設定し、２つの条件が重複して成立した場合には、平滑フィルタを優先的に適用してもよい。或いは、この逆とし、２つの条件が重複して成立した場合に、平滑フィルタよりも膨張フィルタ又は収縮フィルタを優先的に適用してもよい。或いは、２つのフィルタ条件が成立した場合、それらフィルタ処理をいずれも行うようにしてもよい。
【００７５】
Ｓ９でフィルタ処理を行った後には、そのフィルタ処理後の画像を二値化した上で、公知のデコード処理を行う（Ｓ１０）。なお、本実施形態では、制御回路４０が「デコード手段」の一例に相当し、Ｓ９での画像処理後の画像データについてデコード処理を行うように機能している。
【００７６】
Ｓ１０のデコード処理の後には、そのデコード処理が成功したか否かを判断し（Ｓ１１）、成功した場合にはＳ１１にてＹｅｓに進み、当該読取処理を終了する。一方、Ｓ１０のデコード処理が失敗した場合には、Ｓ１１にてＮｏに進み、Ｓ２以降の処理を繰り返す。Ｓ１１にてＮｏに進み、Ｓ４以降の処理を再度行なう場合には、Ｓ１で取得した画像データを、前回Ｓ９で生成したフィルタ処理後の画像データに置き換え、Ｓ２以降の処理を上記と同様に行う。
【００７７】
例えば、Ｓ９でフィルタ処理を行った後の画像データについてデコード処理が失敗した場合、そのフィルタ処理後の画像データによって構成される処理後画像について、Ｓ２に二値化処理及びＳ３のラベリング処理を再度行い、フィルタ処理後の画像を二値化、ラベリングした後のコード領域について、Ｓ４の度数分布検出処理を行う。これにより、Ｓ４について上述したのと同様に、フィルタ処理後のコード領域の暗色エリア（処理後暗色エリア）の幅値について度数分布（処理後度数分布）が検出されることになる。
【００７８】
そして、フィルタ処理前の画像について行ったＳ５、Ｓ６、Ｓ７、Ｓ８と同様に、フィルタ処理後のコード領域について反転画像の度数分布（反転後度数分布）を検出すると共に、分布特徴検出処理（Ｓ６）、太さ度合検出処理（Ｓ７）、線切れ度合検出処理（Ｓ８）を行い、それら得られた分布特徴（ピーク一致状態、所定の小サイズの総度数等）、太さ度合、線切れ度合に基づいて、処理後画像に対し再度のフィルタ処理を行う（Ｓ９）。なお、再度のフィルタ処理は、図７のような判断基準を用いて１回目のフィルタ処理と同様の方法（上述）で行われる。そして、その再度のフィルタ処理後の画像データについて再度のデコード処理（Ｓ１０）が行われる。
【００７９】
（本実施形態の主な効果）
本実施形態のように、幅値度数分布の分布特徴を検出することで、画像が適切な分布状態であるか、或いはどのように画像不良が生じているか、等を適切に把握できる。更に、このような分布特徴だけでなく、線切れ度合あるいは太さ度合をも検出することで、情報コードの画像状態を２以上の尺度で多面的に確認できる。そして、このように画像状態をより詳細且つ具体的に把握した上でフィルタ処理を行うようにすれば、情報コードの印字状態により適したフィルタ処理を迅速に行うことができ、ひいては読取精度の向上、読取処理の迅速化を効果的に図ることができる。
【００８０】
また、本実施形態では、情報コードの撮像画像内において当該情報コードが存在するコード領域を検出し、その検出されたコード領域において、幅値度数分布の分布特徴、線切れ度合、太さ度合を検出している。このようにすると、読み取りに必要な範囲について幅値度数分布検出、分布特徴検出、度合検出を行うことができ、画像状態の詳細な把握を適切な範囲で迅速に行うことができる。
【００８１】
また、本実施形態では、線切れ度合及び太さ度合をいずれも検出し、それら検出された線切れ度合及び太さ度合に基づいてフィルタ種類を選択している。線切れ度合は平滑化処理を行うべきか否かの重要な指標となり、太さ度合は、膨張処理や収縮処理を行うべきか否かの重要な指標となるため、線切れ度合及び太さ度合のいずれをも考慮してフィルタを選択するようにすれば、より適切なフィルタを迅速に選択できる。
【００８２】
また、幅値度数分布に加え、画像データの明暗反転画像における暗色エリア（反転後暗色エリア）の幅値についての度数分布（反転後度数分布）を検出している。そして、幅値度数分布と反転後度数分布とに基づいて、幅値度数分布の分布特徴を検出している。
このように、通常の幅値度数分布だけでなく、反転後度数分布をも検出することで、画像状態をより多面的に確認でき、これら両度数分布を考慮してフィルタ選択処理を行うようにすれば、より一層適切なフィルタを選択できるようになる。
【００８３】
更に本実施形態では、幅値度数分布のピーク状態と、反転後度数分布のピーク状態との一致状態を検出している。情報コードの画像において線切れがあまり生じていない場合には、幅値度数分布と反転後度数分布のピークが一致するため、両度数分布のピーク一致状態を「分布特徴」として検出した上でフィルタ処理を行うようにすれば、コード画像の線切れ度合を考慮して適切なフィルタ処理を行うことができる。
【００８４】
また、情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、太さ度合として、明色単位サイズと暗色単位サイズとの比率（Ｌｂ／Ｌｗ）を算出している。このようにすると、暗色セルの太さ度合がどの程度であるかを客観的に示す値を精度高く迅速に検出できる。
【００８５】
また、本実施形態では、検出された規定パターンの領域において、線切れ度合及び太さ度合を検出している。予め形状が定められた規定パターンの領域では、どの部分がどの程度の幅であるべきか、或いは、セルが連続すべき部分がどの部分であるか等を特定しやすく、線切れ度合や太さ度合を迅速且つ的確に検出できる。
【００８６】
また、情報コードとしてＱＲコードが撮像された場合に、ファインダパターン内の明色セル及び暗色セルに基づいて線切れ度合及び太さ度合を検出している。ファインダパターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、ファインダパターンは、ＱＲコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【００８７】
また、本実施形態では、Ｓ９（図２）でのフィルタ処理後の画像データについてデコード処理を行い、そのデコード処理が失敗した場合、そのフィルタ処理後の画像（処理後画像）における暗色エリア（処理後暗色エリア）の幅値についての度数分布（処理後度数分布）を検出している。そして、その処理後度数分布についての分布特徴（処理後分布特徴）を検出し、この処理後分布特徴と、処理後画像についての度合検出結果と、に基づいて、処理後画像に対し再度のフィルタ処理を行っている。
このようにすると、撮像画像の状態に応じたフィルタ処理を行ってもデコードが成功しなかった場合に、その失敗した画像（処理後画像）を詳細且つ具体的に把握した上で、その処理後画像に適したフィルタ処理を再度行うことができ、読取成功確率を効果的に高めることができる。
【００８８】
［他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００８９】
上記実施形形態では、線切れ度合及び太さ度合をいずれも検出する構成について例示したが、いずれか一方のみを検出する構成であってもよい。
例えば線切れ度合のみを検出する構成の場合、図７の表から線切れ度合の部分を省略した判断基準を用いることができる。この場合、膨張フィルタ、収縮フィルタの判断基準は上記実施形態と同様であり、平滑フィルタの判断基準は、上述した「所定の小サイズの総度数が大きいか否か」のみとなる。また、この場合、Ｓ６の分布特徴検出処理において、「所定の小サイズの総度数が大きい」とされておらず、「Ｓ４の幅値度数分布のピーク状態とＳ５の反転後度数分布のピーク状態とが互いに一致する」とされ、Ｓ７で検出された太さ状態が第１閾値（例えば０．８）以上且つ第２閾値（例えば１．２）以下である場合に、画像処理は行わずに後述するデコード処理を行う（Ｓ１０）。
【００９０】
上記実施形態では、規定パターン（ファインダパターンＦＰ）を検出し、その規定パターンにおいて線切れ度合、太さ度合を検出していたが、規定パターンが検出されない場合、Ｓ６で検出された分布特徴に基づいて線切れ度合及び太さ度合を検出してもよい。例えば、Ｓ４で得られた幅値度数分布における最大値を示す幅値（単位セル幅と推定される幅値）よりもＳ５で得られた反転後度数分布における最大値を示す幅値のほうが大きい場合に、黒が太っていると判断し、収縮フィルタを用いるようにしてもよい。逆に、Ｓ４で得られた幅値度数分布における最大値を示す幅値よりもＳ５で得られた反転後度数分布における最大値を示す幅値のほうが小さい場合に、白が太っていると判断し、膨張フィルタを用いるようにしてもよい。或いは、Ｓ４で得られた幅値度数分布における最大値を示す幅値（単位セル幅と推定される幅値）について、当該幅値の度数（最大値）が所定の大状態（例えば、当該最大値が所定閾値以上の場合、或いは幅値度数分布の全度数に対して所定割合以上の場合）に、線切れが発生していると判断し、平滑フィルタを用いるようにしてもよい。
このようにすると、規定パターンが検出されない場合であっても、次善の策として、分布特徴に基づいて線切れ度合或いは太さ度合を把握することができ、画像状態の詳細且つ具体的な把握を担保できる。
【００９１】
上記実施形態では、ＱＲコードを撮像したときの例を示したが、対象となる情報コードはＱＲコードに限られず、データマトリックスコードやマキシコードなどの他の二次元コードであってもよい。例えば、図９（ａ）のようにデータマトリックスコードＤが撮像されたときに、データマトリックスコードＦの外周部に配置されるべきＬ字型パターンＬＰを検出し、その検出されたＬ字型パターンの状態に基づいて線切れ度合及び太さ度合を検出するようにしてもよい。この場合、Ｌ字型パターンＬＰ（図９（ｂ）において、図６（ａ）或いは図６（ｂ）と同様の方法で、線切れ度合（線切れ比ｂ／（ｂ＋ｗ））を算出したり、或いは、図６（ａ）と同様の方法で、外周部におけるＬ字型パターンＬＰとは異なる部分に配置される規定パターンＭＰの明色単位セル及び暗色単位セルの比率Ｌｂ／Ｌｗを求めるようにしてもよい。
Ｌ字型パターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、Ｌ字型パターンは、データマトリックコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【００９２】
上記実施形態では、メモリ３５に一旦記憶された後の画像データに基づいて分布特徴、太さ度合、線切れ度合、を検出していたが、メモリ３５に記憶される前の画像データに基づいてこれらを検出してもよい。
例えば、Ａ／Ｄ変換回路３３からの出力ラインを、メモリ３５に入力される第１ラインと、図示しないＦＰＧＡ（Field Programmable Gate Array）に入力される第２ラインとに分岐させ、メモリ３５に画像データを取り込みつつ、ＦＰＧＡによって当該画像データに対する各種処理を行いうるように構成してもよい。この場合、当該ＦＰＧＡ内に、Ｓ２〜Ｓ８の処理を行う機能を設けるようにすれば（即ち、二値化部、ラベリング部、度数分布検出部、反転後度数分布検出部、分布特徴検出部、太さ度合検出部、線切れ度合検出部を設けるようにすれば）、画像データの取り込みと並行して、分布特徴、太さ度合、線切れ度合を検出できる。
この場合、メモリ３５に記憶された画像データに対する読取処理としては、図２に代えて図１０のような処理を用いることができる。なお、図１０の、Ｓ２０１は図２のＳ１と同様であり、Ｓ２０３〜Ｓ２１２は、図２のＳ２〜Ｓ１１と同様である。
上記のように画像取り込み時にＦＰＧＡにおいてＳ２〜Ｓ８の処理を行う場合、メモリ３５に記憶された画像データに対する読取処理としては、まずＳ２０１の処理を行った後、初回のデコードが終了しているか否かを判断する（Ｓ２０２）。終了していない場合（即ち、撮像直後の場合、Ｓ２０２にてＮｏに進み、ＦＰＧＡで生成された検出データ（即ち、分布特徴、太さ度合、線切れ度合）に基づいてＳ２１０のフィルタ処理を行う。
一方、Ｓ２０２において初回のデコードが終了していると判断される場合、Ｓ２０２にてＹｅｓに進み、フィルタ処理後の画像（処理後画像）に対してＳ２０３以降の処理を行う。
このようにすると、画像データをメモリ３５（記憶手段）に取り込む前、或いは取り込みと並行して当該画像データの画像状態を確認できるため、画像状態の確認の迅速化、ひいては読取処理の迅速化を効果的に図ることができる。
なお、図１０の例では、初回のデコードが行われた後の、度数分布、太さ度合、線切れ度合等の検出を制御回路４０内のＣＰＵで行う例を示したが、例えば、Ｓ２１０でフィルタ処理を行った後の処理後画像データをＦＰＧＡに戻し、Ｓ２０３〜Ｓ２０９の処理をＦＰＧＡで行うようにしてもよい。
【００９３】
なお、上記実施形態では、Ｓ１で画像を取得したときに図３（ａ）のような画像が取得される場合について主に説明したが、Ｓ１において図３（ｂ）のような反転画像が撮像される場合にも同様に適用できる。この場合、撮像画像について、二値化処理（Ｓ２）、ラベリング処理（Ｓ３）を行った後、Ｓ４において、明色エリアの幅値についての幅値度数分布を検出する。そして、Ｓ３で得られた画像において、線切れ度合（明色セルが連続するべき領域におけるその連続するべきセルが途切れた度合）、及び明色セルの太さ度合を、第１実施形態で暗色セルについて行った方法と同様の方法で検出し、更に、Ｓ４で得られた幅値度数分布（この場合、明色エリアの幅値の度数分布）の分布特徴を第１実施形態と同様の方法で検出する。そして、それら分布特徴、線切れ度合、太さ度合に基づき、第１実施形態と同様の方法（図７）でフィルタ種別を選択し、フィルタ処理を行う。
【００９４】
上記実施形態では、Ｓ４で得られた幅値度数分布、及びＳ５で得られた反転後幅値度数分布のそれぞれにおいて、検出度数が最大値となっている幅値を検出し、互いに一致するか否かを判断していたが、ピーク状態の判断はこれに限られない。例えば、複数のピーク幅値を比較して分布の一致状態を把握するようにしてもよい。図４（ａ）では、幅値度数分布において、複数の山６１、６２、６３が検出され、各山のピークを示す幅値（幅値７、１４、２１）が、それぞれ、セル１つ分の幅、セル２つ分の幅、セル３つ分の幅と推定される。同様に、図４（ｂ）でも、度数分布（反転後度数分布）において、複数の山７１、７２、７３が検出され、各山のピークを示す幅値（幅値、７、１４、２１）が、それぞれ、セル１つ分の幅、セル２つ分の幅、セル３つ分の幅と推定される。よってＳ４で得られた幅値度数分布における複数の山（図４（ａ）では、３つの山６１、６２、６３）のピークを示す幅値と、Ｓ５で得られた反転後度数分布における複数の山（図４（ｂ）では、３つの山７１、７２、７３）のピークを示す幅値とを比較し、それらが全て一致した場合にピーク状態が一致すると判断するようにしてもよい。
【００９５】
上記実施形態では、検出度数が最大値となっている幅値を検出し、互いに一致するか否か判断していたが、これら幅値の差が一定値以下であるか否かを判断するようにしてもよい。例えば、Ｓ４で得られた幅値度数分布において検出度数が最大値を示している幅値がＷ１であり、Ｓ５で得られた幅値度数分布において、検出度数が最大値を示している幅値がＷ２である場合、Ｗ１−Ｗ２の絶対値が一定値以下である場合に両度数分布のピークが一致すると判断するようにしてもよい。
【００９６】
上記実施形態では、規定パターンとして、タイミングパターンの明色セル及び暗色セルを検出してＬｂ／Ｌｗを算出したが、これ以外の場所のデータに基づいて太さ度合を算出してもよい。例えば、ファインダパターンＦＰ内における、外周部の暗色部の幅と、その内側の明色部の幅との比率を太さ状態として算出してもよい。
【００９７】
上記の例では、線切れ比（線切れ度合）としてｂ／（ｂ＋ｗ）を算出しているが、線切れ比（線切れ度合）の算出方法はこれに限られない。例えば、図６（ｂ）のように、ファインダパターンＦＰの一辺の幅Ｚ４に対する当該一辺側に配される暗色部の幅値Ｚ３１〜Ｚ３７の総計Ｚ３の割合（即ちＺ３／Ｚ４）を線切れ比（線切れ度合）とするような算出方法であってもよく、線切れ度合を定量的に特定し得る算出方法であれば他の例でもよい。
【図面の簡単な説明】
【００９８】
【図１】図１は、第１実施形態に係る情報コード読取装置の電気的構成を例示するブロック図である。
【図２】図２は、図１の情報コード読取装置で行われる読取処理を例示するフローチャートである。
【図３】図３（ａ）は、コード領域における暗色エリアの幅値度数分布を検出するための走査について説明する説明図であり、図３（ｂ）は、反転画像における明色エリアの幅値の度数分布（反転後幅値度数分布）を検出するための走査について説明する説明図である。
【図４】図４（ａ）は、幅値度数分布の一例を示すグラフであり、図４（ｂ）は、反転後度数分布の一例を示すグラフである。
【図５】図５（ａ）は、幅値度数分布についての図４（ａ）とは異なる例を示すグラフであり、図５（ｂ）は、反転後度数分布についての図４（ｂ）とは異なる例を示すグラフである。
【図６】図６（ａ）は、ＱＲコードにおける太さ度合及び線切れ度合の検出方法を説明する説明図であり、図６（ｂ）は、線切れ度合の検出方法について、図６（ａ）とは異なる例を示す説明図である。
【図７】図７は、分布特徴、太さ度合、線切れ度合に基づいてフィルタを選択する方法を例示する説明図である。
【図８】図８（ａ）は、平滑フィルタについて説明する説明図であり、図８（ｂ）は、画像データにおける画素配列を説明する説明図である。また、図８（ｃ）は、３×３のフィルタサイズでフィルタ処理を行うときの着目画素及びその周囲画素を説明する説明図である。
【図９】図９（ａ）はデータマトリックスコードの撮像画像を例示する説明図であり、図９（ｂ）は、データマトリックスコードの規定パターンについて説明する説明図である。
【図１０】図１０は、分布特徴、度合検出をＦＰＧＡで行う場合の読取処理の流れを例示するフローチャートである。
【符号の説明】
【００９９】
１…情報コード読取装置
２３…受光センサ（撮像手段）
３５…メモリ（記憶手段）
４０…制御回路（画像処理手段、デコード手段、度数分布検出手段、分布特徴検出手段、度合検出手段、領域検出手段、規定パターン検出手段、ファインダパターン検出手段、Ｌ字型パターン検出手段）
Ｑ…ＱＲコード（情報コード）
ＦＰ…ファインダパターン（規定パターン）
Ｄ…データマトリックスコード（情報コード）
ＬＰ…Ｌ字型パターン（規定パターン）
【図１】
2010146335.tif 000003
【図２】
2010146335.tif 000004
【図３】
2010146335.tif 000005
【図４】
2010146335.tif 000006
【図５】
2010146335.tif 000007
【図６】
2010146335.tif 000008
【図７】
2010146335.tif 000009
【図８】
2010146335.tif 000010
【図９】
2010146335.tif 000011
【図１０】
2010146335.tif 000012