以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
A.第1の実施例:
B.第2の実施例:
C.第3の実施例:
D.第4の実施例:
E.第5の実施例:
F.変形例:
A.第1の実施例:
A1.装置構成:
図1は、本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。このプリンタ100は、メモリカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、内部メモリ120と、CPU110と、操作部140と、表示部150と、プリンタエンジン160と、カードインターフェース(カードI/F)170と、カードスロット172とを備えている。
内部メモリ120は、ROMやRAMによって構成されており、顔形状補正処理部200と、表示処理部310と、印刷処理部320と、分割点配置パターンテーブル410と、分割点移動テーブル420とを備えている。顔形状補正処理部200は、所定のオペレーティングシステムの下で、後述する顔形状補正処理を実行するためのコンピュータプログラムである。この顔形状補正処理部200は、プログラムモジュールとして、顔領域検出部210と、器官領域検出部220と、顔向き推定部230と、変形領域設定部240と、変形領域分割部250と、分割領域変形部260と、分割点移動テーブル決定部270とを含んでいる。表示処理部310は、表示部150を制御して、表示部150上に処理メニュー,メッセージ及び画像を表示させるディスプレイドライバである。印刷処理部320は、画像データから印刷データを生成し、プリンタエンジン160を制御して画像の印刷を実行するためのコンピュータプログラムである。CPU110は、上述したこれらのプログラムを内部メモリ120から読み出して実行することにより、これら各部の機能をそれぞれ実現する。
操作部140は、ボタンやタッチパネルを備えておりユーザによる指示等の入力を受け付ける。表示部150は、液晶ディスプレイで構成されている。プリンタエンジン160は、印刷処理部320から送信される印刷データに基づき印刷を行う印刷機構である。カードI/F170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインターフェースである。なお、このカードI/F170以外にも他の機器(例えばデジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインターフェースを備える構成とすることもできる。以上の各構成要素は、バスを介して互いに接続されている。
上記構成を有するプリンタ100は、顔画像を含む画像に対して後述する顔形状補正処理を実行することにより、顔画像の一部を含む領域を小さく変形させる(以下、「小顔化する」又は「スリムにする」とも呼ぶ)ことができる。このとき、顔画像に含まれる顔の向きが正面でない場合であっても、見栄え良く変形させるように構成されている。
なお、前述の顔向き推定部230と器官領域検出部220とは、請求項における顔向き推定部に相当する。また、変形領域設定部240と変形領域分割部250と分割領域変形部260と分割点移動テーブル決定部270とは、請求項における画像補正部に相当する。
A2.顔形状補正処理:
図2は、顔形状補正処理の手順を示すフローチャートである。カードスロット172(図1)にメモリカードMCが挿入され、ユーザによる操作部140を介した所定の操作が行われると、顔形状補正処理が開始される。
ステップS100では、顔形状補正処理部200(図1)は、処理対象となる対象画像を設定する。具体的には、顔形状補正処理部200は、対象画像設定のための所定のユーザインタフェースを表示部150に表示するように表示処理部310に指示する。そして、顔形状補正処理部200は、このユーザインタフェースからの入力に従って対象画像を設定する。
図3は、表示部150に表示される対象画像設定用ユーザインタフェースの一例を示す説明図である。この対象画像設定用ユーザインタフェース(以下、「対象画像設定用UI」とも呼ぶ)500は、表示部150(図1)に表示されたユーザインタフェース用画像として構成されている。具体的には、画像表示用UI500は、画像表示欄IAと、画像切替用の2つのボタンB1,B2と、決定用ボタンB10と、キャンセル用ボタンB11とを備えている。ユーザは、対象画像設定用UI500を見ながら2つの画像切替用ボタンB1,B2を操作して対象画像を選択し、決定用ボタンB10を押下することで対象画像を設定することができる。図3の例では、2人の人物P1,P2が写った画像TIが対象画像として選択されており、この状態でユーザが決定用ボタンB10を押下することで、顔形状補正処理部200は、画像TIを対象画像として設定する。なお、対象画像設定用UI500においてメモリカードMC内の複数の画像を一覧表示する構成とすることもできる。
ステップS200(図2)では、顔領域検出部210(図1)は、対象画像における顔領域の検出を行う。「顔領域」とは、対象画像における画像領域であって、少なくとも顔の一部の画像を含む領域である。顔領域検出部210は、対象画像を解析して顔の画像を含むと想定される矩形の領域を顔領域として検出する。この顔領域の検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2006−279460参照)といった公知の検出方法を用いて実行される。
図4は、ステップS200における顔領域の検出結果の一例を示す説明図である。図4の例では、対象画像TIに人物P1と人物P2との2人の顔の画像が含まれているため、人物P1の顔の画像を含む領域Fd1と人物P2の顔の画像を含む領域Fd2とが検出されている。ここで、2つの顔領域Fd1,Fd2は、それぞれ両目と鼻と口の各画像をすべて含む矩形の領域となっている。顔領域検出部210は、これら2つの顔領域Fd1,Fd2を、それぞれ、顔領域の4つの頂点の座標により特定する。
前述のステップS200(図2)において、顔領域の検出に成功しなかった場合は(ステップS300:No)、その旨が表示部150を介してユーザに通知される。この場合には、ユーザに他の画像を対象画像として選択させるために、対象画像設定用UI500(図3)が表示部150に再度表示され、対象画像の再設定(図2:ステップS100)が行われる。なお、ステップS100の再実行に代えて、メッセージの通知の後に顔形状補正処理を終了させる構成とすることもできる。
一方、前述のステップS200において、顔領域の検出に成功した場合には(ステップS300:Yes)、器官領域検出部220(図1)は、対象画像における器官領域の検出を行う(ステップS400)。「器官領域」とは、対象画像における画像領域であって、少なくとも顔の器官の一部の画像を含む領域を意味する。本実施例では、顔の器官として被写体の人物の右目と左目と口とが設定されており、器官領域として、「右目の画像を含む右目領域」と、「左目の画像を含む左目領域」と、「口の画像を含む口領域」とが検出対象となる。器官領域検出部220は、対象画像において顔領域を解析して、右目を含むと想定される矩形領域を「右目領域」として検出する。同様に、器官領域検出部220は、左目を含むと想定される矩形領域を「左目領域」として、口を含むと想定される矩形領域を「口領域」として、それぞれ検出する。この器官領域の検出は、顔領域の検出と同様に、例えばテンプレートを利用したパターンマッチングによる方法といった公知の検出方法を用いて実行することができる。
図5は、ステップS400における器官領域の検出結果の一例を示す説明図である。図5の例では、人物P1の顔領域Fd1において、右目領域Er1と左目領域El1と口領域Ma1とが検出されている。同様に、人物P2の顔領域Fd2において、右目領域Er2と左目領域El2と口領域Ma2とが検出されている。器官領域検出部220は、検出した各器官領域Er1,El1,Ma1,Er2,El2,Ma2を、それぞれの領域の4つの頂点の座標によって特定することができる。
なお、本実施例では、信頼度設定部222(図1)が、検出された各器官領域について信頼度指標を設定する。信頼度指標は、検出された器官領域が、真に顔の器官の画像を含む領域であることの確からしさを表す指標である。本実施例では、信頼度指標として、テンプレートを変更しつつ複数回のパターンマッチングを行った際におけるマッチ回数を用いる。
ステップS400(図2)において、器官領域の検出に成功した場合には(ステップS500:Yes)、処理はステップS600に進む。ここで、本実施例では、器官領域の検出に成功した場合とは、「右目領域」と「左目領域」と「口領域」との3つの器官領域がすべて検出され、かつ、すべての器官領域について信頼度指標の表す確からしさが所定の閾値より大きい場合を意味する。3つの器官領域の内のいずれか1つでも検出されなかった場合や、3つの器官領域の内のいずれか1つの信頼度指標の表す確からしさが所定の閾値より小さい場合には、器官領域の検出に成功しなかったこととなる。
ステップS600(図2)では、顔向き推定部230(図1)は、対象画像に含まれる顔の向きと振りの程度とを推定して、内部メモリ120に格納する。ここで、「顔の向き」とは、顔の正面向き(観察者から被写体である人物の顔に向かう方向)を基準とした向きを意味する。また、「顔の振りの程度」とは、顔の正面向きを基準(0°)としたときの顔の向きの角度を意味する。
図6は、ステップS600における顔の向きと程度とを推定する方法を概念的に示す説明図である。図6において、右目領域Erの中心点Ce(r)と左目領域Elの中心点Ce(l)とを結ぶ線分CLの長さを参照幅Wrと呼び、口領域Maの中心点Cmと線分CLとの距離を参照高さHrと呼ぶものとする。図6から明らかなように、参照幅Wrは顔の幅に相関のある指標であり、参照高さHrは顔の高さに相関のある指標である。
顔向き推定部230は、参照高さHrと参照幅Wrとを算出すると共に参照高さHrと参照幅Wrとの比(Hr/Wr)を判定指標DIとして算出し、判定指標DIに基づき顔向き推定を行う。すなわち、図6に示すように、判定指標DIの値が閾値T1以上で閾値T2未満である場合には、顔の向きが正面向きであると推定される。また、判定指標DIの値が閾値T1未満である場合には、顔の向きが上振りまたは下振りであると推定され、判定指標DIの値が閾値T2以上である場合には、顔の向きが右振りまたは左振りであると推定される。
ここで、「左振り」とは、被写体である人物の顔が対象画像の観察者から見て左を向いている(すなわち人物は実際には右を向いている)場合の顔の向きを意味し、「右振り」とは、人物の顔が画像の観察者から見て右を向いている(すなわち人物は実際には左を向いている)場合の顔の向きを意味する。また、「上振り」とは、被写体である人物の顔が画像の観察者から見て上を向いている場合の顔の向きを意味し、「下振り」とは、人物の顔が画像の観察者から見て下を向いている場合の顔の向きを意味する。
顔の向きが右振りまたは左振りである場合には、正面向きである場合と比較して、参照高さHrはほとんど変わらない一方、参照幅Wrは小さいものと考えられる。従って、顔の向きが右振りまたは左振りである場合には、正面向きである場合と比較して判定指標DI(=Hr/Wr)の値が大きくなる。反対に、顔の向きが上振りまたは下振りである場合には、正面向きである場合と比較して参照幅Wrはほとんど変わらない一方、参照高さHrは小さいものと考えられる。従って、顔の向きが上振りまたは下振りである場合には、正面向きである場合と比較して、判定指標DI(=Hr/Wr)の値が小さくなる。閾値T1および閾値T2は、所定数の顔のサンプル画像の判定指標DI(参照幅Wrと参照高さHrとの比)から統計的に定められる。予め定められた閾値T1および閾値T2は内部メモリ120内の所定の領域に格納されており(図示省略)、顔向き推定部230は、対象画像の判定指標DIと閾値T1および閾値T2とを用いて、顔向き推定を行う。
なお、図6から明らかなように、判定指標DIは、顔の正面向きを基準とした顔の振りの程度を示す指標であると言える。例えば、右振りまたは左振りと推定された2つの顔画像において、判定指標DIの値がより大きい一方の顔は、他の一方の顔と比較して、正面向きからの振りの程度がより大きいと推定することができる。また、閾値T1および閾値T2を決定することは、顔の向きが厳密な正面向き(顔と撮像装置(観察者)とが正対している状態)からどの程度振りのある顔画像までを「正面向き」であるとして推定するかを設定することに相当する。
図7(A)は、図5に示す対象画像TIが得られた際の人物P1と撮像装置との位置関係を示す説明図である。図7(A)の例では、撮影時における二人の人物P1,P2と撮像装置(デジタルスチルカメラ)800との位置関係を上方より示している。2人の人物P1,P2は、互いにデジタルスチルカメラ800からほぼ同じ距離に位置している。このとき、人物P1は、デジタルスチルカメラ800に正対している。したがって、図5に示すように、人物P1の顔の向きは正面向きとなっている。
図7(B)は、図5に示す対象画像TIが得られた際の人物P2と撮像装置との位置関係を示す説明図である。図7(B)も図7(A)と同様に、撮影時における二人の人物P1,P2とデジタルスチルカメラ800との位置関係を上方より示している。人物P2は、デジタルスチルカメラ800と正対する方向(顔の正面向き)を基準として右側に30°(+30°)だけ振った方向を向いている。このような位置関係で撮像されて得られた対象画像TI(図5)において、顔向き推定部230は、上述した判定指標DIを用いて、例えば、以下のごとく各顔の向きと振りの程度とを推定することができる。
図8(A)は、顔向き推定において正面向きと推定された結果の一例を示す説明図である。図8(A)の例では、人物P1の顔画像についての顔向き推定の結果、判定指標DIの値が閾値T1以上で閾値T2未満であるために、「正面向き」であると推定されている。そして、この場合、顔の振りの方向を示す値として「正面向き」と、顔の振りの程度(角度)を示す値として「0°」とが、顔領域Fd1を示す値(矩形領域の各頂点の座標等)と対応付けて内部メモリ120に格納される。なお、顔の振り角度は、判定指標DIと角度とを対応付けた角度テーブル(図示省略)を用いて決定することができる。この角度テーブル(図示省略)は、予め実験によって判定指標DI毎の振り角度を求めて設定し、内部メモリ120に格納しておく。
図8(B)は、顔向き推定において右振りと推定された結果の一例を示す説明図である。図8(B)では、人物P2の顔画像についての顔向き推定の結果、判定指標D1がT2以上であるために、「右振り」または「左振り」と推定される。さらに、顔向き推定部230は、右振りと左振りとのうち、いずれかであるかを推定する。この推定は、例えば、右目領域Erの幅Werと左目領域Elの幅Welとを比較することにより実現可能である。すなわち、右目領域Erの幅Werの方が大きければ右振りであると推定され、左目領域Elの幅Welの方が大きければ左振りであると推定される。図8(B)の例では、右目領域Er2の幅Wer2の方が左目領域El2の幅Wel2よりも大きいので、「右振り」であると推定されている。また、顔向き推定部230は、得られた判定指標D1に基づき、上述した角度テーブル(図示省略)を参照して人物P2についての顔画像の振り角度(+30°)を求めることができる。そして、顔向き推定部230は、「右振り」及び「+30°」を、顔領域Fd2を示す値と対応付けて内部メモリ120に格納する。
ステップS700(図2)では、分割点移動テーブル決定部270は、後述するステップS800の変形処理で用いる分割点移動テーブルを決定する。分割点移動テーブル420(図1)は、顔の向き及び振りの程度に応じて予め用意された複数のテーブルから構成されており、分割点移動テーブル決定部270は、これら複数のテーブルから変形処理で用いるテーブルを選択して決定する。例えば、人物P1の顔画像についての変形処理で用いる分割点移動テーブルとしては、上述のように顔の向きが正面向き(振りの程度=0°)であるので、正面向き用(0°用)に用意された分割点テーブルが選択される。また、人物P2の顔画像についての変形処理で用いる分割点移動テーブルとしては、上述のように顔の向きが右振りであり振りの程度が+30°であるので、+30°右振り用に用意された分割点移動テーブルが決定される。なお、分割点移動テーブル420の詳細は後述する。そして、分割点移動テーブルが決定されると、顔画像の変形処理が実行される(ステップS800)。
図9は、ステップS800の変形処理の詳細手順を示すフローチャートである。ステップS810では、変形領域設定部240(図1)は、変形領域を設定する。「変形領域」とは、対象画像上の領域であって顔形状補正のための変形処理の対象となる領域を意味する。また、この変形領域は、請求項における補正対象領域に相当する。
図10は、変形領域の設定方法の一例を示す説明図である。図10の例では、顔領域Fd1についての変形領域の設定例を示している。図10において、太い実線の矩形(TA1)は、顔領域Fd1について設定される変形領域TA1を示す。また、基準線RLは、顔領域Fd1の高さ方向(上下方向)を定義すると共に、顔領域Fd1の幅方向(左右方向)の中心を示す線である。すなわち、基準線RLは、矩形の顔領域Fd1の重心を通り、顔領域Fd1の高さ方向(上下方向)に沿った境界線に平行な直線である。
図10に示すように、本実施例では、変形領域TA1は、顔領域Fd1を基準線RLと平行な方向(高さ方向)および基準線RLに直行する方向(幅方向)に伸張(または短縮)した領域として設定される。具体的には、顔領域Fd1の高さ方向(縦)の長さをH1、幅方向(横)の大きさをW1とすると、顔領域Fd1を、上方向にk1・H1、下方向にk2・H1だけ伸ばすと共に、左右にそれぞれk3・W1だけ伸ばした領域が、変形領域TA1として設定される。なお、k1,k2,k3は、所定の係数である。このようにして変形領域TA1が設定されると、顔領域Fd1の高さ方向(縦)の輪郭線に平行な直線である基準線RLは、変形領域TA1の高さ方向(縦)の輪郭線にも平行な直線となる。また、基準線RLは、変形領域TA1の幅(横の長さ)を半分に分割する直線となる。
図10に示すように、変形領域TA1は、高さ方向に関しては、概ね顎から額までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち、本実施例では、補正領域が概ねそのような範囲の画像を含む領域となるように、上述の係数k1,k2,k3を予め実験により求めて設定されている。
ステップS820(図9)では、変形領域分割部250は、ステップS810において設定した変形領域を複数の小領域に分割する。
図11は、変形領域の小領域への分割方法の一例を示す説明図である。図11では、前述の図10に示す顔領域Fd1と変形領域TA1とを記載している。変形領域分割部250は、変形領域TA1に複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TA1を複数の小領域に分割する。
ここで、分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル410(図1)により定義されている。変形領域分割部250は、分割点配置パターンテーブル410を参照して分割点Dを配置する。なお、本実施例では、顔の形状をスリムにするための小顔化が行われるものとしており、分割点配置パターンテーブル410には、そのような小顔化に対応した態様で分割点Dの配置パターンが予め定義されている。
図11の例では、分割点Dは、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TA1の外枠との交点とに配置される。ここで、水平分割線Lhおよび垂直分割線Lvは、変形領域TA1内に分割点Dを配置するための基準となる線である。図11に示すように、本実施例における分割点Dの配置では、基準線RLと直行する2本の水平分割線Lhと、基準線RLに平行な4本の垂直分割線Lvとが設定される。2本の水平分割線Lhを、変形領域TAの下方から順に、Lh1,Lh2と呼ぶ。また、4本の垂直分割線Lvを、変形領域TAの左から順に、Lv1,Lv2,Lv3,Lv4と呼ぶ。
水平分割線Lh1は、変形領域TA1において、顎の画像より下方に配置され、水平分割線Lh2は、目の画像付近に配置される。また、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。なお、水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TA1の大きさとの対応関係に従い実行される。
上述した水平分割線Lhと垂直分割線Lvとの配置に従い、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TA1の外枠との交点とに、分割点Dが配置される。図11に示すように、水平分割線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と呼ばれる。なお、図11に示すように、本実施例における分割点Dの配置は、基準線RLに対して対称の配置となっている。
変形領域分割部250は、配置された分割点Dを結ぶ直線(すなわち水平分割線Lhおよび垂直分割線Lv)によって変形領域TA1を複数の小領域に分割する。図11の例では、変形領域TA1は、15個の矩形の小領域に分割されている。
ステップS830(図9)では、分割領域変形部260(図1)は、前述のステップS700(図2)において決定された分割点移動テーブルに従い分割点Dの位置を移動して小領域を変形することによって、変形領域を変形させる。
図12は、顔の向きが正面向き(振りの程度=0°)用の分割点移動テーブル(0°用テーブル)の詳細例を示す説明図である。分割点移動テーブル420(図1)を構成する各テーブルでは、ステップS820で配置された各分割点D11〜D42(図11)について、基準線RLと直行する方向(H方向)に沿った移動量及び基準線RLと平行な方向(V方向)に沿った移動量が設定されている。なお、本実施例では、この移動量の単位は、対象画像の画素ピッチPPである。また、H方向については、向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、V方向については、上方への移動量が正の値として表され、下方への移動量が負の値として表される。例えば、図12の例では、0°用テーブルtb0において分割点D11については、H方向に沿って右側に画素ピッチPPの7倍の距離の移動量が設定され、V方向に沿って上方に画素ピッチPPの14倍の距離の移動量が設定されている。また、分割点D22については、H方向およびV方向共に移動量としてゼロが設定されている。
図13は、図12に示す0°用テーブルtb0に従った分割点Dの位置の移動の一例を示す説明図である。図13の例では、変形領域TA1について分割点Dの位置を移動させて変形する際の具体的な変形態様を示している。分割領域変形部260は、変形領域TA1を構成する各小領域について、分割点Dの位置移動前の状態における小領域の画像が分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。例えば、図13において、分割点D11,D21,D22,D12を頂点とする小領域(ハッチングを付して示す小領域)の画像は、分割点D’11,D’21,D22,D’12を頂点とする小領域の画像に変形される。なお、この小領域画像の変形処理の詳細については後述する。
図13に示すように、ステップS830における分割点の移動の結果、基準線RLと平行な方向(V方向)に関し、水平分割線Lh1上に配置された分割点D(D11,D21,D31,D41)の位置は上方に移動される一方、水平分割線Lh2上に配置された分割点D(D12,D22,D32,D42)の位置は移動されない(図12参照)。従って、水平分割線Lh1と水平分割線Lh2との間に位置する画像は、V方向に関して縮小される。上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh2は目の画像のすぐ下付近に配置されるため、本実施例の顔形状補正では、顔画像の内、顎から目の下にかけての部分の画像がV方向に縮小されることとなる。この結果、画像中の顎のラインは上方に移動する。
他方、基準線RLと直行する方向(H方向)に関しては、垂直分割線Lv1上に配置された分割点D(D11,D12)の位置は右方向に移動され、垂直分割線Lv4上に配置された分割点D(D41,D42)の位置は左方向に移動される(図12参照)。さらに、垂直分割線Lv2上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D21)の位置は右方向に移動され、垂直分割線Lv3上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D31)の位置は左方向に移動される(図12参照)。従って、垂直分割線Lv1より左側に位置する画像は、H方向に関して右側に拡大され、垂直分割線Lv4より右側に位置する画像は、左側に拡大される。また、垂直分割線Lv1と垂直分割線Lv2との間に位置する画像は、H方向に関して縮小または右側に移動され、垂直分割線Lv3と垂直分割線Lv4との間に位置する画像は、H方向に関して縮小または左側に移動される。さらに、垂直分割線Lv2と垂直分割線Lv3との間に位置する画像は、水平分割線Lh1の位置を中心にH方向に関して縮小される。
上述したように、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、本実施例では、顔画像の内、両目尻より外側の部分の画像が全体的にH方向に縮小される。特に顎付近において縮小率が高くなる。この結果、画像中の顔の形状は、全体的に幅方向に細くなる。以上のH方向およびV方向の変形態様を総合すると、ステップS830の処理によって、変形領域TA1に含まれる人物P1の顔の形状はスリム(小顔)になる。
ここで、プリンタ100では、変形領域TA1の内外の画像間の境界が不自然とならないように、変形領域TA1の外枠上に位置する分割点D(例えば図13に示す分割点D10等)の位置は移動されないものとしている。従って、分割点移動テーブル420を構成する各テーブルでは、変形領域の外枠上に位置する分割点Dについての移動量は設定されていない。例えば、0°用テーブルtb0(図12)では、変形領域TA1の外枠上に位置する分割点D(分割点D10やD20等)についての移動量は設定されていない。
また、0°用テーブルtb0(図12)では、基準線RLに対して対称な位置関係にある2つの分割点Dの組み合わせ(例えば分割点D11とD41との組み合わせ)のすべてが、分割点Dの移動後も、基準線RLに対して対称な位置関係を維持するように各分割点Dの移動量が設定されている。しかしながら、分割点移動テーブル420(図1)のうち、この0°用テーブルtb0以外のテーブルでは、基準線RLに対して対称な位置関係にある2つの分割点Dは、分割点Dの移動後において基準線RLに対して対象な位置関係とならないように、各分割点Dの移動量が設定されている。
図14は、第1の実施例における分割点移動テーブル420の詳細構成を示す説明図である。分割点移動テーブル420は、顔の向きと振りの程度に応じて用意された複数のテーブルから構成されている。図14の例では、上述した0°用テーブルtb0の他、+5°用テーブルtr5と、+10°用テーブルtr10と、+30°用テーブルtr30と、+90°用テーブルtr90と、−5°用テーブルtl5と、−10°用テーブルtl10と、−30°用テーブルtl30と、−90°用テーブルtl90とを例示している。また、0°用テーブルtb0と+30°用テーブルtr30とについては、詳細な設定内容を示している。なお、0°用テーブルtb0の詳細については、図12と同じである。図14の例では、顔の向きが左振り(マイナスの角度)及び右振り(プラスの角度)のケースにおいて5°おきに分割点移動テーブルが用意されている。なお、5°おきに限らず、任意の角度おきにテーブルを用意することもできる。
前述のステップS700では、これらの各テーブルから前述の変形処理(ステップS800)で用いるテーブルが設定される。なお、上下振りの場合には、本実施例では、0°用テーブルtb0がステップS700において決定される。
図14に示すように、+30°用テーブルtr30に設定された各分割点Dの移動量のうち、分割点D11,D21,D12の移動量は、0°用テーブルtb0と比べて小さくなっている。具体的には、分割点D11,D22については、0°用テーブルtb0では、移動量(H,V)が(7,14)であるのに対し、+30°用テーブルtr30では、(5,11)となっている。また、分割点D12については、0°用テーブルtb0では、移動量(H,V)が(7,0)であるのに対し、+30°用テーブルtr30では、(5,0)となっている。一方、分割点D31,D41,D42の移動量については、+30°用テーブルtr30と0°用テーブルtb0とで同じ値となっている。なお、分割点D22,D32については、2つのテーブルtb0,tr30とでいずれも移動量がゼロとなっている。ここで、分割点D11,D21,D12は変形領域において向かって左側に位置する分割点であり、分割点D31,D41,D42は変形領域において向かって右側に位置する分割点である(図13参照)。したがって、+30°用テーブルtr30では、基準線RLに対して対称な位置関係にある2つの分割点Dの組合せ(D11とD41、D21とD31、D12とD42)において、それぞれ顔の向きと反対側(向かって左側)の分割点の移動量が顔の向きと同じ側(向かって右側)の分割点の移動量よりも小さくなっている。
図15は、図14に示す0°用テーブルtb0と+30°用テーブルtb30とをそれぞれ適用した場合の各分割点Dの移動例を示す説明図である。図15において上段は0°用テーブルtb0の適用例を示し、下段は+30°用テーブルtr30の適用例を示す。なお、下段における太い実線の矩形枠は、人物P2の顔領域Fd2(図5)に基づき設定された変形領域TA2を示す。
人物P1についての変形領域TA1については、上述したように、左右対称に変形している(図13参照)。一方、人物P2についての変形領域TA2については、向かって右側の領域については変形領域TA1とほぼ同じ程度に変形(小顔化)しているのに対して、左側の領域については変形領域TA1よりも変形(小顔化)度合いが小さい。これは、上述したように、変形領域TA2の変形において用いる+30°用テーブルtr30において向かって左側に位置する分割点D11,D21,D12の移動量が、0°用テーブルtb0に比べて小さいことに起因している。
図16は、+30°用テーブルtb30を用いた場合の変形領域TA2の具体的変形態様を示す説明図である。図16では、比較の便宜のため、変形前の人物P2の輪郭を破線で示している。人物P1の変形領域TA1の変形と同様に(図13)、人物P2の変形領域TA2においても人物P2の顔の形状はスリム(小顔)となっている。このとき、向かって右側に位置する頬から顎までの輪郭PA1は、比較的変形度合いが大きい。これに対して、向かって左側に位置する頬から顎までの輪郭PA2は、比較的変形度合いが小さい。このような変形によって、人物P2の顔の向きが右振りであっても、不自然な顔画像とならずに見栄え良く小顔化が実現されている。
図17は、比較例として0°用テーブルtb0を用いた場合の変形領域TA2の具体的態様を示す説明図である。図17における破線の輪郭の意味は図16と同じである。従来のように分割点移動テーブル420として、0°用テーブルtb0のみが用意されており、この0°用テーブルtb0を変形領域TA2に適用すると、図17に示すように変形後の顔画像は不自然なものとなる。具体的には、左側の輪郭PA2の一部が不自然にへこんだように見える。これは、輪郭PA2のうち、変形領域TA2に含まれる輪郭PA21は比較的大きく変形されるのに対して、変形領域TA2に含まれない輪郭PA22は変形されないためである。
なお、仮に、変形領域TA2が輪郭PA2全てを含むように設定された場合であっても、変形後の顔画像は不自然なものとなる。これは、顔の方向が右振りであるために、変形処理(ステップS800)において予定している顔の輪郭の部分とは異なる部分が変形対象となるために、所期の見栄えを得ることができなくなるからである。
このことからも理解できるように、顔の振りの程度が大きくなればなるほど、変形後の顔画像は不自然なものとなり得る。そこで、プリンタ100では、顔の振りの程度が大きくなるほど、変形度合いが小さくなるように、上述した分割点移動テーブル420を構成する各テーブルにおいて分割点Dの移動量を設定している。
図18は、分割点移動テーブル420を構成する各テーブルに設定されている分割点Dの移動量を模式的に示す説明図である。図18において上段は向かって左側に位置する分割点D11,D21,D12の移動量を示し、下段は向かって右側に位置する分割点D31,D41,D42の移動量を示す。また、上下段のいずれにおいても、横軸は顔の振りの程度(角度)を示し、縦軸は移動量を示す。ここで、図18における「移動量」は、説明の便宜のため、顔の向きが正面(0°)における移動量を基準(1.0)とした場合の相対的な移動量を示す。また、この移動量は、H方向の移動量とV方向の移動量とをあわせた移動量(ベクトルの大きさ)を示す。
向かって左側の分割点D11,D21,D12の移動量は、顔の向きが右振り(0°〜+90°)の場合において、振りの程度が大きくなるほど移動量が小さくなっている。また、顔の向きが左振り(−90°〜0°)の場合においては、振りの程度に関わらず一定となっている。
これに対して、向かって右側の分割点D31,D41,D42の移動量は、顔の向きが右振りの場合において、振りの程度に関わらず一定となっている。また、顔の向きが左振りの場合において、振りの程度が大きくなるほど移動量が小さくなっている。
このように分割点Dの移動量を設定することで、変形領域のうち、顔の向きと反対側の領域については、振りの程度が大きくなるほど変形度合いが小さくなる。ここで、振りの程度が大きくなるほど、顔の向きと反対側の領域において変形を予定していない輪郭部分を変形する可能性が高くなる。したがって、このような構成とすることで、振りの程度の大小に関わらず変形後の顔画像が不自然となることを抑制することができる。また、+30°用テーブルtr30(図14)と同様に、0°用テーブルtb0を除く他のテーブルにおいては、それぞれ顔の向きと反対側の分割点の移動量が顔の向きと同じ側の分割点の移動量よりも小さくなるように設定されている。したがって、顔の向きと同じ側については、変形を予定している輪郭部分を変形する可能性が高いので、変形度合いを比較的大きくして所期の程度に小顔化を行うことができる。一方、顔の向きと反対側については、変形を予定していない輪郭部分を変形する可能性が高いので、変形度合いを比較的小さくして変形後の顔画像が不自然となることを抑制することができる。
以上説明したように、第1の実施例のプリンタ100では、顔の振りの程度に応じて変形領域を変形させているので、変形後の顔画像が不自然な顔画像とならずに見栄え良く小顔化を実現することができる。また、プリンタ100では、顔の向きと反対側の領域の変形度合いは顔の向きと同じ側の領域の変形度合いに比べて小さくなるように構成されている。したがって、変形後の顔画像が不自然となることを抑制しつつ、少なくとも顔の向きと同じ側の利輪郭部分について所期の程度に小顔化を行うことができる。
A3.小領域画像の変形処理の詳細:
図19は、上述したステップS830において実行される小領域画像の変形処理を概念的に示す説明図である。図19では、分割点Dを黒丸で示している。また、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図19の例では、中央の分割点Daが分割点Da’の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da’,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
本実施例では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図19の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG’を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da’,Ddおよび重心CG’を頂点とする三角形領域の画像に変形される。
図20は、三角形領域における画像の変形処理方法の概念を示す説明図である。図20の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s’,t’,u’を頂点とする三角形領域s’t’u’の画像に変形される。画像の変形は、変形後の三角形領域s’t’u’の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
例えば、図20において、変形後の三角形領域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(図1)は、変形領域を構成する各小領域について、上述したように三角形領域を定義して変形処理を行う。
B.第2の実施例:
図21は、第2の実施例における顔形状補正処理の手順を示すフローチャートである。第2の実施例のプリンタは、顔形状補正処理において、ステップS600とステップS700との間においてステップS650を追加して実行する点において、上述したプリンタ100(図1)と異なり、他の構成は第1の実施例と同じである。
具体的には、ステップS600において顔の方向と振りの程度とを推定した後、ステップS650では、顔向き推定部230(図1)は、振りの程度が−60°以上かつ+60°以下の範囲内にあるか否かを判定する。そして、振りの程度がかかる範囲内にあるときは、前述のステップS700,S800(図9)が実行される。一方、振りの程度が−60°よりも小さい、或いは、+60°よりも大きい場合、前述のS700,S800は実行されず顔形状補正処理は終了する。
以上の構成を有する第2の実施例のプリンタは、第1の実施例と同様な効果を奏する。また、このような構成により、顔の向きが左右のいずれかの方向に非常に大きく振っている場合には、小顔化を行わないようにすることができる。顔の向きが左右のいずれかの方向に非常に大きく振った場合、顔画像の左右のどちら側においても、変形を予定していない輪郭部分を変形してしまうおそれがある。ところが、第2の実施例のプリンタでは、この場合には小顔化を行わないので、顔形状補正処理によって不自然な顔画像に変形してしまうことを抑制することができる。なお、顔の振りの程度が大きい場合(ステップS650:NO)には、所定のメッセージを表示部150(図1)に表示させることもできる。また、変形処理の実行可否を判断するために用いる閾値としては、前述の「−60°」及び「+60°」以外にも任意の角度を採用することができる。また、振りの程度が所定の範囲を超えて大きい場合に変形(小顔化)を行わない領域を、全ての領域ではなく、顔の向きと反対側の領域のみとすることもできる。一般には、本発明の画像処理装置において、少なくとも、変形を予定していない輪郭部分を変形する可能性の高い「顔の向きと反対側の領域」について変形(小顔化)を行わない構成とすることができる。
C.第3の実施例:
図22は、第3の実施例において分割点移動テーブル420を構成する各テーブルに設定されている分割点Dの移動量を模式的に示す説明図である。図22において上段は、図18の上段と同じ意味を有する。同様に、図22の下段は、図18の下段と同じ意味を有する。また、図22の上下段における横軸は図18の上下段における横軸と同じであり、図22の上下段における縦軸は図18の上下段における縦軸と同じである。
第3の実施例のプリンタは、各テーブルに設定されている分割点Dの移動量において上述したプリンタ100(図1)と異なり、他の構成は第1の実施例と同じである。具体的には、向かって左側に位置する分割点D11,D21,D12の移動量については、顔の向きが左振りの場合には、第1の実施例では一定であったが(図18参照)、第3の実施例では、顔振りの程度が大きくなる(角度がマイナス側に大きくなる)にしたがって移動量(相対的移動量)が小さくなっている。なお、顔の向きが右振りの場合のこれら分割点D11,D21,D12の移動量は、第1の実施例と同じである。
一方、向かって右側に位置する分割点D31,D41,D42の移動量については、顔の向きが右振りの場合には、第1の実施例では一定であったが、第3の実施例では、顔振りの程度が大きくなる(角度がプラス側に大きくなる)にしたがって移動量(相対的移動量)が小さくなっている。なお、顔の向きが左振りの場合のこれら分割点D31,D41,D42の移動量は、第1の実施例と同じである。
以上の構成を有する第3の実施例のプリンタは、第1の実施例のプリンタ100と同様な効果を奏する。また、上述のように各テーブルを設定することで、例えば、顔の向きが右振りの場合において、変形領域の右側に変形を予定していない輪郭部分が入ってしまっても、かかる輪郭部分の変形度合いを比較的小さくすることができ、不自然な顔画像となってしまうことを抑制することができる。
D.第4の実施例:
図23は、第4の実施例において分割点移動テーブル420を構成する各テーブルに設定されている分割点Dの移動量を模式的に示す説明図である。図23において上段は、図18の上段と同じ意味を有する。同様に、図23の下段は、図18の下段と同じ意味を有する。また、図23の上下段における横軸は図18の上下段における横軸と同じであり、図23の上下段における縦軸は図18の上下段における縦軸と同じである。
第4の実施例のプリンタは、各テーブルに設定されている分割点Dの移動量において上述したプリンタ100(図1)と異なり、他の構成は第1の実施例と同じである。具体的には、第1の実施例のプリンタ100では、向かって左側に位置する分割点D11,D21,D12については、顔の向きが右振りの場合には、振りの程度が大きくなる(角度がプラス側に大きくなる)にしたがって移動量が連続的に小さくなるように設定されていた(図18参照)。これに対して、第4の実施例のプリンタでは、これら分割点D11,D21,D12については、顔の向きが右振りの場合には、振りの程度が大きくなるにしたがって移動量が階段状に小さくなるように設定されている。
同様に、向かって右側に位置する分割点D31,D41,D42については、顔の向きが左振りの場合において、振りの程度が大きくなる(角度がマイナス側に大きくなる)にしたがって移動量(相対的移動量)が階段状に小さくなるように設定されている。なお、顔の向きが左振りの場合における分割点D11,D21,D12の移動量、及び顔の向きが右振りの場合における分割点D31,D41,D42の移動量については、いずれも第1の実施例と同様に一定である。
以上の構成を有する第4の実施例のプリンタについても、大局的に見ると、変形領域のうち、顔の向きと反対側の領域については、振りの程度が大きくなるほど変形度合いが小さくなる。例えば、左側の分割点D11,D21,D12について考えると、+30°よりも小さい角度(例えば、0°)と、−30°よりも大きい角度(例えば、+90°)とで、移動量を比較すると、0°については移動量が「1.0」であるのに対し、+90°については移動量がゼロとなっている。このような構成を有する第4の実施例のプリンタも、第1の実施例のプリンタ100と同様な効果を奏する。なお、以上の第4の実施例及び上述した第1ないし第3の実施例からも理解できるように、振りの程度が或る値(上記の例では+30°)よりも大きい場合には、振りの程度がこの或る値よりも小さい場合に比べて移動量が小さく設定され変形度合いが小さくなるような任意の構成を、本発明の画像処理装置に採用することができる。
E.第5の実施例:
図24は、第5の実施例における分割点移動テーブル420の詳細構成を示す説明図である。第5の実施例のプリンタは、分割点移動テーブル420として、上述した左右振りに対応する各テーブルtr5〜tr90,tl5〜tl90(図14)に加えて、上下振りに対応するテーブルを備えている点において、上述したプリンタ100(図1)と異なり、他の構成は第1の実施例と同じである。
具体的には、第5の実施例における分割点移動テーブル420は、テーブルtr5〜tr90,tl5〜tl90に加えて、顔の向きが上振り(プラスの角度)の場合に用いられるテーブルと、下振り(マイナスの角度)の場合に用いられるテーブルとを備えている。図24の例では、上振りの場合に用いられるテーブルとして、+5°用テーブルtu5と、+10°用テーブルtu10と、+30°用テーブルtu30と、+90°用テーブルtu90とを例示している。また、下振りの場合に用いられるテーブルとして、−5°用テーブルtd5と、−10°用テーブルtd10と、−30°用テーブルtd30と、−90°用テーブルtd90とを例示している。
そして、第5の実施例では、第1の実施例と同様に、振りの程度が大きいほど各分割点Dの移動量は小さくなるように設定されている。しかしながら、第5の実施例では、第1の実施例とは異なり、振りの度合いに関わらず基準線RLに対して対称な位置関係にある2つの分割点Dの組合せ(D11とD41、D21とD31、D12とD42)において、それぞれ顔の向きと反対側と同じ側とで同じ移動量が設定されている。例えば、+30°用テーブルtu30では、分割点D11の移動量(5,11)と、基準線RLに対して対称の位置関係にある分割点D41の移動量(−5,11)とで、移動量(ベクトルの大きさ)は同じである。
図25は、第5の実施例において+30°用テーブルtu30と0°用テーブルtb0とをそれぞれ適用した場合の各分割点Dの移動例を示す説明図である。図25において上段は+30°用テーブルtu30の適用例を示し、下段は0°用テーブルtb0の適用例を示す。なお、上下段における太い実線の矩形枠は、+30°だけ上を向いた人物の顔領域(図示省略)に基づき設定された変形領域TA3を示す。
図25に示すように、いずれのテーブルtb0,tu30を適用した場合でも、左右対称に変形している。このとき、各移動点の移動量は、+30°用テーブルtu30を適用した場合(上段)のほうが0°用テーブルtb0を適用した場合(下段)に比べてより小さい。したがって、+30°用テーブルtu30を適用した場合のほうが、変形度合いがより小さくなる。
図26は、+30°用テーブルtb30を用いた場合の変形領域TA3と、0°用テーブルtb0を用いた場合の変形領域TA3との具体的変形態様を示す説明図である。図26では、図16と同様に、比較の便宜のため、変形前の人物の輪郭を破線で示している。顔の向きが上振りで振りの程度が+30°の場合において、+30°用テーブルtuを適用した場合には(上段)、頬と顎の部分がスリムに変形され、見栄えの良い自然な顔画像となっている。
一方、従来のように分割点移動テーブル420として、0°用テーブルtb0のみが用意されており、この0°用テーブルtb0を顔の向きが上振りで振りの程度が+30°の場合に適用すると(下段)、変形後の顔画像は不自然なものとなる。具体的には、右側の輪郭PA3の一部と、左側の輪郭PA4の一部とが不自然にへこんだように見える。これは、輪郭PA3のうち、変形領域TA3に含まれる輪郭PA32は比較的大きく変形されるのに対して、変形領域TA3に含まれない輪郭PA31は変形されないためである。同様に、左側の輪郭PA4のうち、変形領域TA3に含まれる輪郭PA42は比較的大きく変形されるのに対して、変形領域TA3に含まれない輪郭PA41は変形されないためである。
なお、仮に、変形領域TA3が輪郭PA3,PA4を全てを含むように設定された場合であっても、変形後の顔画像は不自然なものとなる。これは、顔の向きが上振りであるために、変形処理(ステップS800)において予定している顔の輪郭の部分とは異なる部分(例えば首等)が、変形対象となるために、所期の見栄えを得ることができなくなるからである。
図27は、第5の実施例において分割点移動テーブル420を構成する各テーブルに設定されている分割点Dの移動量を模式的に示す説明図である。図27において横軸は図18の上下段における横軸と同じであり、縦軸は図18の上下段における縦軸と同じである。
上述した各実施例では、各分割点移動テーブルに設定されている移動量は、向かって左側の分割点Dと向かって右側の分割点Dとで異なるものであったが(図18等参照)、第5の実施例では、いずれの分割点Dにおいても図23に示すグラフとなっている。また、上述した各実施例では、顔の向きと同じ側の分割点Dの移動量は、反対側の分割点Dの移動量に比べて大きくなっていたが、第4の実施例では、顔の向きと同じ側と反対側とで同じ移動量が設定されている。したがって、例えば、顔の向きが上振りで振りの程度が+30°の場合と、顔の方向が下振りで振りの程度が−30°の場合とで、各分割点Dに設定される移動量は同じとなっている。
このような構成を有する第5の実施例のプリンタも、振りの程度が上下のいずれかの方向に大きくなるほど変形度合いを小さくすることができる。ここで、振りの程度が上下のいずれかの方向に大きくなるほど、変形を予定していない輪郭部分を変形する可能性が高くなる。したがって、このような構成とすることで、顔の向きが上下振りであっても、振りの程度の大小に関わらず変形後の顔画像が不自然となることを抑制することができる。
F.変形例:
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
F1.変形例1:
上述した第1ないし第4の実施例では、ステップS600において顔の向きとして、左右振りのいずれかであるかまで推定していたが、これに代えて、左右振りであるとまで推定し、左右のいずれの方向であるかまで推定しないようにすることもできる。この場合、第1の実施例とは異なり、各分割点移動テーブルとして、振りの程度のみに応じたテーブルを用意しておく。このような各分割点移動テーブルとしては、例えば、第5の実施例におけるテーブルを用いることができる(図27参照)。このようにすることで、第5の実施例と同様に、振りの程度の大小に関わらず変形後の顔画像が不自然となることを抑制することができる。
F2.変形例2:
上述した各実施例における顔の向きの推定方法(図2および図21のステップS600)の方法は、あくまで一例であり、他の任意の方法により顔の向きを推定することができる。例えば、単純に右目領域Erの幅Werと左目領域Elの幅Welを比較して、右目領域Erの幅Werの方が所定割合以上で大きい場合には右振りであると、左目領域Elの幅Welの方が所定割合以上で大きい場合には左振りであると、それ以外の場合には正面向きであると、推定することもできる。なお、幅Werと幅Welとの比によって振りの程度を推定することもできる。
あるいは、単純に口領域Maの幅Wmと目領域Er(又はEl)の幅Wer(又はWel)とを比較して、口領域Maの幅Wmの方が所定割合以上で大きい場合には上振りであると、目領域Er(又はEl)の幅Wer(又はWel)の方が所定割合以上で大きい場合には下振りであると、それ以外の場合には正面向きであると、推定することもできる。なお、幅Wmと幅Wer(又はWel)との比によって振りの程度を推定することもできる。
また、顔領域と器官領域との関係に基づいて顔向き推定を行うこともできる。例えば、顔領域における目領域Er,Elの位置に基づき、右振りまたは左振りであると推定することもできる。また、顔領域における口領域Maの位置に基づき、上振りまたは下振りであると推定することもできる。
また、上述したような顔領域や器官領域に基づき顔の方向と振りの程度を推定する方法に代えて、他の任意の方法によって顔の方向と振りの程度を推定する方法を本発明の画像処理装置に採用することもできる。例えば、画像データとは別に、顔の向きと振りの程度とを示すデータがメモリカードMCに記録されている場合には、かかるデータに基づいて顔の向きと振りの程度と推定することもできる。
F3.変形例3:
上述した各実施例及び変形例における顔向き推定では、推定される顔の向きの種類として、正面向き、左右振り、上下振りの3種類、あるいは、正面向き、右振り、左振り、上振り、下振りの5種類が採用されているが、顔の向きの種類として、正面向きか正面以外向きかの2種類が採用されるとしてもよい。また、顔の向きの種類として、右上振り、右下振り、左上振り、左下振りなどを採用することもできる。
F4.変形例4:
上述した各実施例では、顔形状補正処理によって変形領域を小顔化(スリムに)していたが、小顔化に代えて、他の任意の変形を行う構成とすることもできる。例えば、若干ふくよかな顔に修正する大顔化を行うこともできる。この構成においても、変形(大顔化)の後の顔画像が不自然なものでなく見栄え良く大顔化をすることもできる。また、上述した各実施例では、振りの程度が或る値よりも大きい場合には、振りの程度がこの或る値よりも小さい場合に比べて変形度合いが小さくなるようにしていたが、本発明では、これとは逆の構成とすることもできる。例えば、顔のデフォルメ(不自然な変形)を目的とする画像処理を行うような場合には、振りの程度が或る値よりも大きい場合には振りの程度がこの或る値よりも小さい場合に比べて変形度合いを大きくし、顔画像を意図的に不自然に変形させることもできる。
F5.変形例5:
上述した各実施例では、顔領域を対象として器官検出が行われているが、必ずしも器官検出を行う範囲を顔領域に限定する必要はなく、例えば、対象画像全体を対象として器官検出を行う構成とすることもできる。ただし、顔領域を対象として器官検出を行えば、処理の高速化を図ることができる。また、上述した各実施例では、顔領域の検出が行われているが、必ずしも顔領域の検出を行う必要はない。顔領域の検出を行わない場合であっても、対象画像の所定の範囲(例えば全体)を対象として器官領域の検出を行い、検出された器官領域に基づき、顔の向きの推定を実行することができる。
F6.変形例6:
上述した各実施例では、変形領域は、顔領域よりも大きい領域であったが、顔領域と同じ領域或いは顔領域よりも小さい領域とすることもできる。なお、変形領域が顔領域と同じ領域の場合には、ステップS810(図9)を省略することができる。また、上述した各実施例では、顔領域と変形領域とは、いずれも矩形の領域であったが、これに代えて、顔領域と変形領域とのうち少なくとも一方を、円形や三角形など任意の形状の領域として設定することもできる。
F7.変形例7:
上述した各実施例では、顔形状補正処理のステップS200において検出した全ての顔領域について、ステップS300〜S800を行って変形(小顔化)するようにしていたが、これに代えて、ユーザの指定した顔領域についてのみ変形する構成とすることもできる。この場合、顔領域の検出に成功した(ステップS300:YES)後に、顔領域を明示する画像(例えば、図4の画像TI)と、ユーザが変形対象とする顔領域を選択して決定できるようなボタンを備えたユーザインタフェースを、表示部150(図1)に表示させることもできる。
F8.変形例8:
上述した各実施例では、対象画像について、顔形状補正処理を実行するまでであったが、さらに、顔形状補正処理の結果得られた画像についてプリンタエンジン160を用いて印刷を実行したり、内部メモリ120に格納したりすることもできる。
F9.変形例9:
上述した各実施例では、画像処理装置としてのプリンタ100による顔形状補正処理について説明したが、この顔形状補正処理の一部又は全部がパーソナルコンピュータやデジタルスチルカメラなどにおいて実行されるものとしてもよい。また、プリンタ100はインクジェットプリンタに限らず、他の方式のプリンタ、例えばレーザプリンタや昇華型プリンタであるとしてもよい。
F10.変形例10:
上述した実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。