以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
図1は、本実施の形態における撮影遊戯機の外観を示す斜視図である。撮影遊戯機は全体として、複数のユーザが入り込むことが可能な略直方体形状の箱型の装置である。撮影遊戯機は、おおまかに撮影エリアA及び編集エリアBに分けることができ、夫々のエリアA,Bに複数の機器が設けられて構成される。
撮影エリアAには、事前接客部1及び撮影部2に係る機器が設けられている。事前接客部1は撮影エリアAの外側に向けて設けられているコイン投入口、タッチパネル式ディスプレイ及びスピーカ等を含んで構成されており、ユーザの撮影前のコインの投入、名前の登録等の操作を受け付ける。撮影部は、撮影エリアA内部の壁面に内側に向けて設置されているカメラ21、ディスプレイ22、照明装置群23、及びスピーカ24(図2参照)を含んで構成されており、ユーザに撮影ガイドを表示し、音声で案内しながら複数種類の画像を撮影し、撮影された画像を第1編集部3a及び第2編集部3b(図2参照)へ出力する処理を行なう。
編集エリアBには、第1編集部3a、第2編集部3b及び印刷部4に係る機器が設けられている。第1編集部3a及び第2編集部3bは編集エリアBの中央部に、操作画面表示用のマルチタッチパネル式のディスプレイ30a,30b(図2参照)を夫々ユーザが操作しやすい高さに背中合わせで露出させた装置を含んで構成されている。第1編集部3a及び第2編集部3bは更にスピーカ33a,33b(図2参照)及び照明装置、並びに前記操作画面表示用のタッチペン31a,32a,31b,32b(図2参照)等を備えている。第1編集部3a及び第2編集部3bは、ユーザを撮影した撮影画像に基づく画像への落書き操作をディスプレイ30a,30b及びタッチペン31a,32a,31b,32bにて受け付け、受け付けられた操作に対応する画像処理を実行する。印刷部4は、編集エリアBの第1編集部3a,第2編集部3bを含む装置の筐体内に設けられるプリンタを含んで構成され、画像処理後の画像が印刷された写真シールシートを筐体の表面に設けられている吐出口から吐き出す。
図2は、本実施の形態における撮影遊戯機の構成を模式的に示すブロック図である。撮影遊戯機は、撮影エリアA及び編集エリアBにおけるユーザから視認可能な範囲に上述の事前接客部1、撮影部2、第1編集部3a、第2編集部3b及び印刷部4を備えているほか、撮影エリアA内の壁面に隠された箇所、又は編集エリアBの装置の筐体内部等のユーザから視認不可能な位置に、通信部5と制御機構とを備えている。
通信部5は、インターネット等の外部ネットワークに接続して撮影された画像を含むデータの送受信を実現する。通信部5は制御機構に接続されており、制御機構は通信部5を介して外部ネットワーク上のサーバ装置と通信し、データの送受信を行なうことが可能である。本実施の形態における撮影遊戯機では、通信部5が撮影によって得られた画像データを撮影遊戯機のメーカが管理するサーバ装置へ送信する。これにより、ユーザはサーバ装置から自身の撮影画像を携帯電話機(スマートフォン)、タブレット、又はPC等の端末装置へダウンロードして取得することが可能である。
制御機構は、上述した各ハードウェアを制御するPC(Personal Computer )と、各ハードウェアが接続されているバス100を含む制御基板と、各ハードウェアに電力を供給する図示しない電源部とにより構成される。PCは1つのPCで構成されてもよいが、処理を円滑化するために、事前接客部1を制御するPC、撮影部2を制御するPC、第1編集部3aを制御するPC、第2編集部3bを制御するPC、並びに印刷部4及び通信部5を制御するPC、のように制御対象毎に異なるPCを用いてもよい。なお以下の説明では第1編集部3a及び第2編集部3bにおける落書き操作に基づく画像処理について主に説明する。このため、仮想的に第1PCと第2PCとに分別して説明する。第1PCは、事前接客部1及び撮影部2における処理を制御する制御部6に対応する。第2PCは、撮影部2により得られた画像に対する所定の加工処理、第1編集部3a及び第2編集部3bによる編集の受け付け、合成等の画像処理を制御し、印刷部4における印刷出力並びに通信部5からのデータ送信を指示する画像処理部7に対応する。
制御部6は、第1PCに備えられたCPU(Central Processing Unit )60と、メモリ61と、HDD(Hard Disk Drive)62と、キャプチャ・クロマキーボード63とを含む。メモリ61はDRAM(Dynamic Random Access Memory)又はSDRAM(Synchronous DRAM)等のRAMを用い、HDD62に替えてフラッシュメモリ、又はSSD(Solid State Drive )等の他の不揮発性記憶装置を用いてもよい。
CPU60は、HDD62に記憶されている制御プログラム6Pを読み出し、メモリ61に各種情報を読み書きしながら前記制御プログラム6Pを実行することにより、以下の各機能を実現する。
CPU60は、事前接客部1のコイン投入口にて所定料金の投入を受け付けた場合に事前接客部1から出力される制御信号を入力し、タッチパネル式のディスプレイに操作画面を出力させ、スピーカから案内音声を出力させる。また、CPU60は、事前接客部1のディスプレイに表示されている操作画面上の操作に対応する情報を事前接客部1から入力する。具体的にはCPU60は、タッチパネル式のディスプレイ上の操作により、ユーザの名前、通信部5からの送信先アドレスに係る情報等を入力する。
CPU60は、撮影部2にてカメラ21から得られるモニタ用の映像信号をキャプチャ・クロマキーボード63が入力するように制御し、キャプチャ・クロマキーボード63から映像信号に含まれる各フレームの画像データを取得し、取得したフレームの画像データに基づいてライブ画面用の画像の映像信号を作成し、作成した画像信号をディスプレイ22へ出力する。またCPU60は、撮影開始及び案内をユーザに通知するための撮影ガイドの画像信号をディスプレイ22へ出力し、音声信号をスピーカ24へ出力する。
CPU60は、撮影部2のカメラ21による撮影と照明装置群23によるフラッシュ点灯とを同期させて撮影を行なう。なおCPU60は、カメラ21による撮影を複数回実行する。CPU60は、撮影により得られる画像の複数の画像データをカメラ21から取得し、夫々を区別できるように識別情報を付与してHDD62に記憶すると共に、複製して画像処理部7へ出力する。
HDD62は、CPU60が参照する各種情報を記憶する。HDD62は、CPU60が実行する制御プログラム6Pを予め記憶している。HDD62は、制御プログラム6Pのほかに、事前接客部1のディスプレイ及び撮影部2のディスプレイ22に表示する画像及びフォントデータ、事前接客部1のスピーカ及び撮影部2のスピーカ24から出力させる音声及び音楽等のデータを予め記憶している。また、HDD62には、撮像部2における写真撮影で得られる画像データが記憶される。
キャプチャ・クロマキーボード63は、キャプチャ機能及びクロマキー機能を有する回路基板である。キャプチャ・クロマキーボード63は、映像信号から毎秒30(29.97)枚のフレームの画像データを取得して静止画像として出力するキャプチャ機能を有する。またキャプチャ・クロマキーボード63は、静止画像から一定の範囲で所定の色調及び明度を有すると判断される画素を抽出し、抽出した画素に対してα値(透明度)を設定することにより一部の色を透明化して出力するクロマキー機能を有する。キャプチャ・クロマキーボード63は、カメラ21からのモニタ用の映像信号から順次フレームをキャプチャし、キャプチャして得られた静止画像に必要に応じてクロマキー処理を実行し、内蔵するメモリに書き込む。CPU60は、キャプチャ・クロマキーボード63内蔵のメモリから静止画像を順次読み出して、撮影部2のディスプレイ22に表示するライブ画面用の画像の画像信号を作成する。
画像処理部7は、第2PCに備えられたCPU70と、メモリ71と、HDD72と、グラフィックボード73とを備える。メモリ71は、DRAM又はSDRAM等のRAMを用いる。
CPU70は、HDD72に記憶されている画像処理プログラム7Pを読み出し、メモリ71に各種情報を読み書きしながら前記画像処理プログラム7Pに基づく画像処理を実行する。またCPU70は、制御部6から出力された画像データを、付与されている識別情報と共にメモリ71又はHDD72に記憶し、該画像データを基に加工処理を行なう。加工処理には、画像中の人物の顔を小顔にする加工、顔の頬部分の色味を明るくする(チーク)加工、髪に艶を出す加工、髪色を明るくする加工、目を大きくする加工、体のラインを細く見せるための加工、脚を長く見えるようにする加工等、種々の加工が含まれる。なおこれらの加工処理の内の一部では、加工具合の強弱(多少)を複数の段階に分けて実行する。CPU70は、加工の種類毎に段階数分だけ複製した画像データをメモリ71又はHDD72に記憶し、各画像データに夫々の段階で加工処理を実行し、加工後の複数の画像データをメモリ71又はHDD72に記憶する。
更にCPU70は、メモリ71又はHDD72に記憶してある撮影により得られた上述の加工処理前及び加工処理後の複数の画像データに基づき、第1編集部3a及び第2編集部3bにて落書き操作をディスプレイ30a,30b及びタッチペン31a,32a,31b,32bにて受け付ける。CPU70は、落書き機能の内の1つの機能として、画像データに基づく画像中、ユーザが撮影されている領域に対してメイクを施す機能を実現し、メイクに係る操作を受け付ける。メイクにはリップ、チーク、カラーコンタクト(以下カラコンという)、アイライン、つけまつげ、及びヘアカラーの複数種類がある。メイクに係る落書き編集処理については詳細を後述する。CPU70は、落書き操作として受け付けた操作の内容に応じて、後述する落書き用操作画面のプレビュー表示部に表示する手書き文字又はメイクを含むスタンプ等の画像データを作成してディスプレイ30a,30bへ出力する処理、更に、落書き用操作画面のプレビュー表示部に表示されている確定した編集内容に応じて合成画像データを作成する処理を実行する。CPU70は、作成された合成画像データに基づき画像を写真シールシートに印刷出力する処理、合成画像データ又は合成処理前の画像データを通信部5から外部サーバ装置へ送信する処理を実行する。
HDD72は、CPU70が参照する各種情報を記憶する。HDD72は、CPU70が実行する画像処理プログラム7Pを予め記憶している。またHDD72は、第1編集部3a及び第2編集部3bのディスプレイ30a,30bに表示する案内用の文字画像、合成用の素材である文字、フォントデータ又は画像、スピーカ33a,33bから出力させる音楽及び音声等のデータを予め記憶している。合成用の素材である画像の中には、上述したメイクを施す機能を実現するべくメイク用情報720が予め記憶されている。メイク用情報720には、リップパターン情報、チーク用画像、カラコン画像、アイライン画像、つけまつげ画像、及びヘアカラー用パターン情報が含まれる。メイク用情報720は書き換え可能である。また、HDD72は、受け付けた編集に基づく画像処理により得られた画像データ、合成後の画像の画像データが記憶される。
グラフィックボード73は、入力した画像データ及び描画命令に基づいて画像を描画し、描画した画像の画像データを出力するハードウェアである。CPU70は、制御部6から取得して記憶した画像データに対する画像処理を、グラフィックボード73を用いて行なう。具体的には、CPU70は画像データと、目的の画像を得るための描画命令とをグラフィックボード73に与えて処理を行なわせ、描画処理によって得られた画像の画像データをグラフィックボード73内蔵のメモリから入力する。描画処理には、拡縮、回転、移動、クロマキー機能、トリミング機能、α化機能、明度又は色調等の調整機能、フィルター機能、合成機能等が含まれる。
図3及び図4は、本実施の形態の撮影遊戯機にて実行される全体処理の一例を示すフローチャートである。なお、制御部6にて行なわれる処理手順と、画像処理部7にて行なわれる処理手順とに分けて説明する。図3は制御部6により実行される全体処理の手順の一例を示すフローチャートである。
制御部6のCPU60は、事前接客部1にてディスプレイに、撮影遊戯機の案内を表示させると共に、スピーカから音楽及び案内音声を出力させ(ステップS101)、所定料金が投入されたか否かを判断する(ステップS102)。CPU60は、所定料金が未投入であると判断した場合(S102:NO)、処理をステップS101へ戻す。
CPU60は、所定料金が投入されたと判断した場合(S102:YES)、事前接客部1のディスプレイにて、ユーザの名前の入力又は撮影モードの選択等を受け付ける(ステップS103)。CPU60は、撮影エリアAの空き状況を確認した上で、空いている場合に移動を促す案内画面を事前接客部1のディスプレイに表示させると共に、案内音声を出力させる(ステップS104)。
CPU60は、撮影エリアA内にて撮影部2のディスプレイ22に、撮影内容の案内画面を表示させ、案内音声及びBGMをスピーカ24から出力させる(ステップS105)。更にCPU60は、カメラ21からの映像信号に基づくライブ画面をディスプレイ22に表示させる(ステップS106)。このときCPU60は、撮影開始までのカウントダウンを示す文字又は画像をディスプレイ22に表示させ、カウントダウンの音声をスピーカ24に出力させる。
CPU60は、制御部2のカメラ21及び照明装置群23を制御して1回の撮影を実行し(ステップS107)、画像データを他の撮影により得られた画像の画像データと識別可能にHDD62に記憶する(ステップS108)。CPU60は撮影を実行する都度、ディスプレイ22にプレビュー画面を表示し(ステップS109)、所定の回数の撮影が完了したか否かを判断する(ステップS110)。
所定の回数の撮影が完了していないと判断された場合(S110:NO)、CPU60は、処理をステップS107へ戻し、次の撮影を実行する。このように所定の回数の撮影を実行するに際しCPU60は撮影毎に、顔のアップの撮影とユーザの全身の撮影とを区別して実行する。CPU60は撮影毎に、アップなのか全身なのか等に応じて適切なカメラ21の傾き、画角、照明の明暗で撮影が実行されるように制御するとよい。
所定の回数の撮影が完了していると判断された場合(S110:YES)、CPU60は、編集エリアBの空き状況を確認した上で、空いている場合に編集エリアBの第1編集部3a及び第2編集部3bの何れかへの移動を促す案内画面をディスプレイ22に表示させると共に、案内音声をスピーカ24から出力させ(ステップS111)、撮影エリアAにおける処理を終了する。
図4は、画像処理部7により実行される全体処理の手順の一例を示すフローチャートである。なお以下の説明では、第1撮影部3a側にユーザが案内され、落書き操作が受け付けられる場合について説明する。第2撮影部3b側でも処理は同様であるため詳細な説明を省略する。
画像処理部7のCPU70は、制御部6によりHDD62に記憶された画像データを取得する(ステップS201)。ステップS201は詳細には、制御部6のCPU60がHDD62から読み出してHDD72に記憶し、画像処理部7のCPU70が読み出すことができるようにするか、又はCPU70がHDD62から画像データを直接的に読み出すかにより実現される。制御部6と画像処理部7とが異なるPCにて実現される場合、共通の記憶装置(図示せず)に画像データが書き込まれ、CPU70が読み出すことができるように構成してもよいし、通信により画像データを制御部6及び画像処理部7間で送受信することにより実現してもよい。
CPU70は、取得した複数の画像データ毎に、1又は複数の人物被写体領域を抽出する処理を行なう(ステップS202)。ステップS202は詳細には、CPU70はグラフィックボード73を用い、複数回撮影して得られた複数の画像データに基づく画像から夫々、一定の範囲で所定の色調及び明度を有すると判断される画素を抽出し、抽出した画素以外の人物被写体を撮影した人物領域に対応する画素をα化(透明化)することによって得られるマスク画像の画像データを作成させる。CPU70は、抽出した人物被写体領域に基づいて、複数の画像データ毎に、選択されている撮影モードに対応するトリミング枠を仮に決定してトリミングを行なう(ステップS203)。ステップS203におけるトリミング枠は例えば、矩形及び円形が含まれる。
またCPU70は、取得した複数の画像データ別に抽出した1又は複数の人物被写体領域毎に、顔認識技術に基づいて顔領域、並びに顔領域内の目、鼻、及び口の各器官領域の特定を実行する(ステップS204)。CPU70は、ステップS204の処理を肌色検出、テンプレートマッチングなどの種々の既存技術を利用して行なえばよい。またステップS204においてCPU70は、顔領域及び器官領域を、夫々の輪郭に対応する画像中の画素の座標情報で特定する。なおステップS204における処理は、上述のステップS203の処理中にバックグラウンドで並行的に実行されるようにしてもよい。
次にCPU70は、複数の画像データ別に、抽出された人物被写体領域、特定された顔領域、並びに顔領域内の各器官領域に対する加工処理を実行する(ステップS205)。ステップS205にてCPU70は、複数回撮影して得られる画像データ夫々について、撮影の方法(アップ撮影又は全身撮影等)に適した加工処理を行なう。加工処理には上述したように、顔を小顔にする加工、顔の頬部分の色味を明るくする(チーク)加工、髪に艶を出す加工、髪色を明るくする加工、目を大きくする加工、体のラインを細く見せるための加工、脚を長く見せる加工等が含まれる。ただしステップS205においては加工処理全てを完了させないようにすることが望ましい。加工処理の内の一部、例えば小顔にする加工、及び目を大きくする加工については加工度合いを複数段階に分けて実行し、各段階の画像データをメモリ71又はHDD72に記憶し、第1編集部3aにおける編集を受け付けるに際し、何れの段階の加工度合いとするかの選択を受け付けることが可能なように実行しておく。ステップS205までの処理は、図3のフローチャートにおける1回目のステップS107の撮影処理の都度、各撮影に対して記憶される画像データに対してバックグラウンド的に開始され、編集エリアBへの案内画面の表示中に処理が進むように実行されてもよい。
CPU70は、ステップS205の加工処理の一部又は全部が完了した後、加工処理後の画像を含む編集案内用の画面を第1編集部3aのディスプレイ30aに表示させると共に、案内音声及び音楽をスピーカ33aから出力させる(ステップS206)。
CPU70は、ステップS205にて複数段階の加工度合いに分けて実行した加工について、各段階の加工処理後の画像データに基づくプレビュー画像をディスプレイ30aに表示させ、何れの段階の加工度合いとするかの選択を受け付ける(ステップS207)。このときCPU70は例えば、小顔にする加工及び目を大きくする加工について夫々、各段階のプレビュー画像を並べて表示するか、スライダーコントロールをディスプレイ30aに表示し、スライダーコントロール上をタッチペン31a又は32aがスライドすることに応じてプレビュー画像が連続的に変化するように表示させ、何れかの選択を受け付ける。
次にCPU70は、第1編集部3aにおいて、スタンプ貼付け、文字追加、及びメイクを含む落書き操作を受け付ける(ステップS208)。落書き操作の受け付けについては詳細を後述する。更にCPU70は、合成後の撮影画像の写真シールシートにおけるレイアウト等の選択を受け付ける(ステップS209)。
CPU70は、ステップS207で選択された加工の段階と、ステップS208で受け付けられた落書き操作と、ステップS209で選択されたレイアウトとに基づいて、撮影により得られた画像データに基づく画像と、ステップS208にて受け付けられて確定した落書き操作に基づく文字、画像、メイク用情報720に基づく画像等とを合成し、受け付けた選択に基づいて写真シールシートにレイアウトする合成処理を実行する(ステップS210)。
CPU70は、合成処理後の写真シールシートのプレビュー画面を第1編集部3aのディスプレイ30aに表示させる(ステップS211)。CPU70は、印刷部4のプリンタが使用中でないか否かを確認した上で、使用中でない場合に印刷部4のプリンタにて写真シールシートの印刷出力を開始させる(ステップS212)。印刷出力処理の間に、CPU70は、ユーザの携帯電話機への画像データ送信を実行するためのアドレス等の送信先情報の入力用の操作画面、又は送信する画像データの選択を受け付けるための選択画面をディスプレイ30aに表示させると共に、案内音声を出力させ(ステップS213)、ディスプレイ30aにて入力操作を受け付け(ステップS214)、入力された情報を記憶する(ステップS215)。CPU70は、記憶した情報に基づいて選択された画像データ及び送信先情報を通信部5から外部サーバ装置へ送信し(ステップS216)、ディスプレイ30aに印刷部4の前への移動を促す案内画面を表示させると共に、案内音声を出力させ(ステップS217)、処理を終了する。
次に、ステップS208にて受け付けられる落書き操作について詳細を説明する。図5は、落書き用操作画面の一例を示す説明図である。第1編集部3aのディスプレイ30aに図5に示すような落書き用操作画面が表示される。ディスプレイ30aに表示されている落書き用操作画面に対し、ユーザはタッチペン31a及びタッチペン32aによって操作内容の選択、描画等の操作を行なう。なお第1編集部3aでは、複数のユーザがタッチペン31a及びタッチペン32aを使用して同時に操作することが可能である。第2編集部3bにおける落書き操作についても同様であるので以下、詳細な説明を省略する。
図5の内容例において落書き用操作画面は、2つのタッチペン31a,32aによる操作を受け付けるために2つのプレビュー表示部301,302を有している。図5に示す例では、一方のプレビュー表示部301に矩形にトリミングされたプレビュー画像の例が表示され、他方のプレビュー表示部302に円形にトリミングされたプレビュー画像の例が表示されている。また、落書き用操作画面は、2つのプレビュー表示部301,302に対して複数の画像データに基づく複数の画像からいずれの画像の画像データを編集対象とするかを順次切り替えるための切替部3011,3021を有している。また落書き用操作画面は、手書き操作によって文字又は線を入力するためのペンの種類、太さ及び色を選択するためのペンパレット303と、予め記憶されているスタンプ画像及びメイク用の画像などの素材画像を選択するためのスタンプパレット304とを含む。スタンプパレット304は、プレビュー表示部301,302夫々に対応するように左右に配置される。なおペンパレット303及びスタンプパレット304は、一方が選択されている間は他方のパレット内の種類、太さ、及び色又は素材画像の選択が無効(非アクティブ)となるようにしてある。
スタンプパレット304は、プレビュー表示部301,302に表示されている2つのプレビュー画像に対して重畳させるスタンプの素材の種類を選択するためのタブ選択部101をプレビュー表示部301,302と対応するように夫々有している。タブ選択部101には「SPECIAL」「STAMP」、「MESSAGE」、及び「MAKE」の例えば4種類のタブが選択可能に表示されている。「SPECIAL」は、撮影により得られた画像データに基づく画像に対し、撮影遊戯機の種別毎に異なる編集、又は提供期間等で異なるなどの特別な素材の選択を受け付ける画面を表示するためのタブである。「STAMP」は、予め記憶してあるイラスト等の画像を選択する画面を表示するためのタブである。「MESSAGE」は、予め記憶してある文字を含むメッセージ画像を選択する画面を表示するためのタブである。「MAKE」はHDD72に記憶されているメイク用情報720に基づく画像の選択を受け付ける画面を表示するためのタブである。
図5に示す落書き用操作画面は、プレビュー表示部301,302と対応する両方のタブ選択部101で「MAKE」のタブが選択されている場合の内容例が示されている。「MAKE」のタブが選択されている場合のスタンプパレット304は、各プレビュー表示部301,302に対応するメイクパレット310を有している。
メイクパレット310は上部に、メイク選択部102を含む。メイク選択部102は、メイクパレット310の上部に位置する複数のメイクの種類に応じた複数のボタンからなる。図5に示す例では、メイクの種類(対象)は「リップ」、「チーク」、「カラコン」、「アイライン」、「つけまつげ」、及び「ヘアカラー」の6種類と、6種類全てを自動的に実行する「ワンタッチ」がある。
メイクパレット310はメイク選択部102よりも下方の領域に、各種類のメイクに応じた操作ボタン群を含む。メイクの操作は種類別に、自動モードと手動モードとが存在する。なお自動モードは撮像により得られた画像から顔領域の特定が成功した場合のみに操作可能であり、顔領域の特定に失敗した場合には手動モードのみとなる。図5に示す例では自動モードの場合の操作ボタン群を示している。自動モードの場合の操作ボタン群は、顔サンプル表示部103、個別選択部104、全員選択部105、顔切替部106、及びキャンバス部107を含む。
顔サンプル表示部103は、選択対象の素材のサンプル画像、又は複数の画像データ毎に特定された顔領域を含む矩形領域の画像が抽出されて表示される領域である。
個別選択部104及び全員選択部105は、編集対象の画像として選択され、対応するプレビュー表示部301(又はプレビュー表示部302)に表示されている画像中に複数の顔領域が特定されている場合に、複数の顔領域の内の1つをメイクの対象とすることを選択するか、全員を同じメイクの対象とすることを選択するかを切り替えるためのボタンである。図5の例においてプレビュー表示部301に対応するメイクパレット310では、個別選択部104が選択され、プレビュー表示部302に対応するメイクパレット310では、全員選択部105が選択されている。
顔切替部106は、個別選択部104が選択されている場合に、複数の顔領域からメイクの対象とする顔領域を選択するためのボタンである。個別選択部103が選択されている場合のみに選択が有効であり、全員が選択(「みんな」が選択)されている場合は無効である。対応するプレビュー表示部301(又はプレビュー表示部302)に表示されている画像中に複数の顔領域が特定されている場合にタッチペン31aによって顔切替部106が選択されたとき、顔領域が順に切り替えられ、サンプルとして顔サンプル表示部103に表示される。なお顔切替部106は、画像から1つの顔領域のみ特定された場合は無効となる。
キャンバス部107は、メイク選択部102で選択されたメイクの種類に応じた色、パターン、及び大きさを選択するためのボタン等が配置される領域である。詳細については後述する。
図6は、手動モードの場合のメイクパレット310の例を示す説明図である。手動モードの場合、顔サンプル表示部103、個別選択部104、全員選択部105及び顔切替部106に代替して、素材サンプル表示部108が配置される。素材サンプル表示部108には、選択されたメイク素材のサンプルイメージ、例えば、どのような位置にメイク素材の画像を配置したらよいかを示す説明画像が表示される。
図5及び図6に示した落書き用操作画面において操作を受け付ける全体的な処理について、フローチャートを参照して以下に説明する。図7は、画像処理部7のCPU70による操作を受け付ける処理手順の一例を示すフローチャートである。なお図7のフローチャートに示す処理手順は、図4のフローチャートに示した処理手順の内のステップS208の詳細である。以下の説明では、タッチペン31aにより、落書き用操作画面のプレビュー表示部301、プレビュー表示部301に対応するタブ選択部101及びメイクパレット310側における操作について落書き操作を受け付ける処理について説明する。タッチペン32aにより受け付けられるプレビュー表示部302側における操作についても同様であるので詳細な説明を省略する。
CPU70は、落書き用操作画面をディスプレイ30aに表示し(ステップS301)、ペンパレット303が選択中であるか否か判断する(ステップS302)。ペンパレット303が選択中であると判断された場合(S302:YES)、CPU70はペンパレット303における選択を受け付け、タッチペン31aによる手書きの落書き操作を受け付ける(ステップS303)。
CPU70は、時間切れになったか、又は終了指示を受け付けたかにより、落書き操作が終了したか否かを判断する(ステップS304)。落書き編集が終了していないと判断した場合(S304:NO)、処理をステップS302へ戻す。
CPU70は、ステップS302にてペンパレット303が選択中でないと判断した場合(S302:NO)、スタンプパレット304が選択されているのでタブ選択部101にて「SPECIAL」が選択されているか否かを判断する(ステップS305)。CPU70は、「SPECIAL」が選択されていると判断した場合(S305:YES)、CPU70はタブ選択部101の下方に「SPECIAL」に係る操作画面を表示し、「SPECIAL」の操作画面上の操作を受け付け(ステップS306)、処理をステップS304へ進める。
ステップS305にて「SPECIAL」が選択されていないと判断された場合(S305:NO)、CPU70は、「STAMP」が選択されたか否かを判断する(ステップS307)。「STAMP」が選択されたと判断された場合(S307:YES)、CPU70はタブ選択部101の下方に「STAMP」に係る操作画面を表示し、操作画面上での操作を受け付け(ステップS308)、処理をステップS304へ進める。
ステップS307にて「STAMP」が選択されていないと判断された場合(S307:NO)、CPU70は、「MESSAGE」が選択されたか否かを判断する(ステップS309)。「MESSAGE」が選択されたと判断された場合(S309:YES)、CPU70はタブ選択部101の下方に「MESSAGE」に係る操作画面を表示し、操作画面上での操作を受け付け(ステップS310)、処理をステップS304へ進める。
ステップS309にて「MESSAGE」が選択されていないと判断された場合(S309:NO)、CPU70は、「MAKE」が選択されたか否かを判断する(ステップS311)。「MAKE」が選択されたと判断された場合(S311:YES)、CPU70はタブ選択部101の下方にメイクパレット310(「MAKE」に係る操作画面に対応)を表示し、メイクパレット310上での操作を受け付け(ステップS312)、処理をステップS304へ進める。ステップS312については詳細を後述する。
ステップS311にて「MAKE」が選択されていないと判断された場合(S311:NO)、CPU70は処理をステップS304へ進める。
ステップS304にて、時間切れになったか、又は終了指示を受け付けたかにより、落書き操作が終了したと判断された場合(S304:YES)、CPU70は、図4のフローチャートに示したステップS209へ処理を戻す。
図8は、メイクに係る操作及び選択を受け付ける処理手順の一例を示すフローチャートである。以下に示す処理手順は、図7のフローチャートに示した処理手順の内のステップS312の詳細である。
CPU70は、図7のフローチャートに示した処理の内、ステップS311にて「MAKE」タブが選択された場合に初期的に、「ワンタッチ」に係る操作画面をキャンバス部107に表示し(ステップS401)、メイク選択部102にて他のメイクの種類が選択されたか否かを判断し(ステップS402)、他のメイクの種類が選択されていないと判断した場合(S402:NO)、「ワンタッチ」メイクに係る処理を実行する(ステップS403)。「ワンタッチ」メイクに係る処理の詳細については後述する。
CPU70は、ステップS403の処理後、タブ選択部101にて他の落書きの種類が選択されるか、落書き編集が確定されて終了したか若しくは時間切れになったかによって、「メイク」の落書き編集受け付けを終了するか否かを判断する(ステップS404)。CPU70は「メイク」の落書き編集受け付けを終了しないと判断した場合(S404:NO)、処理をステップS402へ戻す。
CPU70は、ステップS402にて「ワンタッチ」以外の他のメイクの種類が選択されたと判断した場合(S402:YES)、メイク選択部102にて「リップ」が選択されたか否かを判断する(ステップS405)。CPU70は、ステップS405にて「リップ」が選択されていると判断した場合(S405:YES)、「リップ」に係る処理を実行し(ステップS406)、ステップS404へ処理を進める。「リップ」に係る処理については詳細を後述する。
CPU70は、「リップ」が選択されていないと判断した場合(S405:NO)、「チーク」が選択されたか否かを判断する(ステップS407)。CPU70は、「チーク」が選択されていると判断した場合(S407:YES)、「チーク」に係る処理を実行し(ステップS408)、ステップS404へ処理を進める。「チーク」に係る処理については詳細を後述する。
CPU70は、「チーク」が選択されていないと判断した場合(S407:NO)、「カラコン」が選択されたか否かを判断する(ステップS409)。CPU70は、「カラコン」が選択されていると判断した場合(S409:YES)、「カラコン」に係る処理を実行し(ステップS410)、ステップS404へ処理を進める。「カラコン」に係る処理については詳細を後述する。
CPU70は、「カラコン」が選択されていないと判断した場合(S409:NO)、「アイライン」が選択されたか否かを判断する(ステップS411)。CPU70は、「アイライン」が選択されていると判断した場合(S411:YES)、「アイライン」に係る処理を実行し(ステップS412)、ステップS404へ処理を進める。「アイライン」に係る処理については詳細を後述する。
CPU70は、「アイライン」が選択されていないと判断した場合(S411:NO)、「つけまつげ」が選択されたか否かを判断する(ステップS413)。CPU70は、「つけまつげ」が選択されていると判断した場合(S413:YES)、「つけまつげ」に係る処理を実行し(ステップS414)、ステップS404へ処理を進める。「つけまつげ」に係る処理については詳細を後述する。
CPU70は、「つけまつげ」が選択されていないと判断した場合(S413:NO)、「ヘアカラー」が選択されたか否かを判断する(ステップS415)。CPU70は、「ヘアカラー」が選択されていると判断した場合(S415:YES)、「ヘアカラー」に係る処理を実行し(ステップS416)、ステップS404へ処理を進める。「ヘアカラー」に係る処理については詳細を後述する。CPU70は、ステップ415にて「ヘアカラー」が選択されていないと判断した場合(S415:NO)、他のタブ等が選択されているので処理をステップS404へ進める。
CPU70は、ステップS404にて「メイク」の落書き編集受け付けを終了すると判断した場合(S404:YES)、CPU70は、処理を図7のフローチャートに示したステップS305へ処理を戻す。
次に、図8のフローチャートを参照して説明した「メイク」の落書き編集受け付けの詳細をメイクの種類別に順に説明する。なお以下に説明する複数の種類のメイクについての落書き編集は、撮影により得られた画像上に重畳される複数のレイヤーに夫々対応付けられる。図9は、落書き編集に係るレイヤー構造の一例を模式的に示す説明図である。図9に示すように、撮影により得られた画像データに基づき抽出された1又は複数の人物被写体領域を含む画像上に、6種類のメイク夫々について自動的に描画される画像用のレイヤーが重畳され、更に手動で描画されるメイクの画像のレイヤーが重畳されている。詳細には下から、リップ、チーク、カラコン、アイライン、つけまつげ2(下)、及びつけまつげ1(上)の自動描画用と、ヘアカラー以外の手動描画用、ヘアカラーの手動描画用の順で重畳されている。異なるレイヤーに対応付けて記憶される落書きは、別個に表示/非表示、削除等が可能である。
<1.「リップ」について>
「リップ」について図5の落書き用操作画面の内容例を参照して説明する。「リップ」は唇へ口紅又はリップグロスを塗布するメイクを施したような画像処理を行なう機能である。「リップ」の機能では唇領域を自動的に特定して化粧を施す自動モードのみが存在する。図5中のプレビュー表示部301に対応するメイクパレット310には、メイク選択部102で「リップ」が選択された場合に表示される自動モードのときのキャンバス部107の内容例が示されている。「リップ」が選択されている場合、キャンバス部107には複数種類のリップスティックに夫々対応した複数のリップ選択アイコン721、「リップ」のメイクを消去するOFFボタン723、一部を消去する消しゴム選択ボタン724が配置される。
画像処理部7のHDD72に記憶されているメイク用情報720は、図5のキャンバス部107に示されている画像に対応するリップ用の色、テクスチャ及びグラデーションパターンを識別するリップパターン情報を複数種類含む。複数種類のリップパターン情報は例えば、色味の異なる複数のピンク、オレンジ、レッドなどの色情報、色情報に加えて光沢感を出すためのテクスチャ情報、更に上唇と下唇で色味又は濃淡を変化させるグラデーションパターンの情報が含まれる。テクスチャ情報は例えば、微細な粒子又は金属箔が散りばめられたような画像、又は光沢部分のパターン画像を含む。グラデーションパターンの情報は例えば、混合される複数の色の情報と、色を変化させる位置、各色の透明度等の情報を含む。
CPU70はまず、「リップ」について以下の事前処理を実行しておく。具体的にはCPU70は、図4のフローチャートに示したステップS204にて特定された1又は複数の人物の顔領域、及び口領域に基づいて、各人物用の顔領域に重畳させる唇画像を作成しておく事前処理を行なう。図10は、「リップ」用の事前処理の手順の一例を示すフローチャートである。
CPU70は、複数の画像データから1つの画像データを選択し(ステップS501)、選択中の画像データにて抽出されている1又は複数の人物被写体領域の内の顔領域の中から1つの顔領域を選択する(ステップS502)。CPU70は選択した顔領域にて特定されている口領域(上唇及び下唇又は唇全体)の輪郭を特定する(ステップS503)。CPU70は、特定した輪郭に基づき唇マスク画像を作成し(ステップS504)、選択中の顔領域と対応付けてメモリ71又はHDD72に記憶する(ステップS505)。
CPU70は、記憶した唇マスク画像に基づいてグラフィックボード73を用い、選択中の顔領域から唇領域を抽出して唇画像を作成する(ステップS506)。このときCPU70は、作成した唇画像を口領域の中心から外側へ向けて1又は複数画素分拡大しておいてもよい。異なる画素数分拡大した複数の唇画像を段階的に作成してもよい。
CPU70は、HDD72に記憶されている複数種類のリップパターン情報の内、1つのリップパターン情報を選択し(ステップS507)、選択したリップパターン情報に含まれる情報に基づく色、テクスチャ、及びグラデーションパターンによって唇画像を塗る描画処理を行なう(ステップS508)。CPU70は、処理後の唇画像を選択中の顔領域、及び選択中のリップパターン情報と対応付けてメモリ71又はHDD72に記憶する(ステップS509)。CPU70は、ステップS508及びステップS509の処理を、1つの唇画像の1つのリップパターン情報に対し、濃淡、透明度又は重畳させるテクスチャ画像の透明度等を予め記憶してある複数の段階で変更して実行し、各段階の唇画像を区別して記憶する。したがってCPU70は、複数段階全てについて処理を行なったか否か判断し(ステップS510)、未処理の段階があると判断した場合(S510:NO)、処理をステップS508へ戻して未処理の段階について処理を実行する。
CPU70は、ステップS510にて予め記憶してある複数段階全てについて処理を行なったと判断した場合(S510:YES)、全てのリップパターン情報を選択したか否かを判断する(ステップS511)。未選択のリップパターン情報が存在すると判断された場合(S511:NO)、CPU70は処理をステップS507へ戻す。
CPU70は、全てのリップパターン情報を選択したと判断した場合(S511:YES)、画像データ中の全ての顔領域を選択したか否かを判断する(ステップS512)。CPU70は、未選択の顔領域が存在すると判断した場合(S512:NO)、処理をステップS502へ戻す。CPU70はステップS512で全ての顔領域を選択したと判断した場合(S512:YES)、撮影回数分の全画像データを選択したか否かを判断し(ステップS513)、未選択の画像データが存在すると判断した場合(S513:NO)、処理をステップS501へ戻す。CPU70は、全画像データを選択したと判断した場合(S513:YES)、「リップ」用の事前処理を終了する。
次に、落書き用操作画面でユーザが操作している間の「リップ」についてのリアルタイム処理について説明する。図11は、「MAKE」の操作の受け付け中における「リップ」に係る処理手順の一例を示すフローチャートである。以下に説明する処理は、図8のフローチャートのステップS406の詳細に対応する。
CPU70はまず、自動モードのみに実行すべき個別/全員切替処理を実行する(ステップS601)。ステップS601で実行される個別/全員切替処理について説明する。図12は、個別/全員切替処理の一例の詳細を示すフローチャートである。CPU70は、個別/全員切替処理の実行がメイクに係る処理の中で初回であるか否かを判断し(ステップS3001)、初回であると判断した場合(S3001:YES)、初期的に「みんな」を選択し(ステップS3002)、特定されている全部の顔領域を含む所定範囲の画像を顔サンプル表示部103に表示する(ステップS3003)。CPU70は、顔切替部106を無効化し(ステップS3004)、次のステップS3005へ処理を進める。初回以外では、異なるメイクの種類が選択された場合でも直前に個別を選択していたのか、全員を選択していたのかを保持しておくためである。
ステップS3001にて初回でないと判断された場合(S3001:NO)、及びS3004の後は、CPU70は「みんな」が選択中であるか否かを判断する(ステップS3005)。「みんな」が選択中であると判断された場合(S3005:YES)、CPU70は個別選択部104により「個別」が選択されたか否かを判断する(ステップS3006)。「個別」が選択されていないと判断された場合(S3006:NO)、CPU70は、編集対象の画像データにて特定された全顔領域をメイク対象とし(ステップS3007)、個別/全員切替処理を終了し、各別のメイク編集を受け付ける処理を続行する。
ステップS3006にて個別選択部104がタッチペン31aによって選択され、「個別」が選択されたと判断された場合(S3006:YES)、CPU70は顔切替部106を有効化すると共に(ステップS3008)、編集対象の画像データにて特定されている全顔領域の内の1つの顔領域を選択する(ステップS3009)。CPU70は選択された顔領域を含む画像を顔サンプル部103に表示し(ステップS3010)、選択されている顔領域をメイク対象とし(ステップS3011)、個別/全員切替処理を終了し、各別のメイク編集を受け付ける処理を続行する。
ステップS3005にて「みんな」が選択中でないと判断された場合(S3005:NO)、CPU70は顔切替部106がタッチペン31aによって選択されたか否かを判断する(ステップS3012)。CPU70は、顔切替部106が選択されたと判断した場合(S3012:YES)、選択されている顔領域に対して他の顔領域を巡回的に選択し(ステップS3013)、処理をステップS3010へ進める。
ステップS3012にて顔切替部106が選択されていないと判断された場合(S3012:NO)、全員選択部105がタッチペン31aによって選択され、「みんな」が選択されたか否かを判断する(ステップS3014)。「みんな」が選択されたと判断された場合(S3014:YES)、CPU70は特定されている全部の顔領域を含む所定範囲の画像を顔サンプル表示部103に表示し(ステップS3015)、顔切替部106を無効化して(ステップS3016)、処理をステップS3007へ進める。
ステップS3014にて「みんな」が選択されていないと判断された場合(S3014:NO)、他の部分が選択されたか編集処理がなされているので、CPU70は処理を図7のフローチャートへ戻し、他の操作を受け付ける処理を続行する。
このように、本実施の形態における「メイク」の落書き編集受け付けでは、メイク対象を個別/全員で切り替えることが可能である。したがって複数のユーザで複数の撮影がなされた場合に、複数回の撮影に対応する複数の画像データ毎に、全員分の顔領域に同一のメイクを施す画像処理を行なうのか、個別の顔領域に夫々異なるメイクを施す画像処理を行なうのかを、ユーザが選択することが可能である。
図11のフローチャートに戻り、説明を続ける。CPU70は個別/全員切替処理を行なった後、リップ選択アイコン721が選択されたか否かを判断する(ステップS602)。CPU70は、リップ選択アイコン721が選択されたと判断した場合(S602:YES)、選択されたリップ選択アイコン721に対応するリップパターン情報を識別する(ステップS603)。
CPU70は、メイク対象の顔領域(「個別」が選択されている場合は選択中の1つの顔領域、「みんな」が選択されている場合は全顔領域)に対応付けて記憶されている各顔領域に対して位置が決定され、拡縮、回転等の変形が完了している唇画像の内、ステップS603で識別されたリップパターン情報が対応付けられている唇画像を抽出する(ステップS604)。CPU70は、抽出した唇画像の内、複数の段階の内の所定の段階(例えば中央の段階)で処理が実行された唇画像を選択し(ステップS605)、選択した唇画像を、リップの自動描画用のレイヤーにおける対応する顔領域に対応する位置に重畳させて表示する(ステップS606)。これにより、プレビュー表示部301の対応する顔領域内の唇の位置に唇画像が重畳される。
CPU70は更に、プレビュー表示部301中のメイク対象の顔領域の近傍の唇画像以外の位置に、調整用画面を更に重畳させて表示する(ステップS607)。調整用画面が重畳されるレイヤーは図9に示した各メイク用のレイヤーよりも上である。調整用画面には複数の段階を調整するためのスライダーコントロール及びOKボタンが含まれている。CPU70は、調整用画面のOKボタンが選択されたか否かを判断し(ステップS608)、OKボタンが選択された場合(S608:YES)、表示中の唇画像を確定させて記憶し(ステップS609)、調整用画面を非表示とし(ステップ610)、「リップ」処理に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
ステップS608にてOKボタンが選択されていないと判断された場合(S608:NO)、CPU70は、スライダーコントロールが選択された否かを判断する(ステップS611)。CPU70はスライダーコントロールが選択されたと判断した場合(S611:YES)、スライダーコントロールのつまみの動き、「+」「−」の選択、又は直接的に選択された段階に応じて、表示中の唇画像を他の段階(連続する段階)で処理が実行された唇画像へ差し替え(ステップS611)、処理をステップS608へ戻す。
ステップS611にてスライダーコントロールが選択されていないと判断した場合(S611:NO)、CPU70は調整用画面外が選択されたか否かを判断する(ステップS613)。CPU70は、調整用画面外が選択されていないと判断した場合(S613:NO)、処理をステップS608へ戻す。なお、CPU70はCANCELボタンを更に含む調整用画面を表示するようにし、OKボタン又はCANCELボタンのいずれかが選択されるまで待機するようにしてもよい。
ステップS613にて調整用画面外が選択されたと判断した場合(S613:YES)、CPU70は表示している唇画像をキャンセル扱いとして非表示とし、更に調整用画像を非表示とし(ステップS614)、「リップ」処理に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
CPU70は、ステップS602にてリップ選択アイコン721が選択されていないと判断した場合(S602:NO)、OFFボタン723が選択されたか否かを判断する(ステップS615)。CPU70はOFFボタン723が選択されたと判断した場合(S615:YES)、表示している唇画像を非表示として確定を解除し(ステップS616)、「リップ」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
CPU70は、OFFボタン723が選択されていないと判断した場合(S615:NO)、そのまま「リップ」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
なお消しゴム選択ボタン724については、CPU70は、消しゴム選択ボタン724が選択された後にタッチペン31aの接触箇所に対応する軌跡の座標情報を記憶し、記憶した座標情報に沿って、選択された太さにて唇画像の一部を非表示(透明)にすればよい。
図13は、調整用画面の表示例を示す説明図であり、図14は、調整用画面によって調整されるリップメイクの内容例を示す説明図である。図13にはプレビュー表示部301に表示されているメイク対象の顔領域に、調整用画面305が重畳表示されていることが示されている。調整用画面305にはスライダーコントロール306、及びOKボタン307が含まれている。図14に示すように、スライダーコントロール306のつまみの位置に応じて、プレビュー表示部301に表示されているメイク対象の顔領域に重畳されている唇画像が差し替えられる。唇画像が、1つのリップパターン情報に対し、光沢感を出すテクスチャ画像の透明度等を予め記憶してある複数の段階で変更して作成されている場合、唇画像の差し替えによって光沢感の強弱が変更される。これによりユーザは、マット感のある唇から、グロスを乗せたような光沢感の唇までの間で、リップメイクの光沢感の強弱を好みに合わせて調整することができる。なお、色の濃淡を調整できるようにしてもよい。なおスライダーコントロール306ではなく、リップの光沢感の強弱を段階的に選択することが可能な他のコントロールであってもよい。
<2.「チーク」について>
「チーク」について図5の落書き用操作画面の内容例を参照して説明する。「チーク」は、頬領域への頬紅を塗布するメイクを施したような画像処理を行なう機能である。「チーク」の機能では頬領域を自動的に特定して化粧を施す自動モードと、ユーザが手動操作によって頬領域にチーク用画像を配置する手動モードとがあり、いずれか選択できる。なお顔領域及び頬領域の特定に成功している場合、初期的には自動モードが選択される。顔領域及び頬領域の特定に失敗した場合は、手動モードのみで以下に示す処理が実行される。図5中のプレビュー表示部302に対応するメイクパレット310には、メイク選択部102で「チーク」が選択された場合に表示される自動モードのときのキャンバス部107の内容例が示されている。自動モードにおけるキャンバス部107には複数種類のチークに夫々対応した複数のチーク選択アイコン731、「チーク」のメイク操作を手動モードに切り替えるための手動ボタン732、「チーク」のメイクを消去するOFFボタン733、及び一部を消去する消しゴム選択ボタン734が含まれる。
画像処理部7のHDD72に記憶されているメイク用情報720は、図5のキャンバス部107に示されている画像に対応する複数種類のチーク用画像を含む。チーク用画像は例えば、略円形、ハート形、卵形、扁平な楕円形などの形状で、ピンク、レッド、オレンジ等の異なる色で彩色されている。またチーク用画像は夫々、半透明であって更に周囲がぼかされていて顔領域上に重畳された場合に自然に見えるようにしてある。チーク用画像は各形状及び色に加え、透明でないラメ、ホログラム、ラインストーン、スタッズ、又はシール等の光輝を放つ装飾物の画像が含まれるものもある。これらの装飾用の画像によって、頬骨周辺にキラキラとした光輝を放つ細粒等を散りばめるメイクを施したような画像を顔領域に重畳させることが可能である。
CPU70は「チーク」について以下の事前処理を実行しておく。具体的にはCPU70は、図4のフローチャートに示したステップS204にて特定された1又は複数の人物の顔領域、各器官領域に基づいて、各人物の顔領域に重畳させるチーク用画像の色の変更、拡縮、傾きの変更等をしておく事前処理を行なう。図15は、「チーク」用の事前処理の手順の一例を示すフローチャートである。
CPU70は、複数の画像データから1つの画像データを選択し(ステップS701)、選択中の画像データにて抽出されている1又は複数の人物被写体領域の内の顔領域の中から1つの顔領域を選択する(ステップS702)。CPU70は選択した顔領域にて特定されている顔の輪郭、及び各器官領域に基づき、顔領域内の所定の位置(中心を通る中心線の座標等)及びチーク領域を特定する(ステップS703)。チーク領域は、特定されている顔の輪郭、目の輪郭の下部分、及び鼻の輪郭で囲まれる左右に分かれた領域である。CPU70は、特定したチーク領域のチークマスク画像を作成し(ステップS704)、選択中の顔領域と対応付けてメモリ71又はHDD72に記憶する(ステップS705)。
CPU70は、メイク用情報720中の複数種類のチーク用画像の内の1つを選択し(ステップS706)、ステップS703で特定した顔領域内の所定の位置又はチーク領域に基づいて、選択中のチーク用画像を重畳させる位置(画像内の座標)、大きさ、及び傾きを決定する(ステップS707)。CPU70は、選択中のチーク用画像を、ステップS707で決定した位置に、決定した大きさ及び傾きで配置した重畳用のチーク用画像を、選択中の顔領域と対応付けてメモリ71又はHDD72に記憶する(ステップS708)。CPU70は、ステップS708で記憶した重畳用のチーク用画像の色の濃淡又は透明度を予め記憶してある複数の段階で変更し、複数の段階の重畳用のチーク用画像を区別してメモリ71又はHDD72に記憶する(ステップS709)。
次にCPU70は、全てのチーク用画像を選択したか否かを判断する(ステップS710)。未選択のチーク用画像が存在すると判断された場合(S710:NO)、CPU70は処理をステップS706へ戻す。
CPU70は、全てのチーク用画像を選択したと判断した場合(S710:YES)、画像データ中の全ての顔領域を選択したか否かを判断する(ステップS711)。CPU70は、未選択の顔領域が存在すると判断した場合(S711:NO)、処理をステップS702へ戻す。CPU70はステップS711で全ての顔領域を選択したと判断した場合(S711:YES)、撮影回数分の全画像データを選択したか否かを判断し(ステップS712)、未選択の画像データが存在すると判断した場合(S712:NO)、処理をステップS701へ戻す。CPU70は、全画像データを選択したと判断した場合(S712:YES)、「チーク」用の事前処理を終了する。このようにチーク用画像は顔領域の位置及び大きさ、前記複数の画素の配列方向に対する角度に基づき、顔領域内に収まるように変形され、決定された位置、大きさ、角度で重畳される。なおCPU70は、顔領域及び頬領域の特定に失敗した場合、図15のフローチャートに示した事前処理に係る処理は実行しない。
次に、落書き用操作画面でユーザが操作している間の「チーク」についてのリアルタイム処理について説明する。図16は、「MAKE」の操作の受け付け中における「チーク」に係る処理手順の一例を示すフローチャートである。以下に説明する処理は、図8のフローチャートのステップS408の詳細に対応する。
CPU70はまず、自動モードが選択されているか否かを判断する(ステップS801)。CPU70は、自動モードが選択されていると判断した場合(S801:YES)、図12のフローチャートに示した個別/全員切替処理を実行してメイク対象を判別する(ステップS802)。
CPU70は、チーク選択アイコン731が選択されたか否かを判断する(ステップS803)。CPU70は、チーク選択アイコン731が選択されたと判断した場合(S803:YES)、選択されたチーク選択アイコン731に対応するチーク用画像を識別する(ステップS804)。
CPU70は、メイク対象の顔領域(「個別」が選択されている場合は選択中の1つの顔領域、「みんな」が選択されている場合は全顔領域)に対応付けて記憶されているチーク用画像の内、ステップS804で識別されたチーク用画像に対応する重畳用のチーク用画像(位置、大きさ、角度等決定、変形、配置済み)を記憶されている中から抽出する(ステップS805)。CPU70は、抽出した重畳用のチーク用画像の内、複数の段階の内の略中央の段階で処理が実行された重畳用のチーク用画像を選択し(ステップS806)、選択した重畳用のチーク用画像を、チークの自動描画用のレイヤーにおける対応する顔領域上の対応する位置に重畳するように、チーク用マスク画像を利用して表示する(ステップS807)。これにより、プレビュー表示部302の対応する顔領域内の頬領域に重畳用のチーク用画像が重畳される。
CPU70は、レビュー表示部302中のメイク対象の顔領域の近傍のチーク領域以外の位置に、調整用画面を更に重畳させて表示する(ステップS808)。調整用画面には複数の段階間を調整するためのスライダーコントロール及びOKボタンが含まれている。CPU70は、調整用画面のOKボタンが選択されたか否かを判断し(ステップS809)、OKボタンが選択されたと判断した場合(S809:YES)、表示中の重畳用のチーク用画像を確定させて記憶し(ステップS810)、調整用画面を非表示とし(ステップS811)、「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
ステップS809にてOKボタンが選択されていないと判断された場合(S809:NO)、CPU70は、スライダーコントロールが選択された否かを判断する(ステップS812)。CPU70はスライダーコントロールが選択されたと判断した場合(S812:YES)、スライダーコントロールのつまみの動き、「+」「−」の選択、「+」「−」の選択、又は直接的に選択された段階に応じて、表示中の重畳用のチーク用画像を他の段階(隣接する段階の濃淡又は透明度)で処理が実行されたチーク用画像へ差し替えることで変更し(ステップS813)、処理をステップS809へ戻す。
ステップS812にてスライダーコントロールが選択されていないと判断された場合(S812:NO)、CPU70は調整用画面外が選択されたか否かを判断する(ステップS814)。CPU70は、調整用画面外が選択されていないと判断した場合(S814:NO)、処理をステップS809へ戻す。なおCPU70はCANCELボタンを更に含む調整用画面を表示するようにし、OKボタン又はCANCELボタンのいずれかのボタンが選択されるまで待機するようにしてもよい。
ステップS814にて調整用画面外が選択されたと判断された場合(S814:YES)、CPU70は、表示している重畳用のチーク用画像をキャンセル扱いとして非表示とし、更に調整用画面を非表示とし(ステップS815)、「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
このように自動的にチーク用画像の位置を決定して変形したものを重畳させ、調整用画面にて複数段階への変更を受け付ける処理により、図13及び図14で示した「リップ」の調整用画面を用いた操作と同様に、「チーク」の濃淡が変更されたチーク用画像の差し替えが行なわれる。これにより、ユーザは、自動的に配置されたチーク用画像の濃淡を直感的に調整することができる。なおチーク用画像における濃淡又は透明度は、事前処理ではなく「チーク」に係る処理中のステップS813にてグラフィックボード73を使用してリアルタイムに変更して表示するようにしてもよい。なおスライダーコントロール306ではなく、チークの濃淡又は透明度を段階的に選択することが可能な他のコントロールによって変更を受け付けるようにしてもよい。
CPU70は、ステップS803にてチーク選択アイコン731が選択されていないと判断した場合(S803:NO)、OFFボタン733が選択されたか否かを判断する(ステップS816)。CPU70はOFFボタン733が選択されたと判断した場合(S816:YES)、表示しているチーク用画像を非表示として確定を解除し(ステップS817)、「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。CPU70は、ステップS816にてOFFボタン733が選択されていないと判断した場合(S816:NO)、そのまま「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
ステップS801にて、手動ボタン732が選択されたことにより手動モードが選択されていると判断された場合(S801:NO)、CPU70は図6に示した手動モードの場合のメイクパレット310にて操作を受け付ける。図6に示すように手動モードの場合、キャンバス部107には、チーク選択アイコン731、メイク操作を自動モードへ切り替えるための自動ボタン735、及び描画されたチークの一部を消去する消しゴム選択ボタン736が含まれる。ユーザは、手動モードにてチークに係るメイクの操作を行なう場合、タッチペン31aにてチーク選択アイコン731を選択し、素材サンプル表示部108の内容を確認しながら、対応するプレビュー表示部302にドラッグし、チーク用画像を重畳させたい場所でタッチペン31aをディスプレイ30aから離す。CPU70はタッチペン31aがディスプレイ30aから離れた箇所を特定し、特定した箇所の位置に選択されたチーク選択アイコン731に対応するチーク用画像を重畳させる。
具体的にはCPU70はチーク選択アイコン731が選択されたか否かを判断する(ステップS818)。CPU70は、手動モードにてチーク選択アイコン731が選択されたと判断した場合(S818:YES)、選択されたチーク選択アイコン731に対応するチーク用画像を識別する(ステップS819)。CPU70は、手動モードの場合の操作画面に対する上述のような手動操作を受け付け(ステップS820)、識別されているチーク用画像をHDD72のメイク用情報720から読み出し、ヘアカラー以外の手動描画用のレイヤー上で、手動操作に基づいて特定された位置に重畳するように、読み出したチーク用画像を表示する(ステップS821)。これにより、プレビュー表示部302の対応する顔領域内の頬領域に、選択されたチーク選択アイコン731に対応するチーク用画像(元の大きさ、角度)が重畳される。
次にCPU70は、手動操作を受け付ける場合も、調整用画面を更に重畳させて表示する(S808)。手動操作を受け付ける場合の調整用画面には、回転角度を調整するための回転ボタン(例えば一回に画面上で時計回り又は反時計回りに3度ずつ回転)、手動描画用のレイヤーに重畳させたチーク用画像の大小を調整するスライダーコントロール、濃淡を調整するためのスライダーコントロール及びOKボタンが含まれている。
図17は、手動モードの場合の調整用画面の表示例を示す説明図である。図17にはプレビュー表示部302に表示されているメイク対象の顔領域に重畳されて手動操作時の調整用画面308が表示されていることが示されている。手動モードにおける調整用画面が表示される際には、プレビュー表示部301内を拡大し、表示箇所を移動できるように移動ONボタン3091及び拡大表示ボタン3092が落書き用操作画面に選択可能に配置される。拡大表示ボタン3092が選択された場合、顔領域を含む部分が表示されるように、撮影により得られた画像の上部分を所定の倍率でズームアップ表示するようにするとよい。またチークに係る処理における手動操作時の調整用画面308には、上述の回転ボタン3081、大小を調整するスライダーコントロール3082、濃淡を調整するためのスライダーコントロール3083及びOKボタン307が含まれている。なお手動モードにおける調整用画面は、落書き用操作画面内のペンパレット303及びメイクパレット304と重畳しない位置に移動が可能とすることにより操作性を向上させる。ただし、プレビュー表示部301に対応する調整用画面はプレビュー表示部302側には移動できないように(逆も同様に)、移動が制限されるとよい。
図16のフローチャートに戻り説明を続ける。CPU70は、図17に示したような手動用の調整用画面にてOKボタンが選択されたか否かを判断し(S809)、OKボタンが選択されたと判断した場合は(S809:YES)、表示中の重畳用のチーク用画像を確定させて記憶し(S810)、調整用画面を非表示として(S811)、「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。また、手動モードにおける調整用画面にていずれかのスライダーコントロールが選択されたか否かを判断し(S812)、CPU70はスライダーコントロールが選択されたと判断した場合(S812:YES)、スライダーコントロールのつまみの動き、「+」「−」の選択、又は直接的に選択される段階に応じて、表示中の重畳用のチーク用画像の角度、大きさ、濃淡を変更し(S813)、処理をステップS809へ戻す。これによりユーザは、タッチペン31aのドラッグによって指定した位置に重畳されているチーク用画像の角度、サイズ、濃淡を調整用画面308にて調整することが可能である。同様にしてCPU70は、手動モードの調整用画面においても調整用画面外が選択されたと判断した場合(S814:YES)、表示しているチーク用画像をキャンセル扱いとして非表示及び調整用画面を非表示とし(S815)、「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
CPU70は、ステップS818で手動モードの場合においてチーク選択アイコン731が選択されていないと判断した場合(S818:NO)、自動ボタン735が選択されたか否かを判断する(ステップS822)。CPU70は自動ボタン735が選択されたと判断した場合(S822:YES)、処理をステップS801へ戻し、自動モードが選択されていると判断して処理を続行する。
CPU70は、ステップS822で自動ボタン735が選択されていないと判断した場合(S822:NO)、そのまま「チーク」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
このように手動モードにてチーク用画像を重畳させる場合も、プレビュー表示部302に表示される調整用画面308にて大小、角度、濃淡への変更を受け付ける処理により、ユーザは、詳細な調整を直感的に行なうことができる。また手動モードで重畳されるチーク用画像と、自動モードで重畳されるチーク用画像とが別のレイヤー上に描画されて別個に記憶されるため、重ね付けも可能である。なお、手動ボタン732が選択された場合に、自動描画用のレイヤーにおけるチーク用画像を非表示とし、手動モードで受け付けたチーク用画像のみを表示し、逆に、自動ボタン735が選択された場合に、手動描画用のレイヤーにおけるチーク用画像を非表示とするようにしていずれか一方に切り替えるようにしてもよい。
なおCPU70は、自動モード時のキャンバス部107における消しゴム選択ボタン734が選択された場合、その後のタッチペン31aの軌跡を記憶し、チークの自動描画用のレイヤーにおける重畳用のチーク用画像の一部を、選択されている太さにて軌跡に沿って非表示(透明)とする。同様に、手動モード時のキャンバス部107における消しゴム選択ボタン736が選択された場合は同様の処理を、手動描画用のレイヤーに対して行なえばよい。なお手動描画用のレイヤーもメイクの種類別に分けてもよいが、本実施の形態では図9に示した通りヘアカラー以外については共通としている。したがって他のメイクに係る画像の一部を透明としないようにメイクの種類別に領域を識別しておいてもよい。
<3.「カラコン」について>
「カラコン」について画面例を参照して説明する。「カラコン」はカラコンを装着させたような画像処理を行なう機能である。「カラコン」の機能では目の領域及び虹彩の領域を自動的に特定してカラコンを画像処理で装着させる自動モードと、ユーザが手動操作によって目の領域にカラコン画像を配置する手動モードとがあり、いずれか選択できる。なお「カラコン」の機能においても目の領域及び虹彩の領域の特定に成功している場合、初期的に自動モードが選択され、特定に失敗している場合は手動モードのみで以下の処理が実行される。図18は、「カラコン」が選択されている場合のメイクパレット310の表示例を示す説明図である。図18には自動モードのときのキャンバス部107の内容例が示されている。「カラコン」が選択されている場合の自動モードにおけるキャンバス部107には複数種類のカラコンに夫々対応したカラコン選択アイコン741、手動モードへ切り替えるための手動ボタン742、「カラコン」のメイクを消去するOFFボタン743、及び一部を消去する消しゴム選択ボタン744が配置される。「カラコン」が選択されている場合の手動モードにおけるメイクパレット310の画面例については「チーク」における例(図6)と同様であるから説明を省略する。
画像処理部7のHDD72に記憶されているメイク用情報720は、図18のキャンバス部107のカラコン選択アイコン741の画像に対応する複数種類のカラコン画像を含む。カラコン画像は例えば、褐色、灰色、緑色等の異なる色、及び異なる着色範囲のカラーコンタクトレンズの画像である。
CPU70は「カラコン」について以下の事前処理を実行しておく。なお以下の処理は目の領域及び虹彩の領域の特定に失敗している場合は実行されない。具体的にはCPU70は、図4のフローチャートに示したステップS204にて特定された1又は複数の人物の顔領域、目の領域に基づいて、各人物の顔領域に重畳させるカラコン画像の拡縮等をしておく事前処理を行なう。図19は、「カラコン」用の事前処理の手順の一例を示すフローチャートである。
CPU70は、複数の画像データから1つの画像データを選択し(ステップS901)、選択中の画像データにて抽出されている1又は複数の人物被写体領域の内の顔領域の中から1つの顔領域を選択する(ステップS902)。CPU70は選択した顔領域にて特定されている目の領域に基づき、目の輪郭及び虹彩(黒目部分)の輪郭(輪郭上の複数点の座標上方)並びに虹彩領域の中心位置を特定する(ステップS903)。
CPU70は、特定した輪郭に基づき、目マスク画像及び虹彩マスク画像を作成し(ステップS904)、虹彩マスク画像に基づき虹彩部分の画素の行方向における最大の大きさ及び列方向における最大の大きさを特定し(ステップS905)、特定した大きさに所定の比率を乗算して得られる円形の半径に基づき、カラコン画像の拡縮率を算出する(ステップS906)。
CPU70は、メイク用情報720中の複数種類のカラコン画像の内の1つを選択し(ステップS907)、ステップS903で特定した各虹彩領域の中心位置に基づき、ステップS907で選択したカラコン画像を重畳させる位置を決定し(ステップS908)、決定した位置に配置したカラコン画像をステップS906で算出した拡縮率で拡縮し(ステップS909)、決定した位置に拡縮されて配置されたカラコン画像と、目マスク画像402とのAND演算により重畳用のカラコン画像を作成する(ステップS910)。CPU70は、選択中のカラコン画像を識別する情報と、ステップS910で作成した重畳用のカラコン画像を、選択中の顔領域と対応付けてメモリ71又はHDD72に記憶する(ステップS911)。CPU70は、ステップS911で記憶した重畳用のカラコン画像の色の濃淡又は透明度を予め記憶してある複数の段階で変更し、各段階の重畳用のカラコン画像を区別してメモリ71又はHDD72に記憶する(ステップS912)。
CPU70は、全てのカラコン画像を選択したか否かを判断する(ステップS913)。未選択のカラコン画像が存在すると判断された場合(S913:NO)、CPU70は処理をステップS907へ戻す。
CPU70は、全てのカラコン画像を選択したと判断した場合(S913:YES)、画像データ中の全ての顔領域を選択したか否かを判断する(ステップS914)。CPU70は、未選択の顔領域が存在すると判断した場合(S914:NO)、処理をステップS902へ戻す。CPU70はステップS914で全ての顔領域を選択したと判断した場合(S914:YES)、撮影回数分の全画像データを選択したか否かを判断し(ステップS915)、未選択の画像データが存在すると判断した場合(S915:NO)、処理をステップS901へ戻す。CPU70は、全画像データを選択したと判断した場合(S915:YES)、「カラコン」用の事前処理を終了する。
図20は、重畳用のカラコン画像を作成する過程を説明する説明図である。図20中の左上に示される顔領域から、目の輪郭画像(目マスク画像)402と、目の中の虹彩領域の輪郭画像(虹彩マスク画像)403とが作成される。虹彩マスク画像に基づき、各虹彩領域の画素の行方向における最大の大きさ(d1,d3)及び列方向における最大の大きさ(d2,d4)が特定され、特定された大きさに基づいてカラコン画像の拡縮率が算出され、拡縮されたカラコン画像401と目マスク画像402とのAND領域(ハッチング部分)が、重畳用のカラコン画像404として作成される。
次に落書き用操作画面でユーザが操作している間の「カラコン」についてのリアルタイム処理についてフローチャートで説明する。図21は、「MAKE」の操作の受け付け中における「カラコン」に係る処理手順の一例を示すフローチャートである。以下に説明する処理は、図8のフローチャートのステップS410の詳細に対応する。なお、図21のフローチャートに示す各処理は、図16のフローチャートの「チーク」に係る処理手順における「チーク」を「カラコン」に置換したものであるので、対応するステップ番号を付して各ステップの詳細な説明は省略する。
「カラコン」についても、図13及び図14で示した「リップ」の調整用画面を用いた操作、図17に示した「チーク」の手動用の調整用画面を用いた操作と同様に、カラコン画像の濃淡及び大小の変更が行なわれる。なお「カラコン」に係る手動モード時の調整用画面には回転ボタンは含まれない。ユーザはカラコンの色又は濃淡を直感的に調整し、手動の場合においては大きさについても微調整が可能である。なおカラコン画像における濃淡又は透明度は、「カラコン」に係る処理中のステップS1013にてグラフィックボード73を使用してリアルタイムに変更して表示するようにしてもよい。
消しゴム選択ボタン744についても「チーク」同様に、CPU70は、消しゴム選択ボタン744が選択された場合に、その後のタッチペン31aの軌跡を記憶し、カラコンの自動描画用のレイヤーにおける重畳用のカラコン画像の一部を、選択されている太さにて軌跡に沿って非表示(透明)にすればよい。同様に手動モードにおける消しゴム選択ボタンが選択された場合も同様の処理を、手動描画用のレイヤーに対して行なう。
<4.「アイライン」について>
「アイライン」について画面例を参照して説明する。「アイライン」は上瞼又は下瞼の際を縁取るように線描したような画像処理を行なう機能である。「アイライン」の機能では上瞼又は下瞼の曲線を自動的に特定してアイラインを施す自動モードと、ユーザが手動操作によってアイライン画像を配置する手動モードとがあり、いずれか選択できる。なお、目の領域、上瞼又は下瞼の特定に成功している場合、初期的には自動モードが選択される。目の領域の特定に失敗している場合、手動モードのみで以下に示す処理が実行される。図22は、「アイライン」が選択されている場合のメイクパレット310の内容例を示す説明図である。図22には自動モードのときのキャンバス部107の内容例が示されている。「アイライン」が選択された場合の自動モードにおけるキャンバス部107には複数種類のアイラインに夫々対応したアイライン選択アイコン751、「アイライン」のメイク操作を手動で受け付ける手動ボタン752、「アイライン」メイクを消去するOFFボタン753、及び一部を消去する消しゴム選択ボタン754が配置される。「アイライン」が選択されている場合の手動モードにおけるメイクパレット310の画面例については「チーク」における例(図6)と同様であるから説明を省略する。
画像処理部7のHDD72に記憶されているメイク用情報720は、図22のキャンバス部107のアイライン選択アイコン751の画像に対応する複数種類のアイライン画像を含む。アイライン画像は、ブラウン系、ブラック系、又はピンク等の鮮色系で夫々描画された複数種類の形状のアイラインの画像と、目の周辺に散りばめられる光輝を放つ装飾の画像とを含む。図23は、予め記憶されているアイライン画像の内容例を示す説明図である。図23には、上瞼の際の全体を縁取った形状、一部を縁取った形状、目尻のみを縁取った形状のアイライン画像が示されている。また図23には、目尻上方又は目尻の下方に配置するラメ、ホログラム、ラインストーン、スタッズ、又はシール等の光輝を放つ装飾物の画像が示されている。図23に示すアイライン画像中の破線で示される曲線は、顔認識技術によって認識される目の輪郭の内、目頭(s)から目尻(e)までを結ぶ上部の輪郭、及び下部の輪郭に対応すべき曲線であり、これらはメイク用情報720内のアイライン画像に含まれている。
CPU70は「アイライン」について以下の事前処理を実行しておく。なお以下の処理は目の領域及の特定に失敗している場合は実行されない。具体的にはCPU70は、図4のフローチャートに示したステップS204にて特定された1又は複数の人物の顔領域、各器官領域に基づいて、各人物の顔の目領域付近に重畳させるアイライン画像の拡縮、傾きの変更等をしておく事前処理を行なう。図24は、「アイライン」用の事前処理の手順の一例を示すフローチャートである。
CPU70は、複数の画像データから1つの画像データを選択し(ステップS1101)、選択中の画像データにて抽出されている1又は複数の人物被写体領域の内の顔領域の中から1つの顔領域を選択する(ステップS1102)。CPU70は選択した顔領域にて特定されている目の領域の輪郭を特定する(ステップS1103)。また、CPU70は、目の領域の輪郭に基づいて、目頭及び目尻の位置を特定し(ステップS1104)、目頭及び目尻間を結ぶ線分の画像の画素の配列方向に対する角度を特定する(ステップS1105)。CPU70は、目の上瞼領域のマスク画像を作成してもよい。
CPU70は、メイク用情報720中の複数種類のアイライン画像の内の1つを選択し(ステップS1106)、選択したアイライン画像の上部又は下部の輪郭の目頭(s)又は目尻(e)をステップS1104で特定した目頭又は目尻の位置に一致させて(ステップS1107)、選択したアイライン画像の上部又は下部の輪郭の目頭(s)又は目尻(e)を結ぶ線分の角度を、ステップS1105で特定した角度と一致させる(ステップS1108)。CPU70は、アイライン画像の上部又は下部の輪郭の目頭(s)又は目尻(e)を結ぶ線分と、ステップS1104で特定した目頭及び目尻間を結ぶ線分とが一致するように、選択したアイライン画像を拡縮する(ステップS1109)。CPU70は、拡縮後のアイライン画像を微小な間隔で角度を変えて前記線分を軸として図面上の手前又は奥へ向けて三次元的に回転させたものを画像上に射影させる編集を、グラフィックボード73を利用して行ない(ステップS1110)。異なる角度で回転させた複数のアイライン画像の内、上部又は下部の曲線と、ステップS1103で特定した目の領域の輪郭との差分が最も少ないアイライン画像を選択し(ステップS1111)、選択した拡縮及び回転後のアイライン画像から、上部又は下部の輪郭に対応する曲線を消去し(ステップS1112)、消去後のアイライン画像を重畳用のアイライン画像として選択中の顔領域と対応付けてメモリ71又はHDD72に記憶する(ステップS1113)。右目及び左目の双方に対して上述の処理を行なう。また、ステップS1103にて特定されたいずれかの目領域が、ウィンクなどによって領域ではなく線分のみである場合、アイライン画像の上部の輪郭を、曲線側が目頭又は目尻よりも下方となるまで回転させて、差分が最も少ないアイライン画像を選択するとよい。
CPU70は、ステップS1113で記憶した拡縮及び回転後の重畳用のアイライン画像の色の濃淡又は透明度を予め記憶してある複数の段階で変更し、複数の段階の重畳用のアイライン画像を区別して記憶する(ステップS1114)。
次にCPU70は、全てのアイライン画像を選択したか否かを判断する(ステップS1115)。未選択のアイライン画像が存在すると判断された場合(S1115:NO)、CPU70は処理をステップS1106へ戻す。
CPU70は、全てのアイライン画像を選択したと判断した場合(S1115:YES)、画像データ中の全ての顔領域を選択したか否かを判断する(ステップS1116)。CPU70は、未選択の顔領域が存在すると判断した場合(S1116:NO)、処理をステップS1102へ戻す。CPU70はステップS1116で全ての顔領域を選択したと判断した場合(S1116:YES)、撮影回数分の全画像データを選択したか否かを判断し(ステップS1117)、未選択の画像データが存在すると判断した場合(S1117:NO)、処理をステップS1101へ戻す。CPU70は、全画像データを選択したと判断した場合(S1117:YES)、「アイライン」用の事前処理を終了する。
図25は、重畳用のアイライン画像を作成する過程を説明する説明図である。図25中(A)は、太線で示されている特定された目の領域の輪郭に基づき、特定された輪郭中の目頭(S)及び目尻(E)を結ぶ線分の角度に、アイライン画像の上部の輪郭の目頭(s)及び目尻(e)を結ぶ線分の角度を一致させた際のアイライン画像(S1107、S1108)を示している。図25中(B)は、特定された目の輪郭中の目頭(S)及び目尻(E)を結ぶ線分の長さと、アイライン画像の上部の輪郭の目頭(s)及び目尻(e)を結ぶ線分の長さとを一致させるように、アイライン画像を拡大させた際のアイライン画像(S1109)を示している。図25中(C)は、(B)の拡大後に、微小な間隔で角度を変えて前記線分を軸として回転させた(S1110)アイライン画像を示している。(C)に示されているアイライン画像の内、中央の矩形で囲まれたアイライン画像が、上部又は下部の輪郭に対応する曲線と、特定された目の領域の輪郭との差分が最も少ないとして選択されている。図25中(D)は、選択された拡大回転後のアイライン画像から、上部又は下部の輪郭に対応する曲線を消去して得られるアイライン画像を示している(S1112)。なお、図25中(D)では、重畳される目の領域の輪郭を一点鎖線にて示している。
このように本実施の形態では、目の領域の位置、大きさ、目尻若しくは目頭の位置に基づいて、アイライン画像の重畳位置、大きさ、角度が自動的に決定される。また、アイライン画像は装飾物の画像も含み、これらの装飾物の画像についても目の領域の位置、大きさ、目尻若しくは目頭の位置に基づいて、目尻から横へかけての領域の下方若しくは上方、又は目の下全体等、装飾の画像の重畳位置、大きさ、角度が決定される。
次に、落書き用操作画面でユーザが操作している間の「アイライン」についてのリアルタイム処理についてフローチャートで説明する。図26は、「MAKE」の操作の受け付け中における「アイライン」処理に係る処理手順の一例を示すフローチャートである。図26のフローチャートに示す処理は、図8のフローチャートのステップS412の詳細に対応する。なお、図26のフローチャートに示す各処理は、図16のフローチャートの「チーク」に係る処理手順における「チーク」を「アイライン」に置換したものと同様であるので、対応するステップ番号を付して各ステップの詳細な説明は省略する。
なおアイライン画像を自動的に重畳させた場合の調整用画面によって濃淡又は色味を複数段階で変更することが可能であるが、アイラインに係る処理においては、濃淡又は色味の変更を受け付けない構成としてもよい。この場合、図24のフローチャートに示した事前処理の内、ステップS1114については省略してもよい。また、アイライン画像の手動操作を受け付ける場合の調整用画面には、回転角度を調整するための回転ボタン、左右に反転させるための反転ボタン、湾曲具合の強弱を変更して瞼に沿わすためのボタン、重畳させたアイライン画像の大小を調整するスライダーコントロール、及びOKボタンが含まれている。
また、アイラインについても手動操作に基づいて重畳されるアイライン画像と、自動的に重畳されるアイライン画像とが別のレイヤー上に描画されて別個に記憶されるため、重ね付けが可能である。なお、手動ボタン752が選択された場合に、自動描画用のレイヤーにおけるアイライン画像を非表示とし、手動操作にて受け付けたアイライン画像のみを表示し、逆に、自動ボタンが選択された場合に、手動描画用のレイヤーにおけるアイライン画像を非表示とするようにしていずれか一方に切り替えるようにしてもよい。
消しゴム選択ボタン754についても「リップ」同様に、CPU70は、消しゴム選択ボタン754が選択された後のタッチペン31aの軌跡を記憶し、アイラインの自動描画用のレイヤーにおける重畳用のアイライン画像の一部を、選択されている太さにて軌跡に沿って非表示(透明)とする。同様に、手動モードにおける消しゴム選択ボタンが選択された場合は同様の処理を、手動描画用のレイヤーに対して行なえばよい。
このようにアイラインのメイクについて、濃淡又は色味を複数段階で変更して作成されているアイライン画像の差し替えにより、スライダーコントロールのつまみの位置に応じて濃淡又は色味が連続的に変化する。ユーザはメイク対象の顔領域が表示されているプレビュー表示部301(302)内でプレビュー画像を確認しながら、好みの濃淡又は色味のアイラインを選択することができる。
<5.「つけまつげ」について>
「つけまつげ」について画面例を参照して説明する。「つけまつげ」は目につけまつげを装着させたような画像処理を行なう機能である。「つけまつげ」の機能では「アイライン」同様、上瞼又は下瞼の曲線を自動的に特定してつけまつげを施す自動モードと、ユーザが手動操作によってつけまつげ画像を配置する手動モードとがあり、いずれか選択できる。なお、目の領域、上瞼又は下瞼の特定に成功している場合、初期的には自動モードが選択される。目の領域の特定に失敗している場合、手動モードのみで以下に示す処理が実行される。図27は、「つけまつげ」が選択されている場合のメイクパレット310の内容例を示す説明図である。図27には、自動モードのときのキャンバス部107の内容例が示されている。「つけまつげ」が選択されている場合、自動モードにおけるキャンバス部107には複数種類のつけまつげに夫々対応したつけまつげ選択アイコン761、「つけまつげ」のメイク操作を手動で受け付ける手動ボタン762、「つけまつげ」メイクを消去するOFFボタン763、及び一部を消去する消しゴム選択ボタン764が配置される。「つけまつげ」が選択されている場合の手動モードにおけるメイクパレット310の画面例については「チーク」における例(図6)と同様であるから説明を省略する。
画像処理部7のHDD72に記憶されているメイク用情報720は、図27のキャンバス部107のつけまつげ選択アイコン761の画像に対応する複数種類のつけまつげ画像を含む。つけまつげ画像は、ブラウン系、ブラック系で描画された複数種類の形状のつけまつげ画像を含む。図28は、予め記憶されているつけまつげ画像の内容例を示す説明図である。図28には、毛束感、毛の長さ若しくは密度、毛の流れ方、又は毛の色が各々異なる複数のつけまつげ画像、上下両方用のつけまつげ画像が示されている。図25に示すつけまつげ画像は、アイライン画像同様に、破線で示される曲線によって顔認識技術によって認識される目の輪郭の内、目頭(s)から目尻(e)までを上部の輪郭、及び下部の輪郭に対応すべき曲線(破線)を含む。
なおCPU70は、図28に示した複数種類のつけまつげ画像に対し、複数段階のつけまつげ画像を作成する事前処理を実行しておき、事前処理の結果をHDD72に記憶しておく。なお以下の処理は目の領域及の特定に失敗している場合は実行されない。図29は、複数段階のつけまつげ画像を作成する処理手順の一例を示すフローチャートである。
CPU70は、複数種類のつけまつげ画像から1つを選択する(ステップS2001)。CPU70は、選択したつけまつげ画像に対しグラフィックボード73を利用して距離変換を実行し、距離変換マスク画像を取得する(ステップS2002)。
ステップS2002の距離変換処理により、つけまつげ画像の画像内の各画素における背景画像からの距離、即ち輪郭からの距離が求められる。具体的にはグラフィックボード73により、モノクロームのつけまつげ画像は距離変換マスク画像に変換されて出力される。距離変換マスク画像は、輪郭からの距離が短い画素ほどα値(透明度)が最小値(0)に近く、輪郭からの距離が遠い画素ほどα値が最大値(255)に近くなる。図30は、距離変換マスク画像の内容例を模式的に示す説明図である。図30に示す内容例では、つけまつげ画像の距離変換マスク画像の一部を拡大して示している。距離変換マスク画像は、図30中の太線で示される輪郭からの距離が等しい画素が同様のα値で描画されるため、図30に示す如く、輪郭からの距離が等しい画素群の境界線が等高線のように区別できている。後述の処理では、つけまつげ画像を外側から図30に示す境界線に沿うように順に削り取るようにしてつけまつげのボリュームを複数段階に変化させたつけまつげ画像がHDD72に記憶される。
図29のフローチャートに戻り説明を続ける。
CPU70は、所定のつけまつげのボリューム変更の段階数を記憶してあるHDD72から読み出し(ステップS2003)、後続の演算用変数である比率Rの初期値と、段階数に応じた比率Rの減算値とを決定する(ステップS2004)。つけまつげの距離変換マスク画像内の1つの画素について、画素値(α値)と比率Rとの乗算値に基づき、透明率を算出する(ステップS2005)。ステップS2005にてCPU70は、画素値と比率Rとを乗算して得られた値を画素値の最大値(255)に対する比率(0.0〜1.0)に変換する。CPU70は、算出した透明率で画素を描画し(ステップS2006)、選択中のつけまつげ画像の全画素についてステップS2005及びS2006の処理を実行したか否かを判断し(ステップS2007)、全画素について処理を実行していないと判断した場合(S2007:NO)、処理をステップS2005へ戻して処理を実行する。
ステップS2007にて全画素について処理を実行したと判断した場合(S2007:YES)、描画された各画素からなる重畳用のつけまつげ画像を、現段階を識別する情報と共にHDD72に記憶する(ステップS2008)。
次にCPU70は、比率Rが最小値であるか否か判断し(ステップS2009)、最小値でないと判断した場合(S2009:NO)、減算値分だけ減少させ(ステップS2010)、処理をステップS2005へ戻す。ステップS2009にて最小値であると判断された場合(S2009:YES)、CPU70は全種類のつけまつげ画像について処理を実行したか否か判断し(ステップS2011)、全種類について処理を実行していないと判断された場合(S2011:NO)、CPU70は処理をステップS2001へ戻してHDD72のメイク用情報720から他のつけまつげ画像についての処理を実行する。
ステップS2011にて全種類のつけまつげ画像について処理を実行したと判断した場合(S2011:YES)、複数段階のつけまつげ画像を作成する事前処理を終了する。
ステップS2005及びS2006の処理は、例えば比率Rが初期値の場合は、α値がnまでの部分は削られて非表示になり、初期値から複数段階減算されて比率R<初期値となった場合はα値がm(m>n)までの部分が削られて非表示になる。つまり比率Rが小さくなるほど、輪郭からの距離が遠い部分まで削られる。例えば、0〜255までのα値に対し、比率Rが6.0〜1.0まで変化する場合、比率Rが初期値6.0の場合にはα値が0〜42の外側部分が削られる(「42」は、比率R(=6.0)を乗算した場合に255を超えない最大数)。比率Rが2.0の場合にはα値が0〜127(比率R(=2.0)を乗算した場合に255を超えない最大数)の外側部分が削られ、比率R=6.0の場合よりも処理後のつけまつげ画像のボリュームは少なくなる。削られ方は、外側部分をグラデーションで透明にするので、処理後も自然なつけまつげ画像となる。このようにつけまつげの画像に予め距離変換処理を実行し、距離別に外縁部を消去したつけまつげの画像を記憶しておくことにより、ボリューム感が複数段階に異なる自然なつけまつげの画像を作成することが可能となる。
更にCPU70は、アイライン同様に、図4のフローチャートに示したステップS204にて特定された1又は複数の人物の顔領域、各器官領域特に目の領域に基づいて、各人物の顔の目領域付近に重畳させるつけまつげ画像の拡縮、傾きの変更等をしておく事前処理を行なう。図31は、「つけまつげ」用の事前処理の手順の一例を示すフローチャートである。図31のフローチャートに示す処理手順は大部分が、図24のフローチャートに示した「アイライン」に係る事前処理の手順における「アイライン」を「つけまつげ」に置換したものである。ステップS1314において、決定した位置、角度、大きさに基づいて描画した重畳用のつけまつげ画像を、複数の段階で変更するに際し、「つけまつげ」に係る処理では、図29のフローチャートに示した処理によって作成した複数段階のつけまつげ画像で描画することで変更する。他の処理手順は、図24のフローチャートにおける各ステップの「アイライン」を「つけまつげ」に置換したものであるから、対応するステップ番号を付して各ステップの詳細な説明は省略する。このように本実施の形態では目の領域の位置、大きさ、目尻若しくは目頭の位置に基づいて、つけまつげの重畳位置、大きさ、角度が決定される。
次に、落書き用操作画面でユーザが操作している間の「つけまつげ」についてのリアルタイム処理についてフローチャートで説明する。図32は、「MAKE」の操作の受け付け中における「つけまつげ」処理に係る処理手順の一例を示すフローチャートである。図32のフローチャートに示す処理は、図8のフローチャートのステップS414の詳細に対応する。なお、図32のフローチャートに示す各処理は、図16のフローチャートの「チーク」に係る処理手順における「チーク」を「つけまつげ」に置換したものと同様であるので、対応するステップ番号を付して各ステップの詳細な説明は省略する。
つけまつげ画像を自動的に重畳させた場合の調整用画面によってボリュームを複数段階で変更することが可能である。また、つけまつげ画像の手動モードの場合の調整用画面には、回転角度を調整するための回転ボタン、左右に反転させるための反転ボタン、湾曲具合の強弱を変更して瞼に沿わすためのボタン、重畳させたアイライン画像の大小を調整するスライダーコントロール、更にボリューム感を変更するスライダーコントロール及びOKボタンが含まれている。
つけまつげについても手動モードの場合に重畳されるつけまつげ画像と、自動モードで重畳されるつけまつげ画像とが別のレイヤー上に描画されて別個に記憶されるため、重ね付けが可能である。なお、手動ボタン762が選択された場合に、自動描画用のレイヤーにおけるつけまつげ画像を非表示とし、手動操作にて受け付けたつけまつげ画像のみを表示し、逆に、自動ボタンが選択された場合に、手動描画用のレイヤーにおけるつけまつげ画像を非表示とするようにしていずれか一方に切り替えるようにしてもよい。
消しゴム選択ボタン764についても「リップ」同様に、CPU70は、消しゴム選択ボタン764が選択された後のタッチペン31aの軌跡を記憶し、つけまつげの自動描画用のレイヤーにおける重畳用のつけまつげ画像の一部を、選択されている太さにて軌跡に沿って非表示(透明)とする。同様に、手動モードにおける消しゴム選択ボタンが選択された場合は同様の処理を、手動描画用のレイヤーに対して行なえばよい。
このように、「つけまつげ」についてもメイク対象の顔領域に自動的に配置されて重畳表示されると共に調整用画面306が表示され、図29のフローチャートで示したようにボリューム感を複数段階で変更して作成されてあるつけまつげ画像の差し替えにより、スライダーコントロールのつまみの位置に応じてつけまつげのボリュームが連続的に変化する。ユーザはメイク対象の顔領域が表示されているプレビュー表示部301(302)内でプレビュー画像を確認しながら、好みのボリュームのつけまつげを選択することができる。
<6.「ヘアカラー」について>
「ヘアカラー」について画面例を参照して説明する。「ヘアカラー」は髪色を変更させたような画像を得る画像処理を行なう機能である。「ヘアカラー」の機能ではユーザの手動操作によって髪色を変化させる処理を行なう手動モードのみが存在する。図33は、「ヘアカラー」が選択されている場合のメイクパレット310の表示例を示す説明図である。図33には、手動モードにおけるキャンバス部107の内容例が示されている。「ヘアカラー」が選択されている場合のキャンバス部107には複数種類のヘアカラーに対応したヘアカラー選択アイコン771と、「ヘアカラー」のメイクを消去するOFFボタン773、一部を消去する消しゴム選択ボタン774が配置される。
画像処理部7のHDD72に記憶されているメイク用情報720は、図33のキャンバス部107に示されている画像に対応するヘアカラー用の色、テクスチャ及びグラデーションパターンを識別するヘアカラーパターン情報を複数種類含む。複数種類のヘアカラーパターン情報は例えば、ブラック、ブラウン、ブロンド、ピンク、オレンジ、ブルー、パープルなどの髪色の情報、頭頂部と毛先部とで色味又は濃淡を変化させるグラデーションパターンの情報が含まれる。グラデーションパターンの情報は例えば、混合される複数の色の情報と、色を変化させる位置、各色の透明度等の情報を含む。
本実施の形態では、「ヘアカラー」については1〜5の他の種類のメイクのような自動モードは実現しない。図34は、「MAKE」の操作の受け付け中における「ヘアカラー」処理に係る処理手順の一例を示すフローチャートである。以下に説明する処理は、図8のフローチャートのステップS416の詳細に対応する。
CPU70は、ヘアカラー選択アイコン771が選択されたか否かを判断する(ステップS1601)。CPU70は、ヘアカラー選択アイコン771が選択されたと判断した場合(S1601:YES)、選択されたヘアカラー選択アイコン771に対応するヘアカラーパターン情報を識別する(ステップS1602)。
CPU70は、ステップS1602で識別したヘアカラーパターン情報に基づき、描画ブラシの線種、色及び太さを決定し(ステップS1603)、タッチペン31aのプレビュー表示部301への接触を検知し(ステップS1604)、決定した線種、色及び太さの描画ブラシで接触箇所を描画する(ステップS1605)。なおステップS1605における描画は、接触箇所に対応する画素のぼかし又は輝度を上昇させるなどのフィルター処理に代替又はフィルター処理と組み合わされてもよく、ヘアカラー用の手動描画用のレイヤーにて描画される。このときステップS1602にてグラデーションパターンが識別されている場合、CPU70は、トリミング範囲内における接触箇所の位置(中央、上部、又は下部等)に応じて、グラデーションパターンに含まれる色又は透明度で描画する。
CPU70は、ステップS1605で描画されて表示中のヘアカラー画像を確定させ、表示中の画像に対応する画像データに対応付けて記憶し(ステップS1606)、他のボタン又はタブ等が選択されたか否かを判断し(ステップS1607)、選択されていないと判断した場合(S1607:NO)、処理をステップS1604へ戻し、他のボタン又はタブ等が選択されるまで描画を続行する。
ステップS1607にて他のボタン又はタブ等が選択されたと判断した場合(S1607:YES)、OFFボタン773が選択されたか否かを判断する(ステップS1608)。CPU70は、OFFボタン773が選択されたと判断した場合(S1608:YES)、描画されて表示中のヘアカラー画像を非表示として確定を解除し(ステップS1609)、「ヘアカラー」処理に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
CPU70は、ステップS1601にてヘアカラー選択アイコン771が選択されていないと判断した場合(S1601:NO)、処理をステップS1608へ進める。
CPU70は、OFFボタン773が選択されていないと判断した場合(S1608:NO)、そのまま「ヘアカラー」処理に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
なお消しゴム選択ボタン774については、CPU70は、消しゴム選択ボタン774が選択された後のタッチペン31aの軌跡を記憶し、ヘアカラー用の手動描画用のレイヤーにおけるヘアカラー画像の一部を、選択されている太さにて軌跡に沿って非表示(透明)とする。
図35は、「ヘアカラー」のグラデーションパターンでの描画例を模式的に示す説明図である。図35では、ヘアカラー選択アイコン771でグラデーションパターンが選択されて描画中にプレビュー表示部301に表示される画像の例を示している。図35では、頭頂部と毛先部との間で連続的に色が変化するようなパターンでヘアカラー画像が描画されている。これにより、毛先(又は根元)が明るめとなるようにカラーリングしたようなヘアカラー画像が表示される。
なお「ヘアカラー」についても1又は複数の顔領域に基づき、CPU70が各顔領域に対応する髪範囲を精度よく特定できる場合は、自動モードを選択可能としてもよい。自動モードではCPU70は、ヘアカラー選択アイコン771に対応するヘアカラーパターンにて重畳用のヘアカラー画像の位置、大きさ、角度等を事前に決定しておき、選択されたヘアカラー選択アイコン771に対応する重畳用のヘアカラー画像を重畳させる。また、髪範囲を特定することが困難な場合、ユーザの手動操作により、図35中の太線枠のように、矩形等で髪範囲の指定を受け付け、指定された髪範囲における中央、上部、又は下部等でグラデーションを変化させ、毛先と根元とでグラデーションとなるような髪色に変化させる処理を施してもよい。
<7.「ワンタッチ」について>
「ワンタッチ」について画面例を参照して説明する。「ワンタッチ」の機能では顔領域、並びに唇、頬、目、及び虹彩等の各器官の領域を自動的に特定して化粧を施す自動モードのみが存在する。顔領域及び各器官の領域の特定に失敗した場合は、「ワンタッチ」機能は無効としてもよい。図36は、「ワンタッチ」が選択されている場合のメイクパレット310の表示例を示す説明図である。図33には、メイク選択部102で「ワンタッチ」が選択された場合に表示されているキャンバス部107の内容例が示されている。「ワンタッチ」が選択されている場合、キャンバス部107には複数のテーマに夫々対応したテーマ選択アイコン711及びメイクを消去するOFFボタン713が配置される。
「ワンタッチ」は、1.〜5.で説明した「ヘアカラー」以外の5つのメイクを全て自動で施した画像が得られる機能である。画像処理部7のHDD72に記憶されているメイク用情報720の内の、リップパターン情報、チーク用画像、カラコン画像、アイライン画像、及びつけまつげ画像から1つずつが、テーマ選択アイコン711に対応する複数のテーマ毎に予め対応付けてメモリ71又はHDD72に記憶されている。メイク選択部102で「ワンタッチ」が選択されている場合CPU70は、選択されたテーマに対応するメイク用情報720を用いて自動的に、メイク対象の顔領域に合わせて位置を決定し、変形して顔領域に重畳させて表示する。CPU70は、1.〜5.で説明した「ヘアカラー」以外の5つのメイクについての事前処理を行なっておく。そして、各テーマに応じて、複数段階で処理されている画像から所定の段階の画像が識別して記憶してあるとよい。例えば、図36に示すようにテーマが「CUTE」、「NATURAL」及び「COOL」である場合、「CUTE」のテーマにはピンク色の光沢感が強い段階で処理された唇画像、ピンク色の円形のチーク用画像、薄い色の重畳用のカラコン画像、ブラウン系のアイライン画像、毛束が全体的に増量されているつけまつげ画像の内の中央段階の重畳用のつけまつげ画像等が対応付けられる。
落書き用操作画面でユーザが操作している間の「ワンタッチ」についてのリアルタイム処理について説明する。図37は、「MAKE」の操作の受け付け中における「ワンタッチ」に係る処理手順の一例を示すフローチャートである。以下に説明する処理は、図8のフローチャートのステップS403の詳細に対応する。
CPU70は、テーマ選択アイコン711が選択されたか否かを判断する(ステップS1701)。CPU70は、テーマ選択アイコン711が選択されたと判断した場合(S1701:YES)、選択されたテーマ選択アイコン711に対応するテーマに対応するメイク用情報720に基づいて事前処理された重畳用の画像を抽出し(ステップS1702)、各画像を重畳させて表示し(ステップS1703)、表示中である各重畳用のメイク用の画像を確定させて記憶し(ステップS1704)、「ワンタッチ」処理に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
CPU70は、テーマ選択アイコン711が選択されていないと判断した場合(S1701:NO)、OFFボタン713が選択されたか否かを判断する(ステップS1705)。CPU70はOFFボタン713が選択されたと判断した場合(S1705:YES)、表示している各重畳用の画像を非表示として確定を解除し(ステップS1706)、「ワンタッチ」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
CPU70は、OFFボタン713が選択されていないと判断した場合(S1705:NO)、そのまま「ワンタッチ」に係る処理を終了し、図8のフローチャート中のステップS404へ処理を戻す。
このような処理により、「ワンタッチ」機能ではユーザはテーマを選択するだけで自身の顔領域上にメイク用情報720に基づくメイクの素材画像が変形されて適切な位置に重畳表示された画像を得ることができる。メイクに不慣れなユーザであっても容易にメイク操作を行なうことができる。なお「ワンタッチ」機能で変形されて配置された各種類のメイクの素材画像は、メイク選択部102で「チーク」、「カラコン」、「アイライン」又は「つけまつげ」を選択する操作がされた場合に以後、個別に別の画像に変更することができるようにしてもよい。
上述した処理手順により、顔の中で特定される顔領域に含まれる各器官の領域の位置等を基準として化粧用素材の画像の位置、大きさ、又は角度を決定し、更に変形を行なうことにより、アイライン画像、つけまつげ画像のような予め記憶してある化粧用の素材の画像を重畳させてもスタンプ画像のように明らかに重畳されていることがわかるような画像ではなく、ユーザ自身が自然に写っていて、プロによってメイクを施されたファッションモデル又はアーティストを撮影したような画像の出力を実現できる。
なお、上述のように開示された本実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
以上の実施の形態に関し更に、以下の付記を開示する。
(付記1)
マトリクス状に配列した複数の画素からなる画像を取得する手段と、取得された画像に撮影されている人物の顔及び該顔内の器官の領域を特定する特定手段とを備え、予め記憶されている化粧用画像を前記特定手段により特定された領域に重畳させる画像処理装置において、前記特定手段が特定した領域に基づき、該特定した領域に対応する化粧用画像の前記画像上の位置、大きさ、又は角度を決定する決定手段と、該決定手段が決定した大きさ又は角度に基づき、前記特定した領域に対応する化粧用画像の一部又は全部を拡縮又は回転して変形する変形手段と、前記決定手段が決定した位置に基づき、前記特定手段により特定された領域上に前記変形手段で変形された前記化粧用画像を重畳させる重畳手段とを備えることを特徴とする画像処理装置。
(付記2)
前記化粧用画像はつけまつげの画像を含み、前記決定手段は、前記特定手段が特定した目の領域の位置、大きさ、目尻若しくは目頭の位置に基づき、前記つけまつげの画像の位置、大きさ、又は角度を決定し、前記変形手段は、前記特定手段が特定した目の領域の位置、大きさ、目尻若しくは目頭の位置、又は、目尻及び目頭間を結ぶ線分の前記複数の画素の配列方向に対する角度に基づき、前記つけまつげの画像の一部を拡縮又は回転するようにしてあることを特徴とする付記1に記載の画像処理装置。
(付記3)
前記化粧用画像はつけまつげの画像を含み、前記段階別画像記憶手段は、前記つけまつげの画像の輪郭からの距離別に、該距離内の前記つけまつげの画像の外縁部を消去する距離変換処理を実行する手段を備え、距離別に、外縁部を消去した後のつけまつげの画像を記憶するようにしてあることを特徴とする付記1に記載の画像処理装置。
(付記4)
前記化粧用画像はアイラインの画像を含み、前記決定手段は、前記特定手段が特定した目の領域の位置、大きさ、目尻若しくは目頭の位置に基づき、前記アイラインの画像の位置、大きさ、又は角度を決定し、前記変形手段は、前記特定手段が特定した目の領域の位置、大きさ、目尻若しくは目頭の位置、又は、目尻及び目頭間を結ぶ線分の前記複数の画素の配列方向に対する角度に基づき、前記アイラインの画像の一部を拡縮又は回転するようにしてあることを特徴とする付記1に記載の画像処理装置。
(付記5)
前記化粧用画像は光輝を放つ装飾の画像を含み、前記決定手段は、前記特定手段が特定した目の領域の位置、大きさ、目尻若しくは目頭の位置に基づき、前記装飾の画像の位置、大きさ、及び角度を決定し、前記変形手段は、前記特定手段が特定した目の領域の位置、大きさ、目尻若しくは目頭の位置、又は、目尻及び目頭間を結ぶ線分の前記複数の画素の配列方向に対する角度に基づき、前記装飾の画像の一部を拡縮又は回転するようにしてあることを特徴とする付記1に記載の画像処理装置。
(付記6)
前記化粧用画像は頬紅の画像を含み、前記決定手段は、前記特定手段が特定した顔領域の位置及び大きさ、前記複数の画素の配列方向に対する角度に基づき、前記頬紅の画像の位置、大きさ及び角度を決定し、前記変形手段は、前記特定手段が特定した顔領域の位置及び大きさに基づき、前記頬紅の画像の一部を拡縮し、前記顔領域内に収まるように一部を削除するようにしてあることを特徴とする付記1に記載の画像処理装置。