(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
仮想空間中に配されている物体の情報、及び光源の情報を取得する第一取得手段と、
前記物体を観察するための観察条件を取得する第二取得手段と、
前記観察条件に基づいて前記物体を観察した際の、前記物体における前記光源の写り込みの状態を決定する第一決定手段と、
前記写り込みの状態に基づいて、前記物体を画像出力部により表示する際の順応白色点を決定する第二決定手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記第一決定手段は、
前記仮想空間中に配されている投影面において前記物体のレンダリング画像を形成するための領域をレンダリング画像領域とし、該レンダリング画像領域内の着目画素位置と、前記仮想空間中に設定されている視点の位置と、を通る直線を求め、該求めた直線と前記物体との交点位置を求める第１の計算手段と、
前記光源から照射され、前記交点位置で反射する反射光の方向ベクトルと、前記直線の方向ベクトルと、が為す角度を求める第２の計算手段と、
前記反射光の輝度スペクトルを求め、該求めた輝度スペクトルから三刺激値を計算する第３の計算手段と、
前記第１乃至３の計算手段による計算処理を、前記レンダリング画像領域内の各画素位置について行うことで、前記レンダリング画像領域内の各画素位置について前記角度と前記三刺激値とを求める手段と、
前記角度が０に最も近い画素位置を特定し、該特定した画素位置と、前記レンダリング画像領域内の各画素位置との距離を求め、前記レンダリング画像領域の対角線距離に対する該求めた距離の比を求める手段と
を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第二決定手段は、
前記レンダリング画像領域からの選択画素位置の白色点の三刺激値と、前記画像出力部の白色点の三刺激値と、基準となる白色点の三刺激値と、から、前記選択画素位置の部分順応白色点の三刺激値と、前記画像出力部の部分順応白色点の三刺激値と、を求める計算式に対して、前記画像出力部のデバイスプロファイルに含まれている前記画像出力部の白色点の三刺激値と、前記比の値に応じて決まる前記選択画素位置の白色点の三刺激値と、を与えて前記計算式を計算することで、前記選択画素位置の部分順応白色点の三刺激値と、前記画像出力部の部分順応白色点の三刺激値とを求める処理を行い、
前記比が０の場合には、完全拡散反射面の三刺激値に前記光源の分光放射輝度値を乗ずることで算出した三刺激値を、前記選択画素位置の白色点の三刺激値として前記計算式に与え、
前記比が１の場合には、前記選択画素位置における鏡面反射成分の輝度値と、完全拡散反射面の三刺激値の色度と同じ色度と、から成る三刺激値を、前記選択画素位置の白色点の三刺激値として前記計算式に与え、
前記比が０〜１の間の値である場合には、前記比が０の場合の三刺激値と、前記比が１の場合の三刺激値と、を該比に応じて合成した三刺激値を、前記選択画素位置の白色点の三刺激値として前記計算式に与える
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第一取得手段が、仮想空間中に配されている物体の情報、及び光源の情報を取得する工程と、
前記画像処理装置の第二取得手段が、前記物体を観察するための観察条件を取得する工程と、
前記画像処理装置の第一決定手段が、前記観察条件に基づいて前記物体を観察した際の、前記物体における前記光源の写り込みの状態を決定する工程と、
前記画像処理装置の第二決定手段が、前記写り込みの状態に基づいて、前記物体を画像出力部により表示する際の順応白色点を決定する工程と
を備えることを特徴とする画像処理方法。
【請求項５】
コンピュータを、請求項１乃至３の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の表示技術に関するものである。
【背景技術】
【０００２】
従来、物体の見え方をディスプレイ等の出力デバイスでシミュレーションする方法としては、三次元コンピュータグラフィックス（３D−CG）技術を用いて三次元形状を二次元画面上に擬似三次元表示する方法が知られている。３D−CG技術を用いることにより、物体を回転、拡大・縮小するなどして、様々な視点からの物体の見え方をシミュレーションすることが可能となる。
【０００３】
３D−CG技術では、三次元物体や光源といったオブジェクトに対して、反射率、放射輝度、屈折率、あるいは透過率といった光学情報を設定し、XYZ等の三刺激値に基づいて、表示すべき物理色を算出している。これにより、表示すべき物理色を高精度に算出することが出来るが、出力デバイスの色再現範囲に応じてなるべく忠実に再現できるよう圧縮する必要がある。
【０００４】
例えば、特許文献１には、二色性反射モデルを用いて拡散反射成分と鏡面反射成分の線形和で反射光のスペクトルを表す方法が開示されている。この方法では、拡散反射成分と鏡面反射成分のそれぞれに所定の定数あるいは関数を乗じることで、反射光スペクトルを出力デバイスの色再現範囲内に調整する。しかしこの方法は、人間の順応状態が考慮されていないため、シミュレーション結果が人間の主観的知覚に一致しない、という問題がある。
【０００５】
特許文献２には、レンダリング画像が人間の主観的知覚に一致する画像となるように、オブジェクト毎にアピアランスパラメータを設定し、人間の視覚の順応状態に基づいた良好な画像を生成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−００９５３７号公報
【特許文献２】特開２００８−１４６２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、人間の視覚特性はより輝度の高いものに順応するため、物体が光沢のある表面を持つものであった場合には、鏡面反射による光源の写り込みがある時とない時で、人間の視覚の順応状態が変化する。光源の写り込みがない場合は、拡散反射成分の最も輝度が高い点に順応しているが、映り込みがある場合は、より輝度の高い鏡面反射成分に順応しようとする。従来技術では、同一オブジェクトを観察する際に起こる経時的な順応状態の変化が考慮されていないため、実際の物体の見えと異なるという課題があった。
【０００８】
本発明は以上の問題に鑑みてなされたものであり、物体への光源の写り込みの状態を判定し、その判定結果に応じて算出した順応白色点を用いて出力画像を生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、画像処理装置であって、
仮想空間中に配されている物体の情報、及び光源の情報を取得する第一取得手段と、
前記物体を観察するための観察条件を取得する第二取得手段と、
前記観察条件に基づいて前記物体を観察した際の、前記物体における前記光源の写り込みの状態を決定する第一決定手段と、
前記写り込みの状態に基づいて、前記物体を画像出力部により表示する際の順応白色点を決定する第二決定手段と
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、物体への光源の写り込みの状態を判定し、その判定結果に応じて算出した順応白色点を用いて出力画像を生成する技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】画像処理装置１の機能構成例及びその周辺機器を示すブロック図。
【図２】画像処理装置１が行う処理のフローチャート。
【図３】仮想物体の一例を示す図。
【図４】BRDF特性を説明する図。
【図５】レンダリング画像を生成する際の仮想空間の一例を示す図。
【図６】BRDF特性が異なる場合の閾値ｍの違いの例を示す図。
【図７】画像出力装置２のデバイスプロファイルの一例を示す図。
【図８】画像処理装置８３の機能構成例及びその周辺機器を示すブロック図。
【図９】画像処理装置８３が行う処理のフローチャート。
【図１０】白色点の関係を概念的に示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１３】
［第１の実施形態］
先ず、本実施形態に係る画像処理装置１の機能構成例及びその周辺機器について、図１を用いて説明する。画像処理装置１には画像出力装置２及びメモリ３が接続されている。この画像出力装置２は本実施形態ではＣＲＴや液晶画面などの表示装置とするが、画像を出力可能な装置であれば、プリンタなど他の装置であっても良い。
【００１４】
メモリ３には、仮想空間の画像（仮想物体の画像）を生成するために必要な情報（仮想空間情報）や、画像出力装置２のデバイスプロファイル等が格納されている。仮想空間情報には、仮想空間中に配置する仮想物体に係る情報、仮想空間中に配置する視点に係る情報、仮想空間中に配置する光源に係る情報、等が含まれている。なお、これ以外の情報で、以下に説明する各処理で登場する様々な情報についてもこのメモリ３に格納されているものとする。
【００１５】
物体情報取得部１０１は、メモリ３から、仮想物体に係る情報（物体情報）を読み出す。光源情報取得部１０２は、メモリ３から、光源に係る情報を読み出す。観察情報取得部１０３は、メモリ３から、視点に係る情報（観察情報）を読み出す。
【００１６】
レンダリング画像生成部１０４は、物体情報取得部１０１が読み出した物体情報、光源情報取得部１０２が読み出した光源情報、観察情報取得部１０３が読み出した観察情報、を用いて、視点から見た仮想物体の画像をレンダリング画像として生成する。より詳しくは、光源から照射され、仮想物体の表面で反射し、視点の位置で受け取った光を、仮想空間中に設定した投影面上に投影することで、レンダリング画像を生成する。
【００１７】
光源写り込み領域判定部１０５は、レンダリング画像を構成する各画素（投影面上の各画素位置）の鏡面反射成分を判定し、割合＝（鏡面反射成分の値が０でない画素の数）／（レンダリング画像を構成する全ての画素の数）を求める。
【００１８】
順応白色点算出部１０６は、画像出力装置２の白色点の三刺激値と、上記割合に応じて決まる仮想物体の白色点の三刺激値と、基準としての白色点の三刺激値と、を用いて、画像出力装置２の順応白色点の三刺激値、仮想物体の順応白色点の三刺激値を求める。
【００１９】
色変換部１０７は、順応白色点算出部１０６が求めた順応白色点を用いて、レンダリング画像生成部１０４が生成したレンダリング画像を構成する各画素のＲＧＢ値（デバイス値）を確定させる。画像出力部１０８は、色変換部１０７により各画素のＲＧＢ値が確定されたレンダリング画像を、画像出力装置２に対して出力する。
【００２０】
次に、画像処理装置１が１枚のレンダリング画像を生成して画像出力装置２に出力するために行う処理について、同処理のフローチャートを示す図２を用いて説明する。然るに、複数フレーム分のレンダリング画像を画像出力装置２に出力する場合は、図２のフローチャートに従った処理を、それぞれのフレームについて行うことになる。
【００２１】
先ず、ステップＳ１では、物体情報取得部１０１は、メモリ３から上記の物体情報を取得する。本実施形態では仮想物体は図３に示す如く、多数の多角形（面）で構成されているものとするので、この物体情報には多角形毎に、多角形の色情報、多角形を構成する各頂点の位置情報、多角形の法線ベクトル情報、多角形の反射特性情報、等が含まれている。また、物体情報には、この仮想物体の仮想空間中における配置位置、姿勢を示す位置姿勢情報も含まれている。このような物体情報は予めCADソフト等で作成され、メモリ３に格納されている。
【００２２】
ここで、反射特性情報とは、多角形におけるBRDF（Bidirectional Reflectance Distribution Function）特性の測定データであり、あらかじめ測定されているものとする。BRDF特性とは、図４に示す如く、反射表面４０１上のある地点に対して、光源４０２からある方向から光が入射したときに、それぞれの方向へどれだけの光が反射されるかを表す、反射地点に固有の関数である。
【００２３】
次に、ステップＳ２では、光源情報取得部１０２は、メモリ３から上記の光源情報を取得する。この光源情報には、光源の仮想空間中における配置位置、姿勢を示す情報や、光源の分光放射輝度情報φ(λ)が含まれている（λは光の波長を表す）。なお、光源の分光放射輝度情報φ(λ)とは、λ:380〜780nmの波長ごとの放射輝度情報を表す。なお、光源情報にはこのほかにも、光源から照射される光の色など、光源に係る他の情報を含めても良い。
【００２４】
次に、ステップＳ３では、観察情報取得部１０３は、メモリ３から上記の観察情報を取得する。この観察情報には、仮想空間を観察する視点の位置、姿勢を示す位置姿勢情報や、焦点距離や画角などの観察パラメータが含まれている。
【００２５】
次に、ステップＳ４では、レンダリング画像生成部１０４は、物体情報取得部１０１が取得した物体情報、光源情報取得部１０２が取得した光源情報、観察情報取得部１０３が取得した観察情報を用いて、仮想物体のレンダリング画像を生成する。なお、ステップＳ４における処理の詳細については後述する。
【００２６】
次に、ステップＳ５では、光源写り込み領域判定部１０５は、ステップＳ４で生成したレンダリング画像を構成する各画素（投影面上の各画素位置）の鏡面反射成分を判定し、上記割合を求める。ステップＳ５における処理の詳細については後述する。
【００２７】
ステップＳ６で順応白色点算出部１０６は、画像出力装置２の白色点の三刺激値、上記割合に応じた仮想物体の白色点の三刺激値、基準としての白色点の三刺激値、を用いて、画像出力装置２の順応白色点の三刺激値、仮想物体の順応白色点の三刺激値を求める。
【００２８】
次に、ステップＳ７では、色変換部１０７は、レンダリング画像から未だ選択していない画素を１つ選択する。そしてステップＳ８では、色変換部１０７は、順応白色点算出部１０６が求めた順応白色点を用いて、ステップＳ７で選択した画素のＲＧＢ値を確定させる。そして、ステップＳ７でレンダリング画像中の全ての画素を選択したのであれば処理はステップＳ９を介してステップＳ１０に進み、ステップＳ７で未だ選択していない画素があれば、処理はステップＳ９を介してステップＳ７に戻る。ステップＳ１０では、画像出力部１０８は、色変換部１０７により全ての画素のＲＧＢ値が確定したレンダリング画像を、画像出力装置２に対して出力する。
【００２９】
＜レンダリング画像生成部１０４が行う処理（ステップＳ４）について＞
仮想物体のレンダリング画像を生成するためには、図５に示す如く、仮想空間中に視点５２、投影面５１、仮想物体５４、光源５３を配置する必要がある。ここではレンダリング画像を生成するための方法として、周知のレイトレーシング法を用いる場合について説明する。
【００３０】
先ず、投影面５１上の画素位置Ｐにおける画素値（ＲＧＢ値）を決定するためには、視点５２の位置と画素位置Ｐとを通る直線Ｖを求め、この直線Ｖが仮想物体５４と交差するのであればその交差点（交点）でこの直線Ｖを反射させる。このように仮想物体との交差があればその交差点で反射させる処理を、反射した直線が光源５３と交差するまで行う。そしてそれぞれの交差点における画素値を用いて、画素位置Ｐにおける画素値を決定する。そしてこのような画素値を求める処理を、投影面５１上の各画素位置について行うことで、投影面５１上の各画素位置における画素値が決定する。
【００３１】
ここで、直線Ｖは仮想物体５４と交差しているが、実際に直線Ｖと交差しているのは、仮想物体５４を構成する何れかの多角形である。図５では、直線Ｖは多角形５９と交差している。なお、多角形５９のサイズを極限まで小さくすれば、この多角形５９は直線Ｖと仮想物体５４との交点（交点位置）となる。
【００３２】
多角形５９の法線ベクトルｎと、光源５３からの光線の方向ベクトルＬと、が為す角（入射角）をθとすると、この光線の多角形５９における鏡面反射光の方向ベクトルＳと、法線ベクトルｎとが為す角（反射角）もまたθとなる。また、直線Ｖの方向ベクトルと鏡面反射光の方向ベクトルＳとは、角度（ずれ角）ρだけずれている。
【００３３】
然るにレンダリング画像生成部１０４は図５の場合、画素位置Ｐについて直線Ｖを求めると、この直線Ｖと仮想物体５４とが交差している多角形５９を特定する（第１の計算）。そして特定した多角形５９について上記のずれ角ρと反射角θとを求める（第２の計算）。また、上記の通り、多角形毎に反射特性情報が定義されている。従って、上記処理によれば、画素位置Ｐについて、ずれ角ρ、反射角θ、反射特性情報が得られることになる。これは他の画素位置についても同じである。
【００３４】
次にレンダリング画像生成部１０４は、画素位置Ｐについて得た反射角θとずれ角ρとを用いて、多角形５９における反射光の輝度スペクトルI（λ,θ,ρ）を求める。そしてレンダリング画像生成部１０４は、この反射光の輝度スペクトルI（λ,θ,ρ）を用いて、以下の式を計算することで、CIE-XYZ表色系における三刺激値XYZを算出する（第３の計算）。
【００３５】
【数１】
0005615041.tif 000002
【００３６】
ここで、x(λ)、y(λ)、z(λ)は等色関数である。また、kは照明する光の明るさに比例する量である。このように、この式で表される三刺激値X、Y、Zは、観察される反射光の輝度スペクトルI（λ,θ,ρ）にそれぞれ等色関数x(λ)、y(λ)、z(λ)を乗じ、可視光の波長域（380nm〜780nm）で積分して求められる。係る式に従えば、刺激値Yの値は正規化されて0〜1の値を取り得るが、本実施形態ではｋ＝１として刺激値Yを表す。したがって、刺激値Yの値は、光源の分光放射輝度φ(λ)の強度に依存する。この三刺激値ＸＹＺは画素位置Ｐについて求めたものでもある。
【００３７】
然るに、レンダリング画像生成部１０４は、投影面上の各画素位置について上記の計算処理（第１乃至３の計算）を行うことで、各画素位置について、ずれ角ρ、反射角θ、三刺激値ＸＹＺ、反射特性情報、のセットが得られることになる。
【００３８】
＜光源写り込み領域判定部１０５が行う処理（ステップＳ５）について＞
レンダリング画像において、光源の写り込みを判定する際には、投影面上の各画素位置における反射特性情報と、ずれ角ρと、を用いる。着目画素位置におけるずれ角ρが、着目画素位置の反射特性情報に基づいて決まる閾値ｍより大きい場合、着目画素位置における画素の鏡面反射成分を０とみなすことが出来る。ここで、この閾値ｍはBRDF特性に応じて決定され、鏡面反射成分が０になる最小のずれ角が閾値ｍとなる。図６にBRDF特性が異なる場合の閾値ｍの違いの例を示す。図６（ａ）は写像性の高いＢＲＤＦ特性を示しており、図６（ｂ）は写像性の低いＢＲＤＦ特性を示している。
【００３９】
そして光源写り込み領域判定部１０５は、投影面上の各画素位置について鏡面反射成分が０と見なせるか否かを判定する。そして光源写り込み領域判定部１０５は、（鏡面反射成分が０と見なせない画素の数＝閾値以下の角度を求めた画素の数）を計数する。そして光源写り込み領域判定部１０５は、この計数した画素数を、（投影面上の全画素数）で割った値を上記割合として求める。当然ながらこの割合は０〜１の間の値を取ることになる。
【００４０】
＜順応白色点算出部１０６が行う処理（ステップＳ６）について＞
本実施形態では、部分順応白色点の三刺激値を求める為に、仮想物体及び画像出力装置２の白色点の三刺激値と、基準となる白色点の三刺激値と、から、仮想物体及び画像出力装置２の部分順応白色点の三刺激値を求める計算式を、部分順応モデルとして用いる。この部分順応モデルについての詳細な説明は後述する。
【００４１】
そして本実施形態では順応白色点算出部１０６は、画像出力装置２の白色点の三刺激値と、上記割合の値に応じて決まる仮想物体の白色点の三刺激値と、を上記部分順応モデルに与えてこの部分順応モデルを計算する。係る演算により、仮想物体の部分順応白色点の三刺激値と、画像出力装置２の部分順応白色点の三刺激値とを求める。
【００４２】
ここで、画像出力装置２の白色点の三刺激値は、メモリ３内に保持されている画像出力装置２のデバイスプロファイルに含まれている。また、基準となる白色点の三刺激値は、色温度が8500Kの黒体放射軌跡上の点を用い、これもまたメモリ３内に情報として格納されている。なお、等エネルギー白色等、他の白色点の三刺激値を、基準となる白色点の三刺激値として用いてもよい。
【００４３】
ここで上記の通り、順応白色点算出部１０６は、部分順応モデルに与える仮想物体の白色点の三刺激値を、光源写り込み領域判定部１０５が求めた割合に応じて決めるのであるが、以下に、係る決定の方法について説明する。
【００４４】
順応白色点算出部１０６は、上記割合が０の場合（若しくは充分に０に近い場合）、完全拡散反射面に光源の分光放射輝度値φ(λ)を掛け合わせて算出した三刺激値を、仮想物体の白色点の三刺激値として部分順応モデルに与える。なお、上記割合が０の場合に部分順応モデルに与える三刺激値についてはこれ以外にも考えられ、例えば、投影面上の各画素位置における拡散反射成分を参照し、最も輝度の高い画素位置における三刺激値を、仮想物体の白色点の三刺激値としても良い。
【００４５】
順応白色点算出部１０６は、上記割合が１の場合（若しくは充分に１に近い場合）、レンダリング画像内で最も強度が高い鏡面反射成分の輝度値Ｙを仮想物体の白色点の輝度値とする。なお、仮想物体の白色点の色度は、完全拡散反射面の三刺激値の色度と同じ色度とする。
【００４６】
順応白色点算出部１０６は、上記割合が０〜１の場合、上記割合が０の場合に部分順応モデルに与えるものとして説明した三刺激値と、上記割合が１の場合に部分順応モデルに与えるものとして説明した三刺激値と、を上記割合の値に応じて合成する。例えば、上記割合がｒ（０＜ｒ＜１）であるとする。この場合、上記割合が０の場合に部分順応モデルに与えるものとして説明した三刺激値に（１−ｒ）を乗じた三刺激値と、上記割合が１の場合に部分順応モデルに与えるものとして説明した三刺激値にｒを乗じた三刺激値と、を加算した結果を求める。そして順応白色点算出部１０６は、この加算結果（合成結果）を、仮想物体の白色点の三刺激値として部分順応モデルに与える。
【００４７】
これにより、順応白色点算出部１０６は、画像出力装置２の白色点、光源の分光放射輝度、仮想物体のBRDF特性、を考慮して、仮想物体の部分順応白色点の三刺激値と、画像出力装置２の部分順応白色点の三刺激値と、を求めることができる。
【００４８】
＜色変換部１０７が行う処理（ステップＳ８）について＞
先ず色変換部１０７は、メモリ３に格納されている画像出力装置２のデバイスプロファイル内に記述されている各格子点の三刺激値ＸＹＺを読み出す。図７に画像出力装置２のデバイスプロファイルの一例を示す。図７に示す如く、デバイスプロファイルには、ＲＧＢ色空間中における各格子点に対応する三刺激値ＸＹＺが記述されている。
【００４９】
そして色変換部１０７は、ステップＳ６で求めた「画像出力装置２の部分順応白色点の三刺激値」を用いて、デバイスプロファイルから読み出した各格子点の三刺激値ＸＹＺに対してCIECAM02色順応変換を行う。これにより、各格子点の三刺激値ＸＹＺをＪＣｈ値に変換する。そして色変換部１０７は、各格子点のＪｃｈ値を参照して、最外郭の格子点を特定し、画像出力装置２の色再現範囲を求める。
【００５０】
次に色変換部１０７は、ステップＳ６で求めた「仮想物体の部分順応白色点の三刺激値」を用いて、投影面上の各画素位置について得た三刺激値ＸＹＺに対してCIECAM02色順応変換を行う。これにより、投影面上の各画素位置について得た三刺激値ＸＹＺをＪｃｈ値に変換する。なお、本実施形態では色順応変換にCIECAM02を用いているが、VonKriesの色順応式等、他の色順応変換を用いても良い。
【００５１】
次に色変換部１０７は、投影面上の各画素位置について求めたＪｃｈ値を、上記色再現範囲内に色圧縮（カラリメトリック色域圧縮）を行う。色域圧縮処理は、色再現範囲外の色を色再現範囲内の色に変換するために行う。カラリメトリック色域圧縮では、色再現範囲内の色はそのまま保ち、色再現範囲外の色は色再現範囲の最も近い点に圧縮する手法である。なお、色圧縮には様々なものがあり、カラリメトリック以外の色圧縮を用いても良い。
【００５２】
そして色変換部１０７は、ステップＳ６で求めた「仮想物体の部分順応白色点の三刺激値」を用いて、色圧縮済みのＪｃｈ値に対してCIECAM02色順応逆変換を行う。これにより、投影面上の各画素位置についてＪｃｈ値から三刺激値ＸＹＺに変換することができる。次に色変換部１０７は、画像出力装置２のデバイスプロファイルに記述されている、「三刺激値ＸＹＺとＲＧＢ値との対応情報」を用いて、この三刺激値ＸＹＺをＲＧＢ値に変換する。これにより、投影面上の各画素位置について三刺激値ＸＹＺをＲＧＢ値に変換することができる。デバイスプロファイルにない三刺激値ＸＹＺをＲＧＢ値に変換する場合には、この三刺激値ＸＹＺの周囲の格子点の三刺激値ＸＹＺから、四面体補間等の補間処理を用いてＲＧＢ値を求める。
【００５３】
以上の処理により、投影面上の各画素位置に対するＲＧＢ値を確定させることができるので、投影面上に、ＲＧＢ値を有する画素で構成されているレンダリング画像を形成することができる。
【００５４】
＜順応モデルについて＞
図１０は、白色点の関係を概念的に示す図である。人間の視覚系はモニタの観察時も、仮想物体の観察時も光源の色を完全に補正することはできない。それ故、不完全順応を補正する必要がある。不完全順応を正確に補正するには、人間の視覚系が最も白いと感じる白色を（図１０に△印で示す）基準白色として用いるべきである。そこで、上記の通り、色温度8500Kの黒体放射軌跡上の点を基準としての白色点として用いる。これは、モニタに白色を表示して白色の色温度を変化させた場合に被験者が最も好ましいと感じた白色の実験結果に基づく。勿論、基準白色は、この白色点に限られるわけではなく、異なる白色点、例えば等エネルギ白色よりも高い色温度をもつ、昼光軌跡上の白色点を設定してもよい。
【００５５】
順応モデルを用いた計算では、画像出力装置２の白色点（以下、モニタ白色点）の色度uWm, vWmと、仮想物体の白色点（以下、仮想物体白色点）の色度uWp, vWpを以下の式（１）によって計算する。
【００５６】
uWi = 4・XWi／(XWi + 15・YWi + 3・ZWi)
vWi = 6・YWi／(XWi + 15・YWi + 3・ZWi)      …(1)
ここで、i = m, p
XWmYWmZWmはモニタ白色点の三刺激値
XWpYWpZWpは仮想物体白色点の三刺激値
次に、モニタ白色点の色度に対応するモニタ白色点の色温度TWmと、仮想物体白色点の色度に対応する仮想物体白色点の色温度TWpを、例えば、メモリ３が記憶する色度-色温度テーブルから取得する。
【００５７】
次に、不完全順応補正用の、モニタ白色点の色温度T'Wmと、仮想物体白色点の色温度T'Wpを、以下の式(2)によって算出する。なお、基準白色点の色温度TWrは、上述したように8500Kである。
【００５８】
1／T'Wm = {kinc_m・1／TWm} + {(1 - kinc_m)・1／TWr}
1／T'Wp = {kinc_p・1／TWp} + {(1 - kinc_p)・1／TWr}      …(2)
ここで、kinc_iは不完全順応係数
0 ≦ kinc_i ≦1
なお、不完全順応係数は、ユーザが設定した値を利用するが、関数などを利用して自動的に算出することもできる。また、上記の計算に色温度の逆数を用いるのは、色温度の差は人間の知覚する色差に対応しないが、色温度の逆数は人間の知覚に対してほぼ均等になるからである。
【００５９】
式(2)よって求めた色温度の白色点を利用すれば、不完全順応を正確に補正し、画像出力装置２や仮想物体を単独に観察する場合の色の見えを正確に予測することができる。ただし、画像出力装置２と仮想物体を同時に観察する場合は、単独に観察する場合と順応状態が異なり、画像出力装置２を観察する場合は仮想物体白色点の影響を、仮想物体を観察する場合はモニタ白色点の影響を受けると考えられる。
【００６０】
そこで、部分順応を考慮して部分順応補正用の、モニタ白色点の色温度T”Wmと、仮想物体白色点の色温度T”Wpを、以下の式(3)によって計算する。
【００６１】
1／T”Wm = (Km・L*m・1／T'Wm - Km'・L*p・1／T'Wp)／(Km・L*m + Km'・L*p)
1／T”Wp = (Kp・L*p・1／T'Wp - Kp'・L*m・1／T'Wm)／(Kp・L*p + Kp'・L*m) …(3)
ここで、Ki = kmix_iは部分順応係数
Ki' = 1 - Ki
0 ≦ Ki ≦ 1
L*iは白色点の輝度による重み係数
なお、部分順応係数は、ユーザが設定した値を利用するが、関数などを利用して自動的に算出することもできる。また、重み係数L*iは、白色点の輝度が高い方に、より順応するという考えから式(4)によって算出する。
【００６２】
YWm ≦ YWp の場合 L*m = 116.0×(YWm／YWp)1／3 - 16.0
else            L*m = 100
YWp ≦ YWm の場合 L*m = 116.0×(YWp／YWm)1／3 - 16.0      …(4)
else            L*p = 100
次に、前述した色度-色温度テーブルよって、部分順応補正用のモニタ白色点の色温度に対応する色度u”Wm, v”Wmと、部分順応補正用の仮想物体白色点の色温度に対応する色度u”Wp, v”Wpを逆算する。そして、部分順応補正用のモニタ白色点の三刺激値X”WmY”WmZ”Wmを、以下の式(5)によって算出する。
【００６３】
YWm ≦ YWp の場合 Y”Wm = {(L*”Wm + 16.0)／116.0}3・YWp
else            Y”Wm = YWm
X”Wm  = (3.0／2.0)・(u”Wm／v”Wm)・Y”Wm                    …(5)
Z”Wm  = (4.0・X”Wm／u”Wm - X”Wm - 15.0・Y”Wm)／3.0
ここで、L*”Wm = L*m・km + 100.0(1-km)
また、部分順応補正用の仮想物体白色点の三刺激値X”WpY”WpZ”Wpを式(6)によって算出する。
【００６４】
YWp ≦ YWm の場合 Y”Wp = {(L*”Wp + 16.0)／116.0}3・YWm
else            Y”Wp = YWp
X”Wp  = (3.0／2.0)・(u”Wp／v”Wp)・Y”Wp                    …(6)
Z”Wp  = (4.0・X”Wp／u”Wp - X”Wp - 15.0・Y”Wp)／3.0
ここで、L*”Wp = L*p・kp + 100.0(1-kp)
以上の説明により、本実施形態によれば、光源の写り込み領域の面積に応じた最適な順応白色点を用いて色変換を行なうことで、実際の物体の見えをより忠実に再現することができる。
【００６５】
［第２の実施形態］
第１の実施形態では、（投影面上の総画素数）に対する（鏡面反射成分が０と見なせない画素の数）の割合、即ち、光源写り込み領域の面積に応じて順応白色点を算出した。本実施形態では、レンダリング画像上の各画素位置について、光源の中心点の写り込みからの距離に応じて順応白色点を算出する。
【００６６】
先ず、本実施形態に係る画像処理装置８３の機能構成例とその周辺機器について、図８を用いて説明する。図８において図１と同じ部分については同じ参照番号を付しており、その説明は省略する。
【００６７】
光源中心写り込み位置判定部８１５は、投影面上のレンダリング画像を形成する為の領域（レンダリング画像領域）内の各画素位置について、光源の中心点の写り込み位置からの距離を判定する。順応白色点算出部８１６は、光源中心写り込み位置判定部８１５による判定結果に応じて、レンダリング画像領域内の各画素に対する順応白色点を算出する。
【００６８】
次に、画像処理装置８３が１フレーム分のレンダリング画像を生成するために行う処理について、同処理のフローチャートを示す図９を用いて説明する。然るに、複数フレーム分のレンダリング画像を画像出力装置２に出力する場合は、図８のフローチャートに従った処理を、それぞれのフレームについて行うことになる。
【００６９】
ステップＳ９０１〜ステップＳ９０４の各ステップにおける処理はそれぞれ、上記のステップＳ１〜ステップＳ４の各ステップにおける処理と同様であるため、その説明は省略する。なお、ステップＳ９０１〜ステップＳ９０４はステップＳ１〜ステップＳ４と同様であるものの、以下の処理において不要となる情報を求める処理は省略することができる。
【００７０】
ステップＳ９０５では、光源中心写り込み位置判定部８１５は、レンダリング画像領域内の画素群から、未だ選択していない画素を１つ選択する。そしてステップＳ９０６では、光源中心写り込み位置判定部８１５は、投影面上の光源の中心点の写り込み位置を求め、求めた位置からステップＳ９０５で選択した画素（選択画素）の位置（選択画素位置）までの距離を求める。本ステップにおける処理の詳細については後述する。
【００７１】
次に、ステップＳ９０７では順応白色点算出部８１６は、次の処理を行う。選択画素についてステップＳ９０６で求めた距離に基づいて、画像出力装置２の白色点の三刺激値、仮想物体の白色点の三刺激値、基準としての白色点の三刺激値を用いて、画像出力装置２の順応白色点の三刺激値、選択画素の順応白色点の三刺激値を求める。
【００７２】
ステップＳ９０８では色変換部１０７は、順応白色点算出部８１６が求めた順応白色点を用いて、選択画素のＲＧＢ値を確定させる。ステップＳ９０８における処理は、画素単位で色変換処理を行う点を除けば、上記のステップＳ８と同じ処理である。
【００７３】
ステップＳ９０５でレンダリング画像領域内の全ての画素を選択したのであれば処理はステップＳ９０９を介してステップＳ９１０に進み、ステップＳ９０５で未だ選択していない画素があれば、処理はステップＳ９０９を介してステップＳ９０５に戻る。ステップＳ９１０では、画像出力部１０８は、色変換部１０７により全ての画素のＲＧＢ値が確定したレンダリング画像を、画像出力装置２に対して出力する。
【００７４】
＜光源中心写り込み位置判定部８１５が行う処理（ステップＳ９０６）について＞
光源中心写り込み位置判定部８１５は投影面上の各画素位置のうち光源の中心点からの光線の方向ベクトルＬに対する鏡面反射光の方向ベクトルＳと視点５２からの直線Ｖの方向が平行（ずれ角ρが最も０に近い）となる画素位置Ｃを特定する。即ちこの画素位置Ｃを「光源中心写り込み位置」として特定する。この画素位置Ｃの特定処理では、投影面のサイズはレンダリング画像のサイズよりも充分に大きく設けておく。
【００７５】
次に光源中心写り込み位置判定部８１５は、画素位置Ｃと選択画素の位置との間の距離を求める。そして次に光源中心写り込み位置判定部８１５は、この求めた距離を分子、レンダリング画像領域の対角線距離を分母とする分数の値を計算する。なお、分母はこれに限定するものではない。
【００７６】
そして光源中心写り込み位置判定部８１５は、求めた分数の値が１よりも大きい場合には判定結果として０を出力し、求めた分数の値が１の場合には判定結果として０を出力し、求めた分数の値が０の場合には判定結果として１を出力する。また、求めた分数の値がｒ（０＜ｒ＜１）の場合には判定結果として（１−ｒ）を出力する。
【００７７】
＜順応白色点算出部８１６が行う処理（ステップＳ９０７）について＞
第１の実施形態では、レンダリング画像に対して判定結果は一意に決まっていたため部分順応白色点は固定であった。本実施形態では、レンダリング画像の画素毎に判定結果が異なるため、部分順応白色点も画素毎に異なる。
【００７８】
部分順応モデルに入力する仮想物体の白色点の三刺激値は以下のようにして決める。先ず、光源中心写り込み位置判定部８１５による判定結果が１の場合、画素位置Ｃにおける鏡面反射光Sの輝度値Yを仮想物体の白色点の輝度値とする。また、仮想物体の白色点の色度は、完全拡散反射面の三刺激値の色度と同じ色度とする。
【００７９】
光源中心写り込み位置判定部８１５による判定結果が０の場合、完全拡散反射面に光源の分光放射輝度φ(λ)を掛け合わせて算出した三刺激値を、選択画素の白色点の三刺激値として部分順応モデルに与える。
【００８０】
光源中心写り込み位置判定部８１５による判定結果が０〜１の場合、第１の実施形態と同様、上記判定結果が０の場合の三刺激値と、上記判定結果が１の場合の三刺激値と、を上記判定結果の値に応じて合成する。例えば、上記判定結果がｆ（０＜ｆ＜１）であるとする。この場合、上記判定結果が０の場合の三刺激値に（１−ｆ）を乗じた三刺激値と、上記判定結果が１の場合の三刺激値にｆを乗じた三刺激値と、を加算した結果を求める。そして順応白色点算出部８１６は、この加算結果（合成結果）を、選択画素の白色点の三刺激値として部分順応モデルに与える。
【００８１】
以上の説明により、本実施形態によれば、光源中心の写り込み位置からの距離に応じた最適な順応白色点を用いて色変換を行なうことで、実際の物体の見えをより忠実に再現することが可能となる。
【００８２】
［第３の実施形態］
第１の実施形態では図１に示した画像処理装置１を構成する各部は何れもハードウェアで構成されているものとして説明したし、第２の実施形態では図８に示した画像処理装置８３を構成する各部は何れもハードウェアで構成されているものとして説明した。しかし、これら各部の一部若しくは全部をソフトウェア（コンピュータプログラム）で構成しても良い。
【００８３】
図１，８に示した画像処理装置１（８３）を構成する各部をソフトウェアで構成する場合、このソフトウェアは、ＣＰＵ等の実行部、ＲＡＭ、ＲＯＭ、ハードディスク等のメモリを有するコンピュータにより実行されることになる。この場合、このソフトウェアは、このメモリに格納され、この実行部により実行されることになる。もちろん、このソフトウェアを実行するコンピュータの構成については特に限定するものではない。
【００８４】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005615041.tif 000003
【図２】
0005615041.tif 000004
【図３】
0005615041.tif 000005
【図４】
0005615041.tif 000006
【図５】
0005615041.tif 000007
【図６】
0005615041.tif 000008
【図７】
0005615041.tif 000009
【図８】
0005615041.tif 000010
【図９】
0005615041.tif 000011
【図１０】
0005615041.tif 000012