JP2019102058A - 画像処理装置、画像処理方法及びプログラム - Google Patents
画像処理装置、画像処理方法及びプログラム Download PDFInfo
- Publication number
- JP2019102058A JP2019102058A JP2018148510A JP2018148510A JP2019102058A JP 2019102058 A JP2019102058 A JP 2019102058A JP 2018148510 A JP2018148510 A JP 2018148510A JP 2018148510 A JP2018148510 A JP 2018148510A JP 2019102058 A JP2019102058 A JP 2019102058A
- Authority
- JP
- Japan
- Prior art keywords
- image
- data
- image processing
- flakes
- flake
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
【課題】 物体への塗装を行う前であっても、塗装後に生じる光輝感を疑似的に表現するための画像処理を提供することを目的とする。【解決手段】 フレークを複数含む塗料を用いた塗装を物体に対して行う場合の、前記フレークにおける光の反射によって生じる輝点を含む画像を表す画像データを生成する画像処理装置であって、前記塗料に関する情報を取得する取得手段と、前記情報に基づいて、前記輝点を含む画像を表す画像データを生成する生成手段と、を有することを特徴とする画像処理装置。【選択図】 図8
Description
本発明は、光輝感を表現するための画像処理技術に関する。
工業デザインの分野においては、塗装や加飾加工を施すことによって製品の表面に質感を付与したり、製品に付与する質感をCG(コンピュータグラフィックス)によって表示したりすることが多くなっている。特に、製品に高級感を与えるために、照明の位置や観察角度の変化に応じて、微小な輝点の位置がきらきらと変化する特性を表面に付与することがある。以下、微小な輝点の位置がきらきらと変化する特性によって生じる感覚を光輝感と呼ぶ。特許文献1においては、輝点の大きさや数を表す情報に基づいて、光輝感を疑似的に表現するための構造体を記録媒体上に形成する技術を開示している。
特許文献1が開示する技術においては、輝点の大きさや数を表す情報に基づいて光輝感を表現する。しかし、輝点の大きさや数は、物体への塗装を行った後にその物体を観察することによって得られる情報である。したがって、塗装後に生じる光輝感を疑似的に表現することしかできないという課題がある。
本発明は、上記課題に鑑みてなされたものであり、物体への塗装を行う前であっても、塗装後に生じる光輝感を疑似的に表現するための画像処理を提供することを目的とする。
上記課題を解決するために、本発明に係る画像処理装置は、フレークを複数含む塗料を用いた塗装を物体に対して行う場合の、前記フレークにおける光の反射によって生じる輝点を含む画像を表す画像データを生成する画像処理装置であって、前記塗料に関する情報を取得する取得手段と、前記情報に基づいて、前記輝点を含む画像を表す画像データを生成する生成手段と、を有することを特徴とする。
本発明によれば、物体への塗装を行う前であっても、塗装後に生じる光輝感を疑似的に表現することができる。
以下、本発明の実施形態を図面を参照して詳細に説明する。尚、以下の実施形態は本発明を必ずしも限定するものではない。また、以下の実施形態において説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、同一の構成については、同一の符号を付して説明する。
[第1実施形態]
<光輝感を表現する方法>
図1は、塗装によって形成される塗料の層の一例を示す図である。図1に示す塗料の層は、色を付与するための発色層と、光沢を付与するためのクリア層と、光輝感を表現するためのメタリック層と、を有する。メタリック層は、アルミなどの金属の薄いかけら(フレーク)を複数含んでいる。フレークはメタリック層においてさまざまな方向を向いているため、観察位置に応じてフレークにおいて鏡面反射(正反射)した光が視認される位置が変化する。この特性によって観察者は、塗装された物体がきらきらと光っているという感覚(光輝感)を得ることができる。尚、上述した塗装は、例えば、車体に対するスプレー塗装や、メタリックインクを塗料として用いるプリンタによる塗装などがある。
<光輝感を表現する方法>
図1は、塗装によって形成される塗料の層の一例を示す図である。図1に示す塗料の層は、色を付与するための発色層と、光沢を付与するためのクリア層と、光輝感を表現するためのメタリック層と、を有する。メタリック層は、アルミなどの金属の薄いかけら(フレーク)を複数含んでいる。フレークはメタリック層においてさまざまな方向を向いているため、観察位置に応じてフレークにおいて鏡面反射(正反射)した光が視認される位置が変化する。この特性によって観察者は、塗装された物体がきらきらと光っているという感覚(光輝感)を得ることができる。尚、上述した塗装は、例えば、車体に対するスプレー塗装や、メタリックインクを塗料として用いるプリンタによる塗装などがある。
メタリック層に含まれるフレークの向きは、層の厚みとフレークのサイズとによって制限される。図3は、フレークサイズごとの塗膜の層構造を示す図である。図3(a)はメタリック層の厚みに対してフレークサイズが小さい場合を示しており、図3(b)はメタリック層の厚みに対してフレークサイズが大きい場合を示している。図3(a)のようにフレークサイズが層の厚みに対して小さい場合は、フレークは自由にさまざまな方向を向くことができる。一方、図3(b)のようにフレークサイズが層の厚みに対して大きい場合は、層の厚みによってフレークの向きは制限される。この観点に基づいて、本実施形態においては、メタリック層の厚みとフレークサイズとを表す情報を用いた処理によって、光輝感を表現するためのデータを生成する。具体的には、メタリック層の厚みとフレークサイズの度数分布とを表す情報に基づいてフレークの表面に対する法線の方向を算出し、算出された法線方向に基づいて所定の幾何条件において鏡面反射する方向を特定する。図4は、塗膜を構成するメタリック層に関するパラメータを説明するための図である。図4(a)に示すメタリック層の厚みDとフレークサイズSとを用いて、フレークの表面に対する法線nfを算出する。ただし、層の中にはサイズが異なる複数のフレークが含まれているため、フレークサイズSとフレークサイズSごとのフレークの量とを両方得るために、図4(b)に示すフレークサイズの度数分布F(S)を法線nfの算出に用いる。尚、本実施形態におけるフレークは、円盤状のフレークであり、フレークのサイズは円の直径とする。
上述したメタリック層の厚みとフレークサイズの度数分布とを表す情報を用いた処理によって、幾何条件ごとに輝点の大きさや輝点の数などのパラメータを入力することなく、光輝感の表現が可能となる。このため、ユーザは、塗装を行う前か後かに関わらず、塗膜の厚みと塗装に用いる塗料に含まれるフレークサイズとを入力することによって、塗装後に生じる光輝感を確認することができる。
<画像処理装置1のハードウェア構成>
図2は、画像処理装置1のハードウェア構成例である。画像処理装置1は、例えばコンピュータであり、CPU101、ROM102、RAM103、汎用I/F(インターフェース)104、SATA(シリアルATA)I/F105、VC(ビデオカード)106を備える。CPU101は、RAM103をワークメモリとして、ROM102、HDD(ハードディスクドライブ)17などに格納されたOS(オペレーティングシステム)や各種プログラムを実行する。また、CPU101は、システムバス107を介して各構成を制御する。尚、後述するフローチャートによる処理は、ROM102やHDD17などに格納されたプログラムコードがRAM103に展開され、CPU101によって実行される。汎用I/F104には、シリアルバス12を介して、マウスやキーボードなどの入力デバイス13やプリンタ14が接続される。SATAI/F105には、シリアルバス16を介して、HDD17や各種記録メディアの読み書きを行う汎用ドライブ18が接続される。CPU101は、HDD17や汎用ドライブ18にマウントされた各種記録メディアを各種データの格納場所として使用する。VC106には、ディスプレイ15が接続される。CPU101は、プログラムによって提供されるUI(ユーザインターフェース)をディスプレイ15に表示し、入力デバイス13を介して得られたユーザの指示を表す入力情報を受信する。尚、画像処理装置1は、ディスプレイ15やプリンタ14に含まれていてもよい。
図2は、画像処理装置1のハードウェア構成例である。画像処理装置1は、例えばコンピュータであり、CPU101、ROM102、RAM103、汎用I/F(インターフェース)104、SATA(シリアルATA)I/F105、VC(ビデオカード)106を備える。CPU101は、RAM103をワークメモリとして、ROM102、HDD(ハードディスクドライブ)17などに格納されたOS(オペレーティングシステム)や各種プログラムを実行する。また、CPU101は、システムバス107を介して各構成を制御する。尚、後述するフローチャートによる処理は、ROM102やHDD17などに格納されたプログラムコードがRAM103に展開され、CPU101によって実行される。汎用I/F104には、シリアルバス12を介して、マウスやキーボードなどの入力デバイス13やプリンタ14が接続される。SATAI/F105には、シリアルバス16を介して、HDD17や各種記録メディアの読み書きを行う汎用ドライブ18が接続される。CPU101は、HDD17や汎用ドライブ18にマウントされた各種記録メディアを各種データの格納場所として使用する。VC106には、ディスプレイ15が接続される。CPU101は、プログラムによって提供されるUI(ユーザインターフェース)をディスプレイ15に表示し、入力デバイス13を介して得られたユーザの指示を表す入力情報を受信する。尚、画像処理装置1は、ディスプレイ15やプリンタ14に含まれていてもよい。
<画像処理装置1の論理構成>
図5は、画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
図5は、画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
画像処理装置1は、第1取得部501、第2取得部502、第3取得部503、第4取得部504、第5取得部505、第1生成部506、第2生成部507、第3生成部508、合成部509を有する。第1取得部501は、物体の表面に対する法線の分布を表す法線データを取得する。第2取得部502は、物体から光源への方向を示す光源ベクトルや光源が照射する光の強度を表す光源条件データを取得する。第3取得部503は、物体から観察者(カメラ)への方向を示す観察ベクトルを表す観察条件データを取得する。第4取得部504は、物体の拡散反射の反射強度と鏡面反射の反射強度とを表す反射強度データを取得する。第5取得部505は、塗膜の厚みとフレークサイズの度数分布とを表す光輝感データを取得する。第1生成部506は、法線データ、光源条件データ、反射強度データに基づいて、ユーザが設定した幾何条件において得られる拡散反射光の強度を表す拡散反射画像データを生成する。拡散反射画像データが表す拡散反射画像の各画素に拡散反射光の強度が記録されている。第2生成部507は、法線データ、光源条件データ、観察条件データ、反射強度データに基づいて、ユーザが設定した幾何条件において得られる鏡面反射光の強度を表す鏡面反射画像データを生成する。鏡面反射画像データが表す鏡面反射画像の各画素には鏡面反射光の強度が記録されている。第3生成部508は、法線データ、光源条件データ、観察条件データ、光輝感データに基づいて、光輝感を表現するための光輝感画像データを生成する。光輝感画像データが表す光輝感画像の各画素には、ユーザが設定した幾何条件においてフレーク上で鏡面反射した光の強度が記録されている。合成部509は、拡散反射画像データ、鏡面反射画像データ、光輝感画像データに基づいて、反射光の拡散反射成分及び鏡面反射成分と、光輝感を表現するための光輝感成分と、の和を算出する。また、算出した和を各画素に記録した出力画像を表す出力画像データを生成する。具体的には、画像データそれぞれの各画素値を足し合わせることによって、出力画像の画素値を算出する。尚、光輝感をより強調したい場合などには、重み付けを行ってから加算してもよい。
<画像処理装置1が実行する処理>
図6は画像処理装置1において実行される処理を示すフローチャートである。以下、図6を用いて画像処理装置1における処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。以下、各ステップ(工程)は符号の前にSをつけて表す。
図6は画像処理装置1において実行される処理を示すフローチャートである。以下、図6を用いて画像処理装置1における処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。以下、各ステップ(工程)は符号の前にSをつけて表す。
S510において、第1取得部501、第2取得部502、第3取得部503、第4取得部504及び第5取得部505は、ユーザからの指示に基づいてデータを取得する。具体的には、第1取得部501は、法線データを取得する。第2取得部502は、光源条件データを取得する。第3取得部503は、観察条件データを取得する。第4取得部は、反射強度データを取得する。第5取得部505は、光輝感データを取得する。ここで、法線データは、位置(x,y,z)における面の傾きを表す3次元ベクトルの分布を表す法線マップn(x,y,z)=(nx,ny,nz)である。法線マップは、予め特定のパターン光が投影された物体を撮像する方法やレーザスキャナを用いる方法を利用して物体の形状を取得し、物体の形状から法線を算出することによって生成しておく。光源条件データは、物体における位置から光源の位置への向きを表す光源ベクトルl=(lx,ly,lz)及び光源から照射される光の強度Eを表すデータである。光源ベクトルは、図7に示すUIを介して得られた光源の位置、向き及び種類に基づいて算出される。例えば、光源の種類が点光源である場合は、光源の位置を用いて光源ベクトルを算出し、光源が面光源などの平行光源である場合は、光源の方向を用いて光源ベクトルを算出する。尚、UIを介して入力された光源ベクトルを直接取得してもよい。観察条件データは、物体における位置から観察する位置への向きを表す観察ベクトルv=(vx,vy,vz)を表すデータである。観察ベクトルは、図7のUIを介して入力されたカメラの位置、向き及び画角に基づいて算出される。具体的には、カメラの位置、向き及び画角を用いて位置(x,y,z)に対応する画像上の画素位置(u,v)を算出することによって、観察ベクトルを算出する。尚、UIを介して入力された観察ベクトルを直接取得してもよい。反射強度データは、拡散反射の反射強度Rdと鏡面反射の反射強度Rsとを表すデータである。光輝感データは、メタリック層の厚みDとフレークサイズの度数分布F(S)とを表すデータである。
S520において、第1生成部506は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E及び拡散反射強度Rdに基づいて、拡散反射画像Idを表す拡散反射画像データを生成する。拡散反射画像Idの画素値は、Id(u,v)によって表す。ここで(u,v)は、位置(x,y,z)に対応する画像上の画素位置を表す。拡散反射画像データの生成処理の詳細については後述する。
S530において、第2生成部507は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及び鏡面反射強度Rsに基づいて、鏡面反射画像Isを表す鏡面反射画像データを生成する。鏡面反射画像Isの画素値は、Is(u,v)によって表す。鏡面反射画像データの生成処理の詳細については後述する。
S540において、第3生成部508は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、光輝感画像データを生成する。光輝感画像データが表す光輝感画像Ifの画素値は、If(u,v)によって表す。光輝感画像データの生成処理の詳細については後述する。
S550において、合成部509は、各画素についてId(u,v)とIs(u,v)とIf(u,v)との和を算出し、算出した和Iout(u,v)を各画素に記録した出力画像Ioutを表す出力画像データを生成する。また、合成部509は、生成した出力画像データをディスプレイ15に出力する。出力画像データの生成処理の詳細については後述する。
<拡散反射画像データの生成処理>
S520において、第1生成部506は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E及び拡散反射強度Rdに基づいて、拡散反射画像Idの各画素値Id(u,v)を算出する。具体的には、ランバートの余弦則に基づいた式(1)を用いて、Id(u,v)を算出する。
Id(u,v)=E×Rd×dot(n(x,y,z),l)・・・式(1)
ここで、dot(n(x,y,z),l)は法線マップn(x,y,z)と光源ベクトルlとの内積演算を表し、内積が負になる場合は0に置きかえる。
S520において、第1生成部506は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E及び拡散反射強度Rdに基づいて、拡散反射画像Idの各画素値Id(u,v)を算出する。具体的には、ランバートの余弦則に基づいた式(1)を用いて、Id(u,v)を算出する。
Id(u,v)=E×Rd×dot(n(x,y,z),l)・・・式(1)
ここで、dot(n(x,y,z),l)は法線マップn(x,y,z)と光源ベクトルlとの内積演算を表し、内積が負になる場合は0に置きかえる。
<鏡面反射画像データの生成処理>
S530において、第2生成部507は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及び鏡面反射強度Rsに基づいて、鏡面反射画像Isの各画素値Is(u,v)を算出する。具体的には、Blinn−Phongのモデルに基づいた式(2)を用いて、Is(u,v)を算出する。
Is(u,v)=E×Rs×dot(n(x,y,z),h)n・・・式(2)
ここで、hは光源ベクトルlと観察ベクトルvとの中間のベクトル(ハーフベクトル)であり、h=(1+v)/|1+v|によって算出される。定数nは鏡面反射の拡がり度合いを表す値であり、値が大きくなると鏡面反射の拡がりは小さくなる。定数nには、図7に示すUIを介したユーザの指示に基づいた値を用いてもよいし、予め決められた値を用いてもよい。
S530において、第2生成部507は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及び鏡面反射強度Rsに基づいて、鏡面反射画像Isの各画素値Is(u,v)を算出する。具体的には、Blinn−Phongのモデルに基づいた式(2)を用いて、Is(u,v)を算出する。
Is(u,v)=E×Rs×dot(n(x,y,z),h)n・・・式(2)
ここで、hは光源ベクトルlと観察ベクトルvとの中間のベクトル(ハーフベクトル)であり、h=(1+v)/|1+v|によって算出される。定数nは鏡面反射の拡がり度合いを表す値であり、値が大きくなると鏡面反射の拡がりは小さくなる。定数nには、図7に示すUIを介したユーザの指示に基づいた値を用いてもよいし、予め決められた値を用いてもよい。
<光輝感画像データの生成処理>
S540において、第3生成部508は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、画素値If(u,v)を算出する。具体的には、フレークの向きについてメタリック層の厚みによる物理的な制約がある状態において、メタリック層に含まれる各フレークの位置と向きとをランダムに決定することによって、層構造を考慮した光輝感画像データを生成する。図8は、S540において第3生成部508が実行する処理を示すフローチャートである。以下、図8を用いて光輝感画像データの生成処理を詳細に説明する。
S540において、第3生成部508は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、画素値If(u,v)を算出する。具体的には、フレークの向きについてメタリック層の厚みによる物理的な制約がある状態において、メタリック層に含まれる各フレークの位置と向きとをランダムに決定することによって、層構造を考慮した光輝感画像データを生成する。図8は、S540において第3生成部508が実行する処理を示すフローチャートである。以下、図8を用いて光輝感画像データの生成処理を詳細に説明する。
S541において、第3生成部508は、S510において取得されたフレークサイズの度数分布F(S)を参照し、S542〜S547をフレークサイズSごとに実行する。
S542において、第3生成部508は、S541において参照しているフレークサイズS及びS510において取得されたメタリック層の厚みDに基づいて、フレークの表面に対する法線(以下、フレーク法線と呼ぶ)の確率分布を算出する。フレーク法線の確率分布は、フレークサイズSのフレークが層内においてとりえる向きを表す。フレークの向きは層の厚みにより制限されるため、まず、層内においてフレークが傾くことができる最大の角度を算出する。フレーク法線nfは球面座標系の天頂角θおよび方位角φにより、式(3)を用いて表す。
nf=(cosφsinθ,sinφsinθ,cosθ)・・・式(3)
層内においてフレークが傾くことができる最大の角度は、図9に示すように、メタリック層の上面と下面とにフレークの両端が接するように配置された場合の角度である。これにより、フレーク法線nfが取りえる天頂角の最大値θmaxは式(4)により算出される。
nf=(cosφsinθ,sinφsinθ,cosθ)・・・式(3)
層内においてフレークが傾くことができる最大の角度は、図9に示すように、メタリック層の上面と下面とにフレークの両端が接するように配置された場合の角度である。これにより、フレーク法線nfが取りえる天頂角の最大値θmaxは式(4)により算出される。
方位角φについては、メタリック層の厚みによる制限はない。以上より、フレーク法線nfは、式(5)が示す天頂角θ、方位角φの範囲内に存在する。
フレークは、この値の範囲において自由に向きをとることができるため、天頂角θの確率分布p(θ)及び方位角φの確率分布p(φ)は式(6)によって表される。
S543において、第3生成部508は、S542において算出した確率分布p(θ)及びp(φ)に基づいてランダムにθとφとを決定することによって、フレーク法線nfを算出する。θとφとについて独立に0〜1の範囲の乱数値rθ、rφを設定し、それぞれの確率分布の累積分布関数と乱数値とが一致するθ、φを選択することによって、確率分布p(θ)及びp(φ)に応じたθ、φを得ることができる。確率分布p(θ)及び確率分布p(φ)の累積分布関数と乱数値rθ、rφとの関係を式(7)に示す。
θ=rθθmax
φ=rφ2π
・・・式(8)
式(8)を用いて算出したθ及びφを式(1)に代入し、フレークの向きを表すフレーク法線nfを算出する。
φ=rφ2π
・・・式(8)
式(8)を用いて算出したθ及びφを式(1)に代入し、フレークの向きを表すフレーク法線nfを算出する。
S544において、第3生成部508は、S543において算出したフレーク法線nfに基づいて、フレーク上で反射した光の強度(反射強度)を算出する。フレークにおいては金属と同様に鏡面反射が起こるため、反射光の拡がりは考慮せずに、式(9)が示すモデルに基づいて反射強度ifを算出する。
if=E×δ(|nf−h|)・・・式(9)
ここで、δ(x)はデルタ関数であり、式(10)に示す値をとる。
if=E×δ(|nf−h|)・・・式(9)
ここで、δ(x)はデルタ関数であり、式(10)に示す値をとる。
式(9)に示すモデルにより、光源ベクトルと観察ベクトルとが鏡面反射の幾何条件を満たす場合に、反射強度ifは値を持ち、それ以外の場合に、反射強度ifは0となる。これによって、幾何条件の変化に応じて輝点の位置が変わる特性を表現することができる。
S545において、第3生成部508は、法線データにおいてフレークを配置する位置を決定する。法線データにおける位置(x,y,z)から、フレークを配置する位置(x,y,z)をランダムに選択する。尚、予めフレークをランダムに配置する位置を表す配置データを生成しておき、その配置データを取得することによって配置を決定してもよい。尚、本ステップの処理は、実際にフレークを置く位置を決める処理ではなく、仮想的にフレークを配置する位置を決定することによって、次のステップS546においてフレークに対応する輝点の位置を決定できるようにするための処理である。
S546において、第3生成部508は、光輝感画像Ifに、S544において算出した反射強度ifを記録する。具体的には、S545において得たフレークの配置位置(x,y,z)を中心に、フレークサイズSのフレークが法線nfの向きに配置される場合、式(11)に示す関数に従って反射強度Ifを記録する。
If(u,v)=A((u,v),nf,S)if・・・式(11)
A((u,v),nf,S)は、画像上の位置(u,v)において、S545においてランダムに選択された位置(x,y,z)に配置されたフレークが観測されない場合は0を返す関数である。一方で、A((u,v),nf,S)は、画像上の位置(u,v)においてフレークが観測される場合は、画像上の位置(u,v)の画素サイズに対してフレークが占める割合tを返す関数である。これにより、フレークが画像上の複数画素にまたがるように配置される場合においても、光輝感画像Ifに反射強度を記録することができる。また、反射強度を記録した後、フレークを1つ配置したとしてカウント数に1を加える。尚、フレークの配置数のカウントはフレークサイズSごとに行う。また、カウント数の初期値はそれぞれ0とする。本ステップの処理により、フレークに対応する輝点のランダムな配置を決定することができる。
If(u,v)=A((u,v),nf,S)if・・・式(11)
A((u,v),nf,S)は、画像上の位置(u,v)において、S545においてランダムに選択された位置(x,y,z)に配置されたフレークが観測されない場合は0を返す関数である。一方で、A((u,v),nf,S)は、画像上の位置(u,v)においてフレークが観測される場合は、画像上の位置(u,v)の画素サイズに対してフレークが占める割合tを返す関数である。これにより、フレークが画像上の複数画素にまたがるように配置される場合においても、光輝感画像Ifに反射強度を記録することができる。また、反射強度を記録した後、フレークを1つ配置したとしてカウント数に1を加える。尚、フレークの配置数のカウントはフレークサイズSごとに行う。また、カウント数の初期値はそれぞれ0とする。本ステップの処理により、フレークに対応する輝点のランダムな配置を決定することができる。
S547において、第3生成部508は、配置したフレークサイズSのフレークの数を表すカウント数が、参照しているフレークサイズSの度数に達しているか否かを判定する。カウント数が参照しているフレークサイズSの度数以上である場合は、S541に戻って別のフレークサイズSを参照してS542〜547の処理を行う。カウント数が参照しているフレークサイズSの度数未満である場合は、S543〜S546の処理を再び実行し、フレークサイズSのフレークに応じた反射強度を光輝感画像Ifに記録する。
<出力画像データの生成処理>
S550において、合成部209は、拡散反射画像Id、鏡面反射画像Is、光輝感画像Ifの各画素値について和Iout(u,v)を算出し、出力画像Ioutを表す出力画像データを生成する。具体的には、式(12)を用いて、出力画像Ioutの各画素値Iout(u,v)を算出する。本実施形態においては、R、G、Bのそれぞれについて画素値を算出するため、光輝感画像Ifの画素値は、R、G、B各チャンネルの画素値が全て同じ値であるとして、和を算出する。
Iout(u,v)=Id(u,v)+Is(u,v)+If(u,v)・・・式(12)
さらに、生成した出力画像データをディスプレイ15に出力する。
S550において、合成部209は、拡散反射画像Id、鏡面反射画像Is、光輝感画像Ifの各画素値について和Iout(u,v)を算出し、出力画像Ioutを表す出力画像データを生成する。具体的には、式(12)を用いて、出力画像Ioutの各画素値Iout(u,v)を算出する。本実施形態においては、R、G、Bのそれぞれについて画素値を算出するため、光輝感画像Ifの画素値は、R、G、B各チャンネルの画素値が全て同じ値であるとして、和を算出する。
Iout(u,v)=Id(u,v)+Is(u,v)+If(u,v)・・・式(12)
さらに、生成した出力画像データをディスプレイ15に出力する。
<第1実施形態の効果>
以上説明したように、本実施形態における画像処理装置は、層の厚みと、フレークのサイズと、に基づいて、フレークの向きに関する情報を算出する算出する。さらに、算出された情報に基づいて、光輝感を表現するためのデータを生成する。これにより、物体への塗装を行う前に得られるパラメータを入力することによって、光輝感を表現することができる。したがって、物体への塗装を行う前であっても、塗装後に生じる光輝感を疑似的に表現することができる。
以上説明したように、本実施形態における画像処理装置は、層の厚みと、フレークのサイズと、に基づいて、フレークの向きに関する情報を算出する算出する。さらに、算出された情報に基づいて、光輝感を表現するためのデータを生成する。これにより、物体への塗装を行う前に得られるパラメータを入力することによって、光輝感を表現することができる。したがって、物体への塗装を行う前であっても、塗装後に生じる光輝感を疑似的に表現することができる。
[第2実施形態]
第1実施形態においては、入力された幾何条件に応じた反射強度を表す画像を生成する例を説明した。本実施形態においては、物体の各位置における反射特性を算出した後に、反射特性と幾何条件に基づいて、光輝感を表現するための画像を生成する例を説明する。本実施形態における処理は、幾何条件を変えるたびに全ての処理を再度行う必要はない。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
第1実施形態においては、入力された幾何条件に応じた反射強度を表す画像を生成する例を説明した。本実施形態においては、物体の各位置における反射特性を算出した後に、反射特性と幾何条件に基づいて、光輝感を表現するための画像を生成する例を説明する。本実施形態における処理は、幾何条件を変えるたびに全ての処理を再度行う必要はない。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
<画像処理装置1の論理構成>
本実施形態において画像処理装置1が実行する処理について、図10を用いて説明する。図10は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
本実施形態において画像処理装置1が実行する処理について、図10を用いて説明する。図10は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
画像処理装置1は、第1取得部501、第2取得部502、第3取得部503、第4取得部504、第5取得部505、算出部1006、出力画像生成部1007を有する。第1取得部501、第2取得部502、第3取得部503、第4取得部504、第5取得部505は第1実施形態と同じであるため説明を省略する。算出部1006は、法線データ、反射強度データ、光輝感データに基づいて、物体の各位置における反射特性を算出する。出力画像生成部1007は、法線データ、光源条件データ、観察条件データ、算出された反射特性に基づいて、光輝感を表現するための画像を表す画像データを生成する。
<画像処理装置1が実行する処理>
図11は、画像処理装置1が実行する処理を示すフローチャートである。以下、図11を用いて画像処理装置1が実行する処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。
図11は、画像処理装置1が実行する処理を示すフローチャートである。以下、図11を用いて画像処理装置1が実行する処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。
S510は第1実施形態と同じ処理であるため、説明を省略する。
S1120において、算出部1006は、法線マップn(x,y,z)、拡散反射強度Rd、鏡面反射強度Rs、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、法線マップの各位置における反射特性を算出する。具体的には、物体の反射特性として、拡散反射についての拡散反射強度データと、物体の表面における鏡面反射についての鏡面反射強度データと、フレークの表面における鏡面反射についての光輝反射データと、を算出する。反射特性の算出処理の詳細については後述する。
S1130において、出力画像生成部1007は、法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及びS1120において算出した反射特性に基づいて、光輝感を表現するための出力画像を表す出力画像データを生成する。また、出力画像生成部1007は、出力画像データをディスプレイ15に出力する。出力画像データの生成処理の詳細については後述する。
<反射特性の算出処理>
S1120において、算出部1006は、法線マップn(x,y,z)、拡散反射強度Rd、鏡面反射強度Rs、メタリック層の厚みDとフレークサイズの度数分布F(S)に基づいて、法線マップの各位置における反射特性を算出する。図12は、S1120において算出部1006が実行する処理を示すフローチャートである。以下、図12を用いて反射特性の算出処理を説明する。
S1120において、算出部1006は、法線マップn(x,y,z)、拡散反射強度Rd、鏡面反射強度Rs、メタリック層の厚みDとフレークサイズの度数分布F(S)に基づいて、法線マップの各位置における反射特性を算出する。図12は、S1120において算出部1006が実行する処理を示すフローチャートである。以下、図12を用いて反射特性の算出処理を説明する。
S1121において、算出部1006は、法線マップn(x,y,z)に対して、拡散反射強度データRd(x,y,z)と、鏡面反射強度データRs(x,y,z)と、を生成する。具体的に、拡散反射強度データRd(x,y,z)は、法線マップにおける各位置と、法線マップの各位置における拡散反射の反射強度とが対応付けられたテーブルを表すデータである。鏡面反射強度データRs(x,y,z)は、法線マップにおける各位置と、法線マップの各位置における鏡面反射の反射強度とが対応付けられたテーブルを表すデータである。本実施形態においては、S510において取得された拡散反射強度Rdと鏡面反射強度Rsとに基づいて、式(13)を用いることによって、拡散反射強度データRd(x,y,z)と、鏡面反射強度データRs(x,y,z)と、を生成する。
Rd(x,y,z)=Rd
Rs(x,y,z)=Rs
・・・式(13)
尚、法線マップの位置(x,y,z)ごとに異なる反射強度を位置(x,y,z)に対応づけてもよい。
Rd(x,y,z)=Rd
Rs(x,y,z)=Rs
・・・式(13)
尚、法線マップの位置(x,y,z)ごとに異なる反射強度を位置(x,y,z)に対応づけてもよい。
S1122において、算出部1006は、法線マップn(x,y,z)に対して、光輝反射データRf(x,y,z)を生成する。具体的に、光輝反射データRf(x,y,z)は、法線マップにおける各位置と、法線マップの各位置におけるフレーク法線及びフレークサイズとが対応付けられたテーブルを表すデータである。以下において、図13を用いてS1122における処理を詳細に説明する。図13は、光輝反射データを生成する処理を示すフローチャートである。
S11221において、算出部1006は、S510において取得されたフレークサイズの度数分布F(S)を参照し、S11222〜S11226の処理をフレークサイズSごとに実行する。
S11222において、算出部1006は、S11221において参照しているフレークサイズS及びS510において取得されたメタリック層の厚みDに基づいて、フレーク法線の確率分布を算出する。算出の方法は第1実施形態の第3生成部508が用いる方法と同じであるため、説明を省略する。また、第1実施形態と同様に、フレーク法線の天頂角θおよび方位角φの確率分布を算出する。
S11223において、算出部1006は、S11222において算出した天頂角θ及び方位角φの確率分布に基づいて、θとφとをランダムに決定することによって、フレーク法線nfを算出する。算出の方法は第1実施形態の第3生成部508が用いる方法と同じであるため、説明を省略する。
S11224において、算出部1006は、法線データにおいてフレークを配置する位置を決定する。法線データにおける位置(x,y,z)から、フレークを配置する位置(x,y,z)をランダムに選択する。
S11225において、算出部1006は、S11224において選択したフレークの配置位置(x,y,z)と、フレーク法線nf及びフレークサイズSと、が対応付けられたテーブルを表す光輝反射データRf(x,y,z)を生成する。光輝反射データRf(x,y,z)は式(14)のように表すことができる。
Rf(x,y,z)={(nf,S)}・・・式(14)
尚、光輝反射データRf(x,y,z)がすでに生成されていた場合は、光輝反射データRf(x,y,z)が表すテーブルに、(x,y,z)とnf及びSとの対応関係を追加する。
Rf(x,y,z)={(nf,S)}・・・式(14)
尚、光輝反射データRf(x,y,z)がすでに生成されていた場合は、光輝反射データRf(x,y,z)が表すテーブルに、(x,y,z)とnf及びSとの対応関係を追加する。
S11226において、算出部1006は、参照しているフレークサイズSのフレークについて、テーブルに保持された対応関係の数が、参照しているフレークサイズSの度数に達しているか否かを判定する。対応関係の数が参照しているフレークサイズSの度数以上である場合は、S11221に戻って別のフレークサイズSを参照してS11222〜11226の処理を行う。対応関係の数が参照しているフレークサイズSの度数未満である場合は、S11223〜S11226の処理を再び実行し、光輝反射データRf(x,y,z)が表すテーブルに、(x,y,z)とnf及びSとの対応関係を追加する。
<出力画像データの生成処理>
ステップS1130において、出力画像生成部1007は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及びS1120において算出された反射特性に基づいて、出力画像データを生成する。ここで、S1120において算出された反射特性は、拡散反射強度データRd(x,y,z)、鏡面反射強度データRs(x,y,z)及び光輝反射データRf(x,y,z)である。図14は、S1130において出力画像生成部1007が実行する処理を示すフローチャートである。以下、図14を用いて出力画像データの生成処理を説明する。
ステップS1130において、出力画像生成部1007は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及びS1120において算出された反射特性に基づいて、出力画像データを生成する。ここで、S1120において算出された反射特性は、拡散反射強度データRd(x,y,z)、鏡面反射強度データRs(x,y,z)及び光輝反射データRf(x,y,z)である。図14は、S1130において出力画像生成部1007が実行する処理を示すフローチャートである。以下、図14を用いて出力画像データの生成処理を説明する。
S1131において、出力画像生成部1007は、S510において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv及びS1120において算出した反射特性を取得する。ここで、反射特性は、拡散反射強度データRd(x,y,z)、鏡面反射強度データRs(x,y,z)及び光輝反射データRf(x,y,z)である。
S1132において、出力画像生成部1007は、法線マップn(x,y,z)を参照し、S1133〜S1135の処理を法線マップにおける位置(x,y,z)ごとに実行する。
S1133において、出力画像生成部1007は、拡散反射強度データRd(x,y,z)、鏡面反射強度データRs(x,y,z)及び光輝反射データRf(x,y,z)それぞれが表すテーブルから、参照している位置に対応する値を取得する。本実施形態においては、拡散反射強度データRd(x,y,z)からRdを取得し、鏡面反射強度データRs(x,y,z)からRsを取得し、光輝反射データRf(x,y,z)からnf及びSを取得する。
S1134において、出力画像生成部1007は、以下に示す式(15)、式(16)、式(17)を用いて、出力画像の画素値を算出する。具体的には、反射光の拡散反射成分Id(u,v)と、反射光の鏡面反射成分Is(u,v)と、光輝感を表現するための光輝反射成分If(u,v)とをそれぞれ算出し、算出した値の和を出力画像の画素値とする。拡散反射成分Id(u,v)は、第1実施形態と同様に、ランバートの余弦則に基づいた式(15)を用いて算出される。
Id(u,v)=E×Rd(x,y,z)×dot(n(x,y,z),I)・・・式(15)
Id(u,v)=E×Rd(x,y,z)×dot(n(x,y,z),I)・・・式(15)
鏡面反射成分Is(u,v)は、第1実施形態と同様に、Blinn−Phongのモデルに基づいた式(16)を用いて算出される。
Is(u,v)=E×Rs(x,y,z)×dot(n(x,y,z),h)n・・・式(16)
Is(u,v)=E×Rs(x,y,z)×dot(n(x,y,z),h)n・・・式(16)
光輝反射成分Is(u,v)は、第1実施形態と同様に、式(17)を用いて算出される。
If(u,v)=E×Σx’,y’,z’A((u,v),Rf(x,y,x)nf,Rf(x’,y’,z’)s)×δ(│Rf(x,y,x)nf−h│)・・・式(17)
If(u,v)=E×Σx’,y’,z’A((u,v),Rf(x,y,x)nf,Rf(x’,y’,z’)s)×δ(│Rf(x,y,x)nf−h│)・・・式(17)
ここで、Rf(x,y,z)nfは、光輝反射データRf(x,y,z)が表すテーブルに保持されているフレークの法線nfを表し、Rf(x,y,z)sは、光輝反射データRf(x,y,z)が表すテーブルに保持されているフレークのサイズを表す。A((u,v),Rf(x’,y’,z’)nf,Rf(x’,y’,z’)s)は、位置(x’,y’,z’)を中心として法線nfの傾きで配置されたサイズSのフレークが、画像上の位置(u,v)において観測されない場合は0を返す関数である。一方で、A((u,v),Rf(x’,y’,z’)nf,Rf(x’,y’,z’)s)は、画像上の位置(u,v)においてフレークが観測される場合は、画像上の位置(u,v)の画素サイズに対してフレークが占める割合tを返す関数である。
以上により算出した拡散反射成分Id(u,v)と、鏡面反射成分Is(u,v)と、光輝反射成分If(u,v)とを足し合わせることによって、出力画像の画素値を算出する。また、出力画像生成部1007は、出力画像を表す出力画像データを生成し、生成した出力画像データをディスプレイ15に出力する。
<第2実施形態の効果>
以上説明したように、本実施形態における画像処理装置は、物体の反射特性を算出した後に、算出した反射特性と入力した幾何条件に基づいて、光輝感を表現するためのレンダリングを行う。これにより、観察条件などの幾何条件を変化させた画像を生成したい場合に、全ての処理を行う必要はなく、予め算出された反射特性を用いてレンダリングを行うことができる。つまり、観察条件及び光源条件を含む幾何条件だけ変えたい場合は、S1120における反射特性を算出する処理を行う必要はない。したがって、フレークの向きや配置を決定するための計算コストを低減することができる。
以上説明したように、本実施形態における画像処理装置は、物体の反射特性を算出した後に、算出した反射特性と入力した幾何条件に基づいて、光輝感を表現するためのレンダリングを行う。これにより、観察条件などの幾何条件を変化させた画像を生成したい場合に、全ての処理を行う必要はなく、予め算出された反射特性を用いてレンダリングを行うことができる。つまり、観察条件及び光源条件を含む幾何条件だけ変えたい場合は、S1120における反射特性を算出する処理を行う必要はない。したがって、フレークの向きや配置を決定するための計算コストを低減することができる。
[第3実施形態]
第1実施形態においては、光輝感データとして入力されたメタリック層の厚みとフレークサイズの度数分布とに基づいて、光輝感を表現するための画像を生成する例を説明した。本実施形態においては、ユーザによって指定された塗料を示す番号に基づいて、番号に対応付られたメタリック層の厚みとフレークサイズの度数分布とを取得する。さらに、取得したメタリック層の厚みとフレークサイズの度数分布とに基づいて、光輝感を表現するための画像を生成する。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
第1実施形態においては、光輝感データとして入力されたメタリック層の厚みとフレークサイズの度数分布とに基づいて、光輝感を表現するための画像を生成する例を説明した。本実施形態においては、ユーザによって指定された塗料を示す番号に基づいて、番号に対応付られたメタリック層の厚みとフレークサイズの度数分布とを取得する。さらに、取得したメタリック層の厚みとフレークサイズの度数分布とに基づいて、光輝感を表現するための画像を生成する。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
<画像処理装置1の論理構成>
本実施形態において画像処理装置1が実行する処理について、図15を用いて説明する。図15は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
本実施形態において画像処理装置1が実行する処理について、図15を用いて説明する。図15は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
画像処理装置1は、第1取得部501、第2取得部502、第3取得部503、第4取得部504、番号取得部1505、第5取得部1510、光輝感データ保持部1511、第1生成部506、第2生成部507、第3生成部508、合成部509を有する。第1取得部501、第2取得部502、第3取得部503、第4取得部504、第1生成部506、第2生成部507、第3生成部508、合成部509は第1実施形態と同じであるため説明を省略する。番号取得部1505は、塗装に用いる塗料を特定する塗料データを取得する。第5取得部1510は、光輝感データ保持部1511から、塗料データが示す塗料番号に対応付けられたメタリック層の厚みとフレークサイズの度数分布とを取得する。光輝感データ保持部1511は、塗料データが示す塗料番号に対応付けられたメタリック層の厚み及びフレークサイズの度数分布を保持する。
<画像処理装置1が実行する処理>
図16は、画像処理装置1が実行する処理を示すフローチャートである。以下、図16を用いて画像処理装置1が実行する処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受けることによって開始する。
図16は、画像処理装置1が実行する処理を示すフローチャートである。以下、図16を用いて画像処理装置1が実行する処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受けることによって開始する。
S1510において、第1取得部501、第2取得部502、第3取得部503、第4取得部504及び番号取得部1505は、ユーザからの指示に基づいてデータを取得する。第1取得部501、第2取得部502、第3取得部503、第4取得部504は第1実施形態のS510と同じ処理を行うため説明を省略する。番号取得部1505は、塗料を特定する番号を示す塗料データを取得する。本実施形態におけるUIは図17のように表示され、塗料データは図17に示すUIを介して入力された番号に基づいて取得する。
S1520において、第5取得部1510は、光輝感データ保持部1511から、S1510において取得された塗料データに対応付けられたメタリック層の厚みとフレークサイズの度数分布とを取得する。光輝感データ保持部1511は、図18に示すデータベースであり、塗料データに対応するメタリック層の厚みとフレークサイズの度数分布とをテーブル形式で保持する。
S520、S530、S540及びS550は第1実施形態と同じ処理であるため、説明を省略する。
<第3実施形態の効果>
以上説明したように、本実施形態における画像処理装置は、塗料に関する情報を取得し、取得した情報に基づいて、輝点を含む画像を表す画像データを生成する。これにより、メタリック層の厚み及びフレークサイズの度数分布の入力は必要とせずに、光輝感を表現するための画像を生成することができる。
以上説明したように、本実施形態における画像処理装置は、塗料に関する情報を取得し、取得した情報に基づいて、輝点を含む画像を表す画像データを生成する。これにより、メタリック層の厚み及びフレークサイズの度数分布の入力は必要とせずに、光輝感を表現するための画像を生成することができる。
[第4実施形態]
第1実施形態においては、ユーザによって指定されたメタリック層の厚みとフレークサイズの度数分布とに基づいて、光輝感を表現するための画像を生成した。本実施形態においては、ユーザによって指定されたフレークサイズの度数分布のみを取得し、複数の層の厚みにおいて光輝感を表現した画像を生成し表示する。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
第1実施形態においては、ユーザによって指定されたメタリック層の厚みとフレークサイズの度数分布とに基づいて、光輝感を表現するための画像を生成した。本実施形態においては、ユーザによって指定されたフレークサイズの度数分布のみを取得し、複数の層の厚みにおいて光輝感を表現した画像を生成し表示する。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
<画像処理装置1の論理構成>
本実施形態において画像処理装置1が実行する処理について、図19を用いて説明する。図19は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
本実施形態において画像処理装置1が実行する処理について、図19を用いて説明する。図19は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
画像処理装置1は、第1取得部501、第2取得部502、第3取得部503、第4取得部504、フレークサイズ取得部1905、第1生成部506、第2生成部507、第3生成部1908、合成部1909を有する。第1取得部501、第2取得部502、第3取得部503、第4取得部504、第1生成部506、第2生成部507は第1実施形態と同じであるため説明を省略する。フレークサイズ取得部1905は、フレークサイズの度数分布を表すフレークサイズデータを取得する。第3生成部1908は、法線データ、光源条件データ、観察条件データ、フレークサイズデータに基づいて、複数のメタリック層の厚みにおける光輝感を表現するための光輝感画像データを生成する。合成部1909は、拡散反射画像データ、鏡面反射画像データ、厚み毎の光輝感画像データに基づいて、反射光の拡散反射成分および鏡面反射成分と、光輝感を表現するための光輝感成分との和を算出する。具体的には、画像データそれぞれの各画素値を足し合わせることによって、厚み毎の出力画像の画素値を算出する。尚、光輝感をより強調したい場合などには、重みづけを行ってから加算してもよい。
<画像処理装置1が実行する処理>
図20は画像処理装置1において実行される処理を示すフローチャートである。以下、図20を用いて画像処理装置1における処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。
図20は画像処理装置1において実行される処理を示すフローチャートである。以下、図20を用いて画像処理装置1における処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。
S1910において、第1取得部501、第2取得部502、第3取得部503、第4取得部504及びフレークサイズ取得部1905は、ユーザからの指示に基づいてデータを取得する。第1取得部501、第2取得部502、第3取得部503、第4取得部504は第1実施形態のS510と同じ処理を行うため説明を省略する。フレークサイズ取得部1905は、フレークサイズデータを取得する。フレークサイズデータはフレークサイズの度数分布を表し、図21に示すUIを介して取得する。
S520、S530は第1実施形態と同じ処理であるため、説明を省略する。
S1940において、第3生成部1908は、S1910において取得された法線マップn(x,y,z)、光源ベクトルl、光源強度E、観察ベクトルv、フレークサイズの度数分布F(S)に基づいて、メタリック層の厚み毎に光輝感画像データを生成する。メタリック層の厚みDにおける光輝感画像データが表す光輝感画像If,Dの画素値は、If,D(u,v)によって表す。複数のメタリック層の厚みにおける光輝感画像データの生成処理の詳細については後述する。
S1950において、合成部1909は、各画素についてId(u,v)とIs(u,v)とIf,D(u,v)との和を算出し、算出した和Iout,D(u,v)を各画素に記録した出力画像Iout,Dを表す出力画像データを生成する。また、合成部1909は、生成した出力画像データをディスプレイ15に出力する。出力画像データの生成処理の詳細については後述する。
<複数のメタリック層の厚みにおける光輝感画像データの生成処理>
S1940において、第3生成部1908は、S1910において取得された法線マップ、光源ベクトル、光源強度、観察ベクトル、フレークサイズの度数分布に基づいて、メタリック層の厚みDにおける画素値If,D(u,v)を算出する。具体的には、メタリック層の厚みDを様々に変化させ、フレークの向きに対する各厚みDによる物理的な制約がある状態において、メタリック層に含まれる各フレークの位置と向きとをランダムに決定する。決定した各フレークの位置と向きとに基づいて、光輝感画像データを生成する。図22は、S1940において第3生成部1908が実行する処理を示すフローチャートである。以下、図22を用いて光輝感画像データの生成処理を詳細に説明する。
S1940において、第3生成部1908は、S1910において取得された法線マップ、光源ベクトル、光源強度、観察ベクトル、フレークサイズの度数分布に基づいて、メタリック層の厚みDにおける画素値If,D(u,v)を算出する。具体的には、メタリック層の厚みDを様々に変化させ、フレークの向きに対する各厚みDによる物理的な制約がある状態において、メタリック層に含まれる各フレークの位置と向きとをランダムに決定する。決定した各フレークの位置と向きとに基づいて、光輝感画像データを生成する。図22は、S1940において第3生成部1908が実行する処理を示すフローチャートである。以下、図22を用いて光輝感画像データの生成処理を詳細に説明する。
S1941において、第3生成部1908は、S1910において取得されたフレークサイズの度数分布F(S)を参照し、S1948、S542〜S545、S1946、S547をフレークサイズSごとに実行する。
S1948において、第3生成部1908は、S542〜S545、S1946、S547をメタリック層の厚みDごとに実行する。メタリック層の厚みは、予め設定された値であり、例えば、10μmから30μmまでの10μm毎などに設定しておく。
S1946において、第3生成部1908は、S544において算出した反射強度ifを光輝感画像If,Dに記録する。
<出力画像データの生成処理>
S1950において、合成部1909は、拡散反射画像Id、鏡面反射画像Is、メタリック層の厚みDごとの光輝感画像If,Dの各画素値について和Iout,D(u,v)を算出する。合成部1909は、和Iout,D(u,v)に基づいて、メタリック層の厚みDごとの出力画像Iout,Dを表す出力画像データを生成する。本実施形態においてはR、G、Bのそれぞれについて画素値を算出するため、メタリック層の厚みDごとの光輝感画像If,Dの画素値はR、G、B各チャンネルの画素値がすべて同じ値であるとして算出する。
S1950において、合成部1909は、拡散反射画像Id、鏡面反射画像Is、メタリック層の厚みDごとの光輝感画像If,Dの各画素値について和Iout,D(u,v)を算出する。合成部1909は、和Iout,D(u,v)に基づいて、メタリック層の厚みDごとの出力画像Iout,Dを表す出力画像データを生成する。本実施形態においてはR、G、Bのそれぞれについて画素値を算出するため、メタリック層の厚みDごとの光輝感画像If,Dの画素値はR、G、B各チャンネルの画素値がすべて同じ値であるとして算出する。
さらに、生成したメタリック層の厚みDごとの出力画像データをディスプレイ15に出力し、ディスプレイ15に出力画像を表示させる。出力画像は、図23に示すように、メタリック層の厚みDと併せて表示される。
<第4実施形態の効果>
以上説明したように、本実施形態における画像処理装置は、メタリック層の厚みとフレークサイズの度数分布との2つの光輝感データのうち、フレークサイズの度数分布のみを入力として用いた。これにより、フレークサイズを固定した状態で、層の厚みを様々に変化させた画像を一度に確認することができ、所望の光輝感を表現する層の厚みを選択することができる。つまり、メタリック層の厚みを変化させた場合の見た目を疑似的に確認することによって、塗装のパラメータ設定を行うことができる。
以上説明したように、本実施形態における画像処理装置は、メタリック層の厚みとフレークサイズの度数分布との2つの光輝感データのうち、フレークサイズの度数分布のみを入力として用いた。これにより、フレークサイズを固定した状態で、層の厚みを様々に変化させた画像を一度に確認することができ、所望の光輝感を表現する層の厚みを選択することができる。つまり、メタリック層の厚みを変化させた場合の見た目を疑似的に確認することによって、塗装のパラメータ設定を行うことができる。
[第5実施形態]
第1実施形態においては、光源条件データとして入力された光源ベクトル及び光源強度に基づいて、画像の生成を行った。本実施形態においては、光源条件データとして、物体の見えをシミュレートする周囲環境の情報を用いる。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
第1実施形態においては、光源条件データとして入力された光源ベクトル及び光源強度に基づいて、画像の生成を行った。本実施形態においては、光源条件データとして、物体の見えをシミュレートする周囲環境の情報を用いる。尚、本実施形態における画像処理装置1のハードウェア構成は第1実施形態のものと同等であるため、説明を省略する。以下において、本実施形態と第1実施形態とで異なる部分を主に説明する。
<画像処理装置1の論理構成>
本実施形態において画像処理装置1が実行する処理について、図24を用いて説明する。図24は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
本実施形態において画像処理装置1が実行する処理について、図24を用いて説明する。図24は画像処理装置1の論理構成を示すブロック図である。以下に示す各部の処理は、CPU101がROM102等からRAM103上に読み込んだコンピュータプログラムを実行することによって、ソフトウェアとして実施される。尚、以下に示す処理のすべてがCPU101によって実行される必要はなく、処理の一部または全部がCPU101以外の一つまたは複数の処理回路によって行われるように画像処理装置1が構成されていてもよい。
画像処理装置1は、第1取得部501、第2取得部2402、第3取得部503、第4取得部504、第5取得部505、第1生成部2406、第2生成部2407、第3生成部2408、合成部509を有する。第1取得部501、第3取得部503、第4取得部504、第5取得部505、合成部509は第1実施形態と同じであるため説明を省略する。第2取得部2402は、物体の見えを表現する周囲環境における照明分布を表す環境光データを取得する。第1生成部2406は、法線データ、環境光データ、反射強度データに基づいて、ユーザによって設定された幾何条件において得られる拡散反射光の強度を表す拡散反射画像データを生成する。第2生成部2407は、法線データ、環境光データ、観察条件データ、反射強度データに基づいて、ユーザによって設定された幾何条件において得られる鏡面反射光の強度を表す鏡面反射画像データを生成する。第3生成部2408は、法線データ、環境光データ、観察条件データ、光輝感データに基づいて、光輝感を表現するための光輝感画像データを生成する。
<画像処理装置1が実行する処理>
図25は画像処理装置1において実行される処理を表すフローチャートである。以下、図25を用いて画像処理装置1における処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。
図25は画像処理装置1において実行される処理を表すフローチャートである。以下、図25を用いて画像処理装置1における処理の詳細を説明する。尚、下記処理は入力デバイス13を介したユーザからの指示を受け付けることによって開始する。
S2410において、第1取得部501、第2取得部2402、第3取得部503、第4取得部504、第5取得部505は、ユーザからの指示に基づいてデータを取得する。第1取得部501、第3取得部503、第4取得部504、第5取得部505は第1実施形態のS510と同じ処理を行うため説明を省略する。第2取得部2402は、環境光データを取得する。環境光データは、物体を中心とする球面座標系の天頂角θ、方位角φ方向における照明の強度を表す環境マップA(θ,φ)である。環境マップは、図26(a)に示すUIを介して得られる画像であり、各画素に方位角φ、天頂角θ方向における照明の強度が保持されている。図26(b)に示すように、画像のx軸方向が方位角φ、y軸方向がθに対応する。
S2420において、第1生成部2406は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、拡散反射強度Rdに基づいて、拡散反射画像Idを表す拡散反射画像データを生成する。拡散反射画像Idの画素値は、Id(u,v)によって表す。ここで(u,v)は、位置(x,y,z)に対応する画像上の画素位置を表す。拡散反射画像データの生成処理の詳細については後述する。
S2430において、第2生成部2407は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、観察ベクトルv及び鏡面反射強度Rsに基づいて、鏡面反射画像Isを表す鏡面反射画像データを生成する。鏡面反射画像Isの画素値は、Is(u,v)によって表す。鏡面反射画像データの生成処理の詳細については後述する。
S2440において、第3生成部2408は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、観察ベクトルv、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、光輝感画像データを生成する。光輝感画像データが表す光輝感画像Ifの画素値は、If(u,v)によって表す。光輝感画像データの生成処理の詳細については後述する。
S550は第1実施形態と同じ処理であるため、説明を省略する。
<拡散反射画像データの生成処理>
S2420において、第1生成部2406は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、拡散反射強度Rdに基づいて、拡散反射画像Idの各画素値Id(u,v)を算出する。具体的には、環境マップA(θ,φ)における光源ベクトルlθ,φ=(sinθcosφ,sinθsinφ,cosθ)に対するランバートの余弦則に基づいた式(18)を用いて、Id(u,v)を算出する。
Id(u,v)=Σθ,φA(θ,φ)×Rd×dot(n(x,y,z),lθ,φ)・・・式(18)
ここで、dot(n(x,y,z),lθ,φ)は法線マップn(x,y,z)と光源ベクトルlθ,φとの内積演算を表し、内積が負になる場合は0に置きかえる。
S2420において、第1生成部2406は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、拡散反射強度Rdに基づいて、拡散反射画像Idの各画素値Id(u,v)を算出する。具体的には、環境マップA(θ,φ)における光源ベクトルlθ,φ=(sinθcosφ,sinθsinφ,cosθ)に対するランバートの余弦則に基づいた式(18)を用いて、Id(u,v)を算出する。
Id(u,v)=Σθ,φA(θ,φ)×Rd×dot(n(x,y,z),lθ,φ)・・・式(18)
ここで、dot(n(x,y,z),lθ,φ)は法線マップn(x,y,z)と光源ベクトルlθ,φとの内積演算を表し、内積が負になる場合は0に置きかえる。
<鏡面反射画像データの生成処理>
S2430において、第2生成部2407は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、観察ベクトルv及び鏡面反射強度Rsに基づいて、鏡面反射画像Isの各画素値Is(u,v)を算出する。具体的には、環境マップA(θ,φ)における光源ベクトルlθ,φ=(sinθcosφ,sinθsinφ,cosθ)に対するBlinn−Phongのモデルに基づいた式(19)を用いて、Is(u,v)を算出する。
Is(u,v)=Σθ,φA(θ,φ)×Rs×dot(n(x,y,z),hθ,φ)n・・・式(19)
ここで、hθ,φは光源ベクトルlθ,φと観察ベクトルvとの中間のベクトル(ハーフベクトル)であり、hθ,φ=(lθ,φ+v)/|lθ,φ+v|によって算出される。定数nは鏡面反射の拡がり度合いを表す値であり、値が大きくなると鏡面反射の拡がりは小さくなる。定数nには、図26に示すUIを介したユーザの指示に基づいた値を用いてもよいし、予め決められた値を用いてもよい。
S2430において、第2生成部2407は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、観察ベクトルv及び鏡面反射強度Rsに基づいて、鏡面反射画像Isの各画素値Is(u,v)を算出する。具体的には、環境マップA(θ,φ)における光源ベクトルlθ,φ=(sinθcosφ,sinθsinφ,cosθ)に対するBlinn−Phongのモデルに基づいた式(19)を用いて、Is(u,v)を算出する。
Is(u,v)=Σθ,φA(θ,φ)×Rs×dot(n(x,y,z),hθ,φ)n・・・式(19)
ここで、hθ,φは光源ベクトルlθ,φと観察ベクトルvとの中間のベクトル(ハーフベクトル)であり、hθ,φ=(lθ,φ+v)/|lθ,φ+v|によって算出される。定数nは鏡面反射の拡がり度合いを表す値であり、値が大きくなると鏡面反射の拡がりは小さくなる。定数nには、図26に示すUIを介したユーザの指示に基づいた値を用いてもよいし、予め決められた値を用いてもよい。
<光輝感画像データの生成処理>
S2440において、第3生成部2408は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、観察ベクトルv、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、画素値If(u,v)を算出する。図27は、S2440において、第3生成部2408が実行する処理を示すフローチャートである。以下、図27を用いて光輝感画像データの生成処理を詳細に説明する。
S2440において、第3生成部2408は、S2410において取得された法線マップn(x,y,z)、環境マップA(θ,φ)、観察ベクトルv、メタリック層の厚みD及びフレークサイズの度数分布F(S)に基づいて、画素値If(u,v)を算出する。図27は、S2440において、第3生成部2408が実行する処理を示すフローチャートである。以下、図27を用いて光輝感画像データの生成処理を詳細に説明する。
S541〜S543は第1実施形態と同じ処理であるため、説明を省略する。
S2444において、第3生成部2408は、S543において算出したフレーク法線nfに基づいて、フレーク上で反射した光の強度(反射強度)を算出する。フレークにおいては金属と同様に鏡面反射が起こるため、反射光の拡がりは考慮せずに、式(20)が示すモデルに基づいて反射強度ifを算出する。
if=Σθ,φAinterp(θ,φ)×δ(|nf−hθ,φ|)・・・式(20)
ここで、δ(x)はデルタ関数であり、式(10)に示す値をとる。また、Ainterp(θ,φ)は離散的な値を有する環境マップA(θ’,φ’)に対して、hθ,φに対応する光源ベクトルlθ,φの天頂角θ、方位角φを内挿して得られた値である。
if=Σθ,φAinterp(θ,φ)×δ(|nf−hθ,φ|)・・・式(20)
ここで、δ(x)はデルタ関数であり、式(10)に示す値をとる。また、Ainterp(θ,φ)は離散的な値を有する環境マップA(θ’,φ’)に対して、hθ,φに対応する光源ベクトルlθ,φの天頂角θ、方位角φを内挿して得られた値である。
式(20)に示すモデルにより、光源ベクトルと観察ベクトルとが鏡面反射の幾何条件を満たす場合に、反射強度ifは値を持ち、それ以外の場合に、反射強度ifは0となる。
S545〜S547は第1実施形態と同じ処理であるため、説明を省略する。
<第5実施形態の効果>
以上説明したように、本実施形態における画像処理装置は、物体の見えをシミュレートする周囲環境における照明分布を表す環境マップに基づいて、光輝感を表現するための画像を生した。これにより、様々な方向からの照明が存在する環境における光輝感をシミュレートすることができる。
以上説明したように、本実施形態における画像処理装置は、物体の見えをシミュレートする周囲環境における照明分布を表す環境マップに基づいて、光輝感を表現するための画像を生した。これにより、様々な方向からの照明が存在する環境における光輝感をシミュレートすることができる。
[変形例]
上述した実施形態においては、互いにサイズが異なるフレークを含む層によって生じる光輝感を疑似的に表現するための処理の例を説明したが、処理は上記一例には限定されない。層に含まれる複数のフレークのサイズがほぼ同一である場合は、フレークサイズの度数分布の代わりに、フレークの量(数や密度)と、フレークサイズと、を取得して処理に用いてもよい。この場合は、フレークサイズごとに処理を行う必要はなく、フレークの量に達するまで、第1実施形態においてはS543〜S546の処理を、第2実施形態においてはS11223〜S11226の処理を行えばよい。また、第4実施形態においてはS543〜S545とS1946の処理を、第5実施形態においてはS543、S2444、S545、S546の処理をフレークの量に達するまで行えばよい。
上述した実施形態においては、互いにサイズが異なるフレークを含む層によって生じる光輝感を疑似的に表現するための処理の例を説明したが、処理は上記一例には限定されない。層に含まれる複数のフレークのサイズがほぼ同一である場合は、フレークサイズの度数分布の代わりに、フレークの量(数や密度)と、フレークサイズと、を取得して処理に用いてもよい。この場合は、フレークサイズごとに処理を行う必要はなく、フレークの量に達するまで、第1実施形態においてはS543〜S546の処理を、第2実施形態においてはS11223〜S11226の処理を行えばよい。また、第4実施形態においてはS543〜S545とS1946の処理を、第5実施形態においてはS543、S2444、S545、S546の処理をフレークの量に達するまで行えばよい。
上述した実施形態においては、アルミなどの金属フレークを複数含むメタリック層を有する物体を想定していたが、光輝感を生じさせるために物体の表面の層に含有されるフレークは金属フレークに限らない。例えば、マイカフレークを複数含む層によっても光輝感は生じる。また、金属フレークとマイカフレークとの両方を含む層であっても同様である。
上述した実施形態においては、発色層とクリア層とメタリック層との3層によって構成される塗料の層における反射を表現したが、光輝感を表現するためのフレークが含まれた層を有していれば、塗料の層は上述した3層に限定されない。例えば、メタリック層のみであってもよいし、クリア層とメタリック層との2層であってもよい。
上述した実施形態においては、物体の表面における拡散反射及び鏡面反射と、光輝感を生じさせるフレークにおける鏡面反射と、を疑似的に表現する例を説明したが、光輝感を生じさせるフレークにおける鏡面反射のみを疑似的に表現する形態であってもよい。この場合、第1実施形態について、画像処理装置1は、第4取得部504、第1生成部506、第2生成部507、合成部509を含まない構成であってもよい。この場合、画像処理装置1は、S510及びS540の処理のみを行い、S540において生成した光輝感画像データを出力画像データとして出力する。また、第2実施形態について、画像処理装置1は、第4取得部504を含まない構成であってもよい。この場合、画像処理装置1は、S1120において拡散反射強度データと鏡面反射強度データとを生成せずに、光輝反射データを生成する。第3実施形態について、画像処理装置1は、第4取得部504、第1生成部506、第2生成部507、合成部509を含まない構成であってもよい。この場合、画像処理装置1は、S1510、S1520、S540の処理のみを行い、S540において生成した光輝感画像データを出力画像データとして出力する。第4実施形態について、画像処理装置1は、第4取得部504、第1生成部506、第2生成部507、合成部1909を含まない構成であってもよい。この場合、画像処理装置1はS1910、S1940の処理のみを行い、S1940において生成した光輝感画像データを出力画像データとして出力する。第5実施形態について、画像処理装置1は、第4取得部504、第1生成部2406、第2生成部2407、合成部509を含まない構成であってもよい。この場合、画像処理装置1はS2410、S2440の処理のみを行い、S2440において生成した光輝感画像データを出力画像データとして出力する。
上述した実施形態においては、物体の表面における拡散反射及び鏡面反射と、光輝感を生じさせるフレークにおける鏡面反射と、を疑似的に表現するためのデータを生成する例を説明したが、データの生成方法は上記一例に限定されない。例えば、物体の表面における拡散反射及び鏡面反射に関するデータは、予め生成してHDD17等の記憶装置に記録させておき、そこから取得して用いてもよい。具体的に、第1実施形態については、予めS520及びS530と同様の処理によって拡散反射画像データ及び鏡面反射画像データを生成してHDD17に記憶させておき、S550において拡散反射画像データ及び鏡面反射画像データを取得して用いる。第2実施形態についても同様に、S1121の処理を予め行っておくことができる。第3実施形態については、S520及びS530、第4実施形態については、S520及びS530、第5実施形態については、S2420及びS2430を予め行っておくことができる。
上述した実施形態においては、出力画像データをディスプレイ15に出力する例を説明したが、他の外部装置に出力してもよい。例えば、HDD17やプリンタ14に出力してもよい。プリンタに出力する場合は、出力画像の各画素に記録された反射強度(輝度)を、インクやトナーなどの記録材の記録量やドット配置を表すデータに変換してから出力してもよい。
上述した実施形態においては、あらかじめ特定のパターン光が投影された物体を撮像する方法やレーザスキャナを用いる方法を利用して物体の形状を取得し、物体の形状に基づいて法線データを生成したが、別の方法によって作成した形状を使用してもよい。例えば、CGソフトによって作成した形状を使用してもよいし、市販のCGソフトに含まれる形状を使用してもよい。
上述した実施形態においては、図7に示すように、反射強度データとして、拡散反射の反射強度Rdと鏡面反射の反射強度Rsとを取得したが、それぞれを画像データとして取得してもよい。この場合は、画像データはそれぞれ、拡散反射の反射強度が各画素に記録された画像と鏡面反射の反射強度が各画素に記録された画像とを表す。これらの画像データは、R、G、Bの色ごとに画素値を有したカラー画像データであってもよいし、明るさのみを表すグレースケール画像データであってもよい。
上述した実施形態においては、出力画像の画素値をR、G、B各チャンネルについて算出した。一方で、色を考慮する必要がない場合は、図7に示すUIを介して入力されるR値、G値、B値に基づいて、式(21)により輝度(明るさ)Yを算出して処理に用いてもよい。
Y=0.2126×R+0.7152×G+0.0722×B・・・式(21)
上述した実施形態においては、メタリック層に含まれるフレークの形を円盤状の形としたが、フレークの形は上記一例に限定されない。例えば、柱状の形や立方体などであってもよい。この場合、フレークサイズは、フレーク法線が層の厚みに影響を受けることを考慮するため、フレークの3次元形状における最大の長さとする。尚、フレークサイズは、長さの他にフレークの厚みを含んでいてもよい。
Y=0.2126×R+0.7152×G+0.0722×B・・・式(21)
上述した実施形態においては、メタリック層に含まれるフレークの形を円盤状の形としたが、フレークの形は上記一例に限定されない。例えば、柱状の形や立方体などであってもよい。この場合、フレークサイズは、フレーク法線が層の厚みに影響を受けることを考慮するため、フレークの3次元形状における最大の長さとする。尚、フレークサイズは、長さの他にフレークの厚みを含んでいてもよい。
上述した実施形態においては、反射強度に基づいて処理を行ったが、反射の度合いを表す値であれば、反射率などの値に基づいて処理を行ってもよい。
第1実施形態においては、S520の処理の次にS530の処理を行い、S530の処理の次にS540の処理を行う例を説明したが、各ステップの処理は互いに独立しているため、処理の順番は上記の順番に限られない。処理の順番を入れ替えてもよいし、同時に処理を行ってもよい。
第2実施形態においては、S1121の処理の次にS1122の処理を行う例を説明したが、各ステップの処理は互いに独立しているため、処理の順番は上記の順番に限られない。処理の順番を入れ替えてもよいし、同時に処理を行ってもよい。
第3実施形態においては、S520の処理の次にS530の処理を行い、S530の処理の次にS540の処理を行う例を説明したが、各ステップの処理は互いに独立しているため、処理の順番は上記の順番に限られない。処理の順番を入れ替えてもよいし、同時に処理を行ってもよい。
第4実施形態においては、S520の処理の次にS530の処理を行い、S530の処理の次にS1940の処理を行う例を説明したが、各ステップの処理は互いに独立しているため、処理の順番は上記の順番に限られない。処理の順番を入れ替えてもよいし、同時に処理を行ってもよい。
第5実施形態においては、S2420の処理の次にS2430の処理を行い、S5430の処理の次にS2440の処理を行う例を説明したが、各ステップの処理は互いに独立しているため、処理の順番は上記の順番に限られない。処理の順番を入れ替えてもよいし、同時に処理を行ってもよい。
上述した第3実施形態においては、塗装データの入力におけるUIとして、番号を選択する例を説明したが、塗装の画像サンプルを表示し、その中から希望塗装を選択するなどの異なるUIに置き換えてもよい。
上述した第3実施形態、第4実施形態、第5実施形態においては、第1実施形態と同様に、拡散反射画像データ、鏡面反射画像データ、光輝感画像データを生成した後に、これらを合成することによって出力画像データを生成した。この処理を、第2実施形態のように、SVBRDFを生成する処理に置き換えてもよい。
上述した第4実施形態においては、フレークサイズの度数分布を入力し、メタリック層の厚みを複数変化させた画像を生成したが、メタリック層の厚みを入力し、フレークサイズの度数分布を複数変化させた画像を生成してもよい。
上述した第5実施形態においては、第1実施形態、第2実施形態及び第3実施形態と同様に、メタリック層の厚み及びフレークサイズに基づいて光輝感画像データの生成を行った。この処理を、第3実施形態のように、塗料番号を入力として光輝感画像データの生成を行う処理に置き換えてもよい。
上述した実施形態においては、メタリック層の厚みによって制限された範囲内において、乱数値を用いてフレーク法線を算出したが、フレーク法線の取得方法は上記一例に限定されない。例えば、制限範囲とフレーク法線とが対応付けられたテーブルを参照することによって、フレーク法線を取得してもよい。
[その他の実施形態]
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1 画像処理装置
1505 番号取得部
508 第3生成部
1505 番号取得部
508 第3生成部
Claims (26)
- フレークを複数含む塗料を用いた塗装を物体に対して行う場合の、前記フレークにおける光の反射によって生じる輝点を含む画像を表す画像データを生成する画像処理装置であって、
前記塗料に関する情報を取得する取得手段と、
前記塗料に関する情報に基づいて、前記輝点を含む画像を表す画像データを生成する生成手段と、
を有することを特徴とする画像処理装置。 - 前記塗料に関する情報に基づいて、前記塗料の層の厚みと、前記フレークのサイズ及び量と、を表す第1データを取得する第2取得手段をさらに有し、
前記生成手段は、前記第1データに基づいて、前記輝点を含む画像を表す画像データを生成することを特徴とする請求項1に記載の画像処理装置。 - 前記画像データが表す画像における、前記フレークに対応する輝点のランダムな配置を表す配置データを取得する第3取得手段をさらに有し、
前記生成手段は、前記配置データにさらに基づいて、前記輝点を含む画像を表す画像データを生成することを特徴とする請求項2に記載の画像処理装置。 - 前記輝点を含む画像を表す画像データは、画像における前記フレークに対応する輝点のランダムな配置と、前記フレークの向きに関する情報と、前記フレークのサイズと、の対応関係を表すデータであることを特徴とする請求項2に記載の画像処理装置。
- 前記第2取得手段は、前記層の厚みと、前記フレークのサイズの度数分布と、を表す前記第1データを取得することを特徴とする請求項2に記載の画像処理装置。
- 前記塗料に関する情報に基づいて、前記フレークの向きに関する情報を算出する算出手段をさらに有し、
前記生成手段は、前記フレークの向きに関する情報に基づいて、前記輝点を含む画像を表す画像データを生成することを特徴とする請求項2乃至請求項5のいずれか一項に記載の画像処理装置。 - 前記算出手段は、前記フレークの向きに関する情報として、前記フレークの表面に対する法線を算出することを特徴とする請求項6に記載の画像処理装置。
- 光源が前記物体に照射する光の強度と前記光源の位置とを表す第2データと、前記物体を観察する位置を表す第3データと、前記物体の表面に対する法線の分布を表す第4データと、を取得する第4取得手段をさらに有し、
前記生成手段は、前記第2データと、前記第3データと、前記第4データと、に基づいて、前記フレークの位置に対応する前記画像の画素に記録するための反射強度を算出することによって、前記画像データを生成することを特徴とする請求項3に記載の画像処理装置。 - 前記第4取得手段は、前記第2データに基づいて、前記フレークの位置から前記光源の位置への方向を表す第1ベクトルを算出し、前記第3データに基づいて、前記フレークの位置から前記観察する位置への方向を表す第2ベクトルを算出し、
前記生成手段は、前記第1ベクトルと前記第2ベクトルと前記光の強度とに基づいて、前記フレークの位置に対応する前記画像の画素に記録するための反射強度を算出することを特徴とする請求項8に記載の画像処理装置。 - 前記算出手段は、前記層の厚みと前記フレークのサイズとに基づいて、前記フレークが傾くことができる方向を決定し、前記傾くことができる方向に基づいて、前記フレークの向きに関する情報を算出することを特徴とする請求項6又は請求項7に記載の画像処理装置。
- 前記算出手段は、前記層の厚みと前記フレークのサイズとに基づいて、前記フレークの表面に対する法線が傾くことができる方向を決定し、前記傾くことができる方向に基づいて、前記フレークの表面に対する法線を算出することを特徴とする請求項7に記載の画像処理装置。
- 前記算出手段は、前記層の厚みと前記フレークのサイズとに基づいて、前記フレークの表面に対する法線が傾くことができる方向を決定し、前記傾くことができる方向のうちからランダムに前記フレークの表面に対する法線の方向を決定することを特徴とする請求項11に記載の画像処理装置。
- 前記物体の表面における拡散反射の反射強度を表す第5データを取得する第5取得手段をさらに有し、
前記生成手段は、前記第5データにさらに基づいて、前記画像データを生成することを特徴とする請求項8又は請求項9に記載の画像処理装置。 - 前記生成手段は、前記フレークの位置に対応する前記画像の画素に記録するための反射強度に、前記拡散反射の反射強度を加算することによって、前記画像データを生成すること特徴とする請求項13に記載の画像処理装置。
- 前記物体の表面における鏡面反射の反射強度を表す第6データを取得する第6取得手段をさらに有し、
前記生成手段は、前記第6データにさらに基づいて、前記画像データを生成することを特徴とする請求項8、請求項9、請求項13、請求項14のいずれか一項に記載の画像処理装置。 - 前記生成手段は、前記フレークの位置に対応する前記画像の画素に記録するための反射強度に、前記鏡面反射の反射強度を加算することによって、前記画像データを生成することを特徴とする請求項15に記載の画像処理装置。
- 前記生成手段は、生成した前記輝点を含む画像を表す画像データをディスプレイに出力することを特徴とする請求項1乃至請求項16のいずれか一項に記載の画像処理装置。
- 前記フレークは金属であることを特徴とする請求項1乃至請求項17のいずれか一項に記載の画像処理装置。
- 前記フレークはマイカであることを特徴とする請求項1乃至請求項17のいずれか一項に記載の画像処理装置。
- 前記物体の周囲の環境における照明分布を表す環境光データと、前記物体を観察する位置を表す第3データと、前記物体の表面に対する法線の分布を表す第4データと、を取得する第4取得手段をさらに有し、
前記生成手段は、前記環境光データと、前記第3データと、前記第4データと、に基づいて、前記フレークの位置に対応する前記画像の画素に記録するための反射強度を算出することによって、前記画像データを生成することを特徴とする請求項3に記載の画像処理装置。 - フレークを複数含む層を有する物体について、前記フレークにおける反射によって生じる光輝感を表現するためのデータを生成する画像処理装置であって、
前記層の厚みと、前記フレークのサイズと、を表すデータを取得する第1取得手段と、
前記データが表す前記層の厚み及び前記フレークのサイズに基づいて、前記フレークの傾きに関する情報を取得する第2取得手段と、
前記情報に基づいて、前記光輝感を表現するためのデータを生成する生成手段と、
を有することを特徴とする画像処理装置。 - フレークを複数含む層を有する物体について、前記フレークにおける反射によって生じる輝点を含む画像を表す画像データを生成する画像処理装置であって、
前記フレークのサイズを表すフレークサイズデータを取得する取得手段と、
前記フレークサイズデータに基づいて、前記層の厚みを複数変化させた場合の、前記輝点を含む画像を表す画像データをそれぞれ生成する生成手段と、
を有することを特徴とする画像処理装置。 - コンピュータを請求項1乃至請求項22のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
- フレークを複数含む塗料を用いた塗装を物体に対して行う場合の、前記フレークにおける光の反射によって生じる輝点を含む画像を表す画像データを生成する画像処理方法であって、
前記塗料に関する情報を取得する取得ステップと、
前記塗料に関する情報に基づいて、前記輝点を含む画像を表す画像データを生成する生成ステップと、
を有することを特徴とする画像処理方法。 - フレークを複数含む層を有する物体について、前記フレークにおける反射によって生じる光輝感を表現するためのデータを生成する画像処理方法であって、
前記層の厚みと、前記フレークのサイズと、を表すデータを取得する第1取得ステップと、
前記データが表す前記層の厚み及び前記フレークのサイズに基づいて、前記フレークの傾きに関する情報を取得する第2取得ステップと、
前記情報に基づいて、前記光輝感を表現するためのデータを生成する生成ステップと、
を有することを特徴とする画像処理方法。 - フレークを複数含む層を有する物体について、前記フレークにおける反射によって生じる輝点を含む画像を表す画像データを生成する画像処理方法であって、
前記フレークのサイズを表すフレークサイズデータを取得する取得ステップと、
前記フレークサイズデータに基づいて、前記層の厚みを複数変化させた場合の、前記輝点を含む画像を表す画像データをそれぞれ生成する生成ステップと、
を有することを特徴とする画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/177,730 US10762671B2 (en) | 2017-11-28 | 2018-11-01 | Image processing apparatus, image processing method, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017228334 | 2017-11-28 | ||
JP2017228334 | 2017-11-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019102058A true JP2019102058A (ja) | 2019-06-24 |
Family
ID=66977046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018148510A Pending JP2019102058A (ja) | 2017-11-28 | 2018-08-07 | 画像処理装置、画像処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019102058A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7387867B2 (ja) | 2019-07-19 | 2023-11-28 | ビーエーエスエフ コーティングス ゲゼルシャフト ミット ベシュレンクテル ハフツング | コーティングの質感特徴をシミュレートするための方法およびシステム |
-
2018
- 2018-08-07 JP JP2018148510A patent/JP2019102058A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7387867B2 (ja) | 2019-07-19 | 2023-11-28 | ビーエーエスエフ コーティングス ゲゼルシャフト ミット ベシュレンクテル ハフツング | コーティングの質感特徴をシミュレートするための方法およびシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2104923B1 (en) | Surface appearance simulation | |
JP5851461B2 (ja) | 意匠層データ作成装置及び方法並びに意匠シュミレーション装置 | |
Honson et al. | Effects of shape, roughness and gloss on the perceived reflectance of colored surfaces | |
JP2019185730A (ja) | 画像処理装置、画像処理方法及びプログラム | |
WO2019000692A1 (zh) | 立体图形绘制方法、装置、设备及存储介质 | |
Shi et al. | A biquadratic reflectance model for radiometric image analysis | |
Guarnera et al. | Perceptually validated cross-renderer analytical BRDF parameter remapping | |
JP2019102058A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP6049327B2 (ja) | 画像処理装置およびその制御方法 | |
US10229514B2 (en) | System and method for colorimetric and geometric parametrization of procedural textures on an object | |
JPWO2016203951A1 (ja) | 面材模様仕上がりシミュレーション装置及び面材模様仕上がりシミュレーション方法 | |
US10762671B2 (en) | Image processing apparatus, image processing method, and storage medium | |
Kartashova et al. | Visual light zones | |
JP4764963B2 (ja) | 画像処理装置 | |
JP5248958B2 (ja) | 3次元位置指定装置、3次元位置指定用プログラム、ボクセルモデリング装置およびボクセルモデリング用プログラム | |
CN116113987A (zh) | 将至少两种材料的外观可视化 | |
JP2017169970A (ja) | 光学シミュレーション装置および方法並びにプログラム | |
US20080165208A1 (en) | 3-Dimensional graphic processing apparatus and operating method thereof | |
Vangorp et al. | Shape-dependent gloss correction | |
JP6969157B2 (ja) | 三次元形状データの編集装置、及び三次元形状データの編集プログラム | |
JP2005077202A (ja) | コンピュータグラフィックス表示装置と表示方法とプログラム | |
US20110074777A1 (en) | Method For Displaying Intersections And Expansions of Three Dimensional Volumes | |
JP7463697B2 (ja) | 光沢取得状態算出装置、光沢取得状態算出方法、光沢取得状態算出プログラム、端末及び光沢取得状態表示プログラム | |
JP6516690B2 (ja) | 解析装置および解析プログラム | |
Zhang et al. | Effects of light map orientation and shape on the visual perception |