(57)【要約】      （修正有）【課題】シンボルをより好適に読み取ることが可能なシンボル読取装置を提供する。【解決手段】シンボル読取装置は、シンボルを撮像するカメラ１４と、カメラ１４による撮像画像を表示する表示装置１６と、枠を表示装置１６に表示し、撮像画像のうち枠内の範囲をデコード範囲として設定してデコード範囲からシンボルを読み取り、読み取ったシンボルの平均セルサイズが所定のセルサイズより大きい場合、枠内の範囲を小さくする処理を行うＣＰＵ１１と、を備える。【選択図】図１
2010092211.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮像する撮像手段と、
前記撮像手段による撮像画像を表示する表示手段と、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、
読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第１の表示制御手段と、
を備えることを特徴とするシンボル読取装置。
【請求項２】
被写体を撮像する撮像手段と、
前記撮像手段による撮像画像を表示する表示手段と、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、
読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第２の表示制御手段と、
を備えることを特徴とするシンボル読取装置。
【請求項３】
前記枠内に収まるよう撮像されたシンボルのセル幅が前記所定のセル幅以下となる前記枠を表示させる第３の表示制御手段を備えることを特徴とする請求項１又は２に記載のシンボル読取装置。
【請求項４】
前記撮像画像にぶれが生じていることを検出するぶれ検出手段と、
前記撮像画像にぶれが生じている場合、ぶれが生じていることを示す表示を通知するぶれ通知手段と、
を備えることを特徴とする請求項１から３のいずれか一項に記載のシンボル読取装置。
【請求項５】
前記シンボルの四辺の対向する二辺の長さの比率が所定の比率より大きい場合に、前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定する斜め撮像判定手段と、
前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定された場合、斜め方向からの撮像が行われていることを通知する斜め撮像通知手段を備えることを特徴とする請求項１から４のいずれか一項に記載のシンボル読取装置。
【請求項６】
コンピュータを、
撮像手段による被写体の撮像を制御する撮像制御手段、
前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、
読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第１の表示制御手段、
として機能させるためのプログラム。
【請求項７】
コンピュータを、
撮像手段による被写体の撮像を制御する撮像制御手段、
前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、
読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第２の表示制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンボル読取装置及びプログラムに関する。
【背景技術】
【０００２】
二次元バーコード等のシンボルを撮像して当該シンボルに含まれる文字列等の情報を読み取るシンボル読取装置が知られている。シンボル読取装置は、カメラ等の撮像装置でシンボルを撮像し、撮像画像をデコードエンジン等の読取装置が解析することで、シンボルの内容を読み取る。
【０００３】
シンボル読取装置の使用者は、シンボルを撮像するためカメラの撮像範囲内にシンボルを収められるようカメラ又はシンボル読取装置のカメラ部分の位置や角度を調節する必要がある。シンボルの撮像操作を助けるため、カメラによる撮像範囲をプレビュー表示する表示装置を備えるシンボル読取装置がある。さらに、デコードエンジンによるシンボルの解析範囲よりも広い範囲をプレビュー表示すると共に、当該プレビュー表示内においてデコードエンジンによるシンボルの解析範囲となる範囲を示す枠を表示して当該枠内にシンボルを収めて撮像するよう促すシンボル読取装置が知られている（例えば特許文献１）。
【特許文献１】特開２００４−２８７８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のシンボル読取装置では、シンボルを好適に読み取れることができない場合がある。
プレビュー表示内に表示される枠及び枠内の範囲は、固定のサイズである。一方、シンボルの面積はシンボル毎に異なる。そして、シンボル読取装置の使用者は、枠いっぱいにシンボルを撮像しようとすることが多い。このため、例えば枠内の範囲の大きさに対して小さいシンボルを撮像した場合に、枠いっぱいにシンボルを拡大するためにカメラをシンボルに近づけすぎてしまい、その結果シンボルに対して焦点が合わない状態で撮像を行ってしまうことがある。焦点が合わないシンボルの撮像画像にはぼやけが生じ、デコードエンジンによる読取が行えない場合がある。
【０００５】
一方、枠内の範囲の大きさに対してシンボルの面積が大きい場合、使用者は枠内にシンボルを収めようとする結果、シンボルから大きく離れた位置からの撮像を行うことが多い。その結果、撮像されたシンボルはシンボルの面積に対して非常に小さくなり、シンボルの撮像画像につぶれが生じてデコードエンジンによる読取が行えないことがある。この場合もシンボル読取装置によるシンボルの読取は好適に行うことができない。
【０００６】
本発明の課題は、シンボルをより好適に読み取ることが可能なシンボル読取装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、請求項１記載の発明によるシンボル読取装置は、被写体を撮像する撮像手段と、前記撮像手段による撮像画像を表示する表示手段と、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第１の表示制御手段と、を備えることを特徴とする。
【０００８】
請求項２記載の発明によるシンボル読取装置は、被写体を撮像する撮像手段と、前記撮像手段による撮像画像を表示する表示手段と、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第２の表示制御手段と、を備えることを特徴とする。
【０００９】
請求項３記載の発明は、請求項１又は２に記載のシンボル読取装置において、前記枠内に収まるよう撮像されたシンボルのセル幅が前記所定のセル幅以下となる前記枠を表示させる第３の表示制御手段を備えることを特徴とする。
【００１０】
請求項４記載の発明は、請求項１から３のいずれか一項に記載のシンボル読取装置において、前記撮像画像にぶれが生じていることを検出するぶれ検出手段と、前記撮像画像にぶれが生じている場合、ぶれが生じていることを示す表示を通知するぶれ通知手段と、を備えることを特徴とする。
【００１１】
請求項５記載の発明は、請求項１から４のいずれか一項に記載のシンボル読取装置において、前記シンボルの四辺の対向する二辺の長さの比率が所定の比率より大きい場合に、前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定する斜め撮像判定手段と、前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定された場合、斜め方向からの撮像が行われていることを通知する斜め撮像通知手段を備えることを特徴とする。
【００１２】
請求項６記載のプログラムは、コンピュータを、撮像手段による被写体の撮像を制御する撮像制御手段、前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第１の表示制御手段、として機能させることを特徴とする。
【００１３】
請求項７記載のプログラムは、コンピュータを、撮像手段による被写体の撮像を制御する撮像制御手段、前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第２の表示制御手段、として機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、シンボルをより好適に読み取ることが可能なシンボル読取装置を提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、図を参照して本発明の実施形態について詳細に説明するが、この発明は、この実施の形態に限定されない。また、この発明の実施の形態は発明の最も好ましい形態を示すものであり、発明の用途はこれに限定されない。
【００１６】
図１に、本発明の第１の実施形態によるシンボル読取装置１の主要構成を示す。
シンボル読取装置１は、シンボル読取装置１の動作制御のための各種の処理を行うＣＰＵ１１と、各種のプログラム及びデータ等を記憶するＲＯＭ１２と、一時的に生じるデータを格納するＲＡＭ１３と、被写体を撮像する撮像装置として機能するカメラ１４と、カメラ１４による撮像操作入力その他の入力を可能とする入力装置１５と、カメラ１４による撮像画像の表示、シンボルＳを収める範囲をガイダンスする枠２１の表示及びその他の各種情報を表示する表示装置１６と、シンボル読取装置１の各部に電力を供給する電源装置１７と、を備える。
【００１７】
ＣＰＵ１１は、ＲＯＭ１２から処理内容に応じたプログラム及びデータ等を読み込んで処理を行う所謂ソフトウェア処理によってシンボル読取装置１の各部の動作制御を行う。当該処理において一時的に生じるデータはＲＡＭ１３に格納され、必要に応じて呼び出される。以下、ＣＰＵ１１が行う処理はソフトウェア処理による。
【００１８】
ＲＯＭ１２は、少なくともシンボル解析プログラム１２ａ、枠表示プログラム１２ｂ、デコード範囲枠決定プログラム１２ｃ及びデコード範囲データ１２ｄを記憶する。これらのプログラム及びデータによるＣＰＵ１１の動作制御については後述する。
【００１９】
カメラ１４は、少なくともセンサー１４ａ、レンズ１４ｂ及び制御部１４ｃを有する。センサー１４ｂはイメージセンサであり、例えばＣＣＤやＣＭＯＳ等を用いたものが挙げられる。センサー１４ａはレンズ１４ｂを介して被写体を撮像する。制御部１４ｃはセンサー１４ａによる撮像に関る動作制御を行う。カメラ１４による撮像画像は縦横に整列された複数の画素（ピクセル）を有し、ＲＡＭ１３にデータとして保存される。
【００２０】
入力装置１５は少なくともトリガキー１５ａを有する。トリガキー１５ａはシンボル読取装置１の使用者による手動でのＯＮ／ＯＦＦの切替を可能とするスイッチであり、例えば押圧操作によるボタン等である。トリガキー１５ａがＯＮのとき、制御部１４ｃはセンサー１４ａを動作させてカメラ１４による被写体の撮像を行わせる。このとき、カメラ１４はトリガキー１５ａがＯＮとなっている間、所定の秒間フレームで撮像を継続する。
【００２１】
表示装置１６は、カメラ１４による撮像画像を表示すると共に、表示装置１６はシンボルＳを収める範囲をガイダンスする枠２１の表示を行う。以下、カメラ１４による撮像画像の表示をプレビューと称する。
【００２２】
図２にプレビュー画面の一例を示す。
図２に示すように、プレビュー画面には枠２１が表示される。図２に示すプレビュー画面では、被写体に含まれるシンボルＳが枠２１で囲われた範囲内に収まっている。
【００２３】
枠２１の内側は、デコード範囲である。ＣＰＵ１１は、デコード範囲に収まるよう撮像されたシンボルＳの解析（デコード）を行い、シンボルＳの内容即ちシンボルＳが含む文字列情報を読み取る。ＣＰＵ１１は、シンボル解析プログラム１２ａを読み込んで処理することにより、シンボルＳの解析（デコード）を行う。即ち、デコード範囲はシンボル読取領域であり、シンボル解析プログラム１２ａはＣＰＵ１１を読取手段として機能させる。
【００２４】
枠２１は、デコード範囲の外周四隅を示す枠として表示される。枠２１の表示は、ＣＰＵ１１が枠表示プログラム１２ｂを読み込んで処理することによって表示装置１６に表示される。即ち、枠表示プログラム１２ｂはＣＰＵ１１を枠表示手段として機能させる。
【００２５】
枠２１の表示位置即ちデコード範囲の位置は、デコード範囲データ１２ｄにより決定される。デコード範囲データ１２ｄは、プレビュー画面の左上始点座標（Ｘ１，Ｙ１）と、右下終点座標（Ｘ２，Ｙ２）とを含むデータであり、ＣＰＵ１１は当該始点座標と終点座標に基づき、（Ｘ１，Ｙ１）、（Ｘ１，Ｙ２）、（Ｘ２，Ｙ１）、（Ｘ２，Ｙ２）内の範囲をデコード範囲として設定する。プレビュー画面は複数のピクセルを有する撮像画像を表示する画面であり、始点座標（Ｘ１，Ｙ１）及び終点座標（Ｘ２，Ｙ２）はプレビュー画面内のある画素の位置と対応する。なお、図２以下の各図で示す画面において、横方向の幅をＸ方向の幅、縦方向の幅をＹ方向の幅とする。
デコード範囲データ１２ｄの読み込みは、カメラ１４による撮像前に行われる。
【００２６】
次に、ＣＰＵ１１によるシンボルＳの解析について説明する。シンボルＳの解析は、シンボル検出処理、二値化処理、デコード処理を含む。以下、順を追って説明する。
【００２７】
まず、シンボル検出について説明する。
図３に、シンボル検出処理の概念図を示す。
シンボル検出処理では、ＣＰＵ１１はシンボル読取領域内でエッジ検出を行う。エッジ検出によって検出されたエッジが四つの角を有し、各角が直線（図３に示す方形状の直線Ｌ）で結ばれて四つの角の内側を閉じた領域としていた場合に、閉じた領域内をシンボルＳとして検出する。
【００２８】
シンボルＳの検出に成功した場合、検出したシンボルＳに対して二値化処理を行う。シンボルＳの検出に失敗した場合、再度撮像画像を得てシンボル検出処理を行う。
【００２９】
シンボル検出処理におけるエッジ検出は既存の技術によるエッジ検出方法であるので、詳細は省略する。エッジ検出は、厳密なエッジ検出を必要とせず、撮像されたシンボルＳにある程度（例えば予め設定された閾値以下）のぼけや滲み等が生じていたとしてもエッジを検出できるよう設定されることが望ましい。また、エッジで囲われた範囲が閉じた領域となっているか否かの判別についても、完全に閉じている必要はなく、直線にある程度（例えば予め設定された閾値以下）の欠落があっても構わないよう設定されることが望ましい。
【００３０】
次に、二値化処理について説明する。二値化処理は、輝度検出処理、セルサイズ検出処理、平均セルサイズ算出処理、二値化成否判定処理を含む。以下、順を追って説明する。
【００３１】
輝度検出処理は、撮像されたシンボルＳを所定の数の連続したピクセル（単位ピクセル）で区切り、単位ピクセル間の輝度の明暗の差（輝度差）に基づき輝度の明るい部分を白セル、輝度の暗い部分を黒セル、白セルとも黒セルとも判別できない部分をグレーゾーンとして判別し、白セル、黒セル及びグレーゾーンの配列パターンを得る処理である。白セル、黒セル及びグレーゾーンの判別は、輝度差が所定の閾値より大きいか否かに基づく。
【００３２】
図４に、撮像されたシンボルＳの一例を示す。図４（ａ）はぼけや滲みがない又はほとんど生じていないシンボルＳ、図４（ｂ）はぼけや滲みが生じているシンボルＳである。
図５に、輝度検出処理によって検出された輝度分布の一例を示す。図５（ａ）は図４（ａ）に示すシンボルＳの一部分の輝度分布、図５（ｂ）は図４（ｂ）に示すシンボルＳの一部分の輝度分布である。
【００３３】
レンズ１４ｂとシンボルＳとの間の距離が好適な状態で撮像が行われると、図４（ａ）に示すように、ぼけや滲みがない又はほとんど生じていないシンボルＳの撮像画像が得られる。この場合、輝度検出処理によって得られる輝度分布は、図５（ａ）に示すように、輝度差が大きく現れる部分が多くなり、その結果、白セル、黒セルの判定を行える部分が多くなる。即ち、グレーゾーンの割合が小さくなる。
【００３４】
一方、レンズ１４ｂとシンボルＳとの間の距離が不適切な状態で撮像が行われると、図４（ｂ）に示すように、ぼけや滲みが生じたシンボルＳの撮像画像が得られる。この場合、輝度検出処理によって得られる輝度分布は、図５（ｂ）に示すように、輝度差が明確に現れず、グレーゾーンの割合が大きくなる。
【００３５】
セルサイズ検出処理は、白セル又は黒セルとして判定された部分の連続するピクセル数（セルサイズ）を検出する処理である。各セルサイズはＲＡＭ１３に格納される。
平均セルサイズ算出処理は、セルサイズ検出処理で検出された白セル及び黒セルのセルサイズの平均を算出する。平均セルサイズはＲＡＭ１３に格納される。
【００３６】
二値化成否判定処理は、シンボルＳとして検出された全範囲に対するグレーゾーンの割合が所定の割合以下であるか否かに基づき、二値化処理の成否を判定する処理である。本実施形態では、グレーゾーンの割合が２０％以下の場合に二値化成功、２０％を上回った場合に二値化失敗と判定する。
二値化成功した場合、デコード処理を行う。二値化失敗した場合、トリガー１５ａがＯＮである限り再度撮像画像を得てシンボルＳの解析を行う。
【００３７】
次に、デコード処理について説明する。
デコード処理は、所定のルールに基づいてシンボルＳに含まれる白セル及び黒セルの配列パターンを解析し、文字列を読み出す処理である。
【００３８】
デコード処理に成功した場合、当該シンボルＳの読取は終了する。デコード処理に失敗した場合、トリガー１５ａがＯＮである限り再度撮像画像を得てシンボルＳの解析を行う。
【００３９】
二値化失敗時又はデコード失敗時、ＣＰＵ１１は再度撮像画像を得る前にデコード枠範囲決定処理を行う。デコード枠範囲決定処理は、枠２１内の範囲を縮小するよう枠２１の表示位置を変更する処理である。
【００４０】
図６に、枠２１の縮小前後のプレビュー画面の一例を示す。図６（ａ）は枠２１の縮小前、図６（ｂ）は枠２１の縮小後である。
二値化失敗又はデコード失敗の場合、例えば図４（ｂ）及び図６（ａ）に示すように、シンボルＳの撮像画像にぼけや滲みが生じていることが多い。このため、二値化処理においてグレーゾーンの割合が大きくなり二値化失敗となる。あるいは二値化成功しても白セル、黒セルの間に含まれるグレーゾーン部分によりデコード処理が妨げられてデコード処理が失敗する。
【００４１】
シンボルＳの撮像画像におけるぼけや滲みは、レンズ１４ｂとシンボルＳとの間の距離が不適切であることが原因で生じることが多い。特に、レンズ１４ｂとシンボルＳとの間の距離が近すぎる場合にぼけや滲みが生じやすい。レンズ１４ｂとシンボルＳとの間の距離が近すぎると、好適な二値化処理及びデコード処理を行える場合のシンボルＳの撮像画像に比して大きなシンボルＳの撮像画像が得られる。言い換えれば、シンボルＳの撮像画像にぼけや滲みが生じる場合、シンボルＳの撮像画像は必要以上に大きく撮像されている。そこで、シンボルＳの撮像画像が必要以上に大きく撮像されている場合、デコード枠範囲決定処理により枠２１を縮小し、枠内にシンボルＳを収めて撮像しようとする使用者にシンボルＳを好適な大きさで撮像するよう促す。
【００４２】
デコード枠範囲決定処理は、ＣＰＵ１１がデコード範囲枠決定プログラム１２ｃを読み込んで処理することにより行われる。以下、デコード枠範囲決定処理の詳細について説明する。
まず、ＣＰＵ１１は平均セルサイズの呼び出しを行う。平均セルサイズは、二値化処理の平均セルサイズ算出処理において算出された平均セルサイズである。次に、ＣＰＵ１１は平均セルサイズが所定のセルサイズ（例えば３ピクセル）より大きいか否か判定する。このとき、平均セルサイズが３ピクセルより大きい場合、ＣＰＵ１１は枠２１の幅（枠幅）のピクセルサイズを縮小する。枠幅の縮小は、Ｘ方向及びＹ方向の両方について行われる。
【００４３】
具体的には以下の式（１）により縮小後の枠幅を算出し、枠幅を縮小して表示装置１６に再表示させる。
（１）…    現在の枠幅×３／平均セルサイズ
【００４４】
（１）の式における現在の枠幅は、デコード枠範囲決定処理による枠幅の縮小が一回も行われていない場合、デコード範囲データのＸ１−Ｘ２間のピクセルサイズ及びＹ１−Ｙ２間のピクセルサイズに基づく。デコード枠範囲決定処理による枠幅の縮小が一回以上行われた後は、前回の枠幅の縮小による枠幅に基づく。（１）の式で算出された枠幅は、ＲＡＭ１３に保存される。
【００４５】
（１）の式で算出した枠幅を、デコード範囲データ１２ｄに反映してもよい。その場合、ＲＯＭ１２を書き換え可能な記憶装置とするか、別途書き換え可能な記憶装置をシンボル読取装置１に設け、デコード範囲データ１２ｄを書き換え可能な記憶装置に記憶させる等の措置を要する。
【００４６】
平均セルサイズが３ピクセル以下である場合、枠幅を縮小する処理は行わず、デコード枠範囲決定処理を終了する。
【００４７】
なお、枠幅の縮小の際に、前述の式（１）における現在の枠幅を、シンボル検出処理においてシンボルＳとして検出された範囲のＸ方向及びＹ方向の幅としてもよい。この場合、枠幅は、シンボルＳを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠２１に収まるよう撮像されたシンボルＳのセルサイズは、所定のセルサイズ（３ピクセル）以下となる。
【００４８】
次に、シンボル読取装置１によるシンボルＳの撮像から結果出力までの処理について、図７及至図９のフローチャートを用いて説明する。
図７は、シンボル読取装置１の動作を示すフローチャートである。
【００４９】
使用者の操作によってトリガキー１５ａがＯＮの状態となると（ステップＳ１）、ＣＰＵ１１はデコード範囲データ１２ｄを読み込む（ステップＳ２）。その後、ＣＰＵ１１はカメラ１４に被写体の撮像を行わせ（ステップＳ３）、撮像画像のデータをＲＡＭ１３に保存し（ステップＳ４）、撮像画像のデータを表示装置１６にプレビューとして表示させる（ステップＳ５）。
【００５０】
ＣＰＵ１１は、枠２１の表示位置を決定する（ステップＳ６）。シンボル読取装置１の起動直後の枠２１の表示位置は、ステップＳ２で読み込まれたデコード範囲データに基づく。
その後、ＣＰＵ１１は表示装置１６に表示されたプレビュー画面に枠２１を表示させ、（ステップＳ７）。枠内の範囲即ちデコード範囲に対してシンボル検出処理を行う（ステップＳ８）。シンボル検出処理に失敗した場合（ステップＳ９：ＮＯ）、ステップＳ３に戻る。シンボル検出処理に成功した場合（ステップＳ９：ＹＥＳ）、ＣＰＵ１１は二値化処理を行う（ステップＳ１０）。
【００５１】
図８は、図７のステップＳ１０に示す二値化処理の動作を示すフローチャートである。
二値化処理において、ＣＰＵ１１はシンボルＳとして検出された画像を走査し（ステップＳ２１）、単位ピクセル間の輝度差をチェックする（ステップＳ２２）。輝度差が所定の閾値より大きい場合（ステップＳ２３：ＹＥＳ）、ＣＰＵ１１は輝度の変化が暗部から明部へと向けて明るくなっているか否かを判定する（ステップＳ２４）。輝度の変化が暗部から明部へと向けて明るくなっている場合（ステップＳ２４：ＹＥＳ）、ＣＰＵ１１は白セルを検出する（ステップＳ２５）。ステップＳ２４において輝度の変化が暗部から明部へと向けて明るくなっていない場合（ステップＳ２４：ＮＯ）、即ち輝度の変化が明部から暗部へと向けて暗くなっている場合、ＣＰＵ１１は黒セルを検出する（ステップＳ２６）。ステップＳ２５及びステップＳ２６の後、ＣＰＵ１１は検出された白セル又は黒セルのセルサイズを検出する（ステップＳ２７）。ステップＳ２３において、輝度差が所定の閾値以下である場合（ステップＳ２３：ＮＯ）、その部分はグレーゾーンとして判定される（ステップＳ２８）。ステップＳ２１〜Ｓ２８の処理は、シンボルＳとして検出された画像の全範囲の走査が完了するまで行われる（ステップＳ２９：ＮＯ）。
【００５２】
シンボルＳとして検出された画像の全範囲の走査が完了すると（ステップＳ２９：ＹＥＳ）、ＣＰＵ１１は平均セル幅を算出する（ステップＳ３０）。その後、ＣＰＵ１１は、シンボルＳとして検出された画像の全範囲に対してグレーゾーンの割合が２０％以下であるかどうか判定し（ステップＳ３１）、２０％以下である場合（ステップＳ３１：ＹＥＳ）、二値化成功と判定する。２０％より大きい場合（ステップＳ３１：ＮＯ）、二値化失敗と判定する。以上で二値化処理は終了する。
【００５３】
二値化処理後、二値化に成功していた場合（ステップＳ１１：ＹＥＳ）、ＣＰＵ１１はデコード処理を行う（ステップＳ１２）。デコード処理に成功した場合（ステップＳ１３：ＹＥＳ）、ＣＰＵ１１は得られた文字列を表示装置１６に表示する等の結果出力を行い（ステップＳ１４）、動作を終了する。
【００５４】
二値化失敗の場合（ステップＳ１１：ＮＯ）又はデコード処理に失敗した場合（ステップＳ１３：ＮＯ）、ＣＰＵ１１はトリガキー１５ａがＯＮ状態であるか否かをチェックする（ステップＳ１５）。トリガキー１５ａがＯＦＦである場合（ステップＳ１５：ＮＯ）、ＣＰＵ１１は所定のエラー処理を行い、動作を終了する。
【００５５】
ステップＳ１５においてトリガキー１５ａがＯＮである場合（ステップＳ１５：ＹＥＳ）、ＣＰＵ１１はデコード範囲枠決定処理を行う（ステップＳ１６）。
【００５６】
図９は、図７のステップＳ１６に示すデコード範囲枠決定処理の動作を示すフローチャートである。
デコード範囲枠決定処理において、ＣＰＵ１１は、平均セルサイズの呼び出しを行い（ステップＳ４１）。平均セルサイズが３ピクセルより大きいかどうか判定する（ステップＳ４２）。平均セルサイズが３ピクセルより大きい場合（ステップＳ４２：ＹＥＳ）、ＣＰＵ１１は現在の枠幅を呼び出し（ステップＳ４３）、前述の（１）の式の算出結果により枠幅を縮小し（ステップＳ４４）、デコード範囲枠決定処理を終了する。
ステップＳ４２において、平均セルサイズが３ピクセル以下の場合（ステップＳ４２：ＮＯ）、ＣＰＵ１１はデコード範囲枠決定処理を終了する。
【００５７】
ステップＳ１６のデコード範囲枠決定処理後、ステップＳ３の処理に戻る。その後行われる処理は前述と同様であるが、ステップＳ１６のデコード範囲枠決定処理で枠幅を縮小する処理を行っていた場合、ステップＳ６における枠２１の表示位置決定処理は縮小された枠幅に基づく。
【００５８】
第１の実施形態によれば、平均セルサイズが所定のセルサイズより大きい場合、枠幅が縮小されるので、シンボルＳが必要以上に大きくなりすぎる近距離での撮像を防止できる。即ち、枠幅が小さな枠２１にシンボルＳを収めて撮像しようとした場合、シンボルＳの撮像画像にぼけや滲みが生じるほどシンボルＳとカメラ１４との距離を近接させることが困難となるので、使用者は適切なシンボルＳとカメラ１４との距離に誘導される。適切な距離で撮像されたシンボルＳの撮像画像は、二値化及びデコードを好適に行うことができるので、シンボルＳをより好適に読み取ることが可能なシンボル読取装置を提供することができる。
【００５９】
さらに、枠幅の縮小の際に、前述の式（１）における現在の枠幅を、シンボル検出処理においてシンボルＳとして検出された範囲のＸ方向及びＹ方向の幅とすることで、枠幅はシンボルＳを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠２１に収まるよう撮像されたシンボルＳのセルサイズは、所定のセルサイズ以下となるので、より確実に二値化及びデコードを好適に行うことができるシンボルＳの撮像画像が得られる。
【００６０】
次に、第１の実施形態とは異なる実施形態である、本発明の第２の実施形態によるシンボル読取装置２について説明する。なお、第１の実施形態と同様の構成については同じ符号を付して説明を省略する。
【００６１】
図１０に、本発明の第２の実施形態によるシンボル読取装置２の主要構成を示す。
【００６２】
ＲＯＭ１２は、第１の実施形態のＲＯＭ１２が記憶する各プログラム及びデータに加え、少なくともぶれ検出プログラム１２ｅ、斜め撮像判定プログラム１２ｆを記憶する。
【００６３】
ぶれ検出プログラム１２ｅは、シンボルＳの撮像画像に生じたぶれを検出し、ぶれが生じていることを示す表示を表示装置１６に出力する。
例えば、カメラ１４による撮像時、使用者が手ぶれ等を生じさせた場合、撮像画像は当該手振れによりぶれを生じた撮像画像となる。具体的には、ぶれが生じた場合、白セル、黒セル及びグレーゾーンの並びパターン即ち輝度差の変化パターンが同じ又は酷似した部分が複数存在する撮像画像が得られる。ぶれ検出プログラム１２ｅは、そのような輝度差の変化パターンに基づき、ぶれを検出する。
【００６４】
図１１に、ぶれが生じていることを示す表示を含む画面の一例を示す。
ぶれ検出プログラム１２ｅは、ぶれを検出した場合、プレビュー画面に表示される枠２１の右上にぶれが生じていることを示すマーク３１を表示させる。
【００６５】
斜め撮像判定プログラム１２ｆは、シンボルＳの四辺の対向する二辺の長さの比率が所定の比率より大きい場合に、カメラ１４による撮像がシンボルＳに対して斜め方向から行われていると判別する。
【００６６】
例えば、被写体であるシンボルＳを含む平面に対して、センサー１５ａの画像認識部が平行又はほぼ平行な状態ではなく斜めとなる状態で撮像された場合、シンボルＳの四辺の対向する二辺について、一方の辺のカメラ１４に対する焦点距離と、他方の辺のカメラ１４に対する焦点距離とに差が生じることにより、一方の辺と他方の辺の長さは異なって撮像される。その結果、四方形のシンボルＳは台形状に撮像される。
斜め撮像判別プログラム１２ｆは、シンボルＳの四辺の対向する二辺について、二辺の長さの比率が所定よりも大きい（例えば一方の辺の長さと他方の辺の長さの比率が２倍より大きい）場合、シンボルＳに対して斜め方向から撮像が行われていると判定する。二辺の長さは、前述のシンボル検出処理におけるエッジ検出により、四つの角を結ぶ直線として認識された四辺のうち対向する二辺の長さを用いる。
【００６７】
図１２に、斜め方向から撮像が行われていることを示す表示を含む画面の一例を示す。
斜め撮像判別プログラム１２ｆは、斜め方向から撮像が行われていると判別した場合、プレビュー画面に表示される枠２１の形状を図１２のように台形状にして表示させる。
【００６８】
長さを比較する二辺は、撮像画像におけるシンボルＳの上下の辺でもよいし、左右の辺でもよい。上下及び左右についてそれぞれ比較してもよい。
【００６９】
第２の実施形態によるシンボル解析プログラム１２ａは、第１の実施形態に記載した機能に加え、デコード枠範囲決定処理において枠幅を拡大する機能をＣＰＵ１１に提供する。
【００７０】
図１３に、枠２１の拡大前後のプレビュー画面の一例を示す。図１３（ａ）は枠２１の拡大前、図１３（ｂ）は枠２１の拡大後である。
レンズ１４ｂとシンボルＳとの間の距離が遠すぎると、図１３（ａ）に示すように、好適な二値化処理及びデコード処理を行える場合のシンボルＳの撮像画像に比して小さなシンボルＳの撮像画像が得られる。小さく撮像されたシンボルＳの撮像画像は、その一部又は全部につぶれ、ぼけ、滲み等を生じさせることがあり、二値化失敗やデコード失敗の原因となり得る。そこで、シンボルＳの撮像画像が小さく撮像されている場合、デコード枠範囲決定処理により枠２１を拡大し、使用者にシンボルＳを好適な大きさで撮像するよう促す。
【００７１】
具体的には、二値化処理における平均セルサイズの算出結果が枠幅拡大の基準となる所定のセルサイズ（例えば３ピクセル）より小さい場合、第１の実施形態における（１）の式と同様の式の算出結果に基づき、枠幅を拡大する。
第２の実施形態では、デコード枠範囲決定処理において、第１の実施形態と同様の枠幅の縮小も可能である。第２の実施形態では、枠幅拡大の基準となる所定のセルサイズ（例えば３ピクセル）と、枠幅縮小の基準となる所定のセルサイズ（例えば５ピクセル）は別個に設けられる。
【００７２】
なお、枠幅の拡大の際に、前述の式（１）における現在の枠幅を、シンボル検出処理においてシンボルＳとして検出された範囲のＸ方向及びＹ方向の幅としてもよい。この場合、枠幅は、シンボルＳを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠２１に収まるよう撮像されたシンボルＳのセルサイズは、所定のセルサイズ（３ピクセル）以下となる。
【００７３】
次に、シンボル読取装置２によるシンボルＳの撮像から結果出力までの処理について、図１４及至図１６のフローチャートを用いて説明する。
図１４は、シンボル読取装置２の動作を示すフローチャートである。図１４に示すフローチャートは、図７に示すシンボル読取装置１のフローチャートのステップＳ６をステップＳ１７に置き換えたフローチャートであり、他のステップについては図７及び前述の記載と同様である。
【００７４】
シンボル読取装置２のＣＰＵ１１は、ステップＳ５の処理後、枠の表示位置及び台形表示の有無、ぶれ表示の有無を決定する（ステップＳ１７）。その後、ＣＰＵ１１はステップＳ５１の決定内容に応じた枠を表示する（ステップＳ７）。
【００７５】
図１５は、図１４のステップＳ１６に示すデコード範囲枠決定処理の動作を示すフローチャートである。
シンボル読取装置２のＣＰＵ１１は、デコード範囲枠決定処理において、ぶれの検出を行う（ステップＳ５１）。ぶれが検出された場合（ステップＳ５２：ＹＥＳ）、枠２１の右上にぶれが生じていることを示すマーク３１を追加表示する処理を行い（ステップＳ５３）、デコード範囲枠決定処理を終了する。ぶれが検出されなかった場合（ステップＳ５２：ＮＯ）、ＣＰＵ１１は斜めスキャン検出処理を行う（ステップＳ５４）。
【００７６】
図１６は、図１５のステップＳ５４に示す斜めスキャン検出処理の動作を示すフローチャートである。
斜めスキャン検出処理において、ＣＰＵ１１は、シンボルＳの四方の辺のうち対向する二辺の長さを求め（ステップＳ７１）、一方の辺の長さと他方の辺の長さの比率が２倍より大きいか否かをする（ステップＳ７２）。一方の辺の長さと他方の辺の長さの比率が２倍より大きい場合（ステップＳ７２：ＹＥＳ）、ＣＰＵ１１は斜め方向から撮像が行われている（斜めスキャン）と判定する。一方の辺の長さと他方の辺の長さの比率が２倍以下の場合（ステップＳ７２：ＮＯ）、ＣＰＵ１１は通常スキャンと判定する。
【００７７】
ステップＳ５４の斜めスキャン検出処理後、斜めスキャンであると判定されている場合（ステップＳ５５：ＹＥＳ）、ＣＰＵ１１は枠２１を台形状にし（ステップＳ５６）、デコード範囲枠決定処理を終了する。通常スキャンであると判定されている場合（ステップＳ５５：ＮＯ）、ＣＰＵ１１は平均セルサイズを呼び出し（ステップＳ５７）、平均セルサイズが３ピクセルより小さいかどうか判定する（ステップＳ５８）。平均セルサイズが３ピクセルより小さい場合（ステップＳ５８：ＹＥＳ）、ＣＰＵ１１は現在の枠幅を呼び出し（ステップＳ５９）、枠幅を前述の（１）の式の算出結果による枠幅とする（ステップＳ６０）。平均セルサイズが３ピクセル以上の場合（ステップＳ５８：ＮＯ）、ＣＰＵ１１は平均セルサイズが５ピクセルより大きいかどうか判定する（ステップＳ６１）。平均セルサイズが５ピクセルより大きい場合（ステップＳ６１：ＹＥＳ）、ステップＳ５９以降の処理を行う。平均セルサイズが５ピクセル以下の場合（ステップＳ６１：ＮＯ）、デコード範囲枠決定処理を終了する。
【００７８】
第２の実施形態によれば、第１の実施形態の効果に加え、平均セルサイズが所定のセルサイズより小さい場合、枠幅が拡大されるので、シンボルＳが小さくなりすぎる遠距離での撮像を防止できる。即ち、枠幅を拡大することで、より大きなシンボルＳの撮像画像を得られる操作即ち近距離での撮像を行うよう使用者に促すことができるので、使用者は適切なシンボルＳとカメラ１４との距離に誘導される。適切な距離で撮像されたシンボルＳの撮像画像は、二値化及びデコードを好適に行うことができるので、シンボルＳをより好適に読み取ることが可能なシンボル読取装置を提供することができる。
【００７９】
さらに、枠幅の拡大の際に現在の枠幅をシンボル検出処理においてシンボルＳとして検出された範囲のＸ方向及びＹ方向の幅とすることで、枠幅はシンボルＳを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠２１に収まるよう撮像されたシンボルＳのセルサイズは、所定のセルサイズ以下となるので、より確実に二値化及びデコードを好適に行うことができるシンボルＳの撮像画像が得られる。
【００８０】
さらに、撮像画像にぶれを検出した場合、枠２１の右上にぶれが生じていることを示すマーク３１を表示させるので、ぶれにより好適なシンボルＳの撮像及び読み込みができない場合の原因を使用者に明確に通知することができると共に、撮像時の手ぶれ等のぶれに対する注意を使用者に喚起することができる。
【００８１】
さらに、斜め方向から撮像が行われていると判別した場合、枠２１の形状を台形状にして表示させるので、斜め方向からの撮像により好適なシンボルＳの撮像及び読み込みができない場合の原因を使用者に明確に通知することができると共に、斜め方向から撮像が行われていることに対する注意を使用者に喚起することができる。
【００８２】
なお、本実施の形態における記述は、本発明の一例を示すものであり、これに限定しない。
例えば、第１及び第２の実施形態に示したピクセル数、所定のセルサイズ、図５に示す輝度、二辺の比率その他の各数値は一例であり、他の数値を設定してもよい。
【００８３】
各実施形態で図示する被写体に含まれるシンボルＳは二次元バーコードであるが、他のシンボルでもよい。例えば一次元のバーコード等でもよい。
【００８４】
ぶれの表示や斜めスキャンの表示は他の方法によってもよい。例えば、シンボル読取装置に通知のためのＬＥＤ等を儲け、ぶれの検出や斜めスキャン判定に基づきＬＥＤを発光又は点滅させるようにしてもよいし、デコード範囲枠決定処理の内容に応じて異なる色で発光させるようにしてもよい。また、音声による通知でもよい。
【００８５】
ぶれの検出は撮像画像に基づくソフトウェア処理によって行っているが、専用のハードウェアを用いてもよい。同様に、シンボル読取装置の機能のうち、ソフトウェア処理で行われている各構成は、各機能に専用の構成を設けてもよい。
【図面の簡単な説明】
【００８６】
【図１】本発明の第１の実施形態によるシンボル読取装置の主要構成を示す。
【図２】プレビュー画面の一例を示す。
【図３】シンボル検出処理の概念図を示す。
【図４】撮像されたシンボルの一例を示す。図４（ａ）はぼけや滲みがない又はほとんど生じていないシンボル、図４（ｂ）はぼけや滲みが生じているシンボルである。
【図５】輝度検出処理によって検出された輝度分布の一例を示す。図５（ａ）は図４（ａ）に示すシンボルの一部分の輝度分布、図５（ｂ）は図４（ｂ）に示すシンボルの一部分の輝度分布である。
【図６】枠の縮小前後のプレビュー画面の一例を示す。図６（ａ）は枠の縮小前、図６（ｂ）は枠の縮小後である。
【図７】シンボル読取装置の動作を示すフローチャートである。
【図８】図７のステップＳ１０に示す二値化処理の動作を示すフローチャートである。
【図９】図７のステップＳ１６に示すデコード範囲枠決定処理の動作を示すフローチャートである。
【図１０】本発明の第２の実施形態によるシンボル読取装置の主要構成を示す。
【図１１】ぶれが生じていることを示す表示を含む画面の一例を示す。
【図１２】斜め方向から撮像が行われていることを示す表示を含む画面の一例を示す。
【図１３】枠の拡大前後のプレビュー画面の一例を示す。図１３（ａ）は枠の拡大前、図１３（ｂ）は枠の拡大後である。
【図１４】シンボル読取装置２の動作を示すフローチャートである。
【図１５】図１４のステップＳ１６に示すデコード範囲枠決定処理の動作を示すフローチャートである。
【図１６】図１５のステップＳ５４に示す斜めスキャン検出処理の動作を示すフローチャートである。
【符号の説明】
【００８７】
１１    ＣＰＵ
１２    ＲＯＭ
１３    ＲＡＭ
１４    カメラ
１５    入力装置
１６    表示装置
２１    枠
Ｓ    シンボル
【図１】
2010092211.tif 000003
【図２】
2010092211.tif 000004
【図３】
2010092211.tif 000005
【図４】
2010092211.tif 000006
【図５】
2010092211.tif 000007
【図６】
2010092211.tif 000008
【図７】
2010092211.tif 000009
【図８】
2010092211.tif 000010
【図９】
2010092211.tif 000011
【図１０】
2010092211.tif 000012
【図１１】
2010092211.tif 000013
【図１２】
2010092211.tif 000014
【図１３】
2010092211.tif 000015
【図１４】
2010092211.tif 000016
【図１５】
2010092211.tif 000017
【図１６】
2010092211.tif 000018