説明

画像変換プログラムおよび画像変換装置

【課題】画像を分割する線をユーザが自由に設定することができ、変換後の画像として様々な画像を得ることができるようにする。
【解決手段】画像変換装置は、画像を変換して表示装置に表示させる。まず、画像変換装置は、変換前の元画像を表示装置に表示させる。次に、画像変換装置は、表示装置に表示された画像の領域を第1領域53と第2領域54とに分割する分割線52をユーザの指示によって設定する。次に、画像変換装置は、第1領域の少なくとも一部の画像を第2領域の画像から生成される画像へと変更することによって元画像を変換し、変換後の画像を表示装置に表示させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像変換プログラムおよび画像変換装置に関し、より特定的には、変換前の画像に対して、所定の画像変換処理を行って表示する画像変換プログラムおよび画像変換装置に関する。
【背景技術】
【0002】
特許文献1には、左右(または上下)対称の画像を生成する画像生成装置が開示されている。この画像生成装置は、例えば動物の顔の画像等を処理対象として想定し、当該顔の画像を左右対称の画像へと変換する処理を行うものである。具体的には、画像生成装置は、目の領域(特許文献1の図4に示すA領域110およびB領域120)と鼻の領域(同図に示すC領域130)を定義し、これら目および鼻の領域から、画像を2つに分割する軸となる直線を算出する。そして、算出された軸で分けられた一方の画像を、他方の画像を当該軸について反転させた画像へと変換することによって、左右対称の画像を生成している。
【特許文献1】特開2004−265168号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記特許文献1に記載の画像生成装置では、画像を2つに分割する線(軸)をユーザが直接設定することができず、所望の位置および方向に線を設定することができなかった。ユーザは自由に線を設定することができないために様々な画像を得ることができず、得られる画像が画一的になってしまうという問題点があった。
【0004】
それ故、本発明の目的は、画像を分割する線をユーザが自由に設定することができ、変換後の画像として様々な画像を得ることができる画像変換プログラムおよび画像変換装置を提供することである。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0006】
第1の発明は、画像を変換して表示装置(下側LCD12)に表示させる画像変換装置(ゲーム装置10)のコンピュータ(CPU31)において実行される画像変換プログラム(61)である。画像変換プログラムは、元画像表示ステップ(S33)と、分割線設定ステップ(S4)と、変更ステップ(S5)とを、コンピュータに実行させる。元画像表示ステップにおいて、コンピュータは、変換前の元画像を表示装置に表示させる。分割線設定ステップにおいて、コンピュータは、表示装置に表示された画像の領域を第1領域(53)と第2領域(54)とに分割する分割線(52)をユーザの指示によって設定する(図4)。変更ステップにおいて、コンピュータは、第1領域の少なくとも一部の画像を第2領域の画像から生成される画像へと変更することによって元画像を変換し、変換後の画像を表示装置に表示させる(図5)。
【0007】
第2の発明においては、画像変換装置は、表示装置の画面上の位置を指定する入力が可能なポインティングデバイス(タッチパネル13)を備えていてもよい。このとき、画像変換プログラムは、ポインティングデバイスに対して入力された入力位置を取得する入力取得ステップ(S11)をコンピュータにさらに実行させる。分割線設定ステップにおいて、コンピュータは、入力取得ステップにおいて取得された入力位置に基づいて分割線を設定する。
【0008】
第3の発明においては、入力取得ステップは、所定時間に1回の割合で繰り返し実行されてもよい。このとき、分割線設定ステップにおいて、コンピュータは、複数回の入力取得ステップにおいて連続して取得された入力位置に基づいて分割線を設定する。
【0009】
第4の発明においては、分割線設定ステップは、画面上に設定される複数の分割候補線のうちから分割線を複数の入力位置に基づいて選択する選択ステップ(S14,S20,S21)を含んでいてもよい。
【0010】
第5の発明においては、選択ステップにおいて、コンピュータは、複数の入力位置から画面上における位置および方向を算出し、算出された位置および方向に基づいて分割候補線から分割線を選択してもよい。
【0011】
第6の発明においては、複数の分割候補線は、画面上に格子状に配置された格子点を通るように設定されてもよい(図7)。このとき、選択ステップにおいて、コンピュータは、複数の入力位置のうちの第1の入力位置に最も近い格子点を通る分割候補線のうちで、複数の入力位置のうちで第1の入力位置より後の第2の入力位置と第1の入力位置とを結ぶ直線の傾きに最も近い分割候補線を分割線として選択する。
【0012】
第7の発明においては、選択ステップにおいて、コンピュータは、複数の入力位置のうちで最初に取得された入力位置(タッチオン位置)を第1の入力位置とし、最後に取得された入力位置(タッチオフ位置)を第2の入力位置としてもよい。
【0013】
第8の発明においては、分割線設定ステップは、画面上に設定される複数の分割候補線のうちから分割線をユーザの指示に従って選択する選択ステップ(S21)を含んでいてもよい。
【0014】
第9の発明においては、画像変換プログラムは、複数個のポリゴンで構成されるオブジェクトを、当該オブジェクトが画面に表示された場合に複数の分割候補線とポリゴンの辺とが一致するように、仮想の3次元空間に配置する(図7、図8)オブジェクト配置ステップ(S1)をコンピュータにさらに実行させてもよい。このとき、画像処理装置は、複数個のポリゴンの各頂点に対して元画像上の位置をそれぞれ関連付けた関連付けデータ(67)を記憶している。元画像表示ステップにおいて、コンピュータは、関連付けデータにおける関連付けに従って元画像をテクスチャとして用いてオブジェクトを描画することによって画面に元画像を表示する。変更ステップにおいて、コンピュータは、関連付けデータにおける関連付けを変更することによって元画像を変換する。
【0015】
第10の発明においては、複数の分割候補線は、直線であり、任意の分割候補線で画像領域を分割した場合において、小さい方の領域内におけるポリゴンの各頂点の位置が、大きい方の領域内におけるポリゴンの各頂点のいずれかの位置と、当該分割候補線を軸として線対称となるように設定されてもよい(図7、図8)。このとき、変更ステップにおいて、コンピュータは、変換後の画像が分割線を軸として線対称となるように関連付けを変更する。
【0016】
第11の発明においては、複数の分割候補線は、直線であり、分割候補線によって分割される2つの領域のうちの少なくとも一方の領域を当該分割候補線を軸として反転させた場合に、当該反転させた領域が他方の領域の全体を覆うように設定されてもよい。このとき、変更ステップにおいて、コンピュータは、変換後の画像が分割線を軸として線対称となるように第1領域の画像を変換する。
【0017】
第12の発明においては、分割線設定ステップにおいて、コンピュータは、分割線として直線を設定してもよい。このとき、変更ステップにおいて、コンピュータは、変換後の画像が分割線を軸として対称となるように第1領域の画像を変更する。
【0018】
第13の発明においては、変更ステップは、比較ステップ(S31)と、変換実行ステップ(S32)とを含んでいてもよい。比較ステップにおいて、コンピュータは、分割線によって分割された2つの領域の大きさを比較する。変換実行ステップにおいて、コンピュータは、比較ステップにおける比較の結果、大きい方の領域を第2領域として元画像を変換する。
【0019】
第14の発明においては、画像変換プログラムは、判定ステップ(S41)と、分割線再設定ステップ(S42)とをコンピュータにさらに実行させてもよい。判定ステップにおいて、コンピュータは、変更ステップにおいて分割線を軸として反転させた第2領域の画像によって第1領域の全体が覆われたか否かを判定する。分割線再設定ステップにおいて、コンピュータは、判定ステップにおいて、反転された第2領域の画像によって第1領域の一部が覆われていないと判定される場合、当該反転された第2領域の画像の境界線のうちで第1領域内に含まれる境界線を新たな分割線として設定する。このとき、変更ステップにおいて、コンピュータは、分割線再設定ステップにおいて分割線が設定された場合、設定された分割線に基づいて画像の変換を再度行う。
【0020】
第15の発明においては、画像変換プログラムは、分割線設定ステップおよび変更ステップを繰り返しコンピュータに実行させてもよい。
【0021】
第16の発明においては、画像変換プログラムは、画像変換装置が備える撮像手段(カメラ23または25)によって撮像された画像を繰り返し取得する画像取得ステップ(S2)をコンピュータにさらに実行させてもよい。このとき、元画像表示ステップにおいて、コンピュータは、画像変換装置が備える撮像手段によって撮像された画像を元画像として用いる。変更ステップにおいて、コンピュータは、取得ステップにおいて画像が取得される度に、取得された画像を元画像として用いて変換後の画像を表示装置に表示させる。
【0022】
第17の発明においては、画像変換プログラムは、画像を保存する旨の保存指示がユーザによって行われた場合、表示装置に表示されている画像を記憶手段(保存用データメモリ34)に記憶する画像記憶ステップ(S7)をコンピュータにさらに実行させてもよい。
【0023】
また、本発明は、上記第1〜第17の発明における各ステップを実行する画像変換装置と同等の機能を有する画像変換装置の形態で提供されてもよい。なお、当該画像変換装置においては、画像変換プログラムを実行するCPUによって上記各ステップにおける処理が実行されてもよいし、画像変換装置が備える専用の回路によって上記各ステップにおける処理の一部または全部が実行されてもよい。
【発明の効果】
【0024】
第1の発明によれば、分割線設定ステップにおいてユーザの指示によって分割線が設定されるので、ユーザは、自由に分割線を設定することができる。これによって、ユーザは自由に変換画像を生成することができ、変換画像として様々なバリエーションの画像を生成することができる。
【0025】
第2の発明によれば、ユーザはポインティングデバイスを用いて分割線を設定することができる。これによれば、ユーザは、元画像上に直接入力を行うことができるので、直感的に操作を行うことが可能となる。さらに、第3の発明によれば、ユーザは画面上に線を描くように入力を行うことによって分割線を設定することができる。これによれば、ユーザは、元画像に対して分割線を直接入力するような感覚で分割線を設定することができるので、直感的に操作を行うことが可能で、かつ、操作感の良い操作方法を提供することができる。
【0026】
第4の発明によれば、分割候補線のうちから分割線が選択されるので、ユーザがうまく分割線を入力することができない場合(例えば、直線を正確に入力することができない場合)であっても、分割線を正確に設定することができる。
【0027】
第5の発明によれば、ユーザによって画面上に描かれた軌跡の位置および方向に基づいて分割線を選択するので、ユーザの意図に沿った分割候補線を正確に選択することができる。
【0028】
第6の発明によれば、2つの入力位置を用いて、ユーザの意図に沿った分割を容易に選択することができる。特に、第7の発明によれば、入力が開始された位置を第1の入力位置とし、入力が終了した位置を第2の入力位置とすることによって、ユーザが描いた軌跡から、ユーザの意図に沿った位置および方向を正確に抽出することができる。
【0029】
第8の発明によれば、分割候補線のうちから分割線が選択されるので、ユーザは分割線を容易に設定することができる。
【0030】
第9の発明によれば、オブジェクトを構成する各ポリゴンを分割候補線に一致するように配置することによって、画像の変更を容易に行うことができる。コンピュータは、すなわち、ポリゴンの頂点と画像上の位置との関連付けを変更することによって画像の変更を容易に行うことができる。
【0031】
第10の発明によれば、変更ステップにおいて関連付けを変更する際、コンピュータは、ある頂点に関連付けられる元画像上の位置を、他の頂点に関連付けられる元画像上の位置へと変更することができるので、変更後の関連付けを容易に算出することができる。
【0032】
第11の発明によれば、分割線によって分割された領域のうちの小さい方の領域の画像を、大きい方の領域の画像を反転させた画像へと変更することによって、変換後の画像において連続性を確実に維持することができる。
【0033】
第12の発明によれば、画像変換処理によって分割線を軸として線対称となる画像を生成することができる。
【0034】
第13の発明によれば、大きい方の領域の画像を反転させた画像を小さい方の領域に上書きするので、変換後の画像において画像の連続性が維持される可能性が高くなる。
【0035】
第14の発明によれば、変換後の画像において画像の連続性が失われる場合には画像の変換が再度行われるので、最終的には連続性を維持する画像を確実に得ることができる。
【0036】
第15の発明によれば、ユーザは、変換後の画像に対して分割線を設定することができるので、画像変換処理を繰り返し行うことができる。画像変換処理を繰り返し行うことによって、より変化に富んだ画像を生成することができる。
【0037】
第16の発明によれば、ユーザが撮影した、リアルタイムに変化する映像(動画)に対して画像変換処理を行い、画像変換処理が行われた映像を表示することができる。また、第17の発明によれば、画像変換処理後の画像を保存することができる。
【発明を実施するための最良の形態】
【0038】
[ゲーム装置の構成]
以下、本発明の一実施形態に係る画像変換装置の一例である携帯型のゲーム装置について説明する。図1は、ゲーム装置10の外観を示す図である。図1に示す携帯型のゲーム装置10は、撮像手段(カメラ)によって画像を撮像し、撮像された画像(撮像画像)を画面に表示したり、撮像画像のデータを保存したり、撮像画像に対して所定の画像変換処理を行ったりするものである。なお、本実施形態では、携帯型の情報処理装置である携帯ゲーム装置を例として説明するが、本発明に係る画像変換装置は据置型の情報処理装置であってもよい。以下、図1を参照して、ゲーム装置10の外観構成について説明する。
【0039】
図1に示すように、ゲーム装置10は、折り畳み型のゲーム装置であり、下側ハウジング11および上側ハウジング21という2つのハウジングを有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
【0040】
ゲーム装置10は、上側LCD(Liquid Crystal Display:液晶表示装置)22および下側LCD12という2つの表示装置を備えている。上側LCD22は上側ハウジング21に取り付けられ、下側LCD12は下側ハウジング11に取り付けられる。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、ゲーム装置10は任意の解像度の表示装置を利用することができる。なお、本実施形態においては、ゲーム装置10は2つの表示装置を備える場合を例として説明するが、他の実施形態においては、画像変換装置(ゲーム装置)が有する表示装置の数はいくつであってもよい。
【0041】
ゲーム装置10は、音声出力手段として、図示しないスピーカを備えている。スピーカは、上側ハウジング21内に収納される。また、上側ハウジング21には、スピーカからの音を外部に放出するための音抜き孔24が設けられる。
【0042】
ゲーム装置10は、撮像手段として、2つのカメラ23および25(図2)を備えている。各カメラはともに上側ハウジング21に収納される。図1に示されるように、内側カメラ23は、上側ハウジング21の内側面(ゲーム装置10が閉状態となった場合に内側となる面)に取り付けられる。一方、図示していないが、外側カメラ25は、内側カメラ23が取り付けられる面の反対側の面、すなわち、上側ハウジング21の外側面(ゲーム装置10が閉状態となった場合に外側となる面)に取り付けられる。このように、本実施形態では、2つのカメラ23および25が撮像方向が互いに逆方向となるように設けられる。したがって、ユーザはゲーム装置10を持ち替えることなく、異なる2方向を撮像することができる。例えば、ユーザは、ゲーム装置10からユーザの方を見た景色を内側カメラ23で撮影することができるとともに、ゲーム装置10からユーザの反対側の方向を見た景色を外側カメラ25で撮影することができる。
【0043】
なお、本実施形態においては、ゲーム装置10は、2つのカメラ23および25を備え、カメラ23または25によって撮像された撮像画像に対して画像変換処理を行う場合を例として説明するが、画像変換処理の対象となる画像はどのような方法で取得されてもよい。画像変換処理の対象となる画像は、例えば、インターネット等のネットワークを介して他の装置から取得される画像であってもよいし、メモリカード28等の記憶媒体によって取得される画像でもよいし、ユーザによる画像生成操作によって生成される画像でもよい。したがって、本発明に係る画像変換装置は、撮像装置を有していない構成であってもよい。
【0044】
ゲーム装置10は、入力装置として複数のボタンを備えている。図1に示すように、方向入力ボタン14A、ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、下側ハウジング11の内側面(ゲーム装置10が閉状態となった場合に内側となる面)に設けられる。各ボタン14A〜14Eは、ゲーム装置10に対する各種操作を行うために用いられる。また、図示していないが、下側ハウジング11の上辺の両端には、例えば撮影操作(シャッター操作)を行うためのボタンがそれぞれ1つずつ設けられる。また、ゲーム装置10の電源をオン/オフするための電源ボタンは、例えば下側ハウジング11の右側面に設けられる。ゲーム装置10が備えるスピーカの音量を調整するための音量ボタンは、例えば下側ハウジング11の左側面に設けられる。
【0045】
ゲーム装置10は、上記ボタンとは別の入力装置として、タッチパネル13をさらに備えている。タッチパネル13は、下側LCD12の画面上に装着されている。タッチパネル13としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。タッチパネル13に対する入力は通常タッチペン27を用いて行われるが、タッチペン27に限らずユーザの指でタッチパネル13を操作することも可能である。本実施形態においては、ゲーム装置10は、タッチパネル13に対する入力に従って、後述する分割線を決定する。なお、下側ハウジング11の右側面には、タッチペン27を収納することが可能な挿入口17(図1に示す点線)が設けられている。
【0046】
ゲーム装置10は、音声入力装置としてマイク(図2に示すマイク42)を備えている。マイク42は、下側ハウジング11の内部に収納されている。また、下側ハウジング11の内側面には、マイクがゲーム装置10外部の音を検知することができるように、マイクロフォン用孔16が設けられる。
【0047】
また、図示していないが、下側ハウジング11の左側面には開閉可能なカバー部が設けられる。このカバー部の内側には、ゲーム装置10とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、コネクタに着脱自在に装着される。メモリカード28は、例えば、撮像画像のデータを記憶(保存)するために用いられる。また、メモリカード28には、後述する画像変換処理を実行するための画像変換プログラムが記憶されていてもよい。
【0048】
[ゲーム装置10の内部構成]
次に、図2を参照して、ゲーム装置10の内部構成について説明する。図2は、ゲーム装置10の内部構成を示すブロック図である。図2に示すように、ゲーム装置10は、CPU31、メインメモリ32、メモリ制御回路33、保存用データメモリ34、プリセットデータ用メモリ35、メモリカードインターフェース(メモリカードI/F)36、無線通信モジュール37、ローカル通信モジュール38、リアルタイムクロック(RTC)39、電源回路40、およびインターフェース回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11内に収納される。なお、ゲーム装置10が備える各種電子回路や電池は、上側ハウジング21および下側ハウジング11のいずれに収納されてもよい。
【0049】
CPU31は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば保存用データメモリ34)に記憶されており、CPU31は、当該所定のプログラムを実行することによって、後述する画像変換処理を実行する。なお、CPU31によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶されていてもよいし、メモリカード28から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【0050】
CPU31には、メインメモリ32、メモリ制御回路33、およびプリセットデータ用メモリ35が接続される。また、メモリ制御回路33には保存用データメモリ34が接続される。メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ32は、上記画像変換処理に用いられる各種データを記憶したり、外部(メモリカード28や他の機器等)から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ34は、CPU31によって実行されるプログラムや各カメラ23および25によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ34は、例えばNAND型フラッシュメモリで構成される。メモリ制御回路33は、CPU31の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ35は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ35としては、SPI(Serial Peripheral Interface)バスによってCPU31と接続されるフラッシュメモリを用いることができる。
【0051】
メモリカードI/F36はCPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みをCPU31の指示に従って行う。本実施形態では、各カメラ23および25によって撮像された画像データがメモリカード28に書き込まれたり、メモリカード28に記憶された画像データがメモリカード28から読み出されて保存用データメモリ34に記憶されたりする。
【0052】
無線通信モジュール37は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール38は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール37およびローカル通信モジュール38はCPU31に接続される。CPU31は、無線通信モジュール37を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール38を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0053】
また、CPU31には、RTC39および電源回路40が接続される。RTC39は、時間をカウントしてCPU31に出力する。CPU31は、RTC39によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(電池)からの電力を制御し、ゲーム装置10の各電子部品に電力を供給する。
【0054】
また、ゲーム装置10は、マイク42およびアンプ43を備えている。マイク42およびアンプ43はそれぞれI/F回路41に接続される。マイク42は、音を検知して音声信号をI/F回路41に出力する。アンプ43は、I/F回路41から音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路41はCPU31に接続される。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびアンプ43(スピーカ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式の入力位置データを生成してCPU31に出力する。入力位置データは、タッチパネル13の入力面のうちで入力が行われた位置(入力位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、入力位置データの生成を所定時間に1回の割合で行う。CPU31は、入力位置データを取得することにより、タッチパネル13に対する入力位置を知ることができる。
【0055】
操作部14は、上記各ボタンからなり、CPU31に接続される。操作部14からCPU31へは、各ボタンに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作部14から操作データを取得することによって、操作部14に対する入力に従った処理を実行する。
【0056】
各カメラ23および25はCPU31に接続される。各カメラ23および25は、CPU31の指示に従って画像を撮像し、撮像した画像データをCPU31に出力する。本実施形態では、CPU31は各カメラ23および25のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをCPU31に送る。
【0057】
また、各LCD12および22はCPU31に接続される。各LCD12および22はCPU31の指示に従って画像を表示する。本実施形態では、CPU31は、各カメラ23および25のいずれかから取得した撮像画像を下側LCD12に表示させ、操作方法等を説明するための操作画像を上側LCD22に表示させる。
【0058】
[画像変換処理の概要]
以下、図3〜図5を参照して、ゲーム装置10によって実行される画像変換処理の概要について説明する。本実施形態においては、カメラ23または25によって撮像される撮像画像に対して画像変換処理を行う場合について説明する。
【0059】
まず、ゲーム装置10は元画像表示ステップを実行する。元画像表示ステップでは、変換前の画像(元画像と呼ぶ。)を表示装置(下側LCD12)に表示させる処理が実行される。図3は、画像変換処理の対象となる元画像の一例を示す図である。本実施形態では、元画像表示ステップにおいて、例えば図3に示すような撮像画像が下側LCD12に表示される。すなわち、ユーザが撮影操作(シャッター操作)を行うと、撮影操作の時点でカメラ23または25によって撮像された画像が下側LCD12に表示される。なお、上述したように、元画像は撮像画像に限らず、どのような画像であってもよい。また、本実施形態においては、分割線を設定する入力をタッチパネル13を用いて行うことが理由で撮像画像を下側LCD12に表示させるが、当該入力をタッチパネル13を用いて行わない場合(例えばボタンを用いて行う場合)には、撮像画像は上側LCD22に表示されてもよい。
【0060】
次に、ゲーム装置10は分割線設定ステップを実行する。分割線設定ステップでは、分割線がユーザの指示によって設定される。分割線とは、表示装置に表示された画像(元画像)の領域を2つの領域に分割する線である。以下、分割線によって分けられた2つの領域を、第1領域および第2領域と呼ぶ。本実施形態では、分割線によって分割された2つの領域のうちで、小さい方を第1領域とし、大きい方を第2領域とする。また、本実施形態においては、分割線は、タッチパネル13に対する入力に基づいて設定される。図4は、タッチパネル13を用いて分割線を設定する操作を示す図である。図4に示されるように、ユーザは、タッチペン27等を用いてタッチパネル13上(下側LCD12の画面上)に軌跡51を入力する(軌跡を描く)。ゲーム装置10は、入力された軌跡51に基づいて分割線52を設定する。これによって、元画像の領域は第1領域53と第2領域54とに分割される。詳細は後述するが、本実施形態においては、下側LCD12の画面上に複数の分割候補線(図9参照)が予め設定され、設定すべき分割線52は当該複数の分割候補線のうちから選択される。すなわち、分割候補線のうちで軌跡51に最も近い線が分割線52として設定される。
【0061】
なお、本実施形態においては、分割線の設定を行うための入力装置としてタッチパネル13を用いることとしたが、入力装置はどのようなものであってもよい(入力装置の他の例については、後述する変形例において述べる)。また、本実施形態においては、分割候補線から分割線を選択することとしたが、他の実施形態においては、分割候補線を用いずに、ユーザによる入力に基づいて分割線を導出するようにしてもよい。ゲーム装置10は、例えば、画面上に入力された軌跡をそのまま分割線としてもよいし、当該軌跡に近似する直線(または曲線)を分割線として算出してもよい(詳細は後述する変形例において述べる)。
【0062】
上記分割線設定ステップの次に、ゲーム装置10は変更ステップを実行する。変更ステップでは、上記第1領域53の少なくとも一部の画像を、第2領域54の画像から生成される画像へと変更することによって元画像が変換され、変換後の画像(変換画像と呼ぶ。)が表示装置(下側LCD12)に表示される。図5は、変換画像の一例を示す図である。本実施形態においては、「第2領域の画像から生成される画像」とは、第2領域の画像を反転させた画像である。すなわち、ゲーム装置10は、第1領域53の画像を、分割線52を軸として第2領域54の画像を反転させた画像へと変換する(図5参照)。これによって、分割線52を軸として線対称となる画像(対象画像と呼ぶ。)を変換画像として得ることができる。なお、第2領域54の画像を反転させる処理はどのような処理であってもよいが、本実施形態では、第2領域54の画像を反転させる処理として、複数のポリゴンで構成されるオブジェクトに対して元画像をテクスチャとして用いる方法を採用する(詳細は後述する)。また、他の実施形態では、「第2領域の画像から生成される画像」は、第2領域の画像自体(反転させていない画像)であってもよいし、第2領域の画像に所定の処理(拡大・縮小・変形等の処理)を行った画像であってもよい。
【0063】
また、本実施形態では、分割線によって分割された2つの領域のうちで大きい方を第2領域とした、つまり、変更ステップにおいて画像が変更される領域を小さい方の領域(第1領域)とした。ここで、他の実施形態においては、分割線52によって分割された2つの領域のうちで小さい方を第2領域とし、大きい方を第1領域としてもよい。この場合、変更ステップにおいては、第1領域の一部の画像が、第2領域の画像から生成される画像へと変更されることとなる。
【0064】
なお、本実施形態では、変換画像を下側LCD12に表示することしたが、他の実施形態においては、下側LCD12とともに、または、下側LCD12に代えて、上側LCD22に変換画像を表示するようにしてもよい。
【0065】
以上のように、上記画像変換処理によれば、分割線設定ステップにおいて分割線はユーザの指示によって設定され、ユーザは、所望の位置および方向に延びる分割線を設定することができるので、自由に分割線を設定することができる。これによって、変換画像として様々なバリエーションの画像を得ることができる。また、本実施形態においては、ユーザはタッチパネル13を用いて軌跡を入力することによって分割線を設定することができるので、所望の分割線を容易に設定することができる。また、本実施形態においては、第1領域の画像が、分割線を軸として第2領域の画像を反転させた画像へと変換される(図5参照)ので、変換画像として、分割線において連続した画像を得ることができる。
【0066】
[ゲーム装置10において実行される処理の詳細]
次に、上述した画像変換処理の具体例として、ゲーム装置10において実行される処理の詳細について説明する。まず、図6〜図9を参照して、ゲーム装置10における処理において用いられる主なデータについて説明する。図6は、ゲーム装置10のメインメモリ32に記憶される主なデータを示す図である。図6に示すように、メインメモリ32には、画像変換プログラム61および変換処理用データ62が記憶される。なお、メインメモリには、図6に示すデータの他、各ボタンに対する操作状態(押下されているか否か)を示すデータや、操作方法等を説明するための操作画像に用いられる画像データ等、画像変換処理に必要なデータが記憶される。
【0067】
画像変換プログラム61は、上述した画像変換処理を実行するためのプログラムである。画像変換プログラム61は、メインメモリ32に予め記憶されていてもよいし、メモリカード28から取得されてもよい。メモリカード28から取得される場合、画像変換プログラム61は、ゲーム装置10に電源が投入された後の適宜のタイミングでメモリカード28からその一部または全部が読み込まれてメインメモリ32に記憶される。
【0068】
変換処理用データ62は、画像変換処理においてゲーム装置10によって適宜用いられるデータである。変換処理用データ62は、元画像データ63、タッチオン位置データ64、タッチオフ位置データ65、オブジェクトデータ66、関連付けデータ67、分割線データ68、および変換画像データ69を含んでいる。
【0069】
元画像データ63は、画像変換処理の対象となる変換前の画像(元画像)を示すデータである。本実施形態では、元画像は、カメラ23または25によって撮像された画像(撮像画像)である。本実施形態では、ゲーム装置10の電源がオンである間、カメラ23または25による撮像画像は所定時間間隔に1回の割合でCPU31に取得されて下側LCD12に表示される。そして、ユーザが所定の撮影操作を行った場合、撮影操作の時点でカメラ23または25から得られる撮像画像が元画像データ63としてメインメモリ32に記憶される。
【0070】
タッチオン位置データ64は、画面上におけるタッチオン位置を示すデータである。ここで、タッチオン位置とは、タッチパネル13に対して連続して入力が行われる場合において最初に入力された入力位置のことである。なお、タッチパネル13からCPU31へは所定時間間隔に1回の割合で入力位置データが送られる。入力位置データは、タッチパネル13に対して入力が行われる場合には入力位置を示し、タッチパネル13に対して入力が行われていない場合には入力が行われていないことを示す。CPU31は、タッチパネル13から取得される入力位置データのうち、タッチパネル13に対して連続して入力が行われる場合において最初に取得された入力位置データをタッチオン位置データ64としてメインメモリ32に記憶する。
【0071】
タッチオフ位置データ65は、画面上におけるタッチオン位置を示すデータである。ここで、タッチオフ位置とは、タッチパネル13に対して連続して入力が行われる場合において最後に入力された入力位置のことである。CPU31は、タッチパネル13から取得される入力位置データのうち、タッチパネル13に対して連続して入力が行われる場合において最後に取得された入力位置データをタッチオフ位置データ65としてメインメモリ32に記憶する。
【0072】
オブジェクトデータ66は、仮想の3次元空間に配置されるオブジェクトを構成するためのデータ、すなわち、オブジェクトを構成する複数のポリゴンの頂点の位置(3次元空間における位置)を示すデータである。ここで、本実施形態では、CPU31は、撮像画像(元画像)および変換画像を表示するために3次元の画像処理を行う。すなわち、上記オブジェクトを仮想の3次元空間に配置し、元画像をテクスチャとして貼り付けたオブジェクトを仮想カメラから見た画像を生成する処理を行う。複数のポリゴンで構成されるオブジェクトは、表示する画像と同じかそれよりも大きな平面を有していることが望ましく、本実施例においては表示する画像と同形状の、厚さのない板形状を構成している。
【0073】
ここで、本実施形態においては、上記オブジェクトを構成する各ポリゴンは、ポリゴンの辺が分割候補線に一致するように設定される。そこで、ポリゴンの設定方法を説明する前に、まず分割候補線の設定方法について説明する。図7は、分割候補線の一例を示す図である。分割候補線を設定する場合、まず、画面上(画像上)に複数の点を格子状に(格子の交点の位置に)配置する(以下、格子状に配置された点を「格子点」と呼ぶ)。図7に示す例では、画像における位置を示すxy座標系において、12個の格子点P1〜P4,P8〜P11,P15〜P18が配置される。なお、図7においては画面の縦横方向に沿った格子状に複数の格子点を配置しているが、画面の縦横方向に対して斜めに傾いた格子状に複数の格子点を配置してもよい。
【0074】
次に、上記格子点を通る直線を分割候補線として設定する。具体的には、「格子点を通り、格子点により形成される格子の縦または横方向に延びる直線(縦横方向の分割候補線)」、あるいは、「格子点を通り、格子点により形成される格子の斜め45°方向に延びる線(斜め方向の分割候補線)」が分割候補線として設定される。以上より、図7においては、点線で示される11本の分割候補線が設定される。点P5〜P7,P12〜P14は、斜め方向の分割候補線同士の交点である。以下では、上記格子点P1〜P4,P8〜P11,P15〜P18と、斜め方向の分割候補線同士の交点P5〜P7,P12〜P14とを総称して、基準点と呼ぶ。なお、本実施形態では、縦横方向の分割候補線あるいは斜め方向の分割候補線のいずれかの条件を満たす直線をすべて分割候補線とするが、他の実施形態においては、当該いずれかの条件を満たす直線のうちの一部の直線のみを分割候補線として設定してもよい。例えば、他の実施形態においては、縦横方向の分割候補線のみを分割候補線として設定してもよい。
【0075】
なお、各分割候補線は、変換画像の連続性が必ず維持されるように設定されることが好ましい。具体的には、各分割候補線は、図7に示す11本の分割候補線のように、分割候補線によって分割される2つの領域のうちの少なくとも一方の領域を当該分割候補線を軸として反転させた場合に、当該反転させた領域が他方の領域の全体を覆うように設定されることが好ましい。このように設定すれば、小さい方の領域の画像を、大きい方の領域の画像を反転させた画像へと変更することによって、変換画像の連続性を担保することができるからである。
【0076】
以上のように設定される分割候補線に対して、オブジェクトを構成する各ポリゴンは、オブジェクトが画面に表示された場合においてポリゴンの辺が分割候補線に対応する(一致する)ように配置される。図8は、図7に示す分割候補線に対応する各ポリゴンによって構成されるオブジェクトを示す図である。図8に示すように、オブジェクト71は、各LCD12および22の画面とほぼ同じ形状の平面状である。画像(元画像または変換画像)を表示する際には、オブジェクト71の辺が画面の表示領域の枠とほぼ一致するようにオブジェクト71が表示される。オブジェクト71を構成する各ポリゴンは、(オブジェクトが画面に表示される場合において)上記基準点P1〜P18がポリゴンの頂点V1〜V18に対応し、分割候補線がポリゴンの辺に対応するように配置される(図8参照)。その結果、図8においては、24個のポリゴンでオブジェクト71が構成される。各ポリゴンは、ポリゴン同士が重ならないように、かつ、隙間がないように配置される。詳細は後述するが、以上のようにポリゴンと分割候補線とを対応付けることによって、画像変換処理を容易に行うことができる。
【0077】
ここで、本実施形態においては、ポリゴンの各頂点の位置関係を簡易に表すために、ポリゴンの頂点の位置を、3次元空間における位置とは別に、格子のマス目で表される位置(平面のオブジェクト71上における2次元位置)でも表すこととする。具体的には、図8に示すように、ポリゴンの頂点のオブジェクト71上における位置は、ab座標系における座標値として表すことができる。図8において、a軸はポリゴンの縦方向の位置を表し、b軸はポリゴンの横方向の位置を表す。以上のように、本実施形態においては、オブジェクトデータ66は、各ポリゴンの各頂点について、上述した3次元空間における位置に加え、オブジェクト71上における2次元位置をも示すデータである。つまり、オブジェクトデータ66は、各ポリゴンの各頂点について、3次元空間における位置(3次元座標)と、オブジェクト71上の2次元位置(ab座標)との関連付けを示す。なお、オブジェクトデータ66は、画像変換プログラム61と共に予め用意されており、ゲーム装置10における処理の開始時にメインメモリ32に記憶される。
【0078】
図6に示す関連付けデータ67は、上記オブジェクトを構成する複数のポリゴンの頂点(の位置)と、当該頂点に対応する画像上の位置(xy座標)との関連付けを示すデータである。上述したように、本実施形態では、元画像および変換画像を表示するために、元画像をテクスチャとしてオブジェクトに貼り付ける処理を行う。関連付けデータ67は、この処理を行うために用いられるデータである。
【0079】
本実施形態では、関連付けデータ67は2次元配列のデータ構造を有する。図9は、関連付けデータ67により表される2次元配列の一例を示す図である。図9は、2次元配列V[a][b]の添字と要素との対応を示す図である。図9において、2次元配列V[a][b]の添字(a,b)は、ポリゴンの頂点の位置(ab座標)を表す。また、2次元配列V[a][b]の要素は、頂点に対応する画像上の位置を表す。つまり、2次元配列V[a][b]の要素は、添字(a,b)により表される頂点の位置に対して関連付けられる(画像上の)位置を表す。具体的には、2次元配列V[a][b]の要素は、上述した分割候補線の基準点(図7に示す点P1〜P18)のいずれかの位置である。例えば、“V[2][2]=(x9,y9)”とは、(a,b)=(2,2)により表されるポリゴンの頂点V9に対して、画像上の位置P9=(x9,y9)が関連付けられていることを表す。なお、2次元配列の添字により表される位置のうちには、例えばV[0][1]のように、ポリゴンの頂点に対応しない位置も含まれている。このようなポリゴンの頂点に対応しない位置を表す添字については、その要素は画像上における位置を表さない(図9では“NULL”を表す)。詳細は後述するが、上記2次元配列を用いることによって、ポリゴンの頂点と、画像上の位置との関連づけを容易に変更することができる。
【0080】
なお、図9に示すポリゴンの頂点と画像上の位置との関連付けは、図7に示す元画像がそのまま表示される場合の関連付けを表している。ゲーム装置10における処理の開始時においては、初期状態の関連付けとして、元画像がそのまま表示される場合の関連付けを示す関連付けデータ67がメインメモリ32に記憶される。
【0081】
図6の説明に戻り、分割線データ68は、分割線を示すデータである。本実施形態では、分割線は分割候補線から選択され、分割候補線は2つ以上の上記基準点を通るので、分割線は2つの基準点によって表すことができる。したがって、本実施形態では、分割線データ68は、2つの基準点の位置を示すデータである。
【0082】
変換画像データ69は、画像変換処理による変換後の画像(変換画像)を示すデータである。画像変換処理においては、まず関連付けデータ67の内容が変更されることによって、ポリゴンの頂点と画像上の位置との関連付けが変更される。変換画像データ69は、変更後の関連付けデータ67の内容に従って生成される。
【0083】
次に、図10〜図15を参照して、ゲーム装置10の動作について説明する。図10は、ゲーム装置10における画像変換処理の流れを示すフローチャートである。電源ボタンが押下されることによってゲーム装置10の電源が投入されると、ゲーム装置10のCPU31は、メインメモリ32等の初期化を行った後、図10に示す画像変換処理を行うためのプログラムの実行を開始する。
【0084】
図10に示すステップS1において、CPU31は、元画像を表示するために用いられるオブジェクトを仮想の3次元空間に配置する。すなわち、メインメモリ32に記憶されているオブジェクトデータ66に従って、複数のポリゴンを3次元空間に配置する。ステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S8の処理ループは、所定時間(1フレーム時間。例えば1/60秒)に1回の割合で、画像変換処理が終了するまで繰り返し実行される。
【0085】
ステップS2において、CPU31は、内側カメラ23または外側カメラ25によって撮像された画像のデータを取得する。本実施形態では、カメラ23および25のいずれか一方のカメラにおいてのみ画像が撮像され、CPU31は、当該一方のカメラからのみ画像データを取得する。なお、カメラ23および25のうちいずれのカメラによって撮像を行うかは、ユーザの指示に従って決定される。上述のように、ステップS2の処理は、所定時間(例えば1/60秒)に1回の割合で繰り返し実行される。ステップS2の処理が繰り返し実行されることによって、カメラ23または25によって撮像されたリアルタイムの画像が下側LCD12に表示される。なお、他の実施形態においては、当該リアルタイムの画像を上側LCD22に表示し、撮影操作の時点で撮像された画像を下側LCD12に表示するようにしてもよい。ステップS2の次にステップS3の処理が実行される。
【0086】
ステップS3において、CPU31は、撮像画像を元画像として記憶する。すなわち、最後に実行されたステップS2で取得された撮像画像のデータが元画像データ63としてメインメモリ32に記憶される。このように、本実施形態では、元画像データ63は1フレーム毎(ステップS2〜S8の処理ループ毎)に更新される。ステップS3の次にステップS4の処理が実行される。
【0087】
ステップS4において、CPU31は分割線設定処理を実行する(上記分割線設定ステップ)。分割線設定処理は、ユーザの指示に従って分割線を設定するための処理である。以下、図11を参照して、分割線設定処理について説明する。
【0088】
図11は、図10に示す分割線設定処理(ステップS4)の流れを示すフローチャートである。分割線設定処理においては、まずステップS11において、CPU31は、入力位置データをタッチパネル13から取得する。取得された入力位置データはメインメモリ32に記憶される。なお、本実施形態では、CPU31は、今回の分割線設定処理におけるステップS11で取得された入力位置データ(今回の入力位置データ)と、前回の分割線設定処理におけるステップS11で取得された入力位置データ(前回の入力位置データ)とを少なくともメインメモリ32に記憶しておく。ステップS11の次にステップS12の処理が実行される。
【0089】
ステップS12において、CPU31は、タッチパネル13に対する入力が行われているか否かを判定する。ステップS12の判定は、ステップS11で取得された入力位置データに基づいて行うことができる。すなわち、上記入力位置データが入力位置を示す場合、ステップS12の判定結果が肯定となり、ステップS13の処理が実行される。一方、上記入力位置データが入力が行われていないことを示す場合、ステップS12の判定結果が否定となり、後述するステップS19の処理が実行される。
【0090】
ステップS13において、CPU31は、今回の分割線設定処理におけるステップS11で検知された入力が、最初の入力であるか否かを判定する。具体的には、今回の入力位置データにより示される入力位置が、タッチオン位置であるか否かを判定する。ステップS13の判定は、前回の入力位置データの内容に基づいて行うことができる。すなわち、前回の入力位置データが入力位置を示す場合、ステップS13の判定結果が否定となり、後述するステップS16の処理が実行される。一方、前回の入力位置データが入力が行われていないことを示す場合、ステップS13の判定結果が肯定となり、ステップS14の処理が実行される。なお、ステップS13の判定結果が肯定となる場合、CPU31は、今回の入力位置データを、タッチオン位置データ64としてメインメモリ32に記憶する。
【0091】
ステップS14において、CPU31は、タッチオン位置に基づいて、分割線の一部となる1つ目の基準点を特定する。具体的には、CPU31は、分割候補線の基準点に含まれる格子点(図7に示す点P1〜P4,P8〜P11,P15〜P18)のうちで、タッチオン位置に最も近い格子点を特定する。なお、タッチオン位置は、メインメモリ32に記憶されているタッチオン位置データ64を参照することによって知ることができる。特定された格子点の位置(xy座標系における座標)を示すデータは、分割線データ68としてメインメモリ32に記憶される。
【0092】
図12は、ステップS14の処理を説明するための図である。図12においては、画面上における点Paの位置がタッチオン位置である。このとき、点Paに最も近い格子点は点P3であるので、CPU31は、点P3の位置を示すデータを分割線データ68としてメインメモリ32に記憶する。ステップS14の処理の次にステップS15の処理が実行される。
【0093】
ステップS15において、CPU31は、ステップS14で特定された基準点を通り、所定の向きを向く分割候補線を、各LCD12および22に表示すべき画像データを格納するメモリ(フレームバッファ)に描画する。ここで、所定の向きは、例えば画面に対して縦方向の向きに予め設定されていてもよいし、前回に設定された分割線の向きに設定されてもよい。ステップS15の描画処理によって、後述するステップS33では撮像画像に重ねて分割候補線が表示されることになる。ステップS15の後、CPU31は分割線設定処理を終了する。
【0094】
一方、ステップS16において、CPU31は、タッチオン位置から最新の入力位置への向きを算出する。具体的には、タッチオン位置を始点とし、最新の入力位置を終点とするベクトルを算出する。なお、タッチオン位置は、メインメモリ32に記憶されているタッチオン位置データ64を参照することによって知ることができる。また、最新の入力位置は、現時点でメインメモリ32にタッチオフ位置データ64として記憶されているデータを参照することによって知ることができる。ステップS16の次にステップS17の処理が実行される。
【0095】
ステップS17において、CPU31は、タッチオン位置に最も近い格子点を通る分割候補線のうちから、ステップS16で算出した向きに最も近い向きの分割候補線を選択する。以下、図13を用いてステップS16およびS17の処理の具体例を説明する。
【0096】
図13は、ステップS17の処理を説明するための図である。図13は、図12に示す状態からタッチパネル13に対する入力が連続して行われ、現在の入力位置が点Pbである状態を示している。図13に示す場合においては、ステップS16においてベクトルVが算出される。そして、ステップS17においては、格子点P3を通り、かつ、ベクトルVの向きに最も近い向きの分割候補線が選択される。図13においては、格子点P3を通る分割候補線は、点P3−点P15を通る直線、点P3−点P17を通る直線、および、点P3−点P11を通る直線である。これらの直線のうち、ベクトルVの向きに最も近い向きの分割候補線は、点P3−点P17を通る直線であるので、ステップS17においては点P3−点P17を通る分割候補線が選択される。
【0097】
上記ステップS17の次にステップS18の処理が実行される。ステップS18において、CPU31は、ステップS17で選択された分割候補線をステップS15と同様にフレームバッファに描画する。ステップS18の処理の終了後、CPU31は分割線設定処理を終了する。
【0098】
以上のステップS16〜S18の処理においては、分割線を選択する方法(後述するステップS19およびS20)と同様の方法で分割候補線が選択される。その結果、後述するステップS33においては、選択された分割候補線が元画像または変換画像とともに表示される。したがって、本実施形態においては、タッチパネル13に対する入力の途中には、その時点で入力を終えたとした場合に分割線となる分割候補線が表示される。これによれば、ユーザは、所望の分割線を間違いなく設定することができ、分割線の設定操作をより容易に行うことができる。
【0099】
一方、ステップS19において、CPU31は、タッチパネル13に対する入力が終了した直後であるか否かを判定する。ステップS19の判定は、前回の入力位置データの内容に基づいて行うことができる。すなわち、前回の入力位置データが入力位置を示す場合、ステップS19の判定結果が肯定となり、ステップS20およびS21の処理が実行される。一方、前回の入力位置データが入力が行われていないことを示す場合、ステップS19の判定結果が否定となり、ステップS20およびS21の処理がスキップされ、CPU31は分割線設定処理を終了する。
【0100】
ステップS20およびS21の処理においては、ユーザの指示に従って分割線を設定する処理が実行される。すなわち、ステップS20において、CPU31は、タッチオン位置からタッチオフ位置への向きを算出する。具体的には、タッチオン位置を始点とし、タッチオフ位置を終点とするベクトルを算出する。なお、タッチオン位置およびタッチオフ位置は、メインメモリ32に記憶されているタッチオン位置データ64およびタッチオフ位置データ64を参照することによって知ることができる。つまり、ステップS20の処理は、上記ステップS16の処理と同様の処理である。ステップS20の次にステップS21の処理が実行される。
【0101】
ステップS21において、CPU31は、分割候補線のうちから分割線を選択する。具体的には、ステップS17と同様、タッチオン位置に最も近い格子点を通る分割候補線のうちから、ステップS20で算出した向きに最も近い向きの分割候補線を分割線として選択する。また、ステップS21においては、分割線の2つ目の基準点の位置を示すデータが分割線データ68に追加される。すなわち、分割線データ68は、ステップS13で特定された格子点の位置を示すデータと、上記2つ目の基準点の位置を示すデータとを含むように更新される。これによって、分割線データ68により分割線が特定されたこととなる。ステップS21の後、CPU31は分割線設定処理を終了する。
【0102】
以上に説明した分割線設定処理によれば、CPU31は、タッチパネル13に対して連続して入力された全ての入力位置を用いるのではなく、タッチオン位置およびタッチオフ位置という2つの入力位置のみを用いて分割候補線から分割線を選択した。したがって、上記全ての入力位置を用いて分割線を選択する方法(例えば、全ての入力位置を用いて近似直線を算出する方法等)に比べて、簡易な処理で分割線を選択することができる。なお、他の実施形態においては、CPU31は、タッチパネル13に対して連続して入力された全ての入力位置を用いて分割線を選択するようにしてもよい。例えば、連続して入力された各入力位置から近似直線を算出し、当該近似直線に最も近い分割候補線を分割線として選択するようにしてもよい。
【0103】
また、本実施形態では、CPU31は、タッチパネル13に対して連続して入力された複数の入力位置(具体的にはタッチオン位置およびタッチオフ位置)から、画面上における位置(タッチオン位置)および方向(タッチオン位置からタッチオフ位置までの向き)を算出した(ステップS14およびS20)。そして、算出された位置および方向に基づいて分割候補線から分割線を選択した(ステップS21)。このように、ユーザによって描かれた軌跡の位置および方向を算出し、算出した位置および方向に最も類似する位置および方向を有する分割候補線を分割線として選択することによって、ユーザの意図に沿った分割線を正確に選択することができる。また、具体的には、CPU31は、タッチオン位置に最も近い格子点を通る分割候補線のうちで、タッチオン位置からタッチオフ位置までの向きに最も近い向きの分割候補線を分割線として選択した。これによって、2つの入力位置のみを用いて分割線をユーザの意図に沿って正確に選択することができる。なお、他の実施形態においては、CPU31は、例えば、タッチオン位置に最も近い基準点と、タッチオフ位置に最も近い基準点とを通る分割候補線を分割線として選択するようにしてもよい。
【0104】
図10の説明に戻り、ステップS4の分割線設定処理の次に、ステップS5の処理が実行される。すなわち、ステップS5において、CPU31は変更処理を実行する(上記変更ステップ)。変更処理は、設定された分割線で分割される第1領域の画像を、第2領域の画像を反転した画像へと変更することによって元画像を変換し、変換画像を表示するための処理である。以下、図14を参照して、変更処理について説明する。
【0105】
図14は、図10に示す変更処理(ステップS5)の流れを示すフローチャートである。変更処理においては、まずステップS30において、CPU31は、ステップS4において分割線が設定されたか否かを判定する。すなわち、今回の処理ループにおけるステップS4においてステップS21が実行されたか否かを判定する。ステップS30の判定結果が肯定となる場合、ステップS31およびS32の処理が実行される。一方、ステップS30の判定結果が否定となる場合、ステップS31およびS32の処理がスキップされ、ステップS33の処理が実行される。
【0106】
ステップS31において、CPU31は、ステップS4で設定された分割線によって分割された2つの領域の大きさ(具体的には面積)を比較する。上述したように、本実施形態では、比較の結果、小さい方の領域を第1領域とし、大きい方の領域を第2領域とする。ステップS31の次にステップS32の処理が実行される。
【0107】
ステップS32において、CPU31は、関連付けデータ67の内容を変更する。具体的には、オブジェクトを画面に表示した場合において第1領域内に含まれるポリゴンの頂点について、関連付けデータ67により示される関連付けが変更される。本実施形態では、CPU31は、第1領域内に含まれるポリゴンの頂点に関連付けられる画像上の位置を、当該頂点と分割線に関して対象な頂点に関連付けられる画像上の位置へと変更する。これによって、第1領域の画像を、第2領域の画像を反転させた画像へと変更することができる。以下、図15を参照してステップS32の具体例を説明する。
【0108】
図15は、変更後の関連付けデータ67の一例を示す図である。図15は、基準点P3およびP17を通る分割線が設定された場合に、図9に示す関連付けデータ67の変更後の内容を示す図である。図15に示すように、基準点P3およびP17を通る分割線が設定された場合、第1領域は当該分割線の右側の領域となる。したがって、右側の領域に含まれる頂点V4,V7,V11,V14,V18について、関連付けが変更される(図15に示す斜線参照。)。具体的には、各頂点に関連付けられる画像上の位置は、当該各頂点と分割線に関して対象な頂点に関連付けられる画像上の位置へと変更される。例えば頂点V4について説明すると、頂点V4に関連付けられる画像上の位置は、分割線を軸として当該頂点V4と対称な頂点V2に関連付けられる画像上の位置P2=(x2,y2)へと変更される。具体的には、CPU31は、2次元配列のV[0][6]の要素を(x2,y2)へと変更する。他の頂点V7,V11,V14,V18についても頂点V4と同様に、関連付けられる画像上の位置が変更される。なお、本実施形態では、オブジェクト上における頂点の位置をab座標を用いて表しているので、3次元空間における位置を用いる場合に比べて、分割線を軸としてある頂点と対称な頂点を容易に特定することができる。
【0109】
以上に説明したステップS32の処理によって、オブジェクトを構成するポリゴンの頂点と元画像上の位置との関連付けが変更されたこととなる。上記ステップS32の次にステップS33の処理が実行される。
【0110】
ステップS33において、CPU31は、関連付けデータ67に従って画像を下側LCD12に表示する(上記元画像表示ステップ)。すなわち、CPU31は、メインメモリ32に記憶されているオブジェクトデータ66および関連付けデータ67に従って、オブジェクトを構成する各ポリゴンの各頂点と、元画像上の位置との関連付けを行う。そして、得られた関連付けに従って元画像をテクスチャとして用いてオブジェクトを描画することによって画像を表示する。ここで、上記分割線設定処理(ステップS4)において分割線が1度も設定されていない場合には、関連付けデータ67は、上述した初期状態の関連付けを示しているので、元画像がそのまま表示されることとなる(図3参照)。一方、分割線設定処理において分割線が設定された場合には関連付けデータ67の内容が更新されている(ステップS32)ので、元画像の一部が反転した変換画像が表示されることとなる(図5参照)。また、上記分割線設定処理においてステップS15またはS18において分割候補線が描画されている場合には、元画像または変換画像に分割候補線が重ねて表示される。ステップS33の後、CPU31は変更処理を終了する。
【0111】
なお、他の実施形態においては、上記ステップS33において、CPU31は、第2領域の画像が反転して第1領域に表示される様子をアニメーションで表示するようにしてもよい。図16は、ステップS33における変形例を説明するための図である。具体的には、ステップS33において、CPU31は、オブジェクト71のうち、分割線によって分割された第2領域に対応する部分と同じオブジェクト72を3次元空間に新たに配置し、分割線を軸にオブジェクト72を回転させる(図16に示す矢印参照)。なお、オブジェクト72の各ポリゴンの頂点には、オブジェクト71の各ポリゴンの頂点と同じ関連付けで元画像上の位置が関連付けられる。これによって、第2領域の画像が反転して第1領域に表示されるアニメーションを生成して表示することができる。本実施形態においては、ポリゴンを用いた3次元の画像処理を行うので、仮想の3次元空間でポリゴンまたは仮想カメラを移動させることで、上記のようなアニメーションを容易に作成することができる。
【0112】
図10の説明に戻り、ステップS5の変更処理の次に、ステップS6の処理が実行される。ステップS6において、CPU31は、撮影操作が行われたか否かを判定する。撮影操作は、ゲーム装置10がデータを記憶させることが可能な記憶手段に元画像または変換画像を保存する旨の保存指示を行う操作である。ここでは、撮影操作は、ゲーム装置10に設けられた所定のボタンを押下する操作であるとする。すなわち、CPU31は、各ボタンに対する入力状況(押下されたか否か)を示す操作データを操作部14から取得し、取得された操作データを参照して、上記所定のボタンが押下されたか否かを判定する。所定のボタンが押下された場合、撮影操作が行われたと判断され、7の処理が実行される。一方、所定のボタンが押下されていない場合、撮影操作が行われていないと判断され、ステップS7の処理がスキップされてステップS8の処理が実行される。なお、他の実施形態においては、タッチパネル13を用いて撮影操作を行うことができるようにしてもよい。具体的には、ゲーム装置10は、下側LCD12の一部に撮影ボタンを表示し、撮影ボタンに対するタッチ操作を撮影操作としてもよい。
【0113】
ステップS7において、CPU31は、現在表示されている画像を保存する。すなわち、ステップS33で表示された画像のデータが例えば保存用データメモリ34に記憶される。これによって、ユーザは、撮像した元画像および元画像に所定の変換を行った変換画像を保存することができる。ステップS7の次にステップS8の処理が実行される。
【0114】
ステップS8において、CPU31は、画像変換処理を終了するか否かを判定する。ステップS8の判定は、例えばユーザが画像変換処理の終了を指示する操作を行ったか否か等によって行われる。ステップS8の判定結果が否定の場合、ステップS2の処理が再度実行される。したがって、本実施形態においては、分割線設定処理(ステップS4)および変更処理(ステップS5)を繰り返し実行することが可能である。したがって、元画像を変換した変換画像に対して分割線を再度設定し、変換画像をさらに変換した画像を作成することが可能である。これによって、より変化に富んだ画像を生成することができる。一方、ステップS8の判定結果が肯定の場合、CPU31は画像変換処理を終了する。
【0115】
なお、本実施形態では、カメラ23または25によって撮像された画像を繰り返し取得し、繰り返し取得される撮像画像を元画像として表示処理(S33)を行った。つまり、元画像として使用される画像は毎フレーム変化する。このように、ゲーム装置10は、リアルタイムに変化する映像(動画)に対して所定の画像変換処理を行うことが可能である。ただし、他の実施形態においては、ゲーム装置10は、ユーザによる撮影操作によって保存された撮像画像に対して所定の画像変換処理を行うようにしてもよい。すなわち、上記ステップS7で保存された画像を元画像として画像変換処理を行うようにしてもよい。
【0116】
以上のように、本実施形態によれば、ユーザの指示に従って分割線を設定することによって、画像を分割する線をユーザが自由に設定することができ、変換画像として様々な画像を得ることができる。また、ゲーム装置10は、元画像が表示される画面上においてタッチパネル13に対して入力された入力位置を繰り返し取得し(ステップS11)、連続して取得された複数の入力位置に基づいて分割線を選択(設定)した(S21)。これによれば、ユーザは、元画像に対して分割線を直接入力するような感覚で分割線を設定することができ、直感的な操作が可能で操作感の良い操作方法を提供することができる。
【0117】
また、本実施形態においては、複数個のポリゴンで構成されるオブジェクト71が、当該オブジェクト71が画面に表示された場合に複数の分割候補線とポリゴンの辺とが一致するように、仮想の3次元空間に配置された(ステップS1)。また、メインメモリ32には、複数個のポリゴンの各頂点に対して元画像上の位置をそれぞれ関連付けた関連付けデータ67が記憶されており、元画像を表示する処理(ステップS33)においては、CPU31は、関連付けデータ67における関連付けに従って元画像をテクスチャとして用いてオブジェクト71を描画することによって画面に元画像を表示した。以上のように、元画像をテクスチャとして用いる3次元画像処理を行うことによって、分割線を軸として線対称となる画像(対称画像)を得るために元画像を変更する処理(ステップS5)においては、CPU31は、関連付けデータ67における関連付けを変更することによって元画像を容易に変換することができる。なお、他の実施形態においては、元画像から対称画像を得る方法として、本実施形態のようなポリゴンを用いる方法に代えて、第1領域の画素毎に変更後の色値(例えばRGB値やYUV値)を算出する方法を用いてもよい。すなわち、対称画像を得るために、CPU31は、第1領域の画素の色値を、分割線を軸として線対称となる画素の色値と等しくなるように変更するようにしてもよい。
【0118】
さらに、複数の分割候補線を設定する場合、いずれの分割線についても、「分割候補線で画像領域を分割した場合、小さい方の領域内におけるポリゴンの各頂点の位置が、大きい方の領域内におけるポリゴンの各頂点のいずれかの位置と(分割候補線を軸として)線対称となる」という条件が満たされることが好ましい。具体的には、本実施形態においては、複数の分割候補線は、画面上に格子状に配置された複数の直線と、当該複数の直線の交点(格子点)を通り当該直線と45°に交わる複数の直線とから構成された(図7)。なお、他の実施形態においては、上記格子点を通り、画面上に格子状に配置された複数の直線と45°以外の角度で交わる直線を分割候補線として設定してもよいが、この場合、上記条件は満たされない。
【0119】
上記条件を満たすように複数の分割候補線を設定する場合には、上記対称画像を生成するために上記関連付けデータ67による関連付けを変更する際、CPU31は、ある頂点に関連付けられる元画像上の位置を、他の頂点に関連付けられる元画像上の位置へと変更すればよい。つまり、変更後の元画像上の位置は、すでにわかっている元画像上の位置をコピーするだけで得られるので、変更後の元画像上の位置を算出する処理が非常に容易になる。なお、他の実施形態においては、上記条件を満たさない分割候補線が設定されてもよい。ただし、この場合、変更後の元画像上の位置は、いずれかの頂点に関連付けられている元画像上の位置とはならないので、分割候補線が上記条件を満たす場合に比べて算出処理が複雑になる。
【0120】
[変換画像において連続性が維持されない場合に関する変形例]
なお、変換画像として上記対称画像を得る場合、分割候補線は、図7に示す分割候補線のように、変換画像の連続性が必ず維持されるように設定されることが好ましい。ただし、他の実施形態においては、変換画像の連続性が維持されないような分割線を設定してもよく、このとき、以下に示す処理を行うようにしてもよい。
【0121】
図17〜図19は、本実施形態の変形例における画像変換処理の概要を説明するための図である。図17は、変換画像の連続性が維持されないような分割線が設定された画像領域を示す図である。図17においては、元画像の画像領域が分割線83によって第1領域81と第2領域82とに分割されている。図18は、分割線83を軸として第2領域82を反転させた場合の画像領域を示す図である。分割線83を軸として第2領域82を反転させた場合、図18に示すように、反転された領域82aでは第1領域81の全体を覆うことができない。つまり、第1領域81のうちには、反転された領域82aと重ならない残余領域84が形成される。このとき、反転された第2領域82aの境界線のうちで第1領域内に含まれる境界線85において画像の連続性が失われてしまう。
【0122】
上記のような残余領域84が形成される場合、本変形例では、CPU31は、さらに画像の変更処理を行う。具体的には、CPU31は、上記境界線85を新たな分割線として画像の変更処理を行う。このとき、残余領域84が新たな第1領域となり、残余領域84以外の領域86が新たな第2領域となる。図19は、分割線85を軸として新たな第2領域86を反転させた場合の画像領域を示す図である。図19に示すように、分割線85を軸として新たな第2領域86を反転させることによって、残余領域84の画像は新たな第2領域86の画像を反転させた画像へと変更されるので、分割線85においても画像の連続性が維持される。なお、新たな第2領域を反転させた領域86aが残余領域84の全体を覆わない場合には、残余領域が形成されなくなるまで画像の変更処理を繰り返し実行する。
【0123】
図20は、本実施形態の変形例における変更処理の流れを示すフローチャートである。なお、図20においては、図14と同じステップについては図14と同じステップ番号を付すこととし、詳細な説明を省略する。
【0124】
本変形例においては、ステップS32の処理の次に、ステップS41の処理が実行される。すなわち、ステップS41において、CPU31は、ステップS32の処理後の関連付けに従って生成される変換画像に残余領域が存在するか否かを判定する。なお、この判定は、ステップS32で変更された関連付けデータ67を参照して行うことができる。ステップS41の判定結果が肯定の場合、ステップS42の処理が実行される。一方、ステップS41の判定結果が否定の場合、ステップS33の処理が実行される。
【0125】
ステップS42において、CPU31は、分割線を再設定する。すなわち、直前のステップS32の処理後の関連付けに従って生成される変換画像のうちの第2領域の画像の境界線のうちで第1領域内に含まれる境界線が、新たな分割線として設定される。ステップS42の次に、ステップS31の処理が再度実行される。つまり、再設定された分割線を用いて、関連付けデータ67の更新が再度行われる。CPU31は、残余領域が存在しなくなるまで、ステップS31,S32,S41,S42の処理を繰り返し実行する。
【0126】
以上のように、本変形例によれば、最終的に生成される変換画像は必ず連続性を有するものとなるので、分割線(分割候補線)を自由に設定することができる。本変形例は、分割候補線を用いずにユーザに自由に分割線を設定させる場合(ユーザが描いた軌跡をそのまま分割線として設定する場合等。詳細は後述する。)に、特に有効である。
【0127】
[分割線に関する変形例]
なお、上記実施形態においては、分割線(分割候補線)を直線としたが、他の実施形態においては、分割線は直線に限らず、曲線であってもよい。例えば、タッチパネル13を用いてユーザが描いた軌跡をそのまま分割線として用いてもよい。なお、分割線が直線でない場合には、変換画像を次のような方法で生成することが考えられる。
【0128】
第1の方法は、所定方向のみに関して対称となるように変換画像を生成する方法である。図21は、第1の方法を説明するための図である。図21においては、画像領域が分割線93によって第1領域91と第2領域92とに分割されている。第1の方法においては、図21に示されるように、第1領域91内の画素Paの色値は、所定方向(ここでは画像の横方向)に関して分割線93を軸として対称な(第2領域92内の)画素Pbの色値へと変更される。
【0129】
第2の方法は、分割線の法線方向に関して対称となるように変換画像を生成する方法である。図22は、第2の方法を説明するための図である。第2の方法においては、図22に示されるように、第1領域91内の画素Paの色値は、分割線93の法線のうちで画素Paを通る法線の方向に関して分割線93を軸として対称な画素Pcの色値へと変更される。
【0130】
[入力方法に関する変形例]
上記実施形態においては、分割線を設定するための入力装置としてタッチパネル13を用いたが、入力装置は、(A)表示装置の画面上の位置を指定する入力を行うことが可能なポインティングデバイス(タッチパネルを含む)や、(B)分割候補線のうちから分割線の指定・決定を行うボタンや、(C)画面上の位置と方向とを指定することが可能な入力装置等であってもよい。
【0131】
上記(A)ポインティングデバイスを用いる場合、ポインティングデバイスによって指定される(画面上の)入力位置に基づいて分割線を設定することが可能である。例えば、本実施形態と同様に、ポインティングデバイスによって画面上に入力される2つの入力位置に基づいて分割候補線から分割線を選択することが可能である。2つの入力位置を入力するための操作は、本実施形態のように軌跡(線)を描く操作であってもよいし、2点を別々に指定する(2点をタッチする)操作であってもよい。前者の操作をユーザに行わせる場合、ゲーム装置は、線の始点と終点を2つの入力位置として用いればよく、後者の操作をユーザに行わせる場合、ゲーム装置は、ユーザによって指定された2つの位置を2つの入力位置とすればよい。また、ポインティングデバイスを用いる場合、分割候補線を用いずに、入力位置に基づいて分割線を導出することも可能である。具体的には、ポインティングデバイスによって画面上に描かれた軌跡をそのまま分割線としたり、当該軌跡に近似する直線(または曲線)を分割線として算出したりすることが考えられる。また、上記2つの入力位置を通る直線を分割線として設定することも可能である。なお、ポインティングデバイスには、上記タッチパネルの他、画面上に表示されるカーソルを移動させることが可能な入力装置(マウスや方向入力ボタン14A等)が含まれる。
【0132】
また、上記(B)ボタンを用いる場合、分割候補線から分割線を選択する方法によって分割線を設定することが可能である。具体的には、指定変更ボタンを押下することによって分割候補線のうちで指定される分割候補線を変更し、選択決定ボタンを押下することによって、現在指定されている分割候補線を分割線として選択するようにしてもよい。
【0133】
また、上記(C)画面上の位置と方向とを指定することが可能な入力装置を用いる場合、ゲーム装置10は、入力装置によって指定される位置を通り、入力装置によって指定される方向に応じた傾きの直線を分割線として設定してもよいし、分割候補線のうちで、入力装置によって指定される位置および方向に近い線を分割線として設定してもよい。なお、画面上の位置と方向とを指定することが可能な入力装置としては、撮像手段を有する入力装置を用いる方法が考えられる。具体的には、撮像手段によって所定の撮像対象(例えばユーザの周辺に設定されたLED等のマーカ)を撮像し、撮像された画像中における当該撮像対象の画像の位置および傾きに基づいて、入力装置が指し示している画面上の位置(厳密に言えば、撮像手段の撮像方向と画面との交点の位置)を算出することが可能である。また、撮像された画像中における当該撮像対象の画像の傾きに基づいて、入力装置の傾き(方向)を算出することが可能である。
【産業上の利用可能性】
【0134】
以上のように、本発明は、画像を分割する線をユーザが自由に設定することができ、変換後の画像として様々な画像を得ることができること等を目的として、例えばゲーム装置として利用することが可能である。
【図面の簡単な説明】
【0135】
【図1】ゲーム装置10の外観を示す図
【図2】ゲーム装置10の内部構成を示すブロック図
【図3】画像変換処理の対象となる元画像の一例を示す図
【図4】タッチパネル13を用いて分割線を設定する操作を示す図
【図5】変換画像の一例を示す図
【図6】ゲーム装置10のメインメモリ32に記憶される主なデータを示す図
【図7】分割候補線の一例を示す図
【図8】図7に示す分割候補線に対応する各ポリゴンによって構成されるオブジェクトを示す図
【図9】関連付けデータ67により表される2次元配列の一例を示す図
【図10】ゲーム装置10における画像変換処理の流れを示すフローチャート
【図11】図10に示す分割線設定処理(ステップS4)の流れを示すフローチャート
【図12】ステップS14の処理を説明するための図
【図13】ステップS17の処理を説明するための図
【図14】図10に示す変更処理(ステップS5)の流れを示すフローチャート
【図15】変更後の関連付けデータ67の一例を示す図
【図16】ステップS33における変形例を説明するための図
【図17】変換画像の連続性が維持されないような分割線が設定された画像領域を示す図
【図18】分割線83を軸として第2領域82を反転させた場合の画像領域を示す図
【図19】分割線85を軸として新たな第2領域86を反転させた場合の画像領域を示す図
【図20】本実施形態の変形例における変更処理の流れを示すフローチャート
【図21】第1の方法を説明するための図
【図22】第2の方法を説明するための図
【符号の説明】
【0136】
10 ゲーム装置
12 下側LCD
13 タッチパネル
22 上側LCD
23 内側カメラ
25 外側カメラ
28 メモリカード
52 分割線
53 第1領域
54 第2領域
67 関連付けデータ
71 オブジェクト

【特許請求の範囲】
【請求項1】
画像を変換して表示装置に表示させる画像変換装置のコンピュータにおいて実行される画像変換プログラムであって、
変換前の元画像を前記表示装置に表示させる元画像表示ステップと、
前記表示装置に表示された画像の領域を第1領域と第2領域とに分割する分割線をユーザの指示によって設定する分割線設定ステップと、
前記第1領域の少なくとも一部の画像を前記第2領域の画像から生成される画像へと変更することによって前記元画像を変換し、変換後の画像を前記表示装置に表示させる変更ステップとを、前記コンピュータに実行させる、画像変換プログラム。
【請求項2】
前記画像変換装置は、前記表示装置の画面上の位置を指定する入力が可能なポインティングデバイスを備えており、
前記画像変換プログラムは、前記ポインティングデバイスによって入力された入力位置を取得する入力取得ステップを前記コンピュータにさらに実行させ、
前記分割線設定ステップにおいて、前記コンピュータは、前記入力取得ステップにおいて取得された入力位置に基づいて前記分割線を設定する、請求項1に記載の画像変換プログラム。
【請求項3】
前記入力取得ステップは、所定時間に1回の割合で繰り返し実行され、
前記分割線設定ステップにおいて、前記コンピュータは、複数回の前記入力取得ステップにおいて連続して取得された入力位置に基づいて前記分割線を設定する、請求項1に記載の画像変換プログラム。
【請求項4】
前記分割線設定ステップは、前記画面上に設定される複数の分割候補線のうちから前記分割線を前記複数の入力位置に基づいて選択する選択ステップを含む、請求項3に記載の画像変換プログラム。
【請求項5】
前記選択ステップにおいて、前記コンピュータは、前記複数の入力位置から前記画面上における位置および方向を算出し、算出された位置および方向に基づいて前記分割候補線から前記分割線を選択する、請求項4に記載の画像変換プログラム。
【請求項6】
前記複数の分割候補線は、前記画面上に格子状に配置された格子点を通るように設定され、
前記選択ステップにおいて、前記コンピュータは、前記複数の入力位置のうちの第1の入力位置に最も近い格子点を通る分割候補線のうちで、前記複数の入力位置のうちで前記第1の入力位置より後の第2の入力位置と前記第1の入力位置とを結ぶ直線の傾きに最も近い分割候補線を前記分割線として選択する、請求項5に記載の画像変換プログラム。
【請求項7】
前記選択ステップにおいて、前記コンピュータは、前記複数の前記入力位置のうちで最初に取得された入力位置を前記第1の入力位置とし、最後に取得された入力位置を前記第2の入力位置とする、請求項6に記載の画像変換プログラム。
【請求項8】
前記分割線設定ステップは、前記画面上に設定される複数の分割候補線のうちから前記分割線をユーザの指示に従って選択する選択ステップを含む、請求項1に記載の画像変換プログラム。
【請求項9】
複数個のポリゴンで構成されるオブジェクトを、当該オブジェクトが前記画面に表示された場合に前記複数の分割候補線と前記ポリゴンの辺とが一致するように、仮想の3次元空間に配置するオブジェクト配置ステップを前記コンピュータにさらに実行させ、
前記画像処理装置は、前記複数個のポリゴンの各頂点に対して前記元画像上の位置をそれぞれ関連付けた関連付けデータを記憶しており、
前記元画像表示ステップにおいて、前記コンピュータは、前記関連付けデータにおける関連付けに従って前記元画像をテクスチャとして用いて前記オブジェクトを描画することによって前記画面に元画像を表示し、
前記変更ステップにおいて、前記コンピュータは、前記関連付けデータにおける関連付けを変更することによって前記元画像を変換する、請求項8に記載の画像変換プログラム。
【請求項10】
前記複数の分割候補線は、直線であり、任意の分割候補線で画像領域を分割した場合において、小さい方の領域内における前記ポリゴンの各頂点の位置が、大きい方の領域内における前記ポリゴンの各頂点のいずれかの位置と、当該分割候補線を軸として線対称となるように設定され、
前記変更ステップにおいて、前記コンピュータは、変換後の画像が前記分割線を軸として線対称となるように前記関連付けを変更する、請求項9に記載の画像変換プログラム。
【請求項11】
前記複数の分割候補線は、直線であり、分割候補線によって分割される2つの領域のうちの少なくとも一方の領域を当該分割候補線を軸として反転させた場合に、当該反転させた領域が他方の領域の全体を覆うように設定され、
前記変更ステップにおいて、前記コンピュータは、変換後の画像が前記分割線を軸として線対称となるように前記第1領域の画像を変換する、請求項8に記載の画像変換プログラム。
【請求項12】
前記分割線設定ステップにおいて、前記コンピュータは、前記分割線として直線を設定し、
前記変更ステップにおいて、前記コンピュータは、変換後の画像が前記分割線を軸として対称となるように前記第1領域の画像を変更する、請求項1に記載の画像変換プログラム。
【請求項13】
前記変更ステップは、
前記分割線によって分割された2つの領域の大きさを比較する比較ステップと、
前記比較ステップにおける比較の結果、大きい方の領域を前記第2領域として前記元画像を変換する変換実行ステップとを含む、請求項12に記載の画像変換プログラム。
【請求項14】
前記画像変換プログラムは、
前記変更ステップにおいて前記分割線を軸として反転させた第2領域の画像によって前記第1領域の全体が覆われたか否かを判定する判定ステップと、
前記判定ステップにおいて、反転された第2領域の画像によって前記第1領域の一部が覆われていないと判定される場合、当該反転された第2領域の画像の境界線のうちで前記第1領域内に含まれる境界線を新たな分割線として設定する分割線再設定ステップとを前記コンピュータにさらに実行させ、
前記変更ステップにおいて、前記コンピュータは、前記分割線再設定ステップにおいて分割線が設定された場合、設定された分割線に基づいて画像の変換を再度行う、請求項1に記載の画像変換プログラム。
【請求項15】
前記画像変換プログラムは、前記分割線設定ステップおよび前記変更ステップを繰り返し前記コンピュータに実行させる、請求項1に記載の画像変換プログラム。
【請求項16】
前記画像変換装置が備える撮像手段によって撮像された画像を繰り返し取得する画像取得ステップを前記コンピュータにさらに実行させ、
前記元画像表示ステップにおいて、前記コンピュータは、前記画像変換装置が備える撮像手段によって撮像された画像を前記元画像として用い、
前記変更ステップにおいて、前記コンピュータは、前記取得ステップにおいて画像が取得される度に、取得された画像を元画像として用いて変換後の画像を前記表示装置に表示させる、請求項1に記載の画像変換プログラム。
【請求項17】
画像を保存する旨の保存指示がユーザによって行われた場合、前記表示装置に表示されている画像を記憶手段に記憶する画像記憶ステップを前記コンピュータにさらに実行させる、請求項16に記載の画像変換プログラム。
【請求項18】
画像を変換して表示装置に表示させる画像変換装置であって、
変換前の元画像を前記表示装置に表示させる元画像表示制御手段と、
前記表示装置に表示された画像の領域を第1領域と第2領域とに分割する分割線をユーザの指示によって設定する分割線設定手段と、
前記第1領域の少なくとも一部の画像を前記第2領域の画像から生成される画像へと変更することによって前記元画像を変換し、変換後の画像を前記表示装置に表示させる変更手段とを備える、画像変換装置。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2009−251858(P2009−251858A)
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願番号】特願2008−97948(P2008−97948)
【出願日】平成20年4月4日(2008.4.4)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】