(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献2では、層構造ごとにポリゴンを変形するので、例えばヘアスタイル画像の一部だけを変形したい場合であっても、同じ層構造に属する部分のヘアスタイル画像も変形する。したがって、既に調整不要であるヘアスタイル画像の一部についても変形する可能性があり、全体として所望の形状にヘアスタイル画像を調整することが困難になる場合が生じるという問題点があった。
【0006】
本発明は上記事情に鑑みてなされたものであり、ユーザが選択したヘアスタイルを、所望の形状に変形させてシミュレーションすることが可能なヘアスタイルシミュレーション装置、ヘアスタイルシミュレーション方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために第1発明に係るヘアスタイルシミュレーション装置は、ユーザによる指定を受け付けたヘアスタイルを示すモデル画像の一部だけを変形することが可能なヘアスタイルシミュレーション装置において、ユーザ自身の顔を撮像する撮像手段と、撮像された顔の画像データから顔の部分の輪郭線を抽出する輪郭抽出手段と、抽出した顔の部分の輪郭線を、ヘアスタイルを示すモデル画像データから抽出した顔の部分の輪郭線とマッチング処理するマッチング手段と、輪郭線を合わせることで、撮像された顔の画像データの顔の部分と、モデル画像データの髪の部分とを重ね合わせて合成画像を生成して、タッチディスプレイに表示する合成画像表示手段とを有し、前記モデル画像データの髪の部分は、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンとして表示されており、前記タッチディスプレイに表示されている合成画像の前記髪の部分の一部に対する所定の操作を検出する操作検出手段と、検出された所定の操作に応じて、前記髪の部分の形状を変形させる画像変形手段とを備え
、前記操作検出手段は、前記所定の操作として変更領域、移動方向及び移動量を検出し、前記画像変形手段は、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンの変形方向と変形量を算出する変形算出手段を備え、前記変形算出手段は、四角形プリミティブの内部に補助点を設け、該補助点を頂点とした4つの三角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを、互いに連動させながら漸次変形させることを特徴とする。
【0010】
また、第
2発明に係るヘアスタイルシミュレーション装置は、第1
発明において、前記操作検出手段は、前記タッチディスプレイに表示されている合成画像の座標位置から所定の範囲を変更領域として検出することが好ましい。
【0011】
また、第
3発明に係るヘアスタイルシミュレーション装置は、第1
又は第2発明において、前記変形算出手段は、各プリミティブを構成するノードの最大変形量を、各ノードの顔の部分の輪郭線からの距離に応じて、距離が短いほど小さくなるように設定することが好ましい。
【0012】
次に、上記目的を達成するために第
4発明に係るヘアスタイルシミュレーション方法は、ユーザによる指定を受け付けたヘアスタイルを示すモデル画像の一部だけを変形することが可能なコンピュータで実行することが可能なヘアスタイルシミュレーション方法において、前記コンピュータは、ユーザ自身の顔を撮像する工程と、撮像された顔の画像データから顔の部分の輪郭線を抽出する工程と、抽出した顔の部分の輪郭線を、ヘアスタイルを示すモデル画像データから抽出した顔の部分の輪郭線とマッチング処理する工程と、輪郭線を合わせることで、撮像された顔の画像データの顔の部分と、モデル画像データの髪の部分とを重ね合わせて合成画像を生成して、タッチディスプレイに表示する工程とを含み、前記モデル画像データの髪の部分は、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンとして表示されており、前記タッチディスプレイに表示されている合成画像の前記髪の部分の一部に対する所定の操作を検出する工程と、検出された所定の操作に応じて、前記髪の部分の形状を変形させる工程とを含
み、前記所定の操作を検出する工程において、前記所定の操作として変更領域、移動方向及び移動量を検出し、前記髪の部分の形状を変形させる工程において、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンの変形方向と変形量を算出し、前記ポリゴンの変形方法と変形量を算出する工程において、四角形プリミティブの内部に補助点を設け、該補助点を頂点とした4つの三角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを、互いに連動させながら漸次変形させることを特徴とする。
【0015】
また、第
5発明に係るヘアスタイルシミュレーション
方法は、第
4発明において、前記コンピュータは、前記タッチディスプレイに表示されている合成画像の座標位置から所定の範囲を変更領域として検出することが好ましい。
【0016】
また、第
6発明に係るヘアスタイルシミュレーション方法は、第
4又は第5発明において、前記コンピュータは、各プリミティブを構成するノードの最大変形量を、各ノードの顔の部分の輪郭線からの距離に応じて、距離が短いほど小さくなるように設定することが好ましい。
【0017】
次に、上記目的を達成するために第
7発明に係るコンピュータプログラムは、ユーザによる指定を受け付けたヘアスタイルを示すモデル画像の一部だけを変形することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、前記コンピュータを、ユーザ自身の顔を撮像する撮像手段、撮像された顔の画像データから顔の部分の輪郭線を抽出する輪郭抽出手段、抽出した顔の部分の輪郭線を、ヘアスタイルを示すモデル画像データから抽出した顔の部分の輪郭線とマッチング処理するマッチング手段、及び輪郭線を合わせることで、撮像された顔の画像データの顔の部分と、モデル画像データの髪の部分とを重ね合わせて合成画像を生成して、タッチディスプレイに表示する合成画像表示手段として機能させ、前記モデル画像データの髪の部分は、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンとして表示されており、前記コンピュータを、前記タッチディスプレイに表示されている合成画像の前記髪の部分の一部に対する所定の操作を検出する操作検出手段、及び検出された所定の操作に応じて、前記髪の部分の形状を変形させる画像変形手段として機能させ
、前記操作検出手段を、前記所定の操作として変更領域、移動方向及び移動量を検出する手段として機能させ、前記画像変形手段を、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンの変形方向と変形量を算出する変形算出手段として機能させ、前記変形算出手段を、四角形プリミティブの内部に補助点を設け、該補助点を頂点とした4つの三角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを、互いに連動させながら漸次変形させる手段として機能させることを特徴とする。
【0020】
また、第
8発明に係るコンピュータプログラムは、第
7発明において、前記操作検出手段を、前記タッチディスプレイに表示されている合成画像の座標位置から所定の範囲を変更領域として検出する手段として機能させることが好ましい。
【0021】
また、第
9発明に係るコンピュータプログラムは、第
7又は第8発明において、前記変形算出手段を、各プリミティブを構成するノードの最大変形量を、各ノードの顔の部分の輪郭線からの距離に応じて、距離が短いほど小さくなるように設定する手段として機能させることが好ましい。
【0022】
第1発明、第
4発明及び第
7発明では、ユーザ自身の顔を撮像し、撮像された顔の画像データから顔の部分の輪郭線を抽出して、抽出した顔の部分の輪郭線を、ヘアスタイルを示すモデル画像データから抽出した顔の部分の輪郭線とマッチング処理する。輪郭線を合わせることで、撮像された顔の画像データの顔の部分と、モデル画像データの髪の部分とを重ね合わせて合成画像を生成して、タッチディスプレイに表示する。モデル画像データの髪の部分は、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンとして表示されており、タッチディスプレイに表示されている合成画像の髪の部分の一部に対する所定の操作を検出して、検出された所定の操作に応じて、髪の部分の形状を変形させる。これにより、モデル画像データの髪の部分の一部だけを不自然さのない形状に変形させることができるので、調整する必要がない部分については現状を維持したまま、気になる部分だけをシミュレーションすることができ、ユーザの所望の形状にヘアスタイルを調整することが可能となる。
また、所定の操作として変更領域、移動方向及び移動量を検出し、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンの変形方向と変形量を算出するので、合成画像の髪の部分をどの方向にどの程度変形させるのかを検出することができ、変形が不要な領域にまで大きな変形を生じないようにすることが可能となる。
さらに、四角形プリミティブの内部に補助点を設け、補助点を頂点とした4つの三角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを、互いに連動させながら漸次変形させるので、いわゆる三角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを変形した場合のように、変形後のテクスチャに屈曲部が生じることがなく、テクスチャの表示に不自然な部分が生じないので、自然な表示のままで変形させることが可能となる。
【0025】
第
2発明、第
5発明及び第
8発明では、タッチディスプレイに表示されている合成画像の座標位置から所定の範囲を変更領域として検出する。これにより、タッチディスプレイ上での合成画像の髪の部分の変更領域を容易に把握することができ、変形が不要な領域にまで大きな変形を生じないようにすることが可能となる。
【0026】
第
3発明、第
6発明及び第
9発明では、各プリミティブを構成するノードの最大変形量を、各ノードの顔の部分の輪郭線からの距離に応じて、距離が短いほど小さくなるように設定する。これにより、髪の部分を顔の部分の方向に変形させた場合であっても、髪の部分が顔の部分の輪郭線を超えて変形することがなく、ヘアスタイルを自然な形状に変形することが可能となる。
【発明の効果】
【0027】
本発明によれば、モデル画像データの髪の部分の一部だけを不自然さのない形状に変形させることができるので、調整する必要がない部分については現状を維持したまま、気になる部分だけをシミュレーションすることができ、ユーザの所望の形状にヘアスタイルを調整することが可能となる。
【発明を実施するための形態】
【0029】
以下、本発明の実施の形態に係るヘアスタイルシミュレーション装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【0030】
図1は、本発明の実施の形態に係るヘアスタイルシミュレーション装置の構成を示す模式図である。
図1に示すように、本実施の形態に係るヘアスタイルシミュレーション装置1は、タッチディスプレイ16を有するタブレット等の端末装置である。
【0031】
本発明の実施の形態に係るヘアスタイルシミュレーション装置1は、少なくともCPU(中央演算装置)11、メモリ12、記憶装置13、I/Oインタフェース14、ビデオインタフェース15、タッチディスプレイ16、撮像手段17、通信インタフェース18及び上述したハードウェアを接続する内部バス19で構成されている。
【0032】
CPU11は、内部バス19を介してヘアスタイルシミュレーション装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されたコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
【0033】
記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶しているコンピュータプログラム100は、通信インタフェース18を介して接続されている外部コンピュータからダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、プログラム及びデータ等の情報を記録したSDカード等の可搬型記録媒体からのリーダ/ライタを備えている場合には、可搬型記録媒体からコンピュータプログラムを読み出しても良い。
【0034】
記憶装置13には、ヘアスタイルを示すモデル画像データが記憶されている。モデル画像データには、標準的な顔の部分の輪郭線データが含まれており、撮像されたユーザの顔の画像データから抽出する顔の部分の輪郭線データとの間でマッチング処理を実行することにより、ユーザの所望の形状にヘアスタイルを変形(調整)した顔の合成画像を生成することができる。
【0035】
通信インタフェース18は内部バス19に接続されており、外部のネットワーク網に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。
【0036】
I/Oインタフェース14及びビデオインタフェース15は、液晶ディスプレイで構成されたタッチディスプレイ16と接続され、ヘアスタイルを示すモデル画像データの顔の部分と、撮像されたユーザの顔の画像データの顔の部分との間で輪郭線データのマッチング処理を実行することにより、ユーザの顔の画像データの顔の部分とモデル画像データの髪の部分とを重ね合わせて生成された合成画像を表示する。表示された合成画像に対して、スワイプ操作等をすることにより、合成画像の髪の部分の一部を変形させる。
【0037】
なお、撮像手段17は、CCDカメラ等であり、備えていてもいなくても良い。撮像手段17を備えている場合、ユーザの顔を撮像して、撮像した顔の画像データの顔の部分にヘアスタイルを示すモデル画像データの髪の部分を合成することにより、所望のヘアスタイルの形状に変形した状態を確認してもらうことができる。
【0038】
以下、上記構成のヘアスタイルシミュレーション装置1の動作について説明する。
図2は、本発明の実施の形態に係るヘアスタイルシミュレーション装置1の構成を示す機能ブロック図である。
【0039】
図2において、本実施の形態に係るヘアスタイルシミュレーション装置1の撮像部(撮像手段)201は、ヘアスタイルをシミュレーションするユーザ自身の顔を撮像する。撮像部201で撮像された顔の画像データは、記憶装置13に記憶される。撮像部201としては、CCDイメージセンサ、CMOSイメージセンサ等を採用する。
【0040】
モデル画像読出部202は、記憶装置13に記憶されているモデル画像データを読み出す。モデル画像データは、ヘアスタイルを識別するヘアスタイルIDに対応付けて、標準的なモデルを当該ヘアスタイルにした場合を示す画像データである。
【0041】
輪郭抽出部203は、撮像部201で撮像された顔の画像データから顔の部分の輪郭線を抽出する。輪郭線の抽出方法は特に限定されるものではない。例えば所定の画素の画素値が、周囲の画素の画素値と所定値以上離れている場合に輪郭線として抽出する方法であっても良い。同様に、読み出したモデル画像データについても顔の部分の輪郭線を抽出する。なお、モデル画像データについては、事前に顔の部分の輪郭線を抽出しておき、抽出した輪郭線に関する情報をモデル画像データと併せて記憶しておいても良い。
【0042】
マッチング部204は、抽出した顔の部分の輪郭線を、ヘアスタイルを示すモデル画像データから抽出した顔の部分の輪郭線とマッチング処理する。
図3は、本発明の実施の形態に係るヘアスタイルシミュレーション装置1のCPU11の輪郭マッチング処理の手順を示すフローチャートである。
【0043】
図3において、本実施の形態に係るヘアスタイルシミュレーション装置1のCPU11は、撮像された顔の画像データ及びモデル画像データの中から顔の部分の中心座標を算出する(ステップS301)。具体的には、画素値が一定範囲内である連続領域を検出して、連続領域の縦方向及び横方向の中心として中心位置を算出する。
【0044】
CPU11は、モデル画像データの顔の部分の中心座標に、撮像された顔の画像データの顔の部分の中心座標を重ね合わせるように、撮像された顔の画像データの顔の部分を移動する(ステップS302)。
図4は、本発明の実施の形態に係るヘアスタイルシミュレーション装置1の顔部分の画像の重ね合わせのイメージ図である。
図4(a)に示す、撮像された顔の画像データの顔の部分の中心座標G1を、
図4(b)に示すモデル画像データの顔の部分の中心座標G0に重ね合わせるように、撮像された顔の画像データの顔の部分を移動させる。
【0045】
図3に戻って、CPU11は、モデル画像データの顔の部分の高さに合わせて、撮像された顔の画像データの顔の部分を拡大・縮小する(ステップS303)。例えば、モデル画像データの顔の部分の眉とアゴとの間の距離と、撮像された顔の画像データの顔の部分の眉とアゴとの間の距離が一致するように拡大・縮小する。このとき拡大・縮小の中心は、算出してある顔の部分の中心座標である。また、拡大・縮小時に縦横比は一定とする。
【0046】
図5は、本発明の実施の形態に係るヘアスタイルシミュレーション装置1の顔部分の画像の拡大・縮小のイメージ図である。
図5に示すように、撮像された顔の画像データの顔の部分(破線部分)を、中心座標を重ね合わせて、モデル画像データの顔の部分(実線部分)に合わせている。
【0047】
図5の例では、撮像された顔の画像データの顔の部分(破線部分)の眉とアゴとの間の距離H1の方が、モデル画像データの顔の部分(実線部分)の眉とアゴとの間の距離H0よりも長いので、距離H1が距離H0になるまで、撮像された顔の画像データの顔の部分を、縦横比を維持した状態で縮小する。これにより、高さ方向についてはマッチング処理が完了する。
【0048】
図3に戻って、CPU11は、拡大・縮小した、撮像された顔の画像データの顔の部分の幅に合わせて、今度はモデル画像データの顔の部分を横方向に拡大・縮小する(ステップS304)。縦方向のズレより横方向のズレの方が小さく、しかも縦方向について拡大・縮小して眉とアゴとの距離を一致させているので、厳密に縦横比を維持する必要がない。むしろ、モデル画像データのヘアスタイルを、撮像された顔の画像データの顔部分と自然な状態で合成することが可能となる。
【0049】
CPU11は、撮像された顔の画像データの顔の部分及びモデル画像データの顔の部分の輪郭線を、スプライン補間等により算出し(ステップS305)、顔の輪郭線の横方向差分を算出する(ステップS306)。CPU11は、モデル画像データの髪の部分のノードを、算出した横方向差分だけ移動する(ステップS307)。これにより、顔の輪郭が相違する場合であっても不自然さのないヘアスタイルの形状にシミュレーションを行うことが可能となる。
【0050】
図2に戻って、合成画像表示部205は、マッチング処理後の撮像された顔の画像データの顔の部分とモデル画像データの髪の部分との合成画像を生成して、タッチディスプレイに表示する。髪の部分の画像については、髪を表示するテクスチャを用いた、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンとして表示している。これにより、以下の操作で髪の部分だけを変形表示させることができる。
【0051】
操作検出部206は、ユーザにより受け付けた所定の操作を検出する。具体的には、タッチディスプレイ16上で、スワイプ操作等を検知することにより、一定の範囲内の四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを変形させる。これにより、髪の部分の一部だけを変形させることで、ヘアスタイルの形状の微調整を行うことができる。
【0052】
検出する所定の操作としては、スワイプ操作による変更領域、移動方向及び移動量を検出する。変更領域は、指の接触を検出した画素群の中心からの一定範囲内の領域を変更領域として検出する。画素群の数に応じて、段階的に変更領域を拡大・縮小させても良い。移動方向は、スワイプしている間の指の移動方向に基づいて算出し、移動量は、スワイプしている間の指が接触しながら移動した移動量に基づいて算出する。
【0053】
画像変形部207は、検出された所定の操作に応じて、合成画像の髪の部分の形状を変形させる。また、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブに対して、レンダリング処理を実行することによりポリゴンの変形を算出して、付随するテクスチャを変形させる。
【0054】
図6は、髪の部分のポリゴン変形の例示図である。
図6に示すように、格子状の互いにリンクされているノード61を形成し、その上にテクスチャとして合成画像を貼り付ける。検出される操作によって、格子状のノードそれぞれが変形し、それに伴いリンクされているノードも順次変形していくことで、変更領域内全体が変形する。例えば変更領域62、63に示すように、ノード61が変形して、付随する髪の部分のテクスチャが変形することで、ヘアスタイルを自由に変更することができる。
【0055】
つまり、画像変形部207は、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンの変形方向及び変形量を算出する変形算出部208を備える。これにより、ポリゴンの変形方向及び変形量を求めることで、テクスチャとして付随している髪の部分の画像を変形させることができる。合成画像表示部205は、算出した変形方向及び変形量に基づいて合成画像を更新して、タッチディスプレイ16に表示する。
【0056】
なお、本実施の形態では、格子状にノードが形成されているので、四角形プリミティブに対してレンダリング処理が実行されている。
図7は、四角形プリミティブに対するレンダリング処理の実行前後の比較イメージ図である。
図7(a)は、レンダリング処理の実行前の四角形プリミティブの状態を、
図7(b)は、レンダリング処理の実行後の四角形プリミティブの状態を、それぞれ示す。
【0057】
図7(a)の例では、3つの四角形プリミティブを直列に配置している。3つの四角形プリミティブの上にはテクスチャとして直線T0−T2が描かれている。そして、ノードN1をノードN2になるようレンダリング処理を実行する。
【0058】
この場合、四角形プリミティブの内部においては、直線は直線として変形される。したがって、
図7(b)に示すように、ノードN1がノードN2の位置まで引っ張られることにより、テクスチャ位置T1がT1’へ、テクスチャ位置T2がT2’へ、それぞれ移動する。その結果として、比較的角張ったテクスチャとしてテクスチャマッピングが行われる。
【0059】
これに対して、スマートホン等ではハードウェアに制約が生じるため、OpenGLを使用することができず、OpenGL ES 2.0を使用する場合も想定される。この場合、四角形プリミティブに対してレンダリング処理を実行することができない。
【0060】
そこで、四角形プリミティブを複数の三角形プリミティブに分割してレンダリング処理を実行しても良い。この場合、1つの対角線で二分割する方法と、2つの対角線を用いて四分割する方法とが考えられる。
図8は、レンダリング処理の対象となるプリミティブの例示図である。
【0061】
図8(a)では、四角形プリミティブを1つの対角線で二分割し、2つの三角形プリミティブとしている。
図8(b)では、四角形プリミティブの内部で、2つの対角線の交点を補助点Pとして、補助点Pを頂点とした4つの三角形プリミティブに分割している。
【0062】
いずれの方法でも三角形プリミティブに対してレンダリング処理は実行できるものの、結果に相違が生じる。
図9は、レンダリング処理の結果の比較図である。
図9(a)は、
図8(a)の三角形プリミティブに対して、
図9(b)は、
図8(b)の三角形プリミティブに対して、それぞれレンダリング処理を実行した結果を模式的に示した説明図である。
【0063】
図9(a)と
図9(b)とを比較すればわかるように、
図9(a)では、テクスチャに明確な折り目が生じ、全体として変形後のテクスチャに違和感が生じている。それに対して、
図9(b)では、テクスチャに折り目が生じにくく、全体として変形後のテクスチャに違和感が生じにくい。したがって、変形後のヘアスタイルが、より自然な形状になることがわかる。
【0064】
簡単な例で、テクスチャマッピング結果の違いを説明する。
図10は、2つの三角形プリミティブに対するレンダリング処理の実行後の状態を示す図(
図8(a)に対応)である。
図10(a)と
図10(b)とでは、四角形プリミティブの2本の対角線のそれぞれで分割した三角形プリミティブに対するレンダリング処理の実行後の違いがわかる。
【0065】
すなわち、
図10(a)では、四角形プリミティブの右上から左下への対角線で2つの三角形プリミティブに分割されており、対角線の方向が、ノードN1からノードN2への移動方向(
図7参照)とは交差する方向になっている。この場合、三角形変形によるアフィン変換後のテクスチャの曲がり方は比較的大きくなり(テクスチャ位置T3、T4参照)、テクスチャに急峻な折り目が生じている。
【0066】
一方、
図10(b)では、四角形プリミティブの左上から右下への対角線で2つの三角形プリミティブに分割されており、対角線の方向が、ノードN1からノードN2への移動方向(
図7参照)と略一致する方向になっている。この場合、三角形変形によるアフィン変換後のテクスチャの曲がり方は比較的小さくなり(テクスチャ位置T5参照)、テクスチャに折り目が生じにくい。
【0067】
このように2つの三角形プリミティブに分割する場合には、対角線の方向と変形する方向との相対関係によって、テクスチャに大きな折り目が生じる場合もあれば生じない場合もあるという結果になる。したがって、不自然なテクスチャが生じる可能性が残されている。
【0068】
それに対して、
図11は、補助点Pを頂点とした4つの三角形プリミティブに対するレンダリング処理の実行後の状態を示す図(
図8(b)に対応)である。
図11では、2つの対角線の交点を新たなノード(補助点P)として追加し、4つの三角形プリミティブに分割している。
【0069】
そして、4つの三角形プリミティブに対してレンダリング処理を実行する。この場合、四角形プリミティブの分割方法が左右対称であることから、移動するノードやノードの移動方向に左右されることなく、三角形変形によるアフィン変換後のテクスチャの曲がり方は一定の範囲内に収束する(テクスチャ位置T6、T7参照)。したがって、テクスチャに急峻な折り目が生じにくく、自然な変形を行うことが可能となる。
【0070】
なお、四角形プリミティブあるいは三角形プリミティブを構成するノードの最大変形量を、各ノードの顔の部分の輪郭線からの距離に応じて、距離が短いほど小さくなるように設定することが好ましい。この場合、顔の部分の輪郭線上のノードについては、変形量は0(ゼロ)になる。これにより、髪の部分を顔の部分の方向に変形させた場合であっても、髪の部分が顔の部分の輪郭線を超えて変形することがなく、ヘアスタイルを自然な形状に変形することが可能となる。
【0071】
図12は、本発明の実施の形態に係るヘアスタイルシミュレーション装置1のCPU11の髪画像変形処理の手順を示すフローチャートである。本実施の形態に係るヘアスタイルシミュレーション装置1のCPU11は、ヘアスタイルをシミュレーションするユーザ自身の顔を撮像する(ステップS1201)。撮像された顔の画像データは、記憶装置13に記憶される。
【0072】
CPU11は、記憶装置13に記憶されているモデル画像データを読み出す(ステップS1202)。モデル画像データは、ヘアスタイルを識別するヘアスタイルIDに対応付けて、標準的なモデルを当該ヘアスタイルにした場合を示す画像データである。
【0073】
CPU11は、撮像された顔の画像データから顔の輪郭線を抽出し(ステップS1203)、読み出したモデル画像データについても顔の部分の輪郭線を抽出する(ステップS1204)。なお、モデル画像データについては、事前に顔の部分の輪郭線を抽出しておき、抽出した輪郭線に関する情報をモデル画像データと併せて記憶しておいても良い。
【0074】
CPU11は、抽出した顔の部分の輪郭線を、ヘアスタイルを示すモデル画像データの顔の部分の輪郭線とマッチング処理して(ステップS1205)、マッチング処理後の撮像された顔の画像データの顔の部分とモデル画像データの髪の部分との合成画像を生成して、タッチディスプレイ16に表示する(ステップS1206)。髪の部分の画像については、髪を表示するテクスチャを用いた、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンとして表示している。
【0075】
CPU11は、ユーザにより受け付けた所定の操作を検出する(ステップS1207)。具体的には、タッチディスプレイ16上で、スワイプ操作等を検知することにより、一定の範囲内の四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンを変形させる。
【0076】
検出する所定の操作としては、スワイプ操作による変更領域、移動方向及び移動量を検出する。変更領域は、指の接触を検出した画素群の中心からの一定範囲内の領域を変更領域として検出する。画素群の数に応じて、段階的に変更領域を拡大・縮小させても良い。移動方向は、スワイプしている間の指の移動方向として、移動量は、スワイプしている間の指の移動量として検出する。
【0077】
CPU11は、検出された変更領域について、検出された移動方向及び移動量に基づいて、四角形プリミティブによるノード・リンク構造で表現されたテクスチャ付きのポリゴンの変形方向及び変形量を算出する(ステップS1208)。具体的には、四角形プリミティブに対して、レンダリング処理を実行することによりポリゴンの変形を算出して、付随するテクスチャを変形させる。CPU11は、算出した変形方向及び変形量に基づいて合成画像を更新して、タッチディスプレイ16に表示する(ステップS1209)。
【0078】
以上のように本実施の形態によれば、モデル画像データの髪の部分の一部だけを不自然さのない形状に変形させることができるので、調整する必要がない部分については現状を維持したまま、気になる部分だけをシミュレーションすることができ、ユーザの所望の形状にヘアスタイルを調整することが可能となる。
【0079】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば、変更領域の検出方法は特に限定されるものではなく、例えば複数の指の接触を検知して、接触領域を両方含む領域を変更領域として算出しても良い。