【文献】
深田 和也,「らしさ」評価指標のノイズ付加画像に対する有効性の検証,電子情報通信学会技術研究報告 Vol.111 No.318,日本,社団法人電子情報通信学会,2011年11月18日,IMQ2011-18,P.16-20,ISSN 0913-5685
(58)【調査した分野】(Int.Cl.,DB名)
前記ノイズ処理手段は、所定の分布に従って前記CG画像における明るさの度合いを変化させることにより、ノイズを付加する、請求項1又は2に記載の画像処理プログラム。
前記ノイズ処理手段は、前記単位毎の明るさの度合いに基づいて、当該単位の明るさの度合いを変化させることにより、ノイズを付加する、請求項4に記載の画像処理プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、実カメラで撮像した実画像はノイズ等によりクリアでない画像となる場合がある一方で、仮想カメラで仮想オブジェクトを撮像したCG画像にはノイズが含まれずクリアな画像となる。このため、2つの画像を重ね合わせた場合に、不自然な画像となるという問題があった。
【0005】
それ故、本発明の目的の一つは、実画像にCG画像を重ね合わせて表示する場合に、より自然な表示となる画像を生成する画像処理技術を提供することである。
【課題を解決するための手段】
【0006】
本発明の一例では、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明の一例では、画像処理装置のコンピュータにおいて実行される画像処理プログラムである。画像処理プログラムは、前記コンピュータを、実画像取得手段と、CG画像取得手段と、ノイズ処理手段と、合成手段として機能させる。実画像取得手段は、実カメラにより実空間を撮像した実画像を取得する。CG画像取得手段は、コンピュータグラフィクスからなるCG画像を取得する。ノイズ処理手段は、前記CG画像に、実カメラにより生成される画像において発生し得るノイズを付加する。合成手段は、前記取得した実画像と前記ノイズ処理手段によりノイズが付加されたCG画像とを合成する。
【0008】
なお、実画像取得手段によって取得される上記実画像は、上記画像処理装置の内部において生成された画像であってもよいし、上記画像処理装置の外部で生成された画像であってもよい。同様に、CG画像取得手段によって取得される上記CG画像についても、内部において生成された画像であってもよいし、外部で生成された画像であってもよい。また、「実カメラにより生成される画像において発生し得るノイズ」とは、上記実カメラによって生成される実画像(実画像取得手段が取得した実画像)において発生し得るノイズ、および、上記実カメラとは異なる他の一般的な実カメラによって生成される画像(実画像取得手段が取得した実画像とは異なる他の画像)において発生し得るノイズの両方を含む。
【0009】
上記によれば、ノイズが付加されたCG画像を生成して、実画像と合成することができ、違和感のない自然な合成画像を生成することができる。
【0010】
また、他の構成では、前記ノイズ処理手段は、前記CG画像における明るさの度合いに基づいて、ノイズを付加してもよい。
【0011】
上記によれば、CG画像における明るさの度合いに基づいて、ノイズを付加することができる。ここで、明るさの度合いは、例えば明度であり、CG画像の一部分(所定の範囲や画素等)の明るさの度合いに基づいて、ノイズを付加してもよい。
【0012】
また、他の構成では、前記ノイズ処理手段は、所定の分布に従って前記CG画像における明るさの度合いを変化させることにより、ノイズを付加してもよい。
【0013】
上記によれば、所定の分布に従って明るさの度合いを変化させることでノイズを付加することができる。所定の分布は、例えばポアソン分布等の確率分布であってもよいし、予め定められたノイズを分散配置させた分布であってもよい。
【0014】
また、他の構成では、前記ノイズ処理手段は、前記CG画像の所定の単位毎にノイズを付加してもよい。
【0015】
上記によれば、所定の処理単位毎(例えば画素毎)にノイズを付加することができる。
【0016】
また、他の構成では、前記ノイズ処理手段は、前記単位毎の明るさの度合いに基づいて、当該単位の明るさの度合いを変化させることにより、ノイズを付加してもよい。
【0017】
上記によれば、上記単位毎の明るさの度合いに基づいてノイズを付加することができる。
【0018】
また、他の構成では、前記ノイズ処理手段は、前記CG画像に対してランダムにノイズを付加してもよい。
【0019】
上記によれば、CG画像の全体に対して一様にランダムにノイズを付加することができ、例えば現実のイメージセンサにおいて発生し得る熱ノイズをCG画像において擬似的に再現することができる。
【0020】
また、他の構成では、前記ノイズ処理手段は、前記CG画像の画素の色成分毎に明るさの度合いを変化させることにより、色成分毎にノイズを付加してもよい。
【0021】
上記によれば、CG画像の各画素における色成分毎にノイズを付加することができる。
【0022】
また、他の構成では、前記ノイズ処理手段は、前記色成分毎に所定の分布に従って明るさの度合いを変化させることにより、色成分毎にノイズを付加してもよい。
【0023】
上記によれば、色成分毎に所定の分布に従ってノイズを付加することができる。
【0024】
また、他の構成では、前記ノイズ処理手段は、ある色成分のノイズよりも別の色成分のノイズの方が重みが大きくなるようにして、各色成分にノイズを付加してもよい。
【0025】
上記によれば、ある色成分よりも別の成分に対するノイズの方が重みが大きくなるようにノイズを付加することができる。これにより、偽色を擬似的に再現することができる。
【0026】
また、他の構成では、前記ノイズ処理手段は、実カメラのイメージセンサのカラーフィルタにおける各色の比率に応じて、前記重みを設定してもよい。
【0027】
上記によれば、例えば、緑成分よりも赤成分や青成分に対するノイズの方が重みが大きくなるようにノイズを付加することができる。これにより、ノイズを付加した場合に画素の色が青や赤、紫色になりやすくなり、現実のイメージセンサを用いて撮像した画像における青や赤、紫色の偽色を擬似的に再現することができる。
【0028】
また、他の構成では、前記CG画像取得手段は、前記実画像よりも高い解像度の前記CG画像を取得してもよい。前記ノイズ処理手段は、前記CG画像取得手段によって取得されたCG画像の各画素に対してノイズを付加して合成することにより、ノイズが付加されたCG画像を生成してもよい。
【0029】
上記によれば、例えば、縦横2倍の解像度のCG画像を取得して、各画素に対してノイズを付加することができる。そして、各画素を合成して1つの画素を生成することで、ノイズを付加したCG画像を生成することができる。
【0030】
また、他の構成では、前記ノイズ処理手段は、前記CG画像の高輝度部分と低輝度部分との境界領域において所定の色成分の明るさの度合いを増加させてもよい。
【0031】
上記によれば、高周波成分を有するCG画像に対して電子溢れによるノイズを再現することができる。
【0032】
また、他の構成では、前記ノイズ処理手段は、前記境界領域における画素の赤成分及び青成分の明るさの度合いを増加させてもよい。
【0033】
上記によれば、CG画像においてパープルフリンジを擬似的に再現することができる。
【0034】
また、他の構成では、前記ノイズ処理手段は、前記CG画像における明るさの度合いが所定値以下の部分において、明るさの度合いが当該所定値よりも高い光点を発生させてもよい。
【0035】
上記によれば、比較的明るさの度合いが低い部分において、光点を発生させることができ、ショットノイズによる光点を再現することができる。
【0036】
また、他の構成では、前記ノイズ処理手段は、前記CG画像において偽色を発生させてもよい。
【0037】
上記によれば、CG画像において偽色を再現することができる。
【0038】
また、他の構成では、前記実画像に基づいて、当該実画像の色及び/又は明るさに関する実画像情報を取得する実画像情報取得手段として、前記コンピュータをさらに機能させてもよい。前記CG画像取得手段は、前記実画像情報に応じたCG画像を取得する。前記ノイズ処理手段は、前記実画像情報に応じたCG画像にノイズを加える。
【0039】
上記によれば、取得した実画像に応じたCG画像を取得することができる。例えば、実画像が全体的に暗い場合は、それに応じた暗さのCG画像を取得することができ、2つの画像を合成した場合により自然な画像とすることができる。
【0040】
また、他の形態では、上記各手段を備える画像処理装置であってもよい。また、他の形態では、上記各手段を備える、1又は複数の装置(要素)によって構成される画像処理システムであってもよい。当該画像処理システムは、複数の装置がネットワークで接続されて実現されてもよい。
【発明の効果】
【0041】
本発明の一例によれば、CG画像を実画像に重ね合わせて表示した場合に、自然な表示にすることができる。
【発明を実施するための形態】
【0043】
(画像処理装置の構成)
以下、本発明の一実施形態に係る画像処理装置について説明する。
図1は、本実施形態の画像処理装置1の機能構成を示すブロック図である。
【0044】
図1に示すように、画像処理装置1は、制御部10と、CG画像取得部11と、ノイズ処理部12と、実画像取得部13と、画像合成部14と、表示制御部15とを備える。画像処理装置1は、CPU、RAM、ハードディスクや不揮発性メモリ等の記憶装置、VDP等のハードウェアを備える。
図1に示す画像処理装置1の各部は、画像処理装置1のCPUが画像処理プログラムを実行することによって実現される。また、画像処理装置1には、実カメラ16と表示装置17とが接続される。なお、各部と実カメラ16及び/又は表示装置17とが一体となって画像処理装置が構成されてもよい。また、画像処理装置は、姿勢を検出するセンサ(角速度センサや加速度センサ、磁気センサ等)を含んでもよい。
【0045】
制御部10は、仮想空間(仮想世界)を構築して当該仮想空間に仮想オブジェクトと仮想カメラとを配置する。また、制御部10は、仮想空間に仮想光源を配置する。制御部10は、各種情報に基づいて仮想光源を設定して、仮想カメラで仮想オブジェクトを撮像することにより、CG(コンピュータ・グラフィクス)画像を生成してRAMに記憶する。
【0046】
CG画像取得部11は、制御部10が生成したCG画像を取得する。CG画像は、コンピュータを用いて作成される画像であり、制御部10が生成した画像に限らず、例えば、画像作成ソフトを用いてユーザが作成した画像であってもよい。また、実画像取得部13は、実カメラ16によって撮像された実画像を取得する。
【0047】
ノイズ処理部12は、取得されたCG画像に対してノイズを加えるノイズ処理を行う。例えば、ノイズ処理部12は、CG画像に対して、実カメラ(実カメラ16であってもよいし、他の一般の実カメラであってもよい)において発生し得るノイズを付加する。例えば、ノイズ処理部12は、現実のイメージセンサにおいて発生するショットノイズや熱ノイズ等を擬似的に再現するノイズ処理を行う。ノイズ処理の詳細については、後述する。
【0048】
画像合成部14は、ノイズ処理部12によってノイズが加えられたCG画像と、実画像取得部13によって取得された実画像とを重ね合わせることにより、合成画像を生成する。
【0049】
表示制御部15は、画像合成部14によって生成された合成画像を表示装置17に表示させる。実カメラ16は、レンズとイメージセンサとを含み、実空間を撮像して実画像を生成する。
【0050】
なお、実カメラ16は、1つのイメージセンサを含むカメラによって構成されてもよいし、2つのイメージセンサを含む所定の間隔で配置されたステレオカメラによって構成されてもよい。実カメラ16がステレオカメラとして構成される場合には、制御部10は、仮想空間に仮想ステレオカメラを配置して、人間の左右の目にそれぞれ視認される左目用CG画像と右目用CG画像とを生成する。画像合成部14は、実カメラ16の左目用の撮像部によって撮像された左目用実画像と、ノイズが加えられた左目用CG画像とを重ね合わせて左目用合成画像を生成するとともに、実カメラ16の右目用の撮像部によって撮像された右目用実画像と、ノイズが加えられた右目用CG画像とを重ね合わせて右目用合成画像を生成する。そして、人間の左目に左目用合成画像が視認され、右目に右目用合成画像が視認されるように、これらの合成画像が表示装置17において表示される。これにより、合成画像が立体視画像として表示される。
【0051】
(画像処理の概要)
図2は、画像処理装置1において行われる処理の概要を示す図である。
図2に示すように、仮想カメラで仮想オブジェクトを撮像すると、ノイズの無いCG画像が生成される。このCG画像にノイズ処理が行われることによってノイズが付加されてノイズ有りのCG画像が生成される。一方、実カメラ16によって撮像された実画像にはノイズが含まれている。ノイズ有りのCG画像と実画像とを重ね合わせて合成画像が生成される。このようにして生成された合成画像は、実空間には存在しない仮想オブジェクトがあたかも存在するかのような自然な画像となる。
【0052】
すなわち、ノイズ処理が行われないCG画像を実画像に重ね合わせると、CG画像は全くノイズが無い画像であるのに対して、実画像には本来的にノイズが含まれる。このため、合成画像は仮想オブジェクトのみが不自然に綺麗な画像となってしまう。しかしながら、本実施形態では、CG画像にノイズが付加されるため、実画像と重ね合わされた場合に自然な画像となる。
【0053】
現実のイメージセンサでは、様々な原因でノイズが発生する。例えば、イメージセンサに起因するノイズとしては、ショットノイズ、熱ノイズ、高周波成分を有する画像において高輝度部分(明るい部分)と隣り合う低輝度部分(暗い部分)への電子溢れによるノイズ等があり、これらが組み合わさることにより偽色やパープルフリンジ等の現象が現れることがある。本実施形態では、ノイズ処理部12がこれらのノイズを擬似的に再現してCG画像にノイズを付加することで、合成画像をより自然な画像にする。
【0054】
(ショットノイズ処理)
以下、ノイズ処理部12によって行われるノイズ処理について説明する。
図3は、ショットノイズを擬似的に再現したショットノイズ処理の概要を示す図である。
【0055】
現実のイメージセンサでは、実際に検出される光子数(光量)の統計的変動によってショットノイズが発生する。ショットノイズは、明るさの度合い(明度等)が比較的低い(光子数(光量)が少ない)部分に発生し易い。
【0056】
イメージセンサの素子において実際に検出される光子数は、ある時間内に検出される光子数の平均値からずれることがあり、そのずれはポアソン分布に従う。このため、イメージセンサのある素子では、ポアソン分布に従った確率で平均値よりも多い光子数を検出することがある。従って、イメージセンサで画像を撮像すると、光量の少ない部分(すなわち、黒に近い部分)においては、比較的明るい点がショットノイズとして現れることがある。
【0057】
本実施形態では、このようなショットノイズを擬似的に再現するショットノイズ処理が行われる。例えば、
図3に示すように、CG画像のうちの各画素にはRGB値が設定されている。CG画像は、仮想カメラで仮想オブジェクトを撮像することによって得られる。具体的には、仮想オブジェクトの色、仮想オブジェクトと仮想カメラの位置、仮想カメラの撮像方向、仮想光源の位置や光の強さが設定され、これらの設定に応じたCG画像が生成される。
【0058】
このようなCG画像のある画素P1について、その画素のRGB値からHSVモデル(Hue(色相),Saturation(彩度)、Value(明度を示す値;以下、「V値」という))への変換が行われる。RGB値からHSVモデルへの変換が行われることによって、ある画素において、例えばR成分のみが大きな値であって他の成分が小さな値であっても、その画素のV値は、値の大きな成分(R成分)に応じた値となる。
【0059】
このHSVモデルでのV値から平均光子数が推測される。ここで、平均光子数は、その画素P1からの単位時間当たりの光子数であり、V値から求めることができる。V値が大きければ平均光子数は多くなり、V値が小さければ平均光子数は少なくなる。
【0060】
推測された平均光子数に基づいて、ポアソン分布に従ってその画素P1の光子数を算出することができ、画素P1の光子数の平均光子数からのずれを算出することができる。画素P1のノイズは、この「光子数のずれ」に基づくものとなる。画素P1の光子数のずれが「0」の場合はノイズは無い。
【0061】
図4は、光子数のポアソン分布の一例を示す図である。ある画素の単位時間当たりの光子数の平均値が与えられた場合、その平均値からのずれは
図4に示すポアソン分布に従う。例えば、平均値νの場合、ν+2個の光子が検出される確率はp1である。後述のとおり、画像処理装置1は、ポアソン分布に基づく特定の範囲において乱数を用いた抽選を行うことにより、ある画素におけるノイズ(平均値からのずれ)を決定することができる。
【0062】
このようにして、CG画像の各画素に対して、ポアソン分布に従ってノイズが付加され、ノイズが加えられたCG画像が生成される。
【0063】
(ショットノイズによる偽色再現処理)
次に、現実のイメージセンサで発生するショットノイズに基づく偽色をCG画像において擬似的に再現する方法について説明する。
【0064】
図5は、一般的なイメージセンサ(単板方式)におけるカラーフィルタの配列を示す図である。
図5に示すように、イメージセンサでは、4つの素子が縦横に並べられ、各素子に赤(R)、青(B)、緑(G1及びG2)のカラーフィルタが対応づけられる。各色のカラーフィルタを通過した光がこれら4つの素子によって受光される。これら4つの素子の出力を用いて演算を行うことにより、1つの画素のRGB値が求められる。ここで、赤(R)及び青(B)が1つであるのに対して、緑(G)は2つある。このため、色バランスを取るため、赤及び青に対応する素子からの出力を2倍にして(あるいは、緑の成分のみ2つの画素の平均をとって)、1つの画素のRGB値が求められる。
【0065】
ここで、上述したショットノイズ等の影響(後述する熱ノイズ等の影響もある)によって、実際には存在しない光が各素子で検出される場合がある。例えば、特定の色成分に対応する素子にのみノイズが発生した場合は、実際の色とは異なる偽色が現れることがある。特に、赤や青に対応する素子からの出力は2倍にされるため、このようなノイズの影響は緑よりも大きくなる。
【0066】
本実施形態では、ノイズ処理においてノイズを付加することによって、CG画像において偽色を擬似的に再現させる。本実施形態では、第1の方法に基づくノイズ処理、又は、第2の方法に基づくノイズ処理を用いて、偽色の擬似的再現を行う。
【0067】
図6は、第1の方法に基づく偽色再現処理の概要を示す図である。第1の方法では、まず、仮想カメラを用いて、縦横に関して通常の解像度(実カメラ16の解像度)の2倍の解像度で仮想オブジェクトを撮像することにより、CG画像を生成する。
【0068】
図6に示すように、通常の解像度で撮像した場合は1つの画素が生成されるところ、縦横に関して2倍の解像度で撮像すると、縦横に2つ並んだ4つの画素が生成される。これら4つの画素にはそれぞれ明るさの度合いを示す値(以下では「光量値」という)が設定されている。これら縦横に並んだ4つの画素を実カメラのイメージセンサのカラーフィルタに見立てて、実カメラのカラーフィルタの配列に従って、4つの画素をそれぞれR、G1、G2、Bとして割り当てる。そして、割り当てた各色に対して、上述のようにポアソン分布に従うノイズを付加する。
【0069】
例えば、Rに対応する画素に対して、光量値aに基づくポアソン分布に従った確率でノイズを付加して光量値a’を算出する。また、G1に対応する画素、G2に対応する画素、Bに対応する画素についても、光量値b、光量値c、光量値dに基づくポアソン分布に従った確率で同様の処理を行うことにより、光量値b’、光量値c’、光量値d’をそれぞれ算出する。このような処理が行われた後の各画素について、異なる重みで合成することにより、4つの画素から1つの画素を生成する。
【0070】
具体的には、画像処理装置1は、以下の式に基づいて、1つの画素を生成する。
(R,G,B)=(a’,(b’+c’)/2,d’) (1)
【0071】
4つの画素に対するこのような処理を、縦横の解像度が2倍のCG画像の全体に対して行うことにより、ノイズが加えられたCG画像(通常の解像度)が生成される。生成されたCG画像には色毎にノイズが加えられており、赤(R)又は青(B)にノイズが付加された場合は、その影響が緑(G1又はG2)よりも大きくなる。すなわち、赤や青成分については、緑成分よりも大きな重みが付加されて合成される。このようにして、偽色を擬似的に再現することができる。
【0072】
図7は、第2の方法に基づく偽色再現処理の概要を示す図である。第2の方法では、画像処理装置1は、まず、仮想カメラを用いて、通常の解像度(実カメラ16の解像度)でCG画像を生成する。
【0073】
図7に示すように、仮想カメラによって仮想オブジェクトを撮像したCG画像の1つの画素にはR、G、B成分の光量値(RGB値)が設定されている。この画素のR成分、B成分、G成分に対してそれぞれノイズを付加する。
【0074】
ここで、ポアソン分布では、ある程度平均から離れた値の出現確率は、無視しても良いほど小さい。例えば、ポアソン分布では、平均で10回起こる事象が、3回から17回起こる確率は、98%を超える。このため、第2の方法では、平均を含む特定の範囲について一定の確率でノイズを付加する。
【0075】
具体的には、ノイズ処理部12は、以下の式に基づいて、ノイズ処理後の画素のRGB値を算出する。
(R’,G’,B’)=(r0,(r1+r2)/2,r3)+(R,G,B) (2)
【0076】
ここで、R,G,Bは、ノイズ処理前のCG画像の画素のRGB値である。r0,r1,r2、r3は、特定の光量値を中心とする特定の範囲においてランダムに抽選を行った結果に基づく値である。すなわち、r0,r1,r2、r3は、ノイズ処理前のRGB値からHSV変換により求めた光量値に基づいて設定される特定の範囲においてランダムに決定された値から当該特定の光量値までの距離である。
【0077】
図8は、第2の方法における偽色再現処理に用いられる分布を示す図である。
図8に示すように、第2の方法では、特定の光量値を中心としてポアソン分布を参考にした特定の範囲が設定され、当該特定の範囲では一様な分布(一定の確率p0)でノイズを発生させる。例えば、上記式(2)のr0の値は、当該特定の範囲においてランダムな抽選によって決定された光量値と平均光量との差である。
【0078】
すなわち、第2の方法では、CG画像の画素の各色成分の光量値に基づいて、HSV変換を行うことにより求めた光量値(V値)を設定し、この光量値(V値)を中心としてポアソン分布を参考にした特定の範囲を設定する。そして、特定の範囲においてランダムな抽選を行い、抽選結果に基づいて、上記式(2)におけるr0、r1、r2、r3を算出する。ここで算出されるr0,r1,r2、r3は、上記光量値(V値)から特定の範囲においてランダムに定められる値までの距離であり、正負両方の値を取り得る。このようにして生成される画素は、各色成分に対して簡易的な処理でノイズが付加された画素となる。
【0079】
なお、式(2)に示すように、各色成分について求められたノイズは色成分毎に重みが異なる。すなわち、ノイズが付加された場合、赤成分や青成分に対するノイズの方が緑成分よりも重みが大きく、赤成分や青成分においてノイズが発生した場合は、緑成分にノイズが発生した場合よりも、見た目上のノイズの影響が大きくなる。式(2)を用いて各画素にノイズが加えられると、結果として赤や青、ひいては紫色の偽色が発生し易くなる。なお、結果として赤成分及び青成分に対するノイズの方が緑成分に対するものよりも重みが大きくなるようなノイズ付加方法であれば、前述の偽色再現処理方法に限らず、CG画像に対して紫色の偽色の擬似的再現を行うことはできる。例えば、CG画像の各画素の赤(R)成分及び青(B)成分のみに対してランダムで一定の光量値を付加するような偽色再現処理方法であってもよい。
【0080】
(熱ノイズ処理)
次に、ノイズ処理部12において行われる、熱ノイズを擬似的に再現する熱ノイズ処理について説明する。
図9は、熱ノイズを擬似的に再現する熱ノイズ処理の概要を示す図である。
【0081】
図9に示すように、仮想カメラにより生成されたCG画像の全画素に対して一定の確率で熱ノイズが付加される。現実のイメージセンサで発生する熱ノイズは、イメージセンサ自体の温度に応じて、各画素においてランダムに発生する。このため、ノイズ処理部12は、CG画像の全画素に対して、乱数を用いてノイズを付加する。
【0082】
具体的には、ノイズ処理部12は、以下の式を用いて熱ノイズ処理後の各画素のRGB値を算出する。
(R’,G’,B’)=k(s0,s1,s2)+(R,G,B) (3)
ここで、kは定数であり、s0,s1,s2は、乱数を用いた抽選により決定された値(0〜1までの値)である。
【0083】
なお、熱ノイズ処理においてもイメージセンサのカラーフィルタの配列に従って色成分毎にノイズを付加してもよい。すなわち、熱ノイズはイメージセンサの各撮像素子において同じ確率で発生するため、
図5に示すような配列のカラーフィルタを用いたイメージセンサでは、緑成分に対する熱ノイズの発生頻度は赤成分及び青成分の2倍になる。このため、熱ノイズを再現する処理において、例えば、
図6を用いて説明した方法と同様に、縦横2倍の解像度のCG画像を用いて、R、G1、G2、B成分に対して乱数を用いて抽選を行った後に、各成分を合成してもよい。また、例えば、
図7を用いて説明した方法と同様に、R成分及びB成分に対して乱数を用いた抽選を1回だけ行い、G成分に対して乱数を用いた抽選を2回行ってもよい。そして、式(2)と同様に、ノイズが付加された後の画素のRGB値が求められてもよい。すなわち、R成分及びB成分については1回の抽選結果に応じてノイズを算出し、G成分については2回の抽選結果を平均してノイズを算出し、算出結果を元の画素のRGB値に加算する。このようにして、カラーフィルタの配列に従って色成分毎にノイズを付加してもよい。
【0084】
(パープルフリンジ再現処理)
実際のイメージセンサにおいて発生するノイズによる現象としてパープルフリンジがある。以下では、このパープルフリンジを擬似的に再現する方法について説明する。
【0085】
パープルフリンジは、高輝度部分と低輝度部分との境界領域に紫色のフリンジが発生する現象である。パープルフリンジが発生する主要な原因は、イメージセンサの撮像素子に大量の光子が入ることによって近傍の素子に電子が溢れ出ることによる。上述のように実際のイメージセンサでは、色バランスを取るために赤及び青に対応する素子からの出力は2倍にされる。この色バランスを取るための処理は、電子溢れが発生した素子に対しても行われるため、電子溢れが発生し易い高輝度部分と低輝度部分との境界領域では、赤又は青の偽色(結果として紫色の偽色)が連続的に発生し易くなり、これによりパープルフリンジが発生する。
【0086】
そこで、本実施形態では、CG画像における高輝度部分と低輝度部分との境界領域のコントラスト比の高い画素に対して、赤成分及び青成分の値を増加させる処理を行う。
【0087】
図10は、パープルフリンジを発生させるコントラスト比の高い画素を示す図である。
図10に示すように、CG画像には高輝度部分と低輝度部分とがあり、高輝度部分と低輝度部分との境界の画素に対して、赤成分及び青成分の値を増加させる処理が行われる。すなわち、ノイズ処理部12は、仮想カメラからのCG画像に対してコントラスト比の高い画素を探索して、当該コントラスト比の高い画素のR成分及びB成分の値を増加させる。
【0088】
例えば、コントラスト比の高い画素(高輝度部分と低輝度部分との境界における低輝度部分側の画素)の赤成分及び青成分を所定の割合だけ増加させたり、所定の確率分布に従った計算により増加させたりしてもよい。また、コントラスト比の高い画素からの距離に応じた量で、各画素のR成分及びB成分の値を増加させてもよい。例えば、
図10の破線で囲まれた画素のR成分及びB成分の値の増加量を最大にして、その右隣の画素のR成分及びB成分の値の増加量を最大値よりも小さくしてもよい。
【0089】
本実施形態では、高輝度部分と低輝度部分との境界領域に対してのみ、上述したパープルフリンジ処理が行われる。これにより、処理負荷を軽減しつつ、パープルフリンジを擬似的に再現することができる。
【0090】
以上のようにして、画像処理装置1は、仮想カメラによって撮像されたCG画像に対してノイズを付加するノイズ処理を行う。これにより仮想空間のオブジェクトを実カメラで撮像した実画像に重ね合わせた場合でも、違和感の無い自然な画像とすることができる。
【0091】
(処理の詳細)
次に、
図11及び
図12を参照して、本実施形態に係る画像処理の詳細について説明する。
図11は、本実施形態に係る画像処理の詳細を示すメインフローチャートである。
図11に示す処理は、画像処理装置1のCPUが所定の画像処理プログラムを実行することによって行われる。
【0092】
まず、画像処理装置1(のCPU)は、仮想オブジェクト等を仮想空間に配置する(ステップS101)。具体的には、画像処理装置1は、仮想空間に仮想オブジェクトおよび仮想カメラを配置する。次に、画像処理装置1は、実カメラ16から実画像を取得しRAMに記憶する(ステップS102)。
【0093】
続いて、画像処理装置1は、仮想空間に仮想光源を設定する(ステップS103)。例えば、画像処理装置1は、仮想光源の位置や種類、光源の色や光の強さ等(仮想光源に関する情報)を予め定められた値に設定する。あるいは、画像処理装置1は、他の情報(例えば、実空間の光量を計測するセンサ等からの出力情報等)に基づいて仮想光源に関する情報を設定する。
【0094】
次に、画像処理装置1は、仮想カメラで仮想オブジェクトを撮像してCG画像を生成する(ステップS104)。生成されたCG画像は、RAMに一時的に記憶される。
【0095】
次に、画像処理装置1は、ノイズ処理を行う(ステップS105)。以下、
図12を参照してノイズ処理の詳細について説明する。
図12は、
図11のステップS105のノイズ処理の詳細を示すフローチャートである。
【0096】
ノイズ処理において、画像処理装置1は、ショットノイズ処理を行う(ステップS110)。ショットノイズ処理では、上述のように、ステップS104で生成したCG画像の各画素について、RGB値に基づいてショットノイズを付加する処理を行う。具体的には、画像処理装置1は、ある画素を取り出し、当該画素のRGB値から上記V値を求め、当該V値に基づいて、ポアソン分布に従ってノイズを算出する。そして、ノイズ処理後のV値を当該画素のV値として再定義し、RAMに記憶する。このような処理をCG画像の各画素に対して行うことにより、ショットノイズ処理が行われた後のCG画像がRAMに記憶される。
【0097】
なお、画像処理装置1は、画素のV値が所定の閾値以下の場合にのみ、ステップS110のショットノイズ処理を行う。すなわち、ステップS104で生成したCG画像のうち、光量の少ない画素に対してのみショットノイズ処理が行われる。
【0098】
ステップS110に続いて、画像処理装置1は、熱ノイズ処理を行う(ステップS111)。具体的には、画像処理装置1は、RAMに記憶したCG画像(ステップS110の処理の後の画像、又は、ステップS104で生成した画像)の各画素に対して、上述のような熱ノイズ処理を行う。すなわち、画像処理装置1は、各画素に対して一定の確率でRGB値を変更する処理を行うことにより、擬似的な熱ノイズを付加したCG画像を生成してRAMに記憶する。
【0099】
次に、画像処理装置1は、ショットノイズによる偽色再現処理を行う(ステップS112)。ここでは、上述のような第1の方法又は第2の方法等を用いたショットノイズによる偽色再現処理が行われる。
【0100】
具体的には、画像処理装置1は、第1の方法を用いた偽色再現処理を行う場合には、上記ステップS104において、縦横の解像度が通常の解像度(実カメラ16の解像度)の2倍のCG画像を生成する。画像処理装置1は、RAMに保存したCG画像(ステップS111の処理の後の画像、又は、ステップS104で生成した画像)に対して、色成分毎にポアソン分布に従う処理が行われる。すなわち、上述のように4つの画素に対してポアソン分布に従って光量値を算出し、上記式(1)に基づいて、1つの画素を生成する。そして、すべての画素について同様の処理を行うことにより、画像処理装置1は、偽色再現処理が行われた後のCG画像を生成する。
【0101】
また、画像処理装置1は、第2の方法を用いた偽色再現処理を行う場合には、上記ステップS104において、通常の解像度で(実カメラ16の解像度と同じ解像度で)CG画像を生成する。画像処理装置1は、このCG画像(ステップS104で生成した画像又はステップS111の処理の後の画像)の各画素に対して上述のような処理を行うことにより、偽色再現処理が行われた後のCG画像を生成する。
【0102】
ステップS112に続いて、画像処理装置1は、パープルフリンジ再現処理を行う(ステップS113)。例えば、画像処理装置1は、RAMに記憶されたCG画像に対して、コントラスト比の高い画素を探索し、コントラスト比の高い画素のR成分及びB成分を所定の量だけ増加させる。これにより、パープルフリンジ再現処理を行った後のCG画像が生成され、RAMに記憶される。
【0103】
ステップS113の処理の後、画像処理装置1は、
図12に示す処理を終了する。
【0104】
図11に戻り、ステップS105の処理の後、画像処理装置1は、画像合成処理を行う(ステップS106)。具体的には、画像処理装置1は、ステップS102で取得した実画像とステップS105で生成したノイズ処理後のCG画像とを重ね合わせる。これにより、合成画像が生成される。
【0105】
次に、画像処理装置1は、合成画像を表示装置17に表示させる表示処理を行う(ステップS107)。これにより、実カメラ16で撮像された実画像と、仮想オブジェクトを撮像してノイズを付加したCG画像とが重ね合わされた合成画像が、表示装置17において表示される。以上で、画像処理装置1は、
図11に示す処理を終了する。
【0106】
以上のように、本実施形態では、仮想カメラで仮想オブジェクトを撮像したCG画像に対してノイズが付加され、実画像と合成される。これにより、本来的にノイズのある実画像とCG画像とが重ね合わされても違和感の無い自然な画像となる。
【0107】
なお、
図11及び
図12の処理は繰り返し行われてもよい。これにより、実カメラ16によってリアルタイムに撮像された実画像に、CG画像が合成されてリアルタイムで表示される。
【0108】
また、上記実施形態では、実カメラ16によって撮像された実画像に所定のマーカが含まれる場合、当該マーカの位置及び姿勢に応じて、実画像のマーカ上(マーカと所定の位置関係にある位置)に仮想オブジェクトが存在するかのように表示装置17において表示されてもよい。例えば、画像処理装置1がパターンマッチング等によりマーカを検出し、当該マーカの位置及び姿勢に基づいて、仮想空間の座標系が設定されるとともに、当該座標系における仮想カメラの位置及び姿勢が設定される。また、設定された座標系において所定の位置及び姿勢で仮想オブジェクトが配置される。そして、当該仮想オブジェクトを仮想カメラで撮像することにより、CG画像が生成される。
【0109】
また、上記実施形態では、ノイズ処理においてステップS110〜ステップS113の処理が行われたが、他の実施形態では、これらの処理のうちの少なくとも何れか1つの処理が行われてもよい。例えば、ユーザによる設定に応じてこれら複数の処理から少なくとも何れか1つの処理が選択されてもよい。
【0110】
また、上記実施形態では、仮想世界(2次元仮想世界であってもよいし、3次元仮想世界であってもよい)に配置された仮想オブジェクトを仮想カメラで撮像することによりCG画像を生成したが、他の実施形態では、仮想カメラを用いて生成された画像に限らず、コンピュータにより生成されたCG画像であれば、どのような画像であってもよい。
【0111】
また、上記実施形態では、ショットノイズ処理等において、ポアソン分布に基づいてノイズが付加され、熱ノイズ処理において一様な分布に基づいてノイズが付加された。他の実施形態では、特定の分布に限らず、ポアソン分布や一様分布、予め付加するノイズを分散配置させた分布等を含む所定の分布に基づいて、ノイズを付加してもよい。
【0112】
また、上記実施形態では、熱ノイズ処理において、予め定められた一定の確率でノイズを付加した。他の実施形態では、例えば、画像処理装置1が備える温度センサから温度に関する情報を取得して、当該取得した温度に関する情報に応じて、熱ノイズを付加してもよい。また、外部から温度に関する情報が取得されてもよい。
【0113】
また、上記実施形態では、CG画像を生成し、当該CG画像の各画素の明るさの度合いに基づいて、ノイズを付加した。他の実施形態では、実カメラ16から取得した実画像の情報を取得し、当該取得した情報に基づいて、CG画像の生成およびノイズ処理が行われてもよい。
【0114】
例えば、実画像の明るさの度合いや実画像の色等に応じてCG画像が変化するように、CG画像を生成してもよい。例えば、後述するように、実画像の明るさの度合いや実画像の色等に基づいて、仮想空間の光源を設定し、当該設定された光源を用いて仮想オブジェクトを照らし、仮想カメラで撮像してCG画像を生成してもよい。そして、生成されたCG画像に上述のようにノイズを付加する。
【0115】
また、例えば、実画像に基づいて、実画像におけるノイズの状況を分析し、当該ノイズの状況に応じてCG画像にノイズを付加してもよい。また、例えば、実カメラ16を用いた実画像に特有の性質(レンズによる収差、上記偽色等のイメージセンサに基づくノイズ、画像処理過程(所定形式への変換のための処理や画像フィルタ処理)での画像の劣化等)に基づいて、CG画像にノイズを付加してもよい。
【0116】
例えば、実カメラ16の色収差やザイデル収差、球面収差等を考慮して、仮想カメラにおいて収差を再現してCG画像を生成してもよい。また、実カメラのイメージセンサにおけるローパスフィルタによる影響を考慮して、CG画像における高周波成分をカットしてもよい。また、実カメラで撮像した実画像に対して輪郭強調処理等の画像処理を行う場合には、CG画像にも同様に輪郭強調処理等の画像処理を行ってもよい。
【0117】
図13は、他の実施形態における画像処理の一例を示す図である。
図13に示すように、他の実施形態では、画像処理装置は、実カメラ16から取得した実画像に基づいて、色情報、及び/又は、光量情報を算出する。次に、画像処理装置は、当該色情報、及び/又は、光量情報に基づいて、仮想空間の環境を設定する。例えば、画像処理装置は、仮想空間における光源を設定する。
【0118】
そして、画像処理装置は、当該設定された光源を用いて仮想オブジェクトを照らし、仮想カメラで撮像することによってCG画像を生成する。次に、画像処理装置は、生成したCG画像に対して上述のノイズ処理を行うことによってノイズを付加する。
【0119】
なお、ノイズ処理において、上記算出した実画像の色情報、及び/又は、光量情報に基づいて、ノイズが付加されてもよい。そして、画像処理装置は、実画像とノイズを付加したCG画像とを重ね合わせることにより、合成画像を生成する。
【0120】
図14は、他の実施形態における画像処理の流れを示すフローチャートである。
図14において、
図11と同様の処理については同じステップ番号を付して説明を省略する。
【0121】
図14に示すように、画像処理装置は、仮想オブジェクト等を配置して(ステップS101)、実画像を取得した後(ステップS102)、ステップS201の処理を実行する。
【0122】
ステップS201において、画像処理装置は、取得した実画像において複数のサンプリングポイントを設定し、当該サンプリングポイントの画素情報を算出する。例えば、画像処理装置は、実画像において所定のマーカを検出し、当該マーカにおける複数の所定のサンプリングポイントの色情報、及び/又は、光量情報を算出する。具体的には、画像処理装置は、所定のマーカの白色部分における複数のサンプリングポイントを抽出し、これらサンプリングポイントの画素のRGB値に基づいて、色情報及び光量情報を算出してもよい。例えば、画像処理装置は、全サンプリングポイントの平均色(平均のRGB値)を算出してもよいし、平均の光量を算出してもよい。
【0123】
なお、画像処理装置は、実画像において所定のマーカを検出せずに、実画像における複数の所定のサンプリングポイントに基づいて、色情報及び光量情報を算出してもよい。
【0124】
ステップS201に続いて、画像処理装置は、算出結果に基づいて仮想光源を設定する(ステップS202)。具体的には、画像処理装置は、ステップS201の算出結果に基づいて、仮想空間の光源(点光源または平行光源)のパラメータを設定する。光源のパラメータは、光源の色やその明るさ等を示すパラメータであって、画面全体に均一な影響を与えるパラメータや仮想キャラクタのマテリアルと相互作用して表示に影響を与えるパラメータである。例えば、実画像(実空間)が全体的に赤みを帯びている場合には、仮想光源の色は赤みを帯びた色になる。また、例えば、実画像(実空間)が全体的に明るい場合には、仮想光源は明るくなる。
【0125】
以上のようにしてステップS201及びステップS202が行われることによって、仮想光源のパラメータが設定されて、続くステップS104〜ステップS107の処理が行われる。これにより、実画像に応じたCG画像(実画像(実空間)の明るさに応じた明るさのCG画像、実画像(実空間)の色に応じた色のCG画像)が生成されて、合成画像が表示される。
【0126】
図14の処理によって表示される合成画像は、より違和感の無い自然な画像となる。すなわち、実際に取得された実画像に基づいて、実画像の全体的な色や明るさ等を算出することができる。そして、実画像から算出された情報に基づいて、仮想空間の光源のパラメータが設定され、仮想オブジェクトが撮像される。これにより、実画像に応じたCG画像が生成される。
【0127】
例えば、実画像が全体的に明るい場合は、CG画像も全体的に明るくなる。また、実画像が全体的に所定の色を帯びている場合には、CG画像も全体的に当該所定の色を帯びるようになる。
【0128】
実画像には本来的にノイズが含まれ、また、CG画像にもノイズ処理が行われることによってノイズが付加される。このように生成された2つの画像はより差異(全体的な色や明るさの差異、ノイズの程度の差異)が小さく、2つの画像を重ね合わせた場合により自然な画像となる。
【0129】
なお、上記実施形態のフローチャートで示した処理は単なる一例であり、上記処理の一部が実行されなくてもよいし、上記処理の他の処理が付加されてもよい。また、処理の順番はどのようなものでもよい。
【0130】
また、上記実施形態では単体の画像処理装置が上記処理を行うものとした。他の実施形態では、複数(又は単数)の装置によって構成されるシステムによって上記処理が行われてもよい。例えば、ネットワークに接続された複数の装置が処理を分担して実行することにより、上記処理が実行されてもよい。いわゆるクラウドコンピューティングのような分散型のネットワークシステムによって上記処理が行われてもよい。また、上記処理の一部又は全部が複数のプロセッサによって実行されてもよいし、上記処理の一部又は全部が専用回路によって行われてもよい。
【0131】
また、上述した画像処理装置は、任意の情報処理装置(携帯端末、携帯電話、携帯型ゲーム装置、据置型ゲーム装置、カメラ、パーソナルコンピュータ、サーバ等)であってもよい。