(57)【特許請求の範囲】
【請求項１】
表示装置に画像を表示する画像処理装置のコンピュータで実行される画像処理プログラムであって、
前記コンピュータを、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像のうちの所定領域内の画像をテクスチャとして用いて、仮想世界に配置されるオブジェクトを仮想カメラから見た仮想世界画像を生成する仮想世界画像生成手段と、
前記撮像画像取得手段によって取得された撮像画像と前記仮想世界画像とを合成する画像合成手段と、
前記画像合成手段によって合成された画像を前記表示装置に表示する表示制御手段として機能させる、画像処理プログラム。
【請求項２】
前記仮想世界画像生成手段は、前記撮像画像における前記所定領域の位置に応じて、前記仮想世界画像における前記オブジェクトの画像が当該撮像画像における前記所定領域に重なるように、仮想カメラと前記オブジェクトの位置関係を設定して前記仮想世界画像を生成する、請求項１に記載の画像処理プログラム。
【請求項３】
前記仮想世界画像生成手段は、前記撮像画像内において所定の特徴を有する領域を前記所定領域として設定する、請求項１に記載の画像処理プログラム。
【請求項４】
前記仮想世界画像生成手段は、前記撮像画像を画像分析して所定の条件を満たす領域を前記所定領域として設定する、請求項１に記載の画像処理プログラム。
【請求項５】
前記撮像画像取得手段によって取得された撮像画像に対して人物の顔を識別する顔認識処理を行う顔認識処理手段として、さらに前記コンピュータを機能させ、
前記仮想世界画像生成手段は、前記顔認識処理手段によって識別された顔の画像の少なくとも１つの領域を前記所定領域として設定し、当該所定領域として設定された顔の画像を前記テクスチャに設定する、請求項４に記載の画像処理プログラム。
【請求項６】
前記顔認識処理手段によって識別された顔の表情を判別する表情判別手段と、
前記表情判別手段が判別した表情に応じて、仮想世界に配置されている前記オブジェクトに所定の動作を行わせるオブジェクト動作制御手段として、さらに前記コンピュータを機能させる、請求項５に記載の画像処理プログラム。
【請求項７】
前記撮像画像取得手段によって取得された撮像画像に対して所定の物体を識別する物体認識処理手段として、さらに前記コンピュータを機能させ、
前記仮想世界画像生成手段は、前記物体認識処理手段によって識別された物体の画像の少なくとも１つの領域を前記所定領域として設定し、当該所定領域として設定された物体の画像を前記テクスチャに設定する、請求項４に記載の画像処理プログラム。
【請求項８】
前記撮像画像取得手段によって取得された撮像画像に対して文字を認識する文字認識処理を行う文字認識処理手段として、さらに前記コンピュータを機能させ、
前記仮想世界画像生成手段は、前記文字認識処理手段によって識別された文字の画像の少なくとも１つの領域を前記所定領域として設定し、当該所定領域として設定された文字の画像を前記テクスチャに設定する、請求項４に記載の画像処理プログラム。
【請求項９】
前記撮像画像取得手段によって取得された撮像画像に対して所定の色を認識する色認識処理を行う色認識処理手段として、さらに前記コンピュータを機能させ、
前記仮想世界画像生成手段は、前記色認識処理手段によって識別された色を有する画像の少なくとも１つの領域を前記所定領域として設定し、当該所定領域として設定された画像を前記テクスチャに設定する、請求項４に記載の画像処理プログラム。
【請求項１０】
前記仮想世界画像生成手段は、前記所定領域の形状に応じて前記オブジェクトの形状を設定する、請求項４に記載の画像処理プログラム。
【請求項１１】
前記撮像画像取得手段は、前記画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
前記仮想世界画像生成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対する前記所定領域内の画像を前記テクスチャとしてそれぞれ設定し、設定された最新のテクスチャをマッピングしたオブジェクトを用いて当該撮像画像が繰り返し取得される毎に前記仮想世界画像を生成し、
前記画像合成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに当該撮像画像に対応する前記仮想世界画像を合成し、
前記表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像が合成された画像を前記表示装置に繰り返し表示する、請求項１に記載の画像処理プログラム。
【請求項１２】
前記撮像画像取得手段は、前記画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
前記画像合成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像を合成し、
前記表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像が合成された画像を前記表示装置に繰り返し表示し、
前記画像処理プログラムは、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して、当該撮像画像内に設定された前記所定領域に、所定のマスク画像が覆われて前記表示装置に表示されるように画像処理を行うマスク処理手段として、さらに前記コンピュータを機能させる、請求項１に記載の画像処理プログラム。
【請求項１３】
前記マスク処理手段は、前記画像合成手段が前記撮像画像と前記仮想世界画像とを合成する場合に前記撮像画像における前記所定領域を覆って所定のマスクオブジェクトが合成されるように、当該マスクオブジェクトを仮想世界に配置し、
前記仮想世界画像生成手段は、前記仮想カメラから前記オブジェクトおよび前記マスクオブジェクトを見た仮想世界の画像を前記仮想世界画像として生成する、請求項１２に記載の画像処理プログラム。
【請求項１４】
前記マスク処理手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれの前記所定領域に所定のマスク画像を配置し、
前記画像合成手段は、前記マスク処理手段によってマスク画像が配置された撮像画像と前記仮想世界画像とを合成する、請求項１２に記載の画像処理プログラム。
【請求項１５】
前記マスク処理手段は、前記実カメラの動きを検出するセンサからの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きとは反対方向に前記マスク画像を移動させて前記表示装置に表示されるように画像処理を行う、請求項１２に記載の画像処理プログラム。
【請求項１６】
前記マスク処理手段は、前記実カメラの動きを検出するセンサからの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きと同じ動きを前記仮想カメラに与えて当該仮想カメラの位置および撮像方向を設定し、
前記仮想世界画像生成手段は、前記マスク処理手段によって設定された仮想カメラから前記オブジェクトおよび前記マスクオブジェクトを見た仮想世界の画像を前記仮想世界画像として生成する、請求項１３に記載の画像処理プログラム。
【請求項１７】
前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して人物の顔を識別する顔認識処理を行う顔認識処理手段として、さらに前記コンピュータを機能させ、
前記仮想世界画像生成手段は、前記顔認識処理手段によって識別された顔の画像の少なくとも１つの領域を前記所定領域として設定し、
前記マスク処理手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して、当該撮像画像内に前記所定領域として設定された顔の画像の領域に、前記マスク画像が覆われて前記表示装置に表示されるように画像処理を行う、請求項１２に記載の画像処理プログラム。
【請求項１８】
前記マスク処理手段は、前記所定領域全体が所定の色で塗りつぶされて覆われる画像を前記マスク画像として設定する、請求項１２に記載の画像処理プログラム。
【請求項１９】
前記マスク処理手段は、前記所定領域が設定された撮像画像において当該所定領域と隣接する周辺に撮像されているいずれかの色で、当該所定領域全体が塗りつぶされて覆われる画像を前記マスク画像として設定する、請求項１２に記載の画像処理プログラム。
【請求項２０】
前記仮想世界画像生成手段は、前記画像合成手段が前記撮像画像と前記仮想世界画像とを合成する場合に前記撮像画像における前記所定領域に前記オブジェクトが合成されるように、前記オブジェクトの仮想世界における初期位置を設定して当該初期位置に前記オブジェクトを配置するオブジェクト初期配置手段を含む、請求項１に記載の画像処理プログラム。
【請求項２１】
前記オブジェクト初期配置手段は、所定の初期段階モデルに前記テクスチャをマッピングした前記オブジェクトを前記初期位置に配置し、
前記仮想世界画像生成手段は、前記初期段階モデルを所定の最終段階モデルまで段階的にモーフィング処理して仮想世界に前記オブジェクトを配置するモーフィング処理手段を、さらに含み、
前記仮想世界画像生成手段は、前記オブジェクト初期配置手段によって配置された前記初期段階モデルのオブジェクトを前記仮想カメラから見た仮想世界の画像を前記仮想世界画像として生成した後、前記モーフィング処理手段によってモーフィング処理されたオブジェクトを前記仮想カメラから見た仮想世界の画像を前記仮想世界画像として生成する、請求項２０に記載の画像処理プログラム。
【請求項２２】
前記仮想世界画像生成手段は、前記オブジェクトを仮想世界における初期位置に配置した後、所定の規則で当該オブジェクトを仮想世界内で移動させて配置する、請求項１に記載の画像処理プログラム。
【請求項２３】
前記仮想世界画像生成手段は、前記モーフィング処理手段が前記最終段階モデルまでモーフィング処理した後に仮想世界内における当該オブジェクトの移動を開始し、当該移動開始後において所定の規則で当該オブジェクトを仮想世界内で移動させて配置する、請求項２１に記載の画像処理プログラム。
【請求項２４】
前記オブジェクト初期配置手段は、前記所定領域の形状の主面を有する平面モデルを前記初期段階モデルとして設定し、当該主面に前記テクスチャをマッピングした前記オブジェクトを前記初期位置に配置する、請求項２１に記載の画像処理プログラム。
【請求項２５】
前記撮像画像取得手段は、前記画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
前記画像処理プログラムは、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して人物の顔を識別する顔認識処理を行う顔認識処理手段として、さらに前記コンピュータを機能させ、
前記仮想世界画像生成手段は、前記顔認識処理手段によって識別された顔の画像の少なくとも１つの領域を前記所定領域として設定し、当該所定領域として設定された顔の画像を前記テクスチャに設定して、繰り返し前記顔認識処理が行われることによって前記撮像画像内で識別された顔の画像と少なくとも一部が重なって前記表示装置に表示されるように前記オブジェクトを仮想世界に配置して前記仮想世界画像を生成し、
前記画像合成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像を合成し、
前記表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像が合成された画像を前記表示装置に繰り返し表示する、請求項１に記載の画像処理プログラム。
【請求項２６】
前記仮想世界画像生成手段は、前記顔認識処理手段によって識別された顔の画像を立体モデルにテクスチャマッピングした前記オブジェクトを仮想世界に配置して前記仮想世界画像を生成する、請求項２５に記載の画像処理プログラム。
【請求項２７】
前記仮想世界画像生成手段は、繰り返し前記顔認識処理が行われることによって前記撮像画像内から識別された顔の画像を用いて、当該顔の画像が識別される毎に前記立体モデルのテクスチャを更新して前記オブジェクトを仮想世界に配置する、請求項２６に記載の画像処理プログラム。
【請求項２８】
表示装置に画像を表示する画像処理装置であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像のうちの所定領域内の画像をテクスチャとして用いて、仮想世界に配置されるオブジェクトを仮想カメラから見た仮想世界画像を生成する仮想世界画像生成手段と、
前記撮像画像取得手段によって取得された撮像画像と前記仮想世界画像とを合成する画像合成手段と、
前記画像合成手段によって合成された画像を前記表示装置に表示する表示制御手段とを備える、画像処理装置。
【請求項２９】
複数の装置が通信可能に構成され、表示装置に画像を表示する画像処理システムであって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像のうちの所定領域内の画像をテクスチャとして用いて、仮想世界に配置されるオブジェクトを仮想カメラから見た仮想世界画像を生成する仮想世界画像生成手段と、
前記撮像画像取得手段によって取得された撮像画像と前記仮想世界画像とを合成する画像合成手段と、
前記画像合成手段によって合成された画像を前記表示装置に表示する表示制御手段とを備える、画像処理システム。
【請求項３０】
表示装置に画像を表示する画像処理が可能な少なくとも１つの情報処理装置により構成される画像処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される画像処理方法であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得ステップと、
前記撮像画像取得ステップにおいて取得された撮像画像のうちの所定領域内の画像をテクスチャとして用いて、仮想世界に配置されるオブジェクトを仮想カメラから見た仮想世界画像を生成する仮想世界画像生成ステップと、
前記撮像画像取得ステップにおいて取得された撮像画像と前記仮想世界画像とを合成する画像合成ステップと、
前記画像合成ステップにおいて合成された画像を前記表示装置に表示する表示制御ステップとを含む、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法に関し、より具体的には、実世界画像を用いた画像処理を行う画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法に関する。
【背景技術】
【０００２】
従来、実世界と仮想世界とを合成した画像を表示する装置が提案されている（例えば、特許文献１参照）。上記特許文献１で開示された画像処理装置は、実在する実オブジェクトと仮想オブジェクトとを関連付けて表示している。実オブジェクトは、実世界に実在する１次元オブジェクト、２次元オブジェクト、または３次元オブジェクトであり、２次元で表現されたコード情報を特徴部分として有するカードなどに相当する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−７２６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１で開示された画像処理装置は、実オブジェクトを撮像した画像から実オブジェクト画像の識別情報を抽出し、当該識別情報に対応付けられている仮想オブジェクトを表示装置に表示している。つまり、上記特許文献１で開示された画像処理装置は、実世界に合成する画像が単なる仮想オブジェクトであるため、表示される画像が単調となる。
【０００５】
それ故に、本発明の目的は、実世界画像と仮想世界画像とを合成して新たな画像を生成する画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
【０００７】
本発明の画像処理プログラムは、表示装置に画像を表示する画像処理装置のコンピュータで実行される。画像処理プログラムは、撮像画像取得手段、仮想世界画像生成手段、画像合成手段、および表示制御手段として、コンピュータを機能させる。撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。仮想世界画像生成手段は、撮像画像取得手段によって取得された撮像画像のうちの所定領域内の画像をテクスチャとして用いて、仮想世界に配置されるオブジェクトを仮想カメラから見た仮想世界画像を生成する。画像合成手段は、撮像画像取得手段によって取得された撮像画像と仮想世界画像とを合成する。表示制御手段は、画像合成手段によって合成された画像を表示装置に表示する。
【０００８】
上記によれば、撮像画像と当該撮像画像の一部がテクスチャとなったオブジェクトが配置された仮想世界画像とを合成して新たな画像を生成することができる。
【０００９】
また、上記仮想世界画像生成手段は、撮像画像における所定領域の位置に応じて、仮想世界画像におけるオブジェクトの画像が当該撮像画像における所定領域に重なるように、仮想カメラと前記オブジェクトの位置関係を設定して仮想世界画像を生成してもよい。
【００１０】
上記によれば、仮想世界に配置されたオブジェクトが、あたかも実カメラで撮像された実空間に存在しているような画像を表示することができる。
【００１１】
また、上記仮想世界画像生成手段は、撮像画像内において所定の特徴を有する領域を所定領域として設定してもよい。
【００１２】
上記によれば、撮像画像における所定の特徴を有する領域がテクスチャとなったオブジェクトを登場させることができる。
【００１３】
また、上記仮想世界画像生成手段は、撮像画像を画像分析して所定の条件を満たす領域を所定領域として設定してもよい。
【００１４】
上記によれば、撮像画像に対する画像分析の結果に基づいて、当該撮像画像内の領域がテクスチャとなったオブジェクトを登場させることができる。
【００１５】
また、上記画像処理プログラムは、顔認識処理手段として、さらにコンピュータを機能させてもよい。顔認識処理手段は、撮像画像取得手段によって取得された撮像画像に対して人物の顔を識別する顔認識処理を行う。この場合、仮想世界画像生成手段は、顔認識処理手段によって識別された顔の画像の少なくとも１つの領域を所定領域として設定し、当該所定領域として設定された顔の画像をテクスチャに設定してもよい。
【００１６】
上記によれば、撮像画像における人物の顔画像がテクスチャとなったオブジェクトを登場させることができる。
【００１７】
また、上記画像処理プログラムは、表情判別手段およびオブジェクト動作制御手段として、さらにコンピュータを機能させてもよい。表情判別手段は、顔認識処理手段によって識別された顔の表情を判別する。オブジェクト動作制御手段は、表情判別手段が判別した表情に応じて、仮想世界に配置されているオブジェクトに所定の動作を行わせる。
【００１８】
上記によれば、撮像画像から識別された顔の表情に応じてオブジェクトを動作させることができ、新たなゲームを実現できる。
【００１９】
また、上記画像処理プログラムは、物体認識処理手段として、さらにコンピュータを機能させてもよい。物体認識処理手段は、撮像画像取得手段によって取得された撮像画像に対して所定の物体を識別する。この場合、仮想世界画像生成手段は、物体認識処理手段によって識別された物体の画像の少なくとも１つの領域を所定領域として設定し、当該所定領域として設定された物体の画像をテクスチャに設定してもよい。
【００２０】
上記によれば、撮像画像における所定の物体の画像がテクスチャとなったオブジェクトを登場させることができる。
【００２１】
また、上記画像処理プログラムは、文字認識処理手段として、さらにコンピュータを機能させてもよい。文字認識処理手段は、撮像画像取得手段によって取得された撮像画像に対して文字を認識する文字認識処理を行う。この場合、仮想世界画像生成手段は、文字認識処理手段によって識別された文字の画像の少なくとも１つの領域を所定領域とし、当該所定領域として設定された文字の画像をテクスチャに設定してもよい。
【００２２】
上記によれば、撮像画像における文字画像がテクスチャとなったオブジェクトを登場させることができる。
【００２３】
また、上記画像処理プログラムは、色認識処理手段として、さらにコンピュータを機能させてもよい。色認識処理手段は、撮像画像取得手段によって取得された撮像画像に対して所定の色を認識する色認識処理を行う。この場合、仮想世界画像生成手段は、色認識処理手段によって識別された色を有する画像の少なくとも１つの領域を所定領域とし、当該所定領域として設定された画像をテクスチャに設定してもよい。
【００２４】
上記によれば、撮像画像における所定の色を有する画像がテクスチャとなったオブジェクトを登場させることができる。
【００２５】
また、上記仮想世界画像生成手段は、所定領域の形状に応じてオブジェクトの形状を設定してもよい。
【００２６】
上記によれば、所定領域の形状に応じたオブジェクトが登場するため、撮像画像の一部から抜け出してきたようなオブジェクトを表示することができる。
【００２７】
また、上記撮像画像取得手段は、画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。仮想世界画像生成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対する所定領域内の画像をテクスチャとしてそれぞれ設定し、設定された最新のテクスチャをマッピングしたオブジェクトを用いて当該撮像画像が繰り返し取得される毎に仮想世界画像を生成してもよい。画像合成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに当該撮像画像に対応する仮想世界画像を合成してもよい。表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界画像が合成された画像を表示装置に繰り返し表示してもよい。
【００２８】
上記によれば、リアルタイムに撮像された撮像画像から得られるテクスチャがマッピングされたオブジェクトを表示することができる。
【００２９】
また、上記撮像画像取得手段は、画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。画像合成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像を合成してもよい。表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界画像が合成された画像を表示装置に繰り返し表示してもよい。画像処理プログラムは、マスク処理手段として、さらにコンピュータを機能させてもよい。マスク処理手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して、当該撮像画像内に設定された所定領域に、所定のマスク画像が覆われて表示装置に表示されるように画像処理を行う。
【００３０】
上記によれば、表示される撮像画像において、オブジェクトとして抜け出た跡を表示することができる。
【００３１】
また、上記マスク処理手段は、画像合成手段が撮像画像と仮想世界画像とを合成する場合に撮像画像における所定領域を覆って所定のマスクオブジェクトが合成されるように、当該マスクオブジェクトを仮想世界に配置してもよい。仮想世界画像生成手段は、仮想カメラからオブジェクトおよびマスクオブジェクトを見た仮想世界の画像を仮想世界画像として生成してもよい。
【００３２】
上記によれば、マスクオブジェクトを仮想世界に配置することによってマスク画像を生成するため、オブジェクトのテクスチャとなった撮像画像の跡にマスク画像を配置する処理が容易となる。
【００３３】
また、上記マスク処理手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれの所定領域に所定のマスク画像を配置してもよい。画像合成手段は、マスク処理手段によってマスク画像が配置された撮像画像と仮想世界画像とを合成してもよい。
【００３４】
上記によれば、オブジェクトのテクスチャとなった撮像画像の跡にマスク画像を正確に配置することができる。
【００３５】
また、上記マスク処理手段は、実カメラの動きを検出するセンサからの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きとは反対方向にマスク画像を移動させて表示装置に表示されるように画像処理を行ってもよい。なお、上記実カメラの動きを検出するセンサからの出力は、実カメラに生じる角速度を検出するセンサから出力される当該角速度を示すデータ、実カメラに生じる加速度を検出するセンサから出力される当該加速度を示すデータ、および実カメラが撮像した撮像画像を示すデータの少なくとも１つや、これらのデータを用いて実カメラの動きが算出されるまでの途中段階のデータまたはこれらのデータを用いて算出された実カメラの動きを示すデータ等が含まれる。
【００３６】
上記によれば、実カメラの動きに応じてマスク画像が配置されるため、実カメラの撮像範囲が変わったとしても、撮像範囲変更後の撮像画像に対して同じ位置にマスク画像を配置することができ、あたかも撮像画像で表現された実空間内にマスク画像が配置されているように表示することができる。
【００３７】
また、上記マスク処理手段は、実カメラの動きを検出するセンサからの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きと同じ動きを仮想カメラに与えて当該仮想カメラの位置および撮像方向を設定してもよい。仮想世界画像生成手段は、マスク処理手段によって設定された仮想カメラからオブジェクトおよびマスクオブジェクトを見た仮想世界の画像を仮想世界画像として生成してもよい。
【００３８】
上記によれば、実カメラの動きと同じ動きが仮想カメラに与えられるため、実カメラの撮像範囲が変わったとしても、撮像範囲変更後の撮像画像に対して同じ位置にオブジェクトおよびマスクオブジェクトを配置することができ、あたかも撮像画像で表現された実空間内にオブジェクトおよびマスク画像が配置されているように表示することができる。
【００３９】
また、上記画像処理プログラムは、顔認識処理手段として、さらにコンピュータを機能させてもよい。顔認識処理手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して人物の顔を識別する顔認識処理を行う。この場合、仮想世界画像生成手段は、顔認識処理手段によって識別された顔の画像の少なくとも１つの領域を所定領域として設定してもよい。マスク処理手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して、当該撮像画像内に所定領域として設定された顔の画像の領域に、マスク画像が覆われて表示装置に表示されるように画像処理を行ってもよい。
【００４０】
上記によれば、撮像画像における人物の顔画像がテクスチャとなったオブジェクトを登場させて、当該テクスチャとなった撮像画像の顔画像の部位にマスク画像を表示することができる。
【００４１】
また、上記マスク処理手段は、所定領域全体が所定の色で塗りつぶされて覆われる画像をマスク画像として設定してもよい。
【００４２】
上記によれば、オブジェクトのテクスチャとなった撮像画像の跡（マスク画像）が容易に判別可能となる。
【００４３】
また、上記マスク処理手段は、所定領域が設定された撮像画像において当該所定領域と隣接する周辺に撮像されているいずれかの色で、当該所定領域全体が塗りつぶされて覆われる画像をマスク画像として設定してもよい。
【００４４】
上記によれば、オブジェクトのテクスチャとなった撮像画像の跡が周囲の色で塗りつぶされて表示されるため、当該テクスチャとなった撮像画像の部位があたかも撮像時点から存在していないような画像を表示することが可能となる。
【００４５】
また、上記仮想世界画像生成手段は、オブジェクト初期配置手段を含んでもよい。オブジェクト初期配置手段は、画像合成手段が撮像画像と仮想世界画像とを合成する場合に撮像画像における所定領域にオブジェクトが合成されるように、オブジェクトの仮想世界における初期位置を設定して当該初期位置にオブジェクトを配置する。
【００４６】
上記によれば、撮像画像の一部からオブジェクトが抜け出るように表現することができる。
【００４７】
また、上記オブジェクト初期配置手段は、所定の初期段階モデルにテクスチャをマッピングしたオブジェクトを初期位置に配置してもよい。仮想世界画像生成手段は、モーフィング処理手段を、さらに含んでいてもよい。モーフィング処理手段は、初期段階モデルを所定の最終段階モデルまで段階的にモーフィング処理して仮想世界にオブジェクトを配置する。仮想世界画像生成手段は、オブジェクト初期配置手段によって配置された初期段階モデルのオブジェクトを仮想カメラから見た仮想世界の画像を仮想世界画像として生成した後、モーフィング処理手段によってモーフィング処理されたオブジェクトを仮想カメラから見た仮想世界の画像を仮想世界画像として生成してもよい。
【００４８】
上記によれば、撮像画像の一部から抜け出たオブジェクトが徐々に所定の立体に成長するような画像を表示することができる。
【００４９】
また、上記仮想世界画像生成手段は、オブジェクトを仮想世界における初期位置に配置した後、所定の規則で当該オブジェクトを仮想世界内で移動させて配置してもよい。
【００５０】
上記によれば、撮像画像の一部から抜け出たオブジェクトを移動させることによって、実世界の中で仮想世界のオブジェクトが移動しているような画像を表現することができる。
【００５１】
また、上記仮想世界画像生成手段は、モーフィング処理手段が最終段階モデルまでモーフィング処理した後に仮想世界内における当該オブジェクトの移動を開始し、当該移動開始後において所定の規則で当該オブジェクトを仮想世界内で移動させて配置してもよい。
【００５２】
上記によれば、撮像画像の一部から抜け出る際にオブジェクトが徐々に所定の立体に成長し、当該成長後に実世界の中で仮想世界のオブジェクトが移動するような画像を表現することができる。
【００５３】
また、上記オブジェクト初期配置手段は、所定領域の形状の主面を有する平面モデルを初期段階モデルとして設定し、当該主面にテクスチャをマッピングしたオブジェクトを初期位置に配置してもよい。
【００５４】
上記によれば、撮像画像の一部から抜け出る際、抜け出る初期段階は撮像画像と一体化したようなオブジェクトを表示することができる。
【００５５】
また、上記撮像画像取得手段は、画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。上記画像処理プログラムは、顔認識処理手段として、さらにコンピュータを機能させてもよい。顔認識処理手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに対して人物の顔を識別する顔認識処理を行う。上記仮想世界画像生成手段は、顔認識処理手段によって識別された顔の画像の少なくとも１つの領域を所定領域として設定し、当該所定領域として設定された顔の画像をテクスチャに設定して、繰り返し顔認識処理が行われることによって撮像画像内で識別された顔の画像と少なくとも一部が重なって表示装置に表示されるようにオブジェクトを仮想世界に配置して仮想世界画像を生成してもよい。上記画像合成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界画像を合成してもよい。上記表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界画像が合成された画像を表示装置に繰り返し表示してもよい。
【００５６】
上記によれば、表示される撮像画像において、オブジェクトとして抜け出た顔画像の移動に追従するように当該顔画像がテクスチャとして設定されたオブジェクトを表示することができる。
【００５７】
また、上記仮想世界画像生成手段は、顔認識処理手段によって識別された顔の画像を立体モデルにテクスチャマッピングしたオブジェクトを仮想世界に配置して仮想世界画像を生成してもよい。
【００５８】
上記によれば、顔画像が３次元モデルにテクスチャマッピングされたオブジェクトを登場させることができる。
【００５９】
また、上記仮想世界画像生成手段は、繰り返し顔認識処理が行われることによって撮像画像内から識別された顔の画像を用いて、当該顔の画像が識別される毎に立体モデルのテクスチャを更新してオブジェクトを仮想世界に配置してもよい。
【００６０】
上記によれば、顔画像を取得した被写体における変化（例えば、表情の変化）をオブジェクトに反映することができる。
【００６１】
また、本発明は、上記各手段を備える画像処理装置および画像処理システムや上記各手段で行われる動作を含む画像処理方法の形態で実施されてもよい。
【発明の効果】
【００６２】
本発明によれば、撮像画像と当該撮像画像の一部がテクスチャとなったオブジェクトが配置された仮想世界画像とを合成して新たな画像を生成することができる。
【図面の簡単な説明】
【００６３】
【図１】開いた状態におけるゲーム装置１０の一例を示す正面図
【図２】開いた状態におけるゲーム装置１０の一例を示す側面図
【図３Ａ】閉じた状態におけるゲーム装置１０の一例を示す左側面図
【図３Ｂ】閉じた状態におけるゲーム装置１０の一例を示す正面図
【図３Ｃ】閉じた状態におけるゲーム装置１０の一例を示す右側面図
【図３Ｄ】閉じた状態におけるゲーム装置１０の一例を示す背面図
【図４】ユーザがゲーム装置１０を両手で把持する様子の一例を示す図
【図５】ユーザがゲーム装置１０を片手で把持する様子の一例を示す図
【図６】ゲーム装置１０の内部構成の一例を示すブロック図
【図７】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示される各処理段階の一例を示す図
【図８】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示される各処理段階の一例を示す図
【図９】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示される各処理段階の一例を示す図
【図１０】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示される各処理段階の一例を示す図
【図１１】図１のゲーム装置１０で実行される画像処理プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図
【図１２】図１のゲーム装置１０で実行される画像処理プログラムを実行することによってゲーム装置１０が画像処理する動作の一例を示すフローチャート
【図１３】図１２のステップ５５で行われる敵オブジェクト処理の詳細な動作の一例を示すサブルーチン
【図１４】図１２のステップ５６で行われる弾オブジェクト処理の詳細な動作の一例を示すサブルーチン
【図１５】カメラ画像をレンダリングする処理の一例を説明するための説明図
【図１６】カメラ画像をレンダリングする際の座標の一例を説明するための説明図
【図１７】敵オブジェクトＥＯ、マスクオブジェクトＭＯ、および弾オブジェクトＢＯをレンダリングする処理の一例を説明するための説明図
【図１８】敵オブジェクトＥＯ、マスクオブジェクトＭＯ、および弾オブジェクトＢＯをレンダリングする際の座標の一例を説明するための説明図
【図１９Ａ】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩの他の例を示す図
【図１９Ｂ】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示された他の例を示す図
【図２０】図１のゲーム装置１０で実行される画像処理プログラムを実行することによって行われる敵オブジェクト処理の詳細な動作の他の例を示すサブルーチン
【図２１】図２０のステップ９２で行われる出現済処理の詳細な動作の一例を示すサブルーチン
【図２２】図２０のステップ９４で行われる出現中処理の詳細な動作の一例を示すサブルーチン
【図２３】図２０のステップ９６で行われる未出現処理の詳細な動作の一例を示すサブルーチン
【図２４】敵オブジェクトＥＯにモーフィング処理が行われて上側ＬＣＤ２２に表示された一例を示す図
【図２５Ａ】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩの他の例を示す図
【図２５Ｂ】図１の上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示された他の例を示す図
【図２６Ａ】赤色のりんごが撮像されたカメラ画像ＣＩが図１の上側ＬＣＤ２２に表示された一例を示す図
【図２６Ｂ】撮像された赤色のりんごに炎オブジェクトが配置されて図１の上側ＬＣＤ２２に表示された一例を示す図
【図２７】上側ＬＣＤ２２に表示されたカメラ画像ＣＩおよび敵オブジェクトＥＯ１〜ＥＯ３の一例を示す図
【図２８】上側ＬＣＤ２２に表示されたカメラ画像ＣＩから新たに敵オブジェクトＥＯｎが出現して表示された一例を示す図
【図２９】上側ＬＣＤ２２に表示されたカメラ画像ＣＩの撮像アングルが変化したり被写体が移動したりした場合の敵オブジェクトＥＯｎの動きの一例を示す図
【発明を実施するための形態】
【００６４】
（第１の実施形態）
図面を参照して、本発明の第１の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、画像処理装置の一例として携帯型のゲーム装置１０を用い、ゲーム装置１０で実行される画像処理プログラムを用いて説明する。なお、図１〜図３Ｄは、ゲーム装置１０の外観の一例を示す平面図である。ゲーム装置１０は、一例として携帯型のゲーム装置であり、図１〜図３Ｄに示すように折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０の一例を示す正面図である。図２は、開状態におけるゲーム装置１０の一例を示す右側面図である。図３Ａは、閉じた状態（閉状態）におけるゲーム装置１０の一例を示す左側面図である。図３Ｂは、閉状態におけるゲーム装置１０の一例を示す正面図である。図３Ｃは、閉状態におけるゲーム装置１０の一例を示す右側面図である。図３Ｄは、閉状態におけるゲーム装置１０の一例を示す背面図である。ゲーム装置１０は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
【００６５】
図１〜図３Ｄにおいて、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に連結されている。図１の例では、下側ハウジング１１および上側ハウジング２１は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置１０を使用する。そして、ユーザは、ゲーム装置１０を使用しない場合には閉状態としてゲーム装置１０を保管する。また、ゲーム装置１０は、上記閉状態および開状態のみでなく、下側ハウジング１１と上側ハウジング２１とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング２１を下側ハウジング１１に対して任意の角度で静止させることができる。
【００６６】
図１および図２に示されるように、下側ハウジング１１の上側長辺部分には、下側ハウジング１１の内側面（主面）１１Ｂに対して垂直な方向に突起する突起部１１Ａが設けられる。また、上側ハウジング２１の下側長辺部分には、上側ハウジング２１の下側面から当該下側面に垂直な方向に突起する突起部２１Ａが設けられる。下側ハウジング１１の突起部１１Ａと上側ハウジング２１の突起部２１Ａとが連結されることにより、下側ハウジング１１と上側ハウジング２１とが、折り畳み可能に接続される。
【００６７】
下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ（図１、図３Ａ〜図３Ｄ）、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００６８】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。下側ＬＣＤ１２は、下側ハウジング１１の中央に配置される。下側ＬＣＤ１２は、下側ハウジング１１の内側面（主面）に設けられ、下側ハウジング１１の内側面に設けられた開口部から下側ＬＣＤ１２の画面が露出する。そして、ゲーム装置１０を使用しない場合には上記閉状態としておくことによって、下側ＬＣＤ１２の画面が汚れたり傷ついたりすることを防止することができる。下側ＬＣＤ１２の画素数は、一例として、２５６ｄｏｔ×１９２ｄｏｔ（横×縦）である。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００６９】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル１３は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度とが一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図３Ｄに示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００７０】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、およびボタン１４Ｅは、十字状に配置される。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００７１】
アナログスティック１５は、方向を指示するデバイスであり、下側ハウジング１１の内側面の下側ＬＣＤ１２より左側領域の上部領域に設けられる。図１に示すように、十字ボタン１４Ａが下側ＬＣＤ１２より左側領域の下部領域に設けられ、アナログスティック１５が十字ボタン１４Ａの上方に設けられる。また、アナログスティック１５および十字ボタン１４Ａは、下側ハウジング１１を把持した左手の親指で操作可能な位置に設計される。また、アナログスティック１５を上部領域に設けたことにより、下側ハウジング１１を把持する左手の親指が自然と位置するところにアナログスティック１５が配され、十字ボタン１４Ａは、左手の親指を少し下にずらした位置に配される。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【００７２】
十字状に配置される、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、およびボタン１４Ｅの４つのボタンは、下側ハウジング１１を把持する右手の親指が自然と位置するところに配置される。また、これらの４つのボタンとアナログスティック１５とは、下側ＬＣＤ１２を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの４つのボタンを使用して方向指示入力をすることも可能である。
【００７３】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク（図６参照）が設けられ、当該マイクがゲーム装置１０の外部の音を検出する。
【００７４】
図３Ｂおよび図３Ｄに示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４Ｇは、下側ハウジング１１の上面の左端部に設けられ、Ｒボタン１４Ｈは、下側ハウジング１１の上面の右端部に設けられる。後述のように、Ｌボタン１４ＧおよびＲボタン１４Ｈは、撮像部のシャッターボタン（撮影指示ボタン）として機能する。また、図３Ａに示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００７５】
図３Ａに示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４６とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４６は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ４６は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。なお、上記コネクタおよびそのカバー部１１Ｃは、下側ハウジング１１の右側面に設けられてもよい。
【００７６】
図３Ｄに示されるように、下側ハウジング１１の上側面にはゲーム装置１０とゲームプログラムを記録した外部メモリ４５を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４５と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。外部メモリ４５がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口１１Ｄは、下側ハウジング１１の他の側面（例えば、右側面等）に設けられてもよい。
【００７７】
図１に示されるように、下側ハウジング１１の下側面には、ゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａが設けられる。また、図３Ｃに示されるように、下側ハウジング１１の右側面には、ゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は、他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１６Ｂは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図３Ｃ参照）。
【００７８】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００７９】
上側ハウジング２１には、上側ＬＣＤ２２、２つの外側撮像部２３（外側左撮像部２３ａおよび外側右撮像部２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００８０】
図１に示すように、上側ＬＣＤ２２は、上側ハウジング２１に収納される。上側ＬＣＤ２２は、横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。上側ＬＣＤ２２は、上側ハウジング２１の中央に配置される。上側ＬＣＤ２２の画面の面積は、一例として下側ＬＣＤ１２の画面の面積よりも大きく設定される。具体的には、上側ＬＣＤ２２の画面は、下側ＬＣＤ１２の画面よりも横長に設定される。すなわち、上側ＬＣＤ２２の画面のアスペクト比における横幅の割合は、下側ＬＣＤ１２の画面のアスペクト比における横幅の割合よりも大きく設定される。
【００８１】
上側ＬＣＤ２２の画面は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、上側ハウジング２１の内側面に設けられた開口部から上側ＬＣＤ２２の画面が露出する。また、図２に示すように、上側ハウジング２１の内側面は、透明なスクリーンカバー２７によって覆われている。スクリーンカバー２７は、上側ＬＣＤ２２の画面を保護するとともに、上側ＬＣＤ２２と上側ハウジング２１の内側面と一体的にさせ、これにより統一感を持たせている。上側ＬＣＤ２２の画素数は、一例として６４０ｄｏｔ×２００ｄｏｔ（横×縦）である。なお、本実施形態では、上側ＬＣＤ２２が液晶表示装置であるとしたが、例えばＥＬを利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００８２】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。上側ＬＣＤ２２は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側ＬＣＤ２２は、左目用画像と右目用画像とが所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。なお、上側ＬＣＤ２２は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側ＬＣＤ２２は、裸眼立体視可能な表示装置である。この場合、上側ＬＣＤ２２は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２は、パララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００８３】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）の総称である。外側左撮像部２３ａおよび外側右撮像部２３ｂの撮像方向は、いずれも外側面２１Ｄの外向きの法線方向である。また、外側左撮像部２３ａおよび外側右撮像部２３ｂは、いずれも、上側ＬＣＤ２２の表示面（内側面）の法線方向と１８０度反対の方向に設計される。すなわち、外側左撮像部２３ａの撮像方向および外側右撮像部２３ｂの撮像方向は、平行である。外側左撮像部２３ａと外側右撮像部２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、２つの外側撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）のいずれか一方を単独で用いて、外側撮像部２３を非ステレオカメラとして使用することも可能である。また、プログラムによっては、２つの外側撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部２３は、外側左撮像部２３ａおよび外側右撮像部２３ｂの２つの撮像部で構成される。外側左撮像部２３ａおよび外側右撮像部２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００８４】
図１の破線および図３Ｂの実線で示されるように、外側撮像部２３を構成する外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ＬＣＤ２２の画面の横方向と平行に並べられて配置される。すなわち、２つの外側左撮像部２３ａおよび外側右撮像部２３ｂを結んだ直線が上側ＬＣＤ２２の画面の横方向と平行になるように、外側左撮像部２３ａおよび外側右撮像部２３ｂが配置される。図１の破線２３ａおよび２３ｂは、上側ハウジング２１の内側面とは反対側の外側面に存在する外側左撮像部２３ａおよび外側右撮像部２３ｂをそれぞれ表している。図１に示すように、ユーザが上側ＬＣＤ２２の画面を正面から視認した場合に、外側左撮像部２３ａは左側に外側右撮像部２３ｂは右側にそれぞれ位置する。外側撮像部２３をステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部２３ａは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部２３ｂは、ユーザの右目で視認される右目用画像を撮像する。外側左撮像部２３ａおよび外側右撮像部２３ｂの間隔は、人間の両目の間隔程度に設定され、例えば、３０ｍｍ〜７０ｍｍの範囲で設定されてもよい。なお、外側左撮像部２３ａおよび外側右撮像部２３ｂの間隔は、この範囲に限らない。
【００８５】
なお、本実施例においては、外側左撮像部２３ａおよび外側右撮像部２３ｂは、ハウジングに固定されており、撮像方向を変更することはできない。
【００８６】
外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ＬＣＤ２２（上側ハウジング２１）の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ＬＣＤ２２を左右に２等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ハウジング２１の外側面であって、上側ＬＣＤ２２を外側面に投影した場合、投影した上側ＬＣＤ２２の画面の上端よりも上方に配置される。
【００８７】
このように、外側撮像部２３の２つの撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）が上側ＬＣＤ２２の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側ＬＣＤ２２を正視した場合に、外側撮像部２３それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部２３は、上側ＬＣＤ２２の画面の上端より上方の裏側の位置に配置されるため、外側撮像部２３と上側ＬＣＤ２２とが上側ハウジング２１の内部で干渉することがない。したがって、外側撮像部２３を上側ＬＣＤ２２の画面の裏側に配置する場合と比べて、上側ハウジング２１を薄く構成することが可能となる。
【００８８】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００８９】
図１に示すように、内側撮像部２４は、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方に配置され、上側ハウジング２１の左右方向に関して中央の位置（上側ハウジング２１（上側ＬＣＤ２２の画面）を左右に２等分する線の線上）に配置される。具体的には、図１および図３Ｂに示されるように、内側撮像部２４は、上側ハウジング２１の内側面であって、外側左撮像部２３ａおよび外側右撮像部２３ｂの中間の裏側の位置に配置される。すなわち、上側ハウジング２１の外側面に設けられた外側左撮像部２３ａおよび外側右撮像部２３ｂを上側ハウジング２１の内側面に投影した場合、当該投影した外側左撮像部２３ａおよび外側右撮像部２３ｂの中間に、内側撮像部２４が設けられる。図３Ｂで示される破線２４は、上側ハウジング２１の内側面に存在する内側撮像部２４を表している。
【００９０】
このように、内側撮像部２４は、外側撮像部２３とは反対方向を撮像する。内側撮像部２４は、上側ハウジング２１の内側面であって、２つの外側撮像部２３の中間位置となる裏側に設けられる。これにより、ユーザが上側ＬＣＤ２２を正視した際、内側撮像部２４でユーザの顔を正面から撮像することができる。また、外側左撮像部２３ａおよび外側右撮像部２３ｂと内側撮像部２４とが上側ハウジング２１の内部で干渉することがないため、上側ハウジング２１を薄く構成することが可能となる。
【００９１】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。図１〜図３Ｄに示されるように、３Ｄ調整スイッチ２５は、上側ハウジング２１の内側面および右側面の端部に設けられ、ユーザが上側ＬＣＤ２２を正視した場合に、当該３Ｄ調整スイッチ２５を視認できる位置に設けられる。３Ｄ調整スイッチ２５は、所定方向（例えば、上下方向）の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側ＬＣＤ２２の表示モードが設定される。
【００９２】
例えば、３Ｄ調整スイッチ２５のスライダが最下点位置に配置されている場合、上側ＬＣＤ２２が平面表示モードに設定され、上側ＬＣＤ２２の画面には平面画像が表示される。なお、上側ＬＣＤ２２を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側ＬＣＤ２２は立体表示モードに設定される。この場合、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【００９３】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。例えば、３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。図１に示されるように、３Ｄインジケータ２６は、上側ハウジング２１の内側面に設けられ、上側ＬＣＤ２２の画面近傍に設けられる。このため、ユーザが上側ＬＣＤ２２の画面を正視した場合、ユーザは３Ｄインジケータ２６を視認しやすい。したがって、ユーザは、上側ＬＣＤ２２の画面を視認している状態でも、上側ＬＣＤ２２の表示モードを容易に認識することができる。
【００９４】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４４からの音声がこのスピーカ孔２１Ｅから出力される。
【００９５】
次に、図４および図５を参照して、ゲーム装置１０の使用状態の一例を示す。なお、図４は、ユーザがゲーム装置１０を両手で把持する様子の一例を示す図である。図５は、ユーザがゲーム装置１０を片手で把持する様子の一例を示す図である。
【００９６】
図４に示されるように、ユーザは、下側ＬＣＤ１２および上側ＬＣＤ２２がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング１１の側面および外側面（内側面の反対側の面）を把持する。このように把持することで、ユーザは、下側ハウジング１１を把持したまま、各操作ボタン１４Ａ〜１４Ｅおよびアナログスティック１５に対する操作を親指で行い、Ｌボタン１４ＧおよびＲ１４Ｈに対する操作を人差し指で行うことができる。また、図５に示されるように、タッチパネル１３に対して入力を行う場合には、下側ハウジング１１を把持していた一方の手を離して他方の手のみで下側ハウジング１１を把持することによって、当該一方の手でタッチパネル１３に対する入力を行うことができる。
【００９７】
次に、図６を参照して、ゲーム装置１０の内部構成を説明する。なお、図６は、ゲーム装置１０の内部構成の一例を示すブロック図である。
【００９８】
図６において、ゲーム装置１０は、上述した各構成部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、角速度センサ４０、電源回路４１、およびインターフェイス回路（Ｉ／Ｆ回路）４２等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００９９】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４５やデータ保存用内部メモリ３５）に記憶されている。情報処理部３１のＣＰＵ３１１は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２および／または下側ＬＣＤ１２に出力し、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像が表示される。
【０１００】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、およびデータ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４５を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４６を着脱自在に接続するためのインターフェイスである。
【０１０１】
メインメモリ３２は、情報処理部３１（ＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部（外部メモリ４５や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【０１０２】
外部メモリ４５は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４５は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４５が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４５に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４６は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４６には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４６がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４６に記憶された画像を読み込み、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像を表示することができる。
【０１０３】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【０１０４】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は、情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【０１０５】
情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（本実施形態では、ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、例えば下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、ゲーム装置１０の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸または２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを算出する。
【０１０６】
情報処理部３１には、角速度センサ４０が接続される。角速度センサ４０は、ゲーム装置１０の３軸（本実施形態では、ｘｙｚ軸）周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ（角速度データ）を情報処理部３１へ出力する。角速度センサ４０は、例えば下側ハウジング１１の内部に設けられる。情報処理部３１は、角速度センサ４０から出力された角速度データを受信して、ゲーム装置１０の姿勢や動きを算出する。
【０１０７】
情報処理部３１には、ＲＴＣ３８および電源回路４１が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４１は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【０１０８】
情報処理部３１には、Ｉ／Ｆ回路４２が接続される。Ｉ／Ｆ回路４２には、マイク４３、スピーカ４４、およびタッチパネル１３が接続される。具体的には、Ｉ／Ｆ回路４２には、図示しないアンプを介してスピーカ４４が接続される。マイク４３は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４２に出力する。アンプは、Ｉ／Ｆ回路４２からの音声信号を増幅し、音声をスピーカ４４から出力させる。Ｉ／Ｆ回路４２は、マイク４３およびスピーカ４４（アンプ）の制御を行う音声制御回路と、タッチパネル１３の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置（タッチ位置）の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、およびタッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われたタッチ位置を知ることができる。
【０１０９】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【０１１０】
下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（ＧＰＵ３１２）の指示にしたがってって画像を表示する。本実施形態では、情報処理部３１は、手書き画像入力操作用の画像を下側ＬＣＤ１２に表示させ、外側撮像部２３および内側撮像部２４のいずれかから取得した画像を上側ＬＣＤ２２に表示させる。すなわち、情報処理部３１は、上側ＬＣＤ２２に外側撮像部２３で撮像した右目用画像と左目用画像とを用いた立体画像（立体視可能な画像）を表示させたり、内側撮像部２４で撮像した平面画像を上側ＬＣＤ２２に表示させたり、上側ＬＣＤ２２に外側撮像部２３で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【０１１１】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された（外側撮像部２３で撮像された）右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【０１１２】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示にしたがってって画像を撮像し、撮像した画像データを情報処理部３１に出力する。本実施形態では、情報処理部３１は、外側撮像部２３および内側撮像部２４のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部３１に送る。具体的には、ユーザによるタッチパネル１３や操作ボタン１４を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部３１（ＣＰＵ３１１）が検知し、情報処理部３１が外側撮像部２３または内側撮像部２４に対して撮像指示を行う。
【０１１３】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダの位置に応じた電気信号を情報処理部３１に送信する。
【０１１４】
３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。
【０１１５】
次に、ゲーム装置１０で実行される画像処理プログラムによる具体的な画像処理動作を説明する前に、図７〜図１０を参照して当該画像処理動作によって上側ＬＣＤ２２に表示される表示形態例について説明する。なお、図７〜図１０は、上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示される各処理段階の一例を示す図である。なお、説明を簡単にするために、上側ＬＣＤ２２には、外側撮像部２３および内側撮像部２４のいずれかから取得したカメラ画像ＣＩに基づいた、実世界の平面画像（上述した立体視可能な画像とは反対の意味での平面視の画像）が表示される例を用いる。
【０１１６】
図７において、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラ（例えば、外側撮像部２３）によって撮像された実世界画像であるカメラ画像ＣＩが表示されている。例えば、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラで撮像されたリアルタイムの実世界画像（動画像）が表示される。
【０１１７】
カメラ画像ＣＩが上側ＬＣＤ２２に表示された状態において、敵オブジェクトＥＯが出現する条件を満たした場合、上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯとなる範囲の画像が切り取られる（図８の状態）。図８に示した一例では、敵オブジェクトＥＯとなる切り取り範囲は、カメラ画像ＣＩに対する任意の矩形範囲に設定される。
【０１１８】
図９に示すように、敵オブジェクトＥＯは、カメラ画像ＣＩから切り取られた上記切り取り範囲の画像が主面に貼り付けられたボード状の物体となって移動する。例えば、敵オブジェクトＥＯは、カメラ画像ＣＩから切り取られて抜け出した平板物体となって、カメラ画像ＣＩを撮像している実カメラ、すなわちゲーム装置１０を操作しているユーザの方へ向かって実空間内を移動しているように上側ＬＣＤ２２に表示される。つまり、ユーザ自身が撮像している実世界の撮像画像における所定の範囲が敵オブジェクトＥＯとなって撮像者、すなわちユーザに向かってくるような画像が上側ＬＣＤ２２に表示される。例えば、上記切り取り範囲の画像をテクスチャとしてマッピングされた平面ポリゴン（敵オブジェクトＥＯ）を仮想空間に配置し、仮想カメラから敵オブジェクトＥＯを見た仮想空間の画像（例えば、コンピュータグラフィックス画像；以下、仮想世界画像と記載する）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、敵オブジェクトＥＯが実空間内に配置されているように上側ＬＣＤ２２に表示される。そして、ゲーム装置１０を用いた攻撃操作（例えば、ボタン１４Ｂ（Ａボタン）の押下）に応じて、所定の方向（例えば、カメラ画像ＣＩを撮像している実カメラの視線方向であり、仮想カメラの視線方向）に弾オブジェクトＢＯが発射され、敵オブジェクトＥＯがユーザの攻撃対象となる。
【０１１９】
また、カメラ画像ＣＩにおける敵オブジェクトＥＯが抜け出した跡には、所定のマスク画像ＭＩが表示される。一例として、マスク画像ＭＩは、敵オブジェクトＥＯが抜け出した上記切り取り範囲を、所定の色で塗りつぶして覆う画像で設定される。他の例として、マスク画像ＭＩは、敵オブジェクトＥＯが抜け出した上記切り取り範囲を、カメラ画像ＣＩにおいて当該範囲と隣接する周辺に表示されているいずれかの色（以下、単に周辺の色と記載することがある）で塗りつぶして覆う画像で設定される。例えば、上記所定の色または上記周辺の色で塗りつぶされた平面ポリゴン（マスクオブジェクトＭＯ）を上記切り取り範囲の位置に対応する上記仮想空間内の位置に配置し、仮想カメラからマスクオブジェクトＭＯを見た仮想空間の画像（仮想世界画像）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、マスク画像ＭＩが上記切り取り範囲を覆って配置されているように上側ＬＣＤ２２に表示される。
【０１２０】
以下の説明においては、マスクオブジェクトＭＯが配置された仮想世界画像を実世界画像に合成することによって、上記切り取り範囲を覆ってマスク画像ＭＩが表示される例を用いるが、他の方法によって上記切り取り範囲を覆うようにマスク画像ＭＩを表示してもかまわない。例えば、カメラ画像ＣＩから得られる実世界画像における上記切り取り範囲を所定の色や周辺の色で塗りつぶすことによって、マスク画像ＭＩを表示してもかまわない。後述により明らかとなるが、上記実世界画像は、一例として上記カメラ画像がテクスチャとしてマッピングされた平面ポリゴンを生成し、仮想カメラから平行投影で当該平面ポリゴンをレンダリングすることによって生成される。この場合、上記カメラ画像における上記切り取り範囲を所定の色や周辺の色で塗りつぶして上記テクスチャを設定したり、上記テクスチャをマッピングした後に上記切り取り範囲を所定の色や周辺の色で塗りつぶした画像を貼り付けたりすることによって、上記切り取り範囲がマスク画像ＭＩに置換された実世界画像を生成することができる。
【０１２１】
ここで、上述したように、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が表示されている。したがって、実空間内においてゲーム装置１０の方向や位置を変えることによって、ゲーム装置１０で撮像される撮像範囲が変わるため、上側ＬＣＤ２２に表示されるカメラ画像ＣＩも変化する。この場合、ゲーム装置１０は、実空間内におけるゲーム装置１０の動きに応じて、上記仮想空間内における上記仮想カメラの位置や方向を変化させる。これによって、実空間内に配置されているように表示されている敵オブジェクトＥＯやマスク画像ＭＩは、実空間内におけるゲーム装置１０の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。例えば、図９に示すようなカメラ画像ＣＩを撮像している状態から、ゲーム装置１０の実カメラによる撮像方向を左へ変えることによって図１０に示すようなカメラ画像ＣＩが撮像されているとする。この場合、上側ＬＣＤ２２に表示されている敵オブジェクトＥＯやマスク画像ＭＩの表示位置が、実カメラの撮像方向を変えた方向の逆方向（右方向）に移動、すなわち敵オブジェクトＥＯおよびマスクオブジェクトＭＯが配置されている仮想空間の仮想カメラの方向が実カメラと同じ左方向に移動する。したがって、敵オブジェクトＥＯやマスク画像ＭＩは、ゲーム装置１０の方向や位置が変化して実カメラの撮像範囲が変わったとしても、あたかもカメラ画像ＣＩで表現された実空間内に配置されているように上側ＬＣＤ２２に表示される。
【０１２２】
次に、図１１〜図１４を参照して、ゲーム装置１０で実行される画像処理プログラムによる具体的な処理動作について説明する。なお、図１１は、画像処理プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図である。図１２は、当該画像処理プログラムを実行することによってゲーム装置１０が画像処理する動作の一例を示すフローチャートである。図１３は、図１２のステップ５５で行われる敵オブジェクト処理の詳細な動作の一例を示すサブルーチンである。図１４は、図１２のステップ５６で行われる弾オブジェクト処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置１０に内蔵されるメモリ（例えば、データ保存用内部メモリ３５）や外部メモリ４５またはデータ保存用外部メモリ４６に含まれており、ゲーム装置１０の電源がオンになったときに、内蔵メモリから、または外部メモリＩ／Ｆ３３やデータ保存用外部メモリＩ／Ｆ３４を介して外部メモリ４５またはデータ保存用外部メモリ４６からメインメモリ３２に読み出されて、ＣＰＵ３１１によって実行される。
【０１２３】
図１１において、メインメモリ３２には、内蔵メモリ、外部メモリ４５、またはデータ保存用外部メモリ４６から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図１１において、メインメモリ３２のデータ記憶領域には、操作データＤａ、カメラ画像データＤｂ、実世界画像データＤｃ、切り取り範囲データＤｄ、敵オブジェクトデータＤｅ、マスクオブジェクトデータＤｆ、弾オブジェクトデータＤｇ、得点データＤｈ、動きデータＤｉ、仮想カメラデータＤｊ、レンダリング画像データＤｋ、および表示画像データＤｌ等が格納される。また、メインメモリ３２のプログラム記憶領域には、画像処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【０１２４】
操作データＤａは、ユーザがゲーム装置１０を操作した操作情報を示すデータである。操作データＤａは、操作子データＤａ１および角速度データＤａ２を含んでいる。操作子データＤａ１は、ユーザがゲーム装置１０の操作ボタン１４やアナログスティック１５等の操作子を操作したことを示すデータである。角速度データＤａ２は、角速度センサ４０によって検出された角速度を示すデータである。例えば、角速度データＤａ２には、角速度センサ４０が検出したｘ軸周りの角速度を示すｘ軸周り角速度データ、ｙ軸周りの角速度を示すｙ軸周り角速度データ、およびｚ軸周りの角速度を示すｚ軸周り角速度データが含まれる。例えば、操作ボタン１４やアナログスティック１５からの操作データや角速度センサ４０からの角速度データは、ゲーム装置１０が処理する時間単位（例えば、１／６０秒）毎に取得され、当該取得に応じて操作子データＤａ１および角速度データＤａ２に格納されて更新される。
【０１２５】
なお、後述する処理フローでは、操作子データＤａ１および角速度データＤａ２が処理周期である１フレーム毎にそれぞれ更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、操作ボタン１４やアナログスティック１５等の操作子をユーザが操作したことを検出する周期毎に操作子データＤａ１を更新し、当該更新された操作子データＤａ１を処理周期毎に利用する態様でもかまわない。また、角速度センサ４０の角速度検出周期毎に角速度データＤａ２を更新し、当該更新された角速度データＤａ２を処理周期毎に利用する態様でもかまわない。この場合、操作子データＤａ１や角速度データＤａ２を更新するそれぞれの周期と、処理周期とが異なることになる。
【０１２６】
カメラ画像データＤｂは、外側撮像部２３および内側撮像部２４のいずれかが撮像したカメラ画像を示すデータである。後述する処理の説明においては、カメラ画像を取得するステップにおいて外側撮像部２３および内側撮像部２４のいずれかが撮像したカメラ画像を用いて、カメラ画像データＤｂを更新する態様を用いる。なお、外側撮像部２３または内側撮像部２４が撮像し、撮像されたカメラ画像を用いてカメラ画像データＤｂを更新する周期は、ゲーム装置１０が処理する時間単位（例えば、１／６０秒）と同じでもいいし、当該時間単位より短い時間でもかまわない。ゲーム装置１０が処理する周期よりカメラ画像データＤｂを更新する周期が短い場合、後述する処理とは独立して適宜カメラ画像データＤｂを更新してもかまわない。この場合、後述するカメラ画像を取得するステップにおいて、カメラ画像データＤｂが示す最新のカメラ画像を常に用いて処理すればよい。
【０１２７】
実世界画像データＤｃは、ゲーム装置１０の実カメラ（外側撮像部２３または内側撮像部２４）が撮像したカメラ画像を示す実世界画像を生成するためのデータである。例えば、実世界画像データＤｃは、実世界画像を生成するための平面ポリゴンのデータ、当該平面ポリゴンにマッピングするためのカメラ画像のテクスチャデータ、および当該平面ポリゴンの位置を示すデータ等を含んでいる。
【０１２８】
切り取り範囲データＤｄは、敵オブジェクトＥＯが出現する際、カメラ画像ＣＩから切り取る範囲を示すデータである。
【０１２９】
敵オブジェクトデータＤｅは、敵オブジェクトＥＯに関するデータであり、テクスチャデータＤｅ１を含んでいる。テクスチャデータＤｅ１は、敵オブジェクトＥＯに対応するポリゴンにマッピングするためのテクスチャデータであり、例えばカメラ画像ＣＩから切り取られた範囲の静止画像を示すデータである。また、敵オブジェクトデータＤｅは、敵オブジェクトＥＯに対応するポリゴン（例えば、平面ポリゴン）のデータ、当該ポリゴンの配置方向や配置位置を示すデータ、敵オブジェクトＥＯの移動速度や移動方向を示すデータ等も含んでいる。
【０１３０】
マスクオブジェクトデータＤｆは、マスクオブジェクトＭＯに関するデータである。例えば、マスクオブジェクトデータＤｆは、マスクオブジェクトＭＯに対応するポリゴン（例えば、平面ポリゴン）のデータ、当該ポリゴンにマッピングするためのテクスチャデータ、および当該ポリゴンの方向や位置を示すデータ等を含んでいる。
【０１３１】
弾オブジェクトデータＤｇは、攻撃操作に応じて発射される弾オブジェクトＢＯに関するデータである。例えば、弾オブジェクトデータＤｇは、弾オブジェクトＢＯの位置を示すデータおよび弾オブジェクトＢＯの移動速度や移動方向（例えば、移動速度ベクトル）を示すデータ等を含んでいる。
【０１３２】
得点データＤｈは、敵オブジェクトＥＯが登場するゲームの得点を示すデータである。例えば、ゲームの得点は、攻撃操作によって敵オブジェクトＥＯを倒すことによって加点され、敵オブジェクトＥＯがユーザの位置に到達することによって減点される。
【０１３３】
動きデータＤｉは、実空間におけるゲーム装置１０の動きを示すデータである。一例として、ゲーム装置１０の動きは、角速度センサ４０によって検出された角速度によって算出される。
【０１３４】
仮想カメラデータＤｊは、仮想空間に設定される仮想カメラに関するデータである。例えば、仮想空間における仮想カメラの位置や方向は、動きデータＤｉが示すゲーム装置１０の動きに応じて変化する。
【０１３５】
レンダリング画像データＤｋは、カメラ画像のレンダリング画像データＤｋ１および仮想空間のレンダリング画像データＤｋ２を含んでいる。カメラ画像のレンダリング画像データＤｋ１は、カメラ画像のテクスチャがマッピングされた平面ポリゴンを、平行投影でレンダリングすることによって得られる実世界画像を示すデータである。仮想空間のレンダリング画像データＤｋ２は、敵オブジェクトＥＯおよびマスクオブジェクトＭＯが配置された仮想空間を透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【０１３６】
表示画像データＤｌは、上側ＬＣＤ２２に表示される表示画像を示すデータである。例えば、上側ＬＣＤ２２に表示される表示画像は、上記仮想世界画像を優先して上記実世界画像上に上記仮想世界画像を合成することによって生成される。
【０１３７】
次に、図１２を参照して、情報処理部３１の動作について説明する。まず、ゲーム装置１０の電源（電源ボタン１４Ｆ）がＯＮされると、ＣＰＵ３１１によってブートプログラム（図示せず）が実行され、これにより内蔵メモリまたは外部メモリ４５やデータ保存用外部メモリ４６に格納されているプログラムがメインメモリ３２にロードされる。そして、当該ロードされたプログラムが情報処理部３１（ＣＰＵ３１１）で実行されることによって、図１２に示すステップ（図１２〜図１４では「Ｓ」と略称する）が実行される。なお、図１２〜図１４においては、本発明に直接関連しない処理についての記載を省略する。
【０１３８】
図１２において、情報処理部３１は、画像処理における初期設定を行い（ステップ５１）、次のステップに処理を進める。例えば、情報処理部３１は、仮想世界画像を生成するための仮想カメラの初期位置や初期方向を設定し、当該仮想カメラが配置される仮想空間の座標軸（例えば、ＸＹＺ軸）を設定する。
【０１３９】
次に、情報処理部３１は、ゲーム装置１０の実カメラからカメラ画像を取得し（ステップ５２）、次のステップに処理を進める。例えば、情報処理部３１は、現在選択されている撮像部（外側撮像部２３または内側撮像部２４）によって撮像されたカメラ画像を用いて、カメラ画像データＤｂを更新する。
【０１４０】
次に、情報処理部３１は、上記ステップ５２で取得したカメラ画像をレンダリングする処理を行い（ステップ５３）、次のステップに処理を進める。例えば、情報処理部３１は、上記ステップ５２で取得したカメラ画像を用いて実世界画像データＤｃを更新し、レンダリングされた画像を用いてカメラ画像のレンダリング画像データＤｋ１を更新する。以下、図１５および図１６を用いてカメラ画像をレンダリングする処理例について説明する。
【０１４１】
本実施形態においては、図１５に示すように、ゲーム装置１０の実カメラから得られたカメラ画像をテクスチャに設定し、当該テクスチャがマッピングされた平面ポリゴンを生成する。そして、仮想カメラＣ１から、平行投影で上記平面ポリゴンをレンダリングした画像を実世界画像として設定する。ここで、上側ＬＣＤ２２の表示画面の中心に仮想カメラＣ１が配置されるとともに、上側ＬＣＤ２２の表示画面全面に、ゲーム装置１０の実カメラから得られたカメラ画像全面を表示する場合の実世界画像生成方法の一例について説明する。
【０１４２】
まず、上記平面ポリゴンを配置する仮想空間の座標の１単位に対して、ｉピクセルのテクスチャをマッピングする平面ポリゴンを考える。この場合、上記座標の１単位×１単位の領域に対して、ｉピクセル×ｉピクセルのテクスチャがマッピングされることになる。そして、上側ＬＣＤ２２の表示画面が横Ｗｄｏｔ×縦Ｈｄｏｔであり、Ｗｄｏｔ×Ｈｄｏｔの表示画面全面に上記カメラ画像のテクスチャ全面を対応させて、当該表示画面上の１ｄｏｔと当該テクスチャの１ピクセルとが対応するように平面ポリゴンを配置するためには、図１６に示すように上記座標を定めればよい。すなわち、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンの幅がＷ／ｉ座標分となり、平面ポリゴンの縦がＨ／ｉ座標分となるように、当該平面ポリゴンを配置する仮想空間のＸＹ座標を設定する。そして、上記テクスチャがマッピングされた平面ポリゴンの主面中心を仮想空間のＸＹ座標の原点に一致させ、当該平面ポリゴンの横方向がＸ軸方向（右方向がＸ軸正方向）となり、当該平面ポリゴンの縦方向がＹ軸方向（上方向がＹ軸正方向）となるように当該平面ポリゴンを配置する。この場合、上記テクスチャがマッピングされた平面ポリゴンの主面における右上角位置が（Ｘ，Ｙ）＝（Ｗ／２ｉ，Ｈ／２ｉ）に配置され、右下角位置が（Ｘ，Ｙ）＝（Ｗ／２ｉ，−Ｈ／２ｉ）に配置され、左上角位置が（Ｘ，Ｙ）＝（−Ｗ／２ｉ，Ｈ／２ｉ）に配置され、左下角位置が（Ｘ，Ｙ）＝（−Ｗ／２ｉ，−Ｈ／２ｉ）に配置されることになる。このように表示画面上の１ｄｏｔとカメラ画像（テクスチャ）の１ピクセルとが対応するように、仮想空間の座標に配置された平面ポリゴンを平行投影でレンダリングすることによって、ゲーム装置１０の実カメラから得られたカメラ画像に対応する実世界画像が生成される。
【０１４３】
図１２に戻り、情報処理部３１は、操作データを取得し（ステップ５４）、次のステップに処理を進める。例えば、情報処理部３１は、操作ボタン１４やアナログスティック１５を操作したことを示すデータを取得して、操作子データＤａ１を更新する。また、情報処理部３１は、角速度センサ４０によって検出された角速度を示す角速度データを取得して、角速度データＤａ２を更新する。
【０１４４】
次に、情報処理部３１は、敵オブジェクトに関する処理を行い（ステップ５５）、次のステップに処理を進める。以下、図１３を参照して、敵オブジェクト処理について説明する。
【０１４５】
図１３において、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしているか否かを判断する（ステップ７２）。例えば、敵オブジェクトＥＯが出現する条件は、所定時間毎に敵オブジェクトＥＯが出現してもいいし、敵オブジェクトＥＯが仮想世界から消滅したことに応じて新たな敵オブジェクトＥＯが出現してもいいし、カメラ画像内で所定の物体が識別された場合に敵オブジェクトＥＯが出現してもいいし、ランダムのタイミングで敵オブジェクトＥＯを出現させてもよい。そして、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしている場合、次のステップ７３に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしていない場合、次のステップ７７に処理を進める。
【０１４６】
ステップ７３において、情報処理部３１は、上記ステップ５２で取得したカメラ画像に対する切り取り範囲を決定して、次のステップに処理を進める。例えば、情報処理部３１は、カメラ画像データＤｂに格納されているカメラ画像に対して、任意の範囲（例えば、矩形範囲）を切り取り範囲に設定し、当該切り取り範囲内のカメラ画像を示すデータを用いて切り取り範囲データＤｄを更新する。
【０１４７】
なお、上記ステップ７３で決定される切り取り範囲は、上記ステップ５２で取得したカメラ画像に対して抽出される境界に沿って切り取り範囲を設定してもかまわない。例えば、上記カメラ画像に対して画像分析を行って、当該画像内における色と色との境界や濃度の差が閾値以上となる境界等を抽出し、抽出された境界の少なくとも一部を用いて上記切り取り範囲を設定する。
【０１４８】
次に、情報処理部３１は、上記ステップ７３で決定した切り取り範囲内のカメラ画像を、敵オブジェクトＥＯのテクスチャに設定し（ステップ７４）、次のステップに処理を進める。例えば、情報処理部３１は、切り取り範囲データＤｄが示す切り取り範囲内のカメラ画像を敵オブジェクトＥＯのテクスチャに設定し、当該設定されたテクスチャを用いてテクスチャデータＤｅ１を更新する。
【０１４９】
次に、情報処理部３１は、上記ステップ７３で決定した切り取り範囲に応じた敵オブジェクトＥＯおよびマスクオブジェクトＭＯを設定し（ステップ７５）、次のステップに処理を進める。例えば、情報処理部３１は、切り取り範囲データＤｄが示す切り取り範囲に応じて、敵オブジェクトＥＯに対応する平面ポリゴンのサイズおよび形状を設定し、当該設定されたパラメータを用いて敵オブジェクトデータＤｅを更新する。また、情報処理部３１は、切り取り範囲データＤｄが示す切り取り範囲に応じて、マスクオブジェクトＭＯに対応する平面ポリゴンのサイズおよび形状を設定し、当該平面ポリゴンを塗りつぶす色を所定の色（例えば、黒）や上記ステップ５２で取得したカメラ画像における当該切り取り範囲に隣接する周辺のいずれかの色に設定して、当該設定されたパラメータを用いてマスクオブジェクトデータＤｆを更新する。
【０１５０】
なお、敵オブジェクトＥＯに対応するポリゴンは、平面ポリゴン以外の形状の立体ポリゴンでもかまわない。例えば、敵オブジェクトＥＯに対応するポリゴンは、所定の厚さを有する平板ポリゴンや予め定められた形状のポリゴン（例えば、ミサイル等の武器形状を有するポリゴン）であってもかまわない。また、敵オブジェクトＥＯに対応するポリゴンは、球体などの曲面を有するポリゴンであってもよい。
【０１５１】
次に、情報処理部３１は、新たに敵オブジェクトＥＯおよびマスクオブジェクトＭＯを仮想空間に配置して（ステップ７６）、次のステップ７７に処理を進める。例えば、情報処理部３１は、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン（図１６参照）における切り取り範囲に重ね合わされて透視投影される位置に、敵オブジェクトＥＯおよびマスクオブジェクトＭＯを配置し、当該配置位置を用いて敵オブジェクトデータＤｅおよびマスクオブジェクトデータＤｆを更新する。以下、図１７および図１８を用いて、敵オブジェクトＥＯおよびマスクオブジェクトＭＯを仮想空間に配置する例について説明する。
【０１５２】
本実施形態においては、図１７に示すように、仮想カメラＣ２から、透視投影で敵オブジェクトＥＯおよびマスクオブジェクトＭＯをレンダリングした画像を仮想世界画像として生成する。ここで、敵オブジェクトＥＯが上側ＬＣＤ２２に表示されたカメラ画像から抜け出るように表現し、当該抜け出た跡にマスクオブジェクトＭＯを貼り付けるためには、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン（図１６参照）における切り取り範囲に、敵オブジェクトＥＯやマスクオブジェクトＭＯを重ね合わせて透視投影する必要がある。
【０１５３】
原点から（Ｘ，Ｙ，Ｚ）＝（０，０，−１）方向に敵オブジェクトＥＯおよびマスクオブジェクトＭＯを透視投影することを考える。この場合、図１８に示すＺ＝Ｚ０の位置にオブジェクトを配置すれば、当該オブジェクトにおけるテクスチャ１ピクセルあたりの表示画面内の大きさが、当該表示画面の１ｄｏｔに相当することになる。ここで、Ｚ＝Ｚ０の位置は、敵オブジェクトＥＯおよびマスクオブジェクトＭＯを透視投影する仮想カメラＣ２のＹ軸方向の画角をθとした場合に、仮想カメラＣ２の注視点からＹ軸正方向への表示範囲の長さがＨ／２ｉとなる位置である。なお、上述したように、Ｈは上側ＬＣＤ２２の表示画面における縦のドット数であり、ｉは仮想空間の座標の１単位に対してマッピングするテクスチャのピクセル数である。そして、仮想カメラＣ２の中心からＺ＝Ｚ０の位置までの距離をＤ（Ｄ＞０）とすると、以下の数式が成立する。
ｔａｎθ＝（Ｈ／２ｉ）／Ｄ＝Ｈ／２Ｄｉ
【０１５４】
したがって、敵オブジェクトＥＯやマスクオブジェクトＭＯを透視投影して仮想世界画像を生成する場合、当該仮想世界画像を生成する仮想カメラＣ２の設定を
Ｙ軸方向の画角θ＝ｔａｎ-1（Ｈ／２Ｄｉ）
アスペクト比＝Ｗ：Ｈ
とする。そして、マスクオブジェクトＭＯや上側ＬＣＤ２２に表示されたカメラ画像から抜け出る時点の敵オブジェクトＥＯを表す大きさｗ×ｈの平面ポリゴンを、仮想カメラＣ２からのビュー座標（Ｘ０，Ｙ０，Ｚ０）に配置すると、図１６に示した座標上における位置（Ｘ０，Ｙ０）に大きさｗ×ｈで配置されて表示される。なお、マスクオブジェクトＭＯおよび敵オブジェクトＥＯを奥行方向に対して同じ位置に配置することによって、両者の表示が不安定になる場合は、マスクオブジェクトＭＯの奥行位置に対して敵オブジェクトＥＯの奥行位置を少し前（仮想カメラＣ２側）に設定してもかまわない。
【０１５５】
図１３に戻り、ステップ７７において、情報処理部３１は、仮想空間に配置されている敵オブジェクトＥＯを移動させ、次のステップに処理を進める。一例として、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置を、仮想カメラＣ２の方向へ所定距離だけ近づけて更新し、更新後の敵オブジェクトＥＯの位置を用いて敵オブジェクトデータＤｅを更新する。他の例として、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置を、敵オブジェクトＥＯに対して定められた移動方向および移動速度に基づいて更新し、更新後の敵オブジェクトＥＯの位置を用いて敵オブジェクトデータＤｅを更新する。また、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの配置方向を、所定の方向に所定の角度だけ更新し、更新後の敵オブジェクトＥＯの配置角度を用いて敵オブジェクトデータＤｅを更新する。
【０１５６】
次に、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達したか否かを判断する（ステップ７８）。例えば、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置を用いて、敵オブジェクトＥＯを透視投影する仮想カメラＣ２の位置に敵オブジェクトＥＯの位置が到達したか否かを判断する。そして、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達した場合、次のステップ７９に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【０１５７】
ステップ７９において、情報処理部３１は、減点処理を行って、当該サブルーチンによる処理を終了する。例えば、上記減点処理においては、情報処理部３１は、得点データＤｈが示すゲームの得点を所定数だけ減点し、減点後の得点を用いて得点データＤｈを更新する。また、上記減点処理においては、情報処理部３１は、上記仮想カメラの位置まで到達した敵オブジェクトＥＯを仮想空間から消滅させる処理（例えば、仮想カメラの位置まで到達した敵オブジェクトＥＯに関する敵オブジェクトデータＤｅを初期化し、当該敵オブジェクトＥＯが仮想空間に存在しない状態にする）を行う。なお、上記減点処理において、仮想カメラの位置まで到達した敵オブジェクトＥＯが出現した位置に貼り付けられているマスクオブジェクトＭＯについては、仮想空間内に配置したままでもいいし、当該敵オブジェクトＥＯを消滅させる際に同時に消滅させてもかまわない。また、敵オブジェクトＥＯがマスクオブジェクトＭＯの位置まで戻るように移動表示した後、マスクオブジェクトＭＯを消滅させてもよい。
【０１５８】
図１２に戻り、上記ステップ５５における敵オブジェクトに関する処理の後、情報処理部３１は、弾オブジェクトに関する処理を行い（ステップ５６）、次のステップに処理を進める。以下、図１４を参照して、弾オブジェクト処理について説明する。
【０１５９】
図１４において、情報処理部３１は、設定されている移動速度ベクトルに応じて、仮想空間内で弾オブジェクトＢＯを移動させ（ステップ８１）、次のステップに処理を進める。例えば、情報処理部３１は、弾オブジェクトデータＤｇに設定されている弾オブジェクトＢＯの位置および移動速度ベクトルに応じて、弾オブジェクトＢＯの位置を移動速度ベクトルが示す方向へ移動速度ベクトルが示す速度で、仮想空間内を移動させる。そして、情報処理部３１は、移動後の弾オブジェクトＢＯの位置を用いて、弾オブジェクトデータＤｇを更新する。
【０１６０】
次に、情報処理部３１は、ゲーム装置１０のユーザによって発射操作が行われたか否かを判断する（ステップ８２）。例えば、情報処理部３１は、操作子データＤａ１を参照して、ユーザが所定の発射操作（例えば、ボタン１４Ｂ（Ａボタン）の押下）を行ったか否かを判断する。そして、情報処理部３１は、発射操作が行われた場合、次のステップ８３に処理を進める。一方、情報処理部３１は、発射操作が行われていない場合、次のステップ８４に処理を進める。
【０１６１】
ステップ８３において、情報処理部３１は、発射操作に応じて、仮想空間における仮想カメラの位置に弾オブジェクトＢＯを配置し、当該弾オブジェクトＢＯに対する移動速度ベクトルを設定して、次のステップ８４に処理を進める。例えば、情報処理部３１は、敵オブジェクトＥＯやマスクオブジェクトＭＯを透視投影する仮想カメラの位置に弾オブジェクトＢＯを新たに配置し、当該配置された弾オブジェクトＢＯの位置を用いて、弾オブジェクトデータＤｇを更新する。また、情報処理部３１は、上記仮想カメラの位置から当該仮想カメラの注視点への方向に向かう所定サイズのベクトルを設定し、当該ベクトルを上記新たに配置した弾オブジェクトＢＯの移動速度ベクトルとして弾オブジェクトデータＤｇを更新する。
【０１６２】
ステップ８４において、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが仮想空間内で接触したか否かを判断する。例えば、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置と、弾オブジェクトデータＤｇが示す弾オブジェクトＢＯの位置とを用いて、敵オブジェクトＥＯと弾オブジェクトＢＯとが仮想空間内で接触したか否かを判断する。そして、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが接触した場合、次のステップ８５に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが接触していない場合、次のステップ８６に処理を進める。
【０１６３】
ステップ８５において、情報処理部３１は、加点処理を行って、次のステップ８６に処理を進める。例えば、上記加点処理においては、情報処理部３１は、得点データＤｈが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データＤｈを更新する。また、上記加点処理においては、情報処理部３１は、上記ステップ８４で接触したと判定された両者（すなわち、敵オブジェクトＥＯと弾オブジェクトＢＯ）を仮想空間から消滅させる処理（例えば、弾オブジェクトＢＯと接触した敵オブジェクトＥＯおよび敵オブジェクトＥＯに接触した弾オブジェクトＢＯに関するそれぞれの敵オブジェクトデータＤｅおよび弾オブジェクトデータＤｇを初期化し、当該敵オブジェクトＥＯおよび弾オブジェクトＢＯが仮想空間に存在しない状態にする）を行う。なお、上記加点処理において、弾オブジェクトＢＯと接触した敵オブジェクトＥＯが出現した位置に貼り付けられているマスクオブジェクトＭＯについては、仮想空間内に配置したままでもいいし、当該敵オブジェクトＥＯを消滅させる際に同時に消滅させてもかまわない。
【０１６４】
ステップ８６において、情報処理部３１は、弾オブジェクトＢＯが仮想空間における所定の位置まで到達したか否かを判断する。例えば、情報処理部３１は、弾オブジェクトデータＤｇが示す弾オブジェクトＢＯの位置が、仮想カメラから見て上述したＺ＝Ｚ０の位置に到達したか否かを判断する。そして、情報処理部３１は、弾オブジェクトＢＯが所定の位置まで到達した場合、次のステップ８７に処理を進める。一方、情報処理部３１は、弾オブジェクトＢＯが所定の位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【０１６５】
ステップ８７において、情報処理部３１は、上記ステップ８６で所定の位置に到達したと判定された弾オブジェクトＢＯを仮想空間から消滅させる処理を行い、当該サブルーチンによる処理を終了する。例えば、情報処理部３１は、上記ステップ８６で所定の位置に到達したと判定された弾オブジェクトＢＯを仮想空間から消滅させる処理（例えば、当該弾オブジェクトＢＯに関する弾オブジェクトデータＤｇを初期化し、当該弾オブジェクトＢＯが仮想空間に存在しない状態にする）を行う。
【０１６６】
図１２に戻り、上記ステップ５６における弾オブジェクトに関する処理の後、情報処理部３１は、ゲーム装置１０の動きを算出して（ステップ５７）、次のステップに処理を進める。一例として、情報処理部３１は、角速度データＤａ２が示す角速度を用いて、ゲーム装置１０の動き（例えば、ゲーム装置１０に設けられた実カメラにおける撮像方向の変化）を算出し、当該動きを用いて動きデータＤｈを更新する。具体的には、ユーザが実空間においてゲーム装置１０に設けられた実カメラの撮像方向を変化させた場合、ゲーム装置１０全体の向きも変化するため、ゲーム装置１０に当該変化に応じた角速度が生じる。そして、ゲーム装置１０に生じた角速度を角速度センサ４０が検出することによって、当該角速度を示すデータが角速度データＤａ２に格納される。したがって、情報処理部３１は、角速度データＤａ２が示す角速度を用いることによって、ゲーム装置１０に設けられた実カメラの撮像方向が変化した方向や変化した量（角度）をゲーム装置１０の動きとして算出することが可能となる。
【０１６７】
次に、情報処理部３１は、ゲーム装置１０の動きに応じて仮想空間における仮想カメラの位置や方向を変更し（ステップ５８）、次のステップに処理を進める。例えば、情報処理部３１は、実空間におけるゲーム装置１０の実カメラの撮像方向変化と同じ変化を、仮想空間における仮想カメラに与え、変化後の仮想カメラの位置や方向を用いて仮想カメラデータＤｊを更新する。一例として、実空間におけるゲーム装置１０の実カメラの撮像方向が左へＡ°変化（ｙ軸を中心にｙ軸負方向に見てｘ軸およびｚ軸が左回りにＡ°回転するようにゲーム装置１０が動く変化）した場合、仮想空間における仮想カメラの方向も左へＡ°変化（仮想カメラからのビュー座標において、Ｙ軸を中心にＹ軸負方向に見てＸ軸およびＺ軸が左回りにＡ°回転する仮想カメラの方向変化）させる。これによって、実空間内に配置されているように表示されている敵オブジェクトＥＯやマスク画像ＭＩは、実空間内におけるゲーム装置１０の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される（図９および図１０参照）。
【０１６８】
次に、情報処理部３１は、仮想空間をレンダリングする処理を行い（ステップ５９）、次のステップに処理を進める。例えば、情報処理部３１は、敵オブジェクトＥＯ、マスクオブジェクトＭＯ、および弾オブジェクトＢＯが配置されている仮想空間をレンダリングした画像を用いて仮想空間のレンダリング画像データＤｋ２を更新する。例えば、図１７に示すように、仮想空間には敵オブジェクトＥＯ、マスクオブジェクトＭＯ、および弾オブジェクトＢＯが、それぞれ敵オブジェクトデータＤｅ、マスクオブジェクトデータＤｆ、および弾オブジェクトデータＤｇが示す位置や方向に応じて配置されている。また、仮想空間には、仮想空間をレンダリングするための仮想カメラＣ２が、仮想カメラデータＤｊが示す位置および方向に応じて配置されている。ここで、上述したように敵オブジェクトＥＯは、ゲーム装置１０の実カメラから得られたカメラ画像の一部（ステップ７４で設定されたテクスチャ）がテクスチャとしてマッピングされた平面ポリゴンである。また、マスクオブジェクトＭＯは、敵オブジェクトＥＯが上側ＬＣＤ２２に表示されたカメラ画像から抜け出た跡に貼り付けられるように配置された平面ポリゴンである。そして、仮想カメラＣ２から、仮想空間の配置された敵オブジェクトＥＯ、マスクオブジェクトＭＯ、および弾オブジェクトＢＯを透視投影でレンダリングすることによって仮想世界画像を生成して、仮想空間のレンダリング画像データＤｋ２を更新する。
【０１６９】
次に、情報処理部３１は、実世界画像と仮想世界画像とを合成した表示画像を生成し、当該表示画像を上側ＬＣＤ２２に表示して（ステップ６０）、次のステップに処理を進める。例えば、情報処理部３１は、カメラ画像のレンダリング画像データＤｋ１が示す実世界画像および仮想空間のレンダリング画像データＤｋ２が示す仮想世界画像を取得して、仮想世界画像を優先して実世界画像上に当該仮想世界画像を合成することによって表示画像を生成し、当該表示画像を用いて表示画像データＤｌを更新する。また、情報処理部３１のＣＰＵ３１１は、表示画像データＤｌが示す表示画像をＶＲＡＭ３１３に格納する。そして、情報処理部３１のＧＰＵ３１２が、ＶＲＡＭ３１３に描画された表示画像を上側ＬＣＤ２２に出力することによって、上側ＬＣＤ２２に当該表示画像が表示される。なお、情報処理部３１は、仮想空間のレンダリング画像データＤｋ２に仮想世界画像が格納されていない場合、カメラ画像のレンダリング画像データＤｋ１が示す実世界画像をそのまま上記表示画像とすればよい。
【０１７０】
次に、情報処理部３１は、ゲームを終了するか否かを判断する（ステップ６１）。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部３１は、ゲームを終了しない場合、上記ステップ５２に戻って処理を繰り返す。一方、情報処理部３１は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【０１７１】
このように、上述した実施形態に係る画像処理では、実カメラから得られた実世界画像に、当該実世界画像から抜け出たように表現されたオブジェクトを示す仮想世界画像が合成されて表示されるため、当該オブジェクトが実空間内に存在しているような新たな画像を表示することができる。
【０１７２】
（第２の実施形態）
次に、本発明の第２の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。上述した第１の実施形態では、ゲーム装置１０の実カメラから得られたカメラ画像から任意の範囲が切り取られ、当該範囲から抜け出た敵オブジェクトＥＯが移動するが、第２の実施形態では当該カメラ画像から識別された所定の物体が切り取られて敵オブジェクトＥＯとなる。なお、第２の実施形態に係る画像処理プログラムを実行する画像処理装置のハードウエア構成については、第１の実施形態で用いたハードウエア構成と同様であるため、同じ構成要素には同一の参照符号を付して詳細な説明を省略する。
【０１７３】
ゲーム装置１０で実行される当該実施形態に係る画像処理プログラムによる具体的な画像処理動作を説明する前に、図１９Ａおよび図１９Ｂを参照して当該画像処理動作によって上側ＬＣＤ２２に表示される表示形態例について説明する。なお、図１９Ａは、上側ＬＣＤ２２に表示されたカメラ画像ＣＩの一例を示す図である。図１９Ｂは、上側ＬＣＤ２２に表示されたカメラ画像ＣＩから敵オブジェクトＥＯが出現して表示された一例を示す図である。なお、説明を簡単にするために、上側ＬＣＤ２２には、外側撮像部２３および内側撮像部２４のいずれかから取得したカメラ画像ＣＩに基づいた、実世界の平面画像（上述した立体視可能な画像とは反対の意味での平面視の画像）が表示される例を用いる。
【０１７４】
図１９Ａにおいて、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラ（例えば、外側撮像部２３）によって撮像された実世界画像であるカメラ画像ＣＩが表示されている。例えば、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラで撮像されたリアルタイムの実世界画像（動画像）が表示される。
【０１７５】
ゲーム装置１０は、実カメラで撮像されたカメラ画像ＣＩに対して所定の顔認識処理を逐次に行い、カメラ画像ＣＩ内における人物の顔の有無を判断している。そして、ゲーム装置１０は、上記顔認識処理において、カメラ画像ＣＩ内に人物の顔が存在すると識別できた場合、敵オブジェクトＥＯが出現する条件を満たしたとしてカメラ画像ＣＩ内から顔と識別した部分が切り取られる。
【０１７６】
図１９Ｂに示すように、敵オブジェクトＥＯは、カメラ画像ＣＩから切り取られた上記顔と識別した部分の画像が主面に貼り付けられたボード状の物体となって移動する。例えば、敵オブジェクトＥＯは、カメラ画像ＣＩから人物の顔が切り取られて抜け出した平板物体となって、カメラ画像ＣＩを撮像している実カメラ、すなわちゲーム装置１０を操作しているユーザの方へ向かって実空間内を移動しているように上側ＬＣＤ２２に表示される。つまり、ユーザ自身が撮像している実世界の撮像画像における人物の顔が敵オブジェクトＥＯとなって撮像者、すなわちユーザに向かってくるような画像が上側ＬＣＤ２２に表示される。例えば、カメラ画像ＣＩから識別された顔の画像をテクスチャとしてマッピングされた平面ポリゴン（敵オブジェクトＥＯ）を仮想空間に配置し、仮想カメラから敵オブジェクトＥＯを見た仮想空間の画像（仮想世界画像）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、敵オブジェクトＥＯが実空間内に配置されているように上側ＬＣＤ２２に表示される。そして、ゲーム装置１０を用いた攻撃操作（例えば、ボタン１４Ｂ（Ａボタン）の押下）に応じて、所定の方向（例えば、カメラ画像ＣＩを撮像している実カメラの視線方向であり、仮想カメラの視線方向）に弾オブジェクトＢＯが発射され、敵オブジェクトＥＯがユーザの攻撃対象となる。
【０１７７】
また、カメラ画像ＣＩにおける敵オブジェクトＥＯが抜け出した跡には、所定のマスク画像ＭＩが表示される。第１の例として、マスク画像ＭＩは、敵オブジェクトＥＯが抜け出した人物の顔の範囲を、所定の色で塗りつぶして覆う画像で設定される。第２の例として、マスク画像ＭＩは、敵オブジェクトＥＯが抜け出した人物の顔の範囲を、当該範囲と隣接する周辺に表示されているいずれかの色で塗りつぶして覆う画像で設定される。第３の例として、マスク画像ＭＩは、予め定められた画像（例えば、人間頭部の骸骨を示す画像）で設定され、敵オブジェクトＥＯが抜け出した人物の顔の範囲が当該画像に置換される。例えば、上記所定の色、上記周辺の色で塗りつぶされた画像や所定の画像を示す平面ポリゴン（マスクオブジェクトＭＯ）を上記切り取り範囲の位置に対応する上記仮想空間内の位置に配置し、仮想カメラからマスクオブジェクトＭＯを見た仮想空間の画像（仮想世界画像）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、マスク画像ＭＩが人物の顔の範囲を覆って配置されているように上側ＬＣＤ２２に表示される。
【０１７８】
ここで、上述した第１の実施形態では、設定された敵オブジェクトＥＯのテクスチャは、敵オブジェクトＥＯが消滅するまで同じ静止画像が用いられている。一方、第２の実施形態では、カメラ画像ＣＩとして撮像されている人物の顔の表情等が変化した場合、当該変化が敵オブジェクトＥＯのテクスチャに反映される。つまり、敵オブジェクトＥＯに貼り付けられている顔画像の表情は、ゲーム装置１０の実カメラによって撮像されている人物の表情をリアルタイムに反映することが可能となる。しかしながら、第２の実施形態においても、敵オブジェクトＥＯの出現時の顔画像（静止画像）を継続的に（例えば、敵オブジェクトＥＯが消滅するまで）用いてもよい。この場合、後述するステップ１１２やステップ１２３で設定されるテクスチャ画像を保存しておいて、ステップ５９で継続的に使用する。なお、ステップ１１２で設定されるテクスチャ画像を継続的に使用する場合、ステップ１０２の処理が不要となる。また、ステップ１２３で設定されるテクスチャ画像を継続的に使用する場合、ステップ１０２およびステップ１１２の処理が不要となる。また、実空間内においてゲーム装置１０の方向や位置を変えることによって、ゲーム装置１０で撮像される撮像範囲が変わるため、上側ＬＣＤ２２に表示されるカメラ画像ＣＩも変化する。この場合、ゲーム装置１０は、実空間内におけるゲーム装置１０の動きに応じて、上記仮想空間内における上記仮想カメラの位置や方向を変化させる。これによって、実空間内に配置されているように表示されている敵オブジェクトＥＯやマスク画像ＭＩは、実空間内におけるゲーム装置１０の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。
【０１７９】
なお、第１の実施形態と同様に、マスクオブジェクトＭＯが配置された仮想世界画像を実世界画像に合成することによって、上記切り取り範囲を覆ってマスク画像ＭＩが表示される例を用いるが、他の方法によって上記切り取り範囲を覆うようにマスク画像ＭＩを表示してもかまわない。例えば、カメラ画像ＣＩから得られる実世界画像における上記切り取り範囲を上記所定の色や上記周辺の色で塗りつぶしたり、所定の画像に置換したりすることによって、マスク画像ＭＩを表示してもかまわない。上述したように、上記実世界画像は、一例として上記カメラ画像がテクスチャとしてマッピングされた平面ポリゴンを生成し、仮想カメラから平行投影で当該平面ポリゴンをレンダリングすることによって生成される。この場合、上記カメラ画像における上記切り取り範囲を上記所定の色や上記周辺の色で塗りつぶしたり所定の画像に置換した上記テクスチャを設定したり、上記テクスチャをマッピングした後に上記切り取り範囲を上記所定の色や上記周辺の色で塗りつぶした画像や所定の画像を貼り付けたりすることによって、上記切り取り範囲がマスク画像ＭＩに置換された実世界画像を生成することができる。
【０１８０】
次に、図２０〜図２３を参照して、第２の実施形態に係る画像処理プログラムを実行することによる具体的な処理動作について説明する。なお、図２０は、当該画像処理プログラムを実行することによって行われる敵オブジェクト処理（図１２のステップ５５）の詳細な動作の一例を示すサブルーチンである。図２１は、図２０のステップ９２で行われる出現済処理の詳細な動作の一例を示すサブルーチンである。図２２は、図２０のステップ９４で行われる出現中処理の詳細な動作の一例を示すサブルーチンである。図２３は、図２０のステップ９６で行われる未出現処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置１０に内蔵されるメモリ（例えば、データ保存用内部メモリ３５）や外部メモリ４５またはデータ保存用外部メモリ４６に含まれており、ゲーム装置１０の電源がオンになったときに、内蔵メモリから、または外部メモリＩ／Ｆ３３やデータ保存用外部メモリＩ／Ｆ３４を介して外部メモリ４５またはデータ保存用外部メモリ４６からメインメモリ３２に読み出されて、ＣＰＵ３１１によって実行される。なお、第２の実施形態に係る画像処理プログラムを実行することによる処理動作は、第１の実施形態に係る画像処理プログラムを実行することによる処理動作に対して、敵オブジェクト処理（図１２のステップ５５）が異なるだけである。したがって、以下の説明においては、第１の実施形態と異なる処理動作のみ説明し、他の処理動作については詳細な説明を省略する。また、第２の実施形態に係る画像処理プログラムを実行することに応じてメインメモリ３２に記憶される各種データは、出現フラグデータがさらに記憶されることを除いて、第１の実施形態に係る画像処理プログラムを実行することに応じて記憶される各種データと同様である。なお、上記出現フラグデータは、現時点の敵オブジェクトＥＯの出現状況が「未出現」、「出現中」、および「出現済」の何れであるのかを表す出現フラグを示すデータであり、出現フラグは、上記ステップ５１における初期設定において「未出現」に設定されている。
【０１８１】
図２０において、情報処理部３１は、敵オブジェクトＥＯが出現済であるか否かを判断する（ステップ９１）。例えば、情報処理部３１は、出現フラグデータを参照して、出現フラグが「出現済」に設定されているか否かによって上記ステップ９１における判定を行う。そして、情報処理部３１は、敵オブジェクトＥＯが出現済である場合、次のステップ９２に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが出現済でない場合、次のステップ９３に処理を進める。
【０１８２】
ステップ９２において、情報処理部３１は、出現済処理を行い、次のステップ９３に処理を進める。以下、図２１を参照して、情報処理部３１が上記ステップ９２で行う出現済処理について説明する。
【０１８３】
図２１において、情報処理部３１は、カメラ画像データＤｂが示すカメラ画像に対して所定の顔認識処理を行って当該顔認識結果をメインメモリ３２に格納し（ステップ１０１）、次のステップに処理を進める。ここで、上記顔認識処理は、図２１で示すフローチャートによる処理とは別に独立して逐次上記カメラ画像を用いて情報処理部３１が行ってもかまわない。この場合、情報処理部３１は、上記カメラ画像から人物の顔が識別されたときに、上記ステップ１０１において顔認識結果を取得して当該顔認識結果をメインメモリ３２に格納する。
【０１８４】
次に、情報処理部３１は、上記ステップ１０１における顔認識処理で識別された顔の画像（カメラ画像のうちの顔領域内の画像）を、敵オブジェクトＥＯのテクスチャに設定し（ステップ１０２）、次のステップに処理を進める。例えば、情報処理部３１は、カメラ画像データＤｂが示すカメラ画像から、上記ステップ１０１における顔認識処理の顔認識結果が示す顔の範囲内の画像を敵オブジェクトＥＯのテクスチャに設定し、当該設定されたテクスチャを用いてテクスチャデータＤｅ１を更新する。
【０１８５】
次に、情報処理部３１は、上記ステップ１０１における顔認識処理で識別された顔の画像の範囲に応じた敵オブジェクトＥＯおよびマスクオブジェクトＭＯを設定し（ステップ１０３）、次のステップに処理を進める。例えば、情報処理部３１は、上記ステップ１０１における顔認識処理で識別された顔の画像の範囲に応じて、敵オブジェクトＥＯに対応するポリゴンの形状を設定し、当該設定されたパラメータを用いて敵オブジェクトデータＤｅを更新する。一例として、情報処理部３１は、上記ステップ１０１における顔認識処理で識別された顔の画像の範囲が前回の処理の範囲に対して変化した場合、当該変化後の範囲の形状に合わせて敵オブジェクトＥＯに対応するポリゴンの形状を変化させる。また、情報処理部３１は、上記顔の画像の範囲に応じて、マスクオブジェクトＭＯに対応する平面ポリゴンのサイズおよび形状を設定し、当該平面ポリゴンを塗りつぶす色を所定の色（例えば、黒）や上記ステップ５２で取得したカメラ画像内の当該顔の画像における周辺の色に設定して、当該設定されたパラメータを用いてマスクオブジェクトデータＤｆを更新する。一例として、情報処理部３１は、上記ステップ１０１における顔認識処理で識別された顔の画像の範囲が前回の処理の範囲に対して変化した場合、当該変化後の範囲の形状に合わせてマスクオブジェクトＭＯに対応する平面ポリゴンの形状を変化させる。
【０１８６】
次に、情報処理部３１は、マスクオブジェクトＭＯを仮想空間に配置して（ステップ１０４）、次のステップに処理を進める。例えば、情報処理部３１は、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン（図１６参照）における上記顔の画像の範囲に重ね合わされて透視投影される位置に、マスクオブジェクトＭＯを配置し、当該配置位置を用いてマスクオブジェクトデータＤｆを更新する。なお、マスクオブジェクトＭＯを仮想空間に配置する例については、図１７および図１８を用いて説明した配置例を同様であるため詳細な説明を省略する。
【０１８７】
次に、情報処理部３１は、仮想空間に配置されている敵オブジェクトＥＯを移動させ（ステップ１０５）、次のステップに処理を進める。一例として、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置を、仮想空間に配置された仮想カメラの方向へ所定距離だけ近づけて設定し、設定後の敵オブジェクトＥＯの位置を用いて敵オブジェクトデータＤｅを更新する。他の例として、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置を、敵オブジェクトＥＯに対して定められた移動方向および移動速度に基づいて更新し、更新後の敵オブジェクトＥＯの位置を用いて敵オブジェクトデータＤｅを更新する。また、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの配置方向を、所定の方向に所定の角度だけ更新し、更新後の敵オブジェクトＥＯの配置角度を用いて敵オブジェクトデータＤｅを更新する。
【０１８８】
なお、上記ステップ１０５の処理において、上記ステップ１０１において識別された人物の顔の表情に応じて、敵オブジェクトＥＯをさらに動作させたり、ゲームの状況を変化させたりしてもかまわない。第１の例として、上記ステップ１０１において識別された人物の顔の表情が所定の表情（例えば、怒った表情）であると判別された場合、敵オブジェクトＥＯがユーザに向かって（すなわち、仮想カメラに向かって）所定の攻撃を行う動作を行う。第２の例として、上記ステップ１０１において識別された人物の顔の表情が所定の表情（例えば、目をつぶった表情）であると判別された場合、敵オブジェクトＥＯがユーザに向かって移動する速度を変化（例えば、移動速度を遅くする）させる。第３の例として、上記ステップ１０１において識別された人物の顔の表情が所定の表情（例えば、笑った表情）であると判別された場合、ゲームにおけるユーザの耐久度（ゲームオーバーとならずに、ゲーム装置１０でゲームを続けることができる時間長さと関連するパラメータ）を所定量だけ上昇させる。
【０１８９】
次に、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達したか否かを判断する（ステップ１０６）。例えば、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの位置を用いて、敵オブジェクトＥＯを透視投影する仮想カメラの位置に敵オブジェクトＥＯの位置が到達したか否かを判断する。そして、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達した場合、次のステップ１０７に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【０１９０】
ステップ１０７において、情報処理部３１は、減点処理を行って、当該サブルーチンによる処理を終了する。例えば、上記減点処理においては、情報処理部３１は、得点データＤｈが示すゲームの得点を所定数だけ減点し、減点後の得点を用いて得点データＤｈを更新する。また、上記減点処理においては、情報処理部３１は、上記仮想カメラの位置まで到達した敵オブジェクトＥＯを仮想空間から消滅させる処理（例えば、仮想カメラの位置まで到達した敵オブジェクトＥＯに関する敵オブジェクトデータＤｅを初期化し、当該敵オブジェクトＥＯが仮想空間に存在しない状態にする）を行う。なお、上記減点処理において、仮想カメラの位置まで到達した敵オブジェクトＥＯが出現した位置に貼り付けられているマスクオブジェクトＭＯについては、仮想空間内に配置したままでもいいし、当該敵オブジェクトＥＯを消滅させる際に同時に消滅させてもかまわない。
【０１９１】
図２０に戻り、ステップ９３において、情報処理部３１は、敵オブジェクトＥＯが出現中であるか否かを判断する。例えば、情報処理部３１は、出現フラグデータを参照して、出現フラグが「出現中」に設定されているか否かによって上記ステップ９３における判定を行う。そして、情報処理部３１は、敵オブジェクトＥＯが出現中である場合、次のステップ９４に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが出現中でない場合、次のステップ９５に処理を進める。
【０１９２】
ステップ９４において、情報処理部３１は、出現中処理を行い、次のステップ９５に処理を進める。以下、図２２を参照して、情報処理部３１が上記ステップ９４で行う出現中処理について説明する。
【０１９３】
図２２において、情報処理部３１は、カメラ画像データＤｂが示すカメラ画像に対して所定の顔認識処理を行って当該顔認識結果をメインメモリ３２に格納し（ステップ１１１）、次のステップに処理を進める。ここで、上記顔認識処理は、図２２で示すフローチャートによる処理とは別に独立して逐次上記カメラ画像を用いて情報処理部３１が行ってもかまわない。この場合、情報処理部３１は、上記カメラ画像から人物の顔が識別されたときに、上記ステップ１１１において顔認識結果を取得して当該顔認識結果をメインメモリ３２に格納する。
【０１９４】
次に、情報処理部３１は、上記ステップ１１１における顔認識処理で識別された顔の画像を、敵オブジェクトＥＯのテクスチャに設定し（ステップ１１２）、次のステップに処理を進める。例えば、情報処理部３１は、カメラ画像データＤｂが示すカメラ画像から、上記ステップ１１１における顔認識処理の顔認識結果が示す顔の範囲内の画像を敵オブジェクトＥＯのテクスチャに設定し、当該設定されたテクスチャを用いてテクスチャデータＤｅ１を更新する。
【０１９５】
次に、情報処理部３１は、上記ステップ１１１における顔認識処理で識別された顔の画像の範囲に応じたマスクオブジェクトＭＯを設定し（ステップ１１３）、次のステップに処理を進める。例えば、情報処理部３１は、上記ステップ１１１における顔認識処理で識別された顔の画像の範囲に応じて、マスクオブジェクトＭＯに対応する平面ポリゴンのサイズおよび形状を設定し、当該平面ポリゴンを塗りつぶす色を所定の色（例えば、黒）や上記ステップ５２で取得したカメラ画像内の当該顔の画像における周辺の色に設定して、当該設定されたパラメータを用いてマスクオブジェクトデータＤｆを更新する。
【０１９６】
次に、情報処理部３１は、上記ステップ１１１における顔認識処理で識別された顔の画像の範囲に応じて、平面ポリゴンから所定の立体ポリゴンまで変化させるモーフィング処理を行って敵オブジェクトＥＯを設定し（ステップ１１４）、次のステップに処理を進める。例えば、情報処理部３１は、敵オブジェクトデータＤｅが示す敵オブジェクトＥＯの平面ポリゴンを、上記ステップ１１１における顔認識処理で識別された顔の画像の範囲に応じたサイズおよび形状に変更し、さらに変更された平面ポリゴンの厚みを所定の立体ポリゴンとなるように所定量増加させるモーフィング処理を行って、敵オブジェクトデータＤｅを更新する。図２４に示すように、上記モーフィング処理によって、実世界画像から識別された顔画像から敵オブジェクトＥＯが出現する際、敵オブジェクトＥＯは、当該顔画像上において視点に向かって徐々に平面から立体になるように表現される。
【０１９７】
なお、上記モーフィング処理によって平面ポリゴンから変化させる立体ポリゴンは、様々な形状のポリゴンが考えられる。第１の例として、上記モーフィング処理によって平面ポリゴンから所定の厚さを有する平板ポリゴンに変化させて敵オブジェクトＥＯを生成する。この場合、カメラ画像に対して顔認識処理で識別された顔の画像がテクスチャとなって、上記平板ポリゴンの主面にマッピングされる。第２の例として、上記モーフィング処理によって平面ポリゴンから予め定められたキャラクタの頭部形状を有する立体ポリゴンに変化させて敵オブジェクトＥＯを生成する。この場合、カメラ画像に対して顔認識処理で識別された顔の画像がテクスチャとなって、上記頭部形状のポリゴンの顔面にマッピングされる。第３の例として、上記モーフィング処理によって平面ポリゴンから予め定められた武器形状を有する立体ポリゴン（例えば、ミサイル形状のポリゴン）に変化させて敵オブジェクトＥＯを生成する。この場合、カメラ画像に対して顔認識処理で識別された顔の画像がテクスチャとなって、上記武器形状のポリゴンの一部にマッピングされる（例えば、ミサイル形状のポリゴンに対して当該ミサイルの先端にマッピングされる）。
【０１９８】
次に、情報処理部３１は、敵オブジェクトＥＯに対するモーフィング処理が最終段階となったか否かを判断する（ステップ１１５）。そして、情報処理部３１は、敵オブジェクトＥＯに対するモーフィング処理が最終段階である場合、次のステップ１１６に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯに対するモーフィング処理がまだ最終段階に到達していない場合、次のステップ１１７に処理を進める。例えば、情報処理部３１は、敵オブジェクトＥＯに対応する平面ポリゴンの厚さが、上記ステップ１１４のモーフィング処理を繰り返すことによって所定の厚さに到達した場合、敵オブジェクトＥＯに対するモーフィング処理が最終段階であると判定する。
【０１９９】
ステップ１１６において、情報処理部３１は、出現フラグを「出現済」に設定して出現フラグデータを更新し、次のステップ１１７に処理を進める。
【０２００】
ステップ１１７において、情報処理部３１は、敵オブジェクトＥＯおよびマスクオブジェクトＭＯを仮想空間に配置して、当該サブルーチンによる処理を終了する。例えば、情報処理部３１は、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン（図１６参照）における上記顔の画像の範囲に重ね合わされて透視投影される位置に、マスクオブジェクトＭＯを配置し、当該配置位置を用いてマスクオブジェクトデータＤｆを更新する。また、情報処理部３１は、上記カメラ画像のテクスチャがマッピングされた平面ポリゴンの主面から仮想カメラ側に突出して上記顔の画像の範囲上に配置されて透視投影される位置に、上記ステップ１１４でモーフィング処理された敵オブジェクトＥＯを配置し、当該配置位置を用いて敵オブジェクトデータＤｅを更新する。
【０２０１】
図２０に戻り、ステップ９５において、情報処理部３１は、敵オブジェクトＥＯが未出現であるか否かを判断する。例えば、情報処理部３１は、出現フラグデータを参照して、出現フラグが「未出現」に設定されているか否かによって上記ステップ９５における判定を行う。そして、情報処理部３１は、敵オブジェクトＥＯが未出現である場合、次のステップ９６に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが未出現でない場合、当該サブルーチンによる処理を終了する。
【０２０２】
ステップ９６において、情報処理部３１は、未出現処理を行い、当該サブルーチンによる処理を終了する。以下、図２３を参照して、情報処理部３１が上記ステップ９６で行う未出現処理について説明する。
【０２０３】
図２３において、情報処理部３１は、カメラ画像データＤｂが示すカメラ画像に対して所定の顔認識処理を行って当該顔認識結果をメインメモリ３２に格納し（ステップ１２１）、次のステップに処理を進める。ここで、上記顔認識処理は、図２３で示すフローチャートによる処理とは別に独立して逐次上記カメラ画像を用いて情報処理部３１が行ってもかまわない。この場合、情報処理部３１は、上記カメラ画像から人物の顔が識別されたときに、上記ステップ１２１において顔認識結果を取得して当該顔認識結果をメインメモリ３２に格納する。
【０２０４】
次に、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしているか否かを判断する（ステップ１２２）。例えば、敵オブジェクトＥＯが出現する条件は、上記ステップ１２１においてカメラ画像から人物の顔が識別されていることを必須条件として、所定時間毎に敵オブジェクトＥＯが出現してもいいし、敵オブジェクトＥＯが仮想世界から消滅したことに応じて新たな敵オブジェクトＥＯが出現してもいいし、ランダムのタイミングで敵オブジェクトＥＯを出現させてもよい。そして、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしている場合、次のステップ１２３に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしていない場合、当該サブルーチンによる処理を終了する。
【０２０５】
ステップ１２３において、情報処理部３１は、上記ステップ１２１における顔認識処理で識別された顔の画像を、敵オブジェクトＥＯのテクスチャに設定し、次のステップに処理を進める。例えば、情報処理部３１は、カメラ画像データＤｂが示すカメラ画像から、上記ステップ１２１における顔認識処理の顔認識結果が示す顔の範囲内の画像を敵オブジェクトＥＯのテクスチャに設定し、当該設定されたテクスチャを用いてテクスチャデータＤｅ１を更新する。
【０２０６】
次に、情報処理部３１は、上記ステップ１２１における顔認識処理で識別された顔の画像の範囲に応じた敵オブジェクトＥＯおよびマスクオブジェクトＭＯを設定し（ステップ１２４）、次のステップに処理を進める。例えば、情報処理部３１は、上記ステップ１２１における顔認識処理で識別された顔の画像の範囲に応じて、敵オブジェクトＥＯに対応する平面ポリゴンのサイズおよび形状を設定し、当該設定されたパラメータを用いて敵オブジェクトデータＤｅを更新する。また、情報処理部３１は、上記顔の画像の範囲に応じて、マスクオブジェクトＭＯに対応する平面ポリゴンのサイズおよび形状を設定し、当該平面ポリゴンを塗りつぶす色を所定の色（例えば、黒）や上記ステップ５２で取得したカメラ画像内の当該顔の画像における周辺の色に設定して、当該設定されたパラメータを用いてマスクオブジェクトデータＤｆを更新する。
【０２０７】
次に、情報処理部３１は、新たに敵オブジェクトＥＯおよびマスクオブジェクトＭＯを仮想空間に配置して（ステップ１２５）、次のステップに処理を進める。例えば、情報処理部３１は、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン（図１６参照）における上記顔の画像の範囲に重ね合わされて透視投影される位置に、敵オブジェクトＥＯおよびマスクオブジェクトＭＯを配置し、当該配置位置を用いて敵オブジェクトデータＤｅおよびマスクオブジェクトデータＤｆを更新する。なお、敵オブジェクトＥＯおよびマスクオブジェクトＭＯを仮想空間に配置する例については、図１７および図１８を用いて説明した配置例を同様であるため詳細な説明を省略する。
【０２０８】
次に、情報処理部３１は、出現フラグを「出現中」に設定して出現フラグデータを更新し（ステップ１２６）、当該サブルーチンによる処理を終了する。
【０２０９】
このように、上述した実施形態に係る画像処理では、実カメラから得られた実世界画像に、当該実世界画像内の顔画像が抜け出たように表現されたオブジェクトを示す仮想世界画像が合成されて表示されるため、当該オブジェクトが実空間内に存在しているような新たな画像を表示することができる。
【０２１０】
なお、上述した説明では、ゲーム装置１０の実カメラで撮像されたカメラ画像から識別されて敵オブジェクトＥＯとなる所定の物体の一例として人物の顔を用いたが、上記カメラ画像を分析して所定の条件を満たす当該カメラ画像内の領域を識別し、当該識別された領域を敵オブジェクトＥＯのテクスチャに設定してもかまわない。例えば、上記カメラ画像を画像分析して境界や輪郭等を抽出することによって形状認識可能な他の物を当該カメラ画像から識別し、当該識別された物を敵オブジェクトＥＯのテクスチャに設定してもかまわない。例えば、図２５Ａに示すように、上記カメラ画像内に撮像されている机を識別して切り取り、当該机を示す立体オブジェクトを敵オブジェクトＥＯとしてもかまわない。一例として、カメラ画像内において茶色の矩形形状の物体を識別し、当該物体が上記カメラ画像内に存在すれば当該カメラ画像内に机が識別されたと判定する。そして、机と識別された物体を上記カメラ画像から切り取って敵オブジェクトＥＯとして設定する。この場合、図２５Ｂに示すように、上記カメラ画像内で机として認識された物体をテクスチャとし、予め定められた机形状の立体ポリゴンに当該テクスチャをマッピングすることによって敵オブジェクトＥＯを設定する。また、上記カメラ画像内で机として認識された物体の画像を切り取った跡に、マスク画像ＭＩを貼り付ける。そして、机形状の敵オブジェクトＥＯをユーザに向かって移動させることによって、ユーザの攻撃対象とする。なお、図２５Ａにおける机の天板を茶色の矩形形状として認識して、カメラ画像のうちの天板領域内の画像をテクスチャとして、平板ポリゴンに貼り付けてもよい。
【０２１１】
上記カメラ画像から識別して敵オブジェクトＥＯとする物体は、他にも考えられる。第１の例として、上記カメラ画像から黒色の枠形状の物体が識別された場合、当該物体をテレビジョンであると判定してテレビジョンと識別された物体を上記カメラ画像から切り取って敵オブジェクトＥＯとして設定し、切り取られた画像を当該敵オブジェクトＥＯのテクスチャに設定する。第２の例として、上記カメラ画像から赤色の球形状の物体が識別された場合、当該物体をりんごであると判定してりんごと識別された物体を上記カメラ画像から切り取って敵オブジェクトＥＯとして設定し、切り取られた画像を当該敵オブジェクトＥＯのテクスチャに設定する。第３の例として、上記カメラ画像から白色の円板形状の物体が識別された場合、当該物体を時計であると判定して時計と識別された物体を上記カメラ画像から切り取って敵オブジェクトＥＯとして設定し、切り取られた画像を当該敵オブジェクトＥＯのテクスチャに設定する。このように、カメラ画像を画像分析して境界や輪郭等を抽出することによって物体の色および／または形状を識別対象とすることによって、様々な物体の形状を認識することが可能であり、当該カメラ画像から識別された物体を切り取って敵オブジェクトＥＯのテクスチャに設定することによって、上述した画像処理と同様の処理が可能となる。
【０２１２】
他の例として、カメラ画像を文字認識することによって、カメラ画像から識別された文字を、登場するオブジェクトのテクスチャに設定してもかまわない。例えば、上記カメラ画像から文字が認識された場合、当該文字を上記カメラ画像から切り取って敵オブジェクトＥＯに設定し、切り取られた文字を当該敵オブジェクトＥＯのテクスチャに設定する。この場合、識別対象とする文字の色を限定することなく、文字形状となって登場する敵オブジェクトＥＯの色も識別された文字色に応じた色で設定される。
【０２１３】
他の例として、カメラ画像内に撮像されている物体の色のみを識別対象とすることによって、カメラ画像から識別された当該色を有する領域を、登場するオブジェクトのテクスチャに設定してもかまわない。例えば、上記カメラ画像内に所定色の物体が撮像されている場合、当該所定色に関連する物体を示す立体オブジェクトを、識別された当該物体の画像をテクスチャにして登場させる。一例として、図２６Ａに示すように、上記カメラ画像内に赤色の物体（例えば、赤色のりんご；図２６Ａおよび図２６Ｂでは赤色画像を斜線領域で示している）が撮像されている場合、当該カメラ画像から識別された赤色の物体を識別されたと判定する。そして、上記カメラ画像から識別された赤色の物体を、登場させる立体オブジェクトのテクスチャとして設定する。具体的には、図２６Ｂに示すように、上記カメラ画像内で認識された赤色の物体の画像（例えば、カメラ画像内で識別された赤色のりんごの画像）をテクスチャとし、予め定められた形状（例えば、炎の形状）の立体ポリゴンに当該テクスチャをマッピングすることによってオブジェクト（炎オブジェクト）を登場させる。この場合、上記カメラ画像内で赤色の物体として認識された画像を切り取らずに撮像状態のまま上側ＬＣＤ２２に表示（図２６Ｂの状態）してもいし、当該赤色の物体として認識された画像を切り取って当該切り取った跡にマスク画像ＭＩを貼り付けてもかまわない。例えば、前者の場合、図２６Ｂに示すように、カメラ画像から赤色の物体として識別された赤色のりんごの上部に炎オブジェクトが配置されることによって、識別されたりんごが当該りんごの色（赤色）の炎で燃え上がっているように表現される。また、後者の場合、カメラ画像から赤色の物体として識別された物体の位置から仮想カメラ側に向かって炎オブジェクトが吹き出るように配置されることによって、あたかも炎オブジェクトがユーザ側に向かって吹き付けられているように表現される。
【０２１４】
上記カメラ画像から識別して敵オブジェクトＥＯとする物体は、他にも考えられる。第１の例として、上記カメラ画像から青色の物体が識別された場合、当該物体が識別された位置から当該物体の色の液体（例えば、水）が流れ出るように表現する。この場合、液体が波のように移動していく形状の立体ポリゴンに、上記カメラ画像内で認識された青色の物体の画像をテクスチャとしてマッピングすることによって、仮想世界画像を生成する。第２の例として、上記カメラ画像から黄色の物体が識別された場合、当該物体が識別された位置から当該物体の色の光（例えば、雷光）が発光されるように表現する。この場合、光が雷光のように放電されている形状の立体ポリゴンに、上記カメラ画像内で認識された黄色の物体の画像をテクスチャとしてマッピングすることによって、仮想世界画像を生成する。
【０２１５】
（第３の実施形態）
次に、本発明の第３の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。上述した第１の実施形態や第２の実施形態では、ゲーム装置１０の実カメラから得られたカメラ画像から任意の範囲が切り取られて敵オブジェクトＥＯとして出現したり、当該カメラ画像から識別された所定の物体が切り取られて敵オブジェクトＥＯとして出現したりする。第３の実施形態では、上記カメラ画像とは無関係の敵オブジェクトＥＯが出現するとともに、ゲーム中にカメラ画像から新たに敵オブジェクトＥＯが出現する例を説明する。なお、第３の実施形態に係る画像処理プログラムを実行する画像処理装置のハードウエア構成については、第１の実施形態や第２の実施形態で用いたハードウエア構成と同様であるため、同じ構成要素には同一の参照符号を付して詳細な説明を省略する。
【０２１６】
図２７〜図２９を参照して当該実施形態に係る画像処理動作によって上側ＬＣＤ２２に表示される表示形態例について説明する。なお、図２７は、上側ＬＣＤ２２に表示されたカメラ画像ＣＩおよび敵オブジェクトＥＯ１〜ＥＯ３の一例を示す図である。図２８は、上側ＬＣＤ２２に表示されたカメラ画像ＣＩから新たに敵オブジェクトＥＯｎが出現して表示された一例を示す図である。図２９は、上側ＬＣＤ２２に表示されたカメラ画像ＣＩの撮像アングルが変化したり被写体が移動したりした場合の敵オブジェクトＥＯｎの動きの一例を示す図である。なお、説明を簡単にするために、上側ＬＣＤ２２には、外側撮像部２３および内側撮像部２４のいずれかから取得したカメラ画像ＣＩに基づいた、実世界の平面画像（上述した立体視可能な画像とは反対の意味での平面視の画像）が表示される例を用いる。
【０２１７】
図２７において、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラ（例えば、外側撮像部２３）によって撮像された実世界画像であるカメラ画像ＣＩが表示されている。例えば、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラで撮像されたリアルタイムの実世界画像（動画像）が表示される。さらに、上側ＬＣＤ２２には、カメラ画像ＣＩとは無関係の仮想オブジェクトが、カメラ画像ＣＩに合成されて表示されている。図２７では、仮想オブジェクトの一例として、敵オブジェクトＥＯ１〜ＥＯ３が表示されている。ここで、敵オブジェクトＥＯ１〜ＥＯ３は、上述した実施形態と同様にユーザの攻撃対象となる立体オブジェクトであり、カメラ画像ＣＩに合成される仮想空間内を所定のアルゴリズムに基づいて移動したり、出現したりする。
【０２１８】
なお、敵オブジェクトＥＯ１〜ＥＯ３は、過去に撮像することによって得られた顔画像が立体モデル（ポリゴン）に貼り付けられたオブジェクト（例えば、敵オブジェクトＥＯ１、ＥＯ２）でもいいし、撮像画像とは無関係に予め準備されている立体オブジェクト（例えば、敵オブジェクトＥＯ３）でもよい。例えば、敵オブジェクトＥＯ１〜ＥＯ３を示す立体ポリゴンを仮想空間に配置し、仮想カメラから敵オブジェクトＥＯ１〜ＥＯ３を見た仮想空間の画像（仮想世界画像）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、敵オブジェクトＥＯ１〜ＥＯ３が実空間内に配置されているように上側ＬＣＤ２２に表示される。そして、ゲーム装置１０を用いた攻撃操作（例えば、ボタン１４Ｂ（Ａボタン）の押下）に応じて、所定の方向（例えば、カメラ画像ＣＩを撮像している実カメラの視線方向であり、仮想カメラの視線方向）に弾オブジェクトＢＯが発射され、敵オブジェクトＥＯ１〜ＥＯ３がユーザの攻撃対象となるゲームが実現される。
【０２１９】
一方、ゲーム装置１０は、上記ゲーム中において、実カメラで撮像されたカメラ画像ＣＩに対して所定の顔認識処理を逐次に行い、カメラ画像ＣＩ内における人物の顔の有無を判断している。そして、ゲーム装置１０は、上記顔認識処理において、カメラ画像ＣＩ内に人物の顔が存在すると識別できた場合、新たに敵オブジェクトＥＯｎを出現させる条件を満たしたとしてカメラ画像ＣＩ内の顔と識別した部分の少なくとも１つから敵オブジェクトＥＯｎを出現させる（図２８の状態）。
【０２２０】
図２８に示すように、新たに出現する敵オブジェクトＥＯｎは、カメラ画像ＣＩから顔認識された顔画像を、人の顔面の３次元モデルにテクスチャマッピングした仮想オブジェクトとなって出現する。なお、カメラ画像ＣＩから複数の顔画像が顔認識によって識別された場合、複数の顔画像から１つを選択して敵オブジェクトＥＯｎを出現させる対象としてもいいし、複数の顔画像から２つ以上を選択して敵オブジェクトＥＯｎを出現させる対象としてもいいし、複数の顔画像から全部を選択して敵オブジェクトＥＯｎを出現させる対象としてもよい。以下、カメラ画像ＣＩから１つの顔画像が顔認識によって識別された場合、または複数の顔画像から１つを選択して敵オブジェクトＥＯｎを出現させる対象とする場合を前提として、説明を行う。
【０２２１】
例えば、カメラ画像ＣＩから識別された顔の画像がテクスチャマッピングされた３次元モデル（敵オブジェクトＥＯｎ）を、敵オブジェクトＥＯ１〜ＥＯ３等が既に配置されている仮想空間に新たに配置する。そして、仮想カメラから敵オブジェクトＥＯｎを見た仮想空間の画像（仮想世界画像）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、敵オブジェクトＥＯｎが実空間内に新たに配置されたように上側ＬＣＤ２２に表示される。そして、敵オブジェクトＥＯｎも、ユーザの攻撃対象となる。なお、第２の実施形態と同様に、カメラ画像ＣＩと同一化した平面ポリゴンから上記３次元モデル（立体ポリゴン）まで変化させるモーフィング処理を行いながら敵オブジェクトＥＯｎを出現させてもかまわない。
【０２２２】
ここで、実カメラで撮像されたリアルタイムの実世界画像（動画像）がカメラ画像ＣＩとして上側ＬＣＤ２２に表示されている場合、敵オブジェクトＥＯｎは、当該カメラ画像ＣＩにおいて顔認識されている顔画像の位置に追従するように表示される（例えば、図２８に示すカメラ画像ＣＩから図２９に示すカメラ画像ＣＩへの変化）。例えば、上記顔画像がテクスチャマッピングされた３次元モデル（ポリゴン）を上記顔認識された顔画像の位置に対応する上記仮想空間内の位置に配置し、仮想カメラから当該３次元モデルを見た仮想空間の画像（仮想世界画像）を、カメラ画像ＣＩから得られる実世界画像に合成することによって、敵オブジェクトＥＯｎが人物の顔と少なくとも一部重なって配置されているように上側ＬＣＤ２２に表示される。ここで、「敵オブジェクトＥＯｎが人物の顔と少なくとも一部重なって配置される」とは、敵オブジェクトＥＯｎが人物の顔の画像と同じ形状および同じサイズで完全に一致して重なる場合や、敵オブジェクトＥＯｎが人物の顔の画像より大きなサイズで当該顔の画像を全て包含するように重なる場合や、敵オブジェクトＥＯｎが人物の顔の画像より小さいサイズまたは同じサイズで当該顔の画像の一部と重なる場合等を含んでいる。このように、ユーザ自身が撮像している実世界のカメラ画像ＣＩにおける人物の顔が敵オブジェクトＥＯｎとなって新たに出現するとともに、カメラ画像ＣＩにおける当該顔の位置に敵オブジェクトＥＯｎが重なるように上側ＬＣＤ２２に表示される。
【０２２３】
例えば、ゲーム装置１０に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が上側ＬＣＤ２２に表示されている場合、実空間内においてゲーム装置１０の方向や位置（すなわち、実空間内における撮像アングルや撮像位置）を変えることによって、ゲーム装置１０で撮像されるリアルタイムの実世界画像も変化する。したがって、カメラ画像ＣＩを撮像するための撮像位置や撮像アングルが変化した場合、上側ＬＣＤ２２に表示されるカメラ画像ＣＩ内における被写体の位置やサイズも変化する。また、実空間内において上記顔画像を得た被写体や他の被写体が移動することによっても、上側ＬＣＤ２２に表示されるカメラ画像ＣＩ内における被写体の位置やサイズが変化する。このようにカメラ画像ＣＩ内における被写体の位置やサイズが変化した場合であっても、ゲーム装置１０が変化したカメラ画像ＣＩに対して顔認識処理を逐次行っているため、当該変化後の顔画像の位置やサイズを取得することができる。そして、ゲーム装置１０は、上記移動後の顔画像の位置やサイズに応じて、当該顔画像を貼り付ける３次元モデルの仮想空間における位置やサイズを調整することによって、敵オブジェクトＥＯｎが当該顔画像と重なるように上側ＬＣＤ２２に表示することができる。なお、敵オブジェクトＥＯ１〜ＥＯ３については、上記第１の実施形態や上記第２の実施形態と同様に、例えばゲーム装置１０の動きに応じて仮想カメラの撮像方向を変化させることによって、ゲーム装置１０の動きに応じて表示位置が移動するように上側ＬＣＤ２２に表示させればよい。
【０２２４】
さらに、実空間内においてカメラ画像ＣＩ内で顔認識されている人物（被写体）の表情が変化することも考えられる。この場合、カメラ画像ＣＩ内から顔認識されて敵オブジェクトＥＯｎとして用いられた最初の顔画像を継続して利用して敵オブジェクトＥＯｎを仮想空間に配置してもいいし、敵オブジェクトＥＯｎのテクスチャをリアルタイムに得られるカメラ画像ＣＩを逐次顔認識されて得られる顔画像を用いて更新して敵オブジェクトＥＯｎを仮想空間に配置してもかまわない。前者の場合は、敵オブジェクトＥＯｎに貼り付けられる顔画像が、仮想空間から消滅するまで出現したときのままとなる。後者の場合は、カメラ画像ＣＩ内で顔認識された顔画像が変化（例えば、被写体の表情が変化）した場合、敵オブジェクトＥＯｎに貼り付けられる顔画像も、当該変化に応じて逐次更新されることになる。
【０２２５】
このように、上述した実施形態に係る画像処理では、リアルタイムに撮像されている実世界画像内の顔画像が貼り付けられた立体オブジェクトが出現して、当該実世界画像に合成される。したがって、実カメラから得られた実世界画像に、当該実世界画像内の顔画像が抜け出たように表現された立体オブジェクトを示す仮想世界画像が合成されて表示されるため、当該立体オブジェクトが実空間内に存在しているような新たな画像を表示することができる。また、出現した立体オブジェクトが、貼り付ける顔画像を得た被写体の動きや変化に追従するように実世界画像に合成されるため、当該立体オブジェクトが実空間内に存在しているようにさらにリアルに表現することができる。さらに、カメラ画像ＣＩを背景として当該カメラ画像ＣＩとは無関係の敵オブジェクトＥＯを攻撃するようなゲームを行っている途中に、当該カメラ画像ＣＩから抜け出たように新たな敵オブジェクトＥＯｎが出現するため、当該ゲームをプレイしているユーザに驚きを与えることができる。また、カメラ画像ＣＩから抜け出たオブジェクトをゲーム中に新たに出現させるという新たなゲーム目的を加えることもできる。
【０２２６】
また、上述した説明では、ゲーム装置１０に生じる角速度を検出し、当該角速度を用いて実空間におけるゲーム装置１０の動きを算出する例を用いたが、他の方式を用いてゲーム装置１０の動きを算出してもかまわない。第１の例として、ゲーム装置１０に内蔵されている加速度センサ３９が検出した加速度を用いて、ゲーム装置１０の動きを算出してもかまわない。一例として、加速度センサ３９を搭載するゲーム装置１０が静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサ３９によって検出される加速度が重力加速度のみであるとして処理する場合）、ゲーム装置１０が現実に静的な状態であれば、検出された加速度に基づいてゲーム装置１０の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。他の例として、加速度センサ３９を搭載するゲーム装置１０が動的な状態であることを前提とする場合には、加速度センサ３９が重力加速度成分に加えて加速度センサ３９の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、ゲーム装置１０の動き方向等を知ることができる。具体的には、加速度センサ３９を備えるゲーム装置１０がユーザの手で動的に加速されて動かされる場合に、加速度センサ３９によって生成される加速度信号を処理することによって、ゲーム装置１０の様々な動きおよび／または位置を算出することができる。また、加速度センサ３９が動的な状態であることを前提とする場合であっても、加速度センサ３９の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するゲーム装置１０の傾きを知ることが可能である。
【０２２７】
第２の例として、ゲーム装置１０に内蔵されている実カメラ（外側撮像部２３または内側撮像部２４）によってリアルタイムで撮像されたカメラ画像の移動量を用いて、ゲーム装置１０の動きを算出してもかまわない。例えば、ゲーム装置１０が動くことによって、上記実カメラの撮像方向や撮像位置が変わった場合、当該実カメラで撮像されるカメラ画像も変化する。したがって、ゲーム装置１０に内蔵されている実カメラで撮像されるカメラ画像の変化を用いれば、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。一例として、ゲーム装置１０に内蔵されている実カメラで撮像されるカメラ画像から所定の物体を識別し、当該物体が撮像されている角度や撮像されている位置を時系列的に比較することによって、これらの変化量から当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。他の例として、ゲーム装置１０に内蔵されている実カメラで撮像されるカメラ画像全体に対して時系列的に比較することによって、当該画像全体の撮像方向や撮像範囲の変化量から、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。
【０２２８】
第３の例として、上述したゲーム装置１０に生じる角速度、ゲーム装置１０に生じる加速度、およびゲーム装置１０によって撮像されたカメラ画像の少なくとも２つを組み合わせて、ゲーム装置１０の動きを算出してもかまわない。これによって、１つのパラメータからゲーム装置１０の動きを算出する場合に当該動きの推定が難しい状況において、他のパラメータを組み合わせてゲーム装置１０の動きを算出することによって、当該状況を補ったゲーム装置１０の動きの算出が可能となる。一例として、上記第２の例によるゲーム装置１０の動きを算出では、撮像されたカメラ画像が時系列的に水平方向へ動いた場合、ゲーム装置１０の撮影角度が鉛直方向を中心として回転したのか、ゲーム装置１０が水平移動したのか、正確な判定が難しいことがある。この場合、ゲーム装置１０に生じる角速度を用いれば、ゲーム装置１０が回転移動したのか水平移動したのかを容易に判定することが可能となる。
【０２２９】
また、第４の例として、ゲーム装置１０の動きを、いわゆるＡＲ（拡張現実）の技術により算出してもよい。
【０２３０】
また、上述した説明では、上側ＬＣＤ２２に、外側撮像部２３および内側撮像部２４のいずれかから取得したカメラ画像ＣＩに基づいた、実世界の平面画像（上述した立体視可能な画像とは反対の意味での平面視の画像）が表示される例を用いたが、裸眼で立体視可能な画像（立体画像）を上側ＬＣＤ２２に表示してもよい。例えば、上述したように、ゲーム装置１０は、外側左撮像部２３ａおよび外側右撮像部２３ｂから取得したカメラ画像を用いた立体視可能な画像（立体画像）を上側ＬＣＤ２２に表示することが可能である。この場合、上側ＬＣＤ２２に表示された立体画像から敵オブジェクトＥＯや他のオブジェクトが抜け出てくるように描画される。
【０２３１】
例えば、上記立体画像から敵オブジェクトＥＯが抜け出てくるように描画する場合、外側左撮像部２３ａから得られた左目用画像および外側右撮像部２３ｂから得られた右目用画像を用いて、上述した画像処理を行う。具体的には、図１２に示した画像処理において、その一部がオブジェクトのテクスチャとして設定されるカメラ画像は、上記左目用画像および上記右目用画像の一方が用いられ、当該一方の画像から得られたテクスチャがマッピングされた敵オブジェクトＥＯが仮想空間に設定される。また、仮想空間に配置された敵オブジェクトＥＯ、マスクオブジェクトＭＯ、および弾オブジェクトＢＯを、２つの仮想カメラ（ステレオカメラ）から透視変換することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、左目用の実世界画像（上記ステップ５３で左目用画像をレンダリングした画像）と左目用仮想世界画像とを合成して左目用表示画像を生成し、右目用の実世界画像（上記ステップ５３で右目用画像をレンダリングした画像）と右目用仮想世界画像とを合成して右目用表示画像を生成し、当該左目用表示画像および当該右目用表示画像を上側ＬＣＤ２２に出力する。
【０２３２】
また、上述した説明では、ゲーム装置１０に内蔵する実カメラで撮像されたリアルタイムの動画像が上側ＬＣＤ２２に表示され、上記実カメラで撮像された動画像（カメラ画像）の中から当該カメラ画像の一部がテクスチャとして設定されたオブジェクトが登場するように表示されるが、本発明において上側ＬＣＤ２２に表示する画像は、様々なバリエーションが考えられる。第１の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側ＬＣＤ２２に表示される。この場合、上記動画像が上側ＬＣＤ２２に表示され、当該動画像の一部がテクスチャとして設定されたオブジェクトが当該動画像の中から登場することになる。第２の例として、ゲーム装置１０に内蔵する実カメラや他の実カメラから得られた静止画像が上側ＬＣＤ２２に表示される。この場合、実カメラから得られた静止画像が上側ＬＣＤ２２に表示され、当該静止画像の一部がテクスチャとして設定されたオブジェクトが当該静止画像の中から登場することになる。ここで、実カメラから得られる静止画像は、ゲーム装置１０に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもいいし、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもいいし、テレビジョン放送や他の装置から得られる静止画像でもよい。
【０２３３】
また、上記実施形態では、上側ＬＣＤ２２がパララックスバリア方式の液晶表示装置であるとして、視差バリアのＯＮ／ＯＦＦを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側ＬＣＤ２２としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部２３で撮像した２つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部２４で撮像した１つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部２４で撮像された画像を平面画像として表示することが可能である。
【０２３４】
また、上述した実施形態では、２画面分の液晶表示部の一例として、物理的に分離された下側ＬＣＤ１２および上側ＬＣＤ２２を互いに上下に配置した場合（上下２画面の場合）を説明した。しかしながら、２画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング１１の一方主面に下側ＬＣＤ１２および上側ＬＣＤ２２を左右に配置してもかまわない。また、下側ＬＣＤ１２と横幅が同じで縦の長さが２倍のサイズからなる縦長サイズのＬＣＤ（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）を下側ハウジング１１の一方主面に配設して、２つの画像（例えば、撮像画像と操作説明画面を示す画像等）を上下に表示（すなわち上下の境界部分無しに隣接して表示）するように構成してもよい。また、下側ＬＣＤ１２と縦幅が同じで横の長さが２倍のサイズからなる横長サイズのＬＣＤを下側ハウジング１１の一方主面に配設して、横方向に２つの画像を左右に表示（すなわち左右の境界部分無しに隣接して表示）するように構成してもよい。すなわち、物理的に１つの画面を２つに分割して使用することにより２つの画像を表示してもかまわない。また、物理的に１つの画面を２つに分割して使用することにより上記２つの画像を表示する場合、当該画面全面にタッチパネル１３を配設してもかまわない。
【０２３５】
また、上述した実施例では、ゲーム装置１０にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側ＬＣＤ２２の上面にタッチパネル１３を設けて上側ＬＣＤ２２に上述した下側ＬＣＤ１２に表示していた表示画像を表示してもよい。
【０２３６】
また、上記実施例では、携帯型のゲーム装置１０や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、１つのハウジングの主面に２つの表示部と、実カメラとを備えてもよい。
【０２３７】
また、上述した説明では画像処理をゲーム装置１０で行う例を用いたが、上記画像処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置１０が他の装置（例えば、サーバや他のゲーム装置）と通信可能に構成されている場合、上記画像処理における処理ステップは、ゲーム装置１０および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、実世界画像、敵オブジェクトＥＯ、およびマスクオブジェクトＭＯを設定する処理が行われ、ゲーム装置１０が実世界画像、敵オブジェクトＥＯ、およびマスクオブジェクトＭＯに関するデータを取得して、ステップ５６〜ステップ６１の処理を行うことが考えられる。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した画像処理と同様の処理が可能となる。このように、上述した画像処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置１０の情報処理部３１が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置１０が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０２３８】
また、上述したゲーム装置１０の形状や、それに設けられている各種操作ボタン１４、アナログスティック１５、タッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【０２３９】
また、上記画像処理プログラム（ゲームプログラム）は、外部メモリ４５やデータ保存用外部メモリ４６等の外部記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、上記プログラムは、ゲーム装置１０内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
【０２４０】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０２４１】
本発明に係る画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法は、実世界画像と仮想世界画像とを合成して新たな画像を生成することが可能であり、各種画像を表示装置に表示する処理を行う画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法等として有用である。
【符号の説明】
【０２４２】
１０…ゲーム装置
１１…下側ハウジング
１２…下側ＬＣＤ
１３…タッチパネル
１４…操作ボタン
１５…アナログスティック
１６…ＬＥＤ
１７…挿入口
１８…マイクロフォン用孔
１９…無線スイッチ
２１…上側ハウジング
２２…上側ＬＣＤ
２３…外側撮像部
２３ａ…外側左撮像部
２３ｂ…外側右撮像部
２４…内側撮像部
２５…３Ｄ調整スイッチ
２６…３Ｄインジケータ
２７…スクリーンカバー
２８…タッチペン
３１…情報処理部
３１１…ＣＰＵ
３１２…ＧＰＵ
３１３…ＶＲＡＭ
３２…メインメモリ
３３…外部メモリＩ／Ｆ
３４…データ保存用外部メモリＩ／Ｆ
３５…データ保存用内部メモリ
３６…無線通信モジュール
３７…ローカル通信モジュール
３８…ＲＴＣ
３９…加速度センサ
４０…角速度センサ
４１…電源回路
４２…Ｉ／Ｆ回路
４３…マイク
４４…スピーカ
４５…外部メモリ
４６…データ保存用外部メモリ
【図１】
0005602618.tif 000002
【図２】
0005602618.tif 000003
【図３Ａ】
0005602618.tif 000004
【図３Ｂ】
0005602618.tif 000005
【図３Ｃ】
0005602618.tif 000006
【図３Ｄ】
0005602618.tif 000007
【図４】
0005602618.tif 000008
【図５】
0005602618.tif 000009
【図６】
0005602618.tif 000010
【図７】
0005602618.tif 000011
【図８】
0005602618.tif 000012
【図９】
0005602618.tif 000013
【図１０】
0005602618.tif 000014
【図１１】
0005602618.tif 000015
【図１２】
0005602618.tif 000016
【図１３】
0005602618.tif 000017
【図１４】
0005602618.tif 000018
【図１５】
0005602618.tif 000019
【図１６】
0005602618.tif 000020
【図１７】
0005602618.tif 000021
【図１８】
0005602618.tif 000022
【図１９Ａ】
0005602618.tif 000023
【図１９Ｂ】
0005602618.tif 000024
【図２０】
0005602618.tif 000025
【図２１】
0005602618.tif 000026
【図２２】
0005602618.tif 000027
【図２３】
0005602618.tif 000028
【図２４】
0005602618.tif 000029
【図２５Ａ】
0005602618.tif 000030
【図２５Ｂ】
0005602618.tif 000031
【図２６Ａ】
0005602618.tif 000032
【図２６Ｂ】
0005602618.tif 000033
【図２７】
0005602618.tif 000034
【図２８】
0005602618.tif 000035
【図２９】
0005602618.tif 000036