以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
先ず、図1を参照して、本実施の形態の装置の外観構成を説明する。図1に、本実施の形態のスキャナ装置1の正面の外観構成を示す。
本実施の形態のスキャナ装置1は、情報の入力受付け、情報の記憶、情報の送受信、及びバーコード読み取りなどの機能を有する携帯機器である。
図1に示すように、スキャナ装置1は、筐体としてのケース2を備える。スキャナ装置1は、ケース2の正面に、トリガキー12Aと、各種キー12Bと、表示部14と、スピーカ18Aと、を備える。スキャナ装置1は、ケース2の側面に、トリガキー12Cを備える。また、スキャナ装置1は、ケース2の先端に、イメージャモジュール21を備える。スピーカ18Aは、バーコード読み取りのデコード成功時のブザー音等を出力する。
トリガキー12A,12Cは、イメージャモジュール21によるスキャン開始の入力を受け付けるトリガキーである。各種キー12Bは、数字、文字等の入力キー、機能キー等からなり、各種情報の入力を受け付ける。表示部14は、イメージャモジュール21を用いたバーコード読み取り時のスルー画面、デコード結果等の表示情報を表示する。
次いで、図2を参照して、スキャナ装置1の内部の機能構成を説明する。図2に、スキャナ装置1の機能構成を示す。
図2に示すように、スキャナ装置1は、コントラスト検出部、デコード部及び転送部としてのCPU(central Processing Unit)11と、操作部12と、記憶部としてのRAM(Random Access Memory)13と、表示部14と、ROM(Read Only Memory)15と、通信部16と、フラッシュメモリ17と、音出力部18と、焦点調整部及び切り出し画像生成部としてのイメージャコントローラ19と、電圧昇圧部20と、イメージャモジュール21と、電源部22と、を備える。スキャナ装置1のイメージャモジュール21及び電源部22を除く各部は、バス23を介して接続されている。イメージャモジュール21は、撮像部としての撮像素子211と、可変焦点レンズとしての液体レンズ212と、スポット光照射部としてのエイマー213と、照明光照射部としてのイルミネーション214と、を有する。
CPU11は、スキャナ装置1の各部を制御する。CPU11は、ROM15からプログラムを読み出してRAM13に展開し、RAM13に展開されたプログラムとの協働で各種処理を実行する。具体的には、CPU11(コンピュータ)は、後述する図13の処理フローで示すプログラムを実行する。
CPU11は、バーコード読み取りプログラム151に従って、イメージャコントローラ19に、液体レンズ212を介してバーコードを撮像素子211に撮像させてエイマー213の光の映像を含む切り出し画像の画像データを出力させるとともに、エイマー213の光の映像から液体レンズ212の焦点位置に対応する電圧を液体レンズ212に印加させる。また、CPU11は、イメージャコントローラ19に入力された画像データの光像のコントラストを算出し、そのコントラストが所定値以上になった又は所定時間を経過した場合に、液体レンズ212を介してバーコードを撮像素子211に撮像させてフレーム画像の画像データを出力させるとともに、当該画像データに含まれるバーコード画像をデコードする。
また、CPU11は、撮像素子211からイメージャコントローラ19に入力された画像のラインデータを、RAM13にDMA(Direct Memory Access)転送し記憶させるDMA転送機能を有する。なお、DMA転送機能は、イメージャコントローラ19が有する構成としてもよい。
操作部12は、各種キー12B、トリガキー12A,12C等のキー群を有し、当該キー群の各キーへの押下入力を受け付け、その操作情報をCPU11に出力する。
RAM13は、揮発性の半導体メモリであり、各種データ及び各種プログラムを格納するワークエリアを有する。
表示部14は、LCD(Liquid Crystal Display)、EL(electroluminescent)ディスプレイ等で構成され、各種情報を表示する。
ROM15は、読み出し専用の半導体メモリである。ROM15には、バーコード読み取りプログラム151が記憶されている。
通信部16は、通信アンテナ、信号処理部、変調部、復調部等を備え、アクセスポイントを介してサーバ装置と通信する無線通信部である。通信部16は、送信情報の信号を信号処理部で処理し、変調部で変調して通信アンテナから電波としてアクセスポイントに送信情報を無線送信する。また、通信部16は、通信アンテナによりアクセスポイントから送信された電波を受信して復調部で復調し、その信号を信号処理部で信号処理して受信情報を取得する。
また、通信部16は、携帯電話通信方式により、基地局を介してサーバ装置と無線通信する無線通信部としてもよい。また、通信部16は、スキャナ装置1を載置するクレードルを介してサーバ装置と有線通信する有線通信部としてもよい。
フラッシュメモリ17は、各種データを読み出し及び書き込み可能な不揮発性の半導体メモリである。
音出力部18は、音源部、アンプ、スピーカ18Aを備え、デコード成功時のブザー音を出力する。音出力部18は、CPU11から入力されたブザー音出力の指示に応じて、音源部でブザー音の信号を生成し、アンプで増幅して、スピーカ18Aから音出力する。
イメージャコントローラ19は、イメージャモジュール21及び電圧昇圧部20の制御部である。イメージャコントローラ19は、ASIC(Application Specific Integrated Circuit)等の半導体回路により構成されている。
イメージャコントローラ19は、撮像素子211から、キャプチャされた画像データの1フレームの出力タイミングに同期したフレーム同期信号と、画像データの1ラインの出力タイミングに同期したライン同期信号と、画像データに同期するためのクロック信号と、が入力される。イメージャコントローラ19は、これらフレーム同期信号、ライン同期信号及びクロック信号に基づいて、RAM13への画像データの転送タイミングを監視する。そして、イメージャコントローラ19は、監視状況に応じて液体レンズ212駆動用の電圧昇圧部20の昇圧レベルをPWM(Pulse Width Modulation)信号でコントロールすることにより液体レンズ212の焦点をリアルタイムに変化させる。
また、イメージャコントローラ19は、入力される画像データの画像領域を指定する画像領域指定信号を生成して撮像素子211に出力する。
電圧昇圧部20は、イメージャコントローラ19から入力されたPWM信号に応じて、液体レンズ212に電圧を印加する。
イメージャモジュール21は、焦点を調整してバーコードを撮影するモジュールである。撮像素子211は、CMOS(Complementary Metal Oxide Semiconductor Image Sensor:相補性金属酸化膜半導体)イメージセンサであり、画像領域を指定して画像データを出力することが可能な撮像素子である。撮像素子211は、液体レンズ212を含む光学系を介して入射された被写体像を露光し光電変換して被写体の画像データの電気信号に変換する。
撮像素子211は、イメージャコントローラ19から入力された画像領域指定信号により指定されたラインの画像データを1ラインずつラインデータとしてイメージャコントローラ19に出力する。また、撮像素子211は、フレーム同期信号と、ライン同期信号と、クロック信号と、をイメージャコントローラ19に出力する。液体レンズ212は、イメージャモジュール21の光学系の一部を構成する光学素子であり、印加電圧に応じて高速で焦点位置を変更可能な可変焦点レンズである。液体レンズ212については、詳細に後述する。
エイマー213は、LD(LASER Diode)等の光源により構成され、被写体にイメージャモジュール21を向けるための基準となるスポット光(目標光)としてのレーザ光を被写体又はその近傍に出射する。イルミネーション214は、LED(Light Emitting Diode)等の光源により構成され、被写体及びその周囲の領域を明るくするための照射光(イルミネーション光とする)を出射する。
電源部22は、二次電池等で構成され、スキャナ装置1の各部に電力供給を行う。
次いで、図3を参照して、イメージャモジュール21の各部の配置を詳細に説明する。図3に、イメージャモジュール21の平面構成を示す。
図3に示すように、イメージャモジュール21において、液体レンズ212を含む光学系の光軸に対応する位置に撮像素子211が配置されている。また、液体レンズ212を含む光学系212Aの横に、エイマー213及びイルミネーション214が配置されている。エイマー213のレーザ光がイメージャモジュール21(光学系及び撮像素子211)の画角内に含まれるように、エイマー213が配置されている。また、イルミネーション214の扇状に広がる光がイメージャモジュール21(光学系及び撮像素子211)の画角を含むように、イルミネーション214が配置されている。
エイマー213は、エイマー光が画角方向に平行に照射されるように実装されている。このため、扇状に広がるイメージャモジュール21の画角に対するエイマー213の位置が距離によって異なる。
次いで、図4を参照して、液体レンズ212を詳細に説明する。図4に、印加電圧の変化による液体レンズ212の焦点変化を示す。図4に、液体レンズ212の焦点変化を示す。
図4に示すように、液体レンズ212は、液体部2121,2122と、容器2123と、電極2124と、を有する。液体部2121,2122は、互いに屈折率が異なり比重が同じ水溶液及び油である。容器2123は、液体部2121,2122を密閉した容器である。電極2124は、電圧を印加するために液体部2121,2122の周囲に設けられている電極である。
液体部2121側の電極2124と、液体部2122側の電極2124との間に、電源30が接続されている構成を考える。電源30により、液体部2121側の電極2124と、液体部2122側の電極2124との間に電圧を印加することで、液体部2121,2122の中央部分の界面がレンズのように湾曲することでレンズ機能を実現する。また、電源30の印加電圧を高くすることで、液体部2121,2122の中央部分の界面の湾曲が大きくなる。界面の湾曲が小さい場合に、液体レンズ212の焦点が遠方の距離の位置に合う。界面の湾曲が大きくなると、液体レンズ212の焦点も近接の距離の位置に合う。
また、液体レンズ212にかかる電圧の大きさに応じてレンズ曲率が変化するため、従来のオートフォーカス機構のようなレンズの移動が発生しないまま、電気的に高速に液体レンズ212のレンズ曲率を変化することができる。このように、印加電圧の調整によるレンズ曲率変化により、液体レンズ212の焦点調整を行うことができる。そのため、従来のオートフォーカス機構と比べ、焦点変更にかかる時間が短くなるという利点がある。このように、液体レンズ212の特長として、印加する電圧レベルに応じてレンズ曲率が変化できることと、物理的な可動部がないため耐久性が高いことと、印加電圧レベルは高電圧だが電流が流れないため消費電力が少ないことと、が挙げられる。
次いで、図5及び図6を参照して、撮像素子211により撮像された画像内のエイマー光の位置と、イメージャモジュール21から被写体までの距離と、の関係を説明する。図5に、近距離又は遠距離に置かれたバーコード41のスキャンの様子を示す。図6(a)に、焦点位置Aのバーコード41を撮像したフレーム画像q1を示す。図6(b)に、焦点位置Bのバーコード41を撮像したフレーム画像q2を示す。
図5に示すように、スキャナ装置1(イメージャモジュール21)からの焦点距離が近距離である焦点位置Aと、焦点距離が遠距離の焦点位置Bと、にバーコード41が置かれているものとする。一例として、この焦点位置A及び焦点位置Bに置かれたバーコード41に対して、スキャナ装置1により画像キャプチャ及びデコードを行うケースを説明する。
スキャナ装置1によりバーコード41を近接(焦点位置A)から読み取る場合、撮像素子211の画角に対してバーコード画像の相対サイズが大きくなるため、焦点位置Aの画像領域までバーコードイメージが大きくなったイメージとなり、焦点位置Aの画像領域でデコードが可能となる。図6(a)に示すように、バーコード41を近距離に置いた場合のフレーム画像q1は、バーコード画像Q1と、エイマー213のレーザ光の映像E1と、を含む。映像E1がバーコード画像Q1の端に位置しており、読み取りターゲットのバーコード41が近くにあることを示す。
反対に、スキャナ装置1によりバーコード41を遠方(焦点位置B)から読み取る場合、撮像素子211の画角に対するバーコード画像の相対サイズが小さいため、焦点位置Bの画像領域に収まるような小さなサイズのイメージとなり、焦点位置Bの画像領域でデコードが可能となる。図6(b)に示すように、バーコード41を遠距離に置いた場合のフレーム画像q2は、バーコード画像Q2と、エイマー213のレーザ光の映像E2と、を含む。映像E2は、バーコード画像Q2の外側にあるが、バーコード画像Q2が小さいためである。フレーム画像q2の中心から映像E2までの距離は、フレーム画像q1の中心から映像E1までの距離より小さい。
このように、フレーム画像の大きさを同じにした場合に、フレーム画像の中心からエイマー213のレーザ光の映像までの距離が大きくなるほど、スキャナ装置1から被写体(バーコード41)までの距離が大きくなっている。このことから、フレーム画像中のエイマーの映像位置によりターゲットのバーコードまでの距離を測定することができるため、それに合わせて液体レンズ212の焦点を調整することが可能となる。
次いで、図7を参照して、液体レンズ212の温度変化におけるイメージャモジュール21のピント位置(焦点位置)調整を説明する。図7に、イメージャモジュール21のピント調整における経過時間に対するピント位置を示す。
図7に示すように、液体レンズ212の環境温度を高温、常温、低温のように変化させた場合を考える。液体レンズ212に所定の電圧を印加することにより、イメージャモジュール21のピント位置を、ピントが合うピント調整ターゲット位置に調整するまでの時間は、温度に応じて異なる。というのは、液体レンズ212の特性である温度による曲率変化速度のバラツキがあるためである。環境温度が低いほど、ピント調整ターゲット位置にピント位置が安定する時間が大きくなる。つまり、常温、高温時においても、低温時における最大変化時間分の待ち時間が必要である。
次に、図8及び図9を参照して、フラッシュメモリ17に記憶されている情報を説明する。図8に、フレーム画像qと、エイマー213の映像Ea,Ebの位置と、を示す。図9に、印加電圧テーブル171の構成を示す。
図8に示すように、スキャナ装置1における撮像素子211のフレーム画像qにx軸及びy軸をとり、x座標及びy座標を考える。ターゲットのバーコードがイメージャモジュール21から遠いときのエイマー213の映像Eaの座標を(xa,ye)とする。ターゲットのバーコードがイメージャモジュール21から近いときのエイマー213の映像Ebの座標を(xb,ye)とする。また、フレーム画像qのうち、少なくとも全ての距離のエイマー213の映像を含むことが可能な、映像及びその周辺の領域の画像を切り出し領域画像F1とする。領域画像F1の左上及び右上の座標を、順に、(x1,y1)、(x2,y2)とする。
図9に示すように、フレーム画像qにおけるエイマー213の映像のx座標に対応る適切な液体レンズ212への印加電圧を定義した印加電圧テーブル171を説明する。印加電圧テーブル171は、フレーム画像qにおけるエイマー213の映像のx座標であるエイマー位置1711と、エイマー位置1711に対応して、ターゲットに焦点を合わせる適切な液体レンズ212への印加電圧である印加電圧1712と、の項目を各エイマー位置毎に予め記憶している。
フラッシュメモリ17には、予め、印加電圧テーブル171と、切り出し領域画像F1の座標(x1,y1)、(x2,y2)と、が記憶されている。印加電圧テーブル171と、座標(x1,y1)、(x2,y2)とは、出荷時のキャリブレーションにより設定されて記憶される。切り出し領域画像F1は、ターゲットのバーコードがイメージャモジュール21から遠いときのエイマー213の映像Eaの座標(xa,ye)、及び、ターゲットのバーコードがイメージャモジュール21から近いときのエイマー213の映像Ebの座標(xb,ye)を含む範囲である。
次に、図10〜図13を参照して、スキャナ装置1の動作を説明する。先ず、図10〜図12を参照して、本実施の形態の液体レンズ212の焦点調整の概要を説明する。図10に、バーコード画像Q3とエイマー213の映像E3とを含むフレーム画像q3を示す。図11に、常温時のイメージャモジュール21のピント調整における経過時間に対するピント位置を示す。図12に、図11の点P1,P2,P3における切り出し画像p1,p2,p3を示す。
環境温度が常温時に、スキャナ装置1から任意の距離にあるバーコード41をスキャンするケースを考える。図10に示すように、スキャナ装置1により、初期状態において、バーコード画像Q3とエイマー213の映像E31とを含むフレーム画像q3が得られる。
一方、図11に示すように、常温時のイメージャモジュール21のピント調整における経過時間に対するピント位置の曲線において、予め、デコード可能なピント範囲が設定されている。そして、ピント調整開始からデコード可能なピント範囲までの間に、順に、点P1,P2,P3をとる。
スキャナ装置1は、ピント調整開始からフレーム画像を繰り返し取得していくとともに、各フレーム画像から図8の座標(x1,y1)から座標(x2,y2)までで決定される領域を切り出して切り出し画像を取得する。図12に示すように、点P1,P2,P3に対応して、切り出し画像p1,p2,p3を取得する。切り出し画像p1,p2,p3は、順に、エイマー213の映像E31,E32,E33を含む。ピント調整開始時のフレーム画像q3の切り出し画像は、切り出し画像p1であるものとする。
先ず、スキャナ装置1は、ピント調整開始し、フレーム画像q3の切り出し画像p1から、映像E31の位置(エイマー位置)を検出し、映像E31のエイマー位置に対応する、スキャナ装置1から被写体のバーコード位置までの距離を推定する。実際には、スキャナ装置1は、推定した距離に合うように液体レンズの焦点を調整するため、印加電圧テーブル171を用いて、映像E31のエイマー位置に対応する液体レンズ212への印加電圧を設定する。そして、スキャナ装置1は、推定された印加電圧を液体レンズ212に印加し、液体レンズ212が変化している間に、フレーム画像を取得してエイマー213の映像を含む切り出し画像を取得することを繰り返し、切り出し画像中の映像のコントラストを監視する。焦点が合っていない間は、映像のスポット形状の輪郭はぼやけているが、焦点が合ってくるとはっきりとしてくる。スキャナ装置1は、切り出し画像のコントラストが予め設定された一定値以上であるか否かを判別する。
例えば、切り出し画像のコントラストが一定値よりも小さいと、切り出し画像p1,p2に示すように、映像E31,E32がぼやけており、ピント(焦点位置)が合っていない。そして、スキャナ装置1は、切り出し画像のコントラストが一定値以上になると、ピント(焦点位置)がほぼ合っているものとして、その焦点距離でエイマー213を消灯し、イルミネーション214を点灯して、バーコードを撮像し、得られるフレーム画像中のバーコード画像をデコードする。例えば、切り出し画像のコントラストが一定値以上になると、切り出し画像p3に示すように、映像E33の輪郭がはっきりしている。
また、スキャナ装置1は、焦点調整開始から切り出し画像のコントラストの監視が予め設定された一定時間経過すると、液体レンズ212の焦点変化待ちを終了し、ピント(焦点位置)がほぼ合っているものとみなして、上記バーコードスキャン及びデコードを行う。この一定時間とは、想定される環境温度が最も低い場合に対応してピント位置が最初にピント調整ターゲット位置になる時間である。環境温度が、この一定時間に対応する温度以上となるので、ピント位置がピント調整ターゲット位置になる時間は、この一定時間以下となるからである。
次いで、図13及び図14を参照して、スキャナ装置1のCPU11及びイメージャコントローラ19の動作を説明する。図13に、CPU11が実行するバーコード読み取り処理のフローチャートを示す。図14に、イメージャコントローラ19が実行するスキャン制御処理のフローチャートを示す。
図13を参照して、CPU11で実行されるバーコード読み取り処理を説明する。バーコード読み取り処理は、イメージャモジュール21を用いてバーコードをスキャンし、取得したバーコードの画像データをデコードする処理である。スキャナ装置1において、トリガキー12A,12Cがユーザにより押下入力されたことをトリガとして、CPU11は、ROM15から読み出されてRAM13に適宜展開されたバーコード読み取りプログラム151との協働で、バーコード読み取り処理を実行する。
先ず、CPU11は、初期設定を行い、イメージャモジュール21の起動の指示信号をイメージャコントローラ19に出力する(ステップS11)。ステップS11の初期設定は、例えば、撮像素子211からイメージャコントローラ19に入力された画像データ(ラインデータ)をRAM13にDMA転送する際のRAM13内の記憶領域の設定である。
そして、CPU11は、エイマー213の点灯の指示信号と、撮像素子211の切り出しキャプチャの指示信号とを、イメージャコントローラ19に出力する(ステップS12)。切り出しキャプチャの指示信号とは、フラッシュメモリ17に記憶されている座標(x1,y1)及び座標(x2,y2)で定義された切り出し領域のラインデータの取得の指示信号である。
そして、CPU11は、DMA機能により、撮像素子211からイメージャコントローラ19に入力された切り出し画像のラインデータをRAM13にDMA転送して記憶させる(ステップS13)。そして、CPU11は、RAM13に記憶された切り出し画像の画像データ(ラインデータ)を読み出し、この切り出し画像内のエイマー位置(映像のx座標)を検出する(ステップS14)。エイマー位置の検出は、スキャナ装置1からバーコードまでの距離の推定に対応する。
そして、CPU11は、フラッシュメモリ17に記憶された印加電圧テーブル171において、ステップS14で検出したエイマー位置1711に対応する印加電圧1712を読み出し、液体レンズ212への印加電圧をターゲットに焦点を合わせる印加電圧1712に変更する指示信号をイメージャコントローラ19に出力する(ステップS15)。
そして、CPU11は、ステップS16,S17として、ステップS12,S13と同様の処理を実行する。そして、CPU11は、RAM13に記憶された切り出し画像の画像データ(ラインデータ)を読み出し、この切り出し画像内のエイマー213の映像のコントラストを算出する(ステップS18)。そして、CPU11は、ステップS18で算出したコントラストが予め設定された一定値であるか、又は最初のステップS16の実行から予め設定された一定時間をタイムアウトしたか、否かを判別する(ステップS19)。コントラストが一定値以上でなく且つタイムアウトもしていない場合(ステップS19;NO)、ステップS16に移行される。これは、液体レンズ212の焦点調整が行われている場合であり、図12に示すように、映像E31,E32がぼやけており、ピント(焦点位置)が合っていない状態である。このような状態のときは、ステップS16からステップS19の処理を繰り返す。
コントラストが一定値以上であり又はタイムアウトした場合(ステップS19;YES)、CPU11は、エイマー213の消灯の指示信号をイメージャコントローラ19に出力する(ステップS20)。そして、CPU11は、イルミネーション214の点灯(次画像キャプチャ中のイルミネーション214の点灯及びその後の消灯)の指示信号をイメージャコントローラ19に出力する(ステップS21)。
そして、CPU11は、撮像素子211の全画面の画像キャプチャの指示信号をイメージャコントローラ19に出力する(ステップS22)。そして、ステップS23として、CPU11は、ステップS13と同様の処理を実行する。そして、CPU11は、RAM13に記憶された全画面の画像データ(ラインデータ)を読み出し、この全画面のフレーム画像について、デコードをしやすくする画像処理(一つの画像データに合成する処理等)を施し、画像処理後のフレーム画像中のバーコード画像をデコードする(ステップS24)。
そして、CPU11は、ステップS24のデコードが成功したか否かを判別する(ステップS25)。デコードが成功していない場合(ステップS25;NO)、ステップS12に移行される。デコードが成功した場合(ステップS25;YES)、CPU11は、イメージャモジュール21の電源オフの指示信号をイメージャコントローラ19に出力する(ステップS17)。そして、CPU11は、デコード結果を表示部14に表示し、デコード成功のブザー音を音出力部18に鳴動させ(ステップS27)、バーコード読み取り処理を終了する。
次いで、図14を参照して、イメージャコントローラ19で実行されるスキャン制御処理を説明する。スキャン制御処理は、イメージャモジュール21を用いて焦点位置を調整してバーコードをスキャンし、エイマー213の映像を含む切り出し画像やバーコード画像を含むフレーム画像の画像データを取得する処理である。スキャナ装置1において、イメージャコントローラ19は、バーコード読み取り処理のステップS11に対応して、CPU11から起動の指示信号が入力されたことをトリガとして、スキャン制御処理を実行する。
先ず、イメージャコントローラ19は、初期設定を行う(ステップS31)。ステップS31の初期設定は、例えば、イメージャモジュール21からの画像データの受信に関する設定である。そして、イメージャコントローラ19は、イメージャモジュール21の電源をオンする(ステップS32)。
そして、イメージャコントローラ19は、バーコード読み取り処理のステップS26に対応して、CPU11からイメージャモジュール21の電源オフの指示信号が入力されたか否かを判別する(ステップS33)。電源オフの指示信号が入力されていない場合(ステップS33;NO)、イメージャコントローラ19は、バーコード読み取り処理のステップS15に対応して、CPU11からの液体レンズ212への印加電圧変更の指示信号が入力されたか否かを判別する(ステップS34)。
印加電圧変更の指示信号が入力された場合(ステップS34;YES)、イメージャコントローラ19は、印加電圧変更の指示信号の印加電圧値に応じたPWM信号を生成して電圧昇圧部20に出力する(ステップS35)。電圧昇圧部20により、液体レンズ212の印加電圧が変更される。
ステップS35の実行後、又は印加電圧変更の指示信号が入力されていない場合(ステップS34;NO)、イメージャコントローラ19は、バーコード読み取り処理のステップS12,S16,S22に対応して、CPU11から画像キャプチャの指示信号が入力されたか否かを判別する(ステップS36)。画像キャプチャの指示信号が入力されていない場合(ステップS36;NO)、ステップS33に移行される。
画像キャプチャの指示信号が入力された場合(ステップS36;YES)、イメージャコントローラ19は、ステップS36で入力された画像キャプチャの指示信号に応じて、撮像素子211の画像キャプチャ領域を切り出し画像又は全画面に設定する(ステップS37)。そして、イメージャコントローラ19は、バーコード読み取り処理のステップS12,S16に対応して、CPU11からエイマー213の点灯の指示信号が入力されたか否かを判別する(ステップS38)。
エイマー213の点灯の指示信号が入力されている場合(ステップS38;YES)、イメージャコントローラ19は、エイマー213を点灯する(ステップS39)。エイマー213の点灯の指示信号が入力されていない場合(ステップS38;NO)、バーコード読み取り処理のステップS20に対応して、CPU11からエイマー213の消灯の指示信号が入力されており、イメージャコントローラ19は、エイマー213を消灯する(ステップS40)。
そして、イメージャコントローラ19は、バーコード読み取り処理のステップS21に対応して、CPU11からイルミネーション214の点灯の指示信号が入力されたか否かを判別する(ステップS41)。イルミネーション214の点灯の指示信号が入力されていない場合(ステップS41;NO)、イメージャコントローラ19は、ステップS37で設定された切り出し画像の画像キャプチャ領域の画像領域指定信号を生成して撮像素子211に出力し、撮像素子211に画像キャプチャさせ、撮像素子211から切り出し画像の画像データが入力され(ステップS42)、ステップS33に移行される。
イルミネーション214の点灯の指示信号が入力された場合(ステップS41;NO)、イメージャコントローラ19は、イルミネーション214を点灯する(ステップS43)。そして、イメージャコントローラ19は、ステップS37で設定された全画面の画像キャプチャ領域の画像領域指定信号を生成して撮像素子211に出力し、撮像素子211に画像キャプチャさせ、撮像素子211から全画面のフレーム画像の画像データが入力される(ステップS44)。そして、イメージャコントローラ19は、イルミネーション214を消灯し(ステップS45)、ステップS33に移行される。
電源オフの指示信号が入力されていない場合(ステップS33;NO)、イメージャコントローラ19は、イメージャモジュール21の電源をオフし(ステップS46)、スキャン制御処理を終了する。
以上、本実施の形態によれば、スキャナ装置1は、エイマー213と、液体レンズ212と、撮像素子211と、撮像素子211により撮像された画像の中のスポット光(エイマー213の光)の映像の位置から、被写体までの焦点位置に応じた電圧を算出し、当該算出した電圧を液体レンズ212に印加し、液体レンズ212の焦点調整が行われている際に、前記撮像された画像の中から、前記スポット光の映像を含む画像を切り出して切り出し画像を生成し、前記切り出し画像から前記スポット光の映像のコントラストを検出し、予め設定された所定値以上のコントラストを検出する場合に、前記撮像された画像に含まれるシンボル画像をデコードするイメージャコントローラ19及びCPU11と、を備える。このため、温度や個体による可変焦点レンズの焦点変化時間のバラツキによらず、最短の時間で焦点調整を終了することができる。
また、撮像素子211は、液体レンズ212の駆動が行われている際に、前記画像を順次撮像し、イメージャコントローラ19は、前記順次撮像された画像の中から、前記映像を含む予め定められた領域の画像を切り出す。このため、スポット光の映像を含む切り出し画像を高速に取得できる。
また、撮像素子211及びイメージャコントローラ19は、スポット光の映像の所定値以上のコントラストを検出するまで、前記映像を含む予め定められた領域の画像の切り出し及びコントラストの検出を繰り返し行う。このため、繰り返し取得した切り出し画像により画像データの転送及びコントラストの検出時間をより短縮できる。
また、CPU11は、スポット光の映像の所定値以上のコントラストが検出された場合に、撮像素子211に全画面のフレーム画像を撮像させ、当該撮像された全画面の画像をデコードする。このため、全画面のフレーム画像に含まれるバーコード画像を確実にデコードできる。
また、CPU11は、撮像素子211からイメージャコントローラ19に入力された切り出し画像及びフレーム画像の画像データをRAM13に転送して記憶させる。このため、画像データをRAM13に容易に記憶できる。
また、CPU11は、スポット光の映像の所定値以上のコントラストを検出する場合に、エイマー213を消灯して撮像素子211に画像を撮像させる。このため、デコードに不要なスポット光の映像をバーコード画像から除去でき、デコードの精度を高めることができる。
また、CPU11は、スポット光の映像の所定値以上のコントラストを検出する場合に、イルミネーション214を点灯して撮像素子211に画像を撮像させる。このため、バーコード画像のコントラストを高めることができ、デコードの精度を高めることができる。
また、CPU11は、スポット光の映像の所定値以上のコントラストを検出する場合、又は焦点調整開始からの経過時間が予め設定された低温の焦点調整時間に対応する所定時間を超えた場合に、撮像素子211により撮像された画像に含まれるシンボル画像をデコードする。このため、温度による可変焦点レンズの焦点変化時間のバラツキによる影響を少なくし、最短の時間でシンボルの読み取りを行うことができる。
なお、上記実施の形態における記述は、本発明に係るスキャナ装置及びプログラムの一例であり、これに限定されるものではない。
上記実施の形態では、焦点可変レンズとして、液体レンズ212を用いる構成としたが、これに限定されるものではない。例えば、印加電圧により屈折率が変化する「電気光学結晶」の一種であるKTN(タンタル酸ニオブ酸カリウム、KTa1−xNbxO3)を用いた可変焦点レンズ等、他の可変焦点レンズとしてもよい。
また、上記実施の形態では、シンボルとして1次元バーコードを読み取る構成を説明したが、これに限定されるものではない。例えば、2次元コード等のシンボルを読み取る構成としてもよい。
また、上記実施の形態では、エイマー213から照射されたスポット光の映像の例を説明したが、これに限定されるものではない。基準となるスポット光の映像は、他の光源から照射された光の映像であってもよい。この映像は、スキャナ装置と被写体との距離に応じて、画像全体の中で映像の位置が相対的に変化するものであればよい。例えば、スポット光は、液体レンズ212を含む光学系212Aの光軸方向に沿って、ほぼ平行に照射されればよい。
また、上記実施の形態では、エイマー213の光の映像を含む切り出し画像は、予め定めた領域(座標(x1,y1)及び座標(x2,y2)で表される矩形領域)である例で説明したが、これに限定されるものではない。例えば、エイマーの光の映像を含む切り出し画像は、図13のステップS12でその位置が既に検出されているので、同図のステップS16では、エイマーの光の映像が含まれる部分領域であり、前記予め定めた領域より狭い領域を決定でき、この決定された領域の画像を切り出すようにしてもよい。この部分領域は前記予め定めた領域より狭いので、一定値以上のコントラストが検出されるまで繰り返されるステップS16〜ステップS18の処理、即ち、切り出し画像の画像データの転送処理と、コントラスト検出処理と、の時間をより短縮でき、迅速な処理が可能になる。
また、上記実施の形態では、被写体までの距離を示すエイマー213の光の映像の位置と液体レンズ212への印加電圧との関係を印加電圧テーブル171に予め記憶した例で説明したが、これに限定されるものではない。エイマー213の光の映像の位置と液体レンズ212への印加電圧との関係を計算式で表し、エイマー213の光の映像の位置(距離)から液体レンズ212への印加電圧を上記計算式により直接算出する構成としてもよい。
また、上記実施の形態では、エイマー213から照射されるスポット光の映像形状を、円形として説明したが、これに限定されるものではない。スポット光の映像形状は、十字形状等、他の形状であってもよい。
また、上記実施の形態では、イメージャコントローラ19がASIC等の半導体回路であることとして説明したが、これに限定されるものではない。例えば、イメージャコントローラ19が、CPU、RAM及びROMにより構成され、ROMから読み出されてRAMに展開されたプログラムとCPUとの協働により、イメージャコントローラ19が処理を実行する構成としてもよい。
また、上記実施の形態におけるスキャナ装置の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。