説明

バーコード解析装置及びプログラム

【課題】 レーザスキャナによる読取結果の正確性をユーザに知らせる。
【解決手段】CPU11は、バーコード印時色解析プログラム161と協働して、以下の処理を行う。CPU11は、カメラモジュール15に撮影を行わせ撮影画像を取得させる。CPU11は、この撮影画像からバーコード領域を抽出する。CPU11は、このバーコード領域を複数のライン毎に分析して、前記各ラインにおいてRGBの色成分毎に輝度ヒストグラムを生成する。CPU11は、前記各ラインにおいて前記色成分毎の輝度ヒストグラムに基づいてライン読取結果の正確性を算出する。CPU11は、算出したライン毎のライン読取結果の正確性を表示部14に表示させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード解析装置及びプログラムに関する。
【背景技術】
【0002】
レーザスキャナやCCDスキャナを用いてバーコードの読み取るバーコード読取装置が普及している。近年、これらのバーコード読取装置には、外光や照明、対象物の表面の鏡面反射等の周囲環境の影響を受けずにバーコードを読み取るために様々な工夫が施されている。
【0003】
例えば、バーコード読取装置が、多階調の画像データ中のバーコードの部分とその背景部分とに分離された階調値の度数分布を示すヒストグラムを生成し、このヒストグラムに基づいてバーコードを判別する(読み取る)ための閾値を決定する装置が開示されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−282280号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、周囲環境ではなく、バーコード自体の印字状態により、バーコード読取装置の読取精度が悪くなってしまう場合がある。
【0006】
例えば、レーザスキャナによるバーコードの読み取りにおいて、読み取り対象となるバーコードの印字色が茶色や紫色のような赤みがかった色の場合、レーザスキャナが発光するレーザの赤色と同系色となるため、バーコードが正しく認識されないことがある。
【0007】
また、日焼け等の劣化によりバーコードのある一部分の色が薄くなり、特定部分でバーコードが正しく認識されないことがある。
【0008】
また、バーコードの印字品質が悪い場合にも、バーコードが正しく認識されないことがある。
【0009】
このような条件で仮に、レーザスキャナが誤認識することなく、バーコードの読み取りに成功したとしても、レーザスキャナのスペックに対してかろうじて読み取りが成功しているのか、それとも余裕を持って読み取りが成功しているのかが分からないため、ユーザは、レーザスキャナを安心して使用することができず不便であった。即ち、ユーザは、レーザスキャナによる読取結果の正確性を知ることができず不便であった。
【0010】
本発明は、上述したような課題に鑑みて為されたものであり、その目的とするところは、レーザスキャナによる読取結果の正確性をユーザに知らせることである。
【課題を解決するための手段】
【0011】
上記の課題を解決するために、請求項1に記載のバーコード解析装置は、
表示部と、
撮影を行い撮影画像を取得する撮像部と、
前記撮影画像からバーコード領域を抽出し、当該バーコード領域を複数のライン毎に解析し、前記各ラインにおいてRGBの色成分毎に輝度ヒストグラムを生成し、前記各ラインにおいて前記色成分毎の輝度ヒストグラムに基づいてライン読取結果の正確性を算出し、当該算出したライン毎のライン読取結果の正確性を前記表示部に表示させる制御部と、
を備える。
【0012】
請求項2に記載の発明は、請求項1に記載の発明において、
前記制御部は、前記色成分毎の輝度ヒストグラムにおけるピークの個数が二個である場合、当該ピーク間の色差と、予め設定された前記色成分毎の限界色差とに基づいて、ライン読取結果の正確性を算出する。
【0013】
請求項3に記載の発明は、請求項1又は2に記載の発明において、
前記制御部は、ライン読取結果の正確性を数値として算出し、当該数値を前記表示部に表示させる。
【0014】
請求項4に記載のプログラムは、
コンピュータを、
表示データを表示させる表示手段、
撮影を行い撮影画像を取得する撮像手段、
前記撮影画像からバーコード領域を抽出し、当該バーコード領域を複数のライン毎に解析し、前記各ラインにおいてRGBの色成分毎に輝度ヒストグラムを生成し、前記各ラインにおいて前記色成分毎の輝度ヒストグラムに基づいてライン読取結果の正確性を算出し、当該算出したライン毎のライン読取結果の正確性を前記表示手段に表示させる制御手段、
として機能させる。
【発明の効果】
【0015】
本発明によれば、レーザスキャナによる読取結果の正確性をユーザに知らせることができる。
【図面の簡単な説明】
【0016】
【図1】バーコード解析装置のブロック図である。
【図2】バーコード印時色解析処理を示すフローチャート図である。
【図3】iライン目の色成分解析処理を示すフローチャート図である。
【図4】R成分ヒストグラム解析処理を示すフローチャート図である。
【図5】G成分ヒストグラム解析処理を示すフローチャート図である。
【図6】B成分ヒストグラム解析処理を示すフローチャート図である。
【図7】カメラモジュールの撮影例を示す図である。
【図8】バーコードの位置の検出例を示す図である。
【図9】バーコード領域の抽出例を示す図である。
【図10】バーコードにおける各ラインの色成分解析処理のイメージ図である。
【図11】バーコード及び読取成功指数の表示例である。
【図12】印字色が紫色のバーコードのラインの輝度ヒストグラムである。
【図13】印字色が黒色のバーコードのラインの輝度ヒストグラムである。
【図14】輝度ヒストグラムにおける2つのピーク間の色差Xが小さい場合の値Zについての説明図である。
【図15】輝度ヒストグラムにおける2つのピーク間の色差Xが中間の場合の値Zについての説明図である。
【図16】輝度ヒストグラムにおける2つのピーク間の色差Xが大きい場合の値Zについての説明図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本発明に係るバーコード解析装置の一実施形態について図1〜図16を参照して説明する。
【0018】
[バーコード解析装置の機能的構成]
図1に、バーコード解析装置10の機能的構成を示す。
【0019】
図1に示すように、バーコード解析装置10は、CPU11、RAM12、操作部13、表示部14、カメラモジュール15、ROM16、記憶部17を備えて構成され、各部はバス19により接続されている。また、バーコード解析装置10は、電源部18を備えている。
【0020】
CPU11は、操作部13から入力される操作信号に応じて、ROM16や記憶部17に記憶されている各種処理プログラムを読み出し、RAM12内に形成されたワークエリアに展開し、当該プログラムとの協働により各種処理を行う。
【0021】
RAM12は、揮発性のメモリであり、CPU11により実行される各種処理プログラム及びこれらプログラムに係るデータを一時的に記憶するワークエリアを形成する。
【0022】
操作部13は、シャッターボタン、数字入力ボタン及び各種機能ボタン等を備えて構成され、各ボタンに対する押下操作により入力された操作信号をCPU11に出力する。
【0023】
表示部14は、LCDにより構成され、CPU11から入力される表示データに基づいて各種画面を表示する。
【0024】
カメラモジュール15は、このカメラモジュール15の撮影領域に対して撮影を行い、撮影画像を取得する。
【0025】
ROM16は、読み出し専用の記憶媒体である。ROM16は、バーコード印時色解析プログラム161を記憶する。CPU11は、このバーコード印時色解析プログラム161と協働して、バーコード印時色解析処理を行う。
【0026】
記憶部17は、ハードディスク等から構成され、制御プログラム、当該プログラムやバーコード印時色解析プログラム161の実行に必要なパラメータやファイル等を記憶している。
【0027】
電源部18は、CPU11、RAM12、操作部13、表示部14、カメラモジュール15、ROM16、記憶部17等に電源を供給する。
【0028】
[バーコード印時色解析処理]
次に、CPU11が実行するバーコード印時色解析処理の具体的な動作について、図2を用いて説明する。図2は、動作を説明するフローチャートである。このフローチャートの各ステップで示す各処理はプログラムにより記述され、このプログラムはコンピュータにより読み出され、コンピュータをフローチャートに示す各処理として機能させる。
【0029】
図2に示すように、ユーザのシャッターボタン押下操作による操作部13からの操作信号が入力されると(ステップS1)、CPU11は、カメラモジュール15に撮影を行わせて撮影画像を取得させる。具体的に、図7に示すように、カメラモジュール15は、撮影領域R1を撮影して撮影画像を取得する。
【0030】
図2に戻り、CPU11は、カメラモジュール15から撮影画像のデータを取得してRAM12に記憶させる(ステップS2)。
【0031】
CPU11は、撮影画像のデータを解析し、撮影画像におけるバーコードの位置を検出する(ステップS3)。即ち、CPU11は、バーコード位置解析を行う。
【0032】
CPU11は、バーコードの位置を検出できなかった場合(ステップS4;NO)、「解析失敗」と表示部14に表示させて(ステップS13)、処理を終了する。
【0033】
一方、CPU11は、バーコードの位置を検出すると(ステップS4;YES)、検出したバーコードの部分(バーコード領域)を抽出する(切り出す)(ステップS5)。図8に、バーコードの位置の検出例を示す。図9に、バーコード領域の抽出例を示す。
【0034】
図2に戻り、CPU11は、カウンタ変数iの値を0に設定する(ステップS6)。CPU11は、抽出したバーコードをライン分割する。CPU11は、ライン分割したライン数(切り出し部ライン数)とカウンタ変数iの値を比較する(ステップS7)。
【0035】
比較の結果、カウンタ変数iの値が切り出し部ライン数より小さい場合(ステップS7;YES)、CPU11は、iライン目の色成分解析処理を行う。CPU11は、iライン目の色成分解析処理において、iライン目の読取成功指数を算出する。読取成功指数とは、該当ライン(iライン目)をレーザスキャナでスキャンするときの読取の正確性を示す値である。尚、iライン目の色成分解析処理についての詳細は後述する。
【0036】
そして、CPU11は、カウンタ変数iに1を加算し(ステップS9)、再び、ライン分割したライン数(切り出し部ライン数)とカウンタ変数iの値を比較する(ステップS7)。
【0037】
一方、比較の結果、カウンタ変数iの値が切り出し部ライン数以上の場合(ステップS7;NO)、CPU11は、ステップS5において切り出したバーコード画像を表示部14に表示させる(ステップS10)。そして、CPU11は、各ラインのうち、読取成功指数が最高のラインと最低のラインと各読取成功指数の値とをバーコード画像上に表示部14を制御して表示させる(ステップS11)。
【0038】
更に、CPU11は、各ラインにおける読取成功指数の分布をグラフ化して表示部14に表示させる(ステップS12)。
【0039】
即ち、CPU11は、図10に示すように、抽出したバーコードの分割した全てのラインにおいて色成分解析処理を行い、各ラインの読取成功指数を算出する。そして、CPU11は、図11に示すような、バーコード画像d1、読取成功指数が最高のラインd3とその読取成功指数の値、読取成功指数が最低のラインd2とその読取成功指数の値、読取成功指数の分布のグラフd4を表示部14に表示させる。
【0040】
[iライン目の色成分解析処理]
次に、iライン目の色成分解析処理(図2のステップS8)の具体的な動作について、図3を用いて説明する。iライン目の色成分解析処理とは、該当ライン(iライン)における読取成功指数を算出する処理である。
【0041】
図3に示すように、CPU11は、1ライン分(iライン目)のバーコードの画像データに対して、RGBの3つの色成分に分解する処理を施し、各成分に対して輝度ヒストグラムを生成する(ステップS101)。
【0042】
図12、図13に、CPU11によって生成されるRGB成分の輝度ヒストグラムを示す。輝度ヒストグラムの横軸は、明るさ(左端が黒色、右端が白色)を表している。また、輝度ヒストグラムの縦軸は、画素数を表している。
【0043】
図12の輝度ヒストグラムは、バーコードの印字色が紫色の場合、即ち、レーザスキャナでスキャンする際、誤認識し易い(読取の正確性が低い)バーコードのラインに基づくものである。通常、この輝度ヒストグラムでは、ピークの個数が2個となる。
【0044】
図13の輝度ヒストグラムは、バーコードの印字色が黒色の場合、即ち、レーザスキャナでスキャンする際、読取の正確性が高いバーコードのラインに基づくものである。通常、この輝度ヒストグラムでは、ピークの個数が2個となる。また、この輝度ヒストグラムのピーク間の色差(間隔)は、図12の輝度ヒストグラムのピーク間の色差に比べて大きい。尚、ピーク間の色差が大きくなる程、読取の正確性が高くなる。
【0045】
図3に戻り、CPU11は、iライン目の読取成功指数の値を0に設定(初期化)する(ステップS102)。
【0046】
CPU11は、R成分の輝度ヒストグラムの解析(R成分ヒストグラム解析処理)を行う(ステップS103)。R成分ヒストグラム解析処理が失敗すると(ステップS104;NO)、CPU11は、iライン目の読取成功指数の値を0に設定し(ステップS109)、処理を終了する。
【0047】
一方、R成分ヒストグラム解析処理が成功すると(ステップS104;YES)、CPU11は、G成分の輝度ヒストグラムの解析(G成分ヒストグラム解析処理)を行う(ステップS105)。G成分ヒストグラム解析処理が失敗すると(ステップS106;NO)、CPU11は、iライン目の読取成功指数の値を0に設定し(ステップS109)、処理を終了する。
【0048】
一方、G成分ヒストグラム解析処理が成功すると(ステップS106;YES)、CPU11は、B成分の輝度ヒストグラムの解析(B成分ヒストグラム解析処理)を行う(ステップS107)。B成分ヒストグラム解析処理が失敗すると(ステップS108;NO)、CPU11は、iライン目の読取成功指数の値を0に設定し(ステップS109)、処理を終了する。
【0049】
一方、B成分ヒストグラム解析処理が成功すると(ステップS108;YES)、処理が終了する。
【0050】
[R成分ヒストグラム解析処理]
次に、R成分ヒストグラム解析処理(図3のステップS103)の具体的な動作について、図4を用いて説明する。
【0051】
図4に示すように、CPU11は、生成したR成分の輝度ヒストグラムのピークの個数が2個であるか否かを判定する(ステップS201)。
【0052】
判定の結果、ピークの個数が2個でない場合(ステップS201;NO)、CPU11は、輝度ヒストグラムの解析が失敗であるとし(ステップS207)、処理を終了する。
【0053】
一方、判定の結果、ピークの個数が2個である場合(ステップS201;YES)、CPU11は、2つのピーク間の色差Xを測定する(ステップS202)。
【0054】
次に、CPU11は、予め設定されているR成分限界色差Yを記憶部17から読み出す(ステップS203)。ここで、R成分限界色差とは、測定の対象となるレーザスキャナが読み出すことができるバーコードのR成分の限界の色差である。R成分限界色差は、測定の対象となるレーザスキャナに固有の値である。バーコード印時色解析処理に先立ち、CPU11は、ユーザ操作による操作部13からの操作信号に基づいて、R成分限界色差を設定する。
【0055】
CPU11は、色差XからR成分限界色差Yを減算し(ステップS204)、その値Zを読取成功指数に加算する(ステップS205)。そして、CPU11は、輝度ヒストグラムの解析が成功であるとし(ステップS206)、処理を終了する。
【0056】
図14〜図16を用いて、色差XからR成分限界色差Yを減算した値Zについて説明する。
【0057】
図14は、輝度ヒストグラムにおける2つのピーク間の色差Xが小さい場合の値Zについての説明図である。この場合、色差XはR成分限界色差Yより小さいので、値Zはマイナスの値となる。
【0058】
図15は、輝度ヒストグラムにおける2つのピーク間の色差Xが中間の場合の値Zについての説明図である。この場合、色差XはR成分限界色差Yと同じ位であるので、値Zはゼロに近い値となる。
【0059】
図16は、輝度ヒストグラムにおける2つのピーク間の色差Xが大きい場合の値Zについての説明図である。この場合、色差XはR成分限界色差Yより大きいので、値Zはプラスの値となる。
【0060】
このように、ピーク間の色差が大きくなる程、即ち読取の正確性が高い程、値Zは大きくなる。
【0061】
[G成分ヒストグラム解析処理]
次に、G成分ヒストグラム解析処理(図3のステップS105)の具体的な動作について、図5を用いて説明する。
【0062】
図5に示すように、CPU11は、生成したG成分の輝度ヒストグラムのピークの個数が2個であるか否かを判定する(ステップS301)。
【0063】
判定の結果、ピークの個数が2個でない場合(ステップS301;NO)、CPU11は、輝度ヒストグラムの解析が失敗であるとし(ステップS307)、処理を終了する。
【0064】
一方、判定の結果、ピークの個数が2個である場合(ステップS301;YES)、CPU11は、2つのピーク間の色差Xを測定する(ステップS302)。
【0065】
次に、CPU11は、予め設定されているG成分限界色差Yを記憶部17から読み出す(ステップS303)。ここで、G成分限界色差とは、測定の対象となるレーザスキャナが読み出すことができるバーコードのG成分の限界の色差である。G成分限界色差は、測定の対象となるレーザスキャナに固有の値である。バーコード印時色解析処理に先立ち、CPU11は、ユーザ操作による操作部13からの操作信号に基づいて、G成分限界色差を設定する。
【0066】
CPU11は、色差XからG成分限界色差Yを減算して、更に0.2を乗算する(ステップS304)。CPU11は、その値Zを読取成功指数に加算する(ステップS305)。ここで、CPU11が、色差XからG成分限界色差Yを減算した値に0.2を乗算するのは、レーザスキャナが発光するレーザ色が赤色であることに基づく重み付けのためである。
【0067】
そして、CPU11は、輝度ヒストグラムの解析が成功であるとし(ステップS306)、処理を終了する。
【0068】
[B成分ヒストグラム解析処理]
次に、B成分ヒストグラム解析処理(図3のステップS107)の具体的な動作について、図6を用いて説明する。
【0069】
図6に示すように、CPU11は、生成したB成分の輝度ヒストグラムのピークの個数が2個であるか否かを判定する(ステップS401)。
【0070】
判定の結果、ピークの個数が2個でない場合(ステップS401;NO)、CPU11は、輝度ヒストグラムの解析が失敗であるとし(ステップS407)、処理を終了する。
【0071】
一方、判定の結果、ピークの個数が2個である場合(ステップS401;YES)、CPU11は、2つのピーク間の色差Xを測定する(ステップS402)。
【0072】
次に、CPU11は、予め設定されているB成分限界色差Yを記憶部17から読み出す(ステップS403)。ここで、B成分限界色差とは、測定の対象となるレーザスキャナが読み出すことができるバーコードのB成分の限界の色差である。B成分限界色差は、測定の対象となるレーザスキャナに固有の値である。バーコード印時色解析処理に先立ち、CPU11は、ユーザ操作による操作部13からの操作信号に基づいて、B成分限界色差を設定する。
【0073】
CPU11は、色差XからB成分限界色差Yを減算して、更に0.2を乗算する(ステップS404)。CPU11は、その値Zを読取成功指数に加算する(ステップS405)。ここで、CPU11が、色差XからB成分限界色差Yを減算した値に0.2を乗算するのは、レーザスキャナが発光するレーザ色が赤色であることに基づく重み付けのためである。
【0074】
そして、CPU11は、輝度ヒストグラムの解析が成功であるとし(ステップS406)、処理を終了する。
【0075】
以上、本実施の形態によれば、バーコード解析装置10のCPU11は、バーコード印時色解析プログラム161と協働して、以下の処理を行う。即ち、CPU11は、カメラモジュール15に撮影を行わせ撮影画像を取得させる。CPU11は、この撮影画像からバーコード領域を抽出する(図9参照)。CPU11は、このバーコード領域を複数のライン毎に分析して、前記各ラインにおいてRGBの色成分毎に輝度ヒストグラムを生成する。CPU11は、前記各ラインにおいて、前記色成分毎の輝度ヒストグラムにおけるピークの個数が二個である場合、当該ピーク間の色差と、予め設定された前記色成分毎の限界色差とに基づいて、ライン読取結果の正確性を数値として算出する。CPU11は、当該算出したライン毎のライン読取結果の正確性を表示部14に表示させる。
【0076】
そのため、このバーコード解析装置10を使用して、ユーザは、使用するレーザスキャナに対する、バーコードのライン毎のライン読取結果の正確性を知ることができる。即ち、ユーザは、バーコードの印字品質の確認、バーコードの劣化の状態の確認を容易に行うことができる。
【0077】
尚、本実施の形態における記述は、本発明に係るバーコード解析装置の一例であり、これに限定されるものではない。バーコード解析装置の細部構成及び細部動作に関しても適宜変更可能である。
【0078】
例えば、本実地の形態のバーコード解析装置10は、算出したライン毎のライン読取結果の正確性を、図11のように表示部14に表示させるとしたが、全てのラインにおけるライン読取結果の読取成功指数の数値を表示部14に表示させる構成としてもよい。
【0079】
また、本実施形態では、プログラムを格納したコンピュータ読み取り可能な媒体としてROM、ハードディスクを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、CD−ROM等の可搬型記憶媒体、フラッシュメモリ等の不揮発性メモリ等を適用することが可能である。
【符号の説明】
【0080】
10 バーコード解析装置
11 CPU
12 RAM
13 操作部
14 表示部
15 カメラモジュール
16 ROM
17 記憶部
18 電源部
19 バス
161 バーコード印時色解析プログラム
d1 バーコード画像
d2 読取成功指数が最低のライン
d3 読取成功指数が最高のライン
d4 読取成功指数の分布のグラフ
R1 撮影領域

【特許請求の範囲】
【請求項1】
表示部と、
撮影を行い撮影画像を取得する撮像部と、
前記撮影画像からバーコード領域を抽出し、当該バーコード領域を複数のライン毎に解析し、前記各ラインにおいてRGBの色成分毎に輝度ヒストグラムを生成し、前記各ラインにおいて前記色成分毎の輝度ヒストグラムに基づいてライン読取結果の正確性を算出し、当該算出したライン毎のライン読取結果の正確性を前記表示部に表示させる制御部と、
を備えるバーコード解析装置。
【請求項2】
前記制御部は、前記色成分毎の輝度ヒストグラムにおけるピークの個数が二個である場合、当該ピーク間の色差と、予め設定された前記色成分毎の限界色差とに基づいて、ライン読取結果の正確性を算出する、
請求項1に記載のバーコード解析装置。
【請求項3】
前記制御部は、ライン読取結果の正確性を数値として算出し、当該数値を前記表示部に表示させる、
請求項1又は2に記載のバーコード解析装置。
【請求項4】
コンピュータを、
表示データを表示させる表示手段、
撮影を行い撮影画像を取得する撮像手段、
前記撮影画像からバーコード領域を抽出し、当該バーコード領域を複数のライン毎に解析し、前記各ラインにおいてRGBの色成分毎に輝度ヒストグラムを生成し、前記各ラインにおいて前記色成分毎の輝度ヒストグラムに基づいてライン読取結果の正確性を算出し、当該算出したライン毎のライン読取結果の正確性を前記表示手段に表示させる制御手段、
として機能させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate