(57)【特許請求の範囲】
【請求項１】
入力画像に第一および第二の暈し強度の暈し処理を行って、第一および第二の暈し画像を生成するブラーリング手段と、
前記第一および第二の暈し画像をブレンドした場合のブレンド係数と前記暈し強度の対応関係を示す関係式を導出する導出手段と、
前記関係式を用いて目標暈し強度に対応するブレンド係数を求め、前記ブレンド係数によって前記第一および第二の暈し画像をブレンドして、前記目標暈し強度の暈し画像を生成する生成手段とを有し、
前記暈し強度は、ガウシアンフィルタにおける分散に対応することを特徴とする画像処理装置。
【請求項２】
前記第一の暈し強度＜前記第二の暈し強度、かつ、前記第一の暈し強度≦前記目標暈し強度≦前記第二の暈し強度の関係を有することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
環境マッピングを行う画像処理装置であって、
オブジェクトの色情報に記録された前記オブジェクトの画像データそれぞれに対応する暈し強度から、前記暈し強度の最大値および最小値を抽出する抽出手段と、
テクスチャに前記最大値の暈し強度の暈し処理および前記最小値の暈し強度の暈し処理を行って、第一および第二の暈しテクスチャを生成するブラーリング手段と、
前記第一および第二の暈しテクスチャをブレンドした場合のブレンド係数と前記暈し強度の対応関係を示す関係式を導出する導出手段と、
前記オブジェクトの注目画素の拡散反射色を算出する算出手段と、
前記注目画素の画像データに対応する暈し強度を前記色情報から取得し、前記関係式を用いて前記暈し強度に対応するブレンド係数を求め、前記ブレンド係数によって前記第一および第二の暈しテクスチャをブレンドした第三の暈しテクスチャから、前記注目画素の鏡面反射色を取得する取得手段と、
前記拡散反射色および前記鏡面反射色から前記注目画素の色を決定する決定手段とを有することを特徴とする画像処理装置。
【請求項４】
ブラーリング手段、導出手段、生成手段を有する画像処理装置の画像処理方法であって、
前記ブラーリング手段が、入力画像に第一および第二の暈し強度の暈し処理を行って、第一および第二の暈し画像を生成し、
前記導出手段が、前記第一および第二の暈し画像をブレンドした場合のブレンド係数と前記暈し強度の対応関係を示す関係式を導出し、
前記生成手段が、前記関係式を用いて目標暈し強度に対応するブレンド係数を求め、前記ブレンド係数によって前記第一および第二の暈し画像をブレンドして、前記目標暈し強度の暈し画像を生成し、
前記暈し強度は、ガウシアンフィルタにおける分散に対応することを特徴とする画像処理方法。
【請求項５】
抽出手段、ブラーリング手段、導出手段、算出手段、取得手段、決定手段を有し、環境マッピングを行う画像処理装置の画像処理方法であって、
前記抽出手段が、オブジェクトの色情報に記録された前記オブジェクトの画像データそれぞれに対応する暈し強度から、前記暈し強度の最大値および最小値を抽出し、
前記ブラーリング手段が、テクスチャに前記最大値の暈し強度の暈し処理および前記最小値の暈し強度の暈し処理を行って、第一および第二の暈しテクスチャを生成し、
前記導出手段が、前記第一および第二の暈しテクスチャをブレンドした場合のブレンド係数と前記暈し強度の対応関係を示す関係式を導出し、
前記算出手段が、前記オブジェクトの注目画素の拡散反射色を算出し、
前記取得手段が、前記注目画素の画像データに対応する暈し強度を前記色情報から取得し、前記関係式を用いて前記暈し強度に対応するブレンド係数を求め、前記ブレンド係数によって前記第一および第二の暈しテクスチャをブレンドした第三の暈しテクスチャから、前記注目画素の鏡面反射色を取得し、
前記決定手段が、前記拡散反射色および前記鏡面反射色から前記注目画素の色を決定することを特徴とする画像処理方法。
【請求項６】
コンピュータを請求項1から請求項3の何れか一項に記載された画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の暈し処理に関する。
【背景技術】
【０００２】
ブラーフィルタとして、メディアンフィルタやガウシアンフィルタなどが知られている。ブラーフィルタは、注目画素と、その周辺の複数画素を重み付け加算することで、暈し処理（ブラーリング）を実現する。暈し強度を上げる場合、より広範囲の画素を重み付け加算する。
【０００３】
例えば、コンピュータグラフィックス(CG)において、一つの画像に対して暈し量が異なる多数の画像を生成する場合がある。その際、自然な暈し結果を得るために、広範囲の画素の重み付け加算が要求される場合があるが、広範囲の画素の重み付け加算は処理負荷が重く、暈し量が異なる多数の暈け画像を短時間に生成することはできない。
【０００４】
以下では、暈し処理の強度が異なる複数の画像から任意の強度の暈し処理結果に相当する暈し画像を得る発明を説明するが、発明者は、当該技術に関連する先行技術文献を知らない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、暈し処理の高速化を目的とする。
【課題を解決するための手段】
【０００６】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００７】
本発明にかかる画像処理は、入力画像に第一および第二の暈し強度の暈し処理を行って、第一および第二の暈し画像を生成し、前記第一および第二の暈し画像をブレンドした場合のブレンド係数と前記暈し強度の対応関係を示す関係式を導出し、前記関係式を用いて目標暈し強度に対応するブレンド係数を求め、前記ブレンド係数によって前記第一および第二の暈し画像をブレンドして、前記目標暈し強度の暈し画像を生成し、前記暈し強度は、ガウシアンフィルタにおける分散に対応することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、暈し処理を高速化することができ、例えば、一つの画像に対して暈し量が異なる多数の画像を短時間に生成することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例の画像処理装置の構成例を説明するブロック図。
【図２】ガウシアンフィルタの特性を説明する図。
【図３】暈し処理した二つの画像から目標暈し強度の暈し画像を得る処理を説明する概念図。
【図４】関係式を示す図。
【図５】暈し画像の生成処理の一例を説明するフローチャート。
【図６】テクスチャの参照方法を説明する図。
【図７】オンデマンドに画像を暈してテクスチャを生成する処理を説明するフローチャート。
【図８】ランバートの拡散反射モデルを説明する図。
【発明を実施するための形態】
【００１０】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１１】
実施例1として、暈し処理済みの二つの画像データを用いて、任意の暈し強度の暈し画像を得る方法を説明する。なお、以下では、暈し処理（ブラーリング）にガウシアンフィルタを用いる例を説明するが、メディアンフィルタなどの他のフィルタを用いてもよい。
【００１２】
［装置の構成］
図1のブロック図により実施例の画像処理装置の構成例を説明する。
【００１３】
CPU104は、RAM106をワークメモリとして、ROM105や格納部103に格納された各種プログラムを実行し、システムバス108を介して後述する構成を制御する。格納部103は、例えばハードディスクドライブ(HDD)を有し、画像データやコンピュータグラフィックス(CG)に用いる三次元(3D)オブジェクトのデータを含む各種データ、および、後述する画像処理用のプログラムを含む各種プログラムを格納する。
【００１４】
入力部101は、例えばキーボードやマウスなどのポインティングデバイスを有する。表示部102は、例えば液晶ディスプレイ(LCD)などのモニタを有する。CPU104は、入力部101を介してユーザ指示やデータを入力し、表示部102にグラフィカルユーザインタフェイス(GUI)などを表示する。
【００１５】
グラフィクス処理部(GPU)107は、表示部102に表示する画像のレンダリングを行うハードウェアである。CPU104は、CGにおける表示画像（CG画像）の生成を浮動少数点演算に優れるGPU107に代行させる。つまり、CG画像の生成に、ライティング（光源計算）、シェーディング（陰影処理）、レンダリングを含むGPU107のシェーダ(shader)機能を利用する。GPU107のシェーダ機能は、グラフィックライブラリ（例えばOpenGL（登録商標）やDirect3D（登録商標））が提供するプログラマブルなシェーダを介して利用可能である。
【００１６】
［ガウシアンフィルタの概要］
ガウシアンフィルタは下式で表される。
f(x, y) = 1/(2πσ2)・exp{-(x2 + y2)/2σ2}      …(1)
ここで、x, yは注目画素を原点とする画素の距離、
σは分散。
【００１７】
従って、ガウシアンフィルタで処理した注目画素の値は次式で表される。
I = 1/N・Σf(x, y)M(x, y)      …(2)
ここで、M(x, y)は注目画素から距離(x, y)離れた画素の値、
注目画素と周辺画素の数。
【００１８】
図2によりガウシアンフィルタの特性を説明する。図2の横軸xは注目画素と周辺画素の距離を示し、縦軸は、x方向の、画素の値Mの重みを示す。分散σを変化させると、図2に示すように、画素の重みが変化する。
【００１９】
［暈し処理］
図3の概念図により暈し処理した二つの画像から目標暈し強度の暈し画像を得る処理を説明する。
【００２０】
図3(a)は処理前の入力画像（オリジナル画像）を示す。図3(b)はオリジナル画像に分散σ1=15のガウシアンフィルタを実行した結果（暈し画像A）を示す。図3(c)はオリジナル画像に分散σ2=225のガウシアンフィルタを実行した結果（暈し画像B）を示す。図3(d)はオリジナル画像に分散σ=100のガウシアンフィルタを実行した結果（暈し画像C）を示す。また、図3(e)は、次式により、暈し画像AとBをアルファブレンドして生成した画像Dを示す。
D = α×A + (1-α)×B      …(3)
【００２１】
式(3)において、画像Dと、暈し画像Cが最も近くなるα（ブレンド係数、0≦α≦1）を算出する。具体的には、画像Dと暈し画像Cの対応する画素間の差分を算出し、差分の二乗和が最小になるαを導出すればよい。このように算出したαを使用して、暈し画像AとBをアルファブレンドすれば、オリジナル画像に分散σ=100のガウシアンフィルタを実行した結果（暈し画像C）に近似する画像が得られる。同様に、暈し画像AとBをアルファブレンドして、分散σ（σ1≦σ≦σ2）のガウシアンフィルタに対応する暈し画像が得られるαを調べると次の関係式が得られる。
α = 1.04×10-9σ4 - 7.38×10-7σ3 + 0.0002×σ2 - 0.02536σ+ 1.336718      …(4)
【００２２】
図4により式(3)の関係式を示す。なお、式(3)には四次の多項式を用いる例を示すが、他の次数の多項式を用いても構わない。
【００２３】
つまり、オリジナル画像に、例えば分散σ1=15とσ2=225のガウシアンフィルタを実行した暈し画像A、Bを生成し、αと分散σ（σ1≦σ≦σ2）の対応関係を示す関係式を求める。そして、所望する暈し強度（目標暈し強度）に対するαを用いて、暈し画像A、Bのアルファブレンドすれば、目標暈し強度（目標分散σt）の暈し画像を生成することができる。
【００２４】
［暈し画像の生成］
図5のフローチャートにより暈し画像の生成処理の一例を説明する。
【００２５】
CPU104は、暈し処理の対象画像（オリジナル画像）を例えば格納部103から読み込む(S501)。そして、オリジナル画像に、所定の分散σ1、σ2のガウシアンフィルタを実行した暈し画像A、Bを生成し(S502)、分散σとαとの関係式を導出する(S503)。そして、目標分散σt（σ1≦σt≦σ2）を取得し(S504)、関係式により、目標分散σtに対応するαtを求める(S505)。そして、次式により、暈し画像AとBをアルファブレンドして目標分散σtに対応する暈し画像Dtを生成する(S506)。
Dt = αt×A + (1-αt)×B      …(5)
【００２６】
次に、CPU104は、暈し画像Dtを格納部103に格納する(S507)。
【００２７】
また、複数の目標分散σtをまとめて取得し(S504)、目標分散σtの一つに対応する暈し画像を生成し(S506)、生成した画像を格納部103に格納し(S507)、処理をステップS505に戻してもよい。こうすれば、暈し強度が異なる多数の暈し画像を連続して生成することが可能である。
【００２８】
［変形例］
目標分散σtの代わりに、例えば「暈し強度−最強」「暈し強度−強」「暈し強度−中」「暈し強度−弱」「暈し強度−微弱」のように、相対的な暈し強度を取得してもよい。この場合、CPU104は、相対的な暈し強度を分散σに置き換える。
【００２９】
暈し画像A、Bに対する第一の暈し強度（σ1）、第二の暈し強度（σ2）は15、225に限らず任意であるが、小さい分散σを用いる方が暈し画像A、Bを生成する処理負荷を低減することができる。また、二点の分散σ1、σ2の中間に相当する分散σmid、外挿に相当する分散σextを加えて、目標分散σtに近い分散に相当する二つの暈し画像をアルファブレンドすれば、暈し処理の精度を向上することができる。勿論、使用頻度が高い分散σにおける処理負荷を軽減するために、分散σ1、σ2、σmid、σextの何れかまたは全部を使用頻度が高い分散にすることができる。
【００３０】
ブラーフィルタはガウシアンフィルタに限らず、他のブラーフィルタ、例えばメディアンフィルタを用いてもよい。
【００３１】
分散σとαの関係式は画像の解像度に強く依存し、被写体や撮影条件の影響は小さい。そこで、例えば低解像度用、中解像度用、高解像度用などの関係式を予め用意して、ユーザの指示、または、画像データのヘッダに記録された解像度情報に従い、使用する関係式を選択してもよい。こうすれば、関係式の導出に関わる処理負荷を軽減することができる。
【００３２】
このように、暈し画像AとB、関係式、アルファブレンドにより、目標分散σ（または目標の暈し強度）に対応する暈し画像を暈し画像AとBから高速に生成することができる。従って、同一のオリジナル画像に対して暈し強度が異なる多数の画像を高速に生成するような場合に有用である。例えばCGなどにおいて、実写に近い映像をリアルタイムに生成することが可能になる。
【実施例２】
【００３３】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００３４】
［環境マッピング］
実施例2では、同一画像に対し、暈し強度が異なる画像を大量に生成する処理の一例として、CGにおける、光沢による映り込みの再現を説明する。CGにおいて光沢成分を表現する場合、環境マッピングを用いることが多い。環境マッピングは、オブジェクトを囲む立方体の内面（サーフェイス）に蛍光灯などの光源の画像（テクスチャ）を貼り付けておき、オブジェクトの表面における周囲環境の映り込みを再現する。
【００３５】
図6によりテクスチャの参照方法を説明する。まず、レンダリング対象のオブジェクト601（この例では画像が形成された記録紙）を立方体602の中央に配置する。そして、視点Eからオブジェクト601のレンダリング点Pにベクトルを延伸し、点Pから正反射方向にベクトルを延伸し、サーフェイスとの交点Qを得る。そして、点Qにおけるテクスチャの画素値を映り込みの演算に用いてブジェクト表面における映り込みを再現する。この場合、再現される映り込みは、テクスチャそのものであり、非常に鮮明な像が映り込みとして再現される。しかし、実世界において、映り込む像が鮮明であることは珍しく、多少なりとも暈けを伴う像が映り込む。
【００３６】
そこで、暈し処理により、テクスチャを予め暈す手法が用いられる。しかし、オブジェクトを構成する物質の違いにより暈し強度が異なるため、暈し強度が異なる暈し画像を大量に生成する必要がある。とくに、オブジェクトが印刷物の場合、記録紙に載った色材の量に応じてテクスチャの暈し強度が異なり、テクスチャとして相当数の暈し画像が必要になる。そこで、実施例1の暈し画像の生成方法を利用して、必要な暈し強度の画像をオンデマンドに生成する。
【００３７】
［テクスチャの生成］
図7のフローチャートによりオンデマンドに画像を暈してテクスチャを生成する処理を説明する。
【００３８】
CPU104は、表示部102にGUIを表示して、オブジェクトおよびテクスチャのユーザ指示を入力部101を介して取得する(S701)。そして、指示されたオブジェクトおよびテクスチャを例えば格納部103から読み込む(S702)。なお、この例のオブジェクトは、印刷物のプルーフ画像である。
【００３９】
次に、CPU104は、格納部103に格納されたオブジェクトの色情報から、最大値の分散σmax、最小値の分散σminを抽出する(S703)。オブジェクトの色情報には、オブジェクトの色に対応するσ値が記録されている。印刷物をプルーフする場合、オブジェクトの色情報は、出力画像データのデバイスCMYK値から変換された例えばsRGB値を例えば32刻みした9×9×9=729色に対応するσ値が記録されている。これらσ値は、記録紙に載った色材の量に応じたテクスチャの暈し強度を示し、これらσ値の中からσmaxとσminを抽出する。
【００４０】
次に、CPU104は、二つの分散σmin、σmaxのガウシアンフィルタをテクスチャに施して暈し画像A、Bを生成し(S704)、それら暈し画像をテクスチャとした立方体A、Bを生成する(S705)。また、暈し画像A、Bから分散σとαの関係式を導出する(S706)。
【００４１】
次に、CPU104は、画素単位にオブジェクトのレンダリングを開始して、オブジェクトの注目画素の画像データ（RGB値）を取得し(S707)、オブジェクトの色情報からRGB値に対応するσ値を補間演算する(S708)。そして、関係式によりσ値をαに変換し(S709)、αを用いて立法体Aのテクスチャと立方体Bのテクスチャをアルファブレンドした第三の暈し画像をテクスチャとする立方体Cを生成する(S710)。
【００４２】
これにより、注目画素のσ値の暈け強度をもつテクスチャをもつ立方体が高速に生成される。なお、立方体A、Bは予め生成されているので、レンダリング時は、アルファブレンドのみ実行すればよい。
【００４３】
次に、CPU104は、ランバート(Lambert)の拡散反射モデルなどを利用して、注目画素の拡散反射色を算出する(S711)。図8によりランバートの拡散反射モデルを説明する。図8に示すように、ランバートの拡散反射モデルは、オブジェクトの法線Nと光源の方向Lに基づき、オブジェクトの色を決定するモデルであり、次式で表される。
Cd = Ii×Kd×(↑N・↑L)}
= Ii×Kd×cosθ      …(6)
ここで、Cdはオブジェクトの拡散反射色、
Iiは入射光の強さ、
Kdは拡散反射率、
↑Nは正規化法線ベクトル、
↑Lは光源を指す正規化ベクトル。
【００４４】
なお、拡散反射率Kdは、注目画素の画像データ（RGB値）に基づきオブジェクトの色情報から取得する。
【００４５】
次に、CPU104は、立方体Cのサーフェイスにおける点Qのテクスチャの画素値を取得する(S712)。つまり、テクスチャの画素値を注目画素の鏡面反射色Crにする。そして、拡散反射色Cdと鏡面反射色Crから注目画素の色を決定する(S713)。そして、オブジェクトの全画素の色を決定したか否か、言い換えればレンダリングが終了したか否かを判定し(S714)、未了の場合は処理をステップS707に戻して、次の注目画素のレンダリングを行う。
【００４６】
レンダリング処理を終了すると、CPU104は、レンダリング結果を格納部103に格納して(S715)、処理を終了する。
【００４７】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
0005661381.tif 000002
【図２】
0005661381.tif 000003
【図４】
0005661381.tif 000004
【図５】
0005661381.tif 000005
【図６】
0005661381.tif 000006
【図７】
0005661381.tif 000007
【図８】
0005661381.tif 000008
【図３】
0005661381.tif 000009