説明

画像処理プログラム、画像処理装置、画像処理システム、および、画像処理方法

【課題】実カメラで撮像した画像に仮想オブジェクトを重畳表示した場合に、より自然な表示となる画像を生成する。
【解決手段】実カメラで実空間を撮像した実カメラ画像を取得し、当該取得した画像において、複数のサンプリング点の色情報を取得する。次に、取得した複数のサンプリング点の平均色を算出し、算出した平均色に基づいて、仮想空間に設定された光源の色や明るさに関するパラメータを設定する。パラメータが設定された光源で照らされた仮想空間に存在する仮想オブジェクトを、仮想カメラで撮像することにより、仮想オブジェクト画像を生成する。そして、実カメラ画像と仮想オブジェクト画像とを重ね合わせた重畳画像を生成して、表示装置に表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザにより視認可能な実空間に仮想オブジェクトの画像を重ね合わせて表示させる画像処理プログラム、画像処理装置、画像処理システム、および、画像処理方法に関する。
【背景技術】
【0002】
従来、実カメラで撮像した実空間の画像に仮想オブジェクトを重畳し、その仮想オブジェクトがあたかも実空間に存在するかのような画像を生成して表示装置に表示する装置が存在する。例えば、特許文献1に記載の装置では、実空間に配置された物体教示指標を実カメラで撮像して、実空間における位置および姿勢を算出する。そして、仮想空間において、3次元モデルを算出した位置および姿勢に配置して仮想カメラで撮像し、当該撮像した画像を実カメラで撮像した画像に重畳表示させている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−256876号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、撮像する実空間の環境がどのような状況であっても、仮想オブジェクトの表示態様は変化しないため、仮想オブジェクトが不自然に見えるという問題があった。例えば、実空間が暗い場合では、実カメラで撮像した画像も全体的に暗くなるが、重畳される仮想オブジェクトの明るさは変わらないため、仮想オブジェクトのみが明るく表示され、当該仮想オブジェクトが浮いたようになり、不自然な表示になることがあった。
【0005】
それ故、本発明の目的は、ユーザにより視認可能な実空間に仮想オブジェクトの画像を重ね合わせて表示する場合に、より自然な表示となる画像を生成する画像処理技術を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、実空間を撮像する実カメラと画面上で実空間を視認可能とする表示装置とに接続される画像処理装置のコンピュータを、実画像取得手段、色情報取得手段、光源設定手段、オブジェクト画像生成手段、および、表示制御手段として機能させる画像処理プログラムである。実画像取得手段は、上記実カメラにより撮像された実空間を示す実画像を取得する。色情報取得手段は、上記実画像取得手段によって取得された実画像の少なくとも1つの画素の色情報を取得する。光源設定手段は、上記色情報取得手段により取得された色情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する。オブジェクト画像生成手段は、上記光源設定手段によって設定された光源で照らされた上記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成する。表示制御手段は、上記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、上記オブジェクト画像生成手段により生成されたオブジェクト画像を上記表示装置に表示させる。
【0008】
上記によれば、実カメラによって撮像された実画像に基づいて、仮想空間の光源を設定し、当該光源で照らされた仮想オブジェクトを仮想カメラで撮像することができる。そして、画面上で視認可能な実空間に仮想オブジェクトを撮像して得られたオブジェクト画像を重ね合わせて、表示装置に表示させることができる。例えば、実空間を実カメラで撮像した実画像とオブジェクト画像とを重ね合わせて表示装置に表示させたり、画面を透過して視認される実空間にオブジェクト画像を重ね合わせて表示させたりすることができる。これにより、実空間の現実環境に応じたオブジェクト画像を生成することができ、実空間にオブジェクト画像を重ね合わせて表示した場合に、自然な表示にすることができる。
【0009】
また、本発明の他の構成では、上記画像処理プログラムは、上記実画像取得手段によって取得された実画像から、色が既知の特定対象物を検出する検出手段として、上記コンピュータを更に機能させてもよい。そして、上記色情報取得手段は、上記検出手段により検出された特定対象物に対応する画像の少なくとも1つの画素の色情報を取得してもよい。
【0010】
上記によれば、上記特定対象物に対応する画像に基づいて、色情報を取得することができる。特定対象物は、色が既知のものであるため、実環境の光の色や明るさを正確に取得することができる。
【0011】
また、本発明の他の構成では、上記色情報取得手段は、上記検出手段により検出された特定対象物に対応する画像の複数の点の色情報を取得して、取得した色情報の平均値を算出してもよい。この場合、上記光源設定手段は、上記色情報取得手段により算出された平均値に基づいて、上記パラメータを設定する。
【0012】
上記によれば、上記特定対象物の複数の点の色情報が取得される。このため、特定対象物の認識誤差がある場合や取得する点に上記特定対象物とは異なる所定の物体が存在する場合、取得する点に特定の光が当っている場合等であっても、その影響を低減することができる。
【0013】
また、本発明の他の構成では、上記色情報取得手段は、上記特定対象物の中で他の部分より明度が高い部分に対応する画像の少なくとも1つの画素の色情報を取得してもよい。
【0014】
上記によれば、比較的明度が低い部分の色情報を取得するよりも、実環境の光の色や明るさの情報を正確に取得することができる。
【0015】
また、本発明の他の構成では、上記表示制御手段は、上記特定対象物の上またはその近傍に上記オブジェクトが表示されるように、上記オブジェクト画像を重ね合わせてもよい。
【0016】
上記によれば、特定対象物に対応する画像の色情報が取得され、当該取得された色情報に基づいて、仮想光源が設定される。そして、設定された光源で仮想オブジェクトが照らされて、撮像される。仮想オブジェクトは、上記特定対象物の上または近傍にオブジェクトが表示される。このため、より自然な表示となる。すなわち、色情報を取得する点の近傍に仮想オブジェクトが配置されるため、その点の実環境と略一致した色や明るさで仮想オブジェクトが表示されるため、画面上で視認可能な実空間に仮想オブジェクトの画像が重ね合わせた場合に、より自然な画像となる。
【0017】
また、本発明の他の構成では、上記画像処理プログラムは、位置姿勢情報取得手段、および、仮想カメラ設定手段、として上記コンピュータを更に機能させてもよい。位置姿勢情報取得手段は、上記実空間における上記実カメラの位置および姿勢に応じた位置姿勢情報を取得する。仮想カメラ設定手段は、上記仮想空間内において、上記位置姿勢情報取得手段によって取得された位置姿勢情報に応じて仮想カメラの位置および姿勢を設定する。上記オブジェクト画像生成手段は、上記光源設定手段により上記パラメータを設定した光源で照らされた上記オブジェクトを、上記仮想カメラ設定手段によって設定された上記仮想カメラで撮像して、上記オブジェクト画像を生成する。
【0018】
なお、上記位置姿勢情報取得手段が取得する実カメラの位置および姿勢に応じた位置姿勢情報は、実空間に存在する所定の対象物と上記実カメラとの相対的な位置および姿勢であってもよい。すなわち、上記位置姿勢情報は、実空間の所定の対象物を基準とした実カメラの位置および姿勢であってもよいし、実カメラを基準とした実空間の所定の対象物の位置および姿勢であってもよい。また、上記位置姿勢情報は、絶対的な位置を検出する手段(例えば、GPS)や姿勢検出手段(例えば、角速度センサや加速度センサ、地磁気を検出する手段等)によって検出された実カメラの絶対的な位置および姿勢であってもよい。
【0019】
上記によれば、仮想オブジェクトがあたかも実空間に存在するような画像を生成することができる。すなわち、仮想カメラが実カメラの位置および姿勢と対応して設定されるため、例えば、実カメラの位置や姿勢が変化した場合に、仮想カメラの位置や姿勢も変化し、それに応じて、表示される仮想オブジェクトの見え方も変化する。従って、仮想オブジェクトがあたかも実空間に存在するかのような感覚をユーザに与えることができる。
【0020】
また、本発明の他の構成では、上記画像処理プログラムは、算出手段、および、仮想カメラ設定手段、として上記コンピュータを更に機能させてもよい。算出手段は、上記検出手段により検出された特定対象物と上記実カメラとの相対的な位置および姿勢を算出する。仮想カメラ設定手段は、上記算出手段による算出結果に応じて、上記仮想カメラの上記仮想空間内における位置および姿勢を設定する。そして、上記オブジェクト画像生成手段は、上記光源設定手段により上記パラメータを設定した光源で照らされた上記オブジェクトを、上記仮想カメラ設定手段によって設定された上記仮想カメラで撮像して、上記オブジェクト画像を生成する。
【0021】
上記によれば、上記特定対象物に対応する画像に基づいて、色情報を取得することができるとともに、上記特定対象物の検出結果に基づいて仮想カメラを設定することで、仮想オブジェクトがあたかも実空間に存在するような画像を生成することができる。すなわち、仮想カメラが実カメラの位置および姿勢と対応して設定されるため、例えば、実カメラの位置や姿勢が変化した場合に、仮想カメラの位置や姿勢も変化し、それに応じて、表示される仮想オブジェクトの見え方も変化する。従って、仮想オブジェクトがあたかも実空間に存在するかのような感覚をユーザに与えることができる。
【0022】
また、本発明の他の構成では、上記画像処理プログラムは、上記色情報取得手段が取得した色情報を記憶する記憶手段として、上記コンピュータを更に機能させてもよい。この場合、上記色情報取得手段は、上記記憶手段に記憶された過去の色情報と現在の色情報とを取得する。そして、上記光源設定手段は、上記色情報取得手段により取得された過去の色情報および現在の色情報に基づいて、上記パラメータを設定する。
【0023】
上記によれば、過去に取得された色情報と現在の色情報とに基づいて、光源のパラメータが設定される。このため、例えば、仮想オブジェクトの表示が急激に変化することを防止することができる。
【0024】
また、本発明の他の構成では、上記色情報取得手段は、上記記憶手段に記憶された過去の色情報と現在の色情報とを取得して、取得した色情報の平均値を算出する。上記光源設定手段は、上記色情報取得手段により算出された平均値に基づいて、上記パラメータを設定する。
【0025】
上記によれば、過去に取得された色情報と現在の色情報との平均が算出されるため、仮想オブジェクトの表示が急激に変化することを防止することができる。例えば、現在のフレームにおいて誤認識等によって誤った色情報が取得された場合であっても、仮想オブジェクトの表示は急激に変化せず、不自然な表示にならない。
【0026】
また、本発明の他の構成では、実空間を撮像する実カメラと画面上で実空間を視認可能とする表示装置とに接続される画像処理装置のコンピュータを、実画像取得手段、環境情報取得手段、光源設定手段、オブジェクト画像生成手段、および、表示制御手段として機能させる画像処理プログラムであってもよい。実画像取得手段は、上記実カメラにより撮像された実画像を取得する。環境情報取得手段は、上記実空間の色及び/又は明るさに関する情報を取得する。光源設定手段は、上記環境情報取得手段により取得された情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する。オブジェクト画像生成手段は、上記光源設定手段によって設定された光源で照らされた上記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成する。表示制御手段は、上記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、上記オブジェクト画像生成手段により生成されたオブジェクト画像を上記表示装置に表示させる。
【0027】
上記によれば、実空間の色及び/又は明るさに基づいて、仮想空間の光源を設定し、当該光源で照らされた仮想オブジェクトを仮想カメラで撮像することができる。そして、画面上で視認可能な実空間に仮想オブジェクトを撮像して得られたオブジェクト画像を重ね合わせて、表示装置に表示させることができる。これにより、実空間の現実環境に応じたオブジェクト画像を生成することができ、画面上で視認可能な実空間にオブジェクト画像を重ね合わせて表示した場合に、自然な表示にすることができる。
【0028】
また、本発明では、上記各手段を実現した画像処理装置であってもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの画像処理システムとして構成されてもよい。当該画像処理システムは、1つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。
【発明の効果】
【0029】
本発明によれば、実空間の現実環境に応じたオブジェクト画像を生成することができ、画面上で視認可能な実空間にオブジェクト画像を重ね合わせて表示した場合に、自然な表示にすることができる。
【図面の簡単な説明】
【0030】
【図1】開状態におけるゲーム装置10の正面図
【図2】開状態におけるゲーム装置10の右側面図
【図3】閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図
【図4】ゲーム装置10の内部構成を示すブロック図
【図5】本実施形態に係る画像処理が実行された場合において、実空間に予め配置されたマーカ61を外側撮像部23で撮像したときに上側LCD22に表示される画像の一例を示す図
【図6】仮想空間上の座標系の定義を示す図
【図7】仮想空間に仮想キャラクタ51が配置された様子を示す図
【図8】マーカ61を図5とは反対方向から撮像したときに上側LCD22に表示される画像の一例を示す図
【図9】実空間の色や明るさに応じて、仮想キャラクタ51の色や明るさが変化する様子を示す図
【図10】ゲーム装置10のRAMのメモリマップを示す図
【図11】本実施形態に係る画像処理の詳細を示すメインフローチャート
【図12】マーカ認識処理(ステップS2)の詳細を示すフローチャート
【図13】マーカ61を真上から見た場合のマーカ61のサンプリング点を示す図
【発明を実施するための形態】
【0031】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1〜図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0032】
まず、図1〜図3を参照して、ゲーム装置10の外観構成について説明する。図1〜図3に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング11および21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0033】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0034】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1〜図3に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0035】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0036】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0037】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、aボタン14B、bボタン14C、xボタン14D、yボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0038】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、および、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0039】
十字状に配置される、aボタン14B、bボタン14C、xボタン14D、yボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0040】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図4参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0041】
図3(a)は閉状態におけるゲーム装置10の左側面図であり、図3(b)は閉状態におけるゲーム装置10の正面図であり、図3(c)は閉状態におけるゲーム装置10の右側面図であり、図3(d)は閉状態におけるゲーム装置10の背面図である。図3(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。また、図3(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0042】
図3(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0043】
また、図3(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0044】
また、図1および図3(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3(c)参照)。
【0045】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0046】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1〜図3に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0047】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0048】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0049】
上側LCD22は、立体視可能な画像(立体視画像、立体画像ともいう)を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0050】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。また、これらの撮像部はいずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側撮像部(左)23aの撮像方向および外側撮像部(右)23bの撮像方向は、平行である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部23は、外側撮像部(左)23aおよび外側撮像部(右)23bの2つの撮像部で構成される。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0051】
図1の破線および図3(b)の実線で示されるように、外側撮像部23を構成する外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの撮像部を結んだ直線が上側LCD22の画面の横方向と平行になるように、外側撮像部(左)23aおよび外側撮像部(右)23bが配置される。図1の破線で示す23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側撮像部(左)23aおよび外側撮像部(右)23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側撮像部(左)23aは左側に外側撮像部(右)23bは右側にそれぞれ位置している。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部(左)23aは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部(右)23bは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、この範囲に限らない。
【0052】
なお、本実施例においては、外側撮像部(左)23aおよび外側撮像部(右)23はハウジングに固定されており、撮像方向を変更することはできない。
【0053】
また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0054】
このように、外側撮像部23の2つの撮像部(23aおよび23b)が、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0055】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0056】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3(b)に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部(外側撮像部(左)23aおよび外側撮像部(右)23b)の中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側撮像部23の左右の撮像部を上側ハウジング21の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部24が設けられる。図3(b)で示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。
【0057】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0058】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、3D調整スイッチ25以外のスイッチは全て下側ハウジング11に設けられる。
【0059】
3D調整スイッチ25は、図1および図2に示されるように、上側ハウジング21の正面および右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定されたり、立体画像の立体感が調整されてもよい。例えば、3D調整スイッチ25のスライダ25aの位置に応じて、後述する仮想カメラ(仮想ステレオカメラ)のカメラ間距離が設定されてもよい。また、当該仮想ステレオカメラの左仮想カメラによって撮像された左目用画像と右仮想カメラによって撮像された右目用画像との位置関係が調整されてもよい。具体的には、例えば、3D調整スイッチ25のスライダ25aが最上点(図1および図2では上方向)に存在する場合、上記左目用画像と右目用画像との横方向(上側LCD22の画面の横方向;図1の左右方向)の位置のずれが上限値に設定される。このように左目用画像と右目用画像の横方向のずれが上限値に設定されると、2つの画像の視差がより大きくなる。このため、ユーザが視差バリアを通して上側LCD22に表示された2つの画像を見ると、上側LCD22の画面から画像がより手前方向に飛び出したように見える。このように、3D調整スイッチ25を用いて、2つの画像の視差が調整されてもよい。
【0060】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0061】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0062】
(ゲーム装置10の内部構成)
次に、図4を参照して、ゲーム装置10の内部の電気的構成について説明する。図4は、ゲーム装置10の内部構成を示すブロック図である。図4に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0063】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する画像処理(図12)を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0064】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0065】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記画像処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0066】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0067】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0068】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0069】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出する。本実施形態では、情報処理部31は、加速度センサ39が検出した加速度に基づいて、ゲーム装置10の姿勢(傾き)を判定する。
【0070】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0071】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0072】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0073】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。
【0074】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0075】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。例えば、情報処理部31は外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。例えば、ユーザによるタッチパネル13を用いたタッチ操作によって使用する撮像部が選択される。撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0076】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0077】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。本実施形態では、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0078】
また、情報処理部31には、角速度センサ46が接続される。角速度センサ46は、各軸(x軸、y軸、z軸)周りの角速度を検出する。ゲーム装置10は、角速度センサ46が逐次検出する角速度に基づいて、実空間におけるゲーム装置10の姿勢を算出することができる。具体的には、ゲーム装置10は、角速度センサ46によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置10の回転角を算出することができる。
【0079】
(画像処理の概要)
次に、本実施形態に係るゲーム装置10において実行される画像処理の概要について説明する。本実施形態では、外側撮像部23を用いて実空間に存在する特定対象物(具体的には、後述するマーカ)を撮像した場合に、仮想オブジェクトが重畳表示される。ここで表示される当該仮想オブジェクトの色や明るさは、実空間の色や明るさに応じて変化する。以下では、まず、ゲーム装置10に表示される画像について説明した後、上記仮想オブジェクトの色や明るさが実空間の色や明るさに応じて変化することについて、説明する。
【0080】
図5は、本実施形態に係る画像処理が実行された場合において、実空間に予め配置されたマーカ61を外側撮像部23で撮像したときに上側LCD22に表示される画像の一例を示す図である。
【0081】
図5に示すように、ゲーム装置10の外側撮像部23の撮像方向の実空間には、マーカ61が配置される。マーカ61は、長方形の紙であって、その中心に矢印が描かれている。具体的には、マーカ61の中心には、所定の色で塗りつぶされた、マーカ61よりも小さな長方形の領域が形成されており、当該所定の色で塗りつぶされた長方形の領域の中心には、白抜きの矢印が描かれている。マーカ61の中心に描かれた矢印の方向は、マーカ61の長辺と平行である。ゲーム装置10の情報処理部31(CPU311)は、外側撮像部23によって撮像された画像に対して、例えばパターンマッチング等の画像処理を行うことによって、当該画像に含まれるマーカ61を検出することができる。外側撮像部23によって撮像された画像中にマーカ61が検出された場合、上側LCD22には、外側撮像部23によって撮像された画像に仮想キャラクタが表示される。外側撮像部23によって撮像された画像中にマーカ61が検出されない場合は、上側LCD22にマーカ61が検出されていないことを示すメッセージが表示されて、仮想キャラクタは表示されない。
【0082】
具体的には、マーカ61が検出された場合、上側LCD22には、外側撮像部23によって撮像された実画像(マーカ61と背景を含む実空間を撮像した画像)に、仮想キャラクタ51が重畳表示される。仮想キャラクタ51は、仮想空間に存在するキャラクタであり、例えば人を模した仮想オブジェクトでもよい。より具体的には、上側LCD22には、マーカ61の上に仮想キャラクタ51が乗っている様子が表示される。
【0083】
上側LCD22に表示される画像は立体視可能な画像である。すなわち、外側撮像部23によって撮像された実画像は、外側撮像部(左)23aによって撮像された左目用実画像と外側撮像部(右)23bによって撮像された右目用実画像とを含む。また、仮想キャラクタ51は、仮想空間に存在する仮想ステレオカメラ(左仮想カメラおよび右仮想カメラ)によって撮像されて、上記実画像に重畳表示される。具体的には、外側撮像部(左)23aによって撮像された左目用実画像に、左仮想カメラで仮想キャラクタ51を撮像した画像が重ね合わされて、左目用重畳画像が生成される。また、外側撮像部(右)23bによって撮像された右目用実画像に、右仮想カメラで仮想キャラクタ51を撮像した画像が重ね合わされて、右目用重畳画像が生成される。そして、上側LCD22にこれら2つの重畳画像が表示されて、視差バリアを介してユーザの左目に左目用重畳画像が、ユーザの右目に右目用重畳画像が視認される。これにより、ユーザは画像を立体的に視認することができる。
【0084】
仮想キャラクタ51は、仮想空間に配置されたオブジェクトである。図6は、仮想空間上の座標系の定義を示す図である。仮想空間は、マーカ61の中心を原点としたXYZ座標系(マーカ座標系)によって定義される。マーカ座標系は、マーカ61の矢印と同じ方向(前方向)にZ軸、矢印方向を基準として右向き(右方向)にX軸、マーカ61に対して垂直上向き(上方向)にY軸が設定される。このように、実空間に配置されたマーカ61を基準として仮想空間の座標系が定義されることにより、実空間と仮想空間とを対応付けることができる。このようにして定義された仮想空間上に仮想キャラクタ51が配置される。例えば、仮想キャラクタ51は、仮想空間の座標系(マーカ座標系)の原点(0,0,0)に配置され、その向き(姿勢)は、X軸をY軸周りに45度回転させた方向に設定される。
【0085】
図7は、仮想空間に仮想キャラクタ51が配置された様子を示す図である。図7に示すように、マーカ座標系の原点には、仮想キャラクタ51が配置され、当該仮想キャラクタ51は、仮想空間内に配置された左仮想カメラ53aおよび右仮想カメラ53bによって撮像される。左仮想カメラ53aは、ユーザの左目で視認される仮想空間の画像を撮像するためのものであり、右仮想カメラ53bは、ユーザの右目で視認される仮想空間の画像を撮像するためのものである。具体的には、左仮想カメラ53aのマーカ座標系における位置および姿勢は、実空間の外側撮像部(左)23aの位置および姿勢と一致される。また、右仮想カメラ53bのマーカ座標系における位置および姿勢は、実空間の外側撮像部(右)23bの位置および姿勢と一致される。
【0086】
このようにマーカ61に基づいて仮想空間が定義され、当該仮想空間に仮想キャラクタ51が配置された場合において、外側撮像部23の位置や撮像方向を変化させると、上側LCD22に表示される仮想キャラクタ51も変化する。図8は、マーカ61を図5とは反対方向から撮像したときに上側LCD22に表示される画像の一例を示す図である。図8では、ゲーム装置10(外側撮像部23)の位置および姿勢を固定して、図5に示すマーカ61を、その中心を通り当該マーカ61に垂直な軸の周りに180度回転させた場合に、上側LCD22に表示される画像が示されている。あるいは、図8では、図5に示すマーカ61を固定して、ゲーム装置10をマーカ61の中心を通り当該マーカ61に垂直な軸の周りに180度回転させた場合に、上側LCD22に表示される画像が示されている。
【0087】
図8に示すように、実空間におけるゲーム装置10(外側撮像部23)とマーカ61との位置関係(相対的な位置関係;距離や姿勢)が変化すると、上側LCD22に表示される仮想キャラクタ51も変化する。具体的には、図5に示すゲーム装置10とマーカ61との位置関係では仮想キャラクタ51の正面が表示されるが、図8に示すゲーム装置10とマーカ61との位置関係(図5とは反対方向)では仮想キャラクタ51の背面が表示される。すなわち、外側撮像部23の位置や姿勢を変化させると、その変化に応じて、左右の仮想カメラの位置や姿勢も変化する。このため、上側LCD22に表示される仮想キャラクタ51の見え方も変化する。これにより、仮想キャラクタ51は、あたかも実空間に存在するマーカ61の上に実在するかのように見える。
【0088】
次に、実空間の色や明るさに応じて仮想キャラクタ51が変化することについて説明する。図9は、実空間の色や明るさに応じて、仮想キャラクタ51の色や明るさが変化する様子を示す図である。
【0089】
図9では、実空間が図5に示す場合よりも暗い(実空間の照明あるいは太陽の光が図5よりも弱い)場合を示している。なお、図9における長方形で描かれた「実空間の背景」は、実際にはこのような形状を有する領域ではなく、ゲーム装置10が存在する空間全体、もしくは、外側撮像部23の撮像範囲全体を示している。図9に示すように、実空間が比較的暗い場合、実空間に存在するマーカ61の白色部分(矢印や外周部分)や背景の明るさ(輝度)は低くなる。このような環境でマーカ61を外側撮像部23で撮像すると、上側LCD22に表示される実画像は全体的に暗くなるとともに、仮想キャラクタ51も暗くなる。あるいは、実空間の照明の色が白色ではなく、例えば赤色である場合、外側撮像部23で撮像された実画像は全体的に赤色を帯びた画像となるとともに、仮想キャラクタ51も全体的に赤色を帯びた画像となる。このように、実空間の色や明るさに応じて、重畳して表示される仮想キャラクタ51の色や明るさも変化する。
【0090】
具体的には、ゲーム装置10は、外側撮像部23で撮像した実画像(左目用実画像および右目用実画像のうちの何れか一方)の中から、所定のサンプリング点を抽出し、当該サンプリング点の色情報(RGB値)を取得する。次に、取得されたサンプリング点の色情報に基づいて、仮想空間に設定された光源が設定される。そして、取得されたサンプリング点の色情報に基づいて設定された光源で仮想空間内の仮想キャラクタ51が照らされ、仮想カメラ(左仮想カメラ53aおよび右仮想カメラ53b)で撮像される。
【0091】
以上のように仮想空間の光源が実画像に基づいて設定されるため、実空間が暗い場合は、仮想キャラクタ51は暗く表示され、実空間が明るい場合は、仮想キャラクタ51も明るく表示される。また、実空間の照明が所定の色を帯びている場合、仮想キャラクタ51も当該所定の色を帯びて表示される。このため、実画像と仮想キャラクタ51を撮像した画像とを重ね合わせて表示した場合、仮想キャラクタ51は実画像に馴染み、あたかも仮想キャラクタ51が実空間に存在するような感覚をユーザに与えることができる。すなわち、例えば、実空間が暗くて実画像が暗く表示されている場合において、仮想キャラクタ51だけが明るく表示されると、仮想キャラクタ51が浮いたような画像となり、不自然な画像となる。このため、仮想キャラクタ51があたかも実空間に存在するような感覚をユーザに与えることができない。しかしながら、本実施形態では、実空間と同様の色や明るさで仮想オブジェクトが表示されるため、自然な表示となる。
【0092】
(画像処理の詳細)
次に、図10から図12を参照して、本実施形態に係る画像処理の詳細について説明する。まず、画像処理の際にメインメモリ32およびVRAM313(以下、これらを総称してRAMと呼ぶことがある)に記憶される主なデータについて説明する。図10は、ゲーム装置10のRAMのメモリマップを示す図である。図10に示されるように、RAMには、画像処理プログラム71、左目用実画像72L、右目用実画像72R、仮想キャラクタ情報73、左仮想カメラ情報74L、右仮想カメラ情報74R、左仮想オブジェクト画像75L、右仮想オブジェクト画像75R、色情報配列76、光源情報77等が格納される。
【0093】
画像処理プログラム71は、後述するフローチャートに示される画像処理を情報処理部31(CPU311)に実行させるためのプログラムである。
【0094】
左目用実画像72Lは、外側撮像部(左)23aによって撮像された、実空間を撮像した画像である。
【0095】
右目用実画像72Rは、外側撮像部(右)23bによって撮像された、実空間を撮像した画像である。
【0096】
仮想キャラクタ情報73は、仮想キャラクタ51に関連する情報である。具体的には、仮想キャラクタ情報73は、仮想キャラクタ51の形状を表す3次元モデルデータ(ポリゴンデータ)や、仮想キャラクタ51の模様をあらわすテクスチャデータ、仮想空間における仮想キャラクタ51の位置や姿勢の情報を含む。
【0097】
左仮想カメラ情報74Lは、仮想空間のおける左仮想カメラ53aの位置および姿勢を表す情報である。具体的には、左仮想カメラ情報74Lは、左目用実画像におけるマーカ61の位置および姿勢に基づいて算出される行列である。
【0098】
右仮想カメラ情報74Rは、仮想空間のおける右仮想カメラ53bの位置および姿勢を表す情報である。具体的には、右仮想カメラ情報74Rは、右目用実画像におけるマーカ61の位置および姿勢に基づいて算出される行列である。
【0099】
左仮想オブジェクト画像75Lは、左仮想カメラ53aによって仮想キャラクタ51を撮像した画像である。
【0100】
右仮想オブジェクト画像75Rは、右仮想カメラ53bによって仮想キャラクタ51を撮像した画像である。
【0101】
色情報配列76は、実画像(左目用実画像または右目用実画像)における所定のサンプリング点の色情報(RGB値)の集合である。実画像は、1フレーム(例えば1/30秒又は1/60秒。フレーム時間という)毎に取得される。ゲーム装置10は、実画像が取得されると、実画像から上記色情報を算出する。ゲーム装置10は、各フレームで算出した色情報を色情報配列76に時系列に格納する。すなわち、色情報配列76には、過去所定数フレーム分の色情報が含まれる。
【0102】
光源情報77は、仮想空間の光源のパラメータ(光源の色および明るさを示す複数のパラメータ)に関する情報である。
【0103】
(メインフローの説明)
次に、本実施形態に係る画像処理の詳細について、図11から図13を参照して説明する。図11は、本実施形態に係る画像処理の詳細を示すメインフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、図示しないROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、不揮発性メモリ(外部メモリ44等;コンピュータ読み取り可能な記憶媒体)に記憶された画像処理プログラムがRAM(具体的には、メインメモリ32)に読み込まれ、情報処理部31のCPU311によって当該プログラムの実行が開始される。図11のフローチャートに示す処理は、以上の処理が完了した後に情報処理部31(CPU311又はGPU312)によって行われる。なお、図11では、本発明に直接関連しない処理については記載を省略する。また、図11に示すステップS1〜ステップS9の処理ループは、1フレーム毎に繰り返し実行される。
【0104】
まず、ステップS1において、情報処理部31は、実カメラ画像を取得する。具体的には、情報処理部31は、外側撮像部23に対して、画像を撮像するための命令を送信する。当該命令に応じて外側撮像部(左)23aは左目用実画像72Lを、外側撮像部(右)23bは右目用実画像72Rを撮像する。そして、情報処理部31は、撮像された2つの画像(左目用実画像72Lおよび右目用実画像72R)を取得し、RAMに記憶する。次に、情報処理部31は、ステップS2の処理を実行する。
【0105】
ステップS2において、情報処理部31は、マーカ認識処理を実行する。マーカ認識処理は、ステップS1で取得した左目用実画像72Lおよび右目用実画像72Rを用いて、2つの画像に含まれるマーカ61を認識する処理である。マーカ認識処理においては、マーカの認識結果に応じて、仮想カメラ(左仮想カメラ53aおよび右仮想カメラ53b)が仮想空間に設定される。マーカ認識処理の詳細については、後述する。マーカ認識処理の後、情報処理部31は、次にステップS3の処理を実行する。
【0106】
ステップS3において、情報処理部31は、取得した画像における複数のサンプリング点の色情報を取得する。具体的には、情報処理部31は、左目用実画像72Lおよび右目用実画像72Rの何れか一方の画像を用いて、予め定められた全てのサンプリング点(1又は複数の画素によって表わされる点)を抽出し、当該抽出したサンプリング点の色情報(RGB値)を取得する。ここで、サンプリング点は、図13に示すように、マーカ61の白色の領域における予め定められた点である。図13は、マーカ61を真上から見た場合のマーカ61のサンプリング点を示す図である。図13においては、8つのサンプリング点が示されており、ステップS3においてはこれら全てのサンプリング点が抽出されて、各サンプリング点の色情報が取得される。なお、サンプリングの数はいくつでもよく、例えば、1点でもよいし、16点でもよい。情報処理部31は、次にステップS4の処理を実行する。
【0107】
ステップS4において、情報処理部31は、サンプリング点の平均色を算出する。具体的には、情報処理部31は、取得したサンプリング点のRGB値に基づいて、全サンプリング点の平均色(平均のRGB値)を算出し、色情報配列76に格納する。情報処理部31は、次にステップS5の処理を実行する。
【0108】
ステップS5において、情報処理部31は、過去所定数フレームとの平均色を算出する。具体的には、情報処理部31は、ステップS4で算出されたRGB値と、過去所定数(例えば数十)フレームにおいてステップS4で算出されたRGB値(色情報配列76に格納されている)とに基づいて、さらに平均色(RGB値)を算出する。情報処理部31は、次にステップS6の処理を実行する。
【0109】
ステップS6において、情報処理部31は、色情報の調整を行う。ここで、情報処理部31は、ステップS5で算出された平均色(RGB値)に所定の演算を行う(例えば、予め定められた値をかける)ことにより、ステップS5で算出された平均色を調整する。情報処理部31は、次にステップS7の処理を実行する。
【0110】
ステップS7において、情報処理部31は、光源の設定を行う。具体的には、情報処理部31は、ステップS7で調整した色情報に基づいて、仮想空間の光源(点光源または平行光源)のパラメータを設定し、光源情報77としてRAMに記憶する。光源のパラメータは、光源の色やその明るさ等を示すパラメータであって、画面全体に均一な影響を与えるパラメータや仮想キャラクタのマテリアルと相互作用して表示に影響を与えるパラメータである。情報処理部31は、次にステップS8の処理を実行する。
【0111】
ステップS8において、情報処理部31は、仮想オブジェクト画像生成処理を実行する。ここでは、仮想空間に存在する仮想キャラクタ51が、ステップS7で設定された光源によって照らされて、左右の仮想カメラによって撮像される。具体的には、情報処理部31は、仮想空間を左仮想カメラ53aで撮像することによって左仮想オブジェクト画像75Lを生成して、RAMに格納する。また、情報処理部31は、仮想空間を右仮想カメラ53bで撮像することによって右仮想オブジェクト画像75Rを生成して、RAMに格納する。上記のようにして算出された平均色に基づいて仮想空間の光源のパラメータが設定されることにより、例えば、算出された平均色が比較的暗い場合は、仮想キャラクタ51は暗く表示され、算出された平均色が赤色であれば、仮想キャラクタ51は赤色に表示される。情報処理部31は、次にステップS9の処理を実行する。
【0112】
ステップS9において、情報処理部31は、出力処理を実行する。出力処理が実行されることによって、上側LCD22に立体視可能な画像が表示される。具体的には、情報処理部31は、ステップS1で取得した実カメラ画像とステップS8で生成した仮想オブジェクト画像とを重ね合わせた重畳画像を生成する。具体的には、情報処理部31は、左目用実画像72Lと左仮想オブジェクト画像75Lとを重ね合わせた左目用重畳画像を生成し、右目用実画像72Rと右仮想オブジェクト画像75Rとを重ね合わせた右目用重畳画像を生成する。そして、情報処理部31は、生成した2つの重畳画像を上側LCD22に出力する。上側LCD22に表示された左目用重畳画像は視差バリアを介してユーザの左目で視認され、右目用重畳画像は視差バリアを介してユーザの右目で視認される。これにより、ユーザは立体感のある画像を視認することができる。
【0113】
なお、ステップS2において、左目用実画像72Lおよび右目用実画像72Rの何れか一方(双方でもよい)に、上記マーカが検出されない場合は、ステップS3〜S8の処理は実行されず、ステップS9の処理が実行される。この場合、ステップS9において、ステップ1で取得された左右の実画像に、マーカが検出されていないことを示すメッセージが重畳されて、上側LCD22に表示される。
【0114】
(マーカ認識処理の説明)
次に、上記マーカ認識処理の詳細について説明する。図12は、マーカ認識処理(ステップS2)の詳細を示すフローチャートである。
【0115】
ステップS21において、情報処理部31は、実カメラとマーカとの位置関係を算出する。具体的には、情報処理部31は、まず、パターンマッチング手法等によって左目用実画像72Lにマーカが含まれているか否かを判定する。そして、情報処理部31は、左目用実画像72Lに含まれるマーカの当該左目用実画像72Lにおける位置や大きさ、形状、および、マーカの矢印の方向等に基づいて、外側撮像部(左)23aと実空間に存在するマーカ61との位置関係を算出する。ここで、外側撮像部(左)23aとマーカ61との位置関係とは、マーカ61および外側撮像部(左)23aの何れか一方を基準とした場合の他方の3次元の位置および姿勢である。すなわち、上記位置関係は、マーカ61に対する外側撮像部(左)23aの相対的な位置および姿勢である。同様に、情報処理部31は、右目用実画像72Rを用いて、外側撮像部(右)23bと実空間に存在するマーカ61との位置関係を算出する。ここでは、マーカ61を基準とした外側撮像部(左)23aおよび外側撮像部(右)23bの相対的な位置および姿勢が行列としてそれぞれ算出される。
【0116】
より具体的には、ステップS21においては、マーカの認識結果に基づいて、マーカ座標系が設定されるとともに、マーカ61と外側撮像部(左)23aとの位置関係が算出される(図7参照)。マーカ座標系の原点は、マーカ61の中心に設定される。また、マーカ座標系のZ軸は、マーカ61の矢印の方向と平行に設定され(マーカ61の長辺と平行に設定され)、マーカ座標系のX軸は、マーカ61の短辺と平行であって、マーカの矢印の方向を基準として右向きに設定される。また、マーカ座標系のY軸は、マーカ61に対して垂直上向きに設定される(長方形のマーカ61の上向きの法線方向に設定される)。マーカ座標系は、仮想空間を定義する座標系であり、実空間と仮想空間とを対応付ける。すなわち、マーカ座標系における原点は、仮想空間の原点であって、実空間におけるマーカ61の中心でもある。
【0117】
そして、マーカ61に対する外側撮像部(左)23aの相対的な位置および姿勢が行列として算出される。同様に、マーカ61に対する外側撮像部(右)23bの相対的な位置および姿勢が行列として算出される。なお、外側撮像部(左)23aおよび外側撮像部(右)23bは、これらの撮像方向が平行で、かつ、撮像方向に対して回転しないようにして配設されている。すなわち、外側撮像部(左)23aの姿勢と外側撮像部(右)23bの姿勢とは常に一致する。また、外側撮像部(左)23aと外側撮像部(右)23bとは、所定の間隔で配置されている。このため、例えば、左目用実画像72Lに基づいて外側撮像部(左)23aの位置および姿勢が算出されると、右目用実画像72Rを用いなくても、外側撮像部(右)23bの位置および姿勢は算出可能である。ステップS21の後、情報処理部31は、次にステップS22の処理を実行する。
【0118】
ステップS22において、情報処理部31は、左右の仮想カメラの位置および姿勢を決定する。ここでは、左右の仮想カメラの位置および姿勢は、外側撮像部23の位置および姿勢と一致する。すなわち、左仮想カメラ53aの仮想空間における位置および姿勢は、外側撮像部(左)23aの位置および姿勢と一致するように設定される。また、右仮想カメラ53bの仮想空間における位置および姿勢は、外側撮像部(右)23bの位置および姿勢と一致するように設定される。具体的には、左仮想カメラ53aの位置および姿勢は、行列(左ビュー行列)として表され、ステップS21で算出された外側撮像部(左)23aの位置および姿勢を表す行列が、左仮想カメラ情報74LとしてRAMに保存される。同様に、右仮想カメラ53bの位置および姿勢は、行列(右ビュー行列)として表され、ステップS21で算出された外側撮像部(右)23bの位置および姿勢を表す行列が、右仮想カメラ情報74RとしてRAMに保存される。なお、上述のように外側撮像部(左)23aの姿勢と外側撮像部(右)23bの姿勢とは常に一致するため、左仮想カメラ53aの姿勢および右仮想カメラ53bの姿勢も一致する。
【0119】
以上のように、本実施形態では、実画像における所定の点の色情報が取得されて、当該取得された色情報に基づいて、仮想空間の光源のパラメータ(光源の色または明るさに関するパラメータ)が設定される。設定された光源によって仮想キャラクタが照らされて、仮想カメラによって撮像される。そして、仮想カメラによって撮像された仮想キャラクタが実画像に重畳されて表示される。これにより、実空間の環境に応じて仮想キャラクタの表示が変化するため、仮想キャラクタの表示が自然となる。また、仮想空間が実空間と対応されて設定される。そして、仮想カメラが実カメラ(外側撮像部23)の位置および姿勢と一致して設定されるため、仮想空間に存在する仮想キャラクタが、あたかも実空間に存在するかのような感覚をユーザに与えることができる。
【0120】
また、本実施形態では、マーカ61の白色領域の点をサンプリング点として抽出し、当該点の色情報を取得した。これにより、実環境の色や明るさをより正確に認識することができる。例えば、マーカ61以外の任意の特定対象物について色情報を取得しても、当該特定対象物の元来の色(白色光を当てた時の色)が既知でなければ、どのような色の光が当該特定対象物に当たったのかを判別し難い。しかしながら、本実施形態では、既知の色、特に白色部分の色情報を取得するため、当該部分に当たった光の色や明るさを正確に知ることができる。
【0121】
また、本実施形態では、複数のサンプリング点の色情報を取得し、平均色を算出した。これにより、マーカ61の一部に他の物体が存在する場合や特定の光が照射された場合であっても、実環境の光を取得する際のこれらの影響を小さくすることができる。例えば、マーカ61上の1点のみを抽出する場合において、当該点にユーザの指がかかっている場合や当該点(当該点付近)にのみ有色の光が当たっている場合は、その点の色情報に基づいて仮想光源が設定されるため、仮想キャラクタは不自然な表示となる。しかしながら、本実施形態では、複数の点を抽出して平均色を算出するため、このような不自然な表示とはならない。
【0122】
また、本実施形態では、今回のフレームで算出した色情報と、過去所定数フレームで算出した色情報との平均色が算出されて、光源が設定される。このため、算出された平均色が急激に変化した場合であっても、表示される仮想キャラクタの色や明るさが急激に変化することがなく、また、誤差や誤認識による影響を小さくすることができ、自然な表示となる。
【0123】
また、本実施形態では、仮想キャラクタ51は、サンプリング点の近傍に配置されて、表示された。例えば、仮想キャラクタが表示される位置とサンプリング点の位置とが異なる場合において、実環境において仮想キャラクタが表示される位置にスポットライトが当たっており、サンプリング点にスポットライトが当たっていない場合、仮想キャラクタは暗く表示されて、不自然な表示となる。しかしながら、本実施形態では、仮想キャラクタが表示される近傍の実空間の点をサンプリング点として抽出することにより、不自然な表示にならない。
【0124】
(変形例)
なお、本実施形態では、仮想オブジェクトとして人を模した仮想キャラクタを仮想空間に配置した。他の実施形態では、仮想オブジェクトは、どのようなオブジェクトであってもよく、例えば、動物を模したオブジェクト、植物を模したオブジェクト、ロボットのオブジェクト等であってもよい。
【0125】
また、本実施形態では、立体視可能な画像を表示するため、外側撮像部23によって左右の実画像を取得し、仮想カメラによって左右の画像を取得した。他の実施形態では、実カメラによって撮像した1つの実画像に、仮想カメラによって撮像した1つの画像を重ね合わせることにより、平面画像を表示してもよい。
【0126】
また、本実施形態では、マーカ61を認識することによって、実空間と対応した仮想空間を設定し(マーカ61上にマーカ座標系を設定し)、仮想カメラを実カメラ(外側撮像部23)の位置および姿勢に一致するように設定した。これにより、仮想空間に配置された仮想オブジェクトがあたかも実空間に存在するかのような感覚(拡張現実感)をユーザに与えた。他の実施形態では、実カメラによって撮像された実画像に、仮想オブジェクトを単に重畳表示するだけでもよい。すなわち、他の実施形態では、仮想空間は必ずしも実空間と対応されて設定される必要はない。実カメラによって撮像された実画像の一部を抽出して色情報を取得し、取得した色情報に基づいて仮想の光源が設定され、当該光源で照らされた仮想オブジェクトを実画像に重畳表示することにより、仮想オブジェクトの画像が実画像に馴染み、自然な表示となる。
【0127】
また、本実施形態では、マーカ61を用いて仮想空間を設定するとともに、マーカ61の所定点を抽出して色情報を取得したが、他の実施形態では、マーカ61とは異なる特定対象物の所定点を抽出して色情報を取得してもよい。すなわち、仮想空間を設定するために用いられるマーカと、色情報を取得するために用いられる特定対象物とは、異なるものであってもよい。
【0128】
また、本実施形態では、実画像に含まれるマーカ61の白色領域をサンプリング点として抽出し、色情報を取得したが、他の実施形態では、マーカ61の所定の色で塗りつぶされた領域を抽出し、色情報を取得してもよい。また、他の実施形態では、マーカではなく、実画像の他の任意の領域の少なくとも1つの画素を抽出して、色情報を取得してもよい。例えば、実空間に配置された所定の色の紙を外側撮像部23で撮像して当該紙の上に仮想オブジェクトを表示する場合、実空間の照明の光が白色であっても、仮想オブジェクトが上記紙と同系色で表示される方が、自然に見えることがある。
【0129】
また、本実施形態では、複数のサンプリング点の色情報を取得して、平均色を算出し、当該平均色に基づいて、仮想光源の色に関するパラメータ(色および明るさを含む)を設定した。他の実施形態では、複数のサンプリング点を抽出して、例えば、明度が最も高い点の色情報を取得し、当該取得した色情報に基づいて仮想光源が設定されてもよい。すなわち、例えば、実カメラで撮像された実画像における最も明るい領域の色情報に基づいて、仮想光源が設定されてもよい。
【0130】
また、本実施形態では、実画像の所定点の色情報に基づいて、仮想光源のパラメータ(色や明るさに関するパラメータ)が設定された。他の実施形態では、仮想光源の色や明るさに関するパラメータのみならず、仮想光源の位置や光源の種類等が、上記実画像の色情報に基づいて設定されてもよい。例えば、実カメラによって撮像された画像において、特定の明るい領域が存在する場合、当該領域に所定の方向からスポットライトが当っていると推定することができる。さらに、その領域の形状に基づいて、スポットライトの方向を推定することができる(例えば、明るい領域の実空間における形状が円であれば真上から、明るい領域の実空間における形状が楕円であれば斜めからスポットライトが当てられていると推定することができる)。また、例えば、マーカ61の周辺に立体的な物体が撮像されている場合、当該物体の大きさおよび当該物体によってできる影の大きさに基づいて、実空間の照明の位置(光が照射される方向)を推定することができる。すなわち、実カメラによって撮像された実画像の中の画素の色情報を取得し、取得した色情報に基づいて、仮想光源の位置や種類、色、明るさ等を設定してもよい。
【0131】
また、本実施形態では、過去所定数フレームで算出された色情報と、現在のフレームで算出された色情報との平均色を算出し、当該平均色に基づいて光源のパラメータが設定された。他の実施形態では、過去所定数フレームで算出された色情報と、現在のフレームで算出された色情報とに基づいて、光源のパラメータが設定されてもよい。すなわち、必ずしも現在のフレームで算出された色情報と過去数フレームで算出された色情報との平均色が算出される必要はない。例えば、現在のフレームで算出された色情報と過去所定数フレームで算出された色情報とを比較して、その差が所定の閾値未満であれば、現在のフレームで算出された色情報を用いて、光源のパラメータが設定されてもよい。また、過去所定数フレームで算出された色情報と、現在のフレームで算出された色情報とを用いて所定の演算を行い(例えば、加重平均等)、当該演算結果に基づいて光源のパラメータが設定されてもよい。
【0132】
また、本実施形態では、左目用実画像および右目用実画像の何れかを用いて色情報を取得したが、他の実施形態では、左目用実画像および右目用実画像の双方を用いて色情報を取得してもよい。例えば、左目用実画像を用いて仮想光源を設定し、当該左目用実画像を用いて設定された仮想光源で照らされた仮想オブジェクトを左仮想カメラで撮像するとともに、右目用実画像を用いて仮想光源を設定し、当該右目用実画像を用いて設定された仮想光源で照らされた仮想オブジェクトを右仮想カメラで撮像してもよい。
【0133】
また、本実施形態では、色情報としてRGB値を取得したが、取得する色情報は、明るさ(明度)のみであってもよい。例えば、RGB値のうち、最大明度が取得されてもよい。また、本実施形態では、仮想光源の色および明るさが設定されたが、他の実施形態では、仮想光源の色が固定(例えば、白色)されて、明るさのみが設定されてもよい。
【0134】
また、本実施形態では、実カメラ(外側撮像部23)で撮像した実画像に基づいて、実空間の光の色や明るさ等を推定して、仮想光源の色や明るさ等を設定した。他の実施形態では、実空間の照明環境(光の色や明るさ)に関する情報を他の手段(例えば、光センサ等)によって取得し、当該取得した情報に基づいて、仮想光源を設定してもよい。すなわち、実空間の色や明るさに関する情報は、上述のように実画像に基づいて取得されてもよいし、光センサ等の他の検出手段の検出結果に基づいて取得されてもよい。
【0135】
また、本実施形態では、マーカ61を外側撮像部23で撮像することによって、外側撮像部23とマーカ61との位置関係(相対的な位置および姿勢)を算出した。そして、算出した位置関係に基づいて、仮想空間(マーカ座標系)を定義した。他の実施形態では、マーカ61に限らず、他の物体を撮像画像から認識して、上記位置関係が算出されてもよい。例えば、実空間に存在する所定の物体(例えば、実空間に存在する椅子やテーブル等でもよい)をパターンマッチング等の画像認識により検出し、上記位置関係が算出されて、仮想空間が定義されてもよい。すなわち、他の実施形態では、実空間に存在する特定対象物(上記マーカや所定の物体)を撮像画像から認識して、当該特定対象物と外側撮像部23との位置関係が算出されてもよい。また、特定対象物は、実カメラによって撮像された画像に基づいて認識されず、他の認識手段(例えば、超音波センサ等でもよい)によって認識されてもよい。
【0136】
また、他の実施形態では、GPSや加速度センサ、角速度センサ、地磁気センサ等によって、実カメラの位置および姿勢が検出されてもよい。そして、検出された位置および姿勢に基づいて、仮想空間内の仮想カメラの位置および姿勢が設定され、実カメラで撮像した画像と仮想カメラで仮想空間を撮像した画像とを重畳してもよい。例えば、実空間に対応した仮想空間の所定の位置に仮想オブジェクトが配置され、当該仮想空間の所定の位置に対応する実空間の位置を所定の方向から実カメラで撮像してもよい。この場合、GPSや姿勢検出手段(加速度センサや角速度センサ、地磁気センサ等)によって実カメラの位置および姿勢を検出することができ、当該実カメラの位置および姿勢に一致するように仮想空間に仮想カメラを設定することができる。このようにして実カメラで撮像された画像と仮想カメラで撮像された画像とを重ね合わせることにより、実空間のその位置に仮想オブジェクトが存在するような写真を撮影することができる。
【0137】
また、本実施形態では、ビデオシースルー方式を用いて拡張現実感を実現した。すなわち、本実施形態では、外側撮像部23によって撮像された画像と、仮想カメラ(左右の仮想カメラ)によって撮像された画像とが重ね合わされて重畳画像が生成され、当該重畳画像が上側LCD22に表示された。他の実施形態では、光学シースルー方式により拡張現実感を実現してもよい。例えば、実空間に配置されたマーカを検出するためのカメラを備えたヘッドマウンドディスプレイをユーザが装着し、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して実空間を視認できるようになっている。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されている。さらに、このディスプレイ部は液晶表示装置等を備え、この液晶表示装置等にコンピュータにより生成した仮想オブジェクトの画像を表示させ、この液晶表示装置からの光をハーフミラー等で反射させてユーザの網膜に導くことができるようになっている。すなわち、上記ディスプレイ部は、仮想オブジェクトを撮像した画像が表示される表示画面にもなるし、現実空間を透過するメガネのレンズにもなる。これにより、ユーザは、現実空間と仮想オブジェクトの画像とが重ね合わせられた像を視認することができる。このように、レンズを介して透過される実空間に、仮想オブジェクトを仮想カメラで撮像した画像が重ね合わされてもよいし、実空間を実カメラで撮像した実画像に仮想オブジェクトを仮想カメラで撮像した画像が重ね合わされてもよい。すなわち、画面上で視認可能な実空間(画面に表示された実画像中の実空間、または、画面を透過して視認される実空間)に重ね合わせてユーザに視認されるように、仮想オブジェクトが表示されてもよい。なお、ヘッドマウンドディスプレイに備えられたカメラは仮想光源を設定するために用いられ、設定された光源に応じて仮想オブジェクトの画像が生成される。
【0138】
また、他の実施形態では、上述した撮影処理の方法は、ゲーム装置に限らず任意の電子機器、例えば、PDA(Personal Digital Assistant)や高機能携帯電話、カメラ(装置としてのカメラ)等に適用されてもよい。
【0139】
また、本実施形態では、表示装置として裸眼で立体視画像を表示可能なLCDが用いられた。他の実施形態では、時分割方式や偏向方式、アナグリフ方式(赤青眼鏡方式)などの眼鏡を用いて立体表示を行うような場合でも、本発明は適用可能である。
【0140】
また、他の実施形態では、有線や無線等で通信可能に接続された複数の情報処理装置が各処理を分担して処理することにより、上述した画像処理方法を実現する画像処理システムとして構築されてもよい。例えば、外側撮像部23が情報処理装置と分離された構成であって、外側撮像部23が情報処理装置に無線等で接続されてもよい。また、情報処理装置と表示装置が分離された構成で、互いに接続されてもよい。また、外側撮像部23の位置および姿勢が情報処理装置と分離した検出手段によって検出され、当該検出結果が情報処理装置に送信されてもよい。
【0141】
また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよい。
【0142】
また、上記画像処理プログラムは、上記メモリに限らず、光ディスクや磁気ディスク等、コンピュータ読み取り可能な記憶媒体に記憶されてゲーム装置10に提供されてもよい。また、例えば、ネットワーク上のサーバのRAMに上記画像処理プログラムが記憶され、ゲーム装置10が当該ネットワークに接続されて、当該画像処理プログラムがゲーム装置10に提供されてもよい。
【符号の説明】
【0143】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
51 仮想キャラクタ
53a 左仮想カメラ
53b 右仮想カメラ
61 マーカ

【特許請求の範囲】
【請求項1】
実空間を撮像する実カメラと画面上で実空間を視認可能とする表示装置とに接続される画像処理装置のコンピュータを、
前記実カメラにより撮像された実空間を示す実画像を取得する実画像取得手段、
前記実画像取得手段によって取得された実画像の少なくとも1つの画素の色情報を取得する色情報取得手段、
前記色情報取得手段により取得された色情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する光源設定手段、
前記光源設定手段によって設定された光源で照らされた前記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成するオブジェクト画像生成手段、および、
前記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、前記オブジェクト画像生成手段により生成されたオブジェクト画像を前記表示装置に表示させる表示制御手段として機能させる、画像処理プログラム。
【請求項2】
前記実画像取得手段によって取得された実画像から、色が既知の特定対象物を検出する検出手段として、前記コンピュータを更に機能させ、
前記色情報取得手段は、前記検出手段により検出された特定対象物に対応する画像の少なくとも1つの画素の色情報を取得する、請求項1に記載の画像処理プログラム。
【請求項3】
前記色情報取得手段は、前記検出手段により検出された特定対象物に対応する画像の複数の点の色情報を取得して、取得した色情報の平均値を算出し、
前記光源設定手段は、前記色情報取得手段により算出された平均値に基づいて、前記パラメータを設定する、請求項2に記載の画像処理プログラム。
【請求項4】
前記色情報取得手段は、前記特定対象物の中で他の部分より明度が高い部分に対応する画像の少なくとも1つの画素の色情報を取得する、請求項2又は3に記載の画像処理プログラム。
【請求項5】
前記表示制御手段は、前記特定対象物の上またはその近傍に前記オブジェクトが表示されるように、前記オブジェクト画像を前記表示装置に表示させる、請求項2から4の何れかに記載の画像処理プログラム。
【請求項6】
前記実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段、および、
前記仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に応じて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段、として前記コンピュータを更に機能させ、
前記オブジェクト画像生成手段は、前記光源設定手段により前記パラメータを設定した光源で照らされた前記オブジェクトを、前記仮想カメラ設定手段によって設定された前記仮想カメラで撮像して、前記オブジェクト画像を生成する、請求項1に記載の画像処理プログラム。
【請求項7】
前記検出手段により検出された特定対象物と前記実カメラとの相対的な位置および姿勢を算出する算出手段、および、
前記算出手段による算出結果に応じて、前記仮想カメラの前記仮想空間内における位置および姿勢を設定する仮想カメラ設定手段、として前記コンピュータを更に機能させ、
前記オブジェクト画像生成手段は、前記光源設定手段により前記パラメータを設定した光源で照らされた前記オブジェクトを、前記仮想カメラ設定手段によって設定された前記仮想カメラで撮像して、前記オブジェクト画像を生成する、請求項2から5の何れかに記載の画像処理プログラム。
【請求項8】
前記色情報取得手段が取得した色情報を記憶する記憶手段として、前記コンピュータを更に機能させ、
前記色情報取得手段は、前記記憶手段に記憶された過去の色情報と現在の色情報とを取得し、
前記光源設定手段は、前記色情報取得手段により取得された過去の色情報および現在の色情報に基づいて、前記パラメータを設定する、請求項1から7の何れかに記載の画像処理プログラム。
【請求項9】
前記色情報取得手段は、前記記憶手段に記憶された過去の色情報と現在の色情報とを取得して、取得した色情報の平均値を算出し、
前記光源設定手段は、前記色情報取得手段により算出された平均値に基づいて、前記パラメータを設定する、請求項8に記載の画像処理プログラム。
【請求項10】
実空間を撮像する実カメラと画面上で実空間を視認可能とする表示装置とに接続される画像処理装置のコンピュータを、
前記実カメラにより撮像された実空間を示す実画像を取得する実画像取得手段、
前記実空間の色及び/又は明るさに関する情報を取得する環境情報取得手段、
前記環境情報取得手段により取得された情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する光源設定手段、
前記光源設定手段によって設定された光源で照らされた前記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成するオブジェクト画像生成手段、および、
前記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、前記オブジェクト画像生成手段により生成されたオブジェクト画像を前記表示装置に表示させる表示制御手段として機能させる、画像処理プログラム。
【請求項11】
実空間を撮像する実カメラと画面上で実空間を視認可能とする表示装置とに接続される画像処理装置であって、
前記実カメラにより撮像された実空間を示す実画像を取得する実画像取得手段と、
前記実画像取得手段によって取得された実画像の少なくとも1つの画素の色情報を取得する色情報取得手段と、
前記色情報取得手段により取得された色情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する光源設定手段と、
前記光源設定手段によって設定された光源で照らされた前記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成するオブジェクト画像生成手段と、
前記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、前記オブジェクト画像生成手段により生成されたオブジェクト画像を前記表示装置に表示させる表示制御手段とを備える、画像処理装置。
【請求項12】
実空間を撮像する実カメラと、
画面上で実空間を視認可能とする表示装置と、
前記実カメラにより撮像された実空間を示す実画像を取得する実画像取得手段と、
前記実画像取得手段によって取得された実画像の少なくとも1つの画素の色情報を取得する色情報取得手段と、
前記色情報取得手段により取得された色情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する光源設定手段と、
前記光源設定手段によって設定された光源で照らされた前記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成するオブジェクト画像生成手段と、
前記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、前記オブジェクト画像生成手段により生成されたオブジェクト画像を前記表示装置に表示させる表示制御手段とを備える、画像処理システム。
【請求項13】
画面上で実空間を視認可能とする表示装置に画像を表示させる画像処理方法であって、
実空間を撮像する実カメラにより撮像された実画像を取得する実画像取得ステップと、
前記実画像取得ステップで取得された実画像の少なくとも1つの画素の色情報を取得する色情報取得ステップと、
前記色情報取得ステップで取得された色情報に基づいて、仮想空間内に配置される光源の色及び/又は明るさに関するパラメータを設定する光源設定ステップと、
前記光源設定ステップで設定された光源で照らされた前記仮想空間内のオブジェクトを仮想カメラで撮像して得られるオブジェクト画像を生成するオブジェクト画像生成ステップと、
前記画面上で視認可能な実空間に重ね合わせてユーザに視認されるように、前記オブジェクト画像生成ステップで生成されたオブジェクト画像を前記表示装置に表示させる表示制御ステップとを備える、画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−69074(P2012−69074A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−215653(P2010−215653)
【出願日】平成22年9月27日(2010.9.27)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(391041718)株式会社ハル研究所 (38)
【Fターム(参考)】