画像処理プログラムおよび画像処理装置
【課題】フォーカシングされた画像をよりリアルに生成する。
【解決手段】情報処理装置のコンピュータは、基準画像の各画素の奥行き値(Z値)に応じて各画素のα値を設定する。α値は、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるように設定される。次に、コンピュータは、α値の差が所定値以上である隣接する2つの画素のうちのα値が小さい方の画素に設定されたα値を増加する。さらに、コンピュータは、基準画像と当該基準画像に対応するぼかし画像とを、増加処理後の各画素に設定されるα値に基づいて合成する。
【解決手段】情報処理装置のコンピュータは、基準画像の各画素の奥行き値(Z値)に応じて各画素のα値を設定する。α値は、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるように設定される。次に、コンピュータは、α値の差が所定値以上である隣接する2つの画素のうちのα値が小さい方の画素に設定されたα値を増加する。さらに、コンピュータは、基準画像と当該基準画像に対応するぼかし画像とを、増加処理後の各画素に設定されるα値に基づいて合成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、視点からの距離に応じてフォーカシングされた画像を生成する画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【0002】
従来、仮想世界の画像を生成する際に、視点からの距離(奥行き)に応じてフォーカシングされた画像を生成する技術がある。なお、「視点からの距離に応じてフォーカシングされた画像」とは、奥行き方向(視線方向)に関して仮想カメラの焦点に近い位置にあるオブジェクトについては輪郭が明確であり、奥行き方向に関して仮想カメラの焦点から離れた位置にあるオブジェクトについては輪郭がぼやけているような画像を言う。このような画像によって、遠近感をよりリアルに表現することができる。
【0003】
特許文献1には、上記のような、フォーカシングされた画像を生成する画像生成システムが記載されている。この画像生成システムは、元画像とぼかし画像とを生成し、元画像とぼかし画像とを、画素毎に設定されるα値に基づいて合成することによって、フォーカシングされた画像を生成する。なお、α値は、0≦α≦1の範囲をとり、元画像とぼかし画像との合成比率を表す。上記画像生成システムでは、α値は、元画像の各画素の奥行き値に応じて設定される。これによれば、元画像と元画像のぼかし画像との合成比率(α値)が各画素の奥行き値に応じて変化するので、視点からの距離に応じてフォーカシングされた画像を生成することができる。
【0004】
図23は、従来の方法によって生成された、フォーカシングされた画像の例を示す図である。図23においては、円板形状のオブジェクト91〜93が仮想空間に配置されており、仮想カメラの視点に対してオブジェクト91が最も手前に位置し、オブジェクト93が最も奥手に位置している。図23では、仮想カメラの焦点はオブジェクト92の位置であるとする。このとき、焦点の位置にあるオブジェクト92の画素については、α値が0に設定されるので、元画像が反映され、ピントの合っている画像(輪郭が明瞭な)画像となる。一方、焦点から遠い位置にあるオブジェクト91およびオブジェクト93についてはα値が1に近い値に設定されるので、ぼかし画像が大きく反映され、ピントの合っていない(輪郭がぼけた)画像となる。
【特許文献1】特開2001−175884号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記特許文献1の方法では、焦点の位置にあるオブジェクト92の画素についてはα値が0に設定される。つまり、重なって見える2つのオブジェクト91および92の境界L付近においてもオブジェクト92の画素についてはα値が“0”に設定され、元画像が反映される。そのため、図23に示されるように、境界Lにおいてはオブジェクト91の輪郭がぼけずに明確になってしまう。本来は、この境界L付近についてもオブジェクト91の輪郭がぼけている方がリアルであるにもかかわらず、境界Lの部分についてはオブジェクト91の輪郭がはっきりと表れる不自然な画像になっていた。
【0006】
このように、特許文献1の方法では、単に各画素の奥行き値に応じてα値を設定しているために、奥行き値が大きく異なる画素が隣接する場合には、ピントの合っている画素とピントの合っていない画素との境界がはっきりと表示されてしまい、フォーカシングされた画像が不自然になっていた。
【0007】
それ故、本発明の目的は、よりリアルな画像を生成することができる画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、画像を生成する画像処理装置(ゲーム装置3)のコンピュータ(CPU10および/またはGPU11b)に実行させる画像処理プログラム(ゲームプログラム60)である。画像処理プログラムは、α値設定ステップ(S4)と、増加ステップ(S5,S6)と、合成ステップ(S7)とを、コンピュータに実行させる。α値設定ステップにおいて、コンピュータは、画素毎に奥行き値を有する基準画像(図8)の各画素の奥行き値(Z値)に応じて各画素のα値(α情報)を設定する。増加ステップにおいて、コンピュータは、隣接する2つの画素のうちでα値が小さい方の画素に設定されたα値を増加する(図16または図21)。合成ステップにおいて、コンピュータは、基準画像と当該基準画像に対応するぼかし画像(図9)とを、増加ステップによる処理後の各画素に設定されるα値に基づいて合成する。
【0010】
第2の発明においては、増加ステップにおいて、α値の差が所定値以上である隣接する2つの画素についてのみ、α値が小さい方の画素に設定されたα値を増加するようにしてもよい。
【0011】
第3の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるようにα値を設定してもよい。
【0012】
第4の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が基準値よりも小さい画素については2次元ベクトルの第1成分(n成分)にα値を設定するとともに、奥行き値が基準値よりも大きい画素については2次元ベクトルの第2成分(f成分)にα値を設定することによって画素毎に2次元ベクトルを設定してもよい(図14)。このとき、増加ステップは、平滑化ステップ(S5)と、加算ステップ(S6)とを含む。平滑化ステップにおいて、コンピュータは、各画素に設定される2次元ベクトルの第1成分の値を平滑化する。加算ステップにおいて、コンピュータは、2次元ベクトルの第1成分と第2成分とを加算した値をα値とする処理を各画素について行う。合成ステップにおいて、コンピュータは、基準画像とぼかし画像とを、加算ステップによる処理後の各画素に設定されるα値に基づいて合成する。
【0013】
第5の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が基準値よりも小さい画素については2次元ベクトルの第2成分の値を0に設定するとともに、奥行き値が基準値よりも大きい画素については2次元ベクトルの第1成分の値を0に設定してもよい。
【0014】
第6の発明においては、増加ステップにおいて、コンピュータは、所定値以下の奥行き値を有する画素のみを処理対象としてもよい。
【0015】
第7の発明においては、増加ステップにおいて、コンピュータは、各画素のα値を平滑化してもよい。
【0016】
第8の発明は、増加ステップにおいて、コンピュータは、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出し、選出された画素のα値を増加させてもよい。
【0017】
第9の発明においては、増加ステップにおいて、コンピュータは、隣接する画素よりもα値が小さく、かつ、α値が前記所定値以下である画素を選出し、選出された画素のα値を増加させてもよい。
【0018】
第10の発明においては、画像処理プログラムは、基準画像の各画素の色値を平滑化することによってぼかし画像を生成するぼかし画像生成ステップ(S3)をコンピュータにさらに実行させてもよい。
【0019】
第11の発明は、画像を生成する画像処理装置(ゲーム装置3)のコンピュータ(CPU10および/またはGPU11b)に実行させる画像処理プログラム(ゲームプログラム60)である。画像処理プログラムは、奥行き値補正ステップ(S11)、α値設定ステップ(S12)と、合成ステップ(S7)とを、コンピュータに実行させる。奥行き値補正ステップにおいて、コンピュータは、画素毎に奥行き値を有する基準画像(図8)内で隣接する2つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する。α値設定ステップにおいて、コンピュータは、奥行き値補正ステップにおける処理後の各画素の奥行き値に応じて各画素のα値を設定する。合成ステップにおいて、コンピュータは、基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する。
【0020】
第12の発明においては、奥行き値補正ステップにおいて、コンピュータは、奥行き値の差が所定値以上である隣接する2つの画素についてのみ、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正するようにてもよい。
【0021】
第13の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるようにα値を設定してもよい。
【0022】
第14の発明においては、奥行き値補正ステップにおいて、コンピュータは、基準値以下の奥行き値を有する画素のみを補正対象としてもよい。
【0023】
また、本発明は、上記第1〜第14の発明における各ステップを実行する情報処理装置と同等の機能を有する情報処理装置の形態で提供されてもよい。
【発明の効果】
【0024】
第1の発明によれば、α値の差が所定値以上である隣接する2つの画素のうちで、α値が小さい方の画素については、奥行き値に応じて設定されたα値が増加される。これによれば、当該2つの画素の境界部分の輪郭をぼかして画像を生成することができる。したがって、オブジェクトの輪郭の一部のみがはっきりしているような不自然な画像が生成されることを防止することができ、よりリアルな画像を生成することができる。
【0025】
第2の発明によれば、α値の差が所定値以上である場合にのみα値の補正(増加)を行うことにより、補正の必要な画素について確実に補正を行うことができる。
【0026】
第3の発明によれば、奥行き値が基準値に近い画素に対応するオブジェクトについては輪郭が明確に表れ、奥行き値が基準値から離れている画素に対応するオブジェクトについては輪郭がぼかして表されるので、リアルにフォーカシングされた画像を生成することができる。
【0027】
第4の発明によれば、奥行き値が基準値よりも小さい画素については少なくとも、α値の補正(増加)処理の対象となる。したがって、従来の技術で問題であった、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界がはっきりと表れてしまう問題を解消することができる。
【0028】
第5の発明によれば、奥行き値が基準値よりも小さい画素のみが、α値の補正(増加)処理の対象となり、奥行き値が基準値よりも大きい画素は当該処理の対象とならない。したがって、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像(図10参照)を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【0029】
第6の発明によれば、奥行き値が所定値よりも小さい画素のみが、α値の補正(増加)処理の対象となり、奥行き値が所定値よりも大きい画素は当該処理の対象とならない。したがって、例えば所定値を上記基準値とすることにより、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像(図10参照)を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【0030】
第7の発明によれば、各画素のα値を平滑化することによって、α値を増加すべき画素(すなわち、α値の差が所定値以上である隣接する2つの画素のうちのα値が小さい方の画素)のα値を容易に増加させることができる。
【0031】
第8の発明によれば、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出することによって、α値を増加すべき画素を確実に特定することができる。それ故、リアルにフォーカシングされた画像を確実に生成することができる。
【0032】
第9の発明によれば、隣接する画素よりもα値が小さく、かつ、α値が所定値以下である画素を選出することによって、α値を増加すべき画素を確実に特定することができる。それ故、リアルにフォーカシングされた画像を確実に生成することができる。
【0033】
第10の発明によれば、基準画像からぼかし画像を容易に作成することができる。
【0034】
第11の発明によれば、奥行き値の差が所定値以上である隣接する2つの画素のうちで、奥行き値が所定の基準値に近い方の画素については、奥行き値が当該2つの画素の他方の画素の奥行き値に近づける方向に補正される。そして、補正後の奥行き値に応じて各画素のα値が設定されるので、α値を補正する上記第1の発明と同様の効果を得ることができる。つまり、当該2つの画素の境界部分の輪郭をぼかして画像を生成することができ、よりリアルな画像を生成することができる。
【0035】
第12の発明によれば、奥行き値の差が所定値以上である場合にのみ奥行き値の補正を行うことにより、補正の必要な画素について確実に補正を行うことができる。
【0036】
第13の発明によれば、奥行き値が基準値に近い画素に対応するオブジェクトについては輪郭が明確に表れ、奥行き値が基準値から離れている画素に対応するオブジェクトについては輪郭がぼかして表されるので、リアルにフォーカシングされた画像を生成することができる。
【0037】
第14の発明によれば、奥行き値が基準値以下の画素のみが、奥行き値の補正処理の対象となり、奥行き値が基準値よりも大きい画素は当該処理の対象とならない。したがって、例えば所定値を上記基準値とすることにより、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像(図10参照)を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【発明を実施するための最良の形態】
【0038】
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係る画像処理装置の一例として、ゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、コントローラ5、およびマーカ部6を含む。本システムは、コントローラ5を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0039】
本発明に係る画像処理装置の一例であるゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0040】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0041】
コントローラ5は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0042】
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0043】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0044】
また、システムLSI11には、入出力プロセッサ11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0045】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0046】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0047】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0048】
入出力プロセッサ(I/Oプロセッサ)11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0049】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0050】
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0051】
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0052】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0053】
(コントローラ5の構成)
次に、図3〜図6を参照して、コントローラ5について説明する。図3および図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0054】
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5を用いることによって、それに設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【0055】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字キー32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源32hを誤って押下することを防止することができる。
【0056】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、他のコントローラ)を接続するために利用される。
【0057】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0058】
また、コントローラ5は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0059】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5A)からの音を外部に放出するための音抜き孔31aが形成されている。
【0060】
次に、図5Aおよび図5Bを参照して、コントローラ5の内部構造について説明する。図5Aおよび図5Bは、コントローラ5の内部構造を示す図である。なお、図5Aは、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す斜視図は、図5Aに示す基板30を裏面から見た斜視図となっている。
【0061】
図5Aにおいて、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図5B参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0062】
一方、図5Bにおいて、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0063】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5Aおよび図5Bに示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0064】
なお、図3〜図5A、図5Bに示したコントローラ5の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0065】
図6は、コントローラ5の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
【0066】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示すデータを通信部36のマイコン42へ出力する。
【0067】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0068】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0069】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0070】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるXYZ座標系における3次元のベクトルとして表される。
【0071】
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(姿勢)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。つまり、ゲーム装置3は、加速度データと、上記マーカ座標データとに基づいてコントローラ5の姿勢および動きを算出する。
【0072】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
【0073】
操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
【0074】
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作を行うことができる。図7は、コントローラ5を用いてゲーム操作を行うときの様子を示す図解図である。本実施形態では、プレイヤは、図7に示すように、コントローラ5によってテレビ2の画面上の位置Pを指し示すゲーム操作、および、コントローラ5を動かすゲーム操作を行うことができる。
【0075】
なお、本実施形態では、上記コントローラ5を入力装置として用いるゲーム装置を例として説明するが、本発明に係る情報処理装置は、上記ゲーム装置に限らず、仮想世界の画像を生成し、接続される表示装置に画像を表示することが可能な装置であればどのようなものであってもよい。また、入力装置はキーボードやマウス等、どのようなものであってもよく、情報処理装置は入力装置を備えていない構成であってもよい。
【0076】
(画像生成処理の概要)
以下、図8〜図10を参照して、本実施形態における画像生成処理の概要を説明する。本実施形態では、ゲーム装置3は、3次元の仮想空間のフォーカシングされた画像を生成する。本実施形態では、フォーカシングされた画像を生成する方法として、輪郭が明確な画像(基準画像。元画像とも言う。)と、基準画像の輪郭がぼかされた画像(ぼかし画像)とを用意し、基準画像とぼかし画像とを合成する方法を用いる。
【0077】
図8は、基準画像の一例を示す図であり、図9は、ぼかし画像の一例を示す図である。以下では、図8および図9に示す3つの円板形状のオブジェクト51〜53が配置された3次元の仮想空間の、フォーカシングされた画像を生成する場合を例として説明する。なお、3つのオブジェクト51〜53のうち、第1オブジェクト51が最も手前(仮想カメラの視点に最も近い位置)に配置され、第3オブジェクト53が最も奥(視点から最も遠い位置)に配置され、第2オブジェクト52は第1オブジェクト51と第3オブジェクト53との間に配置されている。また、以下では、仮想カメラの焦点(ピント)が第2オブジェクト52に合っている画像を生成する場合を例として説明する。
【0078】
基準画像は、3次元仮想空間に対して仮想カメラの位置を基準として透視変換を行うことによって得られる。図8に示すように、基準画像においては、各オブジェクト51〜53の輪郭は明確に表れている。一方、図9に示すように、ぼかし画像は、基準画像の輪郭がぼけた画像である。なお、図9では、各オブジェクト51〜53の輪郭を複数の点線によって表すことによって輪郭がぼけている様を表現している。ぼかし画像は、典型的には、基準画像に対して周知のぼかし処理を行うことによって生成される。ぼかし処理は、例えば、隣接する画素との平均を算出したり、または、ガウスフィルタを用いたりすることによって基準画像の各画素の色値(RGB値)を平滑化する処理である。また、ぼかし処理は、基準画像の各オブジェクトを拡大した後で縮小する(輪郭を粗くする)処理でもよい。更に、ぼかし処理は、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことによりぼかし画像を生成してもよい。
【0079】
ゲーム装置3は、基準画像およびぼかし画像を生成するとともに、基準画像の各画素についてα値をそれぞれ設定する。α値は、基準画像とぼかし画像とを合成する際におけるぼかし画像の合成比率(ブレンド率とも言う)を表す。具体的には、α値は、0≦α≦1の範囲であり、α=0の場合には合成後の画像はぼかし画像の割合が0%(基準画像の割合が100%)となり、α=1の場合には合成後の画像はぼかし画像の割合が100%となる(後述する式(7)参照)。
【0080】
本実施形態では、α値は、各画素のオブジェクトの奥行き値(すなわち、Z値)に応じて仮設定される。具体的には、仮想カメラの視点から焦点までの距離(ここでは、焦点距離と呼ぶ。)に等しいZ値が設定される画素についてはα=0に設定され、Z値と焦点距離との差が大きい画素ほどα値が大きくなるように設定される。このように設定されたα値を用いて合成を行うことにより、奥行きが焦点距離に近いオブジェクトの輪郭は明確になるとともに、奥行きが焦点距離から離れたオブジェクトの輪郭はぼけた画像を生成することができる。つまり、奥行きが焦点距離に近いオブジェクトにピントが合っているとともに、奥行きが焦点距離から離れているオブジェクトについてはピントが合っていない画像を生成することができる。
【0081】
ただし、各画素のZ値に応じて設定されたα値をそのまま用いて合成を行うと、図23に示したように、ピントが合っているオブジェクトと、ピントが合っていないオブジェクトとの境界がはっきりと表れてしまう。つまり、ピントが合っていないオブジェクトについては上記境界部分のみ輪郭が明確に表れてしまい、リアルな画像を生成することができない。そこで、本実施形態では、各画素のZ値に応じて仮設定されたα値に対して、後述する補正処理(図12に示すステップS5)を行う。この補正処理によって、上記境界付近においてα値が小さく設定されている画素のα値を増加する。本実施形態では、このように補正されたα値を用いて、基準画像とぼかし画像とを合成する(αブレンドを行う)ことによって、フォーカシングされた画像を生成される。これによって、ピントが合っていないオブジェクトについては上記境界付近においても輪郭がぼやけた画像を生成することができる。
【0082】
図10は、本実施形態の画像生成処理によって生成される画像の一例を示す図である。図10に示す画像においては、第1オブジェクト51と第2オブジェクト52との境界L1の付近において、第1オブジェクト51の輪郭がぼやけている。第1オブジェクト51の輪郭は全部分についてぼやけているので、本実施形態によれば、一部の輪郭のみが明確になっている画像(図23)における不自然さが解消されていることがわかる。なお、詳細は後述するが、本実施形態では、ピントが合っている第2オブジェクト52とその奥に配置される第3オブジェクト53との境界L2においては、第3オブジェクト53のぼけた輪郭が第2オブジェクト52の画像に重畳されないように上記補正処理が行われる。つまり、ピントが合っている第2オブジェクト52の手前に配置される第1オブジェクト51のぼけた輪郭は、第2オブジェクト52の画像に重畳されるのに対して、ピントが合っている第2オブジェクト52の奥に配置される第3オブジェクト53のぼけた輪郭は、第2オブジェクト52の画像に重畳されない。これによって、フォーカシングされた画像をよりリアルに生成することができる。
【0083】
(画像生成処理の詳細)
以下、図11〜図18を参照して、本実施形態における画像生成処理の詳細について説明する。図11は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図11に示すように、メインメモリには、ゲームプログラム60、画像処理用データ61等が記憶される。なお、メインメモリには、図11に示すデータの他、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
【0084】
ゲームプログラム60は、本実施形態に係る画像処理プログラムの一例であり、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。ゲームプログラム60には、図12に示す画像生成処理をCPU10に実行させるプログラムの他、所定のゲーム処理をCPU10に実行させるプログラムが含まれている。
【0085】
画像処理用データ61は、後述する画像生成処理(図12)において用いられるデータである。画像処理用データ61は、基準画像データ62、ぼかし画像データ63、α情報データ64、補正α情報データ65、およびα値データ66を含む。
【0086】
基準画像データ62は、上記基準画像を表すデータである。具体的には、基準画像データ62は、基準画像の各画素の色値およびZ値を示す。また、ぼかし画像データ63は、上記ぼかし画像のデータである。具体的には、ぼかし画像データ63は、ぼかし画像の各画素の色値を示す。なお、基準画像データ62およびぼかし画像データ63は、VRAM11dに設けられるフレームバッファに記憶されてもよい。
【0087】
α情報データ64は、基準画像の各画素にそれぞれ設定されるα情報を示すデータである。α情報とは、最終的なα値を算出するために仮設定されるα値を示し、本実施形態では、2次元のベクトルで表現される。具体的には、この2次元ベクトルはn成分とf成分とを有し、(n,f)と表される。詳細は後述するが、本実施形態では、画素のZ値が上記焦点距離よりも小さいか大きいかによって、n成分およびf成分のいずれか一方の成分にα値が設定され、他方の成分には“0”が設定される。また、補正α情報データ65は、上記α情報データ64により示されるα情報を補正処理によって補正した後のα情報を示す。補正処理の詳細は後述する。
【0088】
α値データ66は、各画素にそれぞれ設定されるα値を示す。このα値は、上記補正α情報データ65により示されるα情報に基づいて算出される。
【0089】
次に、ゲーム装置3において行われる画像生成処理の詳細を、図12〜図18を用いて説明する。図12は、ゲーム装置3において実行される処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入され、ゲームプログラムが記憶された光ディスク4がゲーム装置3に挿入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図12に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、図12に示す処理は、CPU10およびGPU11bの協調動作として行われる。
【0090】
図12に示すステップS1において、まずCPU10は、3次元の仮想空間における各種設定を行う。具体的には、仮想空間内にオブジェクト(各オブジェクト51〜53)を配置するとともに、仮想カメラの位置および向きを設定する。CPU10がゲーム処理を実行する場合であれば、プレイヤによるコントローラ5を用いたゲーム操作に応じてオブジェクトの位置を決定したり、仮想カメラの位置および向きを決定したりする。
【0091】
続くステップS2において、CPU10は、ステップS1で設定された内容に応じて基準画像を生成する。基準画像は、仮想カメラの位置から仮想カメラの向きに仮想空間を見たときの画像が生成されるように透視変換を行うことによって生成される。つまり、当該画像の各画素の色値およびZ値が算出される。ステップS2の処理によって生成された基準画像を示すデータ(すなわち、画素毎の色値およびZ値を示すデータ)は、基準画像データ62としてメインメモリに記憶される。
【0092】
続くステップS3において、CPU10は、基準画像からぼかし画像を生成する。本実施形態において、ぼかし画像は、メインメモリに記憶されている基準画像データ62により示される基準画像の各画素の色値を平滑化することによって生成される。以下、図13を参照してぼかし画像の生成方法の詳細を説明する。
【0093】
図13は、基準画像の各画素の一部を示す図である。なお、以下では、図13に示す画素X(XはA〜Mのいずれか)の基準画像における色値を“PX”、ぼかし画像における色値を“PX’”と示す。例えば画素Aにおけるぼかし画像の色値“PA’”は、当該画素Aの基準画像の色値“PA”と、当該画素Aに隣接する4つの画素B〜画素Eの色値“PB”〜“PE”との平均値として算出される。具体的には、CPU10は、次の式(1)に従って上記色値“PA’”を算出する。
PA’=(PA+PB+PC+PD+PE)/5 …(1)
CPU10は、上式(1)に従ってぼかし画像の色値を算出する処理を基準画像の各画素について行うことによって、ぼかし画像の各画素の色値を得る。これによって得られたぼかし画像を示すデータ(すなわち、画素毎の色値を示すデータ)は、ぼかし画像データ63としてメインメモリに記憶される。
【0094】
なお、他の実施形態においては、上式(1)に代えて、次の式(2)、(3)または(4)を用いてぼかし画像の各画素の色値を算出するようにしてもよい。
PA’=(PA+PF+PG+PH+PI)/5 …(2)
PA’=(PA+PB+PC+PD+PE+PF+PG+PH+PI)/9 …(3)
PA’=(PA+PB+PC+PD+PE+PJ+PK+PL+PM)/9 …(4)
上式(2)は、処理対象の画素Aのぼかし画像の色値を、当該画素Aの基準画像の色値“PA”と、画素Aから上下左右に2画素分離れた画素F〜画素Iの基準画像の色値“PF”〜“PI”との平均値とすることを表す。式(2)を用いることにより、式(1)に比べて、よりぼかし具合を強める事ができる。また、上式(3)は、処理対象の画素Aのぼかし画像の色値を、当該画素Aの基準画像の色値“PA”と、当該画素Aから上下左右に2画素分以内に存在する画素B〜画素Iの基準画像の色値“PB”〜“PI”との平均値とすることを表す。式(3)を用いることにより、式(1)に比べて、よりぼかし具合を強める事ができる。また、上式(4)は、処理対象の画素Aのぼかし画像の色値を、当該画素Aの基準画像の色値“PA”と、当該画素Aから上下左右斜めに1画素分以内に存在する画素B〜画素E、画素J〜画素Mの基準画像の色値“PB”〜“PE”、“PJ”〜“PM”との平均値とすることを表す。式(4)を用いることにより、式(1)に比べて、より綺麗なぼかし画像を得る事ができる。
【0095】
また、上述したように、ぼかし画像を生成する方法はどのような方法であってもよく、CPU10は、ガウスフィルタを用いて基準画像の色値を平滑化することによってぼかし画像を生成してもよいし、基準画像を一端拡大した後で縮小することによって輪郭を粗くする方法でぼかし画像を生成してもよいし、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことによりぼかし画像を生成してもよい。
【0096】
図12の説明に戻り、ステップS3の次のステップS4において、CPU10は、基準画像の各画素に対してそれぞれα情報を設定する。各画素のα情報は、その画素に対応するオブジェクトの奥行き、すなわち、その画素に設定されるZ値に応じて決められる。以下、図14を参照して、α情報の設定方法の詳細について説明する。
【0097】
図14は、画素のZ値と当該画素に設定されるα情報との関係を示す図である。図14に示す横軸はZ値を示し、縦軸はα値を示している。ステップS4において、CPU10はまず、Z値に応じたα値を算出する。図14に示されるように、α値は、Z値が上記焦点距離Z1である場合にα=0となり、α=1を上限として、Z値と焦点距離Z1との差分が大きくなるほど値が大きくなるように算出される。なお、図14は、上記差分とα値とが比例関係にある場合を示しているが、上記差分が大きくなるにつれてα値が大きくなる関係であればよい。また、焦点距離Z1は、予め定められた値であってもよいし、ユーザによって指定された値でもよいし、所定のアルゴリズムに従って自動的に算出された値でもよい。
【0098】
α値を算出すると、CPU10は、Z値と焦点距離Z1との大小関係に基づいて、算出されたα値をn成分とするかf成分とするかを決定する。具体的には、Z値が焦点距離Z1よりも小さい場合、算出されたα値はn成分とされる。つまり、n成分の値がα値となり、f成分の値が“0”となる2次元ベクトルが算出される。一方、Z値が焦点距離Z1よりも大きい場合、算出されたα値はf成分とされる。つまり、n成分の値が“0”となり、f成分の値がα値となる2次元ベクトルが算出される。つまり、本実施形態では、視点からの距離が焦点距離よりも近い位置にあるオブジェクトに対応する画素については、(α,0)(αはα値の値を示す)となる2次元ベクトルが設定され、視点からの距離が焦点距離よりも遠い位置にあるオブジェクトに対応する画素については、(0,α)となる2次元ベクトルが設定される。本実施形態では、以上のように算出された2次元ベクトルがα情報となる。各画素のα情報を示すデータは、α情報データ64としてメインメモリに記憶される。
【0099】
図12の説明に戻り、ステップS4の次のステップS5において、CPU10は、各画素に設定されたα情報のn成分をそれぞれ補正する。本実施形態においては、この補正処理は、各画素のn成分の値(以下、n成分値と示す)を平滑化することによって行われる。以下、図13を参照して補正処理の詳細を説明する。なお、以下では、図13に示す画素X(XはA〜Mのいずれか)の補正前のn成分値を“αX” 、補正後のn成分値を“αX’”と示す。例えば画素Aにおける補正後のn成分値“αA’”は、当該画素Aの補正前のn成分値“αA”と、当該画素Aに隣接する4つの画素B〜画素Eの補正前のn成分値“αB”〜“αE”との平均値を所定数(G)倍した値として算出することができる。具体的には、補正後のn成分値αA’は、次の式(5)に従って算出することができる。
αA’=(αA+αB+αC+αD+αE)/5×G …(5)
上式(5)において、Gは定数であり、好ましくは1以上の値に設定される。CPU10は、基準画像の各画素に設定された各α情報について上式(5)を用いて補正処理を行う。補正後の各α情報を示すデータは、補正α情報データ65としてメインメモリに記憶される。
【0100】
なお、他の実施形態においては、ステップS5におけるn成分値の平滑化は、上式(5)に代えて、次の式(6)、(7)または(8)を用いて行われてもよい。
αA’=(αA+αF+αG+αH+αI)/5×G …(6)
αA’=(αA+αB+αC+αD+αE+αF+αG+αH+αI)/9×G …(7)
αA’=(αA+αB+αC+αD+αE+αJ+αK+αL+αM)/9×G …(8)
上式(6)を用いる場合、処理対象の画素Aの補正後のn成分値“αA’は、当該画素Aの補正前のn成分値“αA”と、画素Aから上下左右に2画素分離れた画素F〜画素Iのn成分値“αF”〜“αI”との平均値を所定数(G)倍した値となる。また、上式(7)を用いる場合、画素Aの補正後のn成分値“αA’”は、当該画素Aの補正前のn成分値“αA”と、当該画素Aを中心として上下左右へ2画素分の範囲内に存在する画素B〜画素Iの基準画像のn成分値“αB”〜“αI”の平均値を所定数(G)倍した値となる。また、上式(8)を用いる場合、画素Aの補正後のn成分値“αA’”は、当該画素Aの補正前のn成分値“αA”と、当該画素Aを中心として上下左右斜めへ1画素分の範囲内に存在する画素B〜画素E、画素J〜画素Mの基準画像のn成分値“αB”〜“αE”、“αJ”〜“αM”の平均値を所定数(G)倍した値となる。また、n成分値の平滑化は、ガウスフィルタを用いて行われてもよいし、バイリニアフィルタリングやトライリニアフィルタリングを用いて行われてもよい。
【0101】
以下、図15〜図18を参照して、上記ステップS5の補正処理によるα情報の変化について説明する。図15は、補正処理が行われる前における、一列に並んだ各画素に設定されるn成分値を示す図である。図16は、補正処理を行った後における、各画素に設定されるn成分値を示す図である。なお、図15および図16における横軸は、1列に並ぶ画素P1〜P7を示し、縦軸は、当該各画素P1〜P7におけるn成分値を示している。画素P1〜P3は、図8に示す第1オブジェクト51に対応し、画素P4〜P7は、図8に示す第2オブジェクト52に対応する。したがって、画素P3と画素P4との間が、第1オブジェクト51と第2オブジェクト52との境界L1である。なお、ここでは、上記ステップS4の処理によって、画素P1〜P3についてはn成分値が“1”に設定され、画素P4〜P7についてはn成分値が“0”に設定されたものとする。
【0102】
図15に示す各画素P1〜P7に対してステップS5における補正処理が行われると、各画素P1〜P7におけるn成分値は図16に示すようになる。なお、図16は、上式(4)を用いて補正(平滑化)処理を行った後のn成分値を示している。図16に示されるように、補正前においてn成分値が“1”であった画素P3に隣接する画素P4は、補正前において“0”であったn成分値が、平滑化を行ったことによって増加して正の値になる。このように、補正処理によって、隣接する画素よりもn成分値(α値)が小さい画素については、n成分値が増加される。
【0103】
なお、補正処理によってn成分値が増加される画素の範囲は、補正処理の内容によって異なる。図16は、上式(5)を用いて補正処理を行った場合の例であるので、α値(n成分値)に差がある隣接する2つの画素(画素P3および画素P4)のうちの小さい方の画素(画素P4)のみが、α値が増加する対象となった。例えば、上式(6)または(7)を用いて補正処理を行う場合には、α値に差がある隣接する2つの画素(画素P3および画素P4)の間を境界とすると、当該境界から画素2つ分以内の距離にある画素(画素P4および画素P5)が、α値が増加する対象となる。
【0104】
図17は、図8に示す基準画像の各画素に設定された補正前のα情報の分布を示す図である。また、図18は、図8に示す基準画像の各画素に設定された補正後のα情報の分布を示す図である。図17および図18に示す領域71は、n成分値が正の値となる画素の領域である。また、図17に示す領域72は、n成分値およびf成分値がともに“0”となる領域である。なお、領域71および72以外の領域は、f成分値が正の値となり、n成分値が“0”となる領域である。図8に示す基準画像においては、上述したように、焦点距離よりも近い位置に存在するオブジェクトは第1オブジェクト51のみである。そのため、ステップS4においては、第1オブジェクト51に対応する画素についてn成分値が正の値(0でない値)となる2次元ベクトルが設定される。したがって図17に示すように、補正処理前においては、n成分値が正の値となる領域71は、第1オブジェクト51に対応する画素領域のみである。なお、n成分値およびf成分値がともに“0”となる領域72は、焦点距離の位置にある第2オブジェクト52に対応する。
【0105】
ここで、上記ステップS5の補正処理によれば、図15に示したように、n成分値が正である画素に隣接する画素に設定されるn成分値が正の値となる。その結果、補正処理後においては、n成分値が正の値となる領域71は、図18に示されるように、補正前に比べて拡張される。また、領域71が拡張されることに伴い、n成分値およびf成分値がともに“0”となる領域72は、縮小される。換言すれば、第1オブジェクト51と第2オブジェクト52との境界L1付近の画素(少なくとも、境界L1に隣接する画素)は、領域72から外れ領域71に含まれることになる。このように、補正処理後においては、第2オブジェクト52に対応する画素領域のうち、境界L1付近の一部については、n成分値が正の値となる。なお、上式(5)〜(8)に示した定数Gを1よりも小さい値とすると、第1オブジェクト51に対応する画素のうちの境界L1付近の画素のα値が平滑化によって小さくなることがある。このとき、表示画像におけるぼかし画像の割合が低くなり、その結果、第1オブジェクトが基準画像に比べて縮小して見えるおそれがある。そのため、定数Gは1以上に設定されることが好ましく、例えばG=3〜4に設定される。
【0106】
図12の説明に戻り、ステップS5の次のステップS6において、CPU10は、各画素に設定されたα情報に基づいて各画素のα値を算出する。具体的には、各画素のα値は、その画素に設定されたα情報(2次元ベクトル)のn成分値とf成分値とに基づいて算出される。より具体的には、CPU10は、メインメモリに記憶されている補正α情報データ65を参照し、補正α情報データ65により示されるn成分値およびf成分値を加算し、加算結果をα値とする。なお、本実施形態では、2次元ベクトルの少なくとも一方の成分の値は“0”であるので、n成分値とf成分値とを加算した結果をα値とすることは、n成分値およびf成分値のうちで大きい方の値をα値とすることと同じ意味である。ステップS6で算出された各画素のα値を示すデータは、α値データ66としてメインメモリに記憶される。
【0107】
上記ステップS6の処理によって、各画素に対して最終的なα値が設定される。その結果、図18に示す領域72内の画素についてはα値は“0”となる。一方、領域72外の画素については、α値は“0”でない値となる。つまり、第1オブジェクト51と第2オブジェクト52との境界L1付近の画素については、“0”でないα値が設定される。
【0108】
ステップS7において、CPU10は、基準画像とぼかし画像とをα値に基づいて合成する。具体的には、CPU10は、基準画像データ62、ぼかし画像データ63およびα値データ66を参照して、次の式(9)に従って表示画像の各画素の色値Cを算出する。
C=C1×(1−α)+C2×α …(9)
上式(9)において、変数C1は基準画像の色値を示し、変数C2はぼかし画像の色値を示す。表示画像の各画素について上式(9)を用いて色値を算出する処理を行うことによって、表示画像のデータが得られる。
【0109】
ここで、図18に示した領域72については、α値は“0”であるので、表示画像においては基準画像がそのまま反映される。一方、領域72以外の領域については、α値が“0”でないので、表示画像はぼかし画像が反映された画像になる。したがって、第1オブジェクト51と第2オブジェクト52との境界L1付近では、ぼかし画像が反映されて表示画像が生成されるので、表示画像では境界L1がぼけて表現されることになる。すなわち、本実施形態によれば、図10に示すような、境界L1がぼけた表示画像を得ることができる。
【0110】
続くステップS8において、CPU10は、ステップS7において合成された表示画像を描画する。すなわち、ステップS7の処理で得られた表示画像のデータを、VRAM11dに設けられるフレームバッファに書き込む。これによって、表示画像がテレビ2に表示される。
【0111】
続くステップS9において、CPU10は、画像生成処理を終了するか否かを判定する。この判定処理は、例えば、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS9の判定結果が否定である場合、ステップS1の処理が再度実行される。以降、ステップS9で画像生成処理を終了すると判定されるまで、ステップS1〜S9の処理が繰り返し実行される。一方、ステップS9の判定結果が肯定である場合、CPU10は、図12に示す画像生成処理を終了する。以上で、画像生成処理の説明を終了する。
【0112】
以上のように、本実施形態によれば、基準画像の各画素のZ値に応じて各画素のα値を仮設定した後、仮設定された各α値を補正(平滑化)する。これによって、ピントが合っているオブジェクト(第2オブジェクト52)と、ピントが合っていないオブジェクト(第1オブジェクト51)との境界部分において、第1オブジェクト51の輪郭が明確に表れることを防止することができる(図10)。したがって、ゲーム装置3は、よりリアルにフォーカシングされた画像を生成することができる。
【0113】
また、本実施形態では、仮設定されるα値(α情報)を2次元ベクトルを用いて表現することによって、Z値が焦点距離よりも小さい画素のみを処理対象として、α値の補正処理(ステップS5)を行うようにした。つまり、Z値が焦点距離よりも大きい画素についてはα値の補正処理が行われないので、図10に示すように、第2オブジェクト52と第3オブジェクト53との境界L2付近については、第2オブジェクト52の輪郭が明確に表れる。したがって、焦点距離に位置する第2オブジェクト52よりも手前に位置する第1オブジェクト51については、ぼけた輪郭が第2オブジェクト52側に重畳するように表現されるとともに、第2オブジェクトよりも奥に位置する第3オブジェクト53については、ぼけた輪郭が第2オブジェクト52側に重畳しないように表現される。すなわち、基準となるオブジェクトよりも手前側に位置するオブジェクトと、奥側に位置するオブジェクトとのそれぞれについて、ぼけた輪郭を自然に表現することができ、よりリアルが画像を生成することができる。
【0114】
(α情報の変形例(1))
なお、他の実施形態においては、α情報を2次元ベクトルとせずに、1つの値(スカラー値)として取り扱うようにしてもよい。すなわち、ステップS4においては、Z値に応じて算出されるα値の値をそのままα情報としてもよい。このとき、ステップS5の補正処理は全ての画素を処理対象として行われる。これによれば、α情報のデータ量を削減することができるとともに、2次元ベクトルからα値を算出する処理(ステップS6)が不要となるので、画像生成処理を簡易化することができる。なお、図19は、全ての画素を処理対象として補正処理を行った場合に生成される表示画像を示す図である。この場合、図19に示すように、第2オブジェクト52と第3オブジェクト53との境界L2についても第3オブジェクト53の輪郭がぼかして表現される。したがって、この境界L2を明確に表現することを目的とする場合には、上記実施形態に示したように、Z値が焦点距離よりも小さい画素のみを処理対象として補正処理を行うようにする必要がある。
【0115】
(α情報の変形例(2))
また、他の実施形態においては、正負の符号を付したα値をα情報として用いてもよい。図20は、本実施形態の変形例において用いられる、画素のZ値と当該画素に設定されるα情報との関係を示す図である。図20に示す横軸はZ値を示し、縦軸はα値を示している。図20に示すように、α値は、Z値が上記焦点距離Z1である場合にα=0となり、−1≦α≦1の範囲で、焦点距離Z1からZ値を引いた差分が大きくなるほど値が大きくなるように算出される。これによれば、Z値が焦点距離Z1よりも小さい画素についてはα値が負の数となり、Z値が焦点距離Z1よりも大きい画素についてはα値が正の数となるので、Z値が焦点距離Z1よりも小さい場合と大きい場合とを区別することができる。なお、正負の符号を付したα値をα情報として用いる場合、CPU10は、α値が負である画素のみを処理対象として上記ステップS5の補正処理を行う。そして、上記ステップS6においては、α値の絶対値を算出して最終的なα値とする。これによれば、ゲーム装置3は、上記実施形態と同様の表示画像(図10)を得ることができる。なお、本変形例の場合、ステップS5においてはα値が負の値となる画素を抽出する処理が必要となるので、2次元ベクトルを用いる方がステップS5の処理を簡易化することができる。
【0116】
(α情報の変形例(3))
上記実施形態では、α情報として2次元ベクトルを用い、2次元ベクトルは、少なくとも一方の成分が“0”となるように設定された(ステップS4)。具体的には、Z値が焦点距離Z1よりも大きい場合には、n成分が“0”に設定され、f成分にα値が設定された。ここで、他の実施形態では、Z値が焦点距離よりも大きい場合であっても、n成分に“0”でない所定の値を設定する(f成分にはα値を設定する)ようにしてもよい。このとき、ステップS5において、CPU10は、Z値が焦点距離よりも小さい画素だけでなく、n成分に“0”でない値が設定された画素をも処理対象として補正処理を行うことになる。これによれば、補正処理の対象とする画素を設計者が容易に指定することができる。例えば、上記所定の値としてf成分の値に応じた値(例えばf成分のx%の値)を設定するようにすれば、図10に示す第2オブジェクト52と第3オブジェクト53との境界L2を若干ぼかして表現することができる。また、各画素のうちで、Z値が所定値(焦点距離よりも大きい値でもよい)よりも小さい画素については、n成分にα値を設定するようにしてもよい。このように、α情報として2次元ベクトルを用いることによって、補正処理の対象となる画素を容易に指定することができる。
【0117】
(補正処理の変形例)
上記実施形態においては、CPU10は、ステップS5の補正処理においては、各画素のn成分値を平滑化することによってα値を補正した。ここで、ステップS5の補正処理は、α値の差が所定値以上である隣接する2つの画素のうちのα値が小さい方の画素についてα値を増加することができればよく、補正の具体的な処理は平滑化処理に限定されない。図21は、補正処理の変形例を説明するための図である。補正処理において、CPU10は、図16に示す処理に代えて図21に示す処理を行うようにしてもよい。具体的には、補正処理において、CPU10は、α値の差が所定値以上である隣接する2つの画素P3およびP4のうち、α値が小さい方の画素P4について、α値を増加する(具体的には、画素P3のα値と同じ値とする)ようにしてもよい。また、画素P4とともにそれに隣接する画素P5のα値をも増加するようにしてもよい。これによっても、上記実施形態と同様の表示画像(図10)を生成することができる。
【0118】
具体的には、ステップS5において、CPU10は、まず、基準画像の各画素のうちから、補正対象画素を選出する。CPU10は、例えば、隣接するいずれかの画素よりもα値が小さく、かつ、当該隣接する画素とのα値の差が所定値以上であることを条件として各画素のうちから補正対象画素を選出する。なお、上記条件に加えて、α値が所定値以下であることをさらなる条件としてもよい。また、他の実施形態では、隣接するいずれかの画素よりもα値が小さく、かつ、α値が所定値以下であることを条件としてもよい。次に、CPU10は、選出された補正対象画素のα値を増加させるように補正を行う。具体的には、補正前の値に予め定められた定数を加えるようにα値を補正してもよいし、隣接する画素のα値と等しい値となるようにα値を補正してもよい。
【0119】
(画像生成処理フローの変形例)
上記実施形態においては、ゲーム装置3は、基準画像の各画素に設定されたZ値に応じたα値を仮設定し、仮設定されたα値を補正することによって最終的なα値を得た。ここで、他の実施形態においては、基準画像の各画素に設定されたZ値を補正し、補正したZ値に応じたα値を算出するようにしてもよい。図22は、本実施形態の変形例における画像生成処理の流れを示すフローチャートである。なお、図22においては、図12と同じ処理ステップについては同じステップ番号を付し、詳細な説明を省略する。
【0120】
図22に示す変形例においては、ステップS3の次のステップS11において、CPU10は、基準画像の各画素に設定されたZ値を補正する。ステップS11の補正処理では、Z値の差が所定値以上である隣接する2つの画素のうち、Z値が上記焦点距離に近い方の画素のZ値が、当該2つの画素の他方の画素のZ値に近づける方向に変化するように補正される。
【0121】
上記補正処理の具体的な方法としては、各画素のZ値に対して平滑化処理を行う方法が考えられる。さらにこのとき、Z値が焦点距離以下である画素を対象として平滑化処理を行うことによって、上記実施形態と同様の表示画像(図10)を生成することができる。具体的には、CPU10は、Z値が焦点距離以下の画素については、第1成分を当該Z値とするとともに第2成分を“0”とする2次元ベクトルを設定し、Z値が焦点距離よりも大きい画素については、第1成分を“0”とするとともに第2成分を当該Z値とする2次元ベクトルを設定するようにしてもよい。このとき、CPU10は、算出された2次元ベクトルの第1成分について平滑化を行い、平滑化を行った後の2次元ベクトルの第1成分と第2成分とを加算することによって補正後のZ値を得ることができる。
【0122】
また、上記補正処理の他の方法としては、基準画像の各画素のうちから補正対象画素を選出し、選出された画素のZ値を補正する方法が考えられる。具体的には、CPU10は、上記焦点距離を含む所定範囲内の値をとるZ値(例えば、上記焦点距離との差が所定値以内となるZ値)が設定される画素であって、隣接する画素のZ値との差が所定値以上となる画素を補正対象画素として選出する。そして、選出された補正対象画素のZ値を、例えば、予め定められた所定値だけ増加する、または、隣接する画素のZ値と同じ値にすることによって、補正後のZ値を得ることができる。
【0123】
ステップS11の次のステップS12において、CPU10は、上記ステップS11における処理後のZ値に応じて各画素のα値を設定する。具体的には、α値は、Z値が上記焦点距離である場合にα=0となり、α=1を上限として、Z値と焦点距離との差分が大きくなるほど値が大きくなるように算出される。本変形例においては、ステップS12の後、ステップS7〜S9の処理が実行される。以上に説明した変形例によっても、上記実施形態と同様の表示画像(図10)を生成することができる。
【0124】
なお、上記実施形態においては、フォーカシングされた画像を生成する画像生成処理がゲーム装置3におけるゲーム処理中に実行される場合を例として説明したが、本発明は、ゲーム用途に用いられる場合に限定されず、3次元の仮想空間の画像を生成する種々の画像処理装置に適用することが可能である。
【産業上の利用可能性】
【0125】
本発明は、フォーカシングされた画像をよりリアルに生成すること等を目的として、例えばゲーム装置やゲームプログラム等に利用することが可能である。
【図面の簡単な説明】
【0126】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の機能ブロック図
【図3】コントローラ5の外観構成を示す斜視図
【図4】コントローラ5の外観構成を示す斜視図
【図5A】コントローラ5の内部構造を示す図
【図5B】コントローラ5の内部構造を示す図
【図6】コントローラ5の構成を示すブロック図
【図7】コントローラ5を用いてゲーム操作を行うときの様子を示す図解図
【図8】基準画像の一例を示す図
【図9】ぼかし画像の一例を示す図
【図10】本実施形態の画像生成処理によって生成される画像の一例を示す図
【図11】ゲーム装置3のメインメモリに記憶される主なデータを示す図
【図12】ゲーム装置3において実行される処理の流れを示すメインフローチャート
【図13】基準画像の各画素の一部を示す図
【図14】画素のZ値と当該画素に設定されるα情報との関係を示す図
【図15】補正処理が行われる前における、一列に並んだ各画素に設定されるn成分値を示す図
【図16】補正処理を行った後における、各画素に設定されるn成分値を示す図
【図17】図8に示す基準画像の各画素に設定された補正前のα情報の分布を示す図
【図18】図8に示す基準画像の各画素に設定された補正後のα情報の分布を示す図
【図19】全ての画素を処理対象として補正処理を行った場合に生成される表示画像を示す図
【図20】本実施形態の変形例において用いられる、画素のZ値と当該画素に設定されるα情報との関係を示す図
【図21】補正処理の変形例を説明するための図
【図22】本実施形態の変形例における画像生成処理の流れを示すフローチャート
【図23】従来の方法によって生成された、フォーカシングされた画像の例を示す図
【符号の説明】
【0127】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ部
10 CPU
11c GPU
11e 内部メインメモリ
12 外部メインメモリ
51〜53 オブジェクト
【技術分野】
【0001】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、視点からの距離に応じてフォーカシングされた画像を生成する画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【0002】
従来、仮想世界の画像を生成する際に、視点からの距離(奥行き)に応じてフォーカシングされた画像を生成する技術がある。なお、「視点からの距離に応じてフォーカシングされた画像」とは、奥行き方向(視線方向)に関して仮想カメラの焦点に近い位置にあるオブジェクトについては輪郭が明確であり、奥行き方向に関して仮想カメラの焦点から離れた位置にあるオブジェクトについては輪郭がぼやけているような画像を言う。このような画像によって、遠近感をよりリアルに表現することができる。
【0003】
特許文献1には、上記のような、フォーカシングされた画像を生成する画像生成システムが記載されている。この画像生成システムは、元画像とぼかし画像とを生成し、元画像とぼかし画像とを、画素毎に設定されるα値に基づいて合成することによって、フォーカシングされた画像を生成する。なお、α値は、0≦α≦1の範囲をとり、元画像とぼかし画像との合成比率を表す。上記画像生成システムでは、α値は、元画像の各画素の奥行き値に応じて設定される。これによれば、元画像と元画像のぼかし画像との合成比率(α値)が各画素の奥行き値に応じて変化するので、視点からの距離に応じてフォーカシングされた画像を生成することができる。
【0004】
図23は、従来の方法によって生成された、フォーカシングされた画像の例を示す図である。図23においては、円板形状のオブジェクト91〜93が仮想空間に配置されており、仮想カメラの視点に対してオブジェクト91が最も手前に位置し、オブジェクト93が最も奥手に位置している。図23では、仮想カメラの焦点はオブジェクト92の位置であるとする。このとき、焦点の位置にあるオブジェクト92の画素については、α値が0に設定されるので、元画像が反映され、ピントの合っている画像(輪郭が明瞭な)画像となる。一方、焦点から遠い位置にあるオブジェクト91およびオブジェクト93についてはα値が1に近い値に設定されるので、ぼかし画像が大きく反映され、ピントの合っていない(輪郭がぼけた)画像となる。
【特許文献1】特開2001−175884号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記特許文献1の方法では、焦点の位置にあるオブジェクト92の画素についてはα値が0に設定される。つまり、重なって見える2つのオブジェクト91および92の境界L付近においてもオブジェクト92の画素についてはα値が“0”に設定され、元画像が反映される。そのため、図23に示されるように、境界Lにおいてはオブジェクト91の輪郭がぼけずに明確になってしまう。本来は、この境界L付近についてもオブジェクト91の輪郭がぼけている方がリアルであるにもかかわらず、境界Lの部分についてはオブジェクト91の輪郭がはっきりと表れる不自然な画像になっていた。
【0006】
このように、特許文献1の方法では、単に各画素の奥行き値に応じてα値を設定しているために、奥行き値が大きく異なる画素が隣接する場合には、ピントの合っている画素とピントの合っていない画素との境界がはっきりと表示されてしまい、フォーカシングされた画像が不自然になっていた。
【0007】
それ故、本発明の目的は、よりリアルな画像を生成することができる画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、画像を生成する画像処理装置(ゲーム装置3)のコンピュータ(CPU10および/またはGPU11b)に実行させる画像処理プログラム(ゲームプログラム60)である。画像処理プログラムは、α値設定ステップ(S4)と、増加ステップ(S5,S6)と、合成ステップ(S7)とを、コンピュータに実行させる。α値設定ステップにおいて、コンピュータは、画素毎に奥行き値を有する基準画像(図8)の各画素の奥行き値(Z値)に応じて各画素のα値(α情報)を設定する。増加ステップにおいて、コンピュータは、隣接する2つの画素のうちでα値が小さい方の画素に設定されたα値を増加する(図16または図21)。合成ステップにおいて、コンピュータは、基準画像と当該基準画像に対応するぼかし画像(図9)とを、増加ステップによる処理後の各画素に設定されるα値に基づいて合成する。
【0010】
第2の発明においては、増加ステップにおいて、α値の差が所定値以上である隣接する2つの画素についてのみ、α値が小さい方の画素に設定されたα値を増加するようにしてもよい。
【0011】
第3の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるようにα値を設定してもよい。
【0012】
第4の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が基準値よりも小さい画素については2次元ベクトルの第1成分(n成分)にα値を設定するとともに、奥行き値が基準値よりも大きい画素については2次元ベクトルの第2成分(f成分)にα値を設定することによって画素毎に2次元ベクトルを設定してもよい(図14)。このとき、増加ステップは、平滑化ステップ(S5)と、加算ステップ(S6)とを含む。平滑化ステップにおいて、コンピュータは、各画素に設定される2次元ベクトルの第1成分の値を平滑化する。加算ステップにおいて、コンピュータは、2次元ベクトルの第1成分と第2成分とを加算した値をα値とする処理を各画素について行う。合成ステップにおいて、コンピュータは、基準画像とぼかし画像とを、加算ステップによる処理後の各画素に設定されるα値に基づいて合成する。
【0013】
第5の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が基準値よりも小さい画素については2次元ベクトルの第2成分の値を0に設定するとともに、奥行き値が基準値よりも大きい画素については2次元ベクトルの第1成分の値を0に設定してもよい。
【0014】
第6の発明においては、増加ステップにおいて、コンピュータは、所定値以下の奥行き値を有する画素のみを処理対象としてもよい。
【0015】
第7の発明においては、増加ステップにおいて、コンピュータは、各画素のα値を平滑化してもよい。
【0016】
第8の発明は、増加ステップにおいて、コンピュータは、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出し、選出された画素のα値を増加させてもよい。
【0017】
第9の発明においては、増加ステップにおいて、コンピュータは、隣接する画素よりもα値が小さく、かつ、α値が前記所定値以下である画素を選出し、選出された画素のα値を増加させてもよい。
【0018】
第10の発明においては、画像処理プログラムは、基準画像の各画素の色値を平滑化することによってぼかし画像を生成するぼかし画像生成ステップ(S3)をコンピュータにさらに実行させてもよい。
【0019】
第11の発明は、画像を生成する画像処理装置(ゲーム装置3)のコンピュータ(CPU10および/またはGPU11b)に実行させる画像処理プログラム(ゲームプログラム60)である。画像処理プログラムは、奥行き値補正ステップ(S11)、α値設定ステップ(S12)と、合成ステップ(S7)とを、コンピュータに実行させる。奥行き値補正ステップにおいて、コンピュータは、画素毎に奥行き値を有する基準画像(図8)内で隣接する2つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する。α値設定ステップにおいて、コンピュータは、奥行き値補正ステップにおける処理後の各画素の奥行き値に応じて各画素のα値を設定する。合成ステップにおいて、コンピュータは、基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する。
【0020】
第12の発明においては、奥行き値補正ステップにおいて、コンピュータは、奥行き値の差が所定値以上である隣接する2つの画素についてのみ、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正するようにてもよい。
【0021】
第13の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるようにα値を設定してもよい。
【0022】
第14の発明においては、奥行き値補正ステップにおいて、コンピュータは、基準値以下の奥行き値を有する画素のみを補正対象としてもよい。
【0023】
また、本発明は、上記第1〜第14の発明における各ステップを実行する情報処理装置と同等の機能を有する情報処理装置の形態で提供されてもよい。
【発明の効果】
【0024】
第1の発明によれば、α値の差が所定値以上である隣接する2つの画素のうちで、α値が小さい方の画素については、奥行き値に応じて設定されたα値が増加される。これによれば、当該2つの画素の境界部分の輪郭をぼかして画像を生成することができる。したがって、オブジェクトの輪郭の一部のみがはっきりしているような不自然な画像が生成されることを防止することができ、よりリアルな画像を生成することができる。
【0025】
第2の発明によれば、α値の差が所定値以上である場合にのみα値の補正(増加)を行うことにより、補正の必要な画素について確実に補正を行うことができる。
【0026】
第3の発明によれば、奥行き値が基準値に近い画素に対応するオブジェクトについては輪郭が明確に表れ、奥行き値が基準値から離れている画素に対応するオブジェクトについては輪郭がぼかして表されるので、リアルにフォーカシングされた画像を生成することができる。
【0027】
第4の発明によれば、奥行き値が基準値よりも小さい画素については少なくとも、α値の補正(増加)処理の対象となる。したがって、従来の技術で問題であった、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界がはっきりと表れてしまう問題を解消することができる。
【0028】
第5の発明によれば、奥行き値が基準値よりも小さい画素のみが、α値の補正(増加)処理の対象となり、奥行き値が基準値よりも大きい画素は当該処理の対象とならない。したがって、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像(図10参照)を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【0029】
第6の発明によれば、奥行き値が所定値よりも小さい画素のみが、α値の補正(増加)処理の対象となり、奥行き値が所定値よりも大きい画素は当該処理の対象とならない。したがって、例えば所定値を上記基準値とすることにより、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像(図10参照)を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【0030】
第7の発明によれば、各画素のα値を平滑化することによって、α値を増加すべき画素(すなわち、α値の差が所定値以上である隣接する2つの画素のうちのα値が小さい方の画素)のα値を容易に増加させることができる。
【0031】
第8の発明によれば、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出することによって、α値を増加すべき画素を確実に特定することができる。それ故、リアルにフォーカシングされた画像を確実に生成することができる。
【0032】
第9の発明によれば、隣接する画素よりもα値が小さく、かつ、α値が所定値以下である画素を選出することによって、α値を増加すべき画素を確実に特定することができる。それ故、リアルにフォーカシングされた画像を確実に生成することができる。
【0033】
第10の発明によれば、基準画像からぼかし画像を容易に作成することができる。
【0034】
第11の発明によれば、奥行き値の差が所定値以上である隣接する2つの画素のうちで、奥行き値が所定の基準値に近い方の画素については、奥行き値が当該2つの画素の他方の画素の奥行き値に近づける方向に補正される。そして、補正後の奥行き値に応じて各画素のα値が設定されるので、α値を補正する上記第1の発明と同様の効果を得ることができる。つまり、当該2つの画素の境界部分の輪郭をぼかして画像を生成することができ、よりリアルな画像を生成することができる。
【0035】
第12の発明によれば、奥行き値の差が所定値以上である場合にのみ奥行き値の補正を行うことにより、補正の必要な画素について確実に補正を行うことができる。
【0036】
第13の発明によれば、奥行き値が基準値に近い画素に対応するオブジェクトについては輪郭が明確に表れ、奥行き値が基準値から離れている画素に対応するオブジェクトについては輪郭がぼかして表されるので、リアルにフォーカシングされた画像を生成することができる。
【0037】
第14の発明によれば、奥行き値が基準値以下の画素のみが、奥行き値の補正処理の対象となり、奥行き値が基準値よりも大きい画素は当該処理の対象とならない。したがって、例えば所定値を上記基準値とすることにより、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像(図10参照)を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【発明を実施するための最良の形態】
【0038】
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係る画像処理装置の一例として、ゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、コントローラ5、およびマーカ部6を含む。本システムは、コントローラ5を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0039】
本発明に係る画像処理装置の一例であるゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0040】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0041】
コントローラ5は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0042】
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0043】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0044】
また、システムLSI11には、入出力プロセッサ11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0045】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0046】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0047】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0048】
入出力プロセッサ(I/Oプロセッサ)11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0049】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0050】
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0051】
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0052】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0053】
(コントローラ5の構成)
次に、図3〜図6を参照して、コントローラ5について説明する。図3および図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0054】
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5を用いることによって、それに設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【0055】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字キー32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源32hを誤って押下することを防止することができる。
【0056】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、他のコントローラ)を接続するために利用される。
【0057】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0058】
また、コントローラ5は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0059】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5A)からの音を外部に放出するための音抜き孔31aが形成されている。
【0060】
次に、図5Aおよび図5Bを参照して、コントローラ5の内部構造について説明する。図5Aおよび図5Bは、コントローラ5の内部構造を示す図である。なお、図5Aは、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す斜視図は、図5Aに示す基板30を裏面から見た斜視図となっている。
【0061】
図5Aにおいて、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図5B参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0062】
一方、図5Bにおいて、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0063】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5Aおよび図5Bに示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0064】
なお、図3〜図5A、図5Bに示したコントローラ5の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0065】
図6は、コントローラ5の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
【0066】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示すデータを通信部36のマイコン42へ出力する。
【0067】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0068】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0069】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0070】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるXYZ座標系における3次元のベクトルとして表される。
【0071】
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(姿勢)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。つまり、ゲーム装置3は、加速度データと、上記マーカ座標データとに基づいてコントローラ5の姿勢および動きを算出する。
【0072】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
【0073】
操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
【0074】
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作を行うことができる。図7は、コントローラ5を用いてゲーム操作を行うときの様子を示す図解図である。本実施形態では、プレイヤは、図7に示すように、コントローラ5によってテレビ2の画面上の位置Pを指し示すゲーム操作、および、コントローラ5を動かすゲーム操作を行うことができる。
【0075】
なお、本実施形態では、上記コントローラ5を入力装置として用いるゲーム装置を例として説明するが、本発明に係る情報処理装置は、上記ゲーム装置に限らず、仮想世界の画像を生成し、接続される表示装置に画像を表示することが可能な装置であればどのようなものであってもよい。また、入力装置はキーボードやマウス等、どのようなものであってもよく、情報処理装置は入力装置を備えていない構成であってもよい。
【0076】
(画像生成処理の概要)
以下、図8〜図10を参照して、本実施形態における画像生成処理の概要を説明する。本実施形態では、ゲーム装置3は、3次元の仮想空間のフォーカシングされた画像を生成する。本実施形態では、フォーカシングされた画像を生成する方法として、輪郭が明確な画像(基準画像。元画像とも言う。)と、基準画像の輪郭がぼかされた画像(ぼかし画像)とを用意し、基準画像とぼかし画像とを合成する方法を用いる。
【0077】
図8は、基準画像の一例を示す図であり、図9は、ぼかし画像の一例を示す図である。以下では、図8および図9に示す3つの円板形状のオブジェクト51〜53が配置された3次元の仮想空間の、フォーカシングされた画像を生成する場合を例として説明する。なお、3つのオブジェクト51〜53のうち、第1オブジェクト51が最も手前(仮想カメラの視点に最も近い位置)に配置され、第3オブジェクト53が最も奥(視点から最も遠い位置)に配置され、第2オブジェクト52は第1オブジェクト51と第3オブジェクト53との間に配置されている。また、以下では、仮想カメラの焦点(ピント)が第2オブジェクト52に合っている画像を生成する場合を例として説明する。
【0078】
基準画像は、3次元仮想空間に対して仮想カメラの位置を基準として透視変換を行うことによって得られる。図8に示すように、基準画像においては、各オブジェクト51〜53の輪郭は明確に表れている。一方、図9に示すように、ぼかし画像は、基準画像の輪郭がぼけた画像である。なお、図9では、各オブジェクト51〜53の輪郭を複数の点線によって表すことによって輪郭がぼけている様を表現している。ぼかし画像は、典型的には、基準画像に対して周知のぼかし処理を行うことによって生成される。ぼかし処理は、例えば、隣接する画素との平均を算出したり、または、ガウスフィルタを用いたりすることによって基準画像の各画素の色値(RGB値)を平滑化する処理である。また、ぼかし処理は、基準画像の各オブジェクトを拡大した後で縮小する(輪郭を粗くする)処理でもよい。更に、ぼかし処理は、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことによりぼかし画像を生成してもよい。
【0079】
ゲーム装置3は、基準画像およびぼかし画像を生成するとともに、基準画像の各画素についてα値をそれぞれ設定する。α値は、基準画像とぼかし画像とを合成する際におけるぼかし画像の合成比率(ブレンド率とも言う)を表す。具体的には、α値は、0≦α≦1の範囲であり、α=0の場合には合成後の画像はぼかし画像の割合が0%(基準画像の割合が100%)となり、α=1の場合には合成後の画像はぼかし画像の割合が100%となる(後述する式(7)参照)。
【0080】
本実施形態では、α値は、各画素のオブジェクトの奥行き値(すなわち、Z値)に応じて仮設定される。具体的には、仮想カメラの視点から焦点までの距離(ここでは、焦点距離と呼ぶ。)に等しいZ値が設定される画素についてはα=0に設定され、Z値と焦点距離との差が大きい画素ほどα値が大きくなるように設定される。このように設定されたα値を用いて合成を行うことにより、奥行きが焦点距離に近いオブジェクトの輪郭は明確になるとともに、奥行きが焦点距離から離れたオブジェクトの輪郭はぼけた画像を生成することができる。つまり、奥行きが焦点距離に近いオブジェクトにピントが合っているとともに、奥行きが焦点距離から離れているオブジェクトについてはピントが合っていない画像を生成することができる。
【0081】
ただし、各画素のZ値に応じて設定されたα値をそのまま用いて合成を行うと、図23に示したように、ピントが合っているオブジェクトと、ピントが合っていないオブジェクトとの境界がはっきりと表れてしまう。つまり、ピントが合っていないオブジェクトについては上記境界部分のみ輪郭が明確に表れてしまい、リアルな画像を生成することができない。そこで、本実施形態では、各画素のZ値に応じて仮設定されたα値に対して、後述する補正処理(図12に示すステップS5)を行う。この補正処理によって、上記境界付近においてα値が小さく設定されている画素のα値を増加する。本実施形態では、このように補正されたα値を用いて、基準画像とぼかし画像とを合成する(αブレンドを行う)ことによって、フォーカシングされた画像を生成される。これによって、ピントが合っていないオブジェクトについては上記境界付近においても輪郭がぼやけた画像を生成することができる。
【0082】
図10は、本実施形態の画像生成処理によって生成される画像の一例を示す図である。図10に示す画像においては、第1オブジェクト51と第2オブジェクト52との境界L1の付近において、第1オブジェクト51の輪郭がぼやけている。第1オブジェクト51の輪郭は全部分についてぼやけているので、本実施形態によれば、一部の輪郭のみが明確になっている画像(図23)における不自然さが解消されていることがわかる。なお、詳細は後述するが、本実施形態では、ピントが合っている第2オブジェクト52とその奥に配置される第3オブジェクト53との境界L2においては、第3オブジェクト53のぼけた輪郭が第2オブジェクト52の画像に重畳されないように上記補正処理が行われる。つまり、ピントが合っている第2オブジェクト52の手前に配置される第1オブジェクト51のぼけた輪郭は、第2オブジェクト52の画像に重畳されるのに対して、ピントが合っている第2オブジェクト52の奥に配置される第3オブジェクト53のぼけた輪郭は、第2オブジェクト52の画像に重畳されない。これによって、フォーカシングされた画像をよりリアルに生成することができる。
【0083】
(画像生成処理の詳細)
以下、図11〜図18を参照して、本実施形態における画像生成処理の詳細について説明する。図11は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図11に示すように、メインメモリには、ゲームプログラム60、画像処理用データ61等が記憶される。なお、メインメモリには、図11に示すデータの他、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
【0084】
ゲームプログラム60は、本実施形態に係る画像処理プログラムの一例であり、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。ゲームプログラム60には、図12に示す画像生成処理をCPU10に実行させるプログラムの他、所定のゲーム処理をCPU10に実行させるプログラムが含まれている。
【0085】
画像処理用データ61は、後述する画像生成処理(図12)において用いられるデータである。画像処理用データ61は、基準画像データ62、ぼかし画像データ63、α情報データ64、補正α情報データ65、およびα値データ66を含む。
【0086】
基準画像データ62は、上記基準画像を表すデータである。具体的には、基準画像データ62は、基準画像の各画素の色値およびZ値を示す。また、ぼかし画像データ63は、上記ぼかし画像のデータである。具体的には、ぼかし画像データ63は、ぼかし画像の各画素の色値を示す。なお、基準画像データ62およびぼかし画像データ63は、VRAM11dに設けられるフレームバッファに記憶されてもよい。
【0087】
α情報データ64は、基準画像の各画素にそれぞれ設定されるα情報を示すデータである。α情報とは、最終的なα値を算出するために仮設定されるα値を示し、本実施形態では、2次元のベクトルで表現される。具体的には、この2次元ベクトルはn成分とf成分とを有し、(n,f)と表される。詳細は後述するが、本実施形態では、画素のZ値が上記焦点距離よりも小さいか大きいかによって、n成分およびf成分のいずれか一方の成分にα値が設定され、他方の成分には“0”が設定される。また、補正α情報データ65は、上記α情報データ64により示されるα情報を補正処理によって補正した後のα情報を示す。補正処理の詳細は後述する。
【0088】
α値データ66は、各画素にそれぞれ設定されるα値を示す。このα値は、上記補正α情報データ65により示されるα情報に基づいて算出される。
【0089】
次に、ゲーム装置3において行われる画像生成処理の詳細を、図12〜図18を用いて説明する。図12は、ゲーム装置3において実行される処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入され、ゲームプログラムが記憶された光ディスク4がゲーム装置3に挿入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図12に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、図12に示す処理は、CPU10およびGPU11bの協調動作として行われる。
【0090】
図12に示すステップS1において、まずCPU10は、3次元の仮想空間における各種設定を行う。具体的には、仮想空間内にオブジェクト(各オブジェクト51〜53)を配置するとともに、仮想カメラの位置および向きを設定する。CPU10がゲーム処理を実行する場合であれば、プレイヤによるコントローラ5を用いたゲーム操作に応じてオブジェクトの位置を決定したり、仮想カメラの位置および向きを決定したりする。
【0091】
続くステップS2において、CPU10は、ステップS1で設定された内容に応じて基準画像を生成する。基準画像は、仮想カメラの位置から仮想カメラの向きに仮想空間を見たときの画像が生成されるように透視変換を行うことによって生成される。つまり、当該画像の各画素の色値およびZ値が算出される。ステップS2の処理によって生成された基準画像を示すデータ(すなわち、画素毎の色値およびZ値を示すデータ)は、基準画像データ62としてメインメモリに記憶される。
【0092】
続くステップS3において、CPU10は、基準画像からぼかし画像を生成する。本実施形態において、ぼかし画像は、メインメモリに記憶されている基準画像データ62により示される基準画像の各画素の色値を平滑化することによって生成される。以下、図13を参照してぼかし画像の生成方法の詳細を説明する。
【0093】
図13は、基準画像の各画素の一部を示す図である。なお、以下では、図13に示す画素X(XはA〜Mのいずれか)の基準画像における色値を“PX”、ぼかし画像における色値を“PX’”と示す。例えば画素Aにおけるぼかし画像の色値“PA’”は、当該画素Aの基準画像の色値“PA”と、当該画素Aに隣接する4つの画素B〜画素Eの色値“PB”〜“PE”との平均値として算出される。具体的には、CPU10は、次の式(1)に従って上記色値“PA’”を算出する。
PA’=(PA+PB+PC+PD+PE)/5 …(1)
CPU10は、上式(1)に従ってぼかし画像の色値を算出する処理を基準画像の各画素について行うことによって、ぼかし画像の各画素の色値を得る。これによって得られたぼかし画像を示すデータ(すなわち、画素毎の色値を示すデータ)は、ぼかし画像データ63としてメインメモリに記憶される。
【0094】
なお、他の実施形態においては、上式(1)に代えて、次の式(2)、(3)または(4)を用いてぼかし画像の各画素の色値を算出するようにしてもよい。
PA’=(PA+PF+PG+PH+PI)/5 …(2)
PA’=(PA+PB+PC+PD+PE+PF+PG+PH+PI)/9 …(3)
PA’=(PA+PB+PC+PD+PE+PJ+PK+PL+PM)/9 …(4)
上式(2)は、処理対象の画素Aのぼかし画像の色値を、当該画素Aの基準画像の色値“PA”と、画素Aから上下左右に2画素分離れた画素F〜画素Iの基準画像の色値“PF”〜“PI”との平均値とすることを表す。式(2)を用いることにより、式(1)に比べて、よりぼかし具合を強める事ができる。また、上式(3)は、処理対象の画素Aのぼかし画像の色値を、当該画素Aの基準画像の色値“PA”と、当該画素Aから上下左右に2画素分以内に存在する画素B〜画素Iの基準画像の色値“PB”〜“PI”との平均値とすることを表す。式(3)を用いることにより、式(1)に比べて、よりぼかし具合を強める事ができる。また、上式(4)は、処理対象の画素Aのぼかし画像の色値を、当該画素Aの基準画像の色値“PA”と、当該画素Aから上下左右斜めに1画素分以内に存在する画素B〜画素E、画素J〜画素Mの基準画像の色値“PB”〜“PE”、“PJ”〜“PM”との平均値とすることを表す。式(4)を用いることにより、式(1)に比べて、より綺麗なぼかし画像を得る事ができる。
【0095】
また、上述したように、ぼかし画像を生成する方法はどのような方法であってもよく、CPU10は、ガウスフィルタを用いて基準画像の色値を平滑化することによってぼかし画像を生成してもよいし、基準画像を一端拡大した後で縮小することによって輪郭を粗くする方法でぼかし画像を生成してもよいし、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことによりぼかし画像を生成してもよい。
【0096】
図12の説明に戻り、ステップS3の次のステップS4において、CPU10は、基準画像の各画素に対してそれぞれα情報を設定する。各画素のα情報は、その画素に対応するオブジェクトの奥行き、すなわち、その画素に設定されるZ値に応じて決められる。以下、図14を参照して、α情報の設定方法の詳細について説明する。
【0097】
図14は、画素のZ値と当該画素に設定されるα情報との関係を示す図である。図14に示す横軸はZ値を示し、縦軸はα値を示している。ステップS4において、CPU10はまず、Z値に応じたα値を算出する。図14に示されるように、α値は、Z値が上記焦点距離Z1である場合にα=0となり、α=1を上限として、Z値と焦点距離Z1との差分が大きくなるほど値が大きくなるように算出される。なお、図14は、上記差分とα値とが比例関係にある場合を示しているが、上記差分が大きくなるにつれてα値が大きくなる関係であればよい。また、焦点距離Z1は、予め定められた値であってもよいし、ユーザによって指定された値でもよいし、所定のアルゴリズムに従って自動的に算出された値でもよい。
【0098】
α値を算出すると、CPU10は、Z値と焦点距離Z1との大小関係に基づいて、算出されたα値をn成分とするかf成分とするかを決定する。具体的には、Z値が焦点距離Z1よりも小さい場合、算出されたα値はn成分とされる。つまり、n成分の値がα値となり、f成分の値が“0”となる2次元ベクトルが算出される。一方、Z値が焦点距離Z1よりも大きい場合、算出されたα値はf成分とされる。つまり、n成分の値が“0”となり、f成分の値がα値となる2次元ベクトルが算出される。つまり、本実施形態では、視点からの距離が焦点距離よりも近い位置にあるオブジェクトに対応する画素については、(α,0)(αはα値の値を示す)となる2次元ベクトルが設定され、視点からの距離が焦点距離よりも遠い位置にあるオブジェクトに対応する画素については、(0,α)となる2次元ベクトルが設定される。本実施形態では、以上のように算出された2次元ベクトルがα情報となる。各画素のα情報を示すデータは、α情報データ64としてメインメモリに記憶される。
【0099】
図12の説明に戻り、ステップS4の次のステップS5において、CPU10は、各画素に設定されたα情報のn成分をそれぞれ補正する。本実施形態においては、この補正処理は、各画素のn成分の値(以下、n成分値と示す)を平滑化することによって行われる。以下、図13を参照して補正処理の詳細を説明する。なお、以下では、図13に示す画素X(XはA〜Mのいずれか)の補正前のn成分値を“αX” 、補正後のn成分値を“αX’”と示す。例えば画素Aにおける補正後のn成分値“αA’”は、当該画素Aの補正前のn成分値“αA”と、当該画素Aに隣接する4つの画素B〜画素Eの補正前のn成分値“αB”〜“αE”との平均値を所定数(G)倍した値として算出することができる。具体的には、補正後のn成分値αA’は、次の式(5)に従って算出することができる。
αA’=(αA+αB+αC+αD+αE)/5×G …(5)
上式(5)において、Gは定数であり、好ましくは1以上の値に設定される。CPU10は、基準画像の各画素に設定された各α情報について上式(5)を用いて補正処理を行う。補正後の各α情報を示すデータは、補正α情報データ65としてメインメモリに記憶される。
【0100】
なお、他の実施形態においては、ステップS5におけるn成分値の平滑化は、上式(5)に代えて、次の式(6)、(7)または(8)を用いて行われてもよい。
αA’=(αA+αF+αG+αH+αI)/5×G …(6)
αA’=(αA+αB+αC+αD+αE+αF+αG+αH+αI)/9×G …(7)
αA’=(αA+αB+αC+αD+αE+αJ+αK+αL+αM)/9×G …(8)
上式(6)を用いる場合、処理対象の画素Aの補正後のn成分値“αA’は、当該画素Aの補正前のn成分値“αA”と、画素Aから上下左右に2画素分離れた画素F〜画素Iのn成分値“αF”〜“αI”との平均値を所定数(G)倍した値となる。また、上式(7)を用いる場合、画素Aの補正後のn成分値“αA’”は、当該画素Aの補正前のn成分値“αA”と、当該画素Aを中心として上下左右へ2画素分の範囲内に存在する画素B〜画素Iの基準画像のn成分値“αB”〜“αI”の平均値を所定数(G)倍した値となる。また、上式(8)を用いる場合、画素Aの補正後のn成分値“αA’”は、当該画素Aの補正前のn成分値“αA”と、当該画素Aを中心として上下左右斜めへ1画素分の範囲内に存在する画素B〜画素E、画素J〜画素Mの基準画像のn成分値“αB”〜“αE”、“αJ”〜“αM”の平均値を所定数(G)倍した値となる。また、n成分値の平滑化は、ガウスフィルタを用いて行われてもよいし、バイリニアフィルタリングやトライリニアフィルタリングを用いて行われてもよい。
【0101】
以下、図15〜図18を参照して、上記ステップS5の補正処理によるα情報の変化について説明する。図15は、補正処理が行われる前における、一列に並んだ各画素に設定されるn成分値を示す図である。図16は、補正処理を行った後における、各画素に設定されるn成分値を示す図である。なお、図15および図16における横軸は、1列に並ぶ画素P1〜P7を示し、縦軸は、当該各画素P1〜P7におけるn成分値を示している。画素P1〜P3は、図8に示す第1オブジェクト51に対応し、画素P4〜P7は、図8に示す第2オブジェクト52に対応する。したがって、画素P3と画素P4との間が、第1オブジェクト51と第2オブジェクト52との境界L1である。なお、ここでは、上記ステップS4の処理によって、画素P1〜P3についてはn成分値が“1”に設定され、画素P4〜P7についてはn成分値が“0”に設定されたものとする。
【0102】
図15に示す各画素P1〜P7に対してステップS5における補正処理が行われると、各画素P1〜P7におけるn成分値は図16に示すようになる。なお、図16は、上式(4)を用いて補正(平滑化)処理を行った後のn成分値を示している。図16に示されるように、補正前においてn成分値が“1”であった画素P3に隣接する画素P4は、補正前において“0”であったn成分値が、平滑化を行ったことによって増加して正の値になる。このように、補正処理によって、隣接する画素よりもn成分値(α値)が小さい画素については、n成分値が増加される。
【0103】
なお、補正処理によってn成分値が増加される画素の範囲は、補正処理の内容によって異なる。図16は、上式(5)を用いて補正処理を行った場合の例であるので、α値(n成分値)に差がある隣接する2つの画素(画素P3および画素P4)のうちの小さい方の画素(画素P4)のみが、α値が増加する対象となった。例えば、上式(6)または(7)を用いて補正処理を行う場合には、α値に差がある隣接する2つの画素(画素P3および画素P4)の間を境界とすると、当該境界から画素2つ分以内の距離にある画素(画素P4および画素P5)が、α値が増加する対象となる。
【0104】
図17は、図8に示す基準画像の各画素に設定された補正前のα情報の分布を示す図である。また、図18は、図8に示す基準画像の各画素に設定された補正後のα情報の分布を示す図である。図17および図18に示す領域71は、n成分値が正の値となる画素の領域である。また、図17に示す領域72は、n成分値およびf成分値がともに“0”となる領域である。なお、領域71および72以外の領域は、f成分値が正の値となり、n成分値が“0”となる領域である。図8に示す基準画像においては、上述したように、焦点距離よりも近い位置に存在するオブジェクトは第1オブジェクト51のみである。そのため、ステップS4においては、第1オブジェクト51に対応する画素についてn成分値が正の値(0でない値)となる2次元ベクトルが設定される。したがって図17に示すように、補正処理前においては、n成分値が正の値となる領域71は、第1オブジェクト51に対応する画素領域のみである。なお、n成分値およびf成分値がともに“0”となる領域72は、焦点距離の位置にある第2オブジェクト52に対応する。
【0105】
ここで、上記ステップS5の補正処理によれば、図15に示したように、n成分値が正である画素に隣接する画素に設定されるn成分値が正の値となる。その結果、補正処理後においては、n成分値が正の値となる領域71は、図18に示されるように、補正前に比べて拡張される。また、領域71が拡張されることに伴い、n成分値およびf成分値がともに“0”となる領域72は、縮小される。換言すれば、第1オブジェクト51と第2オブジェクト52との境界L1付近の画素(少なくとも、境界L1に隣接する画素)は、領域72から外れ領域71に含まれることになる。このように、補正処理後においては、第2オブジェクト52に対応する画素領域のうち、境界L1付近の一部については、n成分値が正の値となる。なお、上式(5)〜(8)に示した定数Gを1よりも小さい値とすると、第1オブジェクト51に対応する画素のうちの境界L1付近の画素のα値が平滑化によって小さくなることがある。このとき、表示画像におけるぼかし画像の割合が低くなり、その結果、第1オブジェクトが基準画像に比べて縮小して見えるおそれがある。そのため、定数Gは1以上に設定されることが好ましく、例えばG=3〜4に設定される。
【0106】
図12の説明に戻り、ステップS5の次のステップS6において、CPU10は、各画素に設定されたα情報に基づいて各画素のα値を算出する。具体的には、各画素のα値は、その画素に設定されたα情報(2次元ベクトル)のn成分値とf成分値とに基づいて算出される。より具体的には、CPU10は、メインメモリに記憶されている補正α情報データ65を参照し、補正α情報データ65により示されるn成分値およびf成分値を加算し、加算結果をα値とする。なお、本実施形態では、2次元ベクトルの少なくとも一方の成分の値は“0”であるので、n成分値とf成分値とを加算した結果をα値とすることは、n成分値およびf成分値のうちで大きい方の値をα値とすることと同じ意味である。ステップS6で算出された各画素のα値を示すデータは、α値データ66としてメインメモリに記憶される。
【0107】
上記ステップS6の処理によって、各画素に対して最終的なα値が設定される。その結果、図18に示す領域72内の画素についてはα値は“0”となる。一方、領域72外の画素については、α値は“0”でない値となる。つまり、第1オブジェクト51と第2オブジェクト52との境界L1付近の画素については、“0”でないα値が設定される。
【0108】
ステップS7において、CPU10は、基準画像とぼかし画像とをα値に基づいて合成する。具体的には、CPU10は、基準画像データ62、ぼかし画像データ63およびα値データ66を参照して、次の式(9)に従って表示画像の各画素の色値Cを算出する。
C=C1×(1−α)+C2×α …(9)
上式(9)において、変数C1は基準画像の色値を示し、変数C2はぼかし画像の色値を示す。表示画像の各画素について上式(9)を用いて色値を算出する処理を行うことによって、表示画像のデータが得られる。
【0109】
ここで、図18に示した領域72については、α値は“0”であるので、表示画像においては基準画像がそのまま反映される。一方、領域72以外の領域については、α値が“0”でないので、表示画像はぼかし画像が反映された画像になる。したがって、第1オブジェクト51と第2オブジェクト52との境界L1付近では、ぼかし画像が反映されて表示画像が生成されるので、表示画像では境界L1がぼけて表現されることになる。すなわち、本実施形態によれば、図10に示すような、境界L1がぼけた表示画像を得ることができる。
【0110】
続くステップS8において、CPU10は、ステップS7において合成された表示画像を描画する。すなわち、ステップS7の処理で得られた表示画像のデータを、VRAM11dに設けられるフレームバッファに書き込む。これによって、表示画像がテレビ2に表示される。
【0111】
続くステップS9において、CPU10は、画像生成処理を終了するか否かを判定する。この判定処理は、例えば、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS9の判定結果が否定である場合、ステップS1の処理が再度実行される。以降、ステップS9で画像生成処理を終了すると判定されるまで、ステップS1〜S9の処理が繰り返し実行される。一方、ステップS9の判定結果が肯定である場合、CPU10は、図12に示す画像生成処理を終了する。以上で、画像生成処理の説明を終了する。
【0112】
以上のように、本実施形態によれば、基準画像の各画素のZ値に応じて各画素のα値を仮設定した後、仮設定された各α値を補正(平滑化)する。これによって、ピントが合っているオブジェクト(第2オブジェクト52)と、ピントが合っていないオブジェクト(第1オブジェクト51)との境界部分において、第1オブジェクト51の輪郭が明確に表れることを防止することができる(図10)。したがって、ゲーム装置3は、よりリアルにフォーカシングされた画像を生成することができる。
【0113】
また、本実施形態では、仮設定されるα値(α情報)を2次元ベクトルを用いて表現することによって、Z値が焦点距離よりも小さい画素のみを処理対象として、α値の補正処理(ステップS5)を行うようにした。つまり、Z値が焦点距離よりも大きい画素についてはα値の補正処理が行われないので、図10に示すように、第2オブジェクト52と第3オブジェクト53との境界L2付近については、第2オブジェクト52の輪郭が明確に表れる。したがって、焦点距離に位置する第2オブジェクト52よりも手前に位置する第1オブジェクト51については、ぼけた輪郭が第2オブジェクト52側に重畳するように表現されるとともに、第2オブジェクトよりも奥に位置する第3オブジェクト53については、ぼけた輪郭が第2オブジェクト52側に重畳しないように表現される。すなわち、基準となるオブジェクトよりも手前側に位置するオブジェクトと、奥側に位置するオブジェクトとのそれぞれについて、ぼけた輪郭を自然に表現することができ、よりリアルが画像を生成することができる。
【0114】
(α情報の変形例(1))
なお、他の実施形態においては、α情報を2次元ベクトルとせずに、1つの値(スカラー値)として取り扱うようにしてもよい。すなわち、ステップS4においては、Z値に応じて算出されるα値の値をそのままα情報としてもよい。このとき、ステップS5の補正処理は全ての画素を処理対象として行われる。これによれば、α情報のデータ量を削減することができるとともに、2次元ベクトルからα値を算出する処理(ステップS6)が不要となるので、画像生成処理を簡易化することができる。なお、図19は、全ての画素を処理対象として補正処理を行った場合に生成される表示画像を示す図である。この場合、図19に示すように、第2オブジェクト52と第3オブジェクト53との境界L2についても第3オブジェクト53の輪郭がぼかして表現される。したがって、この境界L2を明確に表現することを目的とする場合には、上記実施形態に示したように、Z値が焦点距離よりも小さい画素のみを処理対象として補正処理を行うようにする必要がある。
【0115】
(α情報の変形例(2))
また、他の実施形態においては、正負の符号を付したα値をα情報として用いてもよい。図20は、本実施形態の変形例において用いられる、画素のZ値と当該画素に設定されるα情報との関係を示す図である。図20に示す横軸はZ値を示し、縦軸はα値を示している。図20に示すように、α値は、Z値が上記焦点距離Z1である場合にα=0となり、−1≦α≦1の範囲で、焦点距離Z1からZ値を引いた差分が大きくなるほど値が大きくなるように算出される。これによれば、Z値が焦点距離Z1よりも小さい画素についてはα値が負の数となり、Z値が焦点距離Z1よりも大きい画素についてはα値が正の数となるので、Z値が焦点距離Z1よりも小さい場合と大きい場合とを区別することができる。なお、正負の符号を付したα値をα情報として用いる場合、CPU10は、α値が負である画素のみを処理対象として上記ステップS5の補正処理を行う。そして、上記ステップS6においては、α値の絶対値を算出して最終的なα値とする。これによれば、ゲーム装置3は、上記実施形態と同様の表示画像(図10)を得ることができる。なお、本変形例の場合、ステップS5においてはα値が負の値となる画素を抽出する処理が必要となるので、2次元ベクトルを用いる方がステップS5の処理を簡易化することができる。
【0116】
(α情報の変形例(3))
上記実施形態では、α情報として2次元ベクトルを用い、2次元ベクトルは、少なくとも一方の成分が“0”となるように設定された(ステップS4)。具体的には、Z値が焦点距離Z1よりも大きい場合には、n成分が“0”に設定され、f成分にα値が設定された。ここで、他の実施形態では、Z値が焦点距離よりも大きい場合であっても、n成分に“0”でない所定の値を設定する(f成分にはα値を設定する)ようにしてもよい。このとき、ステップS5において、CPU10は、Z値が焦点距離よりも小さい画素だけでなく、n成分に“0”でない値が設定された画素をも処理対象として補正処理を行うことになる。これによれば、補正処理の対象とする画素を設計者が容易に指定することができる。例えば、上記所定の値としてf成分の値に応じた値(例えばf成分のx%の値)を設定するようにすれば、図10に示す第2オブジェクト52と第3オブジェクト53との境界L2を若干ぼかして表現することができる。また、各画素のうちで、Z値が所定値(焦点距離よりも大きい値でもよい)よりも小さい画素については、n成分にα値を設定するようにしてもよい。このように、α情報として2次元ベクトルを用いることによって、補正処理の対象となる画素を容易に指定することができる。
【0117】
(補正処理の変形例)
上記実施形態においては、CPU10は、ステップS5の補正処理においては、各画素のn成分値を平滑化することによってα値を補正した。ここで、ステップS5の補正処理は、α値の差が所定値以上である隣接する2つの画素のうちのα値が小さい方の画素についてα値を増加することができればよく、補正の具体的な処理は平滑化処理に限定されない。図21は、補正処理の変形例を説明するための図である。補正処理において、CPU10は、図16に示す処理に代えて図21に示す処理を行うようにしてもよい。具体的には、補正処理において、CPU10は、α値の差が所定値以上である隣接する2つの画素P3およびP4のうち、α値が小さい方の画素P4について、α値を増加する(具体的には、画素P3のα値と同じ値とする)ようにしてもよい。また、画素P4とともにそれに隣接する画素P5のα値をも増加するようにしてもよい。これによっても、上記実施形態と同様の表示画像(図10)を生成することができる。
【0118】
具体的には、ステップS5において、CPU10は、まず、基準画像の各画素のうちから、補正対象画素を選出する。CPU10は、例えば、隣接するいずれかの画素よりもα値が小さく、かつ、当該隣接する画素とのα値の差が所定値以上であることを条件として各画素のうちから補正対象画素を選出する。なお、上記条件に加えて、α値が所定値以下であることをさらなる条件としてもよい。また、他の実施形態では、隣接するいずれかの画素よりもα値が小さく、かつ、α値が所定値以下であることを条件としてもよい。次に、CPU10は、選出された補正対象画素のα値を増加させるように補正を行う。具体的には、補正前の値に予め定められた定数を加えるようにα値を補正してもよいし、隣接する画素のα値と等しい値となるようにα値を補正してもよい。
【0119】
(画像生成処理フローの変形例)
上記実施形態においては、ゲーム装置3は、基準画像の各画素に設定されたZ値に応じたα値を仮設定し、仮設定されたα値を補正することによって最終的なα値を得た。ここで、他の実施形態においては、基準画像の各画素に設定されたZ値を補正し、補正したZ値に応じたα値を算出するようにしてもよい。図22は、本実施形態の変形例における画像生成処理の流れを示すフローチャートである。なお、図22においては、図12と同じ処理ステップについては同じステップ番号を付し、詳細な説明を省略する。
【0120】
図22に示す変形例においては、ステップS3の次のステップS11において、CPU10は、基準画像の各画素に設定されたZ値を補正する。ステップS11の補正処理では、Z値の差が所定値以上である隣接する2つの画素のうち、Z値が上記焦点距離に近い方の画素のZ値が、当該2つの画素の他方の画素のZ値に近づける方向に変化するように補正される。
【0121】
上記補正処理の具体的な方法としては、各画素のZ値に対して平滑化処理を行う方法が考えられる。さらにこのとき、Z値が焦点距離以下である画素を対象として平滑化処理を行うことによって、上記実施形態と同様の表示画像(図10)を生成することができる。具体的には、CPU10は、Z値が焦点距離以下の画素については、第1成分を当該Z値とするとともに第2成分を“0”とする2次元ベクトルを設定し、Z値が焦点距離よりも大きい画素については、第1成分を“0”とするとともに第2成分を当該Z値とする2次元ベクトルを設定するようにしてもよい。このとき、CPU10は、算出された2次元ベクトルの第1成分について平滑化を行い、平滑化を行った後の2次元ベクトルの第1成分と第2成分とを加算することによって補正後のZ値を得ることができる。
【0122】
また、上記補正処理の他の方法としては、基準画像の各画素のうちから補正対象画素を選出し、選出された画素のZ値を補正する方法が考えられる。具体的には、CPU10は、上記焦点距離を含む所定範囲内の値をとるZ値(例えば、上記焦点距離との差が所定値以内となるZ値)が設定される画素であって、隣接する画素のZ値との差が所定値以上となる画素を補正対象画素として選出する。そして、選出された補正対象画素のZ値を、例えば、予め定められた所定値だけ増加する、または、隣接する画素のZ値と同じ値にすることによって、補正後のZ値を得ることができる。
【0123】
ステップS11の次のステップS12において、CPU10は、上記ステップS11における処理後のZ値に応じて各画素のα値を設定する。具体的には、α値は、Z値が上記焦点距離である場合にα=0となり、α=1を上限として、Z値と焦点距離との差分が大きくなるほど値が大きくなるように算出される。本変形例においては、ステップS12の後、ステップS7〜S9の処理が実行される。以上に説明した変形例によっても、上記実施形態と同様の表示画像(図10)を生成することができる。
【0124】
なお、上記実施形態においては、フォーカシングされた画像を生成する画像生成処理がゲーム装置3におけるゲーム処理中に実行される場合を例として説明したが、本発明は、ゲーム用途に用いられる場合に限定されず、3次元の仮想空間の画像を生成する種々の画像処理装置に適用することが可能である。
【産業上の利用可能性】
【0125】
本発明は、フォーカシングされた画像をよりリアルに生成すること等を目的として、例えばゲーム装置やゲームプログラム等に利用することが可能である。
【図面の簡単な説明】
【0126】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の機能ブロック図
【図3】コントローラ5の外観構成を示す斜視図
【図4】コントローラ5の外観構成を示す斜視図
【図5A】コントローラ5の内部構造を示す図
【図5B】コントローラ5の内部構造を示す図
【図6】コントローラ5の構成を示すブロック図
【図7】コントローラ5を用いてゲーム操作を行うときの様子を示す図解図
【図8】基準画像の一例を示す図
【図9】ぼかし画像の一例を示す図
【図10】本実施形態の画像生成処理によって生成される画像の一例を示す図
【図11】ゲーム装置3のメインメモリに記憶される主なデータを示す図
【図12】ゲーム装置3において実行される処理の流れを示すメインフローチャート
【図13】基準画像の各画素の一部を示す図
【図14】画素のZ値と当該画素に設定されるα情報との関係を示す図
【図15】補正処理が行われる前における、一列に並んだ各画素に設定されるn成分値を示す図
【図16】補正処理を行った後における、各画素に設定されるn成分値を示す図
【図17】図8に示す基準画像の各画素に設定された補正前のα情報の分布を示す図
【図18】図8に示す基準画像の各画素に設定された補正後のα情報の分布を示す図
【図19】全ての画素を処理対象として補正処理を行った場合に生成される表示画像を示す図
【図20】本実施形態の変形例において用いられる、画素のZ値と当該画素に設定されるα情報との関係を示す図
【図21】補正処理の変形例を説明するための図
【図22】本実施形態の変形例における画像生成処理の流れを示すフローチャート
【図23】従来の方法によって生成された、フォーカシングされた画像の例を示す図
【符号の説明】
【0127】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ部
10 CPU
11c GPU
11e 内部メインメモリ
12 外部メインメモリ
51〜53 オブジェクト
【特許請求の範囲】
【請求項1】
画像を生成する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
画素毎に奥行き値を有する基準画像の各画素の奥行き値に応じて各画素のα値を設定するα値設定ステップと、
隣接する2つの画素のうちでα値が小さい方の画素に設定されたα値を増加する増加ステップと、
前記基準画像と当該基準画像に対応するぼかし画像とを、前記増加ステップによる処理後の各画素に設定されるα値に基づいて合成する合成ステップとを、前記コンピュータに実行させる画像処理プログラム。
【請求項2】
前記増加ステップにおいて、前記コンピュータは、α値の差が所定値以上である隣接する2つの画素についてのみ、α値が小さい方の画素に設定されたα値を増加する、請求項1に記載の画像処理プログラム。
【請求項3】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が所定の基準値に近い画素ほど前記基準画像の合成割合が高くなるようにα値を設定する、請求項1に記載の画像処理プログラム。
【請求項4】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記基準値よりも小さい画素については2次元ベクトルの第1成分にα値を設定するとともに、奥行き値が前記基準値よりも大きい画素については2次元ベクトルの第2成分にα値を設定することによって画素毎に2次元ベクトルを設定し、
前記増加ステップは、
各画素に設定される2次元ベクトルの第1成分の値を平滑化する平滑化ステップと、
2次元ベクトルの第1成分と第2成分とを加算した値をα値とする処理を各画素について行う加算ステップとを含み、
前記合成ステップにおいて、前記コンピュータは、前記基準画像と前記ぼかし画像とを、前記加算ステップによる処理後の各画素に設定されるα値に基づいて合成する、請求項3に記載の画像処理プログラム。
【請求項5】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記基準値よりも小さい画素については2次元ベクトルの第2成分の値を0に設定するとともに、奥行き値が前記基準値よりも大きい画素については2次元ベクトルの第1成分の値を0に設定する、請求項4に記載の画像処理プログラム。
【請求項6】
前記増加ステップにおいて、前記コンピュータは、所定値以下の奥行き値を有する画素のみを処理対象とする、請求項1に記載の画像処理プログラム。
【請求項7】
前記増加ステップにおいて、前記コンピュータは、各画素のα値を平滑化する、請求項1に記載の画像処理プログラム。
【請求項8】
前記増加ステップにおいて、前記コンピュータは、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出し、選出された画素のα値を増加させる、請求項1に記載の画像処理プログラム。
【請求項9】
前記増加ステップにおいて、前記コンピュータは、隣接する画素よりもα値が小さく、かつ、α値が所定値以下である画素を選出し、選出された画素のα値を増加させる、請求項1に記載の画像処理プログラム。
【請求項10】
前記基準画像の各画素の色値を平滑化することによって前記ぼかし画像を生成するぼかし画像生成ステップを前記コンピュータにさらに実行させる、請求項1に記載の画像処理プログラム。
【請求項11】
画像を生成する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
画素毎に奥行き値を有する基準画像内で隣接する2つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する奥行き値補正ステップと、
前記奥行き値補正ステップにおける処理後の各画素の奥行き値に応じて各画素のα値を設定するα値設定ステップと、
前記基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する合成ステップとを、前記コンピュータに実行させる画像処理プログラム。
【請求項12】
前記奥行き値補正ステップにおいて、前記コンピュータは、奥行き値の差が所定値以上である隣接する2つの画素についてのみ、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する、請求項11に記載の画像処理プログラム。
【請求項13】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記所定の基準値に近い画素ほど前記基準画像の合成割合が高くなるようにα値を設定する、請求項11に記載の画像処理プログラム。
【請求項14】
前記奥行き値補正ステップにおいて、前記コンピュータは、前記基準値以下の奥行き値を有する画素のみを補正対象とする、請求項11に記載の画像処理プログラム。
【請求項15】
画像を生成する画像処理装置であって、
画素毎に奥行き値を有する基準画像の各画素の奥行き値に応じて各画素のα値を設定するα値設定手段と、
隣接する2つの画素のうちでα値が小さい方の画素に設定されたα値を増加する増加手段と、
前記基準画像と当該基準画像に対応するぼかし画像とを、前記増加手段による処理後の各画素に設定されるα値に基づいて合成する合成手段とを備える、画像処理装置。
【請求項16】
画像を生成する画像処理装置であって、
画素毎に奥行き値を有する基準画像内で隣接する2つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する奥行き値補正手段と、
前記奥行き値補正手段による処理後の各画素の奥行き値に応じて各画素のα値を設定するα値設定手段と、
前記基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する合成手段とを備える、画像処理装置。
【請求項1】
画像を生成する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
画素毎に奥行き値を有する基準画像の各画素の奥行き値に応じて各画素のα値を設定するα値設定ステップと、
隣接する2つの画素のうちでα値が小さい方の画素に設定されたα値を増加する増加ステップと、
前記基準画像と当該基準画像に対応するぼかし画像とを、前記増加ステップによる処理後の各画素に設定されるα値に基づいて合成する合成ステップとを、前記コンピュータに実行させる画像処理プログラム。
【請求項2】
前記増加ステップにおいて、前記コンピュータは、α値の差が所定値以上である隣接する2つの画素についてのみ、α値が小さい方の画素に設定されたα値を増加する、請求項1に記載の画像処理プログラム。
【請求項3】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が所定の基準値に近い画素ほど前記基準画像の合成割合が高くなるようにα値を設定する、請求項1に記載の画像処理プログラム。
【請求項4】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記基準値よりも小さい画素については2次元ベクトルの第1成分にα値を設定するとともに、奥行き値が前記基準値よりも大きい画素については2次元ベクトルの第2成分にα値を設定することによって画素毎に2次元ベクトルを設定し、
前記増加ステップは、
各画素に設定される2次元ベクトルの第1成分の値を平滑化する平滑化ステップと、
2次元ベクトルの第1成分と第2成分とを加算した値をα値とする処理を各画素について行う加算ステップとを含み、
前記合成ステップにおいて、前記コンピュータは、前記基準画像と前記ぼかし画像とを、前記加算ステップによる処理後の各画素に設定されるα値に基づいて合成する、請求項3に記載の画像処理プログラム。
【請求項5】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記基準値よりも小さい画素については2次元ベクトルの第2成分の値を0に設定するとともに、奥行き値が前記基準値よりも大きい画素については2次元ベクトルの第1成分の値を0に設定する、請求項4に記載の画像処理プログラム。
【請求項6】
前記増加ステップにおいて、前記コンピュータは、所定値以下の奥行き値を有する画素のみを処理対象とする、請求項1に記載の画像処理プログラム。
【請求項7】
前記増加ステップにおいて、前記コンピュータは、各画素のα値を平滑化する、請求項1に記載の画像処理プログラム。
【請求項8】
前記増加ステップにおいて、前記コンピュータは、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出し、選出された画素のα値を増加させる、請求項1に記載の画像処理プログラム。
【請求項9】
前記増加ステップにおいて、前記コンピュータは、隣接する画素よりもα値が小さく、かつ、α値が所定値以下である画素を選出し、選出された画素のα値を増加させる、請求項1に記載の画像処理プログラム。
【請求項10】
前記基準画像の各画素の色値を平滑化することによって前記ぼかし画像を生成するぼかし画像生成ステップを前記コンピュータにさらに実行させる、請求項1に記載の画像処理プログラム。
【請求項11】
画像を生成する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
画素毎に奥行き値を有する基準画像内で隣接する2つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する奥行き値補正ステップと、
前記奥行き値補正ステップにおける処理後の各画素の奥行き値に応じて各画素のα値を設定するα値設定ステップと、
前記基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する合成ステップとを、前記コンピュータに実行させる画像処理プログラム。
【請求項12】
前記奥行き値補正ステップにおいて、前記コンピュータは、奥行き値の差が所定値以上である隣接する2つの画素についてのみ、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する、請求項11に記載の画像処理プログラム。
【請求項13】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記所定の基準値に近い画素ほど前記基準画像の合成割合が高くなるようにα値を設定する、請求項11に記載の画像処理プログラム。
【請求項14】
前記奥行き値補正ステップにおいて、前記コンピュータは、前記基準値以下の奥行き値を有する画素のみを補正対象とする、請求項11に記載の画像処理プログラム。
【請求項15】
画像を生成する画像処理装置であって、
画素毎に奥行き値を有する基準画像の各画素の奥行き値に応じて各画素のα値を設定するα値設定手段と、
隣接する2つの画素のうちでα値が小さい方の画素に設定されたα値を増加する増加手段と、
前記基準画像と当該基準画像に対応するぼかし画像とを、前記増加手段による処理後の各画素に設定されるα値に基づいて合成する合成手段とを備える、画像処理装置。
【請求項16】
画像を生成する画像処理装置であって、
画素毎に奥行き値を有する基準画像内で隣接する2つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する奥行き値補正手段と、
前記奥行き値補正手段による処理後の各画素の奥行き値に応じて各画素のα値を設定するα値設定手段と、
前記基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する合成手段とを備える、画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2008−225767(P2008−225767A)
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願番号】特願2007−62193(P2007−62193)
【出願日】平成19年3月12日(2007.3.12)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願日】平成19年3月12日(2007.3.12)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]