以下、本発明を具体化した実施形態について、図面を参照して説明する。図1を参照し、ヘッドマウントディスプレイ(以下、HMDという。)1の概要を説明する。HMD1は、投影装置(以下、ヘッドディスプレイ又はHDという。)10及び制御装置(以下、コントロールボックス又はCBという。)50を備える。以下の説明において、図1の上方、下方、右斜め下方、左斜め上方、右斜め上方及び左斜め下方が夫々、HMD1の上方、下方、前方、後方、右方及び左方である。実施形態において、種々の構成における位置関係及び方向関係の理解を助けるため、関連する図面において、HMD1の上方、下方、前方、後方、右方及び左方は、3次元デカルト座標系の軸を参照して説明される。
HD10の概要を説明する。HD10は、専用の装着具である眼鏡5に取り付けられる。ユーザは、HD10が取り付けられた眼鏡5をかけることによって、HD10を頭部に装着して使用する。HD10は、画像光を後方に向けて照射できる。画像光は、HD10を装着したユーザの左眼に入射する。HD10は、ハーネス7を介してCB50と着脱可能に接続する。HD10は、筐体2、ハーフミラー3、画像表示部14(図2参照)、接眼光学系(図示略)、カメラ20等を主な構成要素とする。
筐体2は、眼鏡5の右端部に設けられる。筐体2の左端側に、ハーフミラー3が設けられる。ハーフミラー3は、ユーザがHD10を頭部に装着した状態で、ユーザの左眼の前方に配置される。画像表示部14及び接眼光学系は、筐体2の内部に設けられる。画像表示部14及び接眼光学系の詳細は後述する。カメラ20は、筐体2の前面に設けられる。カメラ20は、HD10の前面方向の外界の風景のうち、所定の大きさの領域(以下、所定領域という。)を撮像可能である。
画像表示部14は、液晶素子及び光源を備える。画像表示部14は、コンテンツ画像を表示することが可能である。コンテンツ画像は、静止画像又は動画像である。又、画像表示部14は、コンテンツ画像に撮影画像を重ねて表示することが可能である。撮影画像は、カメラ20によって撮影された画像である。画像表示部14は、CB50からハーネス7を介して送信される映像信号に基づいて、画像を表示する。接眼光学系は、画像表示部14に表示された画像を示す画像光を集光し、ハーフミラー3に射出する。接眼光学系から射出された画像光は、ハーフミラー3によって反射される。ハーフミラー3によって反射された画像光は、筐体2の後方(カメラ20の撮影方向と反対方向)に射出される。HMD1がユーザに装着されている状態で、画像光は、ユーザの左眼の眼球に入射する。又、ハーフミラー3は、外界の実像からの光を、ユーザの左眼に向けて透過する。HMD1は、ユーザの視野範囲内の実像(例えば、外界の風景等)に、画像表示部14に表示された画像を重ねた状態の光景を、ユーザに視認させることができる。
眼鏡5は、HD10をユーザの頭部に保持する。眼鏡5は、フレーム6及び支持部4を備える。フレーム6の形状は、通常の眼鏡と略同一であるので、詳細な説明は省略する。フレーム6のうち、左眼用レンズを支えるリム部の上面右端に、支持部4が設けられる。支持部4は、HD10の筐体2を保持する。支持部4は、筐体2の保持位置を上下方向及び左右方向に移動できる。ユーザは、筐体2を上下方向及び左右方向に移動させることによって、左眼の眼球の位置とハーフミラー3の位置とが前後方向に並ぶように位置を調整できる。
なお、HD10は、ユーザが日常的に使用する眼鏡、ヘルメット、ヘッドホンなど、他の装着具に取り付けられてもよい。画像表示部14は、他の空間変調素子であってもよい。例えば画像表示部14は、画像信号に応じた強度のレーザ光を2次元走査して画像表示を行う網膜走査型表示部、及び有機EL(Organic Electro-luminescence)ディスプレイであってもよい。また、図1では支持部4及びHD10がフレーム6の右側に設けられるが、支持部4及びHD10は、フレーム6の右側に設けられてもよい。この場合、HMD1がユーザに装着されている状態で、画像光は、ユーザの右眼の眼球に入射する。
又、本実施形態において、HD10は、画像表示部14に表示された画像を外界の実像に重ねた状態の光景をユーザに視認させる機能を有する、所謂光学シースルー型のヘッドディスプレイである。しかしながら本発明は、別の機能を有するヘッドディスプレイであってもよい。例えばHD10は、外界の実像からの光をユーザの眼に入射させず、画像表示部14に表示された画像と、カメラによって撮像された外界の画像とをユーザに視認させる機能を有する、所謂ビデオシースルー型のヘッドディスプレイであってもよい。
又、本実施形態において、カメラ20は筐体2の前面に設けられているが、カメラ20は筐体2から着脱可能であってもよい。例えばカメラ20は、HD10の正面方向を撮影可能な状態で、眼鏡5のフレーム6に直接取り付けられてもよい。
CB50の概要を説明する。CB50は、例えばユーザの腰ベルトや腕等に取り付けられる。CB50はHD10を制御する。CB50は、ハーネス7を介してHD10と着脱可能に接続する。CB50は、筐体60、操作スイッチ61、電源スイッチ62等を主な構成要素とする。筐体60の形状は、縁部の丸い略直方体である。操作スイッチ61は、HD10における各種設定や、使用時における各種操作等を行う為のスイッチである。電源スイッチ62は、HMD1の電源をオン又はオフにする為のスイッチである。電源スイッチ62には、電源ランプ63が内蔵される。
図2を参照し、HMD1の電気的構成を説明する。はじめに、HD10の電気的構成を説明する。HD10は、HD10全体の制御を行うCPU11を備える。CPU11は、RAM12、プログラムROM13、画像表示部14、インターフェイス15、及び接続コントローラ19に電気的に接続される。CPU11は、インターフェイス15を介してカメラ20に電気的に接続される。RAM12は、各種データを一時的に記憶する。プログラムROM13は、CPU11が実行するプログラムを記憶する。プログラムROM13はOSを記憶する。プログラムはOS上で実行される。プログラム及びOSは、HMD1の出荷時にプログラムROM13に記憶される。画像表示部14は、コンテンツ画像及び撮影画像の少なくとも一方を表示できる。インターフェイス15はカメラ20に接続し、信号の入出力を制御する。接続コントローラ19は、ハーネス7を介してCB50の接続コントローラ58に接続し、有線通信を行う。
なお、HD10は、フラッシュROMを更に備えてもよい。フラッシュROMには、CPU11が実行するプログラムが記憶されてもよい。CPU11は、フラッシュROMに記憶されたプログラムを実行してもよい。プログラムROM13及びフラッシュROMには、CB50のCPU51が実行するプログラムが記憶されてもよい。CPU11は、CB50のCPU51が実行する処理と同じ処理を、CPU51の代わりに実行してもよい。
CB50の電気的構成を説明する。CB50は、CB50全体の制御を行うCPU51を備える。CPU51は、RAM52、プログラムROM53、フラッシュROM54、インターフェイス55、ビデオRAM56、画像処理部57、接続コントローラ58、及び無線通信部59に電気的に接続される。RAM52は、各種データを一時的に記憶する。プログラムROM53は、CPU51が実行するプログラムを記憶する。プログラムROM53はOSを記憶する。プログラムはOS上で実行される。プログラムROM53は、データベース(以下、DBという。)531(図6参照、後述)を記憶する。プログラム、OS、及びDB531は、HMD1の出荷時にプログラムROM53に記憶される。
インターフェイス55は、操作スイッチ61及び電源スイッチ62に接続し、信号の入出力を制御する。画像処理部57は、HD10の画像表示部14に表示する画像を形成し、ビデオRAM56に記憶する。ビデオRAM56は、画像処理部57によって形成された画像を一時的に記憶する。接続コントローラ58は、ハーネス7を介してHD10の接続コントローラ19に接続し、有線通信を行う。無線通信部59は、インターネット、LAN等に接続されたアクセスポイント(図示略)を介して、インターネット、LAN等に接続された周辺機器と通信を行う。周辺機器の例として、パーソナルコンピュータ、スマートフォン、タブレット型携帯端末、サーバ等が挙げられる。
なお、CB50のフラッシュROM54に、CPU51が実行するプログラムが記憶されてもよい。CPU51は、フラッシュROM54に記憶されたプログラムを実行してもよい。プログラムROM53及びフラッシュROM54には、HD10のCPU11が実行するプログラムが記憶されてもよい。CPU51は、HD10のCPU11が実行する処理と同じ処理を、CPU11の代わりに実行してもよい。
なお、HMD1は、プログラム及びOSを、無線通信部59を介してプログラムダウンロード用のサーバからダウンロードし、インストールしてもよい。例えば、プログラム及びOSは、コンピュータで読み取り可能な一時的な記憶媒体(例えば、伝送信号)として、サーバからHMD1に送信されてもよい。プログラムは、HMD1が備えるコンピュータで読み取り可能な記憶装置、例えば、フラッシュROMに保存されてもよい。CPU11は、フラッシュROMに記憶されたプログラムに基づいてプログラムを実行してもよい。CPU51は、フラッシュROM54に記憶されたプログラムに基づいてプログラムを実行してもよい。但し、記憶装置は、例えばROM、フラッシュROM、HDD、RAMなどの、一時的な記憶媒体を除く記憶媒体であってもよい。また、記憶装置は、非一時的な記憶媒体であってもよい。非一時的な記憶媒体は、データを記憶する時間の長さに関わらず、データを留めておくことが可能なものであってもよい。
HMD1の構成は上記実施形態に限定されず、例えば、HD10とCB50とが一体となった構成であってもよい。HD10のCPU11とCB50のCPU51とは、ハーネス7の代わりに無線によって通信を行ってもよい。
HMD1は、HD10のカメラ20によって撮影される所定領域内でユーザの指先が移動した時の指先の位置の変化の傾向が所定の条件を満たす場合、対応する処理を実行する。対応する処理の一例として、画像表示部14に表示されたコンテンツ画像をスクロールさせる処理が挙げられる。なお、本実施形態では、カメラ20によって撮影される所定領域内でユーザが指先を移動させることによって、右、左、上、及び下の何れかの方向にコンテンツ画像をスクロールさせる処理をHMD1に実行させることが可能であるとする。なお本発明において、指先の移動によってHMD1に実行させることが可能な処理は、上記の処理に限定されない。以下では、はじめに、HD10のCPU11によって実行される処理の概要について、図3を参照して説明する。次に、CB50のCPU51によって実行される処理の概要について、図3を参照して説明する。次に、CPU51の処理の詳細について、図4、図5のフローチャートを参照して説明する。
HD1のCPU11によって実行される処理の概要について説明する。CB50の電源スイッチ62を介してHMD1の電源をオンする操作がされた場合、CPU11は次の処理を開始する。CPU11は、カメラ20による撮影を開始する。カメラ20は、撮影を開始した場合、所定領域内を撮影しながら画像データを継続的に出力する。以下、カメラ20から出力される画像データを、撮影画像データという。撮影画像データの画像形式は、Motion JPEG形式、Audio Video Interleave形式、QuickTime形式等である。CPU11は、カメラ20から出力される撮影画像データを、インターフェイス15を介して受信する。CPU11は、撮影画像データをCB50に送信する。
CPU11は、カメラ20から撮影画像データを受信した時刻を、OSから取得する。なお、カメラ20は、撮影しながら撮影画像データを出力するので、CPU11がカメラ20から撮影画像データを受信した時刻は、カメラ20が撮影画像データに対応する撮影画像を撮影した時刻と略同一とみなすことができる。CPU11は、取得した時刻を示す時刻情報を、撮影画像データと共にCB50に対して送信する。以下、撮影画像データと共にCBに対して送信される時刻情報によって示される時刻を、撮影時刻という。なお、時刻情報は、撮影画像データのヘッダに含まれてもよい。
又、CPU11は、CB50から送信される映像信号(後述)を受信する。CPU11は、受信した映像信号に基づいて画像表示部14を制御することによって、画像表示部14に画像を表示させる。HD1を装着したユーザは、画像表示部14に表示された画像からの光がハーフミラー3を反射して左眼に入射することによって、画像を視認する。なお、HD1を装着したユーザの左眼には、視野範囲内の実像からの光がハーフミラー3を透過して入射するので、ユーザは、画像表示部14に表示された画像が外界の実像に重ねられた光景を視認する。
図3は、HD10を装着したユーザによって視認される光景21(21A〜21E)を示す。光景21には、実像211及び画像212(212A〜212E)が含まれる。実像211は、ユーザの視野範囲内の実像からの光が、ハーフミラー3を透過してユーザの左眼に到達することによって、ユーザが視認する像である。画像212は、HD10の画像表示部14に表示されることによってユーザが視認する像である。画像212は、実像211の領域の右下部分に重ねられる。これによってユーザは、視野範囲内の実像211と画像212との両方を視認できる。
CB50のCPU51によって実行される処理の概要について説明する。CPU51は、無線通信部59を介して、周辺機器からコンテンツ画像データを受信する。コンテンツ画像データは、コンテンツ画像を形成することが可能なデータである。コンテンツ画像データの画像形式は、コンテンツ画像が静止画の場合、BMP形式、GIF形式、JPEG形式等であり、コンテンツ画像が動画の場合、Moving Picture Experts Group形式、Audio Video Interleave形式、QuickTime形式等である。CPU51は、受信したコンテンツ画像データに対応するコンテンツ画像の映像信号を生成する。CPU51は、HD10にコンテンツ画像の映像信号を送信する。これによって、HD10の画像表示部14にコンテンツ画像が表示される。
図3の光景21Aは、CPU51がHD10にコンテンツ画像の映像信号を送信した場合に、HD10を装着するユーザによって視認される光景を示す。光景21Aでは、コンテンツ画像212Aが実像211に重ねられている。
ユーザが、コンテンツ画像212Aを右側にスクロールさせる為に、HD10のカメラ20によって撮影される所定領域内で指先を移動させた場合を例に挙げる。CPU51は、HD1から撮影画像データを受信する。CPU51は、受信した撮影画像データに対応する撮影画像に指先が含まれているか判断する。指先が含まれているかの判断方法の詳細は後述する。CPU51は、撮影画像に指先が含まれていると判断した場合、コンテンツ画像に撮影画像が重ねられた画像の映像信号を生成する。以下、コンテンツ画像に撮影画像が重ねられた画像を、重畳画像という。CPU51は、HD10に重畳画像の映像信号を送信する。これによって、HD10の画像表示部14に重畳画像が表示される。
図3の光景21Bは、CPU51がHD10に重畳画像の映像信号を送信した場合に、HD10を装着するユーザが視認する光景を示す。光景21Bでは、重畳画像212Bが実像211に重ねられている。実像211にユーザの手22が含まれている。重畳画像212Bでは、コンテンツ画像23に撮影画像24が重ねられている。HD1のカメラ20は、ユーザの視野方向の所定領域を撮影するので、撮影画像24は実像211の一部を示す。撮影画像24には、ユーザの手25の指先25Aが含まれている。なお、コンテンツ画像23及び撮影画像24は透明であり、双方は互いに透けて見える。コンテンツ画像23の透過率は、撮影画像24の透過率よりも小さい。このためコンテンツ画像23は、撮影画像24よりも色が濃く鮮明である。
CPU51は、撮影画像に含まれている指先の位置を特定する。CPU51は、指先の位置の経時的な変化の傾向が、複数の所定の条件の一部の何れかを満たすか判断する。複数の所定の条件の夫々は、画像表示部14に表示させたコンテンツ画像を、右、左、上、及び下の何れかの方向にスクロールさせる処理の夫々に対応する。判断方法の詳細は後述する。
CPU51は、指先の位置の経時的な変化の傾向が、複数の所定の条件の一部の何れかを満たすと判断した場合、撮影画像24の透過率をより小さくした重畳画像の映像信号を生成する。CPU51は、HD10に重畳画像の映像信号を送信する。HD10の画像表示部14に表示された重畳画像に含まれる撮影画像24の透過率は小さくなる。このため、撮影画像24は色が濃くなり鮮明になる。
次にCPU51は、撮影画像に含まれている指先の位置の経時的な変化の傾向が、複数の所定の条件の何れかを満たすか判断する。判断方法の詳細は後述する。CPU51は、指先の位置の経時的な変化の傾向が、複数の所定の条件の何れかを満たすと判断した場合、指先の位置を示す軌跡画像を含む重畳画像の映像信号を生成する。軌跡画像は、異なるタイミングでの指先の位置の夫々の間を結ぶ線分と、移動の方向を示すアローヘッドとを有する。CPU51は、HD10に映像信号を送信する。これによって、軌跡画像を含む重畳画像がHD10の画像表示部14に表示される。
図3の光景21Cは、CPU51がHD10に軌跡画像を含む重畳画像の映像信号を送信した場合に、HD10を装着するユーザが視認する光景を示す。光景21Cでは、重畳画像212Cが実像211に重ねられている。重畳画像212Cでは、コンテンツ画像23に撮影画像24が重ねられている。光景21Bの場合と比べて撮影画像24の透過率が小さくなっているので、撮影画像24は光景21Bの場合よりも色が濃くなり鮮明になっている。又、重畳画像212Cには、指先25Aの位置の変化の傾向を示す軌跡画像26が含まれている。
CPU51は、指先の位置の経時的な変化の傾向が、複数の所定の条件の何れかを満たすと判断した場合、該当する所定の条件の何れかに対応する処理を特定する。図3の光景21Cの軌跡画像26で示される指先の位置の経時的な変化の傾向に対応する処理が、コンテンツ画像を右方向にスクロールさせる処理である場合を例に挙げる。この場合、CPU51は、右方向にスクロールされたコンテンツ画像に撮影画像が重ねられ且つ軌跡画像26を含む重畳画像の映像信号を生成する。CPU51は、HD10に映像信号を送信する。
図3の光景21Dは、CPU51がHD10に軌跡画像を含む重畳画像の映像信号を送信した場合に、HD10を装着するユーザが視認する光景を示す。光景21Dでは、重畳画像212Dが実像211に重ねられている。重畳画像212Dでは、右方向にスクロールされたコンテンツ画像23に撮影画像24が重ねられている。又、重畳画像212Dには、指先25Aの位置の経時的な変化の傾向を示す軌跡画像26が含まれている。
CPU51は、コンテンツ画像を右方向へ所定量スクロールさせた後、撮影画像24及び軌跡画像26を消去する為に、スクロール後のコンテンツ画像のみの映像信号を生成する。CPU51は、HD10に映像信号を送信する。図3の光景21Eは、CPU51がスクロール後のコンテンツ画像の映像信号を送信した場合に、HD10を装着するユーザが視認する光景を示す。光景21Eでは、コンテンツ画像212Eが実像211に重ねられており、撮影画像24及び軌跡画像26は消去されている。これによってユーザは、右方向へスクロールされたコンテンツ画像212Eを良好に視認できる。
図4、図5を参照し、CB50のCPU51によって実行される処理の詳細について説明する。第1メイン処理(図4参照)及び第2メイン処理(図5参照)は、電源スイッチ62を介してHMD1の電源をオンする操作がされた場合に、プログラムROM53に記憶されたプログラムをCPU51が実行することによって開始される。第1メイン処理と第2メイン処理とは並列して実行される。
図4を参照し、第1メイン処理を説明する。CPU51は、無線通信部59を介して周辺機器からコンテンツ画像データを受信したか判断する(S1)。CPU51は、コンテンツ画像データを受信したと判断した場合(S1:YES)、受信したコンテンツ画像データをフラッシュROM54に記憶する(S3)。CPU51は処理をS1に戻す。CPU51は、コンテンツ画像データを受信していないと判断した場合(S1:NO)、コンテンツ画像を表示させる為の操作を、操作スイッチ61を介して検出したか判断する(S5)。CPU51は、コンテンツ画像を表示させる為の操作を検出したと判断した場合(S5:YES)、画像処理部57を駆動し、フラッシュROM54に記憶されたコンテンツ画像データに基づいてコンテンツ画像を形成させ、ビデオRAM56に記憶させる。CPU51は、ビデオRAM56に記憶されたコンテンツ画像に基づいて映像信号を生成する。映像信号の形式は、Transition Minimized Differential Signaling(TMDS)、Low voltage differential signaling(LVDS)等である。CPU51は、接続コントローラ58を介してHD10に映像信号を送信する(S7)。CPU51は処理をS1に戻す。CPU51は、コンテンツ画像を表示させる為の操作を検出していないと判断した場合(S5:NO)、処理をS1に戻す。なお、映像信号は、CPU51によって生成される場合に限らない。例えば映像信号は、ビデオRAM56に記憶されたコンテンツ画像に基づいて接続コントローラ19が生成してもよい。
なお上記のように、HD10のCPU11は、CB50から送信されたコンテンツ画像の映像信号を、接続コントローラ19を介して受信する。CPU11は、受信した映像信号に基づいて画像表示部14を制御することによって、画像表示部14にコンテンツ画像を表示させる。従って、CPU51は、S7でHD10に対して映像信号を送信することによって、画像表示部14に画像を表示させていることになる。以下では、CPU51が画像処理部57を駆動して画像データ(コンテンツ画像データ又は撮影画像データ)から画像(コンテンツ画像又は撮影画像)を形成させ、形成された画像をビデオRAM56に記憶させ、ビデオRAM56に記憶された画像に基づいて映像信号を生成することを、単に、CPU51が画像データに基づいて映像信号を生成するという。又、CPU51がHD10に対して映像信号を送信することによって、HD10のCPU11が画像表示部14を制御し、映像信号に対する画像を表示させることを、CPU51が画像表示部14に画像を表示させるという。
S7の処理が実行された結果、HD1を装着したユーザは、例えば図3の光景21Aで示されるように、実像211に重畳されたコンテンツ画像212Aを視認する。
図5を参照し、第2メイン処理を説明する。CPU51は、HD10から送信された撮影画像データ及び時刻情報を、接続コントローラ58を介して受信する(S11)。CPU51は、受信した撮影画像データ及び時刻情報を互いに関連付けてRAM52に記憶する。CPU51は、撮影画像データ及び時刻情報を受信した時刻(以下、受信時刻という。)を示す時刻情報を、OSから取得し、RAM52に記憶する。
CPU51は、RAM52に記憶した撮影画像データに基づき、撮像画像に指先が含まれるかを判断する(S13)。先ず、CPU51は、次のようにして、撮影画像から指先を特定する。CPU51は、撮影画像データに対応する撮影画像から、肌色の領域を検出する。肌色領域の検出は、例えば、肌色に対応する所定の画素値(例えば、R=241,G=187,B=147)を有する画素が連続している領域と検出することで可能である。なお、所定の画素値は他の値であってもよく、所定の幅を有してもよい。CPU51は、検出した肌色の領域全体を囲う多角形を特定する。CPU51は、特定した多角形の形状と、プログラムROM53に予め記憶された指先特定用の画像テンプレートとに基づいて、周知のパターンマッチング処理を行う。CPU51は、パターンマッチング処理によって算出された相互相関係数が所定の範囲内の値である場合、特定した多角形の形状と画像テンプレートとのパターンマッチングに成功したと判断する。この場合、CPU51は、多角形の形状の頂点を指先と特定する。なお、撮影画像に指先が含まれているかの判断方法は、上記方法に限定されない。
CPU51は、上記の方法で指先を特定できたか判断する。CPU51は、指先を特定できないと判断した場合、撮影画像に指先が含まれていないと判断する(S13:NO)。CPU51は処理をS11に戻す。CPU51は、指先を特定できたと判断した場合、撮影画像に指先が含まれていると判断する(S13:YES)。
CPU51は、撮影画像データ及び時刻情報を受信した受信時刻を、RAM52に記憶された時刻情報に基づいて特定する。CPU51は、HD10から受信した時刻情報によって示される撮影時刻を特定する。CPU51は、撮影時刻と受信時刻とに基づいて、カメラ20が撮影画像を撮影してから、CPU51が撮影画像データを受信するまでに要した遅延時間を算出する。なお、CPU11、51間では、OSどうしの時刻の同期をとる為の通信が一定周期で実行されている。このためCPU51は、撮影時刻から受信時刻までの時間を遅延時間として算出できる。CPU51は、算出された遅延時間が所定値(例えば1秒)よりも小さいか判断する(S15)。CPU51は、算出された遅延時間が所定値よりも小さくないと判断された場合(S15:NO)、処理をS11に戻す。CPU51は、算出された遅延時間が所定の値よりも小さいと判断した場合(S15:YES)、処理をS17に進める。
このようにCPU51は、遅延時間が所定値よりも小さくない場合、処理をS17に進めないことによって、映像信号をHD10に送信せず、撮影画像を画像表示部14に表示させない。その理由は、遅延時間が大きい場合、撮影画像データに対応する撮影画像に指先が含まれていた場合の指先の動きと、実像に指先が含まれていた場合の指先の動きとの間に時間差が発生する為である。これによってCPU51は、画像表示部14に表示された撮影画像に含まれる指先の動きが、実像に含まれる指先の動きに対して遅延することによって、ユーザに違和感を与えることを防止できる
CPU51は、S7(図4参照)で画像表示部14に表示させたコンテンツ画像に、S11で受信された撮影画像データに対応する撮影画像を重ねる為に、次の処理を行う。CPU51は、S7で画像表示部14に表示された状態のコンテンツ画像のコンテンツ画像データと、S11で受信された撮影画像データとに基づいて、コンテンツ画像に撮影画像が重ねられた重畳画像の映像信号を生成する(S16)。ここでCPU51は、重畳画像に含めるコンテンツ画像及び撮影画像を、透明の状態で重ね合わせる。一例としては次の通りである。CPU51は、コンテンツ画像と撮影画像とを重ね合わせる為に、コンテンツ画像と撮影画像とのαブレンドを行う。CPU51は、αブレンドを行う場合における撮影画像の各画素のα値を、コンテンツ画像の各画素のα値よりも小さい値とする。以下、コンテンツ画像の各画素のα値を第1α値といい、撮影画像の各画素のα値を第2α値という。第2α値は、第1α値よりも小さくなる。この場合、撮影画像の透過率は、コンテンツ画像の透過率よりも大きくなり、コンテンツ画像よりも色が薄く不鮮明になる。
CPU51は、生成した映像信号をHD10に送信し、画像表示部14に重畳画像を表示させる(S17)。HD1を装着したユーザは、例えば図3の光景21Bで示されるように、実像211に重ねられた重畳画像212Bを視認する。重畳画像212Bは、コンテンツ画像23と撮影画像24とを含む。CPU51は、ユーザに対してコンテンツ画像23と撮影画像24との両方を視認させることができる。
又、光景21Bでは、重畳画像212Bにユーザの手25及び指先25Aが含まれている。光景21Bを視認するユーザは、自身の指先の位置を確認しながら手を移動させることができるので、所定の条件を満たすように指先を移動させ易くなる。特に、実像211に重ねられた重畳画像212Bに手22が隠れてしまい、ユーザが実像211に基づいて手を視認できない場合でも、重畳画像212Bに含まれる手25を視認できる。従ってユーザは、実像211内の手の位置に依らず、常に、所定の条件を満たすように指先を移動させることができる。なお、CPU51は、コンテンツ画像23に撮影画像24を重ねることによって、重畳画像212Bを形成させる。このためCPU51は、重畳画像212Bによって隠れてしまう実像211の領域の大きさを小さくすることができるので、ユーザによる実像211の視認性を良好に維持できる。
又、光景21Bでは、重畳画像212Bに含まれる撮影画像24の透過率は、コンテンツ画像23の透過率よりも大きくなり、コンテンツ画像23よりも色が薄く不鮮明となる。従ってユーザは、撮影画像24よりもコンテンツ画像23を鮮明に認識できる。このように、CPU51は、コンテンツ画像23に撮影画像24が重ねられた場合に、コンテンツ画像23の視認性が妨げられることを防止できる。従ってCPU51は、コンテンツ画像23に撮影画像24が重ねられた場合でも、ユーザにコンテンツ画像23を継続して良好に視認させることができる。
CPU51は、S13で特定した指先の位置を示す座標情報を特定し、RAM52に記憶する。S11、S13、S15の処理が繰り返されることによって、RAM52に複数の座標情報が記憶される。CPU51は、RAM52に記憶された複数の座標情報に基づき、図6のDB531を参照することによって、指先の位置の経時的な変化の傾向が、複数の所定の条件の一部の何れかを満たすか判断する(S19)。
図6を参照し、DB531を説明する。DB531には、判定データ及び処理内容データが関連付けて複数記憶される。判定データは、指先の位置の変化の傾向を特定可能な所定の条件を示すデータである。判定データの詳細は後述する。処理内容データは、HMD1の具体的な処理の内容を示す。DB531では、右、左、上、及び下の夫々の方向にコンテンツ画像をスクロールさせる処理を示す処理内容データが記憶されている。
図7を参照し、判断方法の詳細について具体的を挙げて説明する。S11、S13、S15(図5参照)の処理が繰り返されることによって、RAM52に、複数の位置P1、P2、P3、P4、P5の夫々を示す座標情報(X1,Y1)(X2,Y2)(X3,Y3)(X4,Y4)(X5,Y5)が順番に記憶されたとする。なお、撮影画像の横方向がX軸方向に対応し、縦方向がY軸方向に対応する。また、右方向及び上方向が正方向であり、左方向及び下方向が負方向である。図7は、右、及び左の夫々の方向にコンテンツ画像をスクロールさせる処理に対応する指先の移動経路と、複数の座標情報31、32とを示している。
複数の座標情報31に基づいて判断される場合について説明する。指先が位置P1から位置P4まで移動し、位置P1〜P4の座標情報がRAM52に記憶された場合、CPU51は、位置P1〜P4の座標情報のX成分及びY成分の夫々が、次の式(1)の条件を満たすと判断する。
X1≒X2≒X3≒X4,Y1>Y2>Y3>Y4・・・(1)
この場合、CPU51は、指先の位置が上から下に向けて略垂直に移動していると判断する。
次に、指先が位置P5に移動し、位置P5の座標情報がRAM52に記憶された場合、CPU51は、位置P4、P5の座標情報のX成分及びY成分の夫々が、次の式(2)の条件を満たすと判断する。
X4<X5,Y4<Y5・・・(2)
この場合、CPU51は、指先の位置の移動方向が、上から下に向かう移動から、左下から右上に向かう移動に変化したと判断する。CPU51は、上記の式(1)(2)の条件を満たす場合、指先の位置の経時的な変化の傾向が、右スクロールの処理内容に対応する所定の条件の一部を満たすと判断する。
次に、複数の座標情報32に基づいて判断される場合について説明する。指先が位置P1から位置P4まで移動し、位置P1〜P4の座標情報がRAM52に記憶された場合、CPU51は、上記と同様、式(1)の条件を満たすと判断する。指先が位置P5に移動し、位置P5の座標情報がRAM52に記憶された場合、CPU51は、位置P4、P5の座標情報のX成分及びY成分の夫々が、次の式(3)の条件を満たすと判断する。
X4>X5,Y4<Y5・・・(3)
この場合、CPU51は、指先の位置の移動方向が、上から下に向かう移動から、右下から左上に向かう移動に変化したと判断する。CPU51は、上記の式(1)(3)の条件を満たす場合、指先の位置の経時的な変化の傾向が、左スクロールの処理内容に対応する所定の条件の一部を満たすと判断する。
なお、詳細は省略するが、指先の位置の経時的な変化の傾向が、上、又は下の夫々の方向にコンテンツ画像をスクロールさせる処理内容に対応する所定の条件の一部を満たすかの判断も、上記と同様の方法で行われる。又、上記の具体例では、最初にRAM52に記憶された座標情報を、特定の位置P1(座標情報(X1,Y1))とし、位置P2,P3・・・の夫々の座標情報に基づいて判断される場合を例に挙げて説明した。しかしながら、判断方法は上記具体例に限定されない。例えばCPU51は、位置P2〜P9(図8参照)の何れかから開始される指先の複数の位置を示す座標情報に基づいて、指先の位置の経時的な変化の傾向が、右、左、上、又は下の夫々の方向にコンテンツ画像をスクロールさせる処理内容に対応する所定の条件の一部を満たすかを判断してもよい。
図5に示すように、CPU51は、DB531に記憶された複数の判定データを参照し、上記の方法によって、指先の位置の経時的な変化の傾向が、右、左、上、及び下の夫々の方向へのスクロールに対応する複数の所定の条件一部の何れかを満たすか判断する(S19)。CPU51は、複数の所定の条件の一部の何れも満たさないと判断した場合(S19:NO)、処理をS31に進める。
CPU51は、複数の所定の条件の一部の何れかを満たすと判断した場合(S19:YES)、S17で画像表示部14に表示させた重畳画像のうち、撮影画像の透過率を小さくする為に、次の処理を行う。CPU51は、S7(図4参照)で画像表示部14に表示された状態のコンテンツ画像のコンテンツ画像データと、S11で受信された撮影画像データとに基づいて、コンテンツ画像に撮影画像が重ねられた重畳画像の映像信号を生成する(S20)。ここでCPU51は、重畳画像に含めるコンテンツ画像及び撮影画像を、透明の状態で重ね合わせる。より具体的には次の通りである。CPU51は、コンテンツ画像と撮影画像とのαブレンドを行う場合における撮影画像の各画素のα値を、S17で画像表示部14に表示された重畳画像に含まれる撮影画像のα値である第2α値よりも大きく、且つ、コンテンツ画像のα値である第1α値よりも小さい第3α値とする。この場合、撮影画像の透過率は、S17で画像表示部14に表示された重畳画像に含まれる撮影画像の透過率よりも小さくなり、撮影画像は色が濃くなり鮮明になる。
CPU51は、生成した映像信号をHD10に送信し、画像表示部14に重畳画像を表示させる(S21)。これによって、画像表示部14に表示された重畳画像のうち撮影画像の透過率は小さくなり、透過率の変化前と比較して色が濃くなり鮮明となるので、ユーザは、透過率の変化前と比較して、撮影画像24を良好に視認できるようになる。このように、CPU51は、撮影画像の透過率を変化させることによって、指先の位置の変化の傾向が、右、左、上、及び下の夫々の方向へのスクロールに対応する所定の条件の一部の何れかを満たすと判断したことを、ユーザに通知できる。又、撮影画像24の色が濃くなり鮮明となるので、ユーザは、指先を継続して移動させる場合の移動方法を把握し易くなる。
又、撮影画像のα値(第3値)は、コンテンツ画像のα値(第1α値)よりも小さいので、コンテンツ画像23よりも撮影画像24の方が色が薄く不鮮明な状態は、撮影画像の透過率が小さくなった後も維持される。従ってユーザは、撮影画像の透過率が小さくなった後も、コンテンツ画像23を鮮明に認識できる。このように、CPU51は、撮影画像24がコンテンツ画像23の視認性を妨げることを、撮影画像24の透過率を変化させた後も防止できる。従ってCPU51は、ユーザに対して、コンテンツ画像23を継続して良好に視認させることができる。
CPU51は、RAM52に記憶された複数の座標情報に基づき、図6のDB531に記憶された複数の判定データを参照することによって、指先の位置の経時的な変化の傾向が、右、左、上、及び下の夫々の方向へのスクロールに対応する複数の所定の条件の何れかを満たすかを判断する(S23)。
図8を参照し、判断方法の詳細について具体例を挙げて説明する。S11、S13、S15(図5参照)の処理が繰り返されることによって、RAM52に、複数の位置P1〜P11の夫々を示す座標情報(X1,Y1)〜(X11,Y11)が順番に記憶されたとする。図8は、右方向にコンテンツ画像をスクロールさせる処理に対応する所定の移動経路と複数の座標情報33とを示している。
指先が位置P1から位置P4まで移動し、位置P1〜P4の座標情報がRAM52に記憶された場合、CPU51は、上記式(1)の条件を満たすと判断する。この場合、CPU51は、指先の位置が上から下に向けて略垂直に移動していると判断する。次に、指先が位置P5に移動し、位置P5の座標情報がRAM52に記憶された場合、CPU51は、位置P4、P5の夫々に対応する座標情報が上記式(2)の条件を満たすと判断する。この場合、CPU51は、指先の位置の移動方向が、上から下に向かう移動から、左下から右上に向かう移動に変化したと判断する。
次に、指先が位置P5からP7に移動し、位置P6、P7の座標情報がRAM52に記憶された場合、CPU51は、RAM52に記憶された位置P4〜P7の座標情報のX成分及びY成分の夫々が、次の式(4)の条件を満たすと判断する。
X4<X5<X6<X7,Y4<Y5<Y6<Y7・・・(4)
この場合、CPU51は、指先の位置が左下から右上に向けて斜め方向に移動していると判断する。
次に、指先が位置P8に移動し、位置P8の座標情報がRAM52に記憶された場合、CPU51は、位置P7、P8の座標情報のX成分及びY成分の夫々が、次の式(5)の条件を満たすと判断する。
X7>X8,Y7<Y8・・・(5)
この場合、CPU51は、指先の位置の移動方向が、左下から右上に向かう移動から、右下から左上に向かう移動に変化したと判断する。
次に、指先が位置P8からP10に移動し、位置P9、P10の座標情報がRAM52に記憶された場合、CPU51は、位置P7〜P10の座標情報のX成分及びY成分の夫々が、次の式(6)の条件を満たすと判断する。
X7>X8>X9>X10,Y7<Y8<Y9<Y10・・・(6)
この場合、CPU51は、指先の位置が右下から左上に向けて斜め方向に移動していると判断する。
次に、指先が位置P10からP11に移動し、位置P11の座標情報がRAM52に記憶された場合、CPU51は、位置P10、P11の座標情報のX成分及びY成分の夫々が、次の式(7)の条件を満たすと判断する。
X10≒X11,Y10>Y11・・・(7)
この場合、CPU51は、指先の位置の移動方向が、右下から左上に向かう移動から、上から下に向かう移動に変化したと判断する。CPU51は、上記の式(1)(2)(4)〜(7)の条件を満たす場合、指先の位置の経時的な変化の傾向が、右スクロールの処理内容に対応する所定の条件を満たすと判断する。
なお、図6のDB531に記憶された判定データのうち、右方向へのスクロールを示す処理内容データに関連付けられた判定データは、上記の式(1)(2)(4)〜(7)を示すデータである。このように、判定データは、指先の位置の変化の傾向が所定の条件を満たすかを判断する場合に適用される関係式を示す。
なお、詳細は省略するが、指先の位置の経時的な変化の傾向が、左、上、及び、下の夫々の方向にコンテンツ画像をスクロールさせる処理内容に対応する所定の条件を満たすかの判断も、上記と同様の方法で行われる。又、上記の具体例では、最初にRAM52に記憶された座標情報を、特定の位置P1(座標情報(X1,Y1))とし、位置P2,P3・・・の夫々の座標情報に基づいて判断される場合を例に挙げて説明した。しかしながら、判断方法は上記具体例に限定されない。例えばCPU51は、位置P2〜P9の何れかから開始される指先の複数の位置を示す座標情報に基づいて、指先の位置の経時的な変化の傾向が、右、左、上、又は下の夫々の方向にコンテンツ画像をスクロールさせる処理内容に対応する所定の条件を満たすかを判断してもよい。なお、夫々の判断が行われる場合に適用される関係式が、DB531に判定データとして、夫々の処理内容に関連付けて記憶される。
なおCPU51は、別の方法で、指先の位置の経時的な変化の傾向が所定の条件を満たすか判断してもよい。例えばCPU51は、RAM52に記憶された複数の座標情報の夫々によって示される位置を順に線で結び、指先の移動の軌跡を示す線分として特定してもよい。CPU51は、特定した線分と、プログラムROM53に予め記憶された軌跡特定用の複数の画像テンプレートとに基づいて、周知のパターンマッチング処理を行ってもよい。なお、軌跡特定用の複数の画像テンプレートは、特定の形状を示す画像のテンプレートである。特定の形状は、例えば、図8で移動経路として示されている三角形である。なお、特定の形状は三角形に限定されない。例えば特定の形状は、上下方向に延びる直線、左右方向に延びる直線、円形等であってもよい。複数の画像テンプレートの夫々には、処理内容データが対応付けられてもよい。CPU51は、パターンマッチング処理によって複数の画像テンプレートの夫々に対応する複数の相互相関係数を算出し、最も1に近い相互相関係数が所定の範囲内の値であるか判断してもよい。CPU51は、最も1に近い相互相関係数が所定の範囲内の値である場合、パターンマッチングに成功したと判断してもよい。この場合CPU51は、指先の位置の変化の傾向が、最も1に近い相互相関係数に対応する画像テンプレートによって示される特定の形状と一致すると判断してもよい。これによってCPU51は、指先の位置の変化の傾向が所定の条件を満たしているかを更に適切に判断できる。
図5に示すように、CPU51は、DB531に記憶された複数の判定データを参照し、上記の判断方法によって、指先の位置の経時的な変化の傾向が、右方向、左方向、上方向、及び下方向にコンテンツ画像をスクロールさせる処理内容に対応する所定の条件の何れかを満たすか判断する(S23)。CPU51は、複数の所定の条件の何れとも一致しないと判断した場合(S23:NO)、処理をS17に戻す。CPU51は、複数の所定の条件の何れかを満たすと判断した場合(S23:YES)、S21で画像表示部14に表示させた重畳画像に軌跡画像26を含める為に、次の処理を行う。CPU51は、RAM52に記憶された複数の座標情報によって示される複数の位置を、RAM52に座標情報が記憶された順番に線で結ぶことによって、指先の位置の移動経路を示す線分を特定する。CPU51は、特定された線分のうち、RAM52に最後に記憶された座標情報側の端部に、アローヘッドを付し、軌跡画像26を作成する。CPU51は、S21で画像表示部14に表示された状態の重畳画像に軌跡画像を含め、映像信号を生成する。
CPU51は、HD10に映像信号を送信し、軌跡画像を含む重畳画像を画像表示部14に表示させる(S25)。HD1を装着したユーザは、例えば図3の光景21Cで示されるように、軌跡画像26を含む重畳画像212Cを視認する。これによってユーザは、指先の位置の経時的な変化の傾向を確認できる。また、CPU51は、指先の位置の経時的な変化の傾向が、右、左、上、及び下の何れかの方向へのコンテンツ画像のスクロールに対応する所定の条件の何れかを満たすと判断した場合に、軌跡画像を含む重畳画像を画像表示部14に表示させる。このためユーザは、HMD1実行させる処理内容に対応する指先の位置の経時的な変化の傾向がHMD1によって認識されたことを把握できる。またCPU51は、コンテンツ画像のスクロールが実際に行われる(S27参照、後述)前に、軌跡画像を含む重畳画像を画像表示部14に表示させる。これによってユーザは、指の移動に対応する処理がまだ実行されていないことを認識できる。
CPU51は、DB531に記憶された複数の判定データのうち、S23で所定の条件を満たすと判断された場合に参照された判定データに対応する処理内容、即ち、コンテンツ画像をスクロールさせる場合の方向を特定する。CPU51は、特定した処理内容に基づいて、コンテンツ画像をスクロールさせる処理を実行する(S27)。
具体例を挙げて説明する。CPU51が、S23で、指先の位置の経時的な変化の傾向が、DB531の判定データ「Right.file」に対応する所定条件を満たすと判断した場合を例に挙げる。この場合、CPU51は、判定データ「Right.file」に関連付けられた処理内容が、コンテンツ画像を右方向にスクロールさせる処理を示すことを特定する。CPU51は、S25で画像表示部14に表示させた軌跡画像を含む重畳画像に含まれるコンテンツ画像を、右方向にスクロールさせる為に、次の処理を行う。CPU51は、S21で画像表示部14に表示された状態の重畳画像のうちコンテンツ画像を、右方向にスクロールさせる。CPU51は、右方向にスクロールさせたコンテンツ画像に撮影画像が重ねられ、且つ、軌跡画像を含む重畳画像の映像信号を生成する。CPU51は、生成した映像信号をHD10に送信し、画像表示部14に重畳画像を表示させる。HD1を装着したユーザは、例えば図3の光景21Dで示されるように、右方向にスクロールされたコンテンツ画像23を含む重畳画像212Dを視認する。以上のように、CPU51は、DB531を参照することによって、指先の位置の変化の傾向に対応する処理を容易に特定できる。
なお、プログラムROM53に記憶された複数の画像テンプレートが用いられることによって、指先の位置の変化の傾向が所定の条件を満たすかが判断された場合、CPU51は、最も1に近い相互相関係数に対応する画像テンプレートに対応付けられた処理内容データを、上記と同様の方法で特定し、対応する処理を実行してもよい。
CPU51は、S27で実行する処理が完了した後、HD10にコンテンツ画像及び撮影画像の映像信号のみを送信することによって、画像表示部14に表示された状態の重畳画像から軌跡画像を消去させる(S29)。次にCPU51は、S29で重畳画像から軌跡画像を消去させた後、HD10にコンテンツ画像の映像信号のみを送信することによって、画像表示部14に表示された状態の重畳画像から撮影画像を更に消去する(S31)。画像表示部14には、コンテンツ画像のみが表示された状態になる。CPU51は処理をS11に戻す。これによってユーザは、指先の位置の経時的な変化に対応する処理をHMD1が実行したことを確認できる。またCPU51は、S27で処理が実行された後で、画像表示部14に表示された状態の重畳画像から撮影画像及び軌跡画像を消去させる。これによってCPU51は、ユーザにとって不要となった撮影画像及び軌跡画像をユーザに視認させないことになるので、コンテンツ画像をユーザに良好に視認させることができる。
CPU51が、S27で、コンテンツ画像を右方向にスクロールさせる処理を実行した場合を例に挙げる。この場合、HD10を装着したユーザは、図3の光景21Eで示されるように、右方向にスクロールされたコンテンツ画像212Eのみが実像211に重ねられた光景を視認する。従ってユーザは、指先の移動に応じたスクロール処理が実行された後のコンテンツ画像を良好に視認できる。
以上説明したように、CPU51は、カメラ20によって撮影される所定領域内に指先があると判断した場合(S13:YES)、コンテンツ画像と撮影画像とを含む重畳画像を画像表示部14に表示させる(S17)。従ってユーザは、指先がカメラ20によって撮影されているかを、重畳画像によって認識できる。CPU51は、指先の位置の変化の傾向が所定の条件を満たす場合(S23:YES)、所定の条件に対応する処理を実行する(S27)。ユーザは、指先の位置の経時的な変化が所定の条件を満たすように、所定領域内で指先を移動させることによって、所望する処理をHMD1に実行させることができる。例えばユーザが、実像211に含まれる指先の位置のみを確認し、カメラ20によって撮影される所定領域外で指先を移動させた場合、CPU51は指先の位置の経時的な変化を正確に特定できないので、対応する処理を実行できない。これに対してCPU51は、重畳画像を表示させることによって、カメラ20によって撮影される所定領域内に指先が含まれていることをユーザに確認させることができる。ユーザは、カメラ20によって撮影される所定領域内で指先を移動させることが容易に可能となるので、HMD1に指先を適切に認識させることができる。このためユーザは、所望する処理をHMD1に適切に実行させることができる。
なお、本発明は上記実施形態に限定されず、種々の変更が可能である。上記実施形態において、CPU51は、S15で指先を特定したが、特定される対象物は指先に限定されない。例えばCPU51は、所定色(例えば赤色)のペン先を対象物として特定してもよい。この場合、CPU51は、所定色に対応する所定の画素値を有する画素が連続している領域を検出することで、対象物が含まれる領域を検出することができる。そして、検出した領域全体を囲う多角形の形状と、プログラムROM53に予め記憶された、対象物に対応する形状の画像テンプレートとに基づいて、周知のパターンマッチング処理が行われる。CPU51は、パターンマッチング処理によって算出された相互相関係数が所定の範囲内の値である場合、特定した多角形の形状と画像テンプレートとのパターンマッチングに成功したと判断する。この場合、CPU51は、多角形の領域をペン先と特定する。
カメラ20は、CB50に対して撮影画像データを直接送信してもよい。上記実施形態において、CPU51は、コンテンツ画像に撮影画像を重ねた重畳画像を画像表示部14に表示させていた。CPU51は、コンテンツ画像と撮影画像とを重ねず、画像表示部14の異なる領域に双方を表示させてもよい。この場合、CPU51は、撮影画像をユーザに視認させつつ、コンテンツ画像の視認性を更に良好に維持できる。
上記実施形態において、CPU51は、S17で画像表示部14に重畳画像を表示させる場合、αブレンドを行う場合における撮影画像の各画素のα値(第2α値)を、コンテンツ画像の各画素のα値(第1α値)よりも小さい値とした。これに対し、CPU51は、第1α値と第2α値とを略同一としてもよい。これによってCPU51は、コンテンツ画像と撮影画像とを同様の透過率とした状態で画像表示部14に表示させることができる。この場合、ユーザは、コンテンツ画像と撮影画像との両方を良好に認識できる。
上記実施形態において、CPU51は、S21で撮影画像に対応するα値を、第2α値から、第2α値よりも大きい第3α値に変更し、画像表示部14に表示させた。これに対し、CPU51は、S19で、指先の位置の変化の傾向が所定の条件の一部を満たすと判断された場合にも、撮影画像に対応するα値を変化させず、S17で画像表示部14に表示させた重畳画像を、S21でそのまま表示させてもよい。又、CPU51は、S21で撮影画像に対応するα値を、第2α値から、第2α値よりも小さい第4α値に変更し、画像表示部14に表示させてもよい。これによってCPU51は、コンテンツ画像よりも色が濃く且つ鮮明な撮影画像をユーザに視認させることができる。
上記実施形態において、CPU51は、指先の位置の経時的な変化の傾向が所定の条件を満たすと判断された場合(S23:YES)、軌跡画像を含む重畳画像を画像表示部14に表示させた(S25)。これに対してCPU51は、S19で、指先の位置の経時的な変化の傾向が所定の条件の一部を満たすと判断した場合(S19:YES)に、軌跡画像を画像表示部14に表示させてもよい。又、CPU51は、S11で、撮影画像に指先が含まれていると判断した場合(S11:YES)に、軌跡画像を画像表示部14に表示させてもよい。これらの場合、ユーザは、軌跡画像を視認することによって、指先の位置の変化の傾向が所定の条件を満たすように指先を移動させることが容易に可能となる。
上記実施形態において、CPU51は、S27で、所定の条件に対応する処理を実行した後、軌跡画像を画像表示部14から消去した。これに対し、CPU51は、処理を実行する前に軌跡画像を画像表示部14から消去してもよい。
上記実施形態において、カメラ20とインターフェイス15とは、無線によって通信が行われてもよい。HD10とCB50とは、無線によって通信が行われてもよい。なおこれらの場合、カメラ20による撮影が行われてから、CPU51が撮影画像データを受信するまでの間の時間が、上記実施形態の場合よりも長くなる可能性がある。しかしながら、上記実施形態において、CPU51は、遅延時間が所定値よりも小さくない場合(S15:NO)、撮影画像を含む重畳画像を画像表示部14に表示させない。このため、画像表示部14に表示される撮影画像によって示される指先の動きが、実像に含まれる指先の動きに比べて大きく遅延することがない。従って、遅延による違和感をユーザに与えることを防止できる。
なお、画像表示部14が本発明の「表示部」の一例である。カメラ20が本発明の「撮影部」の一例である。指先が本発明の「対象物」の一例である。撮影画像が本発明の「対象物画像」の一例である。S13の処理を行うCPU51が本発明の「第1判断手段」の一例である。S17,S21の処理を行うCPU51が本発明の「第1表示手段」の一例である。S23の処理を行うCPU51が本発明の「第2判断手段」の一例である。S19の処理を行うCPU51が本発明の「第3判断手段」の一例である。S27の処理を行うCPU51が本発明の「実行手段」の一例である。S16,S20の処理を行うCPU51が本発明の「生成手段」の一例である。S25の処理を行うCPU51が本発明の「第2表示手段」の一例である。S31の処理を行うCPU51が本発明の「消去手段」の一例である。画像テンプレートを記憶するプログラムROM53が本発明の「記憶部」の一例である。