【文献】
近江幹,iPhone&iPod touchの最新アプリをチェック! +APPs,Mac Fan 第17巻 第1号,日本,株式会社毎日コミュニケーションズ,2009年 1月 1日,第17巻 第1号,p.186-186
【文献】
大崎誠,びっくりする写真が簡単に作れる マジカルフォトレタッチ術,PC Japan 第13巻 第11号,日本,ソフトバンククリエイティブ株式会社,2008年11月 1日,第13巻 第11号,p.82-89
(58)【調査した分野】(Int.Cl.,DB名)
前記コンピュータを、前記画像処理手段によって画像処理が施された前記第1撮像画像を、前記撮像装置が備える表示手段に表示させる第1表示制御手段として更に機能させる、請求項1に記載の画像生成プログラム。
前記コンピュータを、前記撮像部によってリアルタイムに撮像される画像の代わりに、当該画像を含まない代替画像を前記撮像装置が備える表示手段に表示させる第2表示制御手段として更に機能させる、請求項1又は3に記載の画像生成プログラム。
前記画像処理方法選択手段は、前記第1撮像画像に顔画像が含まれていると前記第1判定手段によって判定された場合に、当該顔画像を複製して前記第1撮像画像に挿入する画像処理を含む前記複数の画像処理から、いずれかの画像処理をランダムに選択する、請求項1に記載の画像生成プログラム。
前記画像処理方法選択手段は、前記第2撮像画像に顔画像が含まれていると前記第2判定手段によって判定された場合に、当該顔画像を前記第1撮像画像に挿入する画像処理を含む前記複数の画像処理から、いずれかの画像処理をランダムに選択する、請求項2に記載の画像生成プログラム。
前記画像処理方法選択手段は、前記第1撮像画像に顔画像が含まれていると前記第1判定手段によって判定され、且つ前記第2撮像画像に顔画像が含まれていると前記第2判定手段によって判定された場合に、前記第1撮像画像に含まれている顔画像を前記第2撮像画像に含まれている顔画像に差し替える画像処理を含む前記複数の画像処理から、いずれかの画像処理をランダムに選択する、請求項2に記載の画像生成プログラム。
前記画像処理方法選択手段は、前記第2撮像画像に顔画像が含まれていないと前記第2判定手段によって判定された場合に、顔画像を使用しない画像処理をランダムに選択する、請求項2に記載の画像生成プログラム。
【発明を実施するための形態】
【0033】
以下、適宜図面を参照しつつ、本発明の一実施形態に係る画像生成プログラムを実行する撮像装置について説明する。なお、本発明の画像生成プログラム及び撮像装置は任意のコンピュータシステムに適用可能であるが、本実施形態では、撮像装置の一例としての携帯型のゲーム装置10において、外部メモリ45に記録されている画像生成プログラムが実行される場合を例に説明する。
【0034】
[ゲーム装置10の構成]
図1は、開いた状態のゲーム装置10の正面図である。
図2は、開いた状態のゲーム装置10の右側面図である。
図3Aは、閉じた状態のゲーム装置10の左側面図である。
図3Bは、閉じた状態のゲーム装置10の正面図である。
図3Cは、閉じた状態のゲーム装置10の右側面図である。
図3Dは、閉じた状態のゲーム装置10の背面図である。
【0035】
ゲーム装置10は、交換可能なメモリカード(外部メモリ45)内に記憶されたプログラム、又はサーバや他のゲーム装置から受信したプログラムを実行可能である。また、ゲーム装置10は、画像を撮像する撮像部を有しており、撮像された撮像画像(以下「カメ
ラ画像」という。)を表示したり保存したりすることができる。なお、以下の説明では、撮像部によりカメラ画像をリアルタイムに取得することを「撮像」といい、ユーザの指示に応じて撮像部によりカメラ画像を取得して保存することを「撮影」というものとする。
【0036】
ゲーム装置10は、下側ハウジング11及び上側ハウジング21を備える。上側ハウジング21は、下側ハウジング11に対して開閉可能に連結されている。このため、ゲーム装置10は折り畳みが可能である。このゲーム装置10は、開いた状態(
図1,2参照)で使用され、未使用時には閉じた状態(
図3A〜
図3D参照)で保管される。
【0037】
[下側ハウジング11の構成]
図1〜
図3Dに示されるように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14(14A〜14L)、アナログスティック15、LED16A,16B、収容部17、マイクロフォン用孔18、及び無線スイッチ19が設けられている。
【0038】
下側LCD12は、画像を平面的に表示する横長の表示画面を有しており、下側ハウジング11の内側面11Bの中央に設けられている。下側LCD12の画素数は、本実施形態では256dot×192dot(横×縦)であるが、これ以外の解像度であってもよい。なお、下側LCD12はLCDに限定されるものではなく、例えばEL(Electro Luminescence)を利用した表示装置等の他の表示装置であってもよい。
【0039】
タッチパネル13は、下側LCD12の表示画面を覆うように設けられており、座標入力手段として機能する。タッチパネル13として、本実施形態では抵抗膜方式のタッチパネルが用いられるが、静電容量方式等の他の方式のタッチパネルが用いられてもよい。
【0040】
収容部17(
図1、
図3Dに示す破線)には、ユーザがタッチパネル13に対する操作に使用するタッチペン28が下側ハウジング11の上面から収納される。なお、タッチパネル13に対する入力は、例えばユーザが指で行うことも可能である。
【0041】
図1に示されるように、下側ハウジング11の内側面11Bには、十字ボタン14A、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、及びスタートボタン14Lが設けられている。また、
図3B及び
図3Dに示されるように、下側ハウジング11の上面の左端部にLボタン14Gが設けられ、右端部にRボタン14Hが設けられている。また、
図3Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられている。これらの操作ボタン14A〜14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に使用され、Lボタン14G及びRボタン14Hは、撮像部による撮影の指示に使用される。
【0042】
アナログスティック15(
図1参照)は、方向を指示するデバイスである。このアナログスティック15及び十字ボタン14Aは、下側ハウジング11を把持したユーザが左手の親指で操作可能な位置に設けられている。アナログスティック15は、そのキートップが、下側ハウジング11の内側面11Bに対して平行にスライド可能に構成されており、ゲーム装置10が実行するプログラムに応じて機能する。
【0043】
下側ハウジング11の内側面11Bには、マイクロフォン用孔18が形成されている。下側ハウジング11の内部には、後述するマイク43(
図4参照)が設けられており、マイクロフォン用孔18を介して入力された音がマイク43によって検出される。
【0044】
図3Aに示されるように、下側ハウジング11の左側面には、開閉可能なカバー部11
Cが設けられている。このカバー部11Cの内部には、データ保存用外部メモリ46(
図1参照)をゲーム装置10に対して着脱可能に装着するためのコネクタ(不図示)が設けられている。データ保存用外部メモリ46(メモリの一例)は、このコネクタに接続された状態で、例えばゲーム装置10によって撮像されたカメラ画像を記憶(保存)する。
【0045】
図3Dに示されるように、下側ハウジング11の上面には、挿入口11Dが形成されている。この挿入口11Dの内部には、画像生成プログラム等を記録した記録媒体としての外部メモリ45(
図1参照)をゲーム装置10に対して着脱可能に装着するためのコネクタ(不図示)が設けられている。挿入口11Dから挿入された外部メモリ45がこのコネクタに接続されることで、画像生成プログラムがゲーム装置10に読み出される。
【0046】
図1に示されるように、下側ハウジング11の下面には、第1LED16Aが設けられている。第1LED16Aは、ゲーム装置10の電源のON/OFF状況をユーザに通知する。
図3Cに示されるように、下側ハウジング11の右側面には、第2LED16Bが設けられている。ゲーム装置10は、他の機器との間で無線通信を行うことが可能に構成されている。第2LED16Bは、ゲーム装置10の無線通信の確立状況をユーザに通知する。ゲーム装置10は、無線LANに接続する機能を有する。第2LED16Bに近接して設けられた無線スイッチ19が操作されることにより、この無線通信の機能が有効/無効になる。
【0047】
[上側ハウジング21の構成]
上側ハウジング21には、上側LCD22(表示手段の一例)、外側撮像部23、内側撮像部24、3D調整スイッチ25、及び3Dインジケータ26が設けられている。
【0048】
図1に示されるように、ゲーム装置10が折り畳まれた際に内側面11Bと対向する上側ハウジング21の内側面21Bに、上側LCD22が設けられている。上側LCD22は、横長の表示画面を有しており、内側面21Bの中央に設けられている。上側LCD22の画素数は、本実施形態では640dot×200dot(横×縦)であるが、これ以外の解像度であってもよい。なお、上側LCD22はLCDに限定されるものではなく、例えばELを利用した表示装置等の他の表示装置であってもよい。
【0049】
上側LCD22は、立体視可能な画像(立体画像)を表示する表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示する。具体的には、上側LCD22は、左目用画像と右目用画像とを所定単位で(例えば、1列ずつ)横方向に交互に表示する。なお、上側LCD22は、左目用画像と右目用画像とを交互に表示する方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目及び右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示する表示装置として機能する。なお、上側LCD22は、視差バリアを無効にすることができ、これにより、画像を平面的に表示することもできる。
【0050】
3D調整スイッチ25は、
図1及び
図2に示されるように、上側ハウジング21の内側面11Bと右側面とが交差する部分に設けられている。この3D調整スイッチ25は、例えば上下方向へスライド可能なスライダを有している。このスライダが最下点位置に配置されている場合、上側LCD22の視差バリアが無効にされ、上側LCD22に画像が平面的に表示される。一方、スライダが最下点よりも上側に配置されている場合、上側LC
D22に画像が立体的に表示される。なお、スライダの位置を変化させることで、左目用画像と右目用画像との横方向の位置のズレ量が変化し、立体画像の見え方が調整される。
【0051】
3Dインジケータ26は、
図1に示されるように、上側ハウジング21の内側面21Bに設けられている。3Dインジケータ26は上側LCD22が立体表示モードであるか否かを報知するものである。この3Dインジケータ26は、本実施形態ではLEDであり、上側LCD22が立体表示モードであるとき(3D調整スイッチ25が最下点よりも上側に配置されているとき)に点灯する。
【0052】
外側撮像部23(撮像部の一例)は、
図3Bに示されるように、上側ハウジング21の外側面21D(内側面21Bとは反対側の面)に設けられている。この外部撮像部23は、外側左撮像部23A及び外側右撮像部23Bから構成されている。外側左撮像部23A及び外側右撮像部23Bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを有している。外側左撮像部23A及び外側右撮像部23Bは、ユーザが上側LCD22を正面から視認した場合に、
図1に示されるように、外側左撮像部23Aが左側に位置すると共に外側右撮像部23Bが右側に位置するように設けられている。なお、外側左撮像部23A及び外側右撮像部23Bの間隔は、人間の両目の間隔程度に設定されている。また、外側左撮像部23A及び外側右撮像部23Bの撮像方向52(
図2参照)は、いずれも外側面21Dの外向きの法線方向であり、且つ互いに平行である。
【0053】
外側左撮像部23Aと外側右撮像部23Bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部23をステレオカメラとして使用する場合、外側左撮像部23Aは、ユーザの左目で視認されるカメラ画像(左目用画像)を撮像し、外側右撮像部23Bは、ユーザの右目で視認されるカメラ画像(右目用画像)を撮像する。このため、外側撮像部23によって撮像されたカメラ画像を上側LCD22に立体的に表示することが可能である。また、プログラムによっては、外側左撮像部23A及び外側右撮像部23Bのいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。
【0054】
内側撮像部24は、上側ハウジング21の内側面21Bに設けられている。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。この内側撮像部24は、外側撮像部23とは反対方向を撮像する撮像部である。
【0055】
上側ハウジング21の内側面21Bには、スピーカ孔21Eが形成されている。後述するスピーカ44(
図4参照)からの音声は、このスピーカ孔21Eを介して出力される。
【0056】
[ゲーム装置10の内部構成]
次に、
図4を参照しつつ、ゲーム装置10の内部構成について説明する。ここで、
図4は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0057】
図4に示されるように、ゲーム装置10は、情報処理部31、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、及びI/F回路42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(又は上側ハウジング21)内に収納されている。
【0058】
情報処理部31は、CPU(Central Processing Unit)311、GPU(Graphics Pr
ocessing Unit)312、VRAM(Video RAM)313を含む情報処理手段である。本実施形態では、外部メモリ45に画像生成プログラムが記憶されており、CPU311は、外部メモリ45から画像生成プログラムを読み出して実行する。なお、画像生成プログラムは、他の機器との通信によって他の機器から取得されてもよい。
【0059】
GPU312は、CPU311からの命令に応じてVRAM313に画像を描画し、その画像を上側LCD22及び/又は下側LCD12に出力する。その結果、上側LCD22及び/又は下側LCD12に画像が表示される。
【0060】
メインメモリ32は、CPU311のワーク領域やバッファ領域として用いられる揮発性の記憶手段(例えばPSRAM(Pseudo-SRAM))である。メインメモリ32は、情報
処理部31の処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されたプログラムを一時的に記憶したりする。
【0061】
外部メモリI/F33は、外部メモリ45を着脱可能に接続するためのインターフェースである。外部メモリ45は、情報処理部31によって実行されるプログラムを記憶する不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、外部メモリ45に記憶されたプログラムがメインメモリ32に読み込まれて、情報処理部31によって実行される。
【0062】
データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱可能に接続するためのインターフェースである。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成さる。このデータ保存用外部メモリ46には、例えば外側撮像部23又は内側撮像部24による撮影で得られたカメラ画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31は、データ保存用外部メモリ46に記憶された画像を読み込んで上側LCD22及び/又は下側LCD12に表示することができる。
【0063】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成される。このデータ保存用内部メモリ35には、例えば無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0064】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。CPU311は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0065】
加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じるそれぞれの角速度を検出する。CPU311は、加速度センサ39が検出した加速度を示すデータと、角速度センサ40が検出した角速度を示すデータとに基づいて、ゲーム装置10の姿勢や動きを算出することができる。
【0066】
RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(例えば下側ハウジング11に収納される充電式電池)か
らゲーム装置10の各部品に電力を供給する。
【0067】
I/F回路42には、マイク43、スピーカ44、及びタッチパネル13が接続されている。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。スピーカ44は、I/F回路42から不図示のアンプを介して入力された音声信号に応じた音を出力する。I/F回路42は、マイク43及びスピーカ44(アンプ)を制御する音声制御回路を有している。音声制御回路は、音声信号に対するA/D変換及びD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。また、I/F回路42は、タッチパネル13を制御するタッチパネル制御回路を有している。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、及びタッチ位置データの生成を所定時間に1回の割合で行う。CPU311は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を検出することができる。
【0068】
情報処理部31には、各操作ボタン14A〜14Lの操作状況を示す操作データが出力される。情報処理部31のCPU311は、この操作データに基づいて操作ボタン14A〜14Lの操作の有無を判断し、操作された操作ボタン14に対応する所定の処理を実行する。
【0069】
下側LCD12及び上側LCD22は、情報処理部31(GPU312)の指示に従って画像を表示する。情報処理部31は、例えば、外側撮像部23によって撮像された左目用画像と右目用画像とを用いた立体画像(立体視可能な画像)を上側LCD22に表示させる。
【0070】
3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に出力する。これに対して、情報処理部31(CPU311)は、3D調整スイッチ25からの電気信号に基づいて上側LCD22の表示モードを設定する。また、情報処理部31は、3Dインジケータ26の点灯を制御する。
【0071】
なお、上述したハードウェア構成は単なる一例に過ぎず、ゲーム装置10の構成は適宜変更可能である。
【0072】
[上側LCD22及び下側LCD
12の表示画面]
本実施形態におけるゲーム装置10では、外側撮像部23を用いて撮影が行われた場合に、その撮影で得られたカメラ画像(第1撮像画像に相当、以下「外カメラ画像」という。)に対して、ランダムに選択された画像処理が施される。その際、撮影で得られた外カメラ画像に含まれている顔を表す顔画像、又は過去の撮影で得られたデータ保存用外部メモリ46内のカメラ画像(第2撮像画像に相当、以下「保存画像」という。)に含まれている顔を表す顔画像を使用する画像処理が選択される場合がある。その結果、極めて興趣性が高い不思議画像(
図7〜9,
図11〜13,
図15参照)を得ることができる。ここで、不思議画像は、撮像部によってリアルタイムに取得されたカメラ画像(ここでは外カメラ画像)に対して顔画像を使用する画像処理を施して得られる画像である。
【0073】
以下、
図5を参照しつつ、不思議画像91〜97を得るための撮影を行う際に上側LCD22及び下側LCD12に表示される画像について説明する。
図5は、上側LCD22及び下側LCD12の表示例を示すゲーム装置10の正面図である。ゲーム装置10が不思議画像91〜97を得ることが可能な撮影モードに移行すると、
図5に示されるように、ボタン61〜64を含む操作画面が下側LCD12に表示される。ボタン61〜64は
、それぞれ所定の処理と対応付けられた画像である。ユーザは、下側LCD12に表示されているボタン61〜64を任意に選択することによって、情報処理部31に所定の処理を実行させることができる。タッチパネル13がタッチペン28でタッチされると、タッチ位置に位置するボタン(
図5ではボタン61)がハイライト(例えば輪郭強調)される。そして、ボタン上に位置するタッチペン28がタッチパネル13から離されると、ボタンのハイライトが解除されると共にそのボタンに対応する処理が実行される。
【0074】
ボタン61は、ゲーム装置10を不思議画像を得るための撮影が可能な状態に移行させるためのボタンである。ボタン61が選択されると、後述する代替画像70が上側LCD22に表示される(
図5参照)。
【0075】
ボタン62は、ゲーム装置10による撮影で得られた画像を閲覧するためのボタンである。ボタン62が選択されると、例えばデータ保存用外部メモリ46に記憶されている画像のサムネイル画像が下側LCD12に一覧表示される。この状態で、ユーザは、所望のサムネイル画像を選択することで、そのサムネイル画像に対応する保存画像を上側LCD22に表示させることができる。ボタン63は、撮影に関する各種設定の変更を指示するためのボタンである。ボタン64は、撮影に使用する撮像部の切り替えを指示するためのボタンである。ユーザは、このボタン64を操作することによって、撮影に使用する撮像部を外側撮像部23又は内側撮像部24に切り替えることができる。
【0076】
上側LCD22には、撮影が指示される前に外側撮像部23によってリアルタイムに取得される外カメラ画像に代えて、代替画像70が表示される。この代替画像70は、他の撮影モードでは上側LCD22に表示される外カメラ画像を隠すブラインドとして機能する。このように、不思議画像を得るための撮影モードでは、外カメラ画像の表示が非表示となる。これにより、外側撮像部23によってリアルタイムに取得される外カメラ画像から、その外カメラ画像に対する画像処理の内容をゲーム装置10のユーザが容易に予測できてしまうのを防止している。
【0077】
ところで、不思議画像を得るための画像処理では顔画像が使用される場合があるので、外側撮像部23による撮影で得られた外カメラ画像に顔を表す顔画像が含まれているか、或いは保存画像に顔を表す顔画像が含まれている必要がある。つまり、ゲーム装置10のユーザは、被写体としての人物の顔を含むように撮影を行わなければ、外カメラ画像に含まれている顔画像を使用する画像処理の結果として得られる不思議画像を得ることはできない。
【0078】
そこで、本実施形態では、外側撮像部23の撮像範囲に人物の顔が含まれている場合に、その人物の顔の位置を示唆するマーカ画像71,72を含む代替画像70が上側LCD22に表示される。具体的には、外側撮像部23によってリアルタイムに取得される外カメラ画像に対して顔認識処理が実行され、人物の顔を識別できた場合にはその位置及び数が特定され、マーカ画像を含む代替画像70が上側LCD22に表示される。ここでは、外側撮像部23の撮像範囲に2人の顔が含まれているので、上側LCD22に2つのマーカ画像71,72を含む代替画像70が表示されている。このように、上側LCD22にマーカ画像を含む代替画像70が表示されるので、上側LCD22に外カメラ画像が表示されていなくても、ゲーム装置10のユーザが外側撮像部23の撮像範囲に顔が含まれているか否か、また、撮像範囲に含まれている顔の数を容易に把握することができる。
【0079】
[不思議画像を得るための画像処理の概要]
以下、
図6〜図
15を参照しつつ、顔画像を使用する画像処理について説明する。ここで、
図6は、撮影で得られた外カメラ画像51から顔画像54,55を取得する処理について説明するための説明図である。
【0080】
外側撮像部23の撮像範囲に2人の人物74,75が含まれている場合、外側撮像部23による撮影で、
図6に例示されるような外カメラ画像51を取得することができる。ゲーム装置10では、このように取得された外カメラ画像51に対して、顔認識処理が実行される。これにより、人物74,75の顔を表す領域(
図20の顔領域
81,82)が特定され、外カメラ画像から人物74,75の顔を表す顔画像54,55が取得される。このように、外カメラ画像51から顔画像(ここでは顔画像54,55)を取得できる場合、撮影で得られた外カメラ画像に対して顔画像を使用する画像処理を施すことが可能である。
【0081】
次に、
図7〜
図9を参照しつつ、顔画像54又は顔画像55を使用する画像処理について説明する。ここで、
図7は、人物74の顔が昇っていく様子を表した不思議画像91を示す上側LCD22の画面図である。
図8は、複製された人物75の顔が曼陀羅のように配置された不思議画像92を示す上側LCD22の画面図である。
図9は、人物74の顔と人物75の顔が入れ替えられた不思議画像93を示す上側LCD22の画面図である。なお、
図7以降の上側LCD22の画面図においては、人物74,75の背景の図示が省略されている。
【0082】
図7に示されるように、外側撮像部23による撮影で得られた外カメラ画像51に顔画像54,55が含まれている場合に、顔画像54を使用する画像処理が選択される場合がある。この場合、外カメラ画像51に対して顔認識処理が行われて人物74の顔画像54が取得される。そして、顔画像54が示す顔が外カメラ画像51における人物74の顔の上方に位置するように顔画像54を外カメラ画像51に合成する画像処理が行われて不思議画像91が得られる。ちなみに、この不思議画像91は、人物74が幽体離脱する様子を表現したものである。なお、この不思議画像91を得るための画像処理は、外カメラ画像に少なくとも1つの顔画像が含まれていてば実行可能である。また、顔画像55を使用して不思議画像91と同様の不思議画像を得ることも当然可能である。
【0083】
図8に示されるように、外側撮像部23による撮影で得られた外カメラ画像51に人物74,75の顔画像54,55が含まれている場合に、顔画像55を使用する画像処理が選択される場合がある。この場合、外カメラ画像51に対して顔認識処理が行われて人物75の顔画像55が取得される。そして、顔画像55が示す顔が外カメラ画像51における人物75の顔の八方に位置するように顔画像55を外カメラ画像51に合成する画像処理が行われて不思議画像92が得られる。ちなみに、この不思議画像92は、人物75を曼陀羅として表現したものである。なお、この不思議画像92を得るための画像処理は、外カメラ画像に少なくとも1つの顔画像が含まれていてば実行可能である。また、顔画像54を使用して不思議画像92と同様の不思議画像を得ることも当然可能である。
【0084】
図9に示されるように、外側撮像部23による撮影で得られた外カメラ画像51に人物74,75の顔画像54,55が含まれている場合に、顔画像54及び顔画像55を使用する画像処理が選択される場合がある。この場合、外カメラ画像51に対して顔認識処理が行われて2つの顔画像54,55が取得される。そして、顔画像54が人物75の顔に重なると共に顔画像55が人物74の顔に重なるように顔画像54,55を外カメラ画像51に合成する画像処理が行われて不思議画像93が得られる。ちなみに、この不思議画像93は、人物74の顔と人物75の顔が入れ替わった様子を表現したものである。なお、外カメラ画像に3つ以上の顔画像が含まれている場合に不思議画像93と同様の不思議画像を得ることも当然可能である。
【0085】
ところで、ゲーム装置10では、今回の撮影で得られた外カメラ画像から取得される顔画像を使用する画像処理だけでなく、ゲーム装置10において過去の撮影で取得されてデ
ータ保存用外部メモリ46に記憶されている保存画像から取得される顔画像を使用する画像処理も実行可能である。
図10は、保存画像56から顔画像59を取得する処理について説明するための説明図である。
【0086】
図10に示されるように、データ保存用外部メモリ46に記憶されている保存画像56に3人の人物の顔画像が含まれている場合、ゲーム装置10では、外カメラ画像51に対して行われるのと同様に、保存画像56に対しても顔認識処理が実行される。そして、3人の人物のいずれかの人物の顔を表す領域が特定され、例えば真ん中の人物の顔を表す顔画像59が取得される。このように保存画像56から顔画像(ここでは顔画像59)を取得できる場合、今回の撮影で得られた外カメラ画像に対して、この顔画像を使用する画像処理を施すことが可能である。
【0087】
図11は、人物74の顔画像54が顔画像59に差し替えられた不思議画像94を示す上側LCD22の画面図である。
図11に示されるように、保存画像56に顔画像59が含まれている場合に、顔画像59を使用する画像処理が選択される場合がある。この場合、保存画像56に対する顔認識処理を行って
図10に示される真ん中の人物の顔画像59が取得される。そして、顔画像59が人物74の顔画像54の上に重なるように顔画像59を外カメラ画像51に合成する画像処理が行われて不思議画像94が得られる。ちなみに、この不思議画像94は、人物74の顔が撮影の際にゲーム装置10の周辺にはいない別人の顔に入れ替わった様子を表現したものである。なお、顔画像59を人物75の顔の上に配置した不思議画像を得ることも可能である。
【0088】
図12は、人物74,75の顔画像54,55が顔画像59に差し替えられた不思議画像95を示す上側LCD22の画面図である。
図12に示されるように、保存画像56に顔画像59が含まれている場合に、顔画像59を使用する画像処理が選択される場合がある。この場合、保存画像56に対する顔認識処理を行って
図10に示される真ん中の人物の顔画像59が取得される。そして、外カメラ画像51に対して人物74の顔画像54が顔画像59に差し替えられ、且つ人物75の顔画像55が顔画像59に差し替えられるように2つの顔画像59を外カメラ画像51に合成する画像処理が行われて不思議画像95が得られる。ちなみに、この不思議画像95は、人物74,75の顔が撮影の際にゲーム装置10の周辺にはいない別人の顔に入れ替わった様子を表現したものである。なお、このような顔合成画像95を得る画像処理の変形例として、外カメラ画像51に含まれている全ての顔画像を、同じく外カメラ画像51に含まれているいずれかの顔画像(例えば顔画像54)に差し替える画像処理を行うようにしてもよい。この場合、外カメラ画像51に含まれている全ての顔画像が、外側撮像部23の前方にいる誰か1人の顔に入れ替わった不思議画像が得られる。これにより、外側撮像部23によって撮影される複数の人物が兄弟のようになった様子を表現することができる。
【0089】
図13は、外カメラ画像51に複数の顔画像59が挿入された不思議画像96を示す上側LCD22の画面図である。
図10に示されるように、保存画像56に顔画像59が含まれている場合に、顔画像59を使用する画像処理が選択される場合がある。この場合、保存画像56に対する顔認識処理を行って
図10に示される真ん中の人物の顔画像59が取得される。そして、外カメラ画像51に対して人物74,75の周辺に顔画像59が示す顔が3つ配置されるように、3つの顔画像59を外カメラ画像51に合成する画像処理が行われて不思議画像96が得られる。ちなみに、この不思議画像96は、人物74,75の顔の周りに、撮影の際にゲーム装置10の周辺にはいない別人の顔が背後霊のように浮かび上がった様子を表現したものである。なお、このような不思議画像96を得る際に、保存画像から取得された顔画像に対して目隠しの黒線、眼鏡、角のような装飾画像を合成する画像処理を施してから、その画像処理が施された顔画像を外カメラ画像51に合成するようにしてもよい。
【0090】
図14は、外側撮像部23による撮影で得られた外カメラ画像50の一例を示す図である。
図15は、外カメラ画像50に複数の顔画像59が挿入された不思議画像97を示す上側LCD22の画面図である。
【0091】
図14に示されるように、撮影により顔画像を含まない外カメラ画像50が得られた場合であっても、保存画像に顔画像が含まれていれば、外カメラ画像50に対して顔画像を使用する画像処理を施すことが可能である。
図10に示されるように、保存画像56に顔画像59が含まれている場合に、顔画像59を使用する画像処理が選択される場合がある。この場合、保存画像56に対する顔認識処理を行って
図10に示される真ん中の人物の顔画像59が取得される。そして、外カメラ画像50に対して顔画像59が示す6つの顔画像が配置されるように、6つの顔画像59を外カメラ画像50に合成する画像処理が行われて不思議画像97が得られる。ちなみに、この不思議画像97は、建物の周辺に撮影の際にゲーム装置10の周辺にはいない人物の顔が地縛霊のように浮かび上がった様子を表現したものである。
【0092】
このように、ゲーム装置10では、今回の撮影で得られた外カメラ画像に含まれている顔画像、又は過去の撮影で得られた保存画像に含まれている顔画像を使用する画像処理によって、興趣性が高い撮像画像を得ることができる。
【0093】
[メモリマップ]
以下、
図16を参照しつつ、メインメモリ32に記憶されるデータについて説明する。ここで、
図16は、メインメモリ32のメモリマップである。
図16に例示されるように、メインメモリ32は、プログラム記憶領域321及びデータ記憶領域323を有している。プログラム記憶領域321には、CPU311によって実行されるプログラムが記憶される。データ記憶領域323には、不思議画像91〜97を得るための処理に必要な各種データが記憶される。プログラム記憶領域321内のプログラム、及びデータ記憶領域323内のデータの一部は、外部メモリ45に予め記憶されたデータが、不思議画像を得るための処理に際してメインメモリ32に読み出されたものである。
【0094】
プログラム記憶領域321には、画像生成プログラム322等が記憶されている。画像生成プログラム322は、後述する
図17〜19,22に示されている一連の処理を情報処理部31に実行させるためのプログラムである。
【0095】
データ記憶領域323には、カメラ画像データ324、保存画像データ325、顔認識結果データ326、上側LCD表示データ327、下側LCD表示データ328、顔処理フラグ329、選択情報データ330、顔画像データ331、テクスチャデータ332、ポリゴンデータ333、不思議画像データ334等が記憶される。
【0096】
カメラ画像データ324は、外側撮像部23が撮像した外カメラ画像を示すデータである。不思議画像を得るための撮影において、本実施形態では、外側撮像部23及び内側撮像部24のうちの外側撮像部23のみが使用されるので、外側撮像部23が撮像した外カメラ画像によって、カメラ画像データ324が更新される。なお、外側撮像部23は外側左撮像部23A及び
外側右撮像部23Bによって構成されているので、外カメラ画像は、2つの撮像部23A,23Bによって取得される2つの外カメラ画像から構成されている。このカメラ画像データ324の更新周期は、ゲーム装置10が処理を行う時間単位(例えば1/60秒)と同じでもよいし、この時間単位と異なっていてもよい。なお、このカメラ画像データ324には、撮影前に上側LCD22に表示したり顔認識処理に使用するための取得される外カメラ画像の他に、撮影によって得られた外カメラ画像(例えば外カメラ画像50,51)のデータも含まれている。この撮影によって得られる外カメラ画像のデータは、撮影が行われる毎に更新される。
【0097】
保存画像データ325は、データ保存用外部メモリ46から読み出されたカメラ画像(例えば保存画像56)のデータである。記憶制御手段として機能する情報処理部31は、外側撮像部23又は内側撮像部24によって予め撮像された画像を、その画像に顔画像が含まれているか否かを示す管理情報を付与してデータ保存用外部メモリ46に記憶する。このようにデータ保存用外部メモリ46に記憶されたカメラ画像が、外側撮像部23による撮影が行われるのに先立って読み出され、保存画像データ325としてデータ記憶領域323に格納される。
【0098】
顔認識結果データ326は、カメラ画像データ324が示す外カメラ画像及び保存画像データ325が示す保存画像に対して行われた顔認識処理の結果を示すデータである。この顔認識結果データ326は、外カメラ画像及び保存画像に対して行われた顔認識処理によって人物の顔を識別できたか否かを示すデータ、外カメラ画像又は保存画像に対して顔として認識できた領域を示すデータ等から構成される。ゲーム装置10では、外側撮像部23を使用した撮影で外カメラ画像が取得されると、取得された外カメラ画像に対して実行する画像処理がランダムに決定され、その外カメラ画像に対して決定された画像処理が施されるが、外カメラ画像又は保存画像に顔画像が含まれていなければ外カメラ画像に対して顔画像を使用する画像処理を施すことはできない。このため、ゲーム装置10では、顔認識結果データ326を考慮した上で、外カメラ画像に対してどのような画像処理を施すかがランダムに決定される。この顔認識結果データ326は、保存画像に対する顔認識処理が行われたとき(具体的にはゲーム装置10が不思議画像を得るための撮影モードに移行したとき)、及び外側撮像部23による撮影で外カメラ画像が取得されたときに更新される。
【0099】
上側LCD表示データ327は、上側LCD22に表示される画像に関するデータである。この上側LCD表示データ327には、代替画像70、マーカ画像(例えばマーカ画像71,72)等のデータが含まれている。なお、マーカ画像を表示する位置は、顔認識結果データ326に含まれている、外カメラ画像に対して顔として認識できた領域を示すデータに基づいて決定される。
【0100】
下側LCD表示データ328は、下側LCD12に表示される画像に関するデータである。この下側LCD表示データ328には、ボタン61〜64(
図5参照)の画像等のデータが含まれている。
【0101】
顔処理フラグ329は、保存画像データ325が示す保存画像に外カメラ画像に対する画像処理に使用可能な顔画像が含まれているか否かを示すデータである。この顔処理フラグ329は、顔画像が含まれていることを示す管理情報が保存画像データ325が示す保存画像に付与されている場合に「ON」に設定され、顔画像が含まれて
いることを示す管理情報が保存画像に付与されていない場合に「OFF」に設定される。
【0102】
選択情報データ330は、撮影により得られた外カメラ画像に対して実行する画像処理として選択された画像処理を識別する情報を示すデータである。
【0103】
テクスチャデータ332は、外カメラ画像(例えば外カメラ画像50,51)に対して合成する顔画像(例えば顔画像54,55,59)をテクスチャマッピングを用いて外カメラ画像上で表現するために使用される顔テクスチャを示すデータである。このテクスチャデータ329は、本実施形態では、外カメラ画像51(
図6参照)に含まれている顔画像54や顔画像55、保存画像56(
図10参照)に含まれている顔画像59に基づいて生成される。
【0104】
ポリゴンデータ333は、顔認識処理によって識別された顔の特徴点に基づいて生成される複数のポリゴンPG(
図24が示すポリゴンPG1や
図26が示すポリゴンPG2)に関するデータである。ここで、ポリゴンPG1は、外カメラ画像51に対する顔認識処理によって識別された人物74の顔の特徴点P1〜P16(
図23参照)に基づいて生成された複数のポリゴンである。ポリゴンPG2は、外カメラ画像51に対する顔認識処理によって識別された人物75の顔の特徴点P21〜P36(
図25参照)に基づいて生成された複数のポリゴンである。なお、本実施形態では、複数のポリゴンPG1が特徴点P1〜P16に基づいて生成され、複数のポリゴンPG2が特徴点P21〜P36に基づいて生成される場合について説明するが、例えば鼻の特徴点P1,P21に代えて後述する口の中心点A4,B4(
図23,25参照)を用いて複数のポリゴンPG1,PG2を生成してもよい。ポリゴンデータ333は、テクスチャ座標データ3331、カメラ画像座標データ3332、サイズデータ3333、傾きデータ3334等から構成される。
【0105】
テクスチャ座標データ3331は、ポリゴンPG(本実施形態ではポリゴンPG1,PG2)の各頂点が配置されるテクスチャ座標を示すデータである。カメラ画像座標データ3332は、ポリゴンPG(本実施形態ではポリゴンPG1,PG2)の各頂点に対するカメラ画像座標を示すデータである。サイズデータ3333は、外カメラ画像に対する画像処理に使用される顔画像が表す顔の大きさを示すデータである。例えば顔画像54(
図23参照)が表す顔の大きさは横サイズX1と縦サイズY1によって表され、顔画像55(
図25参照)が表す顔の大きさは横サイズX2と縦サイズY2によって表される。ここで、横サイズX1は、顔領域
81が示す顔の左目の中心点A1から右目の中心点A2までの距離を示す。縦サイズY1は、中心点A1と中心点A2とを結ぶ線分αの中点A3から口の中心点A4までの距離を示す。また、横サイズX2は、顔領域
82が示す顔の左目の中心点B1から右目の中心点B2までの距離を示す。縦サイズY2は、中心点B1と中心点B2とを結ぶ線分βの中心点B3から口の中心点B4までの距離を示す。外カメラ画像に対する画像処理に使用される顔画像は、このサイズデータ3333が示す大きさに基づいて、拡大/縮小処理されてから外カメラ画像に合成される。傾きデータ3334は、顔画像が示す顔の水平方向に対する傾き(例えば
図23に示される例では線分αの傾き、
図25に示される例では線分βの傾き)を示すデータである。外カメラ画像に対する画像処理に使用される顔画像は、この傾きデータ3334が示す傾きに基づいて、回転処理されてから外カメラ画像に合成される。なお、本実施形態においては、点A1〜A4,B1〜B4の座標が顔領域
81,82の大きさと傾きを求めるためだけに使用されるが、複数のポリゴンPG1,PG2(
図24,26参照)を生成するために使用されてもよい。
【0106】
不思議画像データ334は、外カメラ画像に対する画像処理によって得られた不思議画像(本実施形態では不思議画像91〜97)のデータである。なお、不思議画像は、撮影直後に上側LCD22に立体表示されるため、左目用画像及び右目用画像から構成される。撮影直後における外カメラ画像に対する画像処理が完了すると、不思議画像データ334が示す不思議画像が、上側LCD表示データ327の一部として上側LCD22に表示される。
【0107】
なお、図には示されていないが、データ記憶領域323には、ゲーム装置10に対して行われた操作の内容を示す操作データや、仮想ゲーム空間の様子を画面表示するための仮想カメラの制御に関するデータ等が記憶されるが、これらのデータは本発明とは直接関係しないので、ここでの詳細な説明は省略する。
【0108】
[メイン処理]
次に、
図17及び
図18を参照しつつ、情報処理部31によって実行されるメイン処理について説明する。ここで、
図17及び
図18は、撮影が行われる際にゲーム装置10で
実行される処理の一例を示すフローチャートである。なお、以下に説明する一連の処理は、画像生成プログラム322に基づいてCPU311が発行する命令に従って行われる。
【0109】
ユーザの所定操作によってゲーム装置10が不思議画像を得ることが可能な撮影モードに移行すると、情報処理部31は、
図17に示されるように、カメラ画像を取得する(ステップS1)。具体的には、情報処理部31は、外側撮像部23によってリアルタイムに撮像された外カメラ画像を取得して、カメラ画像データ324を更新する。
【0110】
次に、情報処理部31は、ステップS1の処理で取得された外カメラ画像に対する顔認識処理を実行し(ステップS2)、外カメラ画像に対して顔を識別できたか否かを判定する(ステップS3)。
【0111】
顔を識別できなかったと判定した場合(ステップS3:NO)、すなわち外カメラ画像50(
図14参照)のように顔画像を含まない外カメラ画像が取得された場合、第2表示制御手段として機能する情報処理部31は、外側撮像部23の撮像範囲内に人物が存在していないと判断して、マーカ画像を含まない代替画像70を上側LCD22に表示させる(ステップS4)。具体的には、情報処理部31は、上側LCD表示データ327に含まれている代替画像70だけを上側LCD22に表示させる。
【0112】
一方、顔を識別できたと判定した場合(ステップS3:YES)、すなわち外カメラ画像51(
図6参照)のように顔画像を含む外カメラ画像が取得された場合、位置特定手段として機能する情報処理部31は、ステップS1の処理で取得された外カメラ画像に含まれている顔の位置を特定する(ステップS5)。具体的には、情報処理部31は、例えば外カメラ画像51に対するステップS2の顔認識処理の結果に基づいて人物74,75の顔の特徴点のカメラ画像座標を取得し、そのカメラ画像座標に基づいて人物74,75の顔の位置を特定する。そして、情報処理部31は、ステップS5の処理で特定した位置にマーカ画像(例えばマーカ画像71,72)を配置した代替画像70を上側LCD22に表示させる(ステップS6)。
【0113】
このステップS4又はステップS6の表示処理は、後述するステップS22の処理が行われるまで継続される。つまり、画像処理が施された外カメラ画像が上側LCD22に表示されるまでは、外側撮像部23によってリアルタイムに撮像される外カメラ画像の代わりに、外カメラ画像を含まない代替画像70が上側LCD22に表示される。これにより、上側LCD22の表示内容から、ゲーム装置10のユーザが画像処理の内容を容易に推測できないようにしている。また、外カメラ画像に人物の顔を表す顔画像が含まれている場合には、ステップS6の処理によって、その顔画像の位置を示唆するマーカ画像71,72を含む代替画像70が上側LCD22に表示される。このため、外側撮像部23によってリアルタイムに取得される外カメラ画像が表示されなくても、ユーザが外側撮像部23の撮像範囲に人物の顔が含まれているかを確認しながら撮影を行うことができる。
【0114】
ステップS4又はステップS6の処理を行った場合、情報処理部31は、保存画像に対する顔画像の有無を既に判定したか否かを判定する(ステップS8)。上述したように、保存画像データ325が示す保存画像に顔画像が含まれていることを示す管理情報が付与されている場合には顔処理フラグ329が「ON」に設定され、逆に保存画像に顔画像が含まれて
いることを示す管理情報が付与されていない場合には顔処理フラグ329が「OFF」に設定される。このため、情報処理部31は、このステップS8において、顔処理フラグ329が「ON」又は「OFF」に設定されているか否かに基づいて、保存画像に対する顔画像の有無を既に判定したか否かを判定する。顔画像の有無を既に判定していると情報処理部31によって判定された場合(ステップS8:YES)、処理が後述するステップS13へ進められる。
【0115】
情報処理部31は、保存画像に対する顔画像の有無を判定していないと判定した場合(ステップS8:NO)、保存画像に顔画像が含まれているか否かを判定する(ステップS9)。具体的には、情報処理部31は、保存画像データ325としてデータ記憶領域323に格納されている保存画像の管理情報を参照して、その保存画像に顔画像が含まれているか否かを判定する。ここで、保存画像に顔画像が含まれている場合(ステップS9:YES)、すなわち顔画像が含まれていることを示す管理情報が保存画像に付与されている場合、情報処理部31は、顔処理フラグ329を「ON」に設定する(ステップS10)。逆に、保存画像に顔画像が含まれていない場合(ステップS9:NO)、すなわち顔画像が含まれていないことを示す管理情報が保存画像に付与されている場合、情報処理部31は、顔処理フラグ329を「OFF」に設定する(ステップS11)。
【0116】
ステップS10の処理が行われた場合、ステップS11の処理が行われた場合、又はステップS8で「YES」と判定された場合、情報処理部31は、Lボタン14G又はRボタン14Hの操作の有無に基づいて、撮影が指示されたか否かを判定する(ステップS13)。撮影が指示されていないと情報処理部31によって判定された場合(ステップS13:NO)、処理がステップS1へ戻される。なお、例えば後述する「その他の画像処理」の中に撮影前から画像処理を行う必要がある画像処理が含まれているような場合には、ステップS8〜ステップS11の処理をステップS1に先立って行うようにしてもよい。
【0117】
画像取得手段として機能する情報処理部31は、撮影が指示されたと判定した場合(ステップS13:YES)、撮影を実行する(ステップS14)。具体的には、情報処理部31は、外側撮像部23によって撮像された外カメラ画像(第1撮像画像)を取得し、取得した外カメラ画像に基づいてカメラ画像データ324を更新する。
【0118】
ステップS14の処理に続いて、情報処理部31は、顔処理フラグ329が「ON」に設定されているか否かを判定する(ステップS15)。顔処理フラグ329が「OFF」に設定されていると判定した場合(ステップS15:NO)、情報処理部31は、顔画像を使用しないその他の画像処理をランダムに選択して、選択情報データ330を更新する(ステップS16)。このステップS16の処理で選択可能な画像処理としては、ステップS14における撮影で得られたカラーの外カメラ画像をモノクロ画像に変換する処理、カラーの外カメラ画像をセピア色の画像に変換する処理、外カメラ画像の各画素の濃淡を反転させる処理等が挙げられる。ただし、このステップS16で選択される処理は、顔画像を使用しない画像処理であればここで例示した処理に限定されるものではなく、従来から一般的に行われている他の画像処理であってもよい。
【0119】
ところで、保存画像に顔画像が含まれていることを示す管理情報が付与されていたとしても、外カメラ画像に対する画像処理に実際に使用可能な顔画像が保存画像に含まれていないこともあり得る。このような場合としては、例えば、外側撮像部23によって過去に取得された保存画像のうちの左目用画像(外側左撮像部23Aで取得された外カメラ画像)については顔画像を識別できるが、右目用画像(外側右撮像部23Bで取得された外カメラ画像)については顔画像を識別できないようなケースが挙げられる。
【0120】
そこで、第2判定手段として機能する情報処理部31は、顔処理フラグ329が「ON」に設定されていると判定した場合(ステップS15:YES)、保存画像データ325が示す保存画像に対して顔認識処理を実行して、顔認識結果データ326を更新する(ステップS17)。具体的には、例えば内側撮像部24によって過去に撮影された1つのカメラ画像(以下「内カメラ画像」という。)が保存画像として記憶されている場合、情報処理部31は、その保存画像に対して顔認識処理を実行する。また、例えば外側撮像部23(外側左撮像部23A及び外側右撮像部23B)によって過去に撮影した2つの外カメ
ラ画像が保存画像として記憶されている場合、情報処理部31は、左目用画像として利用される外側左撮像部23Aによって取得された外カメラ画像に対して顔認識処理を実行する。
【0121】
情報処理部31は、顔認識結果データ326を参照して、保存画像に含まれている顔画像をステップS14の撮影で得られた外カメラ画像に対する画像処理に使用できるか否かを判定する(ステップS18)。具体的には、情報処理部31は、保存画像データ325が示す保存画像から顔画像を取得できるか否かを判定する。なお、保存画像が外側左撮像部23Aによって取得された左目用画像と外側右撮像部23Bによって取得された右目用画像とから構成されている場合、左目用画像について顔画像を取得できるか否かを判定する。ここで、顔画像を画像処理に使用できると情報処理部31によって判定された場合(ステップS18:YES)、後述するステップS31(
図18参照)へ処理が進められる。なお、顔処理フラグ329が「ON」に設定されているにも関わらず保存画像に対する顔認識処理を行っているのは、保存画像に顔画像が含まれていることを示す情報が含まれていたとしても、実際の顔認識処理によって顔を識別できない場合があり得るからである。
【0122】
情報処理部31は、顔画像を使用できないと判定した場合(ステップS18:NO)、顔以外の画像を使用する画像処理をランダムに選択して選択情報データ330を更新する(ステップS19)。ここで、顔以外の画像を使用する画像処理とは、ステップS14の処理で取得された外カメラ画像に対して、予めデータ記憶領域323等に記憶されている顔以外の画像(例えばUFOの画像)を合成する処理である。なお、このステップS19で選択される画像処理が顔以外の画像を外カメラに合成する画像処理であるのに対して、ステップS16で選択される画像処理が顔以外の画像を外カメラ
画像に合成する画像処理ではない点で、両ステップで選択される画像処理の内容が相違する。
【0123】
情報処理部31は、ステップS16の処理、又はステップS19の処理を行って画像処理を選択した後、ステップS14の撮影で得られた外カメラ画像に対して、選択情報データ330が示す画像処理を実行する(ステップS20)。
【0124】
情報処理部31は、ステップS20において顔画像を使用しない画像処理が施された外カメラ画像、又は後述するステップS38〜S44のいずれかにおいて顔画像を使用する画像処理が施された外カメラ画像を、不思議画像データ334としてデータ記憶領域323に保存すると共に、データ保存用外部メモリ46に保存する(ステップS21)。
【0125】
そして、第1表示制御手段として機能する情報処理部31は、不思議画像データ334が示す外カメラ画像を代替画像70に代えて上側LCD22に一定時間(例えば5秒間)表示させる(ステップS22)。このステップS22の処理が行われた後、処理がステップS1へ戻されて、新たな不思議画像を得るための撮影が可能な状態となる。
【0126】
一方、情報処理部31は、保存画像データ325が示す保存画像に含まれている顔画像をステップS14の撮影で得られた外カメラ画像に対する画像処理に使用できると判定した場合(ステップS18:YES)、
図18に示されるように、ステップS14の撮影で得られた外カメラ画像に対する同一性判定処理を実行し(ステップS31)、保存画像に対する同一性判定処理を実行する(ステップS32)。ここで、同一性判定処理とは、外カメラ画像又は保存画像が、外側左撮像部23Aによる撮影で得られた外カメラ画像(以下「左カメラ画像」という。)と、外側右撮像部23Bによる撮影で得られた外カメラ画像(以下「右カメラ画像」という。)から構成されている場合に、左カメラ画像に含まれている顔画像と右カメラ画像に含まれている顔画像が同一人物のものであるか否かを判定する処理である。外カメラ画像と保存画像の両方とも左カメラ画像及び右カメラ画像の2
つの画像から構成され得るので、この同一性判定処理は、外カメラ画像と保存画像の両方に関して同様に行われる。
【0127】
ステップS32の処理を行った場合、情報処理部31は、ステップS31,S32の同一性判定処理の結果に基づいて、今回の撮影で取得された外カメラ画像と保存画像の両方に関して、左カメラ画像及び右カメラ画像に同一人物の顔画像が含まれているか否かを判定する(ステップS33)。後述する同一性判定処理によって左カメラ画像及び右カメラ画像から同一人物の顔画像を取得できている場合、同一人物の顔画像が含まれていると情報処理部31によって判定され(ステップS33:YES)、処理が後述するステップS35へ進められる。
【0128】
一方、情報処理部31は、左カメラ画像及び右カメラ画像に同一人物の顔画像が含まれていないと判定した場合(ステップS33:NO)、左目用顔画像から右目用顔画像を生成する(ステップS34)。ここで、左目用顔画像は、ステップS14の撮影で外側左撮像部23Aによって取得された左カメラ画像に対して顔画像を使用する画像処理を施す場合に使用される顔画像である。右目用顔画像は、同じくステップS14の撮影で外側右撮像部23Bによって取得された右カメラ画像に対して顔画像を使用する画像処理を施す場合に使用される顔画像である。なお、このステップS34の処理は、保存画像が内側撮像部24による撮影で得られた内カメラ画像である場合にも行われる。
【0129】
画像処理方法選択手段として機能する情報処理部31は、ステップS34の処理を行った場合、又はステップS33で「YES」と判定した場合、ステップS14の撮影で得られた外カメラ画像に対して実行可能な画像処理をランダムに選択して、選択情報データ330を更新する(ステップS35)。
【0130】
後に詳述するが、ステップS31,S32の同一性判定処理によって、ステップS14の撮影で得られた外カメラ画像に顔画像が含まれているか否かが判定されると共に、保存画像に顔画像が含まれているか否かが判定される。そして、これら2つの判定処理によって、顔画像を使用する画像処理の中から、今回の撮影で得られた外カメラ画像に対して情報処理部31が実行可能な画像処理が明らかとなる。したがって、情報処理部31は、ステップS31,S32の同一性判定処理の結果を踏まえて、顔画像を使用する画像処理の中でどの処理が実行可能であるかを判断して、顔画像を使用する2以上の画像処理の中からランダムに1つの画像処理を選択する。
【0131】
以下、ステップS35の処理で選択可能な画像処理について説明する。例えばステップS14の撮影で取得された外カメラ画像51(
図6参照)に顔画像が含まれている場合、顔画像を使用する画像処理として、以下の処理が選択可能である。すなわち、外カメラ画像51に含まれている1つの顔画像を使用する画像処理として、
図7に示されるように、人物74が幽体離脱する様子を表すために顔画像54を複製して人物74の顔の上方に位置するように外カメラ画像51に挿入する画像処理(ステップS40の「幽体離脱処理」)が選択可能である。また、同じく外カメラ画像51に含まれている1つの顔画像を使用する画像処理として、
図8に示されるように、人物75が曼陀羅のようになった様子を表すために顔画像55を複製して人物75の顔の八方に位置するように外カメラ画像51に挿入する画像処理(ステップS41の「顔曼陀羅処理」)を選択可能である。また、外カメラ画像51に含まれている複数の顔画像を使用する画像処理として、
図6及び
図9の対比から明らかなように、人物74の顔画像54と人物75の顔画像55を入れ替える画像処理(ステップS43の「シャッフル処理」)を選択可能である。なお、本実施形態では、撮影で得られた外カメラ画像に顔画像が含まれている場合に、「幽体離脱処理」、「顔曼陀羅処理」、「シャッフル処理」のいずれかがランダムに選択されるが、「幽体離脱処理」は、顔画像の上方にその顔画像を複製して合成する処理であるため、外カメラ画像に
含まれている顔画像の位置が一定の位置よりも下でなければ「幽体離脱処理」が選択されないようにしてもよい。また、「顔曼陀羅処理」は、顔画像の周囲に顔画像を合成する処理であるため、外カメラ画像に含まれている顔画像の大きさが一定の大きさよりも小さくなければ「顔曼陀羅処理」が選択されないようにしてもよい。
【0132】
また、例えば保存画像56(
図10参照)に顔画像が含まれている場合、顔画像を使用する画像処理として、以下の処理が選択可能である。すなわち、保存画像56に含まれている例えば顔画像59を使用する画像処理として、
図13に示されるように、顔画像59が示す顔が人物74,75の周辺に位置するように顔画像59を外カメラ画像51に挿入する画像処理(ステップS38の「背後霊処理」)が選択可能である。また、保存画像56に含まれている例えば顔画像59を使用する画像処理として、
図15に示されるように、人物の顔が写っていない外カメラ画像50(
図14参照)に顔画像59が示す顔が表れるように顔画像59を外カメラ画像50に挿入する画像処理(ステップS39の「地縛霊処理」)が選択可能である。なお、保存画像に含まれている顔画像を使用する画像処理を行う場合に、撮影で得られた外カメラ画像に顔画像が含まれていれば「背後霊処理」が選択され、顔画像が含まれていなければ「地縛霊処理」が選択されるようにしてもよい。
【0133】
また、例えば外カメラ画像51に顔画像が含まれており、且つ保存画像56に顔画像が含まれている場合、顔画像を使用する画像処理として、以下の処理が選択可能である。すなわち、
図11に示されるように、外カメラ画像51に対して人物74の顔を表す顔画像54を顔画像59に差し替える画像処理(ステップS42の「単独入替処理」)が選択可能である。また、
図12に示されるように、外カメラ画像51に対して人物74,75の顔を表す顔画像54,55を両方とも顔画像59に差し替える画像処理(ステップS44の「全員入替処理」)が選択可能である。
【0134】
このように、情報処理部31は、ステップS35において、今回の撮影で得られた外カメラ画像に顔画像が含まれているか否か、保存画像に顔画像が含まれているか否かに応じて、顔画像を使用する2以上の画像処理をピックアップして、ピックアップした画像処理の中からいずれかの画像処理をランダムに選択する。そして、情報処理部31は、ステップS35の処理で選択した画像処理(ステップS38〜S44のいずれかの画像処理)を、ステップS14の撮影で得られた外カメラ画像に施す。その結果、不思議画像91〜97のいずれかを得ることができる。なお、撮影で得られた外カメラ画像又は保存画像に顔画像が含まれているか否か、外カメラ画像に顔画像が含まれている場合にはその顔画像の位置や大きさ等の条件によっては、顔画像を使用する画像処理が必然的に1つに決まってしまう場合もあり得る。このような場合は、条件に該当する画像処理を選択して実行すればよい。
【0135】
一方、保存画像に顔画像が含まれていないと判定した場合(ステップS18で「NO」、ステップS15で「NO」)、上述したように、情報処理部31は、顔画像を使用しない画像処理をランダムに選択する。
【0136】
このように、ゲーム装置10では、外側撮像部23による撮影が行われた際に、撮影で得られた外カメラ画像に対して実行する画像処理として、顔画像を使用する2以上の画像処理と、顔画像を使用しない2以上の画像処理を含む複数の画像処理の中から、いずれかの画像処理がランダムに選択され、選択された画像処理が外カメラ画像に施される。なお、本実施形態では、
図17のステップS18で「YES」と判定された場合には必ず顔画像を使用する画像処理が選択される場合について説明したが、顔画像が保存されていたとしても、顔画像を使用しない画像処理が選択される場合があってもよい。
【0137】
[同一性判定処理]
外側撮像部23が外側左撮像部23A及び外側右撮像部23Bの2つの撮像
部によって構成されているので、外側撮像部23によって取得される外カメラ画像は、基本的には左カメラ画像及び右カメラ画像の2つの外カメラ画像によって構成される。このような状況において、外カメラ画像に含まれている顔画像を使用する画像処理を行う場合、左カメラ画像の画像処理に使用される顔画像が表す人物と、右カメラ画像の画像処理に使用される顔画像が表す人物とが同一人物である必要がある。なぜなら、画像処理後の画像を上側LCD22に立体表示させた場合に、左カメラ画像に挿入された顔画像と右カメラ画像に挿入された顔画像とが別の人物の顔であるために、顔画像が示す顔が顔と認識できなくなってしまうからである。このことは、保存画像として記憶されているカメラ画像を使用して外カメラ画像に対する画像処理を行う場合についても同様である。そこで、本実施形態では、撮影で得られた外カメラ画像と、保存画像として記憶されているカメラ画像のそれぞれについて、以下に説明する同一性判定処理が行われる。ここで、同一性判定処理とは、左カメラ画像に含まれている顔画像と右カメラ画像に含まれている顔画像とが同一人物の顔を表すものであるか否かを判定する処理である。
【0138】
以下、
図19を参照しつつ、情報処理部31によって実行される同一性判定処理について説明する。ここで、
図19は、
図18のステップS31,32における同一性判定処理の詳細フローチャートである。なお、この同一性判定処理は、撮影で得られた外カメラ画像、及び保存画像データ325として撮影前からデータ記憶領域323に記憶されている保存画像の両方に対して行われるものであるため、以下の説明では、特に支障がなければ外カメラ画像と内カメラ画像とを特に区別せずに
図19の一連の処理について説明する。
【0139】
情報処理部31は、まず、左カメラ画像に対する顔認識処理を実行して、顔認識結果データ326を更新する(ステップS311)。そして、第1判定手段及び第2判定手段として機能する情報処理部31は、顔認識結果データ326を参照して、左カメラ画像に1以上の顔画像が含まれているかを判定する(ステップS312)。
【0140】
ところで、外側撮像部23を用いた撮影では、顔画像を含む外カメラ画像51が取得されることもあれば、顔画像を含まない外カメラ画像50が取得されることもある。このため、例えば外カメラ画像51が取得された場合にはステップS312において「YES」と判定されて、後述するステップS313へ処理が進められる。一方、例えば外カメラ画像50が取得された場合にはステップS312において「NO」と判定されて、ステップS32における保存画像に対する同一性判定処理へ処理が進められる。
【0141】
これに対して、保存画像に関しては、ステップS18の処理において、外カメラ画像に対する画像処理に使用可能な顔画像が左カメラ画像には含まれていると判定されているので、保存画像に対するステップS312の処理では必ず「YES」と判定される。
【0142】
情報処理部31は、左カメラ画像に1以上の顔が含まれていると判定した場合(ステップS312:YES)、左目用顔画像を取得する(ステップS313)。具体的には、情報処理部31は、ステップS311の顔認識処理の結果に基づいて、左カメラ画像に含まれている人物の顔を示す顔領域を特定し、特定した顔領域の画像を左目用顔画像として取得する。
【0143】
ステップS313の処理に続いて、情報処理部31は、ステップS311の処理で顔認識処理を行った左カメラ画像が、外側撮像部23による撮影で得られたものであるか否かを判定する(ステップS314)。ステップS14の処理で取得されたカメラ画像に対して一連の同一性判定処理が行われる場合、このカメラ画像は、外側撮像部23による撮影で得られた外カメラ画像であるため、このステップS314においては必ず「YES」と判定されて、後述するステップS315へ処理が進められる。一方、保存画像に対して一
連の同一性判定処理が行われる場合、その保存画像が外側撮像部23を使用する撮影で得られたものであれば保存画像データ325の一部として右カメラ画像が存在するので、このステップS314において「YES」と判定されて、ステップS315へ処理が進められる。また、保存画像が内側撮像部24を使用する撮影で得られたものであれば、ステップS311の処理で顔認識処理を行った左カメラ画像が内カメラ画像であって、右カメラ画像は存在しないので、このステップS314において「NO」と判定されて、上述したステップS34の処理で、ステップS313の処理で生成された左目用顔画像に基づいて右目用顔画像が生成されることになる。
【0144】
情報処理部31は、ステップS313の処理で左目用顔画像を取得した左カメラ画像が外側撮像部23による撮影で得られたものであると判定した場合(ステップS314:YES)、左目用画像から顔の特徴点を検出する(ステップS315)。そして、情報処理部31は、右カメラ画像の顔認識処理を実行して顔認識結果データ326を更新する(ステップS316)。この顔認識処理は、ステップS311において左カメラ画像に対して行われたのと同様に行われる。
【0145】
情報処理部31は、顔認識結果データ326を参照して、ステップS316の顔認識処理の結果に基づいて、右カメラ画像に1以上の顔画像が含まれているかを判定する(ステップS317)。右カメラ画像に1以上の顔画像が含まれていないと情報処理部31によって判定された場合(ステップS317:NO)、ステップS33の処理において同一人物の顔画像がないと判定されて、ステップS34へ処理が進められる。
【0146】
情報処理部31は、右カメラ画像に1以上の顔画像が含まれていると判定した場合(ステップS317:YES)、右カメラ画像におけるステップS313の処理で取得した左目用顔画像とほぼ同じ位置について顔認識処理を行って顔を検出する(ステップS318)。そして、情報処理部31は、ステップS318の処理の結果として顔を検出できたか否かを判定する(ステップS319)。ここで、顔を検出できなかったと情報処理部31によって判定された場合(ステップS319:NO)、右カメラ画像から左目用顔画像が示す人物と同一人物の顔を表す右目用顔画像を得るために、上述したステップS34の処理が行われる。
【0147】
情報処理部31は、右カメラ画像から顔を検出できたと判定した場合(ステップS319:YES)、右カメラ画像からステップS318の処理で検出した顔を示す右目用顔画像を取得する(ステップS320)。そして、情報処理部31は、この右目用顔画像に関して、ステップS315の処理と同様に、顔の特徴点を検出する(ステップS321)。
【0148】
そして、情報処理部31は、ステップS315の処理によって左目用画像から検出した顔の特徴点と、ステップS321の処理によって右目用画像から検出した顔の特徴点とを比較して、左目用顔画像が示す顔の人物と、右目用顔画像が示す顔の人物とが同一人物であるか否かを判定する(ステップS322)。上述したステップS33の判定は、このステップS322の判定結果を利用して行われる。
【0149】
このように、今回の撮影で得られた外カメラ画像を構成する左カメラ画像及び右カメラ画像に対して同一人物の顔画像が合成されるように、左カメラ画像から取得された左目用顔画像と右カメラ画像から取得された右目用顔画像とが同一人物の顔であるか否かが判定され、別人の顔であると判定された場合には、ステップS34の処理によって、左目用顔画像から、その左目用顔画像が表す顔と同一人物の右目用顔画像が生成される。
【0150】
[シャッフル処理]
以下、
図20〜
図26を参照しつつ、顔画像を使用する画像処理の一例として、ステップS43のシャッフル処理について説明する。ここで、
図20は、外カメラ画像51に含まれている2つの顔領域
81,82を示す図である。
図21は、顔画像54,55を外カメラ画像51に挿入するシャッフル処理の流れについて説明するための説明図である。
図22は、ステップS43のシャッフル処理の詳細フローチャートである。
図23は、顔領域
81を規定する特徴点P1〜P16を示す説明図である。
図24は、複数のポリゴンPG
1を示す説明図である。
図25は、顔領域
82を規定する特徴点P21〜P36を示す説明図である。
図26は、複数のポリゴンPG2を示す説明図である。
【0151】
今回の撮影で取得された外カメラ画像51に2人の人物74,75の顔画像54,55が含まれている場合、外カメラ画像51に対して人物74の顔画像54と人物75の顔画像55とを入れ替える画像処理(シャッフル処理)が施されて、不思議画像93(
図9参照)が得られる場合がある。外カメラ画像51が取得された場合、
図20に示されるように、外カメラ画像51に対する顔認識処理によって、2つの顔領域
81,82が検出され、それぞれの顔領域
81,82に含まれる顔を表す2つの顔画像54,55が取得される。そして、
図21に示されるように、顔画像54が人物74とは別人である人物75の顔領域
82に配置されると共に、顔画像55が人物75とは別人の人物74の顔領域
81に配置されるように、2つの顔画像54,55が外カメラ画像51に合成される。
【0152】
次に、
図22のフローチャートを参照しつつ、ステップS43のシャッフル処理についてより詳細に説明する。なお、以下の説明では、顔画像54を人物75の顔領域
82に合成する処理について説明するが、顔画像55を人物74の顔領域
81に合成する処理は顔画像54を顔領域
82に合成する処理と同様に行われるため、ここでの詳細な説明は省略する。
【0153】
ステップS35(
図18参照)の処理によってシャッフル処理が選択されると、情報処理部31のCPU311は、複数のポリゴンPG1,PG2の各頂点のカメラ画像座標を設定する(ステップS431)。具体的には、CPU311は、カメラ画像データ324が示す外カメラ画像51及び外カメラ画像51に対する顔認識結果データ326を用いて、外カメラ画像51における人物74の顔の位置(顔領域
81の位置)及び顔の特徴点P1〜P16(
図23参照)の位置を取得すると共に、外カメラ画像51における人物75の顔の位置(顔領域
82の位置)及び顔の特徴点P21〜P36(
図25参照)の位置を取得する。そして、CPU311は、特徴点P1〜P16の位置に基づいて複数のポリゴンPG1(
図24参照)の各頂点の位置(カメラ画像座標)を設定すると共に、特徴点P21〜P36の位置に基づいて複数のポリゴンPG2(
図26参照)の各頂点の位置(カメラ画像座標)を設定する。そして、CPU311は、複数のポリゴンPG1及び複数のポリゴンPG2に対して設定した各頂点の位置を用いて、複数のポリゴンPG1及び複数のポリゴンPG2に対するカメラ画像座標データ3332を更新する。ここで、複数のポリゴンPG1,PG2は、識別された顔における複数の特徴点P1〜P16、P21〜P36に基づいて三角形又は四角形でそれぞれ設定される。また、顔の特徴点P1〜P16、P21〜P36は、公知のソフトウェアを利用して、撮影で得られた外カメラ画像51から識別された顔画像(顔領域
81,82が示す画像)に対してエッジ検出等の画像処理を施すことによって、顔画像における鼻先1点、眉4点(左右2点ずつ)、顎先端1点、頬10点(左右5点ずつ)の計16点が検出される。なお、複数のポリゴンPG1,PG2の頂点の位置は、検出された顔の特徴点P1〜P16、P21〜P36と一致させる必要はなく、特徴点P1〜P16、P21〜P36の位置に基づいた任意の位置に設定すればよい。
【0154】
このように、ステップS431の処理によって、複数のポリゴンPG1と複数のポリゴンPG2の各頂点のカメラ画像座標が設定される。これにより、外カメラ画像51に含まれる顔領域
81及び顔領域
82が検出される。
【0155】
ところで、人物74の顔の傾きと人物75の顔の傾きが異なる場合がある。これは、撮影時の人物74と人物75の姿勢の違い等によるものである。また、人物74の顔領域
81と人物75の顔領域
82の大きさが異なる場合がある。これは、人物74と人物75の相対的な顔の大きさの違いだけでなく、撮影時における外側撮像部23から人物74の顔までの距離と、外側撮像部23から人物75の顔までの距離との違いによるものである。このため、顔領域
81に対応する顔画像54をそのまま顔領域
82に配置する画像処理を行ったのでは、興趣性があっても、極めて不自然な顔を示す画像が得られることとなる。
【0156】
そこで、本実施形態では、顔画像54を顔領域
82に配置するに際して、顔画像54の回転処理と拡大/縮小処理を行うこととしている。
【0157】
CPU311は、ステップS431の処理によってポリゴンPG1,PG2の各頂点のカメラ画像座標を設定した後、顔領域
82(
図20参照)の顔に対する顔領域
81(
図20参照)の顔の傾きを算出する(ステップS432)。具体的には、CPU311は、顔領域
81の左目の中心点A1と右目の中心点A2とを両端とする線分αの傾きを算出して、水平方向に対する顔領域
81の顔の傾きを求める。また、CPU311は、顔領域
82の左目の中心点B1と右目の中心点B2とを両端とする線分βの傾きを算出して、水平方向に対する顔領域
82の顔の傾きを求める。そして、CPU311は、これら2つの傾きを用いて傾きデータ3334を更新した後、これら2つの傾きの差を求めることにより、顔領域
82の顔に対する顔領域
81の顔の傾きを算出する。
【0158】
次に、CPU311は、ポリゴンPG1を回転させる(ステップS433)。顔領域
81に含まれる顔を回転させる場合、顔領域
81を規定する各特徴点P1〜P16の位置を回転移動させる必要がある。このように、顔領域
81の各特徴点P1〜P16の位置を変化させた場合、特徴点P1〜P16に基づいて設定したポリゴンPG1の各頂点位置も回転移動させる必要がある。そこで、このステップS433において、CPU311は、ステップS431の処理で設定した複数のポリゴンPG1の各頂点のカメラ画像座標を、ステップS432の処理で算出した傾きに応じて回転移動させた位置に変更し、変更後のカメラ画像座標を用いてカメラ画像座標データ3332を更新する。
【0159】
このステップS433の処理が行われることにより、ポリゴンPG1によって表される人物74の顔の傾きが人物75の顔の傾きとほぼ一致するように、ポリゴンPG1の各頂点のカメラ画像座標が補正される。
【0160】
ステップS433の処理に続いて、CPU311は、ポリゴンPG1の大きさを変化させるための倍率(拡大率又は縮小率)を算出する(ステップS434)。具体的には、CPU311は、顔認識結果データ326に含まれている顔領域
81を示すデータ(ここでは点A1〜A4の位置を示すデータ)に基づいて、
図23に示されるように、顔領域
81の横サイズX1と縦サイズY1を算出する。また、CPU311は、顔認識結果データ326に含まれている顔領域
82を示すデータ(ここでは点B1〜B4の位置を示すデータ)に基づいて、
図25に示されるように、顔領域
82の横サイズX2と縦サイズY2を算出する。そして、CPU311は、算出した顔領域
81,82のサイズに基づいて、サイズデータ3333を更新する。続いて、CPU311は、サイズデータ3333を参照して、横サイズX1が横サイズX2とほぼ一致し、且つ縦サイズY1が縦サイズY2とほぼ一致するように、ポリゴンPG1の倍率(拡大率又は縮小率)の近似値を算出する。
【0161】
次に、CPU311は、ステップS434の処理で算出した倍率に応じて、ポリゴンPG1を拡大又は縮小する(ステップS435)。顔領域
81の大きさが顔領域
82の大きさとほぼ一致するように顔領域
81を拡大又は縮小する場合、顔領域
81を規定する特徴点P1〜P16間の距離が変化するために、特徴点P1〜P16の位置に基づいて設定されるポリゴンPG1の各頂点の位置を変化させる必要がある。そこで、このステップS435において、CPU311は、カメラ画像座標データ3332を参照して、ステップS433の処理で変更された複数のポリゴンPG1の各頂点のカメラ画像座標を、ステップS434の処理で算出した倍率でポリゴンPG1を拡大又は縮小して移動させた位置に変更し、変更後のカメラ画像座標を用いてカメラ画像座標データ3332を更新する。
【0162】
このように、複数のポリゴンPG1の傾きや大きさを変化させることによって、顔画像54を顔領域
82に配置した場合に、人物75の顔が不自然になる(例えば頭に対して顔が大きすぎたりする)のを防止することができる。なお、ここでは、複数のポリゴンPG1の回転処理を行ってから拡大又は縮小処理を行うこととしているが、複数のポリゴンPG1の拡大又は縮小処理を行ってから回転処理を行うようにしてもよい。
【0163】
続いて、CPU311は、カメラ画像座標データ3332を参照して、ポリゴンPG1の各頂点の位置(テクスチャ座標)を設定し、設定した各頂点の位置に基づいて、ポリゴンPG1のテクスチャ座標データ3331を更新する(ステップS436)。
【0164】
そして、CPU311は、ポリゴンPG1に顔画像54を描画する(ステップS437)。具体的には、CPU311は、顔領域
81の顔画像54に基づいて、複数のポリゴンPG1の各ポリゴンにマッピングするためのテクスチャを生成して、テクスチャデータ332を更新する。そして、CPU311は、テクスチャ座標データ3331が示す各頂点のテクスチャ座標に基づいて、テクスチャデータ332が示す顔画像54のテクスチャを複数のポリゴンPG1の各ポリゴンにマッピングする。そして、情報処理部31は、顔認識結果データ326を参照して、複数のポリゴンPG1の基準点(
図23に示される中点A3)が複数のポリゴンPG2の基準点(
図25に示される中点B3)と一致するように複数のポリゴンPG1を配置してVRAM313に描画する。その際、顔画像54の周縁部と、顔領域
82の周辺の画像との違和感を低減させるために、画素の透過度を示すアルファ値を、ポリゴンPG1の各頂点に対しては「0」に設定する。
【0165】
このように、人物74の顔画像54が人物75の顔領域
82に適合するように顔画像54に対して回転処理及び拡大/縮小処理が施されて、処理後の顔画像54が顔領域
82に位置するように外カメラ画像51に合成される。また、人物75の顔画像55についても、人物74の顔領域
81に適合するように回転処理及び拡大/縮小処理が施されて、処理後の顔画像55が顔領域
81に位置するように外カメラ画像51に合成される。その結果、
図9に例示されるような不思議画像93を得ることができる。
【0166】
なお、その他の不思議画像91,92,94〜97を得るための画像処理は、本実施形態で説明したシャッフル処理と同様に、外カメラ画像51又は保存画像56から顔画像を取得して外カメラ画像51に合成する処理であるため、ここでの詳細な説明は省略する。また、本実施形態で説明した各不思議画像91〜97における顔画像の配置位置、合成する顔画像の数、各顔画像の角度、各顔画像の大きさはあくまでも一例であって、適宜変更されてもよいことは言うまでもない。
【0167】
[本実施形態の作用効果]
以上説明したように、本実施形態によれば、撮影により外カメラ画像が取得されると、外カメラ画像に顔画像が含まれているか否かが判定され、顔画像が含まれている場合、顔画像を使用する2以上の画像処理と顔画像を使用しない2以上の画像処理とを含む複数の画像処理からいずれかの画像処理がランダムに選択され、外カメラ画像に対して、選択された画像処理が施される。このように、外カメラ画像にはランダムに選択された画像処理が施されるので、ゲーム装置10のユーザや被写体である人物が意図しない画像処理が施
された、意外性のあるカメラ画像を得ることができる。なお、複数の画像処理には、撮影で得られた外カメラ画像に含まれている顔画像を使用する画像処理が含まれているので、この顔画像を使用する画像処理が選択された場合には、意外性があるだけではなく、興趣性が高い画像(例えば不思議画像91〜93)を得ることができる。
【0168】
また、本実施形態では、過去の撮影で得られた保存画像(例えば保存画像56)に含まれている顔画像を使用する画像処理(例えば単独入替処理、全員入替処理、背後霊処理、地縛霊処理)を選択可能である。つまり、リアルタイムに取得される外カメラ画像には含まれていない顔画像を使用する画像処理の選択が可能である。このため、保存画像内の顔画像を使用する画像処理が選択されて外カメラ画像に施された場合には、外カメラ画像に含まれている顔画像を使用する画像処理が外カメラ画像に施される場合に比べて、より一層意外性があって興趣性が高い不思議画像(不思議画像94〜97)を得ることができる。
【0169】
また、本実施形態では、画像処理が施された外カメラ画像が上側LCD22に表示されるので、ゲーム装置10のユーザや撮影時に被写体となった人物が画像処理の結果を容易に確認することができる。
【0170】
ところで、外側撮像部23によってリアルタイムに撮像される外カメラ画像を例えば上側LCD22に表示するようにした場合、ゲーム装置10のユーザが画像処理の結果を容易に予測できてしまうおそれがある。これに対して、本実施形態では、外側撮像部23によってリアルタイムに撮像される外カメラ画像は表示されずに、代替画像70が表示されるので、画像処理によって得られる不思議画像の意外性が低下してしまうのを効果的に防止することができる。
【0171】
また、外側撮像部23による撮影で得られた外カメラ画像に顔画像が含まれていなければ、その顔画像を使用する画像処理を選択して実行することはできない。これに対して、本実施形態では、外側撮像部23によって撮影される顔の位置を示唆するマーカ画像71,72を含む代替画像70(
図5参照)が上側LCD22に表示されるので、ユーザは、代替画像70を見ながら被写体となる各人物に対応する全てのマーカ画像が上側LCD22に表示されるようにゲーム装置10を構えて撮影を行うことで、外カメラ画像に含まれている顔画像を使用する画像処理が施された画像(例えば不思議画像91〜93)が得られ易い状況を意図的に作り出すことができる。
【0172】
また、上記実施形態では、外側撮像部23によって複数人の顔が撮影された場合に、これら複数人の顔が入れ替わるという実空間の状況とは大きく異なる、意外性があり且つ興趣性が高い画像(不思議画像93)を得ることができる。
【0173】
また、上記実施形態では、外側撮像部23によって人物の顔が撮影された場合に、心霊写真のようにあるはずのない場所に顔が写り込むといった実空間の状況とは大きく異なる、意外性があり且つ興趣性が高い画像(不思議画像91,92)を得ることができる。
【0174】
また、上記実施形態では、ゲーム装置10の前方には存在していない顔(外側撮像部23の撮像範囲に含まれていない顔)が写り込むといった実空間の状況とは大きく異なる、意外性があり且つ興趣性が高い画像(不思議画像96,97)を得ることができる。
【0175】
また、上記実施形態では、撮影で得られた外カメラ画像に含まれているはずの顔が外側撮像部23の前方には存在していない顔として写り込むといった実空間の状況とは大きく異なる、意外性があり且つ興趣性が高い画像(不思議画像94,95)を得ることができる。
【0176】
ところで、複数回の撮影で顔画像を使用する画像処理が連続して選択された場合、画像処理によって得られる画像の意外性が低下する可能性がある。上記実施形態によれば、顔画像を使用する画像処理と、顔画像を使用しない画像処理とがランダムに選択されるので、顔画像を使用した画像処理が施された画像が得られることもあれば、顔画像を使用しない画像処理が施された画像が得られることもある。このため、画像処理によって得られる画像の意外性の低下を抑制することができる。
【0177】
[変形例]
なお、本発明は上記実施形態に限定されるものではなく、以下の形態であってもよい。すなわち、上記実施形態では、過去の撮影で得られた保存画像に含まれている顔画像を使用する画像処理が実行され得る場合について説明したが、撮影で得られた外カメラ画像に対する画像処理に、保存画像に含まれている顔画像を使用しないようにしてもよい。
【0178】
また、上記実施形態では、外側撮像部23による撮影で得られた外カメラ画像に画像処理を施して不思議画像を得る場合について説明したが、内側撮像部24による撮影で得られた内カメラ画像に画像処理を施して不思議画像を得るようにしてもよい。
【0179】
また、上記実施形態では、画像処理によって得られた画像(例えば不思議画像91〜97)が上側LCD22に表示される場合について説明したが、画像処理によって得られた画像を下側LCD
12に表示するようにしてもよい。この場合、下側LCD
12が表示手段として機能する。また、画像処理によって得られた画像を例えばゲーム装置10と通信可能に接続された液晶テレビの画面に表示させるようにすれば、画像処理によって得られた画像を必ずしもゲーム装置10において表示する必要はない。
【0180】
また、上記実施形態では、外側撮像部23をステレオカメラとして使用して、立体的に表示される不思議画像91〜97を得る場合について説明したが、外側撮像部23を非ステレオカメラとして使用して、平面的に表示される不思議画像を得るようにしてもよい。
【0181】
また、上記実施形態では、上側LCD22にマーカ画像71,72を含む代替画像70
を表示させる場合について説明したが、マーカ画像71,72に関しては表示させないようにしてもよい。
【0182】
また、上記実施形態では、撮影が行われるまでは、外側撮像部23によってリアルタイムに取得される外カメラ画像の代わりに、上側LCD22に代替画像70が表示される場合について説明したが、リアルタイムに取得される外カメラ画像を表示するようにしてもよい。ただし、この場合、ゲーム装置10のユーザが画像処理の結果を容易に予測できてしまう可能性があるので、上記実施形態で説明したように、リアルタイムに取得される外カメラ画像は表示させずに代替画像70を表示させるのが好ましい。
【0183】
また、上記実施形態では、携帯型のゲーム装置10に本発明が適用された場合を例に説明したが、本発明は、ゲーム装置に限らず、任意の携帯型電子機器、例えば、PDA(Personal Digital Assistance)や携帯電話等に適用されてもよい。
【0184】
また、上記実施形態では、不思議画像を得るまでの全ての処理をゲーム装置10で行う場合を例に説明したが、一部の処理を他の装置で行っても構わない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に接続されている場合、上述したフローチャートにおける処理ステップは、ゲーム装置10及び他の装置が1つの撮像システムとして協働することによって実行されてもよい。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上
述したフローチャートにおける処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部又は全部が行われてもよい。
【0185】
また、上述したゲーム装置10の形状、撮像部の数、撮像部の設置位置、撮像部の撮像方向等は単なる一例に過ぎず、他の形状、数、及び設置位置であっても、本発明を実現できることは言うまでもない。また、上述したメイン処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0186】
また、画像生成プログラムは、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記画像生成プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ等であってもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶するRAM等の揮発性メモリでもよい。
【0187】
以上、本発明を詳細に説明してきたが、上述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。