(57)【特許請求の範囲】
【請求項１】
デジタルカメラが搭載されたコード画像読み取り装置であって、
画像を撮影する撮影部と、
撮影された前記画像の任意の検査領域にコードが含まれているか否かを検出し、前記検査領域内の前記コードがぼけた画像か否かを判定するコード検出部と、
前記コード画像読み取り装置の移動状態を検出する移動状態検出部と、
前記コードが前記ぼけた画像のとき、オートフォーカス調整の開始タイミングを前記移動状態検出部の検出結果に基づいて検出し、前記コードが前記ぼけた画像でないとき、ズーム調整が必要か否かを前記検査領域内の前記コードの解像度に基づいて判定する制御部と、
前記開始タイミングの検出に応答して、前記オートフォーカス調整を実施するオートフォーカス部と、
前記ズーム調整が必要であると前記制御部で判定されたとき、前記ズーム調整を実施するズーム調整部と、
前記コードの認識不可の原因に応じたユーザ通知をユーザに通知する通知部と、
前記コードに格納されているデータを取り出すコード処理部とを備え、
前記制御部は、前記コードが前記ぼけた画像のとき、第１状態、第２状態および第３状態の少なくとも１つを前記移動状態検出部の前記検出結果に基づいて検出することにより、前記開始タイミングを検出し、
前記第１状態は、前記コード画像読み取り装置が停止している状態であり、
前記第２状態は、前記コード画像読み取り装置が前記デジタルカメラの光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置が前記光軸方向に所定時間継続して移動している状態であり、
前記第３状態は、前記コード画像読み取り装置が前記光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置の前記光軸方向の移動が反対方向に変化した状態であること
を特徴とするコード画像読み取り装置。
【請求項２】
前記コード検出部は、前記検査領域の画素値の分散が予め設定された基準値以下のとき、前記コードを前記ぼけた画像と判定すること
を特徴とする請求項１記載のコード画像読み取り装置。
【請求項３】
前記通知部は、前記オートフォーカス調整を実施した後の前記コードが前記ぼけた画像のとき、前記コード画像読み取り装置を前記コードから遠ざけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする請求項１または請求項２記載のコード画像読み取り装置。
【請求項４】
前記制御部は、前記コードが前記ぼけた画像でないとき、前記コードの最小構成単位の図形の１辺当たりの画素数が予め設定された最小値より小さいか否かを判定し、前記図形の１辺当たりの画素数が前記最小値より小さいとき、前記ズーム調整が必要であると判定すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載のコード画像読み取り装置。
【請求項５】
前記制御部は、前記検査領域における前記図形の１辺当たりの画素数Ｎを算出する際の分布に基づいて推定誤差αを検出し、前記画素数Ｎが前記推定誤差αおよび最小値Ｔｍｉｎを用いた式（１）を満たさないとき、式（２）を満たす目標ズーム値Ｚｍが前記ズーム調整部で調整可能な範囲に存在するか否かに基づいて、前記コードの認識が可能か否かを判定すること
Ｔｍｉｎ＜Ｎ−α  ・・・（１）
Ｔｍｉｎ／（Ｎ−α）＜Ｚｍ  ・・・（２）
を特徴とする請求項４記載のコード画像読み取り装置。
【請求項６】
前記通知部は、前記目標ズーム値が前記ズーム調整部で調整可能な範囲に存在しないとき、前記コード画像読み取り装置を前記コードに近づけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする請求項５記載のコード画像読み取り装置。
【請求項７】
デジタルカメラが搭載されたコード画像読み取り装置の動作方法であって、
画像を撮影し、
撮影された前記画像の任意の検査領域にコードが含まれているか否かを検出し、前記検査領域内の前記コードがぼけた画像か否かを判定し、
前記コード画像読み取り装置の移動状態を検出し、
前記コードが前記ぼけた画像のとき、第１状態、第２状態および第３状態の少なくとも１つを前記移動状態の検出結果に基づいて検出することにより、オートフォーカス調整の開始タイミングを検出し、前記コードが前記ぼけた画像でないとき、ズーム調整が必要か否かを前記検査領域内の前記コードの解像度に基づいて判定し、
前記開始タイミングの検出に応答して、前記オートフォーカス調整を実施し、
前記ズーム調整が必要であると判定されたとき、前記ズーム調整を実施し、
前記コードが認識不可のとき、前記コードの認識不可の原因に応じたユーザ通知をユーザに通知し、
認識可能な前記コードが検出されたとき、前記コードに格納されているデータを取り出し、
前記第１状態は、前記コード画像読み取り装置が停止している状態であり、
前記第２状態は、前記コード画像読み取り装置が前記デジタルカメラの光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置が前記光軸方向に所定時間継続して移動している状態であり、
前記第３状態は、前記コード画像読み取り装置が前記光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置の前記光軸方向の移動が反対方向に変化した状態であること
を特徴とするコード画像読み取り装置の動作方法。
【請求項８】
デジタルカメラが搭載された電子機器に実行させるコード画像読み取りプログラムであって、
前記電子機器を請求項１ないし請求項６のいずれか１項に記載のコード画像読み取り装置として動作させるコード画像読み取りプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コード画像読み取り装置、コード画像読み取り装置の動作方法およびコード画像読み取りプログラムに関する。
【背景技術】
【０００２】
コード画像読み取り装置は、コードを撮影するカメラを有している。撮影したコード画像の光学分解能および解像度が低いときには、コードを正しく認識できないおそれがある。光学分解能は、焦点のずれが大きくなるにしたがい低くなる。したがって、ユーザは、カメラの設計時に設定された合焦距離に対応する撮影距離で、コードを撮影する。撮影距離が適切でないとき、コード画像読み取り装置は、コードを正しく認識できない。
【０００３】
また、解像度は、例えば、コードの最小構成単位の図形当たりの画素数に対応している。１次元コードや２次元コードでは、コードの印刷時の物理サイズに対する規定がないため、様々なサイズや解像度のコードが存在する。このため、コード画像読み取り装置のカメラは、予め想定した標準解像度およびサイズのコード（以下、想定コードとも称する）に合わせて設計される。このため、想定コードと異なるサイズや解像度のコードは、認識されないおそれがある。
【０００４】
近年、コードの認識に失敗したとき、合焦ずれや解像度不足等の原因を判定し、端末（コード画像読み取り装置）の移動をユーザに指示するコード画像読み取り装置が提案されている（例えば、特許文献１参照。）。また、撮影画像内のコードの大きさを判定し、焦点位置を制御するコード画像読み取り装置が提案されている（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３４４０６６号公報
【特許文献２】特開２０１０−２０４７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
オートフォーカス（以下、ＡＦとも称する）機能を有するカメラでは、例えば、ユーザのボタン操作でＡＦを実施することにより、光学分解能を所定レベル以上にできる。換言すれば、ユーザは、ＡＦを実施させるために、煩わしいボタン操作等を実施する必要がある。また、ユーザは、どのような撮影状況のときにＡＦを実施させればよいか分からない。このため、コード画像の読み取り操作を効率よく実施できない。また、撮影画像内のコードの大きさに基づいて焦点位置を合わせる方法では、様々な印刷サイズのコードに対応させることが困難である。
【０００７】
本発明の目的は、コード画像の読み取り操作の効率を向上させることである。
【課題を解決するための手段】
【０００８】
本発明の一形態では、コード画像読み取り装置は、画像を撮影する撮影部と、撮影された画像の任意の検査領域にコードが含まれているか否かを検出し、検査領域内のコードがぼけた画像か否かを判定するコード検出部と、コード画像読み取り装置の移動状態を検出する移動状態検出部と、コードがぼけた画像のとき、オートフォーカス調整の開始タイミングを移動状態検出部の検出結果に基づいて検出し、コードがぼけた画像でないとき、ズーム調整が必要か否かを検査領域内のコードの解像度に基づいて判定する制御部と、開始タイミングの検出に応答して、オートフォーカス調整を実施するオートフォーカス部と、ズーム調整が必要であると制御部で判定されたとき、ズーム調整を実施するズーム調整部と、コードの認識不可の原因に応じたユーザ通知をユーザに通知する通知部と、コードに格納されているデータを取り出すコード処理部とを有している。
【発明の効果】
【０００９】
コード画像の読み取り操作の効率を向上できる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態におけるコード画像読み取り装置の例を示している。
【図２】コードのサイズと解像度の関係の一例を示している。
【図３】図１に示したコード画像読み取り装置のコード認識条件の一例を示している。
【図４】図１に示したコード画像読み取り装置がＡＦ調整を実施するときの一例を示している。
【図５】図１に示したコード画像読み取り装置がズーム調整を実施するときの一例を示している。
【図６】図１に示したコード画像読み取り装置のユーザ通知の一例を示している。
【図７】図１に示したコード画像読み取り装置の動作の一例を示している。
【図８】図１に示したコード検出部の動作の一例を示している。
【図９】ＡＦタイミング検出の一例を示している。
【図１０】解像度条件に関する処理の一例を示している。
【発明を実施するための形態】
【００１１】
以下、実施形態を図面を用いて説明する。
【００１２】
図１は、一実施形態におけるコード画像読み取り装置１０の例を示している。コード画像読み取り装置１０は、ＪＡＮコード等の１次元コードやＱＲコード（登録商標）等の２次元コードを撮影し、コードに格納されているデータを取り出す。例えば、コード画像読み取り装置１０には、オートフォーカス機能およびズーム機能を有するデジタルカメラが搭載されている。コード画像読み取り装置１０は、例えば、撮影部２０、コード検出部３０、移動状態検出部４０、制御部５０、オートフォーカス部６０（以下、ＡＦ部とも称する）、ズーム調整部７０、通知部８０、コード処理部９０および表示部１００を有している。以下、オートフォーカスをＡＦとも称する。
【００１３】
撮影部２０は、例えば、読み取り対象のコード等の被写体を撮影し、画像データＩＭＧＤを生成する。そして、撮影部２０は、画像データＩＭＧＤをコード検出部３０、制御部５０およびコード処理部９０に出力する。なお、制御部５０およびコード処理部９０は、コード検出部３０を介して画像データＩＭＧＤを受けてもよい。
【００１４】
コード検出部３０は、画像データＩＭＧに対応する撮影画像から検査領域を任意に選択する。例えば、コード検出部３０は、撮影画像の中央部を検査領域として選択してもよいし、撮影画像の任意の位置から検査領域を順次選択してもよい。また、コード検出部３０は、任意の検査領域に、コードが含まれているか否かを検出する。そして、コード検出部３０は、検査領域にコードが含まれているとき、コードがぼけた画像か否かを判定する。
【００１５】
移動状態検出部４０は、例えば、コード画像読み取り装置１０の移動状態を加速度センサの出力を用いて検出する。例えば、移動状態検出部４０は、ユーザによるコード画像読み取り装置１０の移動状態を移動方向および移動速度として検出する。なお、移動状態検出部４０は、角速度センサや地磁気センサ等の出力を用いて、コード画像読み取り装置１０の移動状態を検出してもよい。例えば、コード画像読み取り装置１０には、移動状態の検出に利用可能なセンサ（加速度センサ、角速度センサおよび地磁気センサ等のセンサ）が搭載されている。加速度センサ、角速度センサおよび地磁気センサ等のセンサは、移動状態検出部４０内に設けられてもよいし、移動状態検出部４０の外部に設けられてもよい。
【００１６】
制御部５０は、コード検出部３０の判定結果ＩＩＮＦ、移動状態検出部４０の検出結果ＭＩＮＦおよび画像データＩＭＧＤを受ける。そして、制御部５０は、コードの認識が可能になる処理方法を、コード検出部３０の判定結果ＩＩＮＦおよび移動状態検出部４０の検出結果ＭＩＮＦに基づいて決定する。
【００１７】
例えば、制御部５０は、コードがぼけた画像であることを示す判定結果ＩＩＮＦをコード検出部３０から受けたとき、オートフォーカス調整の開始タイミングを検出結果ＭＩＮＦに基づいて検出する。すなわち、制御部５０は、撮影画像（より詳細には、検査領域）内のコードがぼけた画像のとき、オートフォーカス調整の開始タイミングを移動状態検出部４０の検出結果ＭＩＮＦに基づいて検出する。そして、制御部５０は、オートフォーカス調整の開始タイミングを示す信号ＡＣＮＴをＡＦ部６０に出力する。
【００１８】
また、制御部５０は、コードがぼけた画像でないことを示す判定結果ＩＩＮＦをコード検出部３０から受けたとき、撮影画像（より詳細には、検査領域）内のコードの解像度に基づいて、ズーム調整が必要か否かを判定する。解像度は、コードの最小構成単位の図形当たりの画素数に対応している。例えば、解像度は、コードの最小構成単位の図形の１辺当たりの画素数である。以下、コードの最小構成単位の図形を単位図形とも称する。
【００１９】
例えば、制御部５０は、単位図形の１辺当たりの画素数が予め設定された最小値より小さいとき、ズーム調整が必要であると判定する。このように、制御部５０は、コードがぼけた画像でないとき、ズーム調整が必要か否かを検査領域内のコードの解像度に基づいて判定する。そして、制御部５０は、ズーム調整が必要か否か等を示す信号ＺＣＮＴをズーム調整部７０に出力する。
【００２０】
さらに、制御部５０は、コード画像読み取り装置１０の操作方法等のユーザ通知に関する信号ＩＣＮＴを通知部８０に出力する。また、制御部５０は、例えば、認識可能なコードが検出されたことを示す信号ＣＣＮＴをコード処理部９０に出力する。
【００２１】
ＡＦ部６０は、デジタルカメラのオートフォーカス調整が必要であると制御部５０で判定されたときに、オートフォーカス調整を実施する。例えば、ＡＦ部６０は、制御部５０から受ける信号ＡＣＮＴに応答して、オートフォーカス調整を実施する。
【００２２】
ズーム調整部７０は、デジタルカメラのズーム調整が必要であると制御部５０で判定されたとき、ズーム調整を実施する。例えば、ズーム調整部７０は、ズーム調整が必要であることを示す信号ＺＣＮＴを制御部５０から受けたとき、ズーム調整を実施する。
【００２３】
通知部８０は、制御部５０からの信号ＩＣＮＴに基づいて、ユーザに処理の状況や操作方法を通知するか否かを決定する。そして、通知部８０は、ユーザに通知を実施するときには、通知内容を決定する。例えば、通知部８０は、コード画像読み取り装置１０の移動方向等を、表示部１００を用いてユーザに通知する。
【００２４】
例えば、通知部８０は、オートフォーカス調整を実施した後のコードがぼけた画像であることを示す信号ＩＣＮＴを制御部５０から受けたとき、コード画像読み取り装置１０をコードから遠ざけるようにするためのユーザ通知ＤＩＮＦを表示部１００に出力する。これにより、コード画像読み取り装置１０をコードから遠ざける指示（ユーザ通知ＤＩＮＦ）が表示部１００に表示される。すなわち、通知部８０は、オートフォーカス調整を実施した後のコードがぼけた画像のとき、コード画像読み取り装置１０をコードから遠ざけるようにするための情報（ユーザ通知ＤＩＮＦ）を、表示部１００を介してユーザに通知する。
【００２５】
あるいは、通知部８０は、ズーム調整部７０でのズーム調整が不可であることを示す信号ＩＣＮＴを制御部５０から受けたとき、コード画像読み取り装置１０をコードに近づけるようにするためのユーザ通知ＤＩＮＦを表示部１００に出力する。例えば、コードの解像度に基づいて算出されたズーム値（撮影倍率）がズーム調整部７０での調整範囲外のズーム値のとき、ズーム調整部７０でのズーム調整は不可である。
【００２６】
すなわち、通知部８０は、コードの解像度に基づいて算出されたズーム値がズーム調整部７０での調整範囲外のズーム値のとき、コード画像読み取り装置１０をコードに近づけるようにするための情報（ユーザ通知ＤＩＮＦ）を、表示部１００を介してユーザに通知する。このように、通知部８０は、コードが認識不可のとき、コードの認識不可の原因に応じたユーザ通知ＤＩＮＦ（例えば、コード画像読み取り装置の移動方向）をユーザに通知する。
【００２７】
コード処理部９０は、コードに格納されているデータを取り出す。例えば、コード処理部９０は、認識可能なコードが検出されたことを示す信号ＣＣＮＴを制御部５０から受けたとき、画像データＩＭＧＤに対応する撮影画像内のコードに格納されているデータを取り出す。すなわち、コード処理部９０は、コードの認識が可能であると制御部５０で判定されたとき、画像データＩＭＧＤを用いて、読み取り対象のコードに格納されているデータを取り出す。
【００２８】
そして、コード処理部９０は、取り出したデータＤＯＵＴを表示部１００に出力する。これにより、コードに格納されているデータＤＯＵＴが表示部１００に表示される。表示部１００は、例えば、液晶ディスプレイであり、コード処理部９０の処理結果ＤＯＵＴおよび通知部８０で決定されたユーザ通知ＤＩＮＦ等を表示する。
【００２９】
なお、コード画像読み取り装置１０の構成は、この例に限定されない。例えば、ズーム調整部７０は、省かれてもよい。このときには、制御部５０は、ズーム調整が必要か否かを判定する必要がない。したがって、制御部５０の動作を簡易にできる。
【００３０】
図２は、コードＣＯＤのサイズと解像度の関係の一例を示している。なお、図２は、ＱＲコードのサイズと解像度の関係の一例を示している。ＱＲコードでは、４０種類のバージョン毎にセル数が決められている。セルは、コードの最小構成単位である。例えば、ＱＲコードの１辺当たりのセル数は、２１個から１７７個までバージョン毎に設定されている。解像度（例えば、セルの１辺当たりの画素数）は、ＱＲコードの印刷時の物理サイズに依存する。１次元コードや２次元コードでは、コードの印刷時の物理サイズに対する規定がないため、様々なサイズや解像度のコードが存在する。
【００３１】
コードＣＯＤａ、ＣＯＤｂ、ＣＯＤｃは、サイズ（コード全体の１辺の長さ）が互いに同じであり、解像度が互いに異なる。例えば、コードＣＯＤａのセルの１辺当たりの画素数は、コードＣＯＤｂのセルの１辺当たりの画素数より多い。また、コードＣＯＤｃのセルの１辺当たりの画素数は、コードＣＯＤｂのセルの１辺当たりの画素数より少ない。
【００３２】
コードＣＯＤｄ、ＣＯＤｂ、ＣＯＤｅは、サイズが互いに異なり、解像度が互いに同じである。例えば、コードＣＯＤｄの１辺の長さは、コードＣＯＤｂの１辺の長さより短い。また、コードＣＯＤｅの１辺の長さは、コードＣＯＤｂの１辺の長さより長い。
【００３３】
図３は、図１に示したコード画像読み取り装置１０のコード認識条件の一例を示している。なお、図３は、撮影距離（コードとコード画像読み取り装置１０の距離）が変化したときのコード画像の光学分解能および解像度を示している。光学分解能の破線は、ＡＦを使用しないときの光学分解能の一例を示している。また、解像度の実線は、ズームを使用しないとき（ズーム値を最小にしたとき）の解像度の一例を示し、解像度の破線は、ズーム値を最大にしたときの解像度の一例を示している。すなわち、図の網掛けは、ズーム調整可能な範囲を示している。
【００３４】
光学分解能が高いことは、焦点のずれが小さいことを示している。すなわち、光学分解能が低くなるにしたがい、ぼけた画像が撮影される。また、解像度が高いことは、単位図形（例えば、ＱＲコードのセル）の１辺当たりの画素数が多いことを示している。解像度は、撮影距離が遠くなるにしたがい、低くなる。コード画像読み取り装置１０は、撮影したコード画像の光学分解能および解像度が低いときには、コードを正しく認識できない。
【００３５】
例えば、コード画像読み取り装置１０は、光学分解能が所定の下限レベルＴＨ１０より高く、かつ、解像度が所定の下限レベルＴＨ２０より高いとき、コードを認識できる。すなわち、コード画像読み取り装置１０は、撮影距離が距離Ｄ１０より近いときには、光学分解能を下限レベルＴＨ１０より高くできないため、コードを認識できない。また、コード画像読み取り装置１０は、撮影距離が距離Ｄ２０より遠いときには、解像度を下限レベルＴＨ２０より高くできないため、コードを認識できない。
【００３６】
例えば、コード画像読み取り装置１０は、撮影距離が距離Ｄ１０から距離Ｄ１６までの範囲では、ズーム調整を実施しなくても、コードを認識できる。また、コード画像読み取り装置１０は、撮影距離が距離Ｄ１６から距離Ｄ２０までの範囲では、ズーム調整を実施した後、コードを認識できる。したがって、コード画像読み取り装置１０は、撮影距離が距離Ｄ１０から距離Ｄ２０までの範囲のとき、コードを認識できる。
【００３７】
なお、ＡＦを使用しないときには、光学分解能が下限レベルＴＨ１０より高くなる撮影距離は、距離Ｄ１２から距離Ｄ１４の狭い範囲である。すなわち、ＡＦを使用しないときには、コードを認識するための光学分解能の条件を満たす撮影距離は、距離Ｄ１２から距離Ｄ１４の狭い範囲である。ＡＦを使用することにより、光学分解能が下限レベルＴＨ１０より高くなる撮影距離の範囲を広くできる。例えば、コード画像読み取り装置１０は、ＡＦを使用するときには、撮影距離を距離Ｄ１０以上にすることにより、光学分解能を下限レベルＴＨ１０より高くできる。すなわち、ＡＦ調整を実施することにより、コードを認識するための光学分解能の条件を満たす撮影距離は、距離Ｄ１０以上に拡大される。
【００３８】
また、ズームを使用しないときには、解像度が下限レベルＴＨ２０より高くなる撮影距離は、距離Ｄ１６以下である。ズームを使用することにより、解像度が下限レベルＴＨ２０より高くなる撮影距離の範囲を広くできる。例えば、コード画像読み取り装置１０は、距離Ｄ１６から距離Ｄ２０の範囲の撮影距離でコードを撮影したとき、ズームを使用することにより、解像度を下限レベルＴＨ２０より高くできる。すなわち、ズーム調整を実施することにより、コードを認識するための解像度の条件を満たす撮影距離は、距離Ｄ２０までに拡大される。
【００３９】
なお、図の解像度のレベルＴＨ２２は、解像度の上限を示している。例えば、レベルＴＨ２２は、コードが画面（例えば、表示部１００の画面）からはみ出さないようにしたときの解像度の上限に対応している。このときには、コード画像読み取り装置１０は、コードが画面からはみ出すか否かの判定を、撮影画像（より詳細には、検査領域）内のコードの解像度に基づいて実施できる。なお、コードが画面からはみ出すか否かの判定は、解像度を用いずに実施されてもよい。すなわち、解像度の上限レベルＴＨ２２は、設定されなくてもよい。
【００４０】
図４は、図１に示したコード画像読み取り装置１０がＡＦ調整を実施するときの一例を示している。なお、図４は、カメラ設計時に想定した最適な撮影距離Ｄ１３より遠い位置（距離Ｄ１８）でコードＣＯＤｂを撮影したときのＡＦ調整およびズーム調整の一例を示している。図の破線は、ＡＦ調整およびズーム調整を実施していないときのコード画像の光学分解能および解像度を示している。また、図のコードＣＯＤｂ’は、コードＣＯＤｂを撮影距離Ｄ１８で撮影したときのコード画像に対応している。
【００４１】
先ず、コード画像読み取り装置１０は、コードＣＯＤｂ’を認識するための光学分解能の条件（光学分解能が下限レベルＴＨ１０より高いか否か）を確認する。ＡＦを使用しないで撮影されたコードＣＯＤｂ’の光学分解能は、光学分解能の条件（下限レベルＴＨ１０より高い光学分解能）を満たしていない。この状態では、コードＣＯＤｂ’は、認識不可である。このため、コード画像読み取り装置１０は、ＡＦ調整を実施し、コードＣＯＤｂ’に焦点を合わせる。すなわち、コード画像読み取り装置１０は、ＡＦを使用した撮影を実施し、光学分解能が下限レベルＴＨ１０より高い撮影画像を生成する。
【００４２】
次に、コード画像読み取り装置１０は、コードＣＯＤｂ’を認識するための解像度の条件（解像度が下限レベルＴＨ２０より高いか否か）を確認する。図の例では、撮影距離が遠いため、ズームを使用しないで撮影されたコードＣＯＤｂ’の解像度は、コードを認識可能な解像度の範囲からはずれている。この状態では、コードＣＯＤｂ’は、認識不可である。このため、コード画像読み取り装置１０は、解像度を下限レベルＴＨ２０より高くするためのズーム値を算出し、ズーム調整を実施する。
【００４３】
そして、コード画像読み取り装置１０は、ズーム調整で設定したズーム値で、コードＣＯＤｂ’を撮影する。この撮影の焦点距離は、例えば、ズーム調整の前に実施された撮影の焦点距離（ＡＦ調整で設定した焦点距離）に基づいて設定される。これにより、光学分解能および解像度の両方の条件を満たす撮影画像（コードＣＯＤｂ）が生成される。
【００４４】
このように、コード画像読み取り装置１０は、撮影距離Ｄ１３より遠い距離Ｄ１８で撮影したコードＣＯＤｂ’の光学分解能および解像度をそれぞれ下限レベルＴＨ１０、ＴＨ２０より高くできる。これにより、コード画像読み取り装置１０は、コードＣＯＤｂ’を認識できる。すなわち、カメラ設計時に想定した最適な撮影距離Ｄ１３より遠い位置（距離Ｄ１８）にコード画像読み取り装置１０をユーザが合わせたときにも、コード画像読み取り装置１０は、コードＣＯＤｂ’に格納されているデータを取り出すことができる。
【００４５】
図５は、図１に示したコード画像読み取り装置１０がズーム調整を実施するときの一例を示している。なお、図５は、カメラ設計時に想定した標準解像度およびサイズのコード（以下、想定コードとも称する）と異なる解像度のコードＣＯＤｃを撮影したときのズーム調整の一例を示している。想定コードは、例えば、コードＣＯＤｂである。図の太い破線は、ズーム調整を実施せずに撮影したときのコードＣＯＤｃの解像度を示し、図の細い破線は、ズーム調整を実施せずに撮影したときの想定コードＣＯＤｂの解像度を示している。例えば、コードＣＯＤｂ、ＣＯＤｃの撮影距離は、カメラ設計時に想定した最適な距離Ｄ１３である。
【００４６】
コードＣＯＤｃのセルは、コードＣＯＤｂのセルに比べて、小さい。したがって、ユーザが最適な距離Ｄ１３でコードＣＯＤｃを撮影したときにも、撮影されたコードＣＯＤｃの解像度は、想定コードＣＯＤｂの解像度より低くなる（図の破線）。このため、ズームを使用しないで撮影されたコードＣＯＤｃの解像度は、コードを認識可能な解像度の範囲からはずれている。この状態では、コードＣＯＤｃは、認識不可である。このため、コード画像読み取り装置１０は、解像度を下限レベルＴＨ２０より高くするためのズーム値を算出し、ズーム調整を実施する。
【００４７】
そして、コード画像読み取り装置１０は、ズーム調整で設定したズーム値で、コードＣＯＤｃを撮影する。ズーム調整を実施して撮影されたコードＣＯＤｃの解像度は、下限レベルＴＨ２０より高くなる（図の実線）。すなわち、解像度の条件を満たす撮影画像（コードＣＯＤｃ）が生成される。なお、図５の例では、最適な距離Ｄ１３でコードＣＯＤｃが撮影されているため、ＡＦ調整を実施しなくても、光学分解能は、下限レベルＴＨ１０より高い。
【００４８】
このように、コード画像読み取り装置１０は、読み出し対象のコードＣＯＤｃの解像度が想定コードＣＯＤｂの解像度と異なるときにも、撮影したコードＣＯＤｃの光学分解能および解像度をそれぞれ下限レベルＴＨ１０、ＴＨ２０より高くできる。したがって、コード画像読み取り装置１０は、想定コードＣＯＤｂの解像度と異なる解像度のコードＣＯＤｃを認識でき、コードＣＯＤｃに格納されているデータを取り出すことができる。
【００４９】
なお、コード画像読み取り装置１０は、想定コードＣＯＤｂのサイズと異なるサイズのコード（例えば、図２に示したコードＣＯＤｅ）も、ＡＦ調整やズーム調整を実施することにより、認識できる。すなわち、コード画像読み取り装置１０は、想定コードＣＯＤｂと異なる解像度やサイズのコードに格納されているデータを取り出すことができる。
【００５０】
図６は、図１に示したコード画像読み取り装置１０のユーザ通知の一例を示している。コードＣＯＤ（１０）は、距離Ｄ１０より近い位置で撮影されたコードＣＯＤである。また、コードＣＯＤ（２０）は、光学分解能および解像度の両方の条件を満たす撮影距離（例えば、距離Ｄ１０から距離Ｄ２０までの範囲）で撮影されたコードＣＯＤである。コードＣＯＤ（３０）は、距離Ｄ２０より遠い位置で撮影されたコードＣＯＤである。また、図６の解像度の実線、破線および網掛けの意味は、図３と同じである。
【００５１】
撮影距離が距離Ｄ１０より近いときには、ＡＦ調整を実施しても、焦点は合わない。すなわち、コード画像読み取り装置１０は、撮影距離が距離Ｄ１０より近いとき、撮影画像の光学分解能を下限レベルＴＨ１０より高くできない。このため、コード画像読み取り装置１０は、コード画像読み取り装置１０をコードＣＯＤから遠ざけるようにするためのユーザ通知ＤＩＮＦを表示部１００に出力する。例えば、コード画像読み取り装置１０は、表示部１００に“遠ざけて下さい”と表示する。
【００５２】
また、撮影距離が距離Ｄ２０より遠いときには、ズーム調整を実施しても、撮影されるコードＣＯＤ（３０）の解像度は、下限レベルＴＨ２０より高くならない。すなわち、コード画像読み取り装置１０は、撮影距離が距離Ｄ２０より遠いとき、コードＣＯＤの解像度を下限レベルＴＨ２０より高くできない。このため、コード画像読み取り装置１０は、コード画像読み取り装置１０をコードＣＯＤに近づけるようにするためのユーザ通知ＤＩＮＦを表示部１００に出力する。例えば、コード画像読み取り装置１０は、表示部１００に“近づけて下さい”と表示する。
【００５３】
このように、コード画像読み取り装置１０は、コードＣＯＤの認識不可の原因に応じた対応方法（例えば、光学分解能の条件を満たさないときの対応方法、解像度の条件を満たさないときとの対応方法）をユーザに通知する。これにより、この実施形態では、コード画像読み取り装置１０の利便性を向上できる。
【００５４】
例えば、コードＣＯＤの認識不可の原因に応じた対応方法がユーザに通知されないコード画像読み取り装置では、ユーザは、コードの認識不可の理由を理解することが困難である。このため、誤った方向にコード画像読み取り装置１０を移動する等の不適切な操作が実施されるおそれがある。これに対し、この実施形態では、コードＣＯＤの認識不可の原因に応じた対応方法がユーザに通知されるため、コードが認識されないときにも、ユーザは、コード画像読み取り装置１０を適切に操作できる。
【００５５】
なお、撮影距離が距離Ｄ１０から距離Ｄ２０までの範囲では、コード画像読み取り装置１０がコードＣＯＤ（２０）を認識できるため、ユーザの対応方法は指示されない。例えば、コード画像読み取り装置１０がコードＣＯＤを認識しているときには、コード画像読み取り装置１０は、データ読み出し中等の処理内容を表示部１００に表示してもよい。
【００５６】
また、ユーザ通知の内容は、この例に限定されない。例えば、コード画像読み取り装置１０は、対応方法の代わりに、認識不可の理由をユーザに通知してもよい。あるいは、コード画像読み取り装置１０は、認識不可の理由および対応方法の両方を通知してもよい。
【００５７】
図７は、図１に示したコード画像読み取り装置１０の動作の一例を示している。図７の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、ソフトウエア（プログラム）は、カメラ機能を有する電子機器（例えば、携帯電話）に図７の動作を実行させる。
【００５８】
処理Ｓ１００では、撮影部２０は、読み取り対象のコード等の被写体を、ＡＦを使用せずに撮影する。処理Ｓ１１０では、コード検出部３０は、図８に示すコード検出処理を実施し、コードが撮影されているか否かを検出する。撮影画像内のコードの検出方法は、例えば、特許第４１８０４９７号公報に開示されている。また、コード検出部３０は、コードが撮影されているときには、撮影されたコードがぼけた画像か否かを判定する。ぼけた画像か否かは、例えば、図８に示すように、画素値の分散に基づいて判定される。なお、画素値の分散に基づく判定は、画素値の標準偏差に基づく判定も含む。したがって、ぼけた画像か否かは、画素値の標準偏差に基づいて判定されてもよい。
【００５９】
処理Ｓ１２０では、制御部５０は、処理Ｓ１１０の結果（コード検出部３０の判定結果）に基づいて、コードが検出されたか否かを判定する。コードが検出されていないとき（処理Ｓ１２０のＮｏ）、コード画像読み取り装置１０は、処理Ｓ２６０の認識不可処理を実施して、一連の処理を終了する。一方、コードが検出されたとき（処理Ｓ１２０のＹｅｓ）、制御部５０の動作は、処理Ｓ１３０に移る。
【００６０】
処理Ｓ１３０では、制御部５０は、処理Ｓ１１０の結果（コード検出部３０の判定結果）に基づいて、コードがぼけた画像か否かを判定する。すなわち、処理Ｓ１３０では、制御部５０は、撮影されたコードがコードを認識するための光学分解能の条件を満たしているか否かを判定する。コードがぼけた画像のとき（処理Ｓ１３０のＹｅｓ）、制御部５０の動作は、処理Ｓ１９０に移る。一方、コードがぼけた画像でないとき（処理Ｓ１３０のＮｏ）、制御部５０の動作は、処理Ｓ１４０に移る。
【００６１】
処理Ｓ１４０では、制御部５０は、コードの解像度が解像度条件を満たすか否かを判定する。解像度条件は、コードを認識するための解像度の条件である。例えば、解像度条件は、単位図形（例えば、ＱＲコードのセル）の１辺当たりの画素数Ｎ、推定誤差α、最小値Ｔｍｉｎを用いて、式（１）で表される。
【００６２】
Ｔｍｉｎ＜Ｎ−α  ・・・（１）
画素数Ｎ、推定誤差αは、例えば、図１０に示すように、コードの白／黒パターンの長さ（画素数）のヒストグラムに基づいて算出される。例えば、推定誤差αは、ピークの半値半幅に対応している。また、最小値Ｔｍｉｎは、例えば、コードの認識に必要な単位図形の１辺当たりの最少画素数（例えば、３画素）であり、予め設定されている。すなわち、最小値Ｔｍｉｎは、図３に示した下限レベルＴＨ２０に対応している。例えば、制御部５０は、画素数Ｎが式（１）を満たしているとき、コードの解像度が解像度条件を満たしていると判定する。
【００６３】
コードの解像度が解像度条件を満たしているとき（処理Ｓ１４０のＹｅｓ）、コード画像読み取り装置１０は、処理Ｓ１７０（コード読み取り）を実施して、一連の処理を終了する。一方、コードの解像度が解像度条件を満たしていないとき（処理Ｓ１４０のＮｏ）、制御部５０の動作は、処理Ｓ１５０に移る。このように、処理Ｓ１４０では、制御部５０は、コードの解像度に基づいて、ズーム調整が必要か否かを判定する。
【００６４】
処理Ｓ１５０では、制御部５０は、ズーム調整が可能か否かを判定する。例えば、制御部５０は、式（２）を満たす目標ズーム値Ｚｍがズーム調整部７０で調整可能な範囲に存在するか否かを判定する。
【００６５】
Ｔｍｉｎ／（Ｎ−α）＜Ｚｍ  ・・・（２）
制御部５０は、式（２）を満たす目標ズーム値Ｚｍがズーム調整部７０で調整可能な範囲に存在するとき、ズーム調整可能と判定する。換言すれば、制御部５０は、式（２）を満たす目標ズーム値Ｚｍがズーム調整部７０で調整可能な範囲に存在しないとき、ズーム調整が可能でないと判定する。
【００６６】
ズーム調整が可能でないとき（処理Ｓ１５０のＮｏ）、コード画像読み取り装置１０は、処理Ｓ１８０のユーザ通知（近づける指示）を実施して、一連の処理を終了する。一方、ズーム調整が可能なとき（処理Ｓ１５０のＹｅｓ）、コード画像読み取り装置１０の動作は、処理Ｓ１６０に移る。
【００６７】
処理Ｓ１６０では、コード画像読み取り装置１０は、ズーム撮影を実施する。例えば、制御部５０は、式（２）を満たす目標ズーム値Ｚｍのうち、ズーム調整部７０で調整可能な最小のズーム値を、適正ズーム値として算出する。そして、ズーム調整部７０は、制御部５０で算出された適正ズーム値に基づいて、ズーム調整を実施する。撮影部２０は、ズーム調整部７０で調整された適正ズーム値で、読み取り対象のコード等の被写体を撮影する。
【００６８】
このように、この実施形態では、撮影されたコードの解像度が解像度条件を満たしていないときに、ユーザがズーム調整の倍率（ズーム値）を決定する必要がない。このため、この実施形態では、コード画像読み取り装置１０の使い勝手を向上できる。また、コードの解像度が解像度条件を満たしているときには、ズーム調整は実施されない。すなわち、この実施形態では、不必要なズーム調整を実施しないため、コードを認識するまでの時間を短縮できる。
【００６９】
なお、処理Ｓ１６０のズーム撮影の焦点距離は、例えば、処理Ｓ２００のＡＦ撮影が実施されたときには、処理Ｓ２００のＡＦ撮影の焦点距離に基づいて設定される。また、処理Ｓ２００のＡＦ撮影が実施されていないときには、処理Ｓ１６０のズーム撮影の焦点距離は、例えば、カメラの設計時に設定された焦点距離（処理Ｓ１００の撮影の焦点距離）である。すなわち、処理Ｓ１６０のズーム撮影の焦点距離は、処理Ｓ１６０の撮影の１つ前に実施された撮影の焦点距離に基づいて設定される。
【００７０】
処理Ｓ１７０では、コード処理部９０は、コードに格納されているデータを取り出す。例えば、コード画像読み取り装置１０は、取り出したデータが示す情報を、表示部１００に表示する。これにより、コードの読み取り処理は終了する。
【００７１】
処理Ｓ１８０では、コード画像読み取り装置１０は、コード画像読み取り装置１０をコードに近づけるようにするための指示を表示部１００に表示する。例えば、通知部８０は、コード画像読み取り装置１０をコードに近づけるようにするためのユーザ通知ＤＩＮＦを表示部１００に出力する。これにより、コード画像読み取り装置１０をコードに近づけるようにするための指示（“近づけて下さい”等の指示）が表示部１００に表示される。
【００７２】
このように、コード画像読み取り装置１０は、ズーム調整を実施しても、撮影されるコードの解像度が解像度条件を満たさないとき、適切な対応方法（“近づけて下さい”等の指示）をユーザに通知する。これにより、この実施形態では、コード画像読み取り装置１０の利便性を向上できる。
【００７３】
処理Ｓ１９０では、制御部５０は、ＡＦ調整の開始タイミングが否かを検出する。例えば、制御部５０は、図９に示すように、ＡＦ調整の開始タイミングを移動状態検出部４０の検出結果に基づいて検出する。例えば、制御部５０は、コード画像読み取り装置１０が移動していないと判定したとき、ＡＦ調整の開始タイミングと判定する。なお、制御部５０は、コード画像読み取り装置１０がカメラの光軸方向に所定時間継続して移動していると判定したとき、ＡＦ調整の開始タイミングと判定してもよい。あるいは、制御部５０は、コード画像読み取り装置１０が光軸方向に移動している期間に、移動方向が反対方向に変化したと判定したとき、ＡＦ調整の開始タイミングと判定してもよい。
【００７４】
ＡＦ調整の開始タイミングが検出されなかったとき（処理Ｓ１９０のＮｏ）、コード画像読み取り装置１０は、処理Ｓ２６０の認識不可処理を実施して、一連の処理を終了する。一方、ＡＦ調整の開始タイミングが検出されたとき（処理Ｓ１９０のＹｅｓ）、コード画像読み取り装置１０の動作は、処理Ｓ２００に移る。
【００７５】
処理Ｓ２００では、コード画像読み取り装置１０は、ＡＦ撮影を実施する。例えば、ＡＦ部６０は、制御部５０によるＡＦ調整の開始タイミングの検出に応答して、ＡＦ調整を実施する。そして、撮影部２０は、ＡＦ調整で設定された焦点距離で、読み取り対象のコード等の被写体を撮影する。
【００７６】
このように、この実施形態では、撮影されたコードが光学分解能の条件を満たしていないときに、ユーザがカメラの光学特性に合わせて撮影距離を細かく調整する必要がない。また、この実施形態では、ユーザがＡＦ調整を実施するタイミングを決定する必要がない。このため、この実施形態では、コード画像読み取り装置１０の使い勝手を向上できる。また、撮影されたコードが光学分解能の条件を満たしているときには、ＡＦ調整は実施されない。すなわち、この実施形態では、不必要なＡＦ調整を実施しないため、コードを認識するまでの時間を短縮できる。
【００７７】
処理Ｓ２１０、Ｓ２２０は、処理Ｓ１１０、Ｓ１２０と同じである。なお、処理Ｓ２１０−Ｓ２４０では、処理Ｓ２００のＡＦ撮影で生成された撮影画像が使用される。処理Ｓ２３０は、コードがぼけた画像のとき（処理Ｓ２３０のＹｅｓ）の分岐先を除いて、処理Ｓ１３０と同じである。例えば、ＡＦ撮影後のコードがぼけた画像のとき（処理Ｓ２３０のＹｅｓ）、制御部５０の動作は、処理Ｓ２４０に移る。
【００７８】
処理Ｓ２４０は、判定結果の分岐先を除いて、処理Ｓ１４０と同じである。例えば、ＡＦ撮影後のコードの解像度が解像度条件を満たしているとき（処理Ｓ２４０のＹｅｓ）、コード画像読み取り装置１０は、処理Ｓ２５０のユーザ通知（遠ざける指示）を実施して、一連の処理を終了する。一方、ＡＦ撮影後のコードの解像度が解像度条件を満たしていないとき（処理Ｓ２４０のＮｏ）、処理Ｓ２６０の認識不可処理を実施して、一連の処理を終了する。
【００７９】
ここで、解像度は、図３に示したように、撮影距離が遠くなるにしたがい、低くなる。このため、処理Ｓ２４０で解像度条件を満たしていないときには、コード画像読み取り装置１０をコードから遠ざけると、ズーム調整を実施しても解像度条件を満たさない可能性が高くなる。したがって、図７の例では、ＡＦ撮影後のコードの解像度が解像度条件を満たしていないとき（処理Ｓ２４０のＮｏ）、処理Ｓ２６０の認識不可処理を実施して、一連の処理を終了する。
【００８０】
なお、処理Ｓ２４０の解像度条件は、処理Ｓ１４０で説明した式（１）と異なる条件でもよい。例えば、解像度条件は、式（３）に示すように、ズーム調整部７０で調整可能な最大ズーム値Ｚｍａｘを考慮した条件でもよい。
【００８１】
Ｔｍｉｎ＜Ｚｍａｘ・（Ｎ−α）  ・・・（３）
あるいは、処理Ｓ２４０は、省かれてもよい。すなわち、ＡＦ撮影後のコードがぼけた画像のとき（処理Ｓ２３０のＹｅｓ）、コード画像読み取り装置１０は、処理Ｓ２５０のユーザ通知（遠ざける指示）を実施して、一連の処理を終了してもよい。
【００８２】
処理Ｓ２５０では、コード画像読み取り装置１０は、コード画像読み取り装置１０をコードから遠ざけるようにするための指示を表示部１００に表示する。例えば、通知部８０は、コード画像読み取り装置１０をコードから遠ざけるようにするためのユーザ通知ＤＩＮＦを表示部１００に出力する。これにより、コード画像読み取り装置１０をコードから遠ざけるようにするための指示（“遠ざけて下さい”等の指示）が表示部１００に表示される。
【００８３】
このように、コード画像読み取り装置１０は、ＡＦ撮影後のコードが光学分解能の条件を満たしていないとき（ＡＦ撮影後のコードがぼけた画像のとき）、適切な対応方法（“遠ざけて下さい”等の指示）をユーザに通知する。これにより、この実施形態では、コード画像読み取り装置１０の利便性を向上できる。
【００８４】
すなわち、この実施形態では、ＡＦ調整やズーム調整を実施してもコードを認識できないと判定したとき、コードを認識できるようにする対応方法をユーザに通知できる（処理Ｓ１８０、Ｓ２５０）。これにより、この実施形態では、コード画像の読み取り操作の効率を向上できる。
【００８５】
処理Ｓ２６０では、コード画像読み取り装置１０は、例えば、コードの読み取りができないことをユーザに通知する。このように、この実施形態では、コードを認識できるようにする対応方法がないと判定したとき、コード画像読み取り装置１０の移動方向を指示せずに、一連の処理を終了する。
【００８６】
図７に示した一連の動作では、コードを読み取るまでに実施される撮影の回数は、最大３回（処理Ｓ１００、Ｓ２００、Ｓ１６０）である。コードの読み取り処理では、画像撮影に最も時間がかかる。したがって、画像撮影の回数を減らすことにより、コードの読み取り処理全体の処理時間は、効果的に短縮される。すなわち、この実施形態では、コードの読み取り処理全体の処理時間を短くできる。
【００８７】
例えば、ズーム値を１段ずつ変更する方法では、適正ズーム値に到達するまで、画像撮影と解像度条件の判定とが繰り返される。このため、画像撮影の回数が増加する。さらに、適正ズーム値に到達するまでに時間がかかると、ユーザの手が移動して撮影距離がずれるおそれがある。このときには、ＡＦ調整を再度実施する必要があり、画像撮影の回数はさらに増加する。このため、ズーム値を１段ずつ変更する方法では、コードの読み取り処理全体の処理時間が長くなる。換言すれば、この実施形態では、ズーム値を１段ずつ変更する方法に比べて、コードの読み取り処理全体の処理時間を短縮できる。
【００８８】
なお、コード画像読み取り装置１０の動作は、この例に限定されない。例えば、処理Ｓ１５０、Ｓ１６０は、省かれてもよい。この動作では、コードの解像度が解像度条件を満たしていないとき（処理Ｓ１４０のＮｏ）、コード画像読み取り装置１０は、処理Ｓ１８０のユーザ通知（近づける指示）を実施して、一連の処理を終了する。例えば、ズーム機能を有さないデジタルカメラが搭載されたコード画像読み取り装置１０は、図７の動作から処理Ｓ１５０、Ｓ１６０を省いた動作を実施する。
【００８９】
また、処理Ｓ１４０の解像度条件に、図３に示した上限レベルＴＨ２２に対応する最大値（例えば、図１０に示す最大値Ｔｍａｘ）を含めてもよい。このときには、コード画像読み取り装置１０は、コードが表示部１００の画面からはみ出すか否かの判定をコードの解像度に基づいて実施できる。例えば、コード画像読み取り装置１０は、コードが表示部１００の画面からはみ出すと判定したとき、処理Ｓ２５０のユーザ通知（遠ざける指示）を実施して、一連の処理を終了する。
【００９０】
図８は、図１に示したコード検出部３０の動作の一例を示している。なお、図８の動作は、例えば、図７に示した処理Ｓ１１０、Ｓ２１０に対応している。図８の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。
【００９１】
処理Ｓ３００では、コード検出部３０は、撮影画像から検査領域を任意に選択する。例えば、コード検出部３０は、撮影画像の中央部を検査領域として選択する。なお、コード検出部３０は、撮影画像の任意の位置から検査領域を順次選択してもよい。検査領域が順次選択されるときには、例えば、コード（ぼけたコードも含む）が検出されるまで、図８に示した一連の動作が繰り返される。
【００９２】
処理Ｓ３１０では、コード検出部３０は、検査領域の水平方向および垂直方向の白黒のエッジ数Ｈｅｇ、Ｖｅｇを算出する。白黒のエッジ数は、例えば、白黒の境界の数に対応し、画素の諧調が急変する箇所の数を検出することにより算出される。例えば、２次元コードでは、検査領域の水平方向および垂直方向の両方で、多くのエッジが検出される。また、１次元コードでは、例えば、検査領域の水平方向および垂直方向の一方のエッジ数が多くなる。
【００９３】
処理Ｓ３２０では、コード検出部３０は、水平方向エッジ数Ｈｅｇおよび垂直方向エッジ数Ｖｅｇの両方が予め設定された基準値ＲＥＦ１より大きいか否かを判定する。エッジ数Ｈｅｇ、Ｖｅｇの両方が基準値ＲＥＦ１より大きいとき（処理Ｓ３２０のＹｅｓ）、コード検出部３０の動作は、処理Ｓ３３０に移る。一方、エッジ数Ｈｅｇ、Ｖｅｇの少なくとも一方が基準値ＲＥＦ１以下のとき（処理Ｓ３２０のＮｏ）、コード検出部３０の動作は、処理Ｓ４００に移る。
【００９４】
処理Ｓ３３０では、コード検出部３０は、検査領域の黒画素率ＢＲａｔｉｏを算出する。例えば、２次元コードでは、黒と白の割合が一方に偏らないように生成される。処理Ｓ３４０では、コード検出部３０は、黒画素率ＢＲａｔｉｏが所定の最小値Ｂｍｉｎと所定の最大値Ｂｍａｘとの間に入っているか否かを判定する。
【００９５】
黒画素率ＢＲａｔｉｏが最小値Ｂｍｉｎと最大値Ｂｍａｘとの間に入っているとき（処理Ｓ３４０のＹｅｓ）、コード検出部３０の動作は、処理Ｓ３５０に移る。一方、黒画素率ＢＲａｔｉｏが最小値Ｂｍｉｎと最大値Ｂｍａｘとの間に入っていないとき（処理Ｓ３４０のＮｏ）、コード検出部３０は、処理Ｓ３９０で検査領域はコード以外であると判定し、一連の処理を終了する。すなわち、コード検出部３０は、検査領域の黒と白の割合が一方に偏っているとき（処理Ｓ３４０のＮｏ）、コードが検査領域に含まれていないと判定する。
【００９６】
処理Ｓ３５０では、コード検出部３０は、検査領域の画素値の分散ＳＶを算出する。処理Ｓ３６０では、コード検出部３０は、画素値の分散ＳＶが予め設定された基準値ＲＥＦ３より大きいか否かを判定する。例えば、ぼけた白黒画像では、画素値の分散ＳＶは、小さくなる。
【００９７】
画素値の分散ＳＶが基準値ＲＥＦ３より大きいとき（処理Ｓ３６０のＹｅｓ）、コード検出部３０は、処理Ｓ３７０で検査領域は２次元コード（ぼけていない２次元コード）であると判定し、一連の処理を終了する。すなわち、コード検出部３０は、画素値の分散ＳＶが基準値ＲＥＦ３より大きいとき（処理Ｓ３６０のＹｅｓ）、認識可能な２次元コードが撮影画像に含まれていると判定する。
【００９８】
一方、画素値の分散ＳＶが基準値ＲＥＦ３以下のとき（処理Ｓ３６０のＮｏ）、コード検出部３０は、処理Ｓ３８０で検査領域はぼけた２次元コードであると判定し、一連の処理を終了する。すなわち、コード検出部３０は、画素値の分散ＳＶが基準値ＲＥＦ３以下のとき（処理Ｓ３６０のＮｏ）、ぼけた２次元コードが撮影画像に含まれていると判定する。
【００９９】
処理Ｓ４００では、コード検出部３０は、水平方向エッジ数Ｈｅｇおよび垂直方向エッジ数Ｖｅｇの一方が予め設定された基準値ＲＥＦ２より大きいか否かを判定する。基準値ＲＥＦ２は、基準値ＲＥＦ１と同じ値でもよいし、基準値ＲＥＦ１と異なる値でもよい。
【０１００】
エッジ数Ｈｅｇ、Ｖｅｇの一方が基準値ＲＥＦ２より大きいとき（処理Ｓ４００のＹｅｓ）、コード検出部３０の動作は、処理Ｓ４１０に移る。一方、エッジ数Ｈｅｇ、Ｖｅｇの両方が基準値ＲＥＦ２以下のとき（処理Ｓ４００のＮｏ）、コード検出部３０は、処理Ｓ３９０で検査領域はコード以外であると判定し、一連の処理を終了する。すなわち、コード検出部３０は、検査領域内の白黒の境界の数が少ないとき（処理Ｓ４００のＮｏ）、コードが検査領域に含まれていないと判定する。
【０１０１】
処理Ｓ４１０では、コード検出部３０は、検査領域の水平ライン間の相関Ｈｃおよび垂直ライン間の相関Ｖｃを算出する。以下、水平ライン間の相関Ｈｃおよび垂直ライン間の相関Ｖｃを、水平ライン間相関Ｈｃおよび垂直ライン間相関Ｖｃともそれぞれ称する。１次元コードでは、例えば、水平ライン間相関Ｈｃおよび垂直ライン間相関Ｖｃの一方が大きくなる。
【０１０２】
処理Ｓ４２０では、コード検出部３０は、水平ライン間相関Ｈｃおよび垂直ライン間相関Ｖｃの一方が予め設定された基準値ＲＥＦ４より大きいか否かを判定する。水平ライン間相関Ｈｃおよび垂直ライン間相関Ｖｃの一方が基準値ＲＥＦ４より大きいとき（処理Ｓ４２０のＹｅｓ）、コード検出部３０の動作は、処理Ｓ４３０に移る。
【０１０３】
一方、水平ライン間相関Ｈｃおよび垂直ライン間相関Ｖｃの両方が基準値ＲＥＦ４以下のとき（処理Ｓ４２０のＮｏ）、コード検出部３０は、処理Ｓ４６０で検査領域はぼけた１次元コードであると判定し、一連の処理を終了する。すなわち、コード検出部３０は、水平ライン間相関Ｈｃおよび垂直ライン間相関Ｖｃの両方が基準値ＲＥＦ４以下のとき（処理Ｓ４２０のＮｏ）、ぼけた１次元コードが撮影画像に含まれていると判定する。
【０１０４】
処理Ｓ４３０では、コード検出部３０は、検査領域の画素値の分散ＳＶを算出する。処理Ｓ４４０では、コード検出部３０は、画素値の分散ＳＶが基準値ＲＥＦ３より大きいか否かを判定する。画素値の分散ＳＶが基準値ＲＥＦ３より大きいとき（処理Ｓ４４０のＹｅｓ）、コード検出部３０は、処理Ｓ４５０で検査領域は１次元コード（ぼけていない１次元コード）であると判定し、一連の処理を終了する。すなわち、コード検出部３０は、画素値の分散ＳＶが基準値ＲＥＦ３より大きいとき（処理Ｓ４４０のＹｅｓ）、認識可能な１次元コードが撮影画像に含まれていると判定する。
【０１０５】
一方、画素値の分散ＳＶが基準値ＲＥＦ３以下のとき（処理Ｓ４４０のＮｏ）、コード検出部３０は、処理Ｓ４６０で検査領域はぼけた１次元コードであると判定し、一連の処理を終了する。すなわち、コード検出部３０は、画素値の分散ＳＶが基準値ＲＥＦ３以下のとき（処理Ｓ４４０のＮｏ）、ぼけた１次元コードが撮影画像に含まれていると判定する。
【０１０６】
すなわち、撮影画像が認識可能な２次元コードと判定される条件は、処理Ｓ３２０のエッジ数Ｈｅｇ、Ｖｅｇの条件、処理Ｓ３４０の黒画素率ＢＲａｔｉｏの条件および処理Ｓ３６０の画素値の分散ＳＶの条件を満たすときである。また、撮影画像がぼけた２次元コードと判定される条件は、処理Ｓ３２０のエッジ数Ｈｅｇ、Ｖｅｇの条件および処理Ｓ３４０の黒画素率ＢＲａｔｉｏの条件を満たし、処理Ｓ３６０の画素値の分散ＳＶの条件を満たさないときである。
【０１０７】
そして、撮影画像が認識可能な１次元コードと判定される条件は、処理Ｓ４００のエッジ数Ｈｅｇ、Ｖｅｇの条件、処理Ｓ４２０のライン間相関Ｈｃ、Ｖｃの条件および処理Ｓ４４０の画素値の分散ＳＶの条件を満たすときである。また、撮影画像がぼけた１次元コードと判定される条件は、処理Ｓ４００のエッジ数Ｈｅｇ、Ｖｅｇの条件、処理Ｓ４２０のライン間相関Ｈｃ、Ｖｃの条件を満たし、処理Ｓ４４０の画素値の分散ＳＶの条件を満たさないときである。
【０１０８】
処理Ｓ３７０−Ｓ３９０、Ｓ４５０、Ｓ４６０では、コード検出部３０は、判定結果ＩＩＮＦを制御部５０に出力する。これにより、制御部５０は、図７に示した処理Ｓ１２０、Ｓ１３０、Ｓ２２０、Ｓ２３０等を実施できる。
【０１０９】
このように、コード検出部３０は、撮影距離と焦点距離との差の検出等の複雑な処理を実施せずに、画素値の分散ＳＶに基づいてぼけた画像か否かを判定する。これにより、この実施形態では、ぼけた画像か否かを判定する処理の時間が長くなることを抑制できる。
【０１１０】
なお、コード検出部３０の動作は、この例に限定されない。例えば、処理Ｓ３５０、Ｓ３６０、Ｓ４３０、Ｓ４４０は、処理Ｓ３１０の前に、実施されてもよい。このときには、画素値の分散ＳＶが基準値ＲＥＦ３より大きいか否かの判定結果は、フラグ等に記憶される。例えば、画素値の分散ＳＶが基準値ＲＥＦ３以下のとき、ぼけた画像であることを示すフラグ等が設定される。
【０１１１】
図９は、ＡＦタイミング検出の一例を示している。コード画像読み取り装置１０は、Ｚ軸方向、Ｘ軸方向およびＹ軸方向に分けて、コード画像読み取り装置１０の移動を検出する（図９（ａ））。Ｚ軸方向は、コード画像読み取り装置１０のカメラ（より詳細には、撮影レンズ）の光軸に沿う方向（光軸方向）である。なお、図９（ａ）のコード画像読み取り装置１０では、カメラの撮影レンズは、図９（ａ）のコードＣＯＤに対向する側に配置されている。Ｘ軸方向およびＹ軸方向は、Ｚ軸方向に直交する方向である。また、Ｘ軸方向およびＹ軸方向は、例えば、互いに直交している。
【０１１２】
例えば、移動状態検出部４０は、加速度センサ、角速度センサおよび地磁気センサ等のセンサの出力を用いて、コード画像読み取り装置１０のＺ軸方向、Ｘ軸方向およびＹ軸方向のそれぞれの移動速度を算出する（図９（ｂ））。図の太線の波形は、コード画像読み取り装置１０のＺ軸方向、Ｘ軸方向およびＹ軸方向のそれぞれの移動速度の変化の一例を示している。なお、速度“０”より上側の波形は、速度“０”の下側の波形の移動方向と反対側に移動していることを示している。また、範囲ＤＶＸ、ＤＶＹ、ＤＶＺは、例えば、速度“０”を中心にした所定の範囲である。
【０１１３】
Ｘ軸方向およびＹ軸方向の移動は、例えば、表示部１００の画面内にコードＣＯＤを納めるための位置合わせをユーザが実施しているときに、発生する。そして、コードＣＯＤが表示部１００の画面内に納まったときには、Ｘ軸方向およびＹ軸方向の移動速度は、ほぼ“０”になる。例えば、制御部５０は、Ｘ軸方向の移動速度が予め設定された所定範囲ＤＶＸ内で推移しているとき、コード画像読み取り装置１０のＸ軸方向の移動はないと判定する。同様に、制御部５０は、Ｙ軸方向の移動速度が予め設定された所定範囲ＤＶＹ内で推移しているとき、コード画像読み取り装置１０のＹ軸方向の移動はないと判定する。
【０１１４】
Ｚ軸方向の移動は、例えば、コードＣＯＤまでの撮影距離をユーザが調整しているときに、発生する。そして、撮影距離の調整が終了したとき（コードＣＯＤを認識できるとユーザが判断したとき）には、Ｚ軸方向の移動速度は、ほぼ“０”になる。例えば、制御部５０は、Ｚ軸方向の移動速度が予め設定された所定範囲ＤＶＺ内で推移しているとき、コード画像読み取り装置１０のＺ軸方向の移動はないと判定する。
【０１１５】
時刻ｔ１０から時刻ｔ２０までの期間では、Ｘ軸方向およびＹ軸方向の移動速度の変化が所定範囲ＤＶＸ、ＤＶＹに納まっていない。したがって、制御部５０は、コード画像読み取り装置１０のＸ軸方向およびＹ軸方向の位置合わせの最中であると判定する。
【０１１６】
時刻ｔ２０以降では、Ｘ軸方向およびＹ軸方向の移動速度が所定範囲ＤＶＸ、ＤＶＹ内で推移している。したがって、制御部５０は、コード画像読み取り装置１０のＸ軸方向およびＹ軸方向の位置合わせが終了していると判定する。すなわち、制御部５０は、表示部１００の画面内にコードＣＯＤが納まっていると判定する。コードＣＯＤが表示部１００の画面内に納まっているときには、撮影画像内にコードＣＯＤが存在する。
【０１１７】
ここで、コードＣＯＤの認識条件の１つは、撮影画像内にコードＣＯＤが存在することである。したがって、Ｘ軸方向およびＹ軸方向の移動速度が予め設定された所定範囲ＤＶＸ、ＤＶＹ内で推移しているとき（時刻ｔ２０以降）は、コードＣＯＤの認識条件の１つを満たしている。
【０１１８】
なお、時刻ｔ２０から時刻ｔ３０までの期間では、Ｚ軸方向の移動速度の変化が所定範囲ＤＶＺに納まっていない。したがって、制御部５０は、撮影距離の調整中であると判定する。
【０１１９】
時刻ｔ３０以降では、Ｘ軸方向、Ｙ軸方向およびＺ軸方向の移動速度が所定範囲ＤＶＸ、ＤＶＹ、ＤＶＺ内で推移している。したがって、制御部５０は、コード画像読み取り装置１０が停止していると判定する。コード画像読み取り装置１０が停止しているときには、コードＣＯＤを認識できるとユーザが判断している可能性が高いため、制御部５０は、ＡＦ調整の開始タイミングであると判定する。すなわち、制御部５０は、コード画像読み取り装置１０が移動していないと判定したとき（図９の“移動なし”の丸印）、ＡＦ調整の開始タイミングと判定する。
【０１２０】
なお、制御部５０は、撮影距離の調整期間（時刻ｔ２０から時刻ｔ３０までの期間）が長いとき、ユーザが適切な撮影距離を判断できずに迷っている可能が高いため、ＡＦ調整の開始タイミングを撮影距離の調整期間に検出してもよい。例えば、制御部５０は、コード画像読み取り装置１０が位置合わせの終了（時刻ｔ２０）から所定時間継続してＺ軸方向に移動していると判定したとき（図９の“所定時間経過”の丸印）、ＡＦ調整の開始タイミングと判定してもよい。あるいは、制御部５０は、位置合わせの終了後（時刻ｔ２０以降）で、コード画像読み取り装置１０のＺ軸方向の移動が反対方向に変化したと判定したとき（図９の“移動方向変更”の丸印）、ＡＦ調整の開始タイミングと判定してもよい。
【０１２１】
すなわち、制御部５０は、上述した３つの状態の少なくとも１つを検出可能に形成されていればよい。そして、制御部５０は、３つの状態の少なくとも１つを移動状態検出部４０の検出結果に基づいて検出することにより、ＡＦ調整の開始タイミングを検出する。これにより、この実施形態では、ユーザによる端末（コード画像読み取り装置１０）の移動状態に合わせた適切なタイミングで、ＡＦ調整を実施できる。３つの状態を第１状態、第２状態および第３状態として、以下に整理して示す。
【０１２２】
第１状態は、コード画像読み取り装置１０が停止している状態である。第２状態は、コード画像読み取り装置１０がＸ軸方向およびＹ軸方向に移動していない状態で、かつ、コード画像読み取り装置１０がカメラの光軸方向に所定時間継続して移動している状態である。第３状態は、コード画像読み取り装置１０がＸ軸方向およびＹ軸方向に移動していない状態で、かつ、コード画像読み取り装置１０のＺ軸方向の移動が反対方向に変化した状態である。
【０１２３】
図１０は、解像度条件に関する処理の一例を示している。
【０１２４】
先ず、制御部５０は、検査領域ＡＲ（ＡＲ１０、ＡＲ１２）のライン毎に、白／黒パターンの長さ（画素数）を検出する（図１０（ａ））。１次元コードＣＯＤ２０では、制御部５０は、例えば、横方向のラインのみに対して、白／黒パターンの長さ検出を実施する。また、２次元コードＣＯＤ２２では、制御部５０は、例えば、縦方向および横方向の両方のラインに対して、白／黒パターンの長さ検出を実施する。
【０１２５】
そして、制御部５０は、検出した長さ（画素数）のヒストグラムを作成する（図１０（ｂ））。例えば、１次元コードＣＯＤ２０および２次元コードＣＯＤ２２では、白／黒パターンの長さは、単位図形（バーコードでは最小バー、ＱＲコードではセル）の幅の整数倍である。したがって、白／黒パターンの長さ（画素数）のヒストグラムでは、等間隔（Ｎ、２×Ｎ、３×Ｎ、４×Ｎ）でピークが発生する。
【０１２６】
このため、制御部５０は、ピークが発生した区間（画素数）Ｎ、２×Ｎ、３×Ｎ、４×Ｎのうち、最も画素数が少ない区間Ｎを、単位図形（例えば、ＱＲコードのセル）の１辺当たりの画素数（推定画素数）として算出する。推定画素数Ｎは、図７で説明した式（１）の画素数Ｎに対応している。また、制御部５０は、推定画素数Ｎの推定誤差±αを算出する。例えば、制御部５０は、区間Ｎのピークの半値半幅を、推定誤差αとして算出する。
【０１２７】
なお、制御部５０は、ピークが等間隔で発生することを利用して、２つ目以降のピークとの間隔の重み付け平均を推定画素数Ｎとしてもよい。このときには、推定画素数Ｎの精度は、向上する。あるいは、制御部５０は、他の方法で推定画素数Ｎを算出してもよい。また、制御部５０は、検査領域ＡＲ内をＦＦＴしたときの周波数の分布を、白／黒パターンの長さのヒストグラムの代わりに使用してもよい。
【０１２８】
次に、制御部５０は、推定画素数Ｎおよび推定誤差αに基づいて、コードＣＯＤの解像度が解像度条件を満たしているか否かを検出する（図１０（ｃ））。推定画素数Ｎが最小値Ｔｍｉｎより小さいときには、例えば、ソフトウエアの処理限界により、コードＣＯＤが認識されない。このため、制御部５０は、推定画素数Ｎが最小値Ｔｍｉｎより小さいとき、ズーム調整が必要であると判定する。また、推定画素数Ｎが最大値Ｔｍａｘより大きいときには、例えば、コードＣＯＤが表示部１００の画面からはみ出す可能性が高くなり、コードＣＯＤが認識されない可能性が高くなる。
【０１２９】
推定画素数Ｎが最大値Ｔｍａｘより大きいときにも、コードＣＯＤが表示部１００の画面からはみ出さない可能性があるため、最大値Ｔｍａｘは、解像度条件に含まれなくてもよい。このときの解像度条件は、図７で説明した式（１）で表される。なお、最大値Ｔｍａｘを含む解像度条件は、例えば、式（４）で表される。
【０１３０】
Ｔｍｉｎ＋α＜Ｎ＜Ｔｍａｘ−α  ・・・（４）
推定画素数Ｎが解像度条件（式（１）あるいは式（４））を満たさないとき、コード画像読み取り装置１０は、適正ズーム値でズーム調整することにより、コードＣＯＤの解像度を調整する。例えば、制御部５０は、ズーム撮影後のコードＣＯＤが表示部１００の画面からはみ出すことを避けるため、ズーム撮影後のコードＣＯＤの推定画素数Ｎを最小値Ｔｍｉｎより僅かに大きくするようなズーム値を、適正ズーム値として算出する。
【０１３１】
すなわち、制御部５０は、例えば、図７で説明した式（２）の目標ズーム値Ｚｍのうちの最小値（＝Ｔｍｉｎ／（Ｎ−α））を、適正ズーム値として算出する。なお、設定可能なズーム値が離散値のとき、制御部５０は、最小値（＝Ｔｍｉｎ／（Ｎ−α））より大きい設定可能なズーム値のうち、最小のズーム値（設定可能な値）を適正ズーム値として算出する。また、制御部５０は、最小値（＝Ｔｍｉｎ／（Ｎ−α））より大きい設定可能なズーム値が存在しないとき、ズーム調整を実施しても解像度条件が満たされないと判定する。
【０１３２】
以上、この実施形態では、コード画像読み取り装置１０は、コードＣＯＤの認識不可の原因に応じた制御をコードＣＯＤの光学分解能および解像度に基づいて実施する制御部５０を有している。例えば、制御部５０は、コードＣＯＤがぼけた画像（光学分解能不足）のとき、ＡＦ調整の開始タイミングをコード画像読み取り装置１０の移動状態に基づいて検出する。これにより、この実施形態では、ＡＦ調整を適切なタイミングで自動的に実施できる。
【０１３３】
また、制御部５０は、コードＣＯＤがぼけた画像でないとき、ズーム調整が必要か否かをコードＣＯＤの解像度に基づいて判定する。これにより、この実施形態では、適正ズーム値に設定したズーム撮影を適切なタイミングで自動的に実施できる。さらに、制御部５０は、ＡＦ調整やズーム調整を実施してもコードＣＯＤを認識できないと判定したときに、コードＣＯＤを認識できるようにする対応方法をユーザに通知する。これにより、この実施形態では、コード画像読み取り装置１０の利便性を向上できる。すなわち、この実施形態では、コード画像の読み取り操作の効率を向上できる。
【０１３４】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
デジタルカメラが搭載されたコード画像読み取り装置であって、
画像を撮影する撮影部と、
撮影された前記画像の任意の検査領域にコードが含まれているか否かを検出し、前記検査領域内の前記コードがぼけた画像か否かを判定するコード検出部と、
前記コード画像読み取り装置の移動状態を検出する移動状態検出部と、
前記コードが前記ぼけた画像のとき、オートフォーカス調整の開始タイミングを前記移動状態検出部の検出結果に基づいて検出し、前記コードが前記ぼけた画像でないとき、ズーム調整が必要か否かを前記検査領域内の前記コードの解像度に基づいて判定する制御部と、
前記開始タイミングの検出に応答して、前記オートフォーカス調整を実施するオートフォーカス部と、
前記ズーム調整が必要であると前記制御部で判定されたとき、前記ズーム調整を実施するズーム調整部と、
前記コードの認識不可の原因に応じたユーザ通知をユーザに通知する通知部と、
前記コードに格納されているデータを取り出すコード処理部と
を備えていることを特徴とするコード画像読み取り装置。
（付記２）
前記制御部は、前記コードが前記ぼけた画像のとき、第１状態、第２状態および第３状態の少なくとも１つを前記移動状態検出部の前記検出結果に基づいて検出することにより、前記開始タイミングを検出し、
前記第１状態は、前記コード画像読み取り装置が停止している状態であり、
前記第２状態は、前記コード画像読み取り装置が前記デジタルカメラの光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置が前記光軸方向に所定時間継続して移動している状態であり、
前記第３状態は、前記コード画像読み取り装置が前記光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置の前記光軸方向の移動が反対方向に変化した状態であること
を特徴とする付記１記載のコード画像読み取り装置。
（付記３）
前記コード検出部は、前記検査領域の画素値の分散が予め設定された基準値以下のとき、前記コードを前記ぼけた画像と判定すること
を特徴とする付記１または付記２記載のコード画像読み取り装置。
（付記４）
前記通知部は、前記オートフォーカス調整を実施した後の前記コードが前記ぼけた画像のとき、前記コード画像読み取り装置を前記コードから遠ざけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする付記１ないし付記３のいずれか１項に記載のコード画像読み取り装置。
（付記５）
前記制御部は、前記コードが前記ぼけた画像でないとき、前記コードの最小構成単位の図形の１辺当たりの画素数が予め設定された最小値より小さいか否かを判定し、前記図形の１辺当たりの画素数が前記最小値より小さいとき、前記ズーム調整が必要であると判定すること
を特徴とする付記１ないし付記４のいずれか１項に記載のコード画像読み取り装置。
（付記６）
前記制御部は、前記検査領域における前記図形の１辺当たりの画素数Ｎを算出する際の分布に基づいて推定誤差αを検出し、前記画素数Ｎが前記推定誤差αおよび最小値Ｔｍｉｎを用いた式（１）を満たさないとき、式（２）を満たす目標ズーム値Ｚｍが前記ズーム調整部で調整可能な範囲に存在するか否かに基づいて、前記コードの認識が可能か否かを判定すること
Ｔｍｉｎ＜Ｎ−α  ・・・（１）
Ｔｍｉｎ／（Ｎ−α）＜Ｚｍ  ・・・（２）
を特徴とする付記５記載のコード画像読み取り装置。
（付記７）
前記通知部は、前記目標ズーム値が前記ズーム調整部で調整可能な範囲に存在しないとき、前記コード画像読み取り装置を前記コードに近づけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする付記６記載のコード画像読み取り装置。
（付記８）
デジタルカメラが搭載されたコード画像読み取り装置の動作方法であって、
画像を撮影し、
撮影された前記画像の任意の検査領域にコードが含まれているか否かを検出し、前記検査領域内の前記コードがぼけた画像か否かを判定し、
前記コード画像読み取り装置の移動状態を検出し、
前記コードが前記ぼけた画像のとき、オートフォーカス調整の開始タイミングを前記移動状態の検出結果に基づいて検出し、前記コードが前記ぼけた画像でないとき、ズーム調整が必要か否かを前記検査領域内の前記コードの解像度に基づいて判定し、
前記開始タイミングの検出に応答して、前記オートフォーカス調整を実施し、
前記ズーム調整が必要であると判定されたとき、前記ズーム調整を実施し、
前記コードが認識不可のとき、前記コードの認識不可の原因に応じたユーザ通知をユーザに通知し、
認識可能な前記コードが検出されたとき、前記コードに格納されているデータを取り出すこと
を特徴とするコード画像読み取り装置の動作方法。
（付記９）
前記コードが前記ぼけた画像のとき、第１状態、第２状態および第３状態の少なくとも１つを前記移動状態の前記検出結果に基づいて検出することにより、前記開始タイミングを検出し、
前記第１状態は、前記コード画像読み取り装置が停止している状態であり、
前記第２状態は、前記コード画像読み取り装置が前記デジタルカメラの光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置が前記光軸方向に所定時間継続して移動している状態であり、
前記第３状態は、前記コード画像読み取り装置が前記光軸方向に直交する方向に移動していない状態で、かつ、前記コード画像読み取り装置の前記光軸方向の移動が反対方向に変化した状態であること
を特徴とする付記８記載のコード画像読み取り装置の動作方法。
（付記１０）
前記検査領域の画素値の分散が予め設定された基準値以下のとき、前記コードを前記ぼけた画像と判定すること
を特徴とする付記８または付記９記載のコード画像読み取り装置の動作方法。
（付記１１）
前記オートフォーカス調整を実施した後の前記コードが前記ぼけた画像のとき、前記コード画像読み取り装置を前記コードから遠ざけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする付記８ないし付記１０のいずれか１項に記載のコード画像読み取り装置の動作方法。
（付記１２）
前記コードが前記ぼけた画像でないとき、前記コードの最小構成単位の図形の１辺当たりの画素数が予め設定された最小値より小さいか否かを判定し、前記図形の１辺当たりの画素数が前記最小値より小さいとき、前記ズーム調整が必要であると判定すること
を特徴とする付記８ないし付記１１のいずれか１項に記載のコード画像読み取り装置の動作方法。
（付記１３）
前記検査領域における前記図形の１辺当たりの画素数Ｎを算出する際の分布に基づいて推定誤差αを検出し、前記画素数Ｎが前記推定誤差αおよび最小値Ｔｍｉｎを用いた式（１）を満たさないとき、式（２）を満たす目標ズーム値Ｚｍが前記ズーム調整部で調整可能な範囲に存在するか否かに基づいて、前記コードの認識が可能か否かを判定すること
Ｔｍｉｎ＜Ｎ−α  ・・・（１）
Ｔｍｉｎ／（Ｎ−α）＜Ｚｍ  ・・・（２）
を特徴とする付記１２記載のコード画像読み取り装置の動作方法。
（付記１４）
前記目標ズーム値が前記ズーム調整部で調整可能な範囲に存在しないとき、前記コード画像読み取り装置を前記コードに近づけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする付記１３記載のコード画像読み取り装置の動作方法。
（付記１５）
デジタルカメラが搭載された電子機器に実行させるコード画像読み取りプログラムであって、
前記電子機器を付記１ないし付記７のいずれか１項に記載のコード画像読み取り装置として動作させるコード画像読み取りプログラム。
（付記１６）
デジタルカメラが搭載された電子機器に実行させるコード画像読み取りプログラムであって、
画像を撮影する撮影処理と、
撮影された前記画像の任意の検査領域にコードが含まれているか否かを検出し、前記検査領域内の前記コードがぼけた画像か否かを判定するコード検出処理と、
前記電子機器の移動状態を検出する移動状態検出処理と、
前記コードが前記ぼけた画像のとき、オートフォーカス調整の開始タイミングを前記移動状態の検出結果に基づいて検出し、前記コードが前記ぼけた画像でないとき、ズーム調整が必要か否かを前記検査領域内の前記コードの解像度に基づいて判定する制御処理と、
前記開始タイミングの検出に応答して、前記オートフォーカス調整を実施するオートフォーカス処理と、
前記ズーム調整が必要であると判定されたとき、前記ズーム調整を実施するズーム調整処理と、
前記コードが認識不可のとき、前記コードの認識不可の原因に応じたユーザ通知をユーザに通知する通知処理と、
認識可能な前記コードが検出されたとき、前記コードに格納されているデータを取り出すコード処理と
を前記電子機器に実行させることを特徴とするコード画像読み取りプログラム。
（付記１７）
前記コードが前記ぼけた画像のとき、第１状態、第２状態および第３状態の少なくとも１つを前記移動状態の前記検出結果に基づいて検出することにより、前記開始タイミングを検出し、
前記第１状態は、前記電子機器が停止している状態であり、
前記第２状態は、前記電子機器が前記デジタルカメラの光軸方向に直交する方向に移動していない状態で、かつ、前記電子機器が前記光軸方向に所定時間継続して移動している状態であり、
前記第３状態は、前記電子機器が前記光軸方向に直交する方向に移動していない状態で、かつ、前記電子機器の前記光軸方向の移動が反対方向に変化した状態であること
を特徴とする付記１６記載のコード画像読み取りプログラム。
（付記１８）
前記検査領域の画素値の分散が予め設定された基準値以下のとき、前記コードを前記ぼけた画像と判定すること
を特徴とする付記１６または付記１７記載のコード画像読み取りプログラム。
（付記１９）
前記オートフォーカス調整を実施した後の前記コードが前記ぼけた画像のとき、前記電子機器を前記コードから遠ざけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする付記１６ないし付記１８のいずれか１項に記載のコード画像読み取りプログラム。
（付記２０）
前記コードが前記ぼけた画像でないとき、前記コードの最小構成単位の図形の１辺当たりの画素数が予め設定された最小値より小さいか否かを判定し、前記図形の１辺当たりの画素数が前記最小値より小さいとき、前記ズーム調整が必要であると判定すること
を特徴とする付記１６ないし付記１９のいずれか１項に記載のコード画像読み取りプログラム。
（付記２１）
前記検査領域における前記図形の１辺当たりの画素数Ｎを算出する際の分布に基づいて推定誤差αを検出し、前記画素数Ｎが前記推定誤差αおよび最小値Ｔｍｉｎを用いた式（１）を満たさないとき、式（２）を満たす目標ズーム値Ｚｍが前記ズーム調整部で調整可能な範囲に存在するか否かに基づいて、前記コードの認識が可能か否かを判定すること
Ｔｍｉｎ＜Ｎ−α  ・・・（１）
Ｔｍｉｎ／（Ｎ−α）＜Ｚｍ  ・・・（２）
を特徴とする付記２０記載のコード画像読み取りプログラム。
（付記２２）
前記目標ズーム値が前記ズーム調整部で調整可能な範囲に存在しないとき、前記電子機器を前記コードに近づけるようにするための前記ユーザ通知をユーザに通知すること
を特徴とする付記２１記載のコード画像読み取りプログラム。
【０１３５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１３６】
１０‥コード画像読み取り装置；２０‥撮影部；３０‥コード検出部；４０‥移動状態検出部；５０‥制御部；６０‥オートフォーカス部；７０‥ズーム調整部；８０‥通知部；９０‥コード処理部；１００‥表示部；ＡＲ１０、ＡＲ１２‥検査領域；ＣＯＤ、ＣＯＤ２０、ＣＯＤ２２、ＣＯＤａ、ＣＯＤｂ、ＣＯＤｂ’、ＣＯＤｃ、ＣＯＤｄ、ＣＯＤｅ‥コード
【図１】
0005915296.tif 000002
【図２】
0005915296.tif 000003
【図３】
0005915296.tif 000004
【図４】
0005915296.tif 000005
【図５】
0005915296.tif 000006
【図６】
0005915296.tif 000007
【図７】
0005915296.tif 000008
【図８】
0005915296.tif 000009
【図９】
0005915296.tif 000010
【図１０】
0005915296.tif 000011