(57)【要約】【課題】不自然な画像になってしまう小顔補正処理の実行を制限することを可能とする。【解決手段】画像から認識される顔の認識回転角度が、０度、９０度、２７０度を中心とする３０度の範囲（図中、ハッチが付されている範囲）内であるときだけ、即ち、３４５度〜１５度、７５度〜１０５度、２５５度〜２８５度であると認識されときだけ、小顔補正処理が実行され、それ以外の範囲内のとき、小顔補正処理が実行されない。即ち例えば頭部が下を向いていると認識された場合、即ち認識回転角度が１８０度である場合、小顔補正処理Ｚ１は実行されない。このように認識回転角が１８０度である場合小顔補正処理Ｚ１は実行しないようにすることにより、頭部が細くなってしまう補正が行われることを防止することができる。【選択図】図１３
2010086379.tif 000002
【特許請求の範囲】
【請求項１】
処理の対象となる対象画像における顔の少なくとも一部の画像が含まれる顔領域を特定する顔領域特定手段と、
上記顔領域に応じた変形領域を設定し、上記変形領域内に複数の分割点を配置して、上記分割点同士を結ぶ直線を用いて上記変形領域を複数の小領域に分割し、少なくとも１つの上記分割点の位置を移動して上記小領域を変形することにより上記変形領域内の画像の変形を行う変形処理の実行を、上記顔領域から認識される顔の状態に応じて制限する変形処理手段と
を有することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記変形処理手段は、前記顔領域から認識される顔画像の回転角が所定の角度であるとき、前記変形処理の実行を制限する
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記対象画像は、撮像装置による撮像の結果得られた画像であり、
前記変形処理手段は、前記対象画像を得たときの上記撮像装置の回転角を、上記顔領域から認識される顔画像の回転角とし、上記撮像装置の回転角が所定の角度であるとき、前記変形処理の実行を制限する
ことを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置であって、
少なくとも、前記顔領域から顔が逆さまであると認識される場合、前記変形処理の実行を制限する
ことを特徴とする画像処理装置。
【請求項５】
請求項１から請求項４のいずれかに記載の画像処理装置であって、さらに、
前記変形領域内の画像の変形が行われた前記対象画像を印刷する印刷部を有する画像処理装置。
【請求項６】
処理の対象となる対象画像における顔の少なくとも一部の画像が含まれる顔領域を特定する顔領域特定ステップと、
上記顔領域に応じた変形領域を設定し、上記変形領域内に複数の分割点を配置して、上記分割点同士を結ぶ直線を用いて上記変形領域を複数の小領域に分割し、少なくとも１つの上記分割点の位置を移動して上記小領域を変形することにより上記変形領域内の画像の変形を行う変形処理の実行を、上記顔領域から認識される顔の状態に応じて制限する変形処理ステップと
を含むことを特徴とする画像処理方法。
【請求項７】
処理の対象となる対象画像を変形させる画像処理を実行するプログラムであって、
上記対象画像における顔の少なくとも一部の画像が含まれる顔領域を特定する顔領域特定ステップと、
上記顔領域に応じた変形領域を設定し、上記変形領域内に複数の分割点を配置して、上記分割点同士を結ぶ直線を用いて上記変形領域を複数の小領域に分割し、少なくとも１つの上記分割点の位置を移動して上記小領域を変形することにより上記変形領域内の画像の変形を行う変形処理の実行を、上記顔領域から認識される顔の状態に応じて制限する変形処理ステップと
を含む画像処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【０００２】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている（例えば特許文献１）。特許文献１には、顔の画像上の一部の領域（頬の画像を表す領域）を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大又は縮小することにより、顔の形状を変形する画像処理が開示されている。
【０００３】
【特許文献１】特開２００４− ３１８２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来の画像変形のための画像処理では、複数の小領域のそれぞれについて、それぞれの小領域毎に設定された倍率で画像の拡大又は縮小が行われるため、処理が煩雑であった。また、上記従来の画像変形のための画像処理は、頬のラインを補正することに特化されており、他の多様な変形態様に対応するのが困難であった。
【０００５】
本発明は、上述した従来の課題を解決するためになされたものであり、多様な変形態様に対応した画像変形のための画像処理を、容易に、かつ適切に実現することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、処理の対象となる対象画像における顔の少なくとも一部の画像が含まれる顔領域を特定する顔領域特定手段と、顔領域に応じた変形領域を設定し、変形領域内に複数の分割点を配置して、分割点同士を結ぶ直線を用いて変形領域を複数の小領域に分割し、少なくとも１つの分割点の位置を移動して小領域を変形することにより変形領域内の画像の変形を行う変形処理の実行を、顔領域から認識される顔の状態に応じて制限する変形処理手段とを有することを特徴とする。
【０００７】
変形処理手段は、顔領域から認識される顔画像の回転角が所定の角度であるとき、変形処理の実行を制限することができる。
【０００８】
対象画像は、撮像装置による撮像の結果得られた画像であるようにし、変形処理手段は、対象画像を得たときの撮像装置の回転角を、顔領域から認識される顔画像の回転角とし、撮像装置の回転角が所定の角度であるとき、変形処理の実行を制限することができる。
【０００９】
少なくとも、顔領域から顔が逆さまであると認識される場合、変形処理の実行を制限することができる。
【００１０】
さらに、変形領域内の画像の変形が行われた対象画像を印刷する印刷部を有することができる。
【００１１】
本発明の画像処理方法は、処理の対象となる対象画像における顔の少なくとも一部の画像が含まれる顔領域を特定する顔領域特定ステップと、顔領域に応じた変形領域を設定し、変形領域内に複数の分割点を配置して、分割点同士を結ぶ直線を用いて変形領域を複数の小領域に分割し、少なくとも１つの分割点の位置を移動して小領域を変形することにより変形領域内の画像の変形を行う変形処理の実行を、顔領域から認識される顔の状態に応じて制限する変形処理ステップとを含むことを特徴とする。
【００１２】
本発明のプログラムは、処理の対象となる対象画像を変形させる画像処理を実行するプログラムであって、対象画像における顔の少なくとも一部の画像が含まれる顔領域を特定する顔領域特定ステップと、顔領域に応じた変形領域を設定し、変形領域内に複数の分割点を配置して、分割点同士を結ぶ直線を用いて変形領域を複数の小領域に分割し、少なくとも１つの分割点の位置を移動して小領域を変形することにより変形領域内の画像の変形を行う変形処理の実行を、顔領域から認識される顔の状態に応じて制限する変形処理ステップとを含む画像処理をコンピュータに実行させることを特徴とする。
【００１３】
本発明においては、処理の対象となる対象画像における顔の少なくとも一部の画像が含まれる顔領域が特定され、顔領域に応じた変形領域を設定し、変形領域内に複数の分割点を配置して、分割点同士を結ぶ直線を用いて変形領域を複数の小領域に分割し、少なくとも１つの分割点の位置を移動して小領域を変形することにより変形領域内の画像の変形を行う変形処理の実行が、顔領域から認識される顔の状態に応じて制限される。
【発明の効果】
【００１４】
本発明によれば、容易に、かつ適切に画像変形を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施の形態について、図面を参照して説明する。
【００１６】
図１は、本発明を適用したプリンタ１のハードウェアの構成例を示すブロック図である。このプリンタ１は、メモリカード１８等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。なおカラー印刷だけでなく、モノクロ印刷についても、本発明を適用することができる。
【００１７】
プリンタ１は、ＣＰＵ１１、内部メモリ１２、操作部１３、表示部１４、プリンタエンジン１５、及びカードインターフェース（カードＩ／Ｆ）１６を備えている。
【００１８】
ＣＰＵ（central processing unit）１１は、各部を制御して、内部メモリ１２に格納されているプログラムに応じて各種の処理を実行する。
【００１９】
例えばＣＰＵ１１は、人物の顔が写った画像を変形する処理を行う。具体的には、例えば顎付近が細くなり、顔の形状がシャープに見えるように、すなわち「小顔」に見えるように、画像が補正される（以下、この処理を、小顔補正処理Ｚ１と称する）。またＣＰＵ１１は、小顔補正処理Ｚ１の実行に当たり、画像から認識される顔の状態に応じて、小顔補正処理Ｚ１の実行を制限する（以下、この小顔補正処理Ｚ１の実行を制限する処理を、画像変形処理Ｚ２と称する）。具体的には、例えば、人物の顔が逆さまであると認識された場合、その画像には、小顔補正処理Ｚ１が行われないようにする。
【００２０】
内部メモリ１２は、ＣＰＵ１１が実行する各種プログラムや各種データを格納しているＲＯＭ（Read Only Memory）、及びＣＰＵ１１が実行対象とするプログラムやデータを一時的に格納するＲＡＭ（Random Access Memory）によって構成されている。
【００２１】
操作部１３は、ボタンやタッチパネルの１つ又は複数より構成され、ユーザによる操作内容をＣＰＵ１１に通知する。
【００２２】
表示部１４は、例えば液晶ディスプレイより構成され、ＣＰＵ１１から供給されたデータに対応する画像を表示する。
【００２３】
プリンタエンジン１５は、ＣＰＵ１１から供給された印刷データに基づき印刷を行う印刷機構である。
【００２４】
カードインターフェース１６は、カードスロット１７に挿入されたメモリカード１８との間でデータのやり取りを行うためのインターフェースである。なお、この例では、メモリカード１８にＲＧＢデータとしての画像データが格納されており、プリンタ１は、カードインターフェース１６を介してメモリカード１８に格納された画像データの取得を行う。なおプリンタ１は、さらに、他の機器（例えばデジタルスチルカメラ）とのデータ通信を行うためのインターフェースを備えているとしてもよい。
【００２５】
プリンタ１の各構成要素は、バス１９を介して互いに接続されている。
【００２６】
図２は、画像変形処理Ｚ２を実行するためのプリンタ１の機能的構成例を示すブロック図である。この機能は、ＣＰＵ１１が内部メモリ１２に記憶されている所定のプログラムを実行することより実現される。
【００２７】
顔領域特定部２１は、例えばメモリカード１８から読み出されてプリンタ１に入力された、小顔補正処理Ｚ１の対象となる画像（以下、対象画像ＴＩと称する）を解析し、人物の顔部分が写っている顔の画像を含む領域（以下、顔領域ＦＡと称する）を特定する。
【００２８】
画像変形処理部２２は、顔領域ＦＡに基づいて、実際に変形される領域（以下、変形領域ＴＡと称する）を設定し、その変形領域ＴＡ内の画像の変形を行うことにより、顔の画像に対して小顔補正処理Ｚ１を行う。また画像変形処理部２２は、小顔補正処理Ｚ１を行うに当たり、顔領域ＦＡから認識される顔の回転角に応じて、小顔補正処理Ｚ１の実行を制限する（即ち画像変形処理Ｚ２が実行される）。例えば、回転角が１８０度（即ち人物の顔が逆さまであると認識される場合）、その顔の画像に対しては小顔補正処理Ｚ１が行われない。
【００２９】
画像変形処理部２２は、変形領域設定部３１、変形領域分割部３２、及び分割領域変形部３３から構成されている。画像変形処理部２２のこれらの構成要素については、小顔補正処理Ｚ１の説明と合わせて後述する。
【００３０】
美肌補正部２３は、小顔補正処理Ｚ１が施される顔領域ＦＡの色が肌色として好ましい色となるような補正処理を行う。全体補正部２４は、対象画像ＴＩ全体に対して、色かぶり等を排除する補正処理を実行する。
【００３１】
出力制御部２５は、小顔補正処理Ｚ１等が施された対象画像ＴＩの画像データから表示データ又は印刷データを生成し、表示データを表示部１４に供給して表示させたり、印刷データをプリンタエンジン１５に供給して、その印刷データに基づく画像の印刷を実行させる。
【００３２】
図３は、小顔補正処理Ｚ１の流れを示すフローチャートである。このフローチャートを参照して、小顔補正処理Ｚ１について説明する。
【００３３】
ステップＳ１において、画像変形処理部２２の変形領域設定部３１は、後述するように対象画像ＴＩに特定された顔領域ＦＡに基づいて、変形領域ＴＡを設定する。変形領域ＴＡは、実際に画像が変形される領域である。
【００３４】
図４は、変形領域ＴＡの設定例を示す図である。図４には、対象画像ＴＩに含まれる人物の顔の画像に設定された顔領域ＦＡ、及びその顔領域ＦＡに基づいて設定された変形領域ＴＡが示されている。図４中、基準線ＲＬは、矩形の顔領域ＦＡの重心を通り、顔領域ＦＡの高さ方向（上下方向）に沿った境界線に平行な直線である。
【００３５】
図４の例では、変形領域ＴＡは、顔領域ＦＡを基準線ＲＬと平行な方向（高さ方向）及び基準線ＲＬに直行する方向（幅方向）に伸張（または短縮）した領域として設定される。具体的には、顔領域ＦＡの高さ方向の大きさをＨｆとし、幅方向の大きさをＷｆとすると、顔領域ＦＡを、上方向にｋ１・Ｈｆだけ、下方向にｋ２・Ｈｆだけ伸ばすと共に、左右にそれぞれｋ３・Ｗｆだけ伸ばした領域が、変形領域ＴＡとして設定される。なお、ｋ１，ｋ２，ｋ３は、所定の係数である。
【００３６】
変形領域ＴＡはまた、高さ方向に関しては、概ね顎から額までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち、本実施例では、変形領域ＴＡが概ねそのような範囲の画像を含む領域となるように、顔領域ＦＡの大きさとの関係に基づき、上述の係数ｋ１，ｋ２，ｋ３が予め設定されている。
【００３７】
なお例えば目の画像と推定される画像がある側の方向「顔領域ＦＡの上方向」となり、口の画像と推定される画像がある側の方向が「顔領域ＦＡの下方向」となるが、その上下方向は、後述する顔領域ＦＡ特定時に把握される顔領域ＦＡの画像面内における回転角によって決定される。顔領域ＦＡが、その回転角から決定された顔領域ＦＡの上方向と下方向に、それぞれ、ｋ１・Ｈｆ又はｋ２・Ｈｆだけ伸ばされる。
【００３８】
次にステップＳ２において、変形領域分割部３２は、変形領域ＴＡを複数の小領域に分割する。
【００３９】
図５は、変形領域ＴＡの小領域への分割方法の一例を示す図である。変形領域分割部３２は、変形領域ＴＡに複数の分割点Ｄを配置し、分割点Ｄを結ぶ直線を用いて変形領域ＴＡを複数の小領域に分割する。この例では、変形領域ＴＡが１５個の矩形の小領域に分割される。分割点Ｄの配置の態様（分割点Ｄの個数および位置）は、予め定義されている。
【００４０】
分割点Ｄは、水平分割線Ｌｈと垂直分割線Ｌｖとの交点と、水平分割線Ｌｈ及び垂直分割線Ｌｖと変形領域ＴＡの外枠との交点とに配置される。なお図５の例では、水平分割線Ｌｈｉ（ｉ＝１又は２）上に位置する分割点Ｄは、左から順に、Ｄ０ｉ，Ｄ１ｉ，Ｄ２ｉ，Ｄ３ｉ，Ｄ４ｉ，Ｄ５ｉと示されている。水平分割線Ｌｈ１上に位置する分割点Ｄは、Ｄ０１，Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１，Ｄ５１と示されている。垂直分割線Ｌｖｊ（ｊ＝１，２，３，４のいずれか）上に位置する分割点Ｄは、下から順に、Ｄｊ０，Ｄｊ１，Ｄｊ２，Ｄｊ３と示されている。垂直分割線Ｌｖ１上に位置する分割点Ｄは、Ｄ１０，Ｄ１１，Ｄ１２，Ｄ１３と示されている。
【００４１】
水平分割線Ｌｈ及び垂直分割線Ｌｖは、変形領域ＴＡ内に分割点Ｄを配置するための基準となる線である。図５の例の場合、２本の水平分割線Ｌｈと、４本の垂直分割線Ｌｖが設定される。この２本の水平分割線Ｌｈを、変形領域ＴＡの下方から順に、Ｌｈ１，Ｌｈ２と呼ぶ。また、４本の垂直分割線Ｌｖを、変形領域ＴＡの左から順に、Ｌｖ１，Ｌｖ２，Ｌｖ３，Ｌｖ４と呼ぶ。
【００４２】
なお水平分割線Ｌｈ及び垂直分割線Ｌｖは、顔領域ＦＡの回転角度に基づいて決定された顔領域ＦＡの上下左右方向、及び変形領域ＴＡの大きさに従って、水平分割線Ｌｈ及び垂直分割線Ｌｖと画像との位置関係が結果的に図５に示す位置関係となるように配置される。具体的には、水平分割線Ｌｈ１は、変形領域ＴＡにおいて、顎であるとされる部分より下方に配置され、水平分割線Ｌｈ２は、目であるとされる部分のすぐ下付近に配置される。また、垂直分割線Ｌｖ１及びＬｖ４は、頬であるとされる部分の外側に配置され、垂直分割線Ｌｖ２及びＬｖ３は、目尻であるとされる部分の外側に配置される。
【００４３】
上述した水平分割線Ｌｈと垂直分割線Ｌｖとの配置に従い、水平分割線Ｌｈと垂直分割線Ｌｖとの交点と、水平分割線Ｌｈ及び垂直分割線Ｌｖと変形領域ＴＡの外枠との交点とに、分割点Ｄが配置される。なお、図５に示すように、本実施例における分割点Ｄの配置は、基準線ＲＬに対して対称の配置となっている。
【００４４】
このように変形領域ＴＡに複数の分割点Ｄが配置され、分割点Ｄを結ぶ直線で変形領域ＴＡが複数の小領域に分割される。
【００４５】
図３に戻りステップＳ３において、分割領域変形部３３は、変形領域ＴＡを対象とした画像の変形処理を行う。分割領域変形部３３による変形処理は、ステップＳ２で変形領域ＴＡ内に配置された分割点Ｄの位置を移動して、小領域を変形することにより行われる。
【００４６】
変形処理のための各分割点Ｄの位置の移動態様（移動方向および移動距離）は、分割点移動テーブルにより、補正度合いに対応付けて予め定められている。分割領域変形部３３は、分割点移動テーブルを参照し、補正度合いに対応付けられた移動方向及び移動距離で、分割点Ｄの位置を移動する。
【００４７】
図６は、分割点移動テーブルの内容の一例を示す説明図である。また図７は、この分割点移動テーブルに従った分割点Ｄの位置の移動の一例を示す説明図である。図６に示すように、分割点移動テーブルには、各分割点Ｄについて、基準線ＲＬと直行する方向（Ｈ方向）及び基準線ＲＬと平行な方向（Ｖ方向）に沿った移動量が示されている。なお、本実施例では、分割点移動テーブルに示された移動量の単位は、対象画像ＴＩの画素ピッチＰＰである。また、Ｈ方向については、向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、Ｖ方向については、上方への移動量が正の値として表され、下方への移動量が負の値として表される。例えば、分割点Ｄ１１は、Ｈ方向に沿って右側に画素ピッチＰＰの７倍の距離だけ移動され、Ｖ方向に沿って上方に画素ピッチＰＰの１４倍の距離だけ移動される。また、例えば分割点Ｄ２２は、Ｈ方向及びＶ方向共に移動量がゼロであるため、移動されない。
【００４８】
なお、本実施例では、変形領域ＴＡの内外の画像間の境界が不自然とならないように、変形領域ＴＡの外枠上に位置する分割点Ｄ（例えば図５に示す分割点Ｄ１０等）の位置は移動されないものとしている。従って、図６に示した分割点移動テーブルには、変形領域ＴＡの外枠上に位置する分割点Ｄについての移動態様は定義されていない。
【００４９】
図７中、移動前の分割点Ｄは、白抜きの丸で、移動後の分割点Ｄや位置の移動の無い分割点Ｄは黒丸で示されている。また、移動後の分割点Ｄは、分割点Ｄ’と呼ぶものとする。例えば分割点Ｄ１１の位置は、図７において右上方向に移動され、分割点Ｄ’１１となる。
【００５０】
なお、本実施例では、基準線ＲＬに対して対称な位置関係にある２つの分割点Ｄの組み合わせ（例えば分割点Ｄ１１とＤ４１との組み合わせ）の全てが、分割点Ｄの移動後も、基準線ＲＬに対して対称な位置関係を維持するように、移動態様が定められている。
【００５１】
分割領域変形部３３は、変形領域ＴＡを構成する各小領域について、分割点Ｄの位置移動前の状態における小領域の画像が、分割点Ｄの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。例えば、図７において、分割点Ｄ１１，Ｄ２１，Ｄ２２，Ｄ１２を頂点とする小領域（ハッチングを付して示す小領域）の画像は、分割点Ｄ’１１，Ｄ’２１，Ｄ２２，Ｄ’１２を頂点とする小領域の画像に変形される。
【００５２】
図８は、分割領域変形部３３による画像の変形処理方法の概念を示す図である。図８では、分割点Ｄを黒丸で示している。図８では、説明を簡略化するために、４つの小領域について、左側に分割点Ｄの位置移動前の状態を、右側に分割点Ｄの位置移動後の状態を、それぞれ示している。図８の例では、中央の分割点Ｄａが分割点Ｄａ’の位置に移動され、その他の分割点Ｄの位置は移動されない。これにより、例えば、分割点Ｄの移動前の分割点Ｄａ，Ｄｂ，Ｄｃ，Ｄｄを頂点とする矩形の小領域（以下「変形前注目小領域ＢＳＡ」とも呼ぶ）の画像は、分割点Ｄａ’，Ｄｂ，Ｄｃ，Ｄｄを頂点とする矩形の小領域（以下「変形後注目小領域ＡＳＡ」とも呼ぶ）の画像に変形される。
【００５３】
本実施例では、矩形の小領域を小領域の重心ＣＧを用いて４つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図８の例では、変形前注目小領域ＢＳＡが、変形前注目小領域ＢＳＡの重心ＣＧを頂点の１つとする４つの三角形領域に分割される。同様に、変形後注目小領域ＡＳＡが、変形後注目小領域ＡＳＡの重心ＣＧ’を頂点の１つとする４つの三角形領域に分割される。そして、分割点Ｄａの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域ＢＳＡ中の分割点Ｄａ，Ｄｄ及び重心ＣＧを頂点とする三角形領域の画像が、変形後注目小領域ＡＳＡ中の分割点Ｄａ’，Ｄｄ及び重心ＣＧ’を頂点とする三角形領域の画像に変形される。
【００５４】
図９は、三角形領域における画像の変形処理方法の概念を示す説明図である。図９の例では、点ｓ，ｔ，ｕを頂点とする三角形領域ｓｔｕの画像が、点ｓ’，ｔ’，ｕ’を頂点とする三角形領域ｓ’ｔ’ｕ’の画像に変形される。画像の変形は、変形後の三角形領域ｓ’ｔ’ｕ’の画像中のある画素の位置が、変形前の三角形領域ｓｔｕの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
【００５５】
例えば、図９において、変形後の三角形領域ｓ’ｔ’ｕ’の画像中の注目画素ｐ’の位置は、変形前の三角形領域ｓｔｕの画像中の位置ｐに相当するものとする。位置ｐの算出は、以下のように行う。まず、注目画素ｐ’の位置を、下記の式（１）のようにベクトルｓ’ｔ’とベクトルｓ’ｕ’との和で表現するための係数ｍ１及びｍ２が算出される。
【００５６】
【数１】
2010086379.tif 000003
【００５７】
次に、算出された係数ｍ１及びｍ２を用いて、下記の式（２）により、変形前の三角形領域ｓｔｕにおけるベクトルｓｔとベクトルｓｕとの和を算出することにより、位置ｐが求まる。
【００５８】
【数２】
2010086379.tif 000004
【００５９】
変形前の三角形領域ｓｔｕにおける位置ｐが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域ｓｔｕにおける位置ｐが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置ｐの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置ｐにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【００６０】
変形後の三角形領域ｓ’ｔ’ｕ’の画像中の各画素について上述のように画素値を算出することにより、三角形領域ｓｔｕの画像から三角形領域ｓ’ｔ’ｕ’の画像への画像変形処理を行うことができる。分割領域変形部３３は、図５に示した変形領域ＴＡを構成する各小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域ＴＡの小顔補正処理を行う。
【００６１】
図１０は、本実施例における小顔補正の具体的な態様を示す図である。図１０には、変形領域ＴＡを構成する各小領域の変形態様のイメージを矢印により示している。図１０に示すように、本実施例の顔形状補正では、基準線ＲＬと平行な方向（Ｖ方向）に関し、水平分割線Ｌｈ１上に配置された分割点Ｄ（Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１）の位置は上方に移動される一方、水平分割線Ｌｈ２上に配置された分割点Ｄ（Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２）の位置は移動されない（図６参照）。従って、水平分割線Ｌｈ１と水平分割線Ｌｈ２との間に位置する画像は、Ｖ方向に関して縮小される。上述したように、水平分割線Ｌｈ１は顎の画像より下方に配置され、水平分割線Ｌｈ２は目の画像のすぐ下付近に配置されるため、本実施例の顔形状補正では、顔の画像の内、顎から目の下にかけての部分の画像がＶ方向に縮小されることとなる。この結果、画像中の顎のラインは上方に移動する。
【００６２】
他方、基準線ＲＬと直行する方向（Ｈ方向）に関しては、垂直分割線Ｌｖ１上に配置された分割点Ｄ（Ｄ１１，Ｄ１２）の位置は右方向に移動され、垂直分割線Ｌｖ４上に配置された分割点Ｄ（Ｄ４１，Ｄ４２）の位置は左方向に移動される（図６参照）。さらに、垂直分割線Ｌｖ２上に配置された２つの分割点Ｄの内、水平分割線Ｌｈ１上に配置された分割点Ｄ（Ｄ２１）の位置は右方向に移動され、垂直分割線Ｌｖ３上に配置された２つの分割点Ｄの内、水平分割線Ｌｈ１上に配置された分割点Ｄ（Ｄ３１）の位置は左方向に移動される（図６参照）。従って、垂直分割線Ｌｖ１より左側に位置する画像は、Ｈ方向に関して右側に拡大され、垂直分割線Ｌｖ４より右側に位置する画像は、左側に拡大される。また、垂直分割線Ｌｖ１と垂直分割線Ｌｖ２との間に位置する画像は、Ｈ方向に関して縮小又は右側に移動され、垂直分割線Ｌｖ３と垂直分割線Ｌｖ４との間に位置する画像は、Ｈ方向に関して縮小又は左側に移動される。さらに、垂直分割線Ｌｖ２と垂直分割線Ｌｖ３との間に位置する画像は、水平分割線Ｌｈ１の位置を中心にＨ方向に関して縮小される。
【００６３】
上述したように、図６の例では、垂直分割線Ｌｖ１及びＬｖ４は、頬のラインの画像の外側に配置され、垂直分割線Ｌｖ２及びＬｖ３は、目尻の画像の外側に配置される。そのため、本実施例の顔形状補正では、顔の画像の内、両目尻より外側の部分の画像が全体的にＨ方向に縮小される。特に顎付近において縮小率が高くなる。この結果、画像中の顔の形状は、全体的に幅方向に細くなる。
【００６４】
上述したＨ方向及びＶ方向の変形態様を総合すると、本実施例の顔形状補正により、画像中の顔の形状が小さくなる。
【００６５】
なお、図１０に示す分割点Ｄ２２，Ｄ３２，Ｄ３３，Ｄ２３を頂点とする小領域（ハッチングを付した領域）は、上述した水平分割線Ｌｈ２や垂直分割線Ｌｖ２及びＬｖ３の配置方法によると、両目の画像を含む領域となる。図６に示すように、分割点Ｄ２２及びＤ３２はＨ方向にもＶ方向にも移動されないため、この両目の画像を含む小領域は変形されない。このように本実施例では、両目の画像を含む小領域については変形しないこととし、顔形状補正後の画像がより自然で好ましいものとなるようにしている。
【００６６】
このように変形領域ＴＡを対象とした画像の変形処理が行われると、小顔補正処理Ｚ１が終了する。
【００６７】
ところで上述した小顔補正処理Ｚ１では、例えば目の画像と推定される画像がある側の方向が「顔領域ＦＡの上方向」に、口の画像と推定される画像がある側の方向が「顔領域ＦＡの下方向」とされ、顔領域ＦＡが、その上下方向にある拡大率で拡大されて変形領域ＴＡが設定される（図４）。そして、変形領域ＴＡに顔領域ＦＡの上下方向に応じて水平分割線Ｌｈが設定され、その水平分割線Ｌｈと垂直分割線Ｌｖで区切られる領域の中の所定の領域（例えば、顔領域ＦＡの下側の部分）（図５）が変形（例えば、細く）される（図７、図１０）。従って、顔領域ＦＡから認識された顔画像の上下方向（顔領域ＦＡの上下方向）が、実際の顔画像の上下方向とある程度一致していないと、小顔補正の結果不自然な画像となってしまうことがある。
【００６８】
図１１は、顔領域ＦＡの上下方向が実際の顔画像の上下方向とが反対になった場合の例を示す図である。このように顎にひげが生えている顔の画像では、ひげと髪の毛が画像上類似することから、ひげの画像がある側の方向（実際の顔画像では下方向）が「顔領域ＦＡの上方向」とされ、実際の顔画像の上下方向と反対に認識されることがある。このように、顔領域ＦＡの上下方向が、実際の顔画像の上下方向と反対に認識されると、本来目の画像の下付近に配置されるべき水平分割線Ｌｈ２が、鼻の画像の下付近に配置され、また本来顎の画像の下付近に配置されるべき水平分割線Ｌｈ１が、額の画像付近に配置される。その結果分割点Ｄ１１，Ｄ２１，Ｄ２２，Ｄ１２を頂点とする小領域（図中、ハッチが付されている領域）、及び分割点Ｄ４１，Ｄ３１，Ｄ３２，Ｄ４２を頂点とする小領域（図中、ハッチが付されている領域）が、それぞれ内側に移動するように変形されるので、鼻から額にかけての部分が細くなる不自然な画像が生成される。
【００６９】
そこで本実施の形態では、小顔補正によりこのような不自然な画像が生成されないように、画像から認識される顔の画像面内における回転角に応じて、小顔補正処理Ｚ１の実行が制限される（即ち画像変形処理Ｚ２が実行される）。
【００７０】
図１２は、「画像から認識される顔の画像面内における回転角」の例を示す図である。即ち「画像から認識される顔の画像面内における回転角」とは、例えば、基準線ＲＬの「顔領域ＦＡの上方向」（即ち顔領域ＦＡから認識される顔画像の上方向）を示す直線Ａと、顔領域ＦＡの重心Ｃから対象画像ＴＩの真上の方向に向かう直線Ｂとの角度に相当する角度である（即ち顔領域ＦＡの画像面内における回転角である）。図１２の上段の例における「顔領域ＦＡの上方向」は、対象画像ＴＩの真上の方向と一致するので、直線Ａと直線Ｂのなす角度は０度となる。一方下段の例における「顔領域ＦＡの上方向」は対象画像ＴＩの真下の方向となるので、直線Ａと直線Ｂのなす角は１８０度なる。
【００７１】
図１３は、小顔補正処理Ｚ１が制限される「画像から認識される顔の画像面内における回転角」の範囲を表す図である。図１３の例では、「画像から認識される顔の画像面内における回転角」（以下、認識回転角と称する）が、０度、９０度、２７０度を中心とする３０度の範囲（以下、対象角範囲と称する）（図中、ハッチが付されている範囲）内であるときだけ、即ち、３４５度〜１５度、７５度〜１０５度、２５５度〜２８５度であるときだけ、小顔補正処理Ｚ１が実行され、それ以外の範囲内のとき、小顔補正処理Ｚ１は実行されない。即ち図１１及び図１２の下段に示したように、認識回転角度が１８０度である場合、小顔補正処理Ｚ１は実行されない。このように認識回転角が１８０度である場合に小顔補正処理Ｚ１を実行しないようにすることにより、図１１を参照して説明したような不自然な画像が生成されることを防止することができる。
【００７２】
図１４は、認識回転角に応じて、小顔補正処理Ｚ１の実行を制限する処理（即ち画像変形処理Ｚ２）の流れを示すフローチャートである。このフローチャートを参照して、画像変形処理Ｚ２について説明する。
【００７３】
ステップＳ１１において、画像変形処理部２２は、操作部１３に対する操作により選択されたユーザが印刷したい画像を、対象画像ＴＩとし、その画像データ（例えば、２５６０画素×１９２０画素の２４ｂｉｔカラーの画像データ）を、メモリカード１８から読み出す。そして画像変形処理部２２は、その画像データの解像度を変換することにより、３２０画素×２４０画素（ＱＶＧＡ：Quarter Video Graphics Array）の作業画像データＷＤを生成する。
【００７４】
ステップＳ１２において、顔領域特定処理が実行される。
【００７５】
図１５は、顔領域特定処理の概要を示す図である。この例では、作業画像データＷＤにおいて正方形状領域の検出窓ＳＷが、検出窓ＳＷのサイズと、検出窓ＳＷの画像面内における回転角を順次シフトさせながら、隈無く移動する。そして検出窓ＳＷによって取り出されたデータの画像領域（以下、画像領域ＩＤＷと称する）を、例えば人間の目があると推定される領域や人間の口があると推定される領域を抽出することができる矩形フィルタを用いてフィルタリングすることで、画像領域ＩＤＷが顔領域ＦＡであるか否かが判定される。
【００７６】
図１６は、顔領域特定処理の流れを示すフローチャートである。このフローチャートを参照して、顔領域特定処理を説明する。
【００７７】
ステップＳ５１においては、顔領域特定部２１は、サイズカウンタｎs、ｙ方向カウンタｎy、ｘ方向カウンタｎx、回転角カウンタｎtを、それぞれ０にリセットする。
【００７８】
この顔領域特定処理では、図１５に示したように、検出窓ＳＷが、検出窓ＳＷのサイズと、検出窓ＳＷの画像面内における回転角を順次シフトしながら、隈無く移動する。そのサイズと回転角を順次シフトさせながら移動させるために、検出窓ＳＷのサイズのパラメータＳ、検出窓ＳＷの中心位置のパラメータＰ、そして検出窓ＳＷの回転角のパラメータＴが用いられる。サイズカウンタｎsは、検出窓ＳＷのサイズのパラメータＳの値を示し、ｘ方向カウンタｎx及びｙ方向カウンタｎyは、検出窓ＳＷの中心位置のパラメータＰの値を示し、回転角カウンタｎtは、検出窓ＳＷの回転角のパラメータＴの値を示す。即ち各カウンタｎs，ｎx，ｎy，ｎtが、後述するように変更されることによって、パラメータＳ，Ｐ，Ｔが変更され、その変更に応じてサイズと画像面内における回転角が順次シフトしながら、検出窓ＳＷが移動する。
【００７９】
ステップＳ５２において、顔領域特定部２１は、サイズカウンタｎsに１を加算する。この例の場合、検出窓ＳＷのサイズＳは、１５種類あることから、サイズカウンタｎsは１５まで増加する。なおサイズカウンタｎsの値の増加（即ちパラメータＳの値の増加）に応じて、検出窓ＳＷのサイズＳ（縦と横の長さ）は段階的に小さくなるものとする。
【００８０】
次にステップＳ５３及びＳ５４において、顔領域特定部２１は、検出窓ＳＷの中心位置のパラメータＰを設定するために、ｙ方向カウンタｎyとｘ方向カウンタｎxにそれぞれ１を加算する。
【００８１】
ステップＳ５５において、顔領域特定部２１は、ｙ方向カウンタｎyが奇数であるか偶数であるかを判定し、ｙ方向カウンタｎyが奇数であると判定した場合、ステップＳ５６において、検出窓ＳＷの中心位置Ｐのｘ，ｙ座標を下記の式（３）によって算出する。そして顔領域特定部２１は、算出した中心位置Ｐを中心とする、サイズＳの検出窓ＳＷを生成する。
【数３】
2010086379.tif 000005
【００８２】
式（３）中、ｄx，ｄyは、検出窓ＳＷの中心位置Ｐの各方向への単位移動距離（画素数）である。即ち単位移動間隔ｄx，ｄyと方向カウンタｎx，ｎyをそれぞれ乗算することにより、検出窓ＳＷの中心位置Ｐのｘ，ｙ座標が算出される。
【００８３】
また単位移動間隔ｄx，ｄyは、検出窓ＳＷの縦及び横の長さを示すサイズＳに基づいて下記の式（４）によって算出される。
【数４】
2010086379.tif 000006
【００８４】
式（４）が示すように、単位移動間隔ｄx，ｄyは互いに異なる値となっており、ｐx＞ｐyとなっている。上記の式（４）によって単位移動間隔ｄy＜１となる場合は、ｄy＝１とする。なお、ｘ方向カウンタｎxが取り得る範囲は１〜３２０／ｄx（整数部分）とし、ｙ方向カウンタｎyは１〜２４０／ｄy（整数部分）とする。
【００８５】
ステップＳ５５で、ｙ方向カウンタｎyが偶数であると判定された場合、ステップＳ５７において、顔領域特定部２１は、検出窓ＳＷの中心位置Ｐのｘ，ｙ座標を下記の式（５）によって算出する。即ちｙ方向カウンタｎyが偶数である場合は、ｙ方向カウンタｎyが奇数である場合よりも、検出窓ＳＷの中心位置Ｐのｘ座標がｘ方向の単位移動間隔ｄxの半分だけ進んだ位置となる。顔領域特定部２１は、算出した中心位置Ｐを中心とする、サイズＳの検出窓ＳＷを生成する。
【数５】
2010086379.tif 000007
【００８６】
ステップＳ５６又はＳ５７で、検出窓ＳＷが生成されると、ステップＳ５８においては、顔領域特定部２１は、検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出ているか否かを判定する。
【００８７】
図１７は、検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出ている様子を示す図である。各カウンタｎs，ｎx，ｎyの値の大きさによって検出窓ＳＷの位置と大きさがシフトするため、あるカウンタｎs，ｎx，ｎyの組み合わせにおいては、図１７に示すように検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出ることがある。
【００８８】
ステップＳ５８で、検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出ていないと判定された場合（即ち検出窓ＳＷの全部が作業画像データＷＤの内側に入る場合）、ステップＳ５９において、顔領域特定部２１は、検出窓ＳＷの回転角Ｔを設定するための回転角カウンタｎtに１を加算する。
【００８９】
回転角カウンタｎtの値が１増える毎に、例えば、検出窓ＳＷを９０度ずつ回転させることができる。このとき回転角カウンタｎtの最大値Ｎtは、４（＝３６０度÷９０度）となる。また同様に、３０度刻み、１５度刻み、５度刻みで、検出窓ＳＷを回転させることができる。この例の場合、図１３に示した対象角範囲に基づいて、小顔補正処理Ｚ１の実行が制御されるので、１５度以下の刻みで、回転角を検出する必要がある。従ってこの例の場合、５度刻みで検出窓ＳＷを回転させるものとする。
【００９０】
次にステップＳ６０において、顔領域特定部２１は、上述したように設定されたカウンタｎs，ｎx，ｎy，ｎtの値に応じた大きさ、位置、及び回転角を有する検出窓ＳＷの内側（画像領域ＩＤＷ）の画像データを抽出し、抽出した画像データについての顔領域判定処理を実行する。
【００９１】
顔領域判定処理は、例えば人物の目、鼻、及び口等の基本的な形状を表すフィルタを利用して行われる。
【００９２】
図１８は、この顔領域判定処理で用いられる矩形フィルタＦ１１，Ｆ１２の例を示す図である。矩形フィルタＦ１１，Ｆ１２は、画像領域ＩＤＷの一部の領域（図１８においてハッチを付して示す領域）に含まれる画素の明度の情報を取り出すために使用される。
【００９３】
なお図１８では、矩形フィルタＦ１１，Ｆ１２が適用される画像領域ＩＤＷの画像も、矩形フィルタＦ１１，Ｆ１２と重ねて表示されている。画像領域ＩＤＷの画像は、顔の画像である。また矩形フィルタＦ１１，Ｆ１２は、２０画素×２０画素の大きさを有する。ここでは、説明を簡略にするために、検出窓ＳＷによって取り出されたデータの画像領域ＩＤＷの大きさと、矩形フィルタＦ１１，Ｆ１２の大きさとは、同じであるものとする。すなわち、画像領域ＩＤＷも、２０画素×２０画素の大きさを有する。
【００９４】
矩形フィルタＦ１１を使用した判定では、画像領域ＩＤＷのデータのうち、領域Ａ１１ａの各画素の明度のデータＹ１１ａが取り出される。領域Ａ１１ａは、画像領域ＩＤＷにおいて高さ方向の中央よりも上側にあって画像領域ＩＤＷの左右幅と等しい幅を有する長方形の領域である。また、同様に、領域Ａ１１ｂの各画素の明度のデータＹ１１ｂも取り出される。領域Ａ１１ｂは、画像領域ＩＤＷにおいて高さ方向の中央よりも下側にあって画像領域ＩＤＷの左右幅と等しい幅を有する長方形の領域である。
【００９５】
なお、領域Ａ１１ａは、画像領域ＩＤＷが顔領域ＦＡである場合に、人間の目があると推定される領域である。また、領域Ａ１１ｂは、画像領域ＩＤＷが顔領域ＦＡである場合に、人間の口があると推定される領域である。
【００９６】
そして、領域Ａ１１ａの各画素の明度Ｙ１１ａの合計をα１１ａ倍した値と（α１１ａは定数）、領域Ａ１１ｂの各画素の明度Ｙ１１ｂの合計をα１１ｂ倍した値と（α１１ｂは定数）、の合計値が所定の基準値θ１１よりも大きいか否かが判定される。合計値がθ１１よりも大きい場合には、画像領域ＩＤＷは、顔領域ＦＡであると判定される。画像領域ＩＤＷが顔領域ＦＡであると判定された場合、そのときの各カウンタｎs，ｎx，ｎy，ｎtの値が内部メモリ１２に記憶される。
【００９７】
矩形フィルタＦ１２を使用した判定では、画像領域ＩＤＷのデータのうち、領域Ａ１２ａの各画素の明度のデータＹ１２ａが取り出される。領域Ａ１２ａは、領域Ａ１１ａの左半分の領域Ａ１１ａｌの一部であって、領域Ａ１１ａｌの中心を含む領域である。また、同様に、領域Ａ１２ｂの各画素の明度のデータＹ１２ｂが取り出される。領域Ａ１２ｂは、領域Ａ１１ａの右半分の領域Ａ１１ａｒの一部であって、領域Ａ１１ａｒの中心を含む領域である。
【００９８】
なお、領域Ａ１２ａは、画像領域ＩＤＷが顔領域ＦＡである場合に、人間の右目があると推定される領域である。また、領域Ａ１２ｂは、画像領域ＩＤＷが顔領域ＦＡである場合に、人間の左目があると推定される領域である。
【００９９】
そして、領域Ａ１２ａの各画素の明度Ｙ１２ａの合計をα１２ａ倍した値と（α１２ａは定数）、領域Ａ１２ｂの各画素の明度Ｙ１２ｂの合計をα１２ｂ倍した値と（α１２ｂは定数）、の合計値が所定の基準値θ１２よりも大きいか否かが判定される。合計値がθ１２よりも大きい場合には、画像領域ＩＤＷは、顔領域ＦＡであると判定される。画像領域ＩＤＷが顔領域ＦＡであると判定された場合、そのときの各カウンタｎs，ｎx，ｎy，ｎtの値が内部メモリ１２に記憶される。
【０１００】
このようにフィルタを用いて、この顔領域判定処理が行われ、顔領域ＦＡが特定される。
【０１０１】
図１６に戻りステップＳ５８で、検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出していると判定された場合、又はステップＳ６０で、顔領域判定処理が行われた場合、処理は、ステップＳ６１に進み、顔領域特定部２１は、回転角カウンタｎt＝Ｎt（例えば、５度刻みで検出窓ＳＷを回転させる場合、７２）であるか否かを判定する。すなわち、現在の検出窓ＳＷのサイズＳ及び中心位置ＰにおいてＮt（この例の場合、７２）通りの回転角の設定が完了したか否かが判定される。回転角カウンタｎt＜Ｎtである場合には、処理は、ステップＳ５９に戻り、顔領域特定部２１は、回転角カウンタｎtに１を加算する。これにより、１が加算された回転角カウントｎtに対応する回転角となるように検出窓ＳＷは回転する。
【０１０２】
一方、ステップＳ６１で、回転角カウンタｎt＝Ｎt（この例の場合、７２）であると判定された場合、ステップＳ６２において、顔領域特定部２１は、回転角カウンタｎtを０にリセットし、ステップＳ６３において、ｘ方向カウンタｎx＝Ｎx（この例の場合、３２０／ｄx（整数部分））であるか否かを判定する。すなわち、現在の検出窓ＳＷのサイズＳ及びｙ方向の位置における全てのｘ方向の位置について検出窓ＳＷの設定が完了したか否かが判定される。ｘ方向カウンタｎx＜３２０／ｄx（整数部分）であると判定された場合、処理は、ステップＳ５４に戻り、顔領域特定部２１は、ｘ方向カウンタｎxに１を加算する。これにより、ｘ方向の単位移動間隔ｄxだけ右側に進んだ中心位置Ｐに検出窓ＳＷが設定される。
【０１０３】
一方、ステップＳ６３で、ｘ方向カウンタｎx＝３２０／ｄx（整数部分）であると判定された場合、ステップＳ６４において、顔領域特定部２１は、ｘ方向カウンタｎxを０にリセットし、ステップＳ６５において、ｙ方向カウンタｎy＝Ｎy（この例の場合、２４０／ｄy（整数部分））であるか否かを判定する。すなわち、現在の検出窓ＳＷのサイズＳにおいて、全ての中心位置Ｐについて検出窓ＳＷの設定が完了したか否かが判定される。ステップＳ６５で、ｙ方向カウンタｎy＜２４０／ｄy（整数部分）であると判定された場合、処理は、ステップＳ５３に戻り、顔領域特定部２１は、ｙ方向カウンタｎyに１を加算する。これにより、ｙ方向に１画素（単位移動間隔ｄy）だけ進んだ中心位置Ｐに検出窓ＳＷが設定される。
【０１０４】
一方、ステップＳ６５で、ｙ方向カウンタｎy＝２４０／ｄy（整数部分）であると判定された場合、ステップＳ６６において、顔領域特定部２１は、ｙ方向カウンタｎyを０にリセットし、ステップＳ６７において、サイズカウンタｎs＝Ｎs（この例の場合、１５）であるか否かを判定する。すなわち、全てのサイズＳについて検出窓ＳＷの設定が完了したか否かが判定される。ステップＳ６７で、サイズカウンタｎs＜１５であると判定された場合、処理は、ステップＳ５２に戻り、顔領域特定部２１は、サイズカウンタｎsに１を加算する。これにより、一回り小さいサイズＳの検出窓ＳＷが設定される。一方、ステップＳ６７で、サイズカウンタｎs＝１５であると判定された場合、全てのパラメータ（サイズＳ、位置Ｐおよび回転角Ｔ）の組み合わせについて検出窓ＳＷの設定が完了したとして顔領域特定処理は終了し、処理は、図１４のステップＳ１３に進む。
【０１０５】
ステップＳ１３において、画像変形処理部２２は、ステップＳ１２で特定された顔領域ＦＡの中から１つの顔領域ＦＡを選択する。なお実際には顔領域ＦＡが特定されない場合もあるが、ここでは、顔領域ＦＡが１個以上特定されているものとする。
【０１０６】
ステップＳ１４において、画像変形処理部２２は、選択した顔領域ＦＡの色情報を取得する。具体的には、画像変形処理部２２は、選択した顔領域ＦＡについて判定したときの検出窓ＳＷのサイズＳ、位置Ｐ及び回転角Ｔを内部メモリ１２から読み出して、その検出窓ＳＷに対応する顔領域ＦＡの画像データを対象画像ＴＩから読み取る。そして画像変形処理部２２は、顔領域ＦＡに含まれる肌色画素の色をサンプリングする。
【０１０７】
ステップＳ１５において、画像変形処理部２２は、小顔補正が設定されているか否かを判定する。この例の場合、ユーザは、操作部１３を操作して、小顔補正を選択的に設定することができる。ステップＳ１５で、小顔補正が設定されていると判定した場合、ステップＳ１６に進み、画像変形処理部２２は、顔領域ＦＡの回転角を検出する。この例の場合、ステップＳ１４で読み出された回転角Ｔが顔領域ＦＡの回転角として検出される。
【０１０８】
ステップＳ１７において、画像変形処理部２２は、顔領域ＦＡの回転角が、対象角範囲内（図１３）であるか否かを判定し、その範囲内であると判定した場合、ステップＳ１８に進み、図３のフローチャートを参照して説明した小顔補正処理Ｚ１を実行する。
【０１０９】
ステップＳ１５で、小顔補正が設定されていないと判定されたとき、ステップＳ１７で、顔領域ＦＡの回転角が対象角範囲内ではないと判定された場合、又はステップＳ１８で小顔補正処理Ｚ１が行われたとき、ステップＳ１９において、美肌補正部２３は、美肌補正処理を実行する。即ちステップＳ１５で小顔補正が設定されていないと判定されたとき、及びステップＳ１７で顔領域ＦＡの回転角が対象角範囲内ではないと判定された場合、ステップＳ１８での小顔補正処理Ｚ１はスキップされる。
【０１１０】
美肌補正処理は、具体的には、ステップＳ１４でサンプリングされた顔領域ＦＡに含まれる肌色画素を、各画素の色彩値（例えばＲＧＢ値やＨＳＶ値）に基づいて特定し、その色彩値を肌色として好ましいものに補正するための調整パラメータが算出される。調整パラメータは、例えばカラーバランスやホワイトバランスや明るさを調整するためのパラメータが該当する。予め肌色として好ましい色彩値は内部メモリ１２に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくような調整パラメータが算出される。そしてこのようにして算出された調整パラメータに基づく各画素の色彩値の調整が実行させる。
【０１１１】
次にステップＳ２０において、画像変形処理部２２は、全ての顔領域ＦＡを選択したか否かを判定し、まだ残っている顔領域ＦＡが存在すると判定した場合、ステップＳ１３に戻り、次の顔領域ＦＡを選択し、ステップＳ１４以降の処理を同様に行う。ステップＳ２０で、全ての顔領域ＦＡを選択したと判定された場合、処理は、ステップＳ２１に進む。
【０１１２】
ステップＳ２１において、全体補正部２４は、対象画像ＴＩ全体に対して、ピント、露光、色かぶり等についての補正処理を施す。具体的には、ピントに関しては、高い空間周波数成分を強調する処理が実行される。すなわち、２次元のハイパスフィルタを用いて処理することにより、高い空間周波数成分が強調され、ピントぼけが解消される。また、露光に関しては、画素データのヒストグラムの重心が適正になるようにヒストグラム上において重心位置をシフトさせる補正が行われるとともに、分散が適切になるようにヒストグラム上において拡散又は集中させる処理が実行される。また、色かぶりについては、Ｒ，Ｇ，Ｂのヒストグラムのそれぞれの差分を検出し、差分が適正な範囲になるようにそれぞれの色の画素データに対してバランスを更正する処理が実行される。
【０１１３】
次にステップＳ２２において、出力制御部２５は、上述したように顔領域ＦＡに対して小顔補正処理Ｚ１及び美肌補正処理が施され、そして全体補正処理が施された対象画像ＴＩの画像データをプリンタエンジン１５に出力する。プリンタエンジン１５は、出力制御部２５から供給された画像データに対して解像度変換処理、色変換処理、ハーフトーン処理、ラスタライズ処理を順次実行させ、プリンタ１に画質調整後の画像データに対応する画像の印刷を実行させる。
【０１１４】
このように印刷処理が実行されると、画像変形処理Ｚ２は終了する。
【０１１５】
以上のように、処理の対象となる対象画像ＴＩにおける顔の少なくとも一部の画像が含まれる顔領域ＦＡに基づいて変形領域ＴＡを設定し（図４）、変形領域ＴＡ内に複数の分割点Ｄを配置して、分割点同士を結ぶ直線を用いて変形領域ＴＡを複数の小領域に分割し（図５）、少なくとも１つの分割点Ｄの位置を移動して小領域を変形することにより変形領域ＴＡ内の画像を変形させる小顔補正処理Ｚ１を、例えば、顔領域ＦＡから認識される顔画像の上方向（顔領域ＦＡの上方向）が対象画像ＴＩの真下を向いている場合（即ち逆さになっていると認識される場合）においては行わないようにしたので、小顔補正処理Ｚ１により不自然な画像が生成されることを防止することができる。
【０１１６】
図１２に示したように、顔領域ＦＡから認識された顔画像の上下方向（顔領域ＦＡの上下方向）と実際の顔画像の上下方向とが反対になることがあり、その場合、上述した小顔補正処理Ｚ１により、鼻から額にかけての部分が細くなるような不自然な画像が生成される。従って、このように方向が誤認された場合に不自然な画像が得られる顔領域ＦＡの回転角が検出された場合には、小顔補正処理Ｚ１自体を行わないようにすることで、不自然な画像が生成されることを防止することができる。
【０１１７】
なお例えば実際には４５度傾いている顔画像に対して、０度又は９０度傾いた顔領域ＦＡに基づいて小顔補正処理Ｚ１が行われると、上下方向が真逆に認識された場合ほどでないにしても不自然が画像が生成される。そこでこの例では、図１３に示すように、４５度及び３１５度付近の回転角のときも小顔補正処理Ｚ１は実行されない。図１３の対象角範囲は、一例であり、他の角度の範囲を対象角範囲とすることができる。
【０１１８】
なお図１４に示した画像変形処理Ｚ２では、検出窓ＳＷを３６０度回転させて顔領域ＦＡを特定し（図１６）、検出窓ＳＷの回転角に基づいて顔領域ＦＡの回転角が対象角範囲内であるか否かを判定することによって（図１４のステップＳ１６，Ｓ１７）、小顔補正処理Ｚ１を行う顔領域ＦＡを決定したが、対象角範囲内の回転角を有する顔領域ＦＡだけが特定されるようにすることもできる。
【０１１９】
図１９は、対象角範囲内の回転角を有する顔領域ＦＡだけが特定される場合の画像変形処理Ｚ２の流れを示すフローチャートである。
【０１２０】
即ちこの画像変形処理Ｚ２では、ステップＳ１０１において、図１４のステップＳ１１における場合と同様に、作業画像データＷＤが生成される。
【０１２１】
ステップＳ１０２において、小顔補正が設定されているか否かが判定され、設定されていると判定された場合、ステップＳ１０３において、顔領域ＦＡの認識範囲が制限される。例えば、検出窓ＳＷの回転角の範囲が、対象角範囲内に制限される。具体的には、回転角カウンタｎtに設定される値が、対象角範囲内の回転角に対応する値だけとされる。
【０１２２】
ステップＳ１０４において、基本的には図１６のフローチャートを参照して説明した顔領域特定処理が実行されるが、回転角カウンタｎtには、ステップＳ１０３で選択された、対象角範囲内の回転角に対応する値が設定されるように制御される。
【０１２３】
ステップＳ１０５〜Ｓ１０７においては、図１４のステップＳ１３〜Ｓ１５における場合と同様の処理が行われ、ステップＳ１０８〜Ｓ１１２においては、図１４のステップＳ１７〜Ｓ２２における場合と同様の処理が行われるので、その説明は省略するが、この例では、ステップＳ１０４で対象角範囲内の回転角の顔領域ＦＡだけが特定され、特定された顔領域ＦＡの全てに小顔補正処理Ｚ１が施されるので、図１４のステップＳ１６に相当する小顔補正処理Ｚ１を施す顔領域ＦＡを決定する処理は省略されている。
【０１２４】
以上のようにして、対象角範囲内の回転角を有する顔領域ＦＡだけが特定されるようにした画像変形処理Ｚ２は行われる。なお図１４の例の場合、回転角に関係なく顔領域ＦＡが設定された顔の画像に対して美肌補正処理が行われたが、この例では、対象角範囲内の回転角を有する顔領域ＦＡだけが特定されるので、その回転角の顔領域ＦＡに対してのみ美肌補正処理が施される。
【０１２５】
また、図１４に示した画像変形処理Ｚ２では、検出窓ＳＷ等のテンプレートを用いて顔領域ＦＡを特定したが（図１６）、検出窓ＳＷ等のテンプレートを使用せずに、例えば、目、鼻、口等の特徴部分を抽出し、これらの位置関係から顔領域ＦＡを特定することもできる。そのようにして顔領域ＦＡを特定する場合、図２０に示すように、特定された顔領域ＦＡを、顔領域ＦＡの上辺と、対象画像ＴＩの上辺との角度θを、顔領域ＦＡの回転角とすることもできる。この角度θは、式（６）に従って算出される。
【数６】
2010086379.tif 000008
【０１２６】
図２０中、Ｍ1，Ｍ2，Ｍ3，Ｍ4は、顔領域ＦＡの４隅の点を表し、（ｘ1，ｙ1），（ｘ2，ｙ2），（ｘ3，ｙ3），（ｘ4，ｙ4）は、Ｍ1，Ｍ2，Ｍ3，Ｍ4の座標を表す。また式（６）中、係数ａは、顔領域ＦＡの左上隅の点Ｍ1を通って対象画像ＴＩの上辺と平行な軸に顔領域ＦＡの上辺を投影したときの長さであり、係数ｂは、顔領域ＦＡの点Ｍ1を通って対象画像ＴＩの上辺と平行な軸と右上隅の点Ｍ2の間の長さである。
【０１２７】
また、デジタルカメラには、傾きセンサーを内蔵し、撮像時の傾きを示す情報を画像データとともに記憶するものがある。そこでそのカメラの傾きを利用して顔領域ＦＡの回転角を検出することができる。
【０１２８】
図２１は、カメラの傾きと撮像画像の関係を示す図である。図２１の最上段のようにカメラが回転していない状態で撮像された場合、顔領域ＦＡの回転角は０度となる。また中段のようにカメラが時計方向に９０度回転した状態で撮像された場合、顔領域ＦＡの回転角は９０度となる。また最下段のようにカメラが反時計方向に９０度回転した状態で撮像された場合、顔領域ＦＡの回転角は２７０度となる。
【０１２９】
なお対象角範囲は、カメラが回転していない状態で撮像された場合、０度を中心とする３０度の範囲とし、カメラが時計方向に９０度回転した状態で撮像された場合、９０度を中心とする３０度の範囲とし、カメラが反時計方向に９０度回転した状態で撮像された場合、２７０度を中心とする３０度の範囲とすることができる。
【０１３０】
このように撮像時の情報を利用すれば、簡単に顔領域ＦＡの回転角を検出することができる。
【０１３１】
また以上においては、小顔補正が設定されると、自動的に小顔補正処理Ｚ１が実行されたが、例えば、小顔補正処理Ｚ１が実行される前に（例えば、ステップＳ１７の前段に）、顔領域ＦＡの上下方向をユーザに確認してもらうようにすることもできる。例えば図２２に示すように、対象画像ＴＩに、顔領域ＦＡや変形領域ＴＡとともに、ステップＳ１６で検出された顔領域ＦＡの回転角に基づく「顔領域ＦＡの上方向」を示す矢印Ｗを表示させ、ユーザに顔領域ＦＡの上下方向を確認させることができる。ユーザが、顔領域ＦＡの上下方向が実際とは異なると判断した場合、操作部１３に対する所定の操作により、小顔補正処理Ｚ１の実行を停止させることができるようにすることができる。また例えば矢印Ｗを、例えばタッチペン等で移動させて、図２３に示すように、実際の顔画像の上下方向に合わせることができるようにし、その方向を「顔領域ＦＡの上方向」として小顔補正処理Ｚ１が実行されるようにすることもできる。
【０１３２】
また以上においては、小顔補正処理Ｚ１を例として説明したが、顔領域ＦＡから認識される顔画像の上下方向と実際の顔画像の上下方向と異なる場合に不都合が生じる処理であれば、他の処理についても適用することができる。例えば、いわゆるファン機能として、顔の画像に対して、目の画像部分にサングラスの画像を重畳させて表示させたり、頭の画像部分に帽子の画像を重畳させて表示させたりするものがある。このようなファン機能において、画像処理により認識された顔画像の上下方向と実際の顔画像の上下方向とが異なると、例えば目の画像でない部分にサングラスの画像が重畳されるなどの不具合が生じる。従って、このようなファン機能に適用しても、本来目的としていない画像が生成されることを防止することができる。
【０１３３】
また以上においては、顔領域から認識される顔画像の画像面内の回転角（即ち顔画像の傾き状態）に基づいて、小顔補正処理Ｚ１の実行を制限するようにしたが、他の顔の状態に応じて小顔補正処理Ｚ１の実行を制限することもできる。例えば顔画像の奥行き方向の角度（即ち左向き、右向き、上向き、又は下向きの状態）に応じて小顔補正処理Ｚ１の実行を制限することもできる。
【０１３４】
また以上においては、インクジェット方式のプリンタ１を例として説明したが、インクジェット方式以外のプリンタにも適用するとともに、画像をユーザに提示するものであれば、デジタルカメラやフォトビューアーにも適用することができる。
【０１３５】
また以上においては、図３、図１４，図１６，及び図１９に示す処理を、プリンタ１において実行するようにしたが、例えば、プリンタ１に接続されているホストコンピュータにおいて実行することも可能である。
【０１３６】
また上記の処理機能を、コンピュータによって実現することができる。その場合、プリンタ１が有すべき上述した機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disk ROM）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３９】
なお上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【図面の簡単な説明】
【０１４０】
【図１】本発明の実施の形態に係るプリンタの構成例を示すブロック図である。
【図２】図１に示すプリンタにおいて画像変形処理を実行するためのプリンタの機能的構成例を示すブロック図である。
【図３】小顔補正処理の流れを示すフローチャートである。
【図４】顔領域ＦＡの検出結果及び変形領域ＴＡの設定例の一例を示す図である。
【図５】変形領域ＴＡの小領域への分割例を示す図である。
【図６】分割点移動テーブルの内容の一例を示す図である。
【図７】図６の分割点移動テーブルに従った分割点の位置の移動の一例を示す図である。
【図８】画像の変形処理の概念を示す図である。
【図９】三角形領域における画像の変形処理の概念を示す図である。
【図１０】顔画像の変形の具体的な態様を示す図である。
【図１１】顔領域ＦＡの上下方向と実際の顔画像の上下方向が異なる場合の変形領域ＴＡの分割例を示す図である。
【図１２】顔領域ＦＡの上方向の例を示す図である。
【図１３】小顔補正処理が実行される対象角範囲の例を示す図である。
【図１４】画像変形処理の流れを示すフローチャートである。
【図１５】顔領域特定処理の概要を示す図である。
【図１６】顔領域特定処理の流れを示すフローチャートである。
【図１７】検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出している様子を示す図である。
【図１８】顔領域特定処理で用いられる矩形フィルタＦ１１，Ｆ１２の例を示す図である。
【図１９】他の画像変形処理の流れを示すフローチャートである。
【図２０】顔領域ＦＡの回転角の検出方法を説明する図である。
【図２１】顔領域ＦＡの回転角の他の検出方法を説明する図である。
【図２２】顔領域ＦＡの上方向をユーザに提示する例を示す図である。
【図２３】顔領域ＦＡの上方向をユーザが指定できる例を示す図である。
【符号の説明】
【０１４１】
１  プリンタ，  １１  ＣＰＵ，  １２  内部メモリ，  １３  操作部，  １４  表示部，  １５  プリンタエンジン，  １６  カードＩ／Ｆ，  １７  カードスロット，  １８  メモリカード，  ２１  顔領域特定部，  ２２  画像変形処理部，  ２３  美肌補正部，  ２４  全体補正部，  ２５  出力制御部，  ３１  変形領域設定部，  ３２  変形領域分割部，  ３３  分割領域変形部
【図１】
2010086379.tif 000009
【図２】
2010086379.tif 000010
【図３】
2010086379.tif 000011
【図４】
2010086379.tif 000012
【図５】
2010086379.tif 000013
【図６】
2010086379.tif 000014
【図７】
2010086379.tif 000015
【図８】
2010086379.tif 000016
【図９】
2010086379.tif 000017
【図１０】
2010086379.tif 000018
【図１１】
2010086379.tif 000019
【図１２】
2010086379.tif 000020
【図１３】
2010086379.tif 000021
【図１４】
2010086379.tif 000022
【図１５】
2010086379.tif 000023
【図１６】
2010086379.tif 000024
【図１７】
2010086379.tif 000025
【図１８】
2010086379.tif 000026
【図１９】
2010086379.tif 000027
【図２０】
2010086379.tif 000028
【図２１】
2010086379.tif 000029
【図２２】
2010086379.tif 000030
【図２３】
2010086379.tif 000031