次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.変形領域の設定:
D.分割点配置の態様:
E.小領域の変形:
F.変形例:
A.第1実施例:
図1は、本発明の一実施例としての画像処理装置が適用されるプリンタ100の構成を概略的に示す説明図である。プリンタ100は、メモリカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、プリンタ100の各部を制御するCPU110と、例えばROMやRAMによって構成された内部メモリ120と、ボタンやタッチパネルにより構成された操作部140と、液晶ディスプレイにより構成された表示部150と、プリンタエンジン160と、カードインタフェース(カードI/F)170と、を備えている。プリンタ100は、さらに、他の機器(例えば、デジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインタフェースを備えているものとしてもよい。プリンタ100の各構成要素は、バスを介して互いに接続されている。
プリンタエンジン160は、印刷データに基づき印刷を行う印刷機構である。カードインタフェース170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインタフェースである。なお、第1実施例では、メモリカードMCにRGBデータとしての画像データが格納されており、プリンタ100は、カードインタフェース170を介してメモリカードMCに格納された画像データの取得を行う。
内部メモリ120には、顔形状補正部200と、表示処理部310と、印刷処理部320とが格納されている。顔形状補正部200は、所定のオペレーティングシステムの下で、後述する顔形状補正処理を実行するためのコンピュータプログラムである。表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージを表示させるディスプレイドライバである。印刷処理部320は、画像データから印刷データを生成し、プリンタエンジン160を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU110は、内部メモリ120から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
顔形状補正部200は、プログラムモジュールとして、変形態様設定部210と、顔領域検出部220と、顔領域調整部230と、変形領域設定部240と、変形領域分割部250と、分割領域変形部260と、重複小領域検出部270と、を含んでいる。変形態様設定部210は、指定取得部212を含んでいる。後述するように、変形領域分割部250と、分割領域変形部260と、重複小領域検出部270と、により画像の変形が行われる。そのため、変形領域分割部250と分割領域変形部260と重複小領域検出部270とは、併せて「変形処理部」とも呼ぶことができる。これらの各部の機能については、後述する。
内部メモリ120には、また、分割点配置パターンテーブル410と分割点移動テーブル420とが格納されている。分割点配置パターンテーブル410および分割点移動テーブル420の内容については、後述の顔変形処理の説明において詳述する。
プリンタ100は、メモリカードMCに格納された画像データに基づき、画像の印刷を行う。カードスロット172にメモリカードMCが挿入されると、表示処理部310により、メモリカードMCに格納された画像の一覧表示を含むユーザインタフェースが表示部150に表示される。図2は、画像の一覧表示を含むユーザインタフェースの一例を示す説明図である。なお、第1実施例では、画像の一覧表示は、メモリカードMCに格納された画像データ(画像ファイル)に含まれるサムネイル画像を用いて実現される。図2に示すユーザインタフェースには、8つのサムネイル画像TN1〜TN6と、5つのボタンBN1〜BN5が表示されている。
プリンタ100は、図2に示すユーザインタフェースにおいて、ユーザにより、1つ(または複数)の画像が選択されると共に通常印刷ボタンBN3が選択されると、選択された画像を通常通り印刷する通常印刷処理を実行する。他方、当該ユーザインタフェースにおいて、ユーザにより、1つ(または複数)の画像が選択されると共に顔形状補正印刷ボタンBN4が選択されると、プリンタ100は、選択された画像について、画像中の顔の形状を補正して補正後の画像を印刷する顔形状補正印刷処理を実行する。図2の例では、サムネイル画像TN1と顔形状補正印刷ボタンBN4とが選択されている。そのため、プリンタ100は、サムネイル画像TN1に対応する画像について顔の形状を補正して補正後の画像を印刷する。
図3は、プリンタ100において顔形状補正印刷を行う際に実行される顔形状補正印刷ルーチンを示すフローチャートである。ステップS100では、顔形状補正部200(図1)が、顔形状補正処理を実行する。顔形状補正処理は、画像中の顔の少なくとも一部の形状(例えば顔の輪郭形状や目の形状)を補正する処理である。なお、目や鼻などの顔の一部分は、一般に器官とも呼ばれる。
図4は、図3のステップS100において実行される顔形状補正処理ルーチンを示すフローチャートである。ステップS110では、顔形状補正部200(図1)が、顔形状補正処理の対象となる対象画像を設定する。顔形状補正部200は、図2に示したユーザインタフェースにおいてユーザにより選択されたサムネイル画像TN1に対応する画像を対象画像として設定する。設定された対象画像の画像データは、メモリカードMCからカードインタフェース170を介してプリンタ100に取得され、内部メモリ120の所定領域に格納される。なお、以下では、このようにメモリーカードMCから取得され、プリンタ100の内部メモリ120に格納された画像データを「元画像データ」とも呼ぶ。また、元画像データにより表される画像を「元画像」とも呼ぶ。
なお、第1実施例では、対象画像は、図2に示したユーザインタフェースにおけるユーザの選択結果に応じて設定されているが、他の方法で対象画像を設定することも可能である。例えば、画像データに格納されているExif情報等の情報や、画像データのシーン判別結果などに基づいて、メモリカードMCに格納された複数の画像の中から顔を含む画像(顔画像)を抽出し、抽出された顔画像を対象画像に設定することも可能である。また、抽出された顔画像の一覧表示を含むユーザインタフェースにおいて、ユーザに単数または複数の顔画像を選択させ、その選択結果に応じて対象画像を設定するものとしてもよい。なお、複数の画像が対象画像として設定された場合、複数の画像に対して同時に顔形状の補正を施してもよく、複数の画像に優先順位を付け、その優先順位に従って複数の画像に顔形状の補正を施しても良い。
ステップS120(図4)では、変形態様設定部210(図1)が、顔形状補正のための画像変形のタイプと画像変形の度合いとを設定する。変形態様設定部210は、画像変形のタイプおよび度合いを設定するためのユーザインタフェースを表示部150に表示するように表示処理部310に指示し、当該ユーザインタフェースを通じてユーザにより指定された画像変形のタイプおよび度合いを選択し、処理に使用する画像変形タイプおよび度合いとして設定する。
図5は、画像変形のタイプおよび度合いを設定するためのユーザインタフェースの一例を示す説明図である。図5に示すように、このユーザインタフェースには、画像変形タイプを設定するためのインタフェースが含まれている。第1実施例では、例えば、顔の形状をシャープにする変形タイプ「タイプA」や、目の形状を大きくする変形タイプ「タイプB」等が選択肢として予め設定されているものとする。ユーザは、このインタフェースを介して画像変形のタイプを指定する。変形態様設定部210は、ユーザにより指定された画像変形タイプを、実際の処理に使用する画像変形タイプとして設定する。
また、図5に示すユーザインタフェースには、画像変形の度合い(程度)を設定するためのインタフェースが含まれている。図5に示すように、第1実施例では、画像変形の度合いとして、強(S)、中(M)、弱(W)の3段階が選択肢として予め設定されているものとする。ユーザは、このインタフェースを介して画像変形の度合いを指定する。変形態様設定部210は、ユーザにより指定された画像変形の度合いを、実際の処理に使用する画像変形の度合いとして設定する。ユーザインタフェースに設けられたチェックボックスは、ユーザが変形態様の詳細指定を希望する場合にチェックされる。
以降では、画像変形のタイプとして顔の形状をシャープにするための変形タイプ「タイプA」が設定され、画像変形の度合いとして程度「中」の度合いが設定され、ユーザによる詳細指定の希望はなかったものとして説明を行う。
ステップS130(図4)では、顔領域検出部220(図1)が、対象画像における顔領域の検出を行う。ここで、顔領域とは、対象画像上の画像領域であって、少なくとも顔の一部の画像が含まれる領域を意味している。顔領域検出部220による顔領域の検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2004−318204参照)といった公知の顔検出方法を用いて実行される。
図6は、顔領域の検出結果の一例を示す説明図である。図6の例では、対象画像TIには2人の人物が含まれている。そのため、ステップS130における顔検出により、対象画像TIからは、2人の人物に対応して2つの顔領域FA1,FA2が検出される。これらの顔領域は、図6に示すように、それぞれの目と鼻と口の画像を含む矩形の領域となっている。
ステップS130の顔領域の検出において、顔領域が検出されなかった場合には、その旨が表示部150を通じてユーザに通知される。この場合には、顔形状補正を伴わない通常印刷が行われるものとしてもよい。また、他の顔検出方法を用いた顔領域の再度の検出処理が行われるものとしてもよい。
なお、ステップS130では、テンプレートを利用したパターンマッチングにより、対象画像から顔が検出される。このようなテンプレートを利用したパターンマッチングによる方法等の公知の顔検出方法は、一般に、顔全体や顔の部位(目や口等)について位置や傾き(角度)を詳細に検出するものではなく、対象画像中から顔の画像が概ね含まれると考えられる領域を顔領域として設定するものである。
ステップS500において、プリンタ100は、検出された顔領域に基づいて顔形状補正のための画像変形処理を施す領域(変形領域)を設定する。具体的には、自然で好ましい顔形状補正が実現されるように、ステップS130で検出された顔領域について位置調整および傾き調整を行うことにより、変形領域が設定される。このように変形領域を設定することにより、一般的に観察者の注目度が高い顔の画像が、設定された変形領域と顔の画像との位置や角度の関係によって不自然に変形されることが抑制される。なお、変形領域を設定する方法については、後述の変形領域の設定の説明において詳述する。
図7は、ステップS500における変形領域の設定結果を示す説明図である。図7の破線は、ステップS130において対象画像TIから検出された2つの顔領域FA1,FA2を示している。図7の太線は、2つの顔領域FA1,FA2のそれぞれについて設定された変形領域を示している。図7に示すように、ステップS500では、これらの2つの顔領域FA1,FA2のそれぞれに対応した2つの変形領域TA1,TA2が設定される。
なお、第1実施例では、顔検出(図4のステップS130)前のステップS120において、変形態様を設定しているが、ステップS130あるいはステップS500の後、更にステップS120と同様の処理を行うことにより、変形態様を設定できるようにしても良い。このように、ステップS130の顔検出後に変形態様を設定可能とすることにより、ステップS120において設定された変形態様がユーザの好みに合わず、変形態様を再度設定する場合に、顔検出処理を省略することが可能となる。
図4のステップS140では、設定された2つの変形領域TA1,TA2のそれぞれに対して分割点(後述する)が配置され、個々の変形領域TA1,TA2がそれぞれ15個の矩形の小領域に分割される。図8は、図4のステップS500において設定された2つの変形領域TA1,TA2のそれぞれが、小領域に分割された様子を示す説明図である。なお、分割点を配置することによる変形領域TA1,TA2の小領域への分割については、後述の分割点配置の態様の説明において詳述する。
図8(a)は、図4のステップS500において設定された2つの変形領域TA1,TA2の配置を示している。図8(b)は、ステップS140において、2つの変形領域TA1,TA2のそれぞれが小領域に分割された様子を示している。図8(a)に示すように、ステップS500において設定された2つの変形領域TA1,TA2は、互いに重複した状態となっている。そのため、変形領域TA1の小領域のうち、右上から左下方向のハッチングを付した小領域は、変形領域TA2に重なっている。一方、変形領域TA2の左上から右下方向のハッチングを付した小領域は、変形領域TA1に重なっている。以下では、このように、ある変形領域に属する小領域であって、他の変形領域に重なる小領域を「重複小領域」とも呼ぶ。図8(b)から明らかなように、変形領域TA1,TA2のそれぞれの重複小領域は、変形領域TA1,TA2の重複部分を含んでいる。なお、重複小領域は、変形領域の一部の領域であるので、「部分領域」ともいうことができる。
ステップS150において、重複小領域検出部270(図1)は、ステップS140において分割された個々の変形領域に属する小領域のうち、図8(b)のハッチングで示すように他の変形領域に重なっている小領域を検出する。個々の変形領域に属する小領域が、他の変形領域に重なっているか否かは、平面図形の重なりの有無を判断する種々のアルゴリズムを用いて判断することができる。例えば、小領域と他の変形領域の輪郭線同士が交差するか否かを調べることにより判断することができる。また、小領域内の点が他の変形領域に含まれるか否かを調べることにより判断することもできる。小領域と他の変形領域がいずれも凸多角形であれば、小領域の頂点が他の変形領域内に入るか否か、あるいは、他の変形領域の頂点が小領域内にはいるか否かを調べることにより判断することができる。
次いで、ステップS160において、分割領域変形部260(図1)は、変形領域TA1,TA2のそれぞれの小領域のうち、他方の変形領域に重なっていない小領域(非重複小領域)の変形処理を行う。非重複小領域の変形処理は、変形領域を小領域に分割する際に配置された分割点を移動させることにより行われる。なお、具体的な変形処理の内容は、後述の小領域の変形の説明において詳述する。
図8に示すように、複数の変形領域TA1,TA2がある場合には、個々の変形領域についての変形処理が元画像に対して施される。これらの複数の変形領域に対する変形処理は、個々の変形領域の変形処理を繰り返すことにより実行してもよく、複数の変形領域に対して同時に変形処理を実行するものとしてもよい。
図9は、ステップS160において、2つの変形領域TA1,TA2のそれぞれに属する小領域が変形される様子を示す説明図である。変形領域TA1内の黒丸DA11,DA12,DA21および白丸DA22,DA31,DA32,DA41,DA42は、変形領域TA1を小領域に分割する際に配置された分割点を示している。同様に、変形領域TA2内の黒丸DB41,DB42および白丸DB11,DB12,DB21,DB22,DB31,DB32は、変形領域TA2を小領域に分割する際に配置された分割点を示している。なお、図9においても、変形領域TA1,TA2内の重複小領域は、ハッチングを付して示している。
図9の例では、変形領域TA1の重複小領域の頂点となる分割点は、白丸で示す5つの分割点DA22,DA31,DA32,DA41,DA42となっている。そのため、ステップS160における変形処理では、これらの分割点DA22,DA31,DA32,DA41,DA42の移動は行われない。一方、重複小領域の頂点となっていない黒丸で示す分割点DA11,DA12,DA21は、黒丸の位置から星印の位置に移動される。このように分割点DA11,DA12,DA21を移動することにより、点線で示す小領域は、実線で示すように変形される。
同様に、変形領域TA2の重複小領域の頂点となる分割点は、白丸で示す6つの分割点DB11,DB12,DB21,DB22,DB31,DB32となっている。そのため、ステップS160における変形処理では、これらの分割点DB11,DB12,DB21,DB22,DB31,DB32の移動は行われない。一方、重複小領域の頂点となっていない黒丸で示す分割点DB41,DB42は、黒丸の位置から星印の位置に移動される。このように分割点DB41,DB42を移動することにより、点線で示す小領域は、実線で示すように変形される。
図10は、第1実施例において変形処理が行われた結果を示す説明図である。図10(a)は、図4のステップS140〜S160による変形処理前の対象画像TIを示している。図10(b)は、変形処理後の対象画像TIを示している。上述のように、対象画像TI中の2人の人物の顔のそれぞれに設定された2つの変形領域TA1,TA2は重なり合っている。そのため、2つの変形領域TA1,TA2のそれぞれの非重複小領域のみが変形され、重複小領域は変形されない。そのため、図10(b)に示すように、変形領域TA1内の非重複小領域に含まれる左側の人物の顔が細くなる。また、変形領域TA2内の非重複小領域に含まれる右側の人物の顔の一部が変形され、顔の輪郭がやや細くなっている。一方、2つの変形領域TA1,TA2が重なっている部分は、重複小領域に含まれる。そのため、変形領域TA1,TA2の重複部分は、変形処理前(図10(a))と同じ状態となっている。
図11は、比較例として、非重複小領域と重複小領域の双方に変形処理を施す様子を示す説明図である。非重複小領域と重複小領域のいずれにも変形処理を施す場合、変形領域TA1,TA2の分割点DA11〜DA42,DB11〜DB42は、全て移動の対象となる。そのため、これらの分割点DA11〜DA42,DB11〜DB42は、それぞれ星印で示す位置に移動される。なお、図11の例では、図5で示すように、画像変形のタイプとして、顔の形状をシャープにするための変形タイプ「タイプA」が設定されている。そのため、目の大きさを変形しないように変形処理が行われるので、4つの分割点DA22,DA32,DB22,DB32は、移動されない。
図12は、比較例において重複する2つの変形領域TA1,TA2のいずれにも変形処理を行った結果を示す説明図である。図12(a)は、変形処理が施される前の対象画像TI(元画像)を示している。図12(b)は、重複小領域に変形処理を施した比較例における変形処理結果を示している。図12(c)は、重複小領域に変形処理を施さない第1実施例の変形処理結果を示している。上述のように、変形領域内の変形処理後の画像は、元画像に変形処理が施された画像となっている。そのため、2つの変形領域TA1,TA2の重複した部分では、最初の変形結果に後からの変形処理結果が上書きされる。そのため、重複小領域にも変形処理を施す比較例では、図12(b)において太線で示すように、不連続な境界線BLが発生する。
一方、第1実施例によれば、重複小領域に変形処理を施さないことにより、図12(c)に示すように変形処理後の画像には不連続な境界は発生しない。このように、第1実施例では、変形処理後の画像に不連続な境界が発生して、変形処理後の画像が不自然な画像となることを抑制することができる。
図4のステップS160において、非重複小領域の変形処理が行われた後、制御は、図3の顔形状補正印刷ルーチンに戻される。
図4の顔形状補正処理ルーチンから制御が戻されると、図3のステップS200において、変形処理後の画像(補正画像)が表示される。具体的には、顔形状補正部200(図1)が、顔形状補正後の対象画像を表示部150に表示するよう表示処理部310に指示する。図13は、顔形状補正後の対象画像TIが表示された表示部150の状態の一例を示す説明図である。顔形状補正後の対象画像TIが表示された表示部150により、ユーザは、補正結果を確認することができる。ユーザが補正結果に満足せず「戻る」ボタンを選択した場合には、例えば表示部150に図5に示した変形タイプおよび変形度合いを選択する画面が表示され、ユーザによる変形タイプや変形度合いの再度の設定が実行される。ユーザが補正結果に満足し、「印刷」ボタンを選択した場合には、以下の補正画像印刷処理が開始される。なお、第1実施例では、表示部150には補正画像が表示されているが、表示部150に元画像と補正画像とを同時に表示することも可能である。
ステップS300では、印刷処理部320(図1)が、プリンタエンジン160を制御して、顔形状補正処理後の対象画像の印刷を行う。印刷処理部320は、顔形状補正処理後の対象画像の画像データに、解像度変換やハーフトーン処理などの処理を施して印刷データを生成する。生成された印刷データは、印刷処理部320からプリンタエンジン160に供給され、プリンタエンジン160は対象画像の印刷を実行する。これにより、顔形状補正後の対象画像の印刷が完了する。
B.第2実施例:
図14は、第2実施例におけるプリンタ100aの構成を概略的に示す説明図である。第2実施例のプリンタ100aは、顔形状補正部200aが領域重複検出部280と、分割形態変更部290と、を含んでいる点で、図1に示す第1実施例のプリンタ100と異なっている。他の点は、第1実施例のプリンタ100と同様である。
図15は、第2実施例における顔形状補正処理ルーチンを示すフローチャートである。この顔形状補正処理ルーチンは、第1実施例の顔形状補正処理ルーチン(図4)と同様に、顔形状補正印刷ルーチン(図3)のステップS100において実行される。第2実施例の顔形状補正処理ルーチンは、2つのステップS132,S134がステップS140の前に付加されている点で、図4に示す第1実施例の顔形状補正処理ルーチンと異なっている。他の点は、第1実施例の顔形状補正印刷ルーチンと同じである。
ステップS132において、領域重複検出部280は、ステップS500において設定された変形領域の重複の有無を検出する。変形領域の重複の有無は、重複小領域(ステップS150)の検出と同様に、平面図形の重なりの有無を判断する種々のアルゴリズムを用いて判断することができる。検出の結果、変形領域が重複していると判断された場合には、制御はステップS134に移される。一方、変形領域が重複していないと判断された場合には、制御はステップS140に移される。
ステップS134において、分割形態変更部290は、変形領域の分割形態を変更する。具体的には、ステップS120(図15)において設定される変形タイプを変更することにより、ステップS140における変形領域の分割形態を変更する。なお、後述するように、変形領域の分割形態を規定する分割点の配置の態様は、変形タイプと対応づけられて、分割点配置パターンテーブル410(図14)に格納されている。そのため、分割形態変更部290は、変形タイプと分割点配置態様との対応関係の変更と、分割点配置態様の変更と、のいずれかを行って分割形態の変更を行うものとしてもよい。
図16は、分割形態を変更した場合における変形領域の分割結果を示す説明図である。図16(a)は、分割形態を変更しない場合の変形領域の分割結果を示しており、図16(b)は分割形態を変更した場合の変形領域の分割結果を示している。分割形態を変更することにより、2つの変形領域TA1,TA2のそれぞれは、図16(a)に示す分割形態を変更しない場合よりも多い18個の小領域に分割される。このように、分割形態を変更して小領域を増やすことにより、変形領域TA1,TA2に占める重複小領域(ハッチング部)の面積をより少なくすることができる。
図17は、第2実施例において2つの変形領域の小領域が変形される様子を示す説明図である。図17は、2つの変形領域TA1,TA2のそれぞれに、分割形態を変更することにより分割点DA51,DA52,DB51,DB52が付加されている点と、ハッチングを付して示す重複小領域が小さくなっている点と、重複小領域の縮小に伴って、移動の対象となっていなかった分割点DA22,DB31,DB32が、移動の対象となっている点で、図9と異なっている。他の点は、図9と同様である。図17に示すように、変形領域の分割形態を変更して変形領域中の小領域をより細分化することにより、変形されない重複小領域の変形領域に占める面積を縮小することができる。
図18は、第2実施例において変形処理が行われた結果を示す説明図である。図18(a)は、図15のステップS140〜S160による変形処理前の対象画像TIを示している。図18(b)は、変形処理後の対象画像TIを示している。第2実施例においても非重複小領域のみが変形され、重複小領域は変形されない。そのため、変形領域TA1,TA2の重複部分は、変形処理前(図18(a))と同じ状態となり、重複小領域の変形を行うことにより生じる不連続な境界線BL(図12(b))の発生を抑制することができる。また、変形領域中の小領域をより細分化して変形領域中の重複小領域面積を縮小することにより、右側の人物の顔が細くなっている。
このように、第2実施例では、複数の変形領域が重複している場合には、小領域を細分化することにより変形領域中の重複小領域の面積が縮小される。そのため、変形領域内において変形される非重複領域の面積が広くなり、重複小領域を変形しないことの変形処理結果に対する影響をより小さくすることができる。このように、第2実施例は、変形処理結果に対する影響をより低減できる点で第1実施例よりも好ましい。一方、第1実施例は、処理がより容易となる点で第2実施例よりも好ましい。
なお、第2実施例では、分割態様を変更して小領域を細分化することにより、重複小領域は、分割態様を変更しなかった場合の重複小領域を分割したものとなっているが、一般に、重複小領域を分割することが可能であれば変形処理結果に対する影響をより小さくすることができる。例えば、重複小領域が検出された場合には、重複小領域を2以上の小領域に分割するものとしてもよい。また、変形領域の重複の有無に拘わらず、変形領域を十分細かい小領域に分割するものとしてもよい。ただし、変形処理の処理量を低減することができる点で、変形領域の重複が検出された場合には変形領域を細分化し、変形領域の重複が検出されない場合には変形領域を細分化しないのがより好ましい。
C.変形領域の設定:
図19は、顔領域FAの検出結果の図6とは別の一例を示す説明図である。なお、以下の説明では、画像を選択するユーザインタフェースにおいて、1人の顔のみが含まれている画像TN2(図2)が選択されたものとしている。図19に示すように、図4のステップS130において、対象画像TIからは、1つの顔領域FAが検出される。なお、対象画像TIから複数の顔領域が検出された場合には、以下に説明する変形領域の設定処理は検出された個々の顔領域に対して行われる。図19に示した基準線RLは、顔領域FAの高さ方向(上下方向)を定義すると共に、顔領域FAの幅方向(左右方向)の中心を示す線である。すなわち、基準線RLは、矩形の顔領域FAの重心を通り、顔領域FAの高さ方向(上下方向)に沿った境界線に平行な直線である。
図20は、変形領域の設定処理の流れを示すフローチャートである。図20のフローチャートに示す処理は、図4のステップS500において実行される。ステップS510では、顔領域調整部230(図1)が、ステップS130(図4)で検出された顔領域FAの高さ方向の位置調整を行う。ここで、顔領域FAの高さ方向の位置調整とは、顔領域FAの基準線RL(図19参照)に沿った位置を調整して、対象画像TIにおける顔領域FAを再設定することを意味している。
図21は、顔領域FAの高さ方向の位置調整処理の流れを示すフローチャートである。ステップS511では、顔領域調整部230(図1)が、特定領域SAを設定する。ここで、特定領域SAとは、対象画像TI上の領域であって、顔領域FAの高さ方向の位置調整を実行する際に参照する所定の参照被写体の画像を含む領域である。参照被写体は、例えば「目」に設定することができ、その場合、特定領域SAは「目」の画像を含む領域として設定される。
図22は、特定領域SAの一例を示す説明図である。顔領域調整部230は、特定領域SAを顔領域FAとの関係に基づいて設定する。具体的には、顔領域FAの大きさを、基準線RLに直交する方向および基準線RLに平行な方向に、所定比率で縮小(または拡大)した大きさの領域であって、顔領域FAの位置と所定の位置関係を有する領域が、特定領域SAとして設定される。すなわち、顔領域検出部220により検出された顔領域FAとの関係に基づき特定領域SAを設定すれば、特定領域SAが両方の目の画像を含む領域となるように、上記所定比率や所定の位置関係が予め設定されている。なお、特定領域SAは、目の画像とまぎらわしい画像(例えば髪の毛の画像)がなるべく含まれないように、両目の画像を含む限りにおいて、なるべく小さい領域として設定されることが好ましい。
また、図22に示すように、特定領域SAは、基準線RLに対して対称な矩形形状の領域として設定される。特定領域SAは、基準線RLにより、向かって左側の領域(以下「左分割特定領域SA(l)」とも呼ぶ)と、向かって右側の領域(以下「右分割特定領域SA(r)」とも呼ぶ)とに分割される。特定領域SAは、左分割特定領域SA(l)と右分割特定領域SA(r)とのそれぞれに片目の画像が含まれるように設定される。
ステップS512(図21)では、顔領域調整部230(図1)が、特定領域SAにおける目の画像の位置を検出するための評価値を算出する。図23は、評価値の算出方法の一例を示す説明図である。評価値の算出には、RGB画像データとしての対象画像TIの各画素のR値(R成分値)を用いるのが好ましい。これは、肌の部分の画像と目の部分の画像とではR値の差が大きいため、R値を評価値の算出に用いることにより、目の画像の検出精度を向上させることができると考えられるからである。また、対象画像TIのデータがRGBデータとして取得されているため、R値を評価値の算出に用いることにより、評価値の算出の効率化を図ることができるからでもある。なお、図23に示すように、評価値の算出は、2つの分割特定領域(右分割特定領域SA(r)および左分割特定領域SA(l))のそれぞれについて個別に行われる。
顔領域調整部230は、図23に示すように、分割特定領域(右分割特定領域SA(r)および左分割特定領域SA(l))内に、基準線RLと直交するn本の直線(以下「対象画素特定線PL1〜PLn」と呼ぶ)を設定する。対象画素特定線PL1〜PLnは、分割特定領域の高さ(基準線RLに沿った大きさ)を(n+1)等分する直線である。すなわち、対象画素特定線PL同士の間隔は、すべて等間隔sである。
顔領域調整部230は、対象画素特定線PL1〜PLnのそれぞれについて、対象画像TIを構成する画素の中から評価値の算出に用いる画素(以下「評価対象画素TP」と呼ぶ)を選択する。図24は、評価対象画素TPの選択方法の一例を示す説明図である。顔領域調整部230は、対象画像TIを構成する画素の内、対象画素特定線PLと重なる画素を評価対象画素TPとして選択する。図24(a)は、対象画素特定線PLが対象画像TIの画素の行方向(図24のX方向)と平行である場合を示している。この場合には、各対象画素特定線PLと重なる画素行上の画素(図24(a)において○印を付した画素)が、各対象画素特定線PLについての評価対象画素TPとして選択される。
一方、顔領域FAの検出方法や特定領域SAの設定方法によっては、図24(b)に示すように、対象画素特定線PLが対象画像TIの画素の行方向(X方向)と平行とはならない場合も生ずる。このような場合にも、原則として、各対象画素特定線PLと重なる画素が、各対象画素特定線PLについての評価対象画素TPとして選択される。ただし、例えば図24(b)における対象画素特定線PL1と画素PXaおよびPXbとの関係のように、ある対象画素特定線PLが、対象画像TIの画素マトリクスの同一列に位置する(すなわちY座標が同一の)2つの画素と重なる場合には、重なり部分の距離のより短い方の画素(例えば画素PXb)は評価対象画素TPから除外される。すなわち、各対象画素特定線PLについて、画素マトリクスの1つの列からは1つの画素のみが評価対象画素TPとして選択される。
なお、対象画素特定線PLの傾きが、X方向に対して45度を超える場合には、上記説明において画素マトリクスの列と行との関係が逆転し、画素マトリクスの1つの行から1つの画素のみが評価対象画素TPとして選択されることとなる。また、対象画像TIと特定領域SAとの大きさの関係によっては、1つの画素が複数の対象画素特定線PLについての評価対象画素TPとして選択される場合もある。
顔領域調整部230は、対象画素特定線PLのそれぞれについて、評価対象画素TPのR値の平均値を評価値として算出する。ただし、各対象画素特定線PLについて、選択された複数の評価対象画素TPの内、R値の大きい一部の画素を評価値の算出対象から除外するものとしている。具体的には、例えば、ある対象画素特定線PLについてk個の評価対象画素TPが選択された場合、評価対象画素TPが、R値の比較的大きい0.75k個の画素により構成される第1グループと、比較的R値の小さい0.25k個の画素により構成される第2グループとの2グループに分けられ、第2グループに属する画素のみが評価値としてのR値の平均値の算出対象となる。このように一部の評価対象画素TPを評価値の算出対象から除外する理由については後述する。
以上のように、顔領域調整部230は、各対象画素特定線PLについての評価値を算出する。ここで、対象画素特定線PLは基準線RLに直交する直線であるため、評価値は、基準線RLに沿った複数の位置(評価位置)について算出されると表現することができる。また、評価値は、各評価位置について、基準線RLに直交する方向に沿った画素値の分布の特徴を表す値と表現することができる。
ステップS513(図21)では、顔領域調整部230(図1)が、特定領域SAにおける目の位置を検出し、検出結果に基づき高さ基準点Rhを決定する。まず、顔領域調整部230は、図23の右側に示すように、各分割特定領域について、基準線RLに沿った評価値(R値の平均値)の分布を表す曲線を作成し、評価値が極小値をとる基準線RL方向に沿った位置を目の位置Ehとして検出する。なお、左分割特定領域SA(l)における目の位置EhをEh(l)と表し、右分割特定領域SA(r)における目の位置EhをEh(r)と表わす。
黄色人種の場合、分割特定領域中の肌の画像を表す部分はR値が大きい一方、目(より詳細には目の中央の黒目部分)の画像を表す部分はR値が小さいと考えられる。そのため、上述のように、評価値(R値の平均値)が極小値をとる基準線RLに沿った位置を目の位置Ehと判断することが可能となる。但し、他の人種(白色人種や黒色人種)を対象とする場合には、他の評価値(例えば、輝度や明度やB値)が用いられる。
なお、図23に示すように、分割特定領域には、目の画像以外にもR値の小さい他の画像(例えば、眉や髪の毛の画像)が含まれている場合もある。そのため、顔領域調整部230は、基準線RLに沿った評価値の分布を表す曲線が複数の極小値をとる場合には、極小値をとる位置の内、最も下側の位置を目の位置Ehと判断する。一般に、目の画像より上側には眉や髪の毛等のR値の小さい画像が位置することが多い一方、目の画像より下側にはR値の小さい画像が位置することが少ないと考えられることから、このような判断が可能となる。
また、上記曲線が、目の画像の位置よりも下側(主に肌の画像に対応した位置)であっても、評価値が大きいながらも極小値をとる可能性があるため、極小値の内、所定の閾値より大きいものは無視するものとしてもよい。あるいは、単純に、各対象画素特定線PLについて算出された評価値の内の最小値に対応した対象画素特定線PLの位置を目の位置Ehとしてもよい。
なお、顔領域FAの位置調整の最小被写体としては、顔において周囲との色の差が比較的大きいと考えられる部位である目(目の中央の黒目部分)を用いている。しかし、評価値としてのR値の平均値は、対象画素特定線PL上の複数の評価対象画素TPを対象として算出されるため、例えば、黒目の周縁の白目部分の画像の影響により、黒目部分の検出の精度が低下する怖れがある。そこで、上述したように、参照被写体とは色の差が大きいと考えられる一部の評価対象画素TP(例えば上述した第1のグループに属する比較的R値の大きい画素)を評価値の算出対象から除外することにより、参照被写体の検出精度をより向上させている。
次に、顔領域調整部230は、検出された目の位置Ehに基づき高さ基準点Rhを決定する。図25は、高さ基準点Rhの決定方法の一例を示す説明図である。高さ基準点Rhは、顔領域FAの高さ方向の位置調整の際に、基準として用いられる点である。高さ基準点Rhとしては、図25に示すように、左右2つの目の位置Eh(l)およびEh(r)の中間に位置する基準線RL上の点が設定される。すなわち、左の目の位置Eh(l)を示す直線EhL(l)と基準線RLとの交点と、右の目の位置Eh(r)を示す直線EhL(r)と基準線RLとの交点と、の中点が、高さ基準点Rhとして設定される。
なお、顔領域調整部230は、検出された目の位置Ehに基づき、顔画像の概略の傾き角(以下「概略傾き角RI」と呼ぶ)を算出する。顔画像の概略傾き角RIは、対象画像TI中の顔の画像が、顔領域FAの基準線RLに対して概ねどれぐらい傾いているかを推定した角度である。図26は、概略傾き角RIの算出方法の一例を示す説明図である。図26に示すように、顔領域調整部230は、まず、左分割特定領域SA(l)の幅Ws(l)を半分に分割する直線と直線EhL(l)との交点IP(l)と、右分割特定領域SA(r)の幅Ws(r)を半分に分割する直線と直線EhL(r)との交点IP(r)とを決定する。そして、交点IP(l)と交点IP(r)とを結ぶ直線に直交する直線ILと、基準線RLとのなす角が、概略傾き角RIとして算出される。
ステップS514(図21)では、顔領域調整部230(図1)が、顔領域FAの高さ方向の位置調整を行う。図27は、顔領域FAの高さ方向の位置調整方法の一例を示す説明図である。顔領域FAの高さ方向の位置調整は、高さ基準点Rhが、位置調整後の顔領域FAにおける所定の位置に位置することとなるように、顔領域FAを再設定することにより行う。具体的には、図27に示すように、高さ基準点Rhが、顔領域FAの高さHfを所定の比率r1対r2で分けるような位置に位置することとなるように、顔領域FAが基準線RLに沿って上下に位置調整される。図27の例では、破線で示した調整前の顔領域FAを上方向に移動することにより、実線で示した調整後の顔領域FAが再設定されている。
顔領域FAの位置調整の後、ステップS520(図20)では、顔領域調整部230(図1)が、顔領域FAの傾き調整(角度調整)を行う。ここで、顔領域FAの傾き調整とは、対象画像TIにおける顔領域FAの傾きを顔の画像の傾きに適合するように調整して、顔領域FAを再設定することを意味している。顔領域FAの傾き調整を実行する際に参照する所定の参照被写体は、例えば「両目」に設定される。顔領域FAの傾き調整では、傾き調整の調整角度の選択肢を表す複数の評価方向が設定され、各評価方向に対応した評価特定領域ESAが両目の画像を含む領域として設定される。そして、各評価方向について評価特定領域ESAの画像の画素値に基づき評価値が算出され、評価値に基づき決定される傾き調整の調整角度を用いて顔領域FAの傾きが調整される。
図28は、顔領域FAの傾き調整処理の流れを示すフローチャートである。また、図29は、顔領域FAの傾き調整のための評価値の算出方法の一例を示す説明図である。ステップS521(図28)では、顔領域調整部230(図1)が、初期評価特定領域ESA(0)を設定する。初期評価特定領域ESA(0)は、顔領域FAの位置調整後の基準線RL(図27参照)と平行な方向(以下「初期評価方向」とも呼ぶ)に対応付けられた評価特定領域ESAである。位置調整後の顔領域FAに対応した特定領域SA(図27参照)は、そのまま初期評価特定領域ESA(0)として設定される。なお、顔領域FAの傾き調整における評価特定領域ESAは、顔領域FAの位置調整時の特定領域SAとは異なり、左右2つの領域に分割されることはない。図29の最上段には、設定された初期評価特定領域ESA(0)が示されている。
ステップS522(図28)では、顔領域調整部230(図1)が、複数の評価方向と各評価方向に対応した評価特定領域ESAとを設定する。複数の評価方向は、傾き調整の調整角度の選択肢を表す方向として設定される。具体的には、基準線RLとのなす角が所定の範囲内である複数の評価方向線ELが設定され、評価方向線ELと平行な方向が評価方向として設定される。図29に示すように、基準線RLを初期評価特定領域ESA(0)の中心点(重心)CPを中心として反時計回りおよび時計回りに所定の角度α刻みで回転させることにより定まる直線が、複数の評価方向線ELとして設定される。なお、基準線RLとのなす角がφ度である評価方向線ELをEL(φ)と表す。
上述した各評価方向線ELと基準線RLとのなす角についての所定の範囲は、±20度に設定される。ここで本明細書では、基準線RLを時計回りに回転させたときの回転角は正の値で表され、基準線RLを反時計回りに回転させたときの回転角は負の値で表される。顔領域調整部230は、基準線RLを反時計回りおよび時計回りにα度、2α度・・・と20度を超えない範囲で回転角を増加させつつ回転させ、複数の評価方向線ELを設定する。図29には、基準線RLを−α度,−2α度,α度回転させることによりそれぞれ定まる評価方向線EL(EL(−α),EL(−2α),EL(α))が示されている。なお、基準線RLは、評価方向線EL(0)とも表現できる。
各評価方向を表す評価方向線ELに対応した評価特定領域ESAは、初期評価特定領域ESA(0)を、中心点CPを中心として、評価方向線ELの設定時の回転角と同じ角度で回転させた領域である。評価方向線EL(φ)に対応した評価特定領域ESAは、評価特定領域ESA(φ)と表される。図29には、評価方向線EL(−α),EL(−2α),EL(α)のそれぞれに対応した評価特定領域ESA(ESA(−α),ESA(−2α),ESA(α))が示されている。なお、初期評価特定領域ESA(0)も評価特定領域ESAの1つとして扱われるものとする。
ステップS523(図28)では、顔領域調整部230(図1)が、設定された複数の評価方向のそれぞれについて、評価特定領域ESAの画像の画素値に基づき評価値を算出する。顔領域FAの傾き調整における評価値としては、上述した顔領域FAの位置調整における評価値と同様に、R値の平均値が用いられる。顔領域調整部230は、評価方向に沿った複数の評価位置についての評価値を算出する。
評価値の算出方法は、上述した顔領域FAの位置調整における評価値の算出方法と同様である。すなわち、顔領域調整部230は、図29に示すように、各評価特定領域ESA内に、評価方向線ELに直交する対象画素特定線PL1〜PLnを設定し、各対象画素特定線PL1〜PLnについて評価対象画素TPを選択し、選択された評価対象画素TPのR値の平均値を評価値として算出する。
評価特定領域ESAにおける対象画素特定線PLの設定方法や評価対象画素TPの選択方法は、領域を左右に分割するか否かの違いはあるものの、図23および図24に示した顔領域FAの位置調整における方法と同様である。なお、顔領域FAの位置調整時と同様に、選択された評価対象画素TPの内の一部(例えばk個の評価対象画素TPの内のR値の比較的大きい0.75k個の画素)を評価値の算出対象から除外するとしてもよい。図29の右側には、各評価方向について、算出された評価値の評価方向線ELに沿った分布を示している。
なお、対象画素特定線PLは評価方向線ELに直交する直線であるため、評価値は、評価方向線ELに沿った複数の位置(評価位置)について算出されると表現することができる。また、評価値は、各評価位置について、評価方向線ELに直交する方向に沿った画素値の分布の特徴を表す値と表現することができる。
ステップS524(図28)では、顔領域調整部230(図1)が、顔領域FAの傾き調整に用いる調整角度を決定する。顔領域調整部230は、各評価方向について、ステップS523において算出された評価値の評価方向線ELに沿った分散を算出し、分散の値が最大となる評価方向を選択する。そして、選択された評価方向に対応した評価方向線ELと基準線RLとのなす角を、傾き調整に用いる調整角度として決定する。
図30は、各評価方向についての評価値の分散の算出結果の一例を示す説明図である。図30の例では、回転角が−α度である評価方向において、分散が最大値Vmaxをとる。従って、−α度、すなわち反時計回りにα度の回転角が、顔領域FAの傾き調整に用いる調整角度として決定される。
評価値の分散の値が最大となるときの評価方向に対応した角度が傾き調整に用いる調整角度として決定される理由について説明する。図29の上から2段目に示すように、回転角が−α度であるときの評価特定領域ESA(−α)では、左右の目の中央部(黒目部分)の画像が、概ね対象画素特定線PLに平行な方向(すなわち評価方向線ELに直交する方向)に並ぶような配置となっている。また、このときには、左右の眉の画像も同様に、概ね評価方向線ELに直交する方向に並ぶような配置となる。従って、このときの評価方向線ELに対応した評価方向が、概ね顔の画像の傾きを表す方向であると考えられる。このときには、一般にR値が小さい目や眉の画像と一般にR値が大きい肌の部分の画像との位置関係が、対象画素特定線PLの方向に沿って両者が重なる部分の小さい位置関係となる。そのため、目や眉の画像の位置における評価値は比較的小さくなり、肌の部分の画像の位置における評価値は比較的大きくなる。従って、評価方向線ELに沿った評価値の分布は、図29に示すように、比較的ばらつきの大きい(振幅の大きい)分布となり、分散の値は大きくなる。
一方、図29中の最上段および3段目、4段目に示すように、回転角が0度,−2α度,α度であるときの評価特定領域ESA(0),ESA(−2α),ESA(α)では、左右の目の中央部や左右の眉の画像が、評価方向線ELに直交する方向に並ばず、ずれた配置となっている。従って、このときの評価方向線ELに対応した評価方向は、顔の画像の傾きを表していはいない。このときには、目や眉の画像と肌の部分の画像との位置関係が、対象画素特定線PLの方向に沿って両者が重なる部分の大きい位置関係となる。そのため、評価方向線ELに沿った評価値の分布は、図29に示すように、比較的ばらつきの小さい(振幅の小さい)分布となり、分散の値は小さくなる。
以上のように、評価方向が顔の画像の傾きの方向に近い場合には、評価方向線ELに沿った評価値の分散の値が大きくなり、評価方向が顔の画像の傾きの方向から遠い場合には、評価方向線ELに沿った評価値の分散の値が小さくなる。従って、評価値の分散の値が最大となるときの評価方向に対応した角度を傾き調整に用いる調整角度として決定すれば、顔領域FAの傾きが顔の画像の傾きに適合するような顔領域FAの傾き調整を実現することができる。
なお、評価値の分散の算出結果が、角度の範囲の臨界値、すなわち−20度または20度において最大値をとるような結果となった場合には、顔の傾きが正確に評価されていない可能性が高いと考えられるため、顔領域FAの傾き調整は行われない。
また、決定された調整角度は、上述した顔領域FAの位置調整の際に算出された概略傾き角RIと比較される。調整角度と概略傾き角RIとの差が所定の閾値より大きい場合には、顔領域FAの位置調整および傾き調整における評価や決定の際に何らかの誤りが発生したと考えられるため、顔領域FAの位置調整および傾き調整は行われない。
ステップS525(図28)では、顔領域調整部230(図1)が、顔領域FAの傾き調整を行う。図31は、顔領域FAの傾き調整方法の一例を示す説明図である。顔領域FAの傾き調整は、顔領域FAを、初期評価特定領域ESA(0)の中心点CPを中心に、ステップS524において決定された調整角度だけ回転させることにより行う。図31の例では、破線で示した調整前の顔領域FAを反時計回りにα度回転させることにより、実線で示した調整後の顔領域FAが設定される。
顔領域FAの傾き調整終了後のステップS530(図20)では、変形領域設定部240(図1)が、変形領域TAを設定する。変形領域TAは、対象画像TI上の領域であって顔形状補正のための画像変形処理の対象となる領域である。図32は、変形領域TAの設定方法の一例を示す説明図である。図32に示すように、変形領域TAは、顔領域FAを基準線RLと平行な方向(高さ方向)および基準線RLに直交する方向(幅方向)に伸張(または短縮)した領域として設定される。具体的には、顔領域FAの高さ方向の大きさをHf、幅方向の大きさをWfとすると、顔領域FAを、上方向にk1・Hf、下方向にk2・Hfだけ伸ばすと共に、左右にそれぞれk3・Wfだけ伸ばした領域が、変形領域TAとして設定される。なお、k1,k2,k3は、所定の係数である。
このように変形領域TAが設定されると、顔領域FAの高さ方向の輪郭線に平行な直線である基準線RLは、変形領域TAの高さ方向の輪郭線にも平行な直線となる。また、基準線RLは、変形領域TAの幅を半分に分割する直線となる。
図32に示すように、変形領域TAは、高さ方向に関しては、概ね顎から額までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち、上述の係数k1,k2,k3は、変形領域TAが概ねそのような範囲の画像を含む領域となるように、顔領域FAの大きさとの関係に基づいて予め設定されている。
D.分割点配置の態様:
図33は、変形領域TAの小領域への分割方法の一例を示す説明図である。変形領域分割部250は、変形領域TAに複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TAを複数の小領域に分割する。
分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル410(図1)により、ステップS120(図4)において設定される変形タイプと対応付けて定義されている。変形領域分割部250は、分割点配置パターンテーブル410を参照し、ステップS120において設定された変形タイプと対応付けられた態様で分割点Dを配置する。上述したように、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定されている場合には、この変形タイプに対応付けられた態様で分割点Dが配置される。
図33に示すように、分割点Dは、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに配置される。ここで、水平分割線Lhおよび垂直分割線Lvは、変形領域TA内に分割点Dを配置するための基準となる線である。図33に示すように、顔をシャープにするための変形タイプに対応付けられた分割点Dの配置では、基準線RLと直交する2本の水平分割線Lhと、基準線RLに平行な4本の垂直分割線Lvとが設定される。2本の水平分割線Lhを、変形領域TAの下方から順に、Lh1,Lh2と呼ぶ。また、4本の垂直分割線Lvを、変形領域TAの左から順に、Lv1,Lv2,Lv3,Lv4と呼ぶ。
水平分割線Lh1は、変形領域TAにおいて、顎の画像より下方に配置され、水平分割線Lh2は、目の画像のすぐ下付近に配置される。また、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。なお、水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TAの大きさとの対応関係に従い実行される。
上述した水平分割線Lhと垂直分割線Lvとの配置に従い、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに、分割点Dが配置される。図33に示すように、水平分割線Lhi(i=1または2)上に位置する分割点Dを、左から順に、D0i,D1i,D2i,D3i,D4i,D5iと呼ぶものとする。例えば、水平分割線Lh1上に位置する分割点Dは、D01,D11,D21,D31,D41,D51と呼ばれる。同様に、垂直分割線Lvj(j=1,2,3,4のいずれか)上に位置する分割点Dを、下から順に、Dj0,Dj1,Dj2,Dj3と呼ぶものとする。例えば、垂直分割線Lv1上に位置する分割点Dは、D10,D11,D12,D13と呼ばれる。
なお、図33に示すように、本実施例における分割点Dの配置は、基準線RLに対して対称の配置となっている。
変形領域分割部250は、配置された分割点Dを結ぶ直線(すなわち水平分割線Lhおよび垂直分割線Lv)により、変形領域TAを複数の小領域に分割する。図33の例では、変形領域TAは15個の矩形の小領域に分割される。
なお、分割点Dの配置は、水平分割線Lhおよび垂直分割線Lvの本数および位置により定まるため、分割点配置パターンテーブル410は水平分割線Lhおよび垂直分割線Lvの本数および位置を定義していると言い換えることも可能である。
E.小領域の変形:
変形領域TA内に分割点Dを配置して変形領域TAを分割した個々の小領域は、分割領域変形部260(図1)が、変形領域TA内に配置された分割点Dの位置を移動することにより変形される。
変形処理のための各分割点Dの位置の移動態様(移動方向および移動距離)は、分割点移動テーブル420(図1)により、ステップS120(図4)において設定される変形タイプと変形の度合いとの組み合わせに対応付けて、予め定められている。分割領域変形部260は、分割点移動テーブル420を参照し、ステップS120において設定された変形タイプと変形の度合いとの組み合わせに対応付けられた移動方向および移動距離で、分割点Dの位置を移動する。
上述したように、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして程度「中」の度合いが設定されている場合には、これらの変形タイプおよび変形度合いの組み合わせに対応付けられた移動方向および移動距離で、分割点Dの位置が移動されることとなる。
図34は、分割点移動テーブル420の内容の一例を示す説明図である。また図35は、分割点移動テーブル420に従った分割点Dの位置の移動の一例を示す説明図である。図34には、分割点移動テーブル420により定義された分割点Dの位置の移動態様の内、顔をシャープにするための変形タイプと程度「中」の変形度合いとの組み合わせに対応付けられた移動態様を示している。図34に示すように、分割点移動テーブル420には、各分割点Dについて、基準線RLと直交する方向(H方向)および基準線RLと平行な方向(V方向)に沿った移動量が示されている。なお、分割点移動テーブル420に示された移動量の単位は、対象画像TIの画素ピッチPPである。また、H方向については、向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、V方向については、上方への移動量が正の値として表され、下方への移動量が負の値として表される。例えば、分割点D11は、H方向に沿って右側に画素ピッチPPの7倍の距離だけ移動され、V方向に沿って上方に画素ピッチPPの14倍の距離だけ移動される。また、例えば分割点D22は、H方向およびV方向共に移動量がゼロであるため、移動されない。
なお、変形領域TAの内外の画像間の境界が不自然とならないように、変形領域TAの外枠上に位置する分割点D(例えば図35に示す分割点D10等)の位置は移動されない。従って、図34に示した分割点移動テーブル420には、変形領域TAの外枠上に位置する分割点Dについての移動態様は定義されていない。
図35では、移動前の分割点Dは白抜きの丸で、移動後の分割点Dや位置の移動の無い分割点Dは黒丸で示されている。また、移動後の分割点Dは分割点D'と呼ばれるものとする。例えば分割点D11の位置は、図35において右上方向に移動され、分割点D'11となる。
なお、基準線RLに対して対称な位置関係にある2つの分割点Dの組み合わせ(例えば分割点D11とD41との組み合わせ)のすべてが、分割点Dの移動後も、基準線RLに対して対称な位置関係を維持するように、移動態様が定められている。
分割領域変形部260は、変形領域TAを構成する各小領域について、分割点Dの位置移動前の状態における小領域の画像が、分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。例えば、図35において、分割点D11,D21,D22,D12を頂点とする小領域(ハッチングを付して示す小領域)の画像は、分割点D'11,D'21,D22,D'12を頂点とする小領域の画像に変形される。
なお、上述のように小領域を変形対象から除外する場合には、その小領域の頂点に相当する分割点の移動距離がゼロに設定される。これにより、変形対象から除外された小領域は変形されない状態となる。例えば、図35においてハッチングを付した、分割点D11,D21,D22,D12を頂点とする小領域を変形対象から除外する場合、図34の分割点移動テーブル420のうち、分割点D11,D21,D22,D12のH方向及びV方向の移動量がゼロに設定される。
図36は、分割領域変形部260による画像の変形処理方法の概念を示す説明図である。図36では、分割点Dを黒丸で示している。図36では、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図36の例では、中央の分割点Daが分割点Da'の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da',Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
画像の変形処理は、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で行われる。図36の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG'を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da',Ddおよび重心CG'を頂点とする三角形領域の画像に変形される。
図37は、三角形領域における画像の変形処理方法の概念を示す説明図である。図37の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s',t',u'を頂点とする三角形領域s't'u'の画像に変形される。画像の変形は、変形後の三角形領域s't'u'の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像(すなわち、元画像)における画素値を変形後の画像の画素値とすることにより行う。
例えば、図37において、変形後の三角形領域s't'u'の画像中の注目画素p'の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p'の位置を、下記の式(1)のようにベクトルs't'とベクトルs'u'との和で表現するための係数m1およびm2を算出する。
次に、算出された係数m1およびm2を用いて、下記の式(2)により、変形前の三角形領域stuにおけるベクトルstとベクトルsuとの和を算出することにより、位置pが求まる。
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
変形後の三角形領域s't'u'の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s't'u'の画像への画像変形処理を行うことができる。分割領域変形部260は、図35に示した変形領域TAを構成する各小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域TAにおける画像変形処理を行う。
ここで、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして程度「中」の度合いが設定された場合を例に取り、顔形状補正の態様についてより詳細に説明する。図38は、この場合における顔形状補正の態様を示す説明図である。図38には、変形領域TAを構成する各小領域の変形態様のイメージを矢印により示している。
図38の例に示す顔形状補正では、基準線RLと平行な方向(V方向)に関し、水平分割線Lh1上に配置された分割点D(D11,D21,D31,D41)の位置は上方に移動される一方、水平分割線Lh2上に配置された分割点D(D12,D22,D32,D42)の位置は移動されない(図34参照)。従って、水平分割線Lh1と水平分割線Lh2との間に位置する画像は、V方向に関して縮小される。上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh2は目の画像のすぐ下付近に配置されるため、この顔形状補正では、顔の画像の内、顎から目の下にかけての部分の画像がV方向に縮小されることとなる。この結果、画像中の顎のラインは上方に移動する。
他方、基準線RLと直交する方向(H方向)に関しては、垂直分割線Lv1上に配置された分割点D(D11,D12)の位置は右方向に移動され、垂直分割線Lv4上に配置された分割点D(D41,D42)の位置は左方向に移動される(図34参照)。さらに、垂直分割線Lv2上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D21)の位置は右方向に移動され、垂直分割線Lv3上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D31)の位置は左方向に移動される(図34参照)。従って、垂直分割線Lv1より左側に位置する画像は、H方向に関して右側に拡大され、垂直分割線Lv4より右側に位置する画像は、左側に拡大される。また、垂直分割線Lv1と垂直分割線Lv2との間に位置する画像は、H方向に関して縮小または右側に移動され、垂直分割線Lv3と垂直分割線Lv4との間に位置する画像は、H方向に関して縮小または左側に移動される。さらに、垂直分割線Lv2と垂直分割線Lv3との間に位置する画像は、水平分割線Lh1の位置を中心にH方向に関して縮小される。
上述したように、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、図38の例における顔形状補正では、顔の画像の内、両目尻より外側の部分の画像が全体的にH方向に縮小される。特に顎付近において縮小率が高くなる。この結果、画像中の顔の形状は、全体的に幅方向に細くなる。
上述したH方向およびV方向の変形態様を総合すると、図38の例に示した顔形状補正により、対象画像TI中の顔の形状がシャープになる。なお、顔の形状がシャープになるとは、いわゆる「小顔」になると表現することもできる。
なお、図38に示す分割点D22,D32,D33,D23を頂点とする小領域(ハッチングを付した領域)は、上述した水平分割線Lh2や垂直分割線Lv2およびLv3の配置方法によると、両目の画像を含む領域となる。図34に示すように、分割点D22およびD32はH方向にもV方向にも移動されないため、この両目の画像を含む小領域は変形されない。このように図38の例では、両目の画像を含む小領域については変形しないこととし、顔形状補正後の画像がより自然で好ましいものとなるようにしている。
F.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
F1.変形例1:
上記各実施例では、変形処理後の画像が不自然な画像となることを抑制するため、複数の変形領域が重複した重複領域に重なる重複小領域の変形を行わないものとしているが、一般には、重複小領域の変形量を低減することができればよい。このようにしても、重複領域の外周における画像のずれが低減できるので、変形処理後の画像が不自然な画像となることを抑制することが可能となる。
F2.変形例2:
上記各実施例では、変形領域を分割した小領域毎に変形するか否かを決定しているが、重複領域を含む変形領域の一部の変形量を低減するものとしても良い。例えば、変形領域の分割に使用される分割点のうち、重複領域に入る分割点の移動を抑制するものとしてもよい。この場合においても重複領域の変形量が低減されるので、重複領域の外周における画像のずれが低減でき、変形処理後の画像が不自然な画像となることを抑制することが可能となる。
F3.変形例3:
上記各実施例では、本発明を、対象画像中の顔の形状を補正する変形処理に適用しているが、本発明は顔の変形処理の他、変形対象となる変形領域が重複しうる場合一般に適用することができる。
F4.変形例4:
上記各実施例では、変形領域を矩形の領域として設定しているが、変形領域の形状は、他の形状(例えば、楕円や菱形)であってもよい。
F5.変形例5:
上記各実施例では、画像処理装置としてのプリンタ100による顔形状補正印刷処理(図3)を説明したが、顔形状補正印刷処理は例えば、顔形状補正と補正画像の表示(ステップS100,S200)がパーソナルコンピュータにより実行され、印刷処理(ステップS300)のみがプリンタにより実行されるものとしてもよい。また、プリンタ100はインクジェットプリンタに限らず、他の方式のプリンタ、例えばレーザプリンタや昇華型プリンタであるとしてもよい。
F6.変形例6:
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。