(57)【特許請求の範囲】
【請求項１】
画像の変形を実行可能な画像処理装置であって、
対象画像内から複数の顔領域を検出する検出部と、
一つの顔領域を含む領域を変形処理の対象の候補領域として上記検出された顔領域毎に設定する候補領域設定部と、
候補領域の間で重なりが生じている場合に、外部から入力された選択指示に応じて候補領域を選択し、当該選択した候補領域に対して重なる他の候補領域が存在する場合に当該重なる他の候補領域を変形処理の対象から除外する除外判別部と、
上記除外された候補領域以外の候補領域を対象として、領域内の画像の変形を行う変形処理部と、
を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の変形を実行可能な画像処理技術に関する。
【背景技術】
【０００２】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている（特許文献１参照。）。特許文献１には、顔の画像上の一部の領域（頬の画像を表す領域）を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４‐３１８２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来の画像変形のための画像処理では、複数の小領域のそれぞれについて、それぞれの小領域毎に設定された倍率で画像の拡大または縮小が行われるため、処理が煩雑であった。また、上記従来の画像変形のための画像処理は、頬のラインを補正することに特化されており、他の多様な変形態様に対応するのが困難であった。
また従来の技術は、単に人物の顔を検出したら当該検出した顔（顔の一部の領域）を補正して変形するものであるため、画像データ中に複数の顔が存在する場合には、全ての顔が変形の対象となる。しかしながら、常に全ての顔を変形処理の対象とすることは、演算処理量の増大および演算の際のバッファ等に用いられるメモリ量の増大を招いてしまう。特に、このような変形処理に伴うメモリ消費や演算処理の増大は、印刷機能やコピー機能やスキャナ機能など多くの機能を備えた複合機と呼ばれる画像処理機器においては、大きな負担となり、当該画像処理機器の動作の妨げとなっていた。
【０００５】
本発明は、上述した従来の課題を解決するためになされたものであり、多様な変形態様に対応した画像変形のための画像処理を容易かつ効率的に実現することを可能とする技術を提供することを目的とする。また同時に、当該画像変形を少ない処理負担および少ないメモリ消費によって実現し、装置の動作負担を低減することの可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の画像処理装置は画像の変形を実行可能であり、少なくとも候補領域設定部と、除外判別部と、変形処理部とを備える。候補領域設定部は、対象画像上の特定画像を含む領域を変形処理の対象の候補領域として設定し、除外判別部は、上記設定された候補領域を対象として、所定の除外条件に従って変形処理の対象から除外する領域を判別する。変形処理部は、上記除外判別部によって除外する領域と判別された候補領域以外の候補領域を対象として、領域内の画像の変形を行う。
つまり本発明によれば、対象画像上に存在する変形処理の対象の候補領域のうち、所定の除外条件に基づいて除外された領域以外の候補領域のみを対象として変形処理を行なうため、変形処理に伴うメモリ消費量や演算処理量の増大を適切に抑制することができる。
【０００７】
除外判別部が採用する除外の条件は、以下に示すように様々なものが考えられる。
一例として、除外判別部は、候補領域の間で重なりが生じている場合に、当該重なりが解消されるように一以上の候補領域を変形処理の対象から除外する。重なり合っている両候補領域をそれぞれ変形処理するには、一方の領域を先に変形処理し、後に他方の領域を変形するために上記一方の領域にかかる変形後の画像データを保持しておく必要があり、メモリの消費量が莫大となる。上記構成によれば、候補領域の間での重なりが解消されるように所定の候補領域を変形処理の対象から除外するため、メモリ消費量を大幅に抑制することができる。
【０００８】
候補領域間の重なりを解消する具体的手法は様々である。除外判別部は、複数の候補領域の中から所定の選択順序に従って一の候補領域を選択するとともに、当該選択した候補領域に対して重なる他の候補領域が存在する場合に当該他の候補領域を変形処理の対象から除外する処理を繰り返し行うことにより、候補領域間の重なりを解消するとしてもよい。より具体的には、除外判別部は、一の候補領域を選択する際、残存する候補領域のうち特定画像のサイズの大きい順に従って選択するとしてもよい。つまりサイズの大きい特定画像は、ユーザにとって重要な画像部分と推測されるため、かかるサイズの大きい特定画像を優先して選択し、これと重なっている他の候補領域を除外する。その結果、対象画像上には、互いに重ならずかつ比較的大きなサイズの特定画像をそれぞれ含む候補領域が、変形対象として残ることになる。
【０００９】
画像処理装置は、対象画像内から複数の顔領域を検出する検出部と、一つの顔領域を含む領域を変形処理の対象の候補領域として上記検出された顔領域毎に設定する候補領域設定部と、候補領域の間で重なりが生じている場合に、外部から入力された選択指示に応じて候補領域を選択し、当該選択した候補領域に対して重なる他の候補領域が存在する場合に当該重なる他の候補領域を変形処理の対象から除外する除外判別部と、上記除外された候補領域以外の候補領域を対象として、領域内の画像の変形を行う変形処理部と、を備えるとしてもよい。つまりユーザによる選択指示に応じて候補領域を選択し、この候補領域に重なる他の候補領域を変形処理の対象から除外する。その結果、ユーザが選択した候補領域が優先的に変形処理の対象となり得、好適である。
【００１０】
他の例として、除外判別部は、特定画像についてのサイズおよび対象画像上での傾きを取得するとともに、当該取得したサイズが当該取得した傾きに応じて決められるサイズ上限値内に収まるか否か判断し、当該取得したサイズがサイズ上限値を超える特定画像を有する候補領域について、変形処理の対象から除外するとしてもよい。特定画像を含む候補領域の変形に要するメモリ量は、単に特定画像のサイズだけでなく、その特定画像の傾きによっても異なる。上記構成によれば、傾きに応じて許容されるサイズを超える特定画像を含む候補領域は、変形処理の対象外とされるため、変形処理に伴うメモリ消費量や演算処理量の増大を適切に抑制することができる。
【００１１】
具体的には、除外判別部は、傾きが所定の上限角度に近づくほどにサイズ上限値を小さい値に規定したサイズ上限値規定情報を参照することにより、上記取得したサイズがサイズ上限値内に収まるか否かの判断を行う。変形処理部による変形処理の内容によっては、特定画像を含む候補領域の変形に要するメモリ量は、特定画像の傾きが所定の上限角度に近づく程多くなる場合がある。上記構成によれば、変形処理の際に大量のメモリを消費する傾向にある傾きの大きい特定画像については、サイズ上限値を厳しくすることにより、変形処理の対象から除外されやすくなるため、変形処理に伴うメモリ消費量や演算処理量の増大を抑制できる。
【００１２】
他の例として、除外判別部は、対象画像から所定のトリミングによって切り出されるトリミング画像から少なくとも一部が出る候補領域が存在する場合には、当該少なくとも一部が出る候補領域を変形処理の対象から除外するとしてもよい。トリミング画像から一部あるいは全部がはみ出る候補領域が存在する場合、かかる候補領域が含む特定画像について変形処理を行なうには、再度、その特定画像を含む候補領域の設定をやり直す必要がある。かかる再度の設定処理は、画像処理装置にとって大きな負担となる。そこで上記のように、トリミング画像から少なくとも一部が出る候補領域については変形処理の対象から除外することにより、変形処理に伴うメモリ消費量や演算処理量の増大を抑制できる。
【００１３】
具体的には、除外判別部は、画像出力に用いられる複数のアスペクト比の情報を取得するとともに、取得した各アスペクト比に基づく各トリミングによって切り出される各トリミング画像に共通する画像範囲から少なくとも一部が出る候補領域について、変形処理の対象から除外するとしてもよい。画像出力とは、印刷や画像表示などである。上記構成によれば、対象画像を様々なアスペクト比で出力可能な場合に、常に出力結果に全体が含まれる候補領域のみが変形処理の対象となり得る。そのため、出力時のアスペクト比の違いによって変形処理が行なわれたり行われなかったりする候補領域が生じることが無くなる。
【００１４】
或いは、除外判別部は、外部から入力されたトリミングの指示に基づいて切り出されるトリミング画像から少なくとも一部が出る候補領域について、変形処理の対象から除外するとしてもよい。つまり、ユーザが任意に指定したトリミングによって切り出されるトリミング画像から一部あるいは全部がはみ出る候補領域についても変形処理の対象から除外する。その結果、上述したような候補領域の再設定処理を回避し、メモリ消費および処理負担を抑制することができる。
【００１５】
他の例として、除外判別部は、特定画像の対象画像上における傾きが所定の角度範囲に属するか否か判断し、特定画像の傾きが当該所定の角度範囲外である候補領域について、変形処理の対象から除外するとしてもよい。つまり、特定画像の傾きとして想定されるある程度の角度範囲というものを定めておき、かかる範囲から外れる傾きを持った特定画像にかかる候補領域は除外する。その結果、変形処理に要するメモリ消費量および処理負担量を的確に減らすことができるとともに、特定画像でない画像部分を誤って変形してしまうということも防止できる。
【００１６】
ここで、対象画像上の各候補領域をそれぞれ変形処理しようとする際、各候補領域の特定画像の上下の向きがばらばらでは、処理負担やメモリ消費量が増大してしまう。そのため、変形処理部は、各候補領域のうち特定画像の上下の向きが略共通するものを対象として変形処理を行なうとしてもよい。除外判別部は、特定画像の上下の向きが異なる各候補領域が存在する場合、特定画像の上下の向きが共通する候補領域の数が最大となる方向に特定画像の上方向が対応している候補領域以外の候補領域について、変形処理の対象から除外するとしてもよい。かかる構成とすれば、特定画像の上下の向きが共通する候補領域にしぼって変形処理を行う。その結果、メモリ消費量および処理負担量を的確に減らすことができ、かつ対象画像上において重要度が高いと想定される特定画像を変形の対象とすることができる。
【００１７】
さらに除外判別部は、上下の向きが共通する候補領域の数が最大となる方向が複数存在する場合には、この複数の方向のうちサイズが最大の特定画像を有する候補領域が対応する方向に特定画像の上方向が対応している候補領域以外の候補領域を、変形処理の対象から除外するとしてもよい。さらに上記構成に加え或いは替えて、除外判別部は、上下の向きが共通する候補領域の数が最大となる方向が複数存在する場合には、この複数の方向のうち所定の優先順位に従って選択した一つの方向に特定画像の上方向が対応している候補領域以外の候補領域を、変形処理の対象から除外するとしてもよい。例えば、上下の向きが共通する候補領域の数が最大となる方向が複数存在し、かつ、この複数の方向の中に、サイズが最大の特定画像を有する候補領域が対応する方向が複数存在する場合に、上記優先順位に従って一つの方向を選択する。このように２重、３重の判断基準を設けておけば、変形処理部は確実に、特定画像の上下の向きがある一つの方向を略向いた候補領域だけを対象として変形処理を行なうことが可能となる。
【００１８】
他の例として、除外判別部は、候補領域の数が所定のしきい値を超える場合には、当該しきい値に収まる数の候補領域を特定画像のサイズに従って選択するとともに選択外の候補領域について、変形処理の対象から除外するとしてもよい。変形処理の対象とする候補領域の数が増えれば処理負担は当然に増大するため、変形処理の対象とする候補領域の数は、所定の数（しきい値）以内とする。例えば、当該しきい値に収まる数の候補領域を、特定画像のサイズの大きい順に選択すれば、対象画像上において重要度がより高いと想定される特定画像を変形の対象とすることができる。
【００１９】
ここで、候補領域設定部は、対象画像上の顔画像を上記特定画像として検出するとともに、検出した顔画像に基づき顔画像毎の候補領域を設定する。このようにすれば、対象画像から検出された顔画像に基づき設定された候補領域のうち、上述した除外の条件に従って除外された候補領域以外の候補領域を対象として、変形処理を行うことができる。
変形処理部は、変形対象の候補領域内に複数の分割点を配置し、分割点同士を結ぶ直線を用いて当該領域を複数の小領域に分割するとともに、少なくとも一つの分割点の位置を移動して小領域を変形することにより画像の変形を行うとしてもよい。このように、最終的に変形対象となった候補領域内に分割点を配置し、配置された分割点を移動するだけで画像変形を行うことができるため、多様な変形態様に対応した画像変形の画像処理を、容易に、かつ効率的に実現することができる。
さらに上記画像処理装置は、上記画像の変形が行われた対象画像を印刷する印刷部を備えるとしてもよい。このようにすれば、多様な変形態様に対応した画像変形後の画像の印刷を、容易かつ効率的に実現することができる。
【００２０】
これまでは、本発明にかかる技術的思想を画像処理装置として説明したが、上述した画像処理装置が備える各手段に対応した工程を備えた画像処理方法の発明、さらには、上述した画像処理装置が備える各手段に対応した機能をコンピュータに実行させる画像処理プログラムの発明をも把握可能であることは、言うまでも無い。
【図面の簡単な説明】
【００２１】
【図１】画像処理装置としてのプリンタ１００の構成を概略的に示す説明図。
【図２】画像の一覧表示を含むユーザインターフェースの一例を示す説明図。
【図３】プリンタ１００による顔形状補正印刷処理の流れを示すフローチャート。
【図４】顔形状補正処理の流れを示すフローチャート。
【図５】画像変形のタイプおよび度合いを設定するためのユーザインターフェースの一例を示す説明図。
【図６】顔領域ＦＡの検出結果の一例を示す説明図。
【図７】顔領域ＦＡの高さ方向の位置調整処理の流れを示すフローチャート。
【図８】特定領域ＳＡの一例を示す説明図。
【図９】評価値の算出方法の一例を示す説明図。
【図１０】評価対象画素ＴＰの選択方法の一例を示す説明図。
【図１１】高さ基準点Ｒｈの決定方法の一例を示す説明図。
【図１２】概略傾き角ＲＩの算出方法の一例を示す説明図。
【図１３】顔領域ＦＡの高さ方向の位置調整方法の一例を示す説明図。
【図１４】顔領域ＦＡの傾き調整処理の流れを示すフローチャート。
【図１５】顔領域ＦＡの傾き調整のための評価値の算出方法の一例を示す説明図。
【図１６】各評価方向についての評価値の分散の算出結果の一例を示す説明図。
【図１７】顔領域ＦＡの傾き調整方法の一例を示す説明図。
【図１８】変形領域ＴＡの設定方法の一例を示す説明図。
【図１９】変形領域ＴＡの小領域への分割方法の一例を示す説明図。
【図２０】分割点移動テーブル４２０の内容の一例を示す説明図。
【図２１】分割点移動テーブル４２０に従った分割点Ｄの位置の移動の一例を示す説明図。
【図２２】変形処理部２６０による画像の変形処理方法の概念を示す説明図。
【図２３】三角形領域における画像の変形処理方法の概念を示す説明図。
【図２４】本実施例における顔形状補正の態様を示す説明図。
【図２５】顔形状補正後の対象画像ＴＩが表示された表示部１５０の状態の一例を示す説明図。
【図２６】補正画像印刷処理の流れを示すフローチャート。
【図２７】除外判別処理の内容の一例を示すフローチャート。
【図２８】除外判別処理の一部の詳細内容の一例を示すフローチャート。
【図２９】顔領域ＦＡと垂直基準線Ｖｓまたは水平基準線Ｈｓとがなす角度を取得する様子を示した説明図。
【図３０】顔領域サイズ上限値テーブル４３０の一例を示した図。
【図３１】対象画像ＴＩ上におけるトリミング範囲と変形領域ＴＡとの位置関係を例示した説明図。
【図３２】対象画像ＴＩ上における所定の角度範囲と変形領域ＴＡとを例示した説明図。
【図３３】除外判別処理の一部の詳細内容の一例を示すフローチャート。
【図３４】対象画像ＴＩに異なる向きの複数の変形領域ＴＡが設定されている状態を例示する説明図。
【図３５】対象画像ＴＩに異なる向きの複数の変形領域ＴＡが設定されている状態を例示する説明図。
【図３６】対象画像ＴＩに異なる向きの複数の変形領域ＴＡが設定されている状態を例示する説明図。
【図３７】除外判別処理の一部の詳細内容の一例を示すフローチャート。
【図３８】対象画像ＴＩに互いに重なる複数の変形領域ＴＡが設定されている状態を例示する説明図。
【図３９】変形領域ＴＡの一部範囲を例示する説明図。
【発明を実施するための形態】
【００２２】
下記の順序に従って本発明の実施例を説明する。
（１）画像処理装置の概略構成：
（２）顔形状補正印刷処理：
（２‐１）対象画像の選択から変形領域の設定まで：
（２‐２）変形領域の除外処理：
（２‐３）変形領域の分割から印刷処理まで：
（３）追加の説明および他の実施例：
【００２３】
（１）画像処理装置の概略構成：
図１は、本発明にかかる画像処理装置の一例としてのプリンタ１００の構成を、概略的に示す説明図である。プリンタ１００は、記録メディア（例えば、メモリカードＭＣ等）から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したスタンドアローンタイプのカラーインクジェットプリンタである。またプリンタ１００は、印刷機能以外にも、コピー機能（不図示）やスキャナ機能（不図示）など、多種の機能を備えた装置である。この意味でプリンタ１００は、いわゆる複合機とも呼べる。
【００２４】
プリンタ１００は、プリンタ１００の各部を制御するＣＰＵ１１０と、例えばＲＯＭやＲＡＭによって構成された内部メモリ１２０と、ボタンやタッチパネルにより構成された操作部１４０と、液晶ディスプレイにより構成された表示部１５０と、プリンタエンジン１６０と、カードインターフェース（カードＩ／Ｆ）１７０等を備える。プリンタ１００は、さらに、他の機器（例えばデジタルスチルカメラ）とのデータ通信を行うためのインターフェースを備えているとしてもよい。プリンタ１００の各構成要素は、バスを介して互いに接続されている。
【００２５】
プリンタエンジン１６０は、印刷データに基づき印刷を行う印刷機構である。カードインターフェース１７０は、カードスロット１７２に挿入されたメモリカードＭＣとの間でデータのやり取りを行うためのインターフェースである。本実施例では、メモリカードＭＣにＲＧＢデータとしての画像データが格納されており、プリンタ１００は、カードインターフェース１７０を介してメモリカードＭＣに格納された画像データの取得を行う。
【００２６】
内部メモリ１２０には、顔形状補正部２００と、表示処理部３１０と、印刷処理部３２０とが格納されている。顔形状補正部２００は、所定のオペレーティングシステムの下で、後述する顔形状補正処理を実行するためのコンピュータプログラムである。表示処理部３１０は、表示部１５０を制御して、表示部１５０上に処理メニューやメッセージを表示させるディスプレイドライバである。印刷処理部３２０は、画像データから印刷データを生成し、プリンタエンジン１６０を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。ＣＰＵ１１０は、内部メモリ１２０から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
【００２７】
顔形状補正部２００は、プログラムモジュールとして、変形態様設定部２１０と、顔領域検出部２２０と、顔領域調整部２３０と、変形領域設定部２４０と、除外判別部２７０と、変形領域分割部２５０と、変形処理部２６０と、を含んでいる。変形態様設定部２１０は、指定取得部２１２を含んでいる。顔領域調整部２３０は、基準領域設定部２３２と、評価部２３４と、決定部２３６と、を含んでいる。これらの各部の機能については、後述の顔形状補正印刷処理の説明において詳述する。
【００２８】
内部メモリ１２０には、また、顔領域サイズ上限値テーブル４３０と、分割点配置パターンテーブル４１０と、分割点移動テーブル４２０とが格納されている。顔領域サイズ上限値テーブル４３０、分割点配置パターンテーブル４１０および分割点移動テーブル４２０の内容についても、後述の顔形状補正印刷処理の説明において詳述する。
【００２９】
（２）顔形状補正印刷処理：
プリンタ１００は、メモリカードＭＣに格納された画像データに基づき、画像の印刷を行う。カードスロット１７２にメモリカードＭＣが挿入されると、表示処理部３１０により、メモリカードＭＣに格納された画像の一覧表示を含むユーザインターフェースが表示部１５０に表示される。
【００３０】
図２は、画像の一覧表示を含むユーザインターフェースの一例を示す説明図である。画像の一覧表示は、例えば、メモリカードＭＣに格納された画像データ（画像ファイル）に含まれるサムネイル画像を用いて実現される。プリンタ１００は、図２に示すユーザインターフェースにおいて、ユーザにより、１つ（または複数）の画像が選択されると共に通常印刷ボタンが選択されると、選択された画像を通常通り印刷する通常印刷処理を実行する。他方、当該ユーザインターフェースにおいて、ユーザにより、１つ（または複数）の画像が選択されると共に顔形状補正印刷ボタンが選択されると、プリンタ１００は、選択された画像について、画像中の顔の形状を補正して補正後の画像を印刷する顔形状補正印刷処理を実行する。
【００３１】
図３は、本実施例のプリンタ１００による顔形状補正印刷処理の流れを示すフローチャートである。
ステップＳ（以下、ステップの表記を省略。）１００では、顔形状補正部２００（図１）が、顔形状補正処理を実行する。顔形状補正処理は、画像中に顔が存在する場合に、当該顔について補正するか否かを所定の条件に基づいて判別し、補正すると判別した場合に、当該顔の少なくとも一部の形状（例えば顔の輪郭形状や目の形状）を補正する処理である。
【００３２】
（２‐１）対象画像の選択から変形領域の設定まで：
図４は、本実施例における顔形状補正処理の流れを示すフローチャートである。
Ｓ１１０では、顔形状補正部２００（図１）が、顔形状補正処理の対象となる対象画像ＴＩを設定する。顔形状補正部２００は、図２に示したユーザインターフェースにおいてユーザにより選択された画像を対象画像ＴＩとして設定する。設定された対象画像ＴＩの画像データは、メモリカードＭＣからカードインターフェース１７０を介してプリンタ１００に取得され、内部メモリ１２０の所定領域に格納される。
【００３３】
Ｓ１２０では、変形態様設定部２１０（図１）が、顔形状補正のための画像変形のタイプと画像変形の度合いとを設定する。変形態様設定部２１０は、画像変形のタイプおよび度合いを設定するためのユーザインターフェースを表示部１５０に表示するように表示処理部３１０に指示し、当該ユーザインターフェースを通じてユーザにより指定された画像変形のタイプおよび度合いを選択し、処理に使用する画像変形タイプおよび度合いとして設定する。
【００３４】
図５は、画像変形のタイプおよび度合いを設定するためのユーザインターフェースの一例を示す説明図である。図５に示すように、このユーザインターフェースには、画像変形タイプを設定するためのインターフェースが含まれている。本実施例では例えば、顔の形状をシャープにする変形タイプ「タイプＡ」や、目の形状を大きくする変形タイプ「タイプＢ」等が選択肢として予め設定されているものとする。ユーザは、このインターフェースを介して画像変形のタイプを指定する。変形態様設定部２１０は、ユーザにより指定された画像変形タイプを、実際の処理に使用する画像変形タイプとして設定する。
【００３５】
また、図５に示すユーザインターフェースには、画像変形の度合い（程度）を設定するためのインターフェースが含まれている。図５に示すように、本実施例では、画像変形の度合いとして、強（Ｓ）、中（Ｍ）、弱（Ｗ）の３段階が選択肢として予め設定されているものとする。ユーザは、このインターフェースを介して画像変形の度合いを指定する。変形態様設定部２１０は、ユーザにより指定された画像変形の度合いを、実際の処理に使用する画像変形の度合いとして設定する。
【００３６】
なお本実施例では、ユーザによる変形態様の詳細指定が可能となっている。図５に示すユーザインターフェースにおいて、ユーザにより、詳細指定を希望する旨のチェックボックスにチェックが入れられた場合には、ユーザによる変形態様の詳細指定がなされる。
ただし以降では、画像変形のタイプとして顔の形状をシャープにするための変形タイプ「タイプＡ」が設定され、画像変形の度合いとして程度「中」の度合いが設定され、ユーザによる詳細指定の希望はなかったものとして説明を行う。
【００３７】
Ｓ１３０では、顔領域検出部２２０（図１）が、対象画像ＴＩにおける顔領域（顔画像）ＦＡの検出を行う。ここで、顔領域ＦＡとは、対象画像ＴＩ上の画像領域であって、少なくとも顔の一部の画像が含まれる領域を意味している。顔領域ＦＡは、特許請求の範囲に記載した特定画像の一例に該当する。顔領域検出部２２０による顔領域ＦＡの検出は、例えばテンプレートを利用したパターンマッチングによる方法（特開２００４‐３１８２０４参照）といった公知の顔検出方法を用いて実行される。
【００３８】
図６は、顔領域ＦＡの検出結果の一例を示す説明図である。図６に示すように、本実施例で用いた顔検出方法によると、対象画像ＴＩ上の目と鼻と口の画像を含む矩形の領域が顔領域ＦＡとして検出される。顔領域ＦＡは正方形であってもよい。図６に示した基準線ＲＬは、顔領域ＦＡの高さ方向（上下方向）を定義すると共に、顔領域ＦＡの幅方向（左右方向）の中心を示す線である。すなわち、基準線ＲＬは、矩形の顔領域ＦＡの重心を通り、顔の略上下方向に沿った矩形の境界線に平行な直線である。Ｓ１３０において、顔領域ＦＡが検出されなかった場合には、その旨が表示部１５０を通じてユーザに通知される。この場合には、顔形状補正を伴わない通常印刷が行われるとしてもよいし、他の顔検出方法を用いた顔領域ＦＡの再度の検出処理が行われるとしてもよい。
【００３９】
ここで、一般に、テンプレートを利用したパターンマッチングによる方法等の公知の顔検出方法は、顔全体や顔の部位（目や口等）について位置や傾き（角度）を詳細に検出するものではなく、対象画像ＴＩ中から顔の画像が概ね含まれると考えられる領域を顔領域ＦＡとして設定するものである。他方、本実施例のプリンタ１００は、後述するように、検出された顔領域ＦＡに基づいて顔形状補正のための画像変形処理を施す領域（後述の変形領域ＴＡ）を設定する。顔の画像は、一般に、観察者の注目度が高いため、設定された変形領域ＴＡと顔の画像との位置や角度の関係によっては、顔形状補正後の画像が不自然なものとなる可能性がある。そこで、本実施例では、より自然で好ましい顔形状補正が実現されるように、Ｓ１３０で検出された顔領域ＦＡについて、以下に説明する位置調整および傾き調整を行うものとしている。
【００４０】
Ｓ１４０では、顔領域調整部２３０（図１）が、Ｓ１３０で検出された顔領域ＦＡの上下方向の位置調整を行う。顔領域ＦＡの上下方向の位置調整とは、顔領域ＦＡの基準線ＲＬ（図６参照）に沿った位置を調整して、対象画像ＴＩにおける顔領域ＦＡを再設定することを意味している。
【００４１】
図７は、本実施例における顔領域ＦＡの上下方向の位置調整処理の流れを示すフローチャートである。Ｓ１４１では、基準領域設定部２３２（図１）が、基準領域ＳＡを設定する。ここで、基準領域ＳＡとは、対象画像ＴＩ上の領域であって、顔領域ＦＡの上下方向の位置調整を実行する際に参照する所定の参照被写体の画像を含む領域である。本実施例では、参照被写体は「目」と設定され、基準領域ＳＡは「目」の画像を含む領域として設定される。
【００４２】
図８は、基準領域ＳＡの一例を示す説明図である。本実施例では、基準領域設定部２３２が、基準領域ＳＡを顔領域ＦＡとの関係に基づいて設定する。具体的には、顔領域ＦＡの大きさを、基準線ＲＬに直行する方向および基準線ＲＬに平行な方向に、所定比率で縮小（または拡大）した大きさの領域であって、顔領域ＦＡの位置と所定の位置関係を有する領域が、基準領域ＳＡとして設定される。すなわち、本実施例では、顔領域検出部２２０により検出された顔領域ＦＡとの関係に基づき基準領域ＳＡを設定すれば、基準領域ＳＡが両方の目の画像を含む領域となるように、上記所定比率や所定の位置関係が予め設定されている。なお、基準領域ＳＡは、目の画像とまぎらわしい画像（例えば髪の毛の画像）がなるべく含まれないように、両目の画像を含む限りにおいて、なるべく小さい領域として設定されることが好ましい。
【００４３】
また、図８に示すように、基準領域ＳＡは、基準線ＲＬに対して対称な矩形形状の領域として設定される。基準領域ＳＡは、基準線ＲＬにより、向かって左側の領域（以下「左分割領域ＳＡ（ｌ）」とも呼ぶ）と、向かって右側の領域（以下「右分割領域ＳＡ（ｒ）」とも呼ぶ）とに分割される。基準領域ＳＡは、左分割領域ＳＡ（ｌ）と右分割領域ＳＡ（ｒ）とのそれぞれに片目の画像が含まれるように設定される。
Ｓ１４２では、評価部２３４（図１）が、基準領域ＳＡにおける目の画像の位置を検出するための評価値を算出する。
【００４４】
図９は、評価値の算出方法の一例を示す説明図である。本実施例では、ＲＧＢ画像データとしての対象画像ＴＩの各画素のＲ値（Ｒ成分値）が評価値の算出に用いられる。これは、肌の部分の画像と目の部分の画像とではＲ値の差が大きいため、Ｒ値を評価値の算出に用いることにより、目の画像の検出精度を向上させることができると考えられるからである。また、本実施例では、対象画像ＴＩのデータがＲＧＢデータとして取得されているため、Ｒ値を評価値の算出に用いることにより、評価値の算出の効率化を図ることができるからでもある。なお、図９に示すように、評価値の算出は、２つの分割領域（右分割領域ＳＡ（ｒ）および左分割領域ＳＡ（ｌ））のそれぞれについて個別に行われる。
【００４５】
評価部２３４は、図９に示すように、各分割領域（右分割領域ＳＡ（ｒ）および左分割領域ＳＡ（ｌ））内に、基準線ＲＬと直行するｎ本の直線（以下「対象画素特定線ＰＬ１〜 ＰＬｎ」と呼ぶ）を設定する。対象画素特定線ＰＬ１〜 ＰＬｎは、分割領域の高さ（基準線ＲＬに沿った大きさ）を（ｎ＋１）等分する直線である。すなわち、対象画素特定線ＰＬ同士の間隔は、すべて等間隔ｓである。評価部２３４は、対象画素特定線ＰＬ１〜 ＰＬｎのそれぞれについて、対象画像ＴＩを構成する画素の中から評価値の算出に用いる画素（以下「評価対象画素ＴＰ」と呼ぶ）を選択する。
【００４６】
図１０は、評価対象画素ＴＰの選択方法の一例を示す説明図である。評価部２３４は、対象画像ＴＩを構成する画素の内、対象画素特定線ＰＬと重なる画素を評価対象画素ＴＰとして選択する。図１０（ａ）は、対象画素特定線ＰＬが対象画像ＴＩの画素の行方向（図１０のＸ方向）と平行である場合を示している。この場合には、各対象画素特定線ＰＬと重なる画素行上の画素（図１０（ａ）において○印を付した画素）が、各対象画素特定線ＰＬについての評価対象画素ＴＰとして選択される。
【００４７】
一方、顔領域ＦＡの検出方法や基準領域ＳＡの設定方法によっては、図１０（ｂ）に示すように、対象画素特定線ＰＬが対象画像ＴＩの画素の行方向（Ｘ方向）と平行とはならない場合も生ずる。このような場合にも、原則として、各対象画素特定線ＰＬと重なる画素が、各対象画素特定線ＰＬについての評価対象画素ＴＰとして選択される。ただし、例えば図１０（ｂ）における対象画素特定線ＰＬ１と画素ＰＸａおよび画素ＰＸｂとの関係のように、ある対象画素特定線ＰＬが、対象画像ＴＩの画素マトリクスの同一列に位置する（すなわちＹ座標が同一の）２つの画素と重なる場合には、重なり部分の距離のより短い方の画素（例えば画素ＰＸｂ）は評価対象画素ＴＰから除外される。すなわち、各対象画素特定線ＰＬについて、画素マトリクスの１つの列からは１つの画素のみが評価対象画素ＴＰとして選択される。
【００４８】
なお、対象画素特定線ＰＬの傾きが、Ｘ方向に対して４５度を超える場合には、上記説明において画素マトリクスの列と行との関係が逆転し、画素マトリクスの１つの行から１つの画素のみが評価対象画素ＴＰとして選択されることとなる。また、対象画像ＴＩと基準領域ＳＡとの大きさの関係によっては、１つの画素が複数の対象画素特定線ＰＬについての評価対象画素ＴＰとして選択される場合もある。
【００４９】
評価部２３４は、対象画素特定線ＰＬのそれぞれについて、評価対象画素ＴＰのＲ値の平均値を評価値として算出する。ただし、本実施例では、各対象画素特定線ＰＬについて、選択された複数の評価対象画素ＴＰの内、Ｒ値の大きい一部の画素を評価値の算出対象から除外するものとしている。具体的には、例えば、ある対象画素特定線ＰＬについてｋ個の評価対象画素ＴＰが選択された場合、評価対象画素ＴＰが、Ｒ値の比較的大きい０．７５ｋ個の画素により構成される第１グループと、比較的Ｒ値の小さい０．２５ｋ個の画素により構成される第２グループとの２グループに分けられ、第２グループに属する画素のみが評価値としてのＲ値の平均値の算出対象となる。このように一部の評価対象画素ＴＰを評価値の算出対象から除外する理由については後述する。
【００５０】
以上のように、本実施例では、評価部２３４により各対象画素特定線ＰＬについての評価値が算出される。ここで、対象画素特定線ＰＬは基準線ＲＬに直行する直線であるため、評価値は、基準線ＲＬに沿った複数の位置（評価位置）について算出されると表現することができる。また、評価値は、各評価位置について、基準線ＲＬに直行する方向に沿った画素値の分布の特徴を表す値と表現することができる。
【００５１】
Ｓ１４３では、決定部２３６（図１）が、基準領域ＳＡにおける目の位置を検出し、検出結果に基づき高さ基準点Ｒｈを決定する。まず、決定部２３６は、図９の右側に示すように、各分割領域について、基準線ＲＬに沿った評価値（Ｒ値の平均値）の分布を表す曲線を作成し、評価値が極小値をとる基準線ＲＬ方向に沿った位置を目の位置Ｅｈとして検出する。なお、左分割領域ＳＡ（ｌ）における目の位置ＥｈをＥｈ（ｌ）と表し、右分割領域ＳＡ（ｒ）における目の位置ＥｈをＥｈ（ｒ）と表わす。
【００５２】
黄色人種の場合、分割領域中の肌の画像を表す部分はＲ値が大きい一方、目（より詳細には目の中央の黒目部分）の画像を表す部分はＲ値が小さいと考えられる。そのため、上述のように、評価値（Ｒ値の平均値）が極小値をとる基準線ＲＬに沿った位置を目の位置Ｅｈと判断することが可能となる。なお、図９に示すように、分割領域には、目の画像以外にもＲ値の小さい他の画像（例えば、眉や髪の毛の画像）が含まれている場合もある。そのため、決定部２３６は、基準線ＲＬに沿った評価値の分布を表す曲線が複数の極小値をとる場合には、所定の判断基準に基づいて、一つの極小値に対応する位置を目の位置Ｅｈと判断する。例えば、複数の極小値に対応する基準線ＲＬ上の各位置のうち、基準領域ＳＡ内の基準線ＲＬの中心位置に最も近い位置を目の位置Ｅｈとする。これは、上述したように基準領域ＳＡは目の画像を含むなるべく小さい領域として設定されているため、目の位置は、基準領域ＳＡ内における基準線ＲＬの中心位置に近く、一方、眉や髪の毛は各分割領域の境界線付近に位置していると想定されるからである。
【００５３】
また、上記曲線が、目の画像の位置以外であっても、評価値が大きいながらも極小値をとる可能性があるため、極小値の内、所定の閾値より大きいものは無視するものとしてもよい。あるいは、単純に、各対象画素特定線ＰＬについて算出された評価値の内の最小値に対応した対象画素特定線ＰＬの位置を目の位置Ｅｈとしてもよい。
【００５４】
なお、本実施例では、顔において周囲との色の差が比較的大きいと考えられる部位である目（目の中央の黒目部分）を顔領域ＦＡの位置調整の参照被写体として用いている。しかし、評価値としてのＲ値の平均値は、対象画素特定線ＰＬ上の複数の評価対象画素ＴＰを対象として算出されるため、例えば、黒目の周縁の白目部分の画像の影響により、黒目部分の検出の精度が低下する怖れがある。本実施例では、上述したように、参照被写体とは色の差が大きいと考えられる一部の評価対象画素ＴＰ（例えば上述した第１のグループに属する比較的Ｒ値の大きい画素）を評価値の算出対象から除外することにより、参照被写体の検出精度をより向上させている。
次に、決定部２３６は、検出された目の位置Ｅｈに基づき高さ基準点Ｒｈを決定する。
【００５５】
図１１は、高さ基準点Ｒｈの決定方法の一例を示す説明図である。高さ基準点Ｒｈは、顔領域ＦＡの高さ方向の位置調整の際に、基準として用いられる点である。本実施例では、図１１に示すように、左右２つの目の位置Ｅｈ（ｌ）およびＥｈ（ｒ）の中間に位置する基準線ＲＬ上の点が高さ基準点Ｒｈとして設定される。すなわち、左の目の位置Ｅｈ（ｌ）を示す直線ＥｈＬ（ｌ）と基準線ＲＬとの交点と、右の目の位置Ｅｈ（ｒ）を示す直線ＥｈＬ（ｒ）と基準線ＲＬとの交点と、の中点が、高さ基準点Ｒｈとして設定される。
本実施例では、決定部２３６が、検出された目の位置Ｅｈに基づき、顔画像の概略の傾き角（以下「概略傾き角ＲＩ」と呼ぶ）を算出するものとしている。顔画像の概略傾き角ＲＩは、対象画像ＴＩ中の顔の画像が、顔領域ＦＡの基準線ＲＬに対して概ねどれぐらい傾いているかを推定した角度である。
【００５６】
図１２は、概略傾き角ＲＩの算出方法の一例を示す説明図である。図１２に示すように、決定部２３６は、まず、左分割領域ＳＡ（ｌ）の幅Ｗｓ（ｌ）を半分に分割する直線と直線ＥｈＬ（ｌ）との交点ＩＰ（ｌ）と、右分割領域ＳＡ（ｒ）の幅Ｗｓ（ｒ）を半分に分割する直線と直線ＥｈＬ（ｒ）との交点ＩＰ（ｒ）とを決定する。そして、交点ＩＰ（ｌ）と交点ＩＰ（ｒ）とを結ぶ直線に直交する直線ＩＬと、基準線ＲＬとのなす角が、概略傾き角ＲＩとして算出される。
Ｓ１４４では、顔領域調整部２３０（図１）が、顔領域ＦＡの上下方向の位置調整を行う。
【００５７】
図１３は、顔領域ＦＡの高さ方向の位置調整方法の一例を示す説明図である。顔領域ＦＡの高さ方向の位置調整は、高さ基準点Ｒｈが、位置調整後の顔領域ＦＡにおける所定の位置に位置することとなるように、顔領域ＦＡを再設定することにより行う。具体的には、図１３に示すように、高さ基準点Ｒｈが、顔領域ＦＡについての上下方向の長さＨｆを所定の比率ｒ１対ｒ２で分けるような位置に位置することとなるように、顔領域ＦＡを定義する矩形枠が基準線ＲＬに沿って位置調整される。図１３の例では、破線で示した調整前の顔領域ＦＡを顔の上方向に移動することにより、実線で示した調整後の顔領域ＦＡが再設定されている。
【００５８】
顔領域ＦＡの位置調整の後、Ｓ１５０（図４）では、顔領域調整部２３０（図１）が、顔領域ＦＡの傾き調整（角度調整）を行う。ここで、顔領域ＦＡの傾き調整とは、対象画像ＴＩにおける顔領域ＦＡの傾きを顔の画像の傾きに適合するように調整して、顔領域ＦＡを再設定することを意味している。本実施例では、顔領域ＦＡの傾き調整を実行する際に参照する所定の参照被写体は、「両目」と設定されている。本実施例における顔領域ＦＡの傾き調整では、傾き調整の調整角度の選択肢を表す複数の評価方向が設定され、各評価方向に対応した評価基準領域ＥＳＡが両目の画像を含む領域として設定される。そして、各評価方向について評価基準領域ＥＳＡの画像の画素値に基づき評価値が算出され、評価値に基づき決定される傾き調整の調整角度を用いて顔領域ＦＡの傾きが調整される。
【００５９】
図１４は、本実施例における顔領域ＦＡの傾き調整処理の流れを示すフローチャートである。
図１５は、顔領域ＦＡの傾き調整のための評価値の算出方法の一例を示す説明図である。
Ｓ１５１では、基準領域設定部２３２（図１）が、初期評価基準領域ＥＳＡ（０）を設定する。初期評価基準領域ＥＳＡ（０）は、顔領域ＦＡの位置調整後の基準線ＲＬ（図１３参照）と平行な方向（以下「初期評価方向」とも呼ぶ）に対応付けられた評価基準領域ＥＳＡである。本実施例では、位置調整後の顔領域ＦＡに対応した基準領域ＳＡ（図１３参照）が、そのまま初期評価基準領域ＥＳＡ（０）として設定される。なお、評価基準領域ＥＳＡは、顔領域ＦＡの位置調整時の基準領域ＳＡとは異なり、左右２つの領域に分割されることはない。図１５の最上段には、設定された初期評価基準領域ＥＳＡ（０）が示されている。
【００６０】
Ｓ１５２では、基準領域設定部２３２（図１）が、複数の評価方向と各評価方向に対応した評価基準領域ＥＳＡとを設定する。複数の評価方向は、傾き調整の調整角度の選択肢を表す方向として設定される。本実施例では、基準線ＲＬとのなす角が所定の範囲内である複数の評価方向線ＥＬが設定され、評価方向線ＥＬと平行な方向が評価方向として設定される。図１５に示すように、基準線ＲＬを初期評価基準領域ＥＳＡ（０）の中心点（重心）ＣＰを中心として反時計回りおよび時計回りに所定の角度α刻みで回転させることにより定まる直線が、複数の評価方向線ＥＬとして設定される。なお、基準線ＲＬとのなす角がφ度である評価方向線ＥＬをＥＬ（φ）と表す。
【００６１】
本実施例では、上述した各評価方向線ＥＬと基準線ＲＬとのなす角についての所定の範囲は±２０度と設定される。本明細書では、基準線ＲＬを時計回りに回転させたときの回転角を負の値で表し、基準線ＲＬを反時計回りに回転させたときの回転角を正の値で表す。基準領域設定部２３２は、基準線ＲＬを反時計回りおよび時計回りにα度、２α度・・・と２０度を超えない範囲で回転角を増加させつつ回転させ、複数の評価方向線ＥＬを設定する。図１５には、基準線ＲＬをα度，２α度，−α度回転させることによりそれぞれ定まる評価方向線ＥＬ（ＥＬ（α），ＥＬ（２α），ＥＬ（−α））が示されている。なお、基準線ＲＬは、評価方向線ＥＬ（０）とも表現できる。
【００６２】
各評価方向を表す評価方向線ＥＬに対応した評価基準領域ＥＳＡは、初期評価基準領域ＥＳＡ（０）を、中心点ＣＰを中心として、評価方向線ＥＬの設定時の回転角と同じ角度で回転させた領域である。評価方向線ＥＬ（φ）に対応した評価基準領域ＥＳＡは、評価基準領域ＥＳＡ（φ）と表される。図１５には、評価方向線ＥＬ（α），ＥＬ（２α），ＥＬ（−α）のそれぞれに対応した評価基準領域ＥＳＡ（ＥＳＡ（α），ＥＳＡ（２α），ＥＳＡ（−α））が示されている。なお、初期評価基準領域ＥＳＡ（０）も評価基準  領域ＥＳＡの１つとして扱われるものとする。
【００６３】
Ｓ１５３では、評価部２３４（図１）が、複数の評価方向のそれぞれについて、評価基準領域ＥＳＡの画像の画素値に基づき評価値を算出する。本実施例では、顔領域ＦＡの傾き調整における評価値として、上述した顔領域ＦＡの位置調整における評価値と同様に、Ｒ値の平均値が用いられる。評価部２３４は、評価方向に沿った複数の評価位置についての評価値を算出する。
【００６４】
評価値の算出方法は、上述した顔領域ＦＡの位置調整における評価値の算出方法と同様である。すなわち、評価部２３４は、図１５に示すように、各評価基準領域ＥＳＡ内に、評価方向線ＥＬに直交する対象画素特定線ＰＬ１〜 ＰＬｎを設定し、各対象画素特定線ＰＬ１〜 ＰＬｎについて評価対象画素ＴＰを選択し、選択された評価対象画素ＴＰのＲ値の平均値を評価値として算出する。
【００６５】
評価基準領域ＥＳＡにおける対象画素特定線ＰＬの設定方法や評価対象画素ＴＰの選択方法は、領域を左右に分割するか否かの違いはあるものの、図９および図１０に示した顔領域ＦＡの位置調整における方法と同様である。なお、顔領域ＦＡの位置調整時と同様に、選択された評価対象画素ＴＰの内の一部（例えばｋ個の評価対象画素ＴＰの内のＲ値の比較的大きい０．７５ｋ個の画素）を評価値の算出対象から除外するとしてもよい。図１５の右側には、各評価方向について、算出された評価値の評価方向線ＥＬに沿った分布を示している。
【００６６】
なお、対象画素特定線ＰＬは評価方向線ＥＬに直行する直線であるため、評価値は、評価方向線ＥＬに沿った複数の位置（評価位置）について算出されると表現することができる。また、評価値は、各評価位置について、評価方向線ＥＬに直行する方向に沿った画素値の分布の特徴を表す値と表現することができる。
【００６７】
Ｓ１５４では、決定部２３６（図１）が、顔領域ＦＡの傾き調整に用いる調整角度を決定する。決定部２３６は、各評価方向について、Ｓ１５３において算出された評価値の評価方向線ＥＬに沿った分散を算出し、分散の値が最大となる評価方向を選択する。そして、選択された評価方向に対応した評価方向線ＥＬと基準線ＲＬとのなす角を、傾き調整に用いる調整角度として決定する。
【００６８】
図１６は、各評価方向についての評価値の分散の算出結果の一例を示す説明図である。図１６の例では、回転角がα度である評価方向において、分散が最大値Ｖｍａｘをとる。従って、α度、すなわち反時計回りにα度の回転角が、顔領域ＦＡの傾き調整に用いる調整角度として決定される。
【００６９】
評価値の分散の値が最大となるときの評価方向に対応した角度が傾き調整に用いる調整角度として決定される理由について説明する。図１５の上から２段目に示すように、回転角がα度であるときの評価基準領域ＥＳＡ（α）では、左右の目の中央部（黒目部分）の画像が、概ね対象画素特定線ＰＬに平行な方向（すなわち評価方向線ＥＬに直行する方向）に並ぶような配置となっている。また、このときには、左右の眉の画像も同様に、概ね評価方向線ＥＬに直行する方向に並ぶような配置となる。従って、このときの評価方向線ＥＬに対応した評価方向が、概ね顔の画像の傾きを表す方向であると考えられる。のときには、一般にＲ値が小さい目や眉の画像と一般にＲ値が大きい肌の部分の画像との位置関係が、対象画素特定線ＰＬの方向に沿って両者が重なる部分の小さい位置関係となる。そのため、目や眉の画像の位置における評価値は比較的小さくなり、肌の部分の画像の位置における評価値は比較的大きくなる。従って、評価方向線ＥＬに沿った評価値の分布は、図１５に示すように、比較的ばらつきの大きい（振幅の大きい）分布となり、分散の値は大きくなる。
【００７０】
一方、図１５中の最上段および３段目、４段目に示すように、回転角が０度，２α度，−α度であるときの評価基準領域ＥＳＡ（０），ＥＳＡ（２α），ＥＳＡ（−α）では、左右の目の中央部や左右の眉の画像が、評価方向線ＥＬに直行する方向に並ばず、ずれた配置となっている。従って、このときの評価方向線ＥＬに対応した評価方向は、顔の画像の傾きを表していはいない。このときには、目や眉の画像と肌の部分の画像との位置関係が、対象画素特定線ＰＬの方向に沿って両者が重なる部分の大きい位置関係となる。そのため、評価方向線ＥＬに沿った評価値の分布は、図１５に示すように、比較的ばらつきの小さい（振幅の小さい）分布となり、分散の値は小さくなる。
【００７１】
以上のように、評価方向が顔の画像の傾きの方向に近い場合には、評価方向線ＥＬに沿った評価値の分散の値が大きくなり、評価方向が顔の画像の傾きの方向から遠い場合には、評価方向線ＥＬに沿った評価値の分散の値が小さくなる。従って、評価値の分散の値が最大となるときの評価方向に対応した角度を傾き調整に用いる調整角度として決定すれば、顔領域ＦＡの傾きが顔の画像の傾きに適合するような顔領域ＦＡの傾き調整を実現することができる。
【００７２】
なお本実施例では、評価値の分散の算出結果が、角度の範囲の臨界値すなわち基準線ＲＬに対して−２０度または２０度において、最大値をとるような結果となった場合には、顔の傾きが正確に評価されていない可能性が高いと考えられるため、顔領域ＦＡの傾き調整を行わないものとしている。また本実施例では、決定された調整角度が、上述した顔領域ＦＡの位置調整の際に算出された概略傾き角ＲＩと比較される。調整角度と概略傾き角ＲＩとの差が所定の閾値より大きい場合には、顔領域ＦＡの位置調整および傾き調整における評価や決定の際に何らかの誤りが発生したと考えられるため、顔領域ＦＡの位置調整および傾き調整を行わないものとしている。
Ｓ１５５では、顔領域調整部２３０（図１）が、顔領域ＦＡの傾き調整を行う。
【００７３】
図１７は、顔領域ＦＡの傾き調整方法の一例を示す説明図である。顔領域ＦＡの傾き調整は、顔領域ＦＡを、初期評価基準領域ＥＳＡ（０）の中心点ＣＰを中心に、Ｓ１５４において決定された調整角度だけ回転させることにより行う。図１７の例では、破線で示した調整前の顔領域ＦＡを反時計回りにα度回転させることにより、実線で示した調整後の顔領域ＦＡが設定される。
顔領域ＦＡの傾き調整終了後のＳ１６０では、変形領域設定部２４０（図１）が、変形領域ＴＡを設定する。変形領域ＴＡは、対象画像ＴＩ上の領域であって顔形状補正のための画像変形処理の対象の候補となる領域である。この意味で、Ｓ１６０で設定する変形領域ＴＡは、特許請求の範囲に記載した候補領域の一例に該当する。
【００７４】
図１８は、変形領域ＴＡの設定方法の一例を示す説明図である。図１８に示すように、本実施例では、変形領域ＴＡは、顔領域ＦＡを基準線ＲＬと平行な方向（高さ方向）および基準線ＲＬに直行する方向（幅方向）に伸張（または短縮）した領域として設定される。具体的には、顔領域ＦＡの高さ方向の大きさをＨｆ、幅方向の大きさをＷｆとすると、顔領域ＦＡの矩形を、上方向にｋ１・Ｈｆ、下方向にｋ２・Ｈｆだけ伸ばすと共に、左右にそれぞれｋ３・Ｗｆだけ伸ばした領域が、変形領域ＴＡとして設定される。なお、ｋ１，ｋ２，ｋ３は、所定の係数である。
【００７５】
このように変形領域ＴＡが設定されると、顔領域ＦＡの高さ方向の輪郭線に平行な直線である基準線ＲＬは、変形領域ＴＡの高さ方向の輪郭線にも平行な直線となる。また、基準線ＲＬは、変形領域ＴＡの幅を半分に分割する直線となる。
【００７６】
図１８に示すように、変形領域ＴＡは、顔の高さ方向に関しては、概ね顎から額までの画像を含み、顔の幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち、本実施例では、変形領域ＴＡが概ねそのような範囲の画像を含む領域となるように、顔領域ＦＡの大きさとの関係に基づき、上述の係数ｋ１，ｋ２，ｋ３が予め設定されている。ここで変形領域設定部２４０は、特許請求の範囲に記載した候補領域設定部に該当すると言える。また、上述の顔領域検出部２２０と、顔領域調整部２３０と、変形領域設定部２４０とを合わせて候補領域設定部と呼ぶこともできる。
なお図６等では、対象画像ＴＩ中に一つだけ人顔が存在する場合を例示しているが、対象画像ＴＩ中に複数の顔が存在する場合には、上記Ｓ１３０〜１６０において、複数の顔が検出されて顔毎に、顔領域ＦＡの設定、顔領域ＦＡの位置調整・傾き調整、および変形領域ＴＡの設定が行われる。
【００７７】
（２‐２）変形領域の除外処理：
上記Ｓ１６０までの処理によって対象画像ＴＩ上における変形領域ＴＡの設定が行われたら、Ｓ１７０においては、除外判別部２７０（図１）が、後述する各種除外の条件に従って、変形領域ＴＡ毎に、変形処理の対象とする否かの判別を行い、変形処理の対象としないと判別した変形領域については変形処理の対象から除外する。つまり本実施例では、必ずしも上記Ｓ１６０までの処理によって設定された変形領域ＴＡの全てを、後述する画像変形の対象とする訳ではなく、設定された変形領域ＴＡのうち各種除外の条件に該当しないものだけを画像変形の対象とする。その結果、画像変形を行うことによるプリンタ１００の処理負担量および内部メモリ１２０等におけるメモリ領域の消費を、適切に抑制することができる。
【００７８】
図２７は、Ｓ１７０の処理内容を示したフローチャートの一例である。
Ｓ１７１では、第１の除外判別として、除外判別部２７０は変形領域ＴＡ毎に、顔領域ＦＡの傾きに応じたサイズ規制に従って、変形処理の対象から除外するか否かを判別する。
【００７９】
図２８は、Ｓ１７１の処理の詳細をフローチャートにより示している。
Ｓ１７１１では除外判別部２７０は、変形領域ＴＡ毎に、顔領域ＦＡの傾き及びサイズを取得する。当該Ｓ１７１１において取得する傾きとは、対象画像ＴＩの上下を向く垂直基準線Ｖｓあるいは対象画像ＴＩの水平方向を向く水平基準線Ｈｓと、顔領域ＦＡの基準線ＲＬと、がなす角度の大きさを言うものとする。
【００８０】
図２９は、Ｓ１７１１において、ある一つの変形領域ＴＡを対象として顔領域ＦＡの傾きを取得する様子を例示している。ここではまず、傾きを取得する際の比較の基準となる方向を垂直基準線Ｖｓとするか水平基準線Ｈｓとするかを決定する。この場合、基準線ＲＬが、垂直基準線Ｖｓと水平基準線Ｈｓとのいずれの側により傾いているかによって決定する。つまり対象画像ＴＩ上において、顔の上方向が対象画像ＴＩの略上側又は略下側を向いている場合には、垂直基準線Ｖｓが傾きを取得する際の基準となり、顔の上方向が対象画像ＴＩの略右側又は略左側を向いている場合には、水平基準線Ｈｓが傾きを取得する際の基準となる。
【００８１】
図２９に示した例では、基準線ＲＬは対象画像ＴＩの水平基準線Ｈｓよりも垂直基準線Ｖｓ側により傾いているため、Ｓ１７１１では、垂直基準線Ｖｓと基準線ＲＬとがなす角度βが顔領域ＦＡの傾きとして検出される。なお、当該角度βは、基準線ＲＬと垂直基準線Ｖｓ（あるいは水平基準線Ｈｓ）とがなす角度の大きさであるため、正の値として取得される。Ｓ１７１１では顔領域ＦＡのサイズの取得も行う。顔領域ＦＡのサイズとしては、顔領域ＦＡの面積など様々な値を用いることが可能である。本実施例では一例として、顔領域ＦＡの矩形の各辺のうち、高さ方向の辺の長さ（上記Ｈｆ）を顔領域ＦＡのサイズとする。この場合、対象画像ＴＩ上でのＨｆの長さを、対象画像ＴＩ上の画素数に換算して取得する。ただし、幅方向の辺の長さ（上記Ｗｆ）を顔領域ＦＡのサイズとして取得してもよいし、上述したように顔領域ＦＡを正方形とするならば顔領域ＦＡの４辺のうちいずれか１辺の長さを顔領域ＦＡのサイズとして取得するとしてもよい。
【００８２】
Ｓ１７１２では、除外判別部２７０は、顔領域サイズ上限値テーブル４３０（図１）を参照することにより、上記取得した顔領域ＦＡの傾きに応じた顔領域ＦＡのサイズの上限値を取得する。
図３０は、顔領域サイズ上限値テーブル４３０の一例を示している。顔領域サイズ上限値テーブル４３０では、上記のように取得される顔領域ＦＡの複数の傾きに関し、許容される顔領域ＦＡのサイズ（本実施例においては、顔領域ＦＡの高さ方向の辺の画素数）の上限値を予め規定したテーブルである。本実施例においては、顔領域ＦＡの上記傾きがある所定の上限角度（角度βＬと呼ぶ）に近づくほどに、その顔領域ＦＡを含む変形領域ＴＡの変形処理に要するメモリ消費量が増えるという事情（当該事情については後述する。）に鑑み、顔領域ＦＡの傾きを示す値が上記角度βＬに近づくほどにサイズの上限値を小さい値に規定した顔領域サイズ上限値テーブル４３０を採用している。
【００８３】
除外判別部２７０は、上記Ｓ１７１１で取得した傾き（角度β）に対応したサイズ上限値が顔領域サイズ上限値テーブル４３０に直接規定されていれば、当該直接規定されている上限値を読み出せばよい。一方、上記取得した傾き（角度β）に対応したサイズ上限値が顔領域サイズ上限値テーブル４３０に直接規定されていない場合には、規定されている他の上限値を基にした補間演算等によって、上記取得した傾き（角度β）に対応した上限値を取得すればよい。
【００８４】
Ｓ１７１３では、除外判別部２７０は、Ｓ１７１１で取得した顔領域ＦＡのサイズがＳ１７１２で取得したサイズ上限値内であるか否か判断し、上限値を超える場合には、当該上限値を超えるサイズを持つ顔領域ＦＡを有する変形領域ＴＡを、変形処理の対象から除外する決定をする。この結果、対象画像ＴＩ上での傾き（角度β）に起因して変形処理に要するメモリ消費量が多くなってしまう変形領域ＴＡを、変形処理の対象から除外することが可能となる。
【００８５】
次にＳ１７２では、第２の除外判別として、除外判別部２７０は、画像出力に用いられる複数のアスペクト比に基づく各トリミングによって対象画像ＴＩから切り出される各トリミング画像に共通する画像範囲から、変形領域ＴＡの少なくとも一部がはみ出るか否か判別し、少なくとも一部がはみ出る変形領域ＴＡについては変形処理の対象から除外する処理を行なう。当該判別は、上記Ｓ１７１において変形処理の対象から除外すると判別されなかった変形領域ＴＡ毎に行う。
【００８６】
本実施例では、プリンタ１００は、顔形状補正の処理を行う過程において、対象画像ＴＩを共通する一つのサイズの画像データとして扱っている。対象画像ＴＩの画像データは、例えば、長辺と短辺とが３２０×２４０画素（アスペクト比４：３）のＱＶＧＡ（Quarter Video Graphics Array）サイズの画像データとされている。一方、プリンタ１００において対象画像ＴＩの印刷に使用可能な印刷用紙の種類は、Ａ４サイズ、Ｌ版サイズ、レターサイズなど様々であり、印刷用紙の種類によってアスペクト比も様々である。従って、対象画像ＴＩが印刷される際には、その画像データが、印刷に用いるものとして選択された印刷用紙のアスペクト比に基づいて適宜トリミングされることになる。
【００８７】
図３１（ａ）は、対象画像ＴＩをある印刷用紙のアスペクト比に基づいてトリミングした場合を例示している。対象画像ＴＩを、対象画像ＴＩのアスペクト比とは異なるアスペクト比でトリミングすると、同図に示すように、対象画像ＴＩ上に設定された変形領域ＴＡの一部がトリミングの範囲外（ハッチングを記した部分）にはみ出てしまうこともあり得る。トリミングの範囲外にはみ出たデータ部分は切り捨てられるため、このように一部がトリミング範囲からはみ出る変形領域ＴＡに含まれる顔を変形処理するには、当該顔を含む変形領域ＴＡを、その全てがトリミングの範囲内に収まるように再度設定する（変形領域ＴＡの矩形の移動や縮小を行う）必要がある。しかしこのような変形領域ＴＡの再設定処理は、プリンタ１００における処理負担増およびメモリ消費量の増大を招く。
【００８８】
そこで、除外判別部２７０は、図３１（ｂ）に示すように、対象画像ＴＩ上に、プリンタ１００が使用可能な全ての印刷用紙のアスペクト比に基づいて夫々トリミングしたときに切り出される各トリミング画像に共通する、共通画像範囲ＣＡを設定する。図３１（ｂ）では説明を容易とするために、プリンタ１００が使用可能な印刷用紙のアスペクト比であって対象領域ＴＩのアスペクト比と異なるアスペクト比が全部で２種類であるとし、当該２つのアスペクト比によって夫々トリミングしたときに切り出されずに捨てられる対象画像ＴＩ上の領域に、ハッチングを施している。つまり、同図においてハッチングが付されていない対象画像ＴＩ上の領域が共通画像範囲ＣＡとなる。除外判別部２７０は、判別の対象となる変形領域ＴＡ毎に、共通画像範囲ＣＡからはみ出ていないか判断し、一部でも共通画像範囲ＣＡからはみ出ている変形領域ＴＡについては、変形処理の対象から除外する決定をする。
【００８９】
この結果、共通画像範囲ＣＡに全体が含まれる変形領域ＴＡのみが変形処理の対象となり得るため、上述したような変形領域ＴＡの再設定の必要性が無くなり、プリンタ１００における処理負担増およびメモリ消費量の増大を避けることができる。また、対象画像ＴＩ中の顔が、印刷に用いる印刷用紙の種類の違い（印刷用紙のアスペクト比の違い）によって変形処理されたりされなかったりするという状況も無くなるため、ユーザに違和感を与えることもない。
【００９０】
次にＳ１７３では、第３の除外判別として、除外判別部２７０は変形領域ＴＡについて、対象画像ＴＩ上における傾きが所定の角度範囲に属するか否か判別し、当該所定の角度範囲に属さないものについては、変形処理の対象から除外する処理を行なう。当該判別は、上記Ｓ１７１，１７２において変形処理の対象から除外すると判別されなかった変形領域ＴＡ毎に行う。
【００９１】
図３２は、上記所定の角度範囲の一例を示している。本実施例では、水平基準線Ｈｓの正方向（対象画像ＴＩの右方向。０度方向。）、垂直基準線Ｖｓの正方向（対象画像ＴＩの上方向。９０度方向。）、水平基準線Ｈｓの負方向（対象画像ＴＩの左方向。１８０度方向。）をそれぞれ中心として±１５度の範囲を、上記所定の角度範囲と定めている。むろん、上記所定の角度範囲の設定は上記数値に限られない。
当該Ｓ１７３では、除外判別部２７０は、判別対象となる変形領域ＴＡについて、その基準線ＲＬの傾きが上記所定の角度範囲に属するか否かを判別する。この判別の際には、除外判別部２７０は、基準線ＲＬの上下つまり基準線ＲＬの両端のうちどちらの側が顔の上方向を指しているかを認識する必要がある。
【００９２】
ここで、公知の顔検出方法によって顔領域ＦＡの検出を行った場合には、顔領域ＦＡの矩形の４つの頂点の夫々について、顔の右上の点であるか、顔の左上の点であるか、顔の右下の点であるか、顔の左下の点であるかといった情報を示した頂点位置情報を得ることができる。従って、例えば顔領域検出部２２０は、頂点位置情報を参照して顔領域ＦＡの右上の点と右下の点（或いは、左上の点と左下の点）を特定するとともに、基準線ＲＬの両端側のうち上記特定した右上の点（左上の点）に近い側を、基準線ＲＬの上方向として特定することができる。
【００９３】
基準線ＲＬの両端のうちどちらの側が顔の上方向を指しているかの特定は、次のように行っても良い。図７を用いて説明したように、上記Ｓ１４２では、評価部２３４が基準領域ＳＡにおける目の画像の位置を検出するための評価値を算出している。かかる評価値は、図９に示したように、目の位置Ｅｈにおいて一つの極小値をとるとともに、目以外のＲ成分が少ない位置、つまり眉や髪の毛の画像においても極小値をとる。そして、人顔において眉や髪の毛は、目よりも上側に存在すると言える。そこで上記決定部２３６は、上記高さ基準点Ｒｈを決定する処理と併せ、高さ基準点Ｒｈの位置から見て、目の位置に対応する極小値とは別の極小値に対応する基準線ＲＬ上の位置の側を、顔の上方向と特定する処理を行う。この結果、基準線ＲＬの両端のうちどちらの側が顔の上方向を指しているかが特定される。
【００９４】
このように変形領域ＴＡの基準線ＲＬの両端のうちどちらが顔の上方向を指しているかが特定されるため、除外判別部２７０はかかる特定結果に基づいて、判別対象となる変形領域ＴＡ毎に、対象画像ＴＩの右方向（０度方向）と基準線ＲＬの上方向とが反時計回りなす角度γが、図３２に例示したような所定の角度範囲に属するか否か判別し、角度γがいずれの所定の角度範囲にも属さない変形領域ＴＡについては、変形処理の対象から除外する決定をする。
このように、対象画像ＴＩ上における顔の傾きに基づいて、変形処理の対象とする顔をある程度限定することにより、プリンタ１００における処理負担増およびメモリ消費量の増大を避けることができる。
【００９５】
Ｓ１７４では、第４の除外判別として、除外判別部２７０は変形領域ＴＡについて、対象画像ＴＩ上における顔の上下の向きに基づいて、変形処理の対象とするか否かの判別を行い、ある一つの向き以外の向きに属するものについては、変形処理の対象から除外する処理を行なう。当該判別は、上記Ｓ１７１〜Ｓ１７３において変形処理の対象から除外すると判別されなかった変形領域ＴＡを対象に行う。
【００９６】
図３３は、Ｓ１７４の処理の詳細をフローチャートにより示している。
Ｓ１７４１では、除外判別部２７０は、まず、対象画像ＴＩ上の変形領域ＴＡを、顔の上下の向きの共通性に応じてグループ分けする。上記Ｓ１７３までの処理によって、対象画像ＴＩ上には、顔の上方向が対象画像ＴＩの略上側を向いている（上記角度γが対象画像ＴＩの上方向±１５度の範囲に属している）変形領域ＴＡのグループと、顔の上方向が対象画像ＴＩの略右側を向いている（上記角度γが対象画像ＴＩの右方向±１５度の範囲に属している）変形領域ＴＡのグループと、顔の上方向が対象画像ＴＩの略左側を向いている（上記角度γが対象画像ＴＩの左方向±１５度の範囲に属している）変形領域ＴＡのグループとが存在し得る。また、Ｓ１７３の処理の精度次第では、稀に顔の上方向が対象画像ＴＩの略下側を向いている（上記角度γが垂直基準線Ｖｓの負方向±１５度の範囲に属している）変形領域ＴＡも存在し得る。
【００９７】
除外判別部２７０は、対象画像ＴＩ上の変形領域ＴＡを、それらの基準線ＲＬの上方向が向く角度γに応じて、上記のような上下左右の各グループに分ける。
Ｓ１７４２では、除外判別部２７０は、属する変形領域ＴＡの数が最大であるグループが、複数存在するか否か判断する。属する変形領域ＴＡの数が最大であるグループが一つである場合には、Ｓ１７４３に進み、属する変形領域ＴＡの数が最大であるグループに属する変形領域ＴＡ以外の変形領域ＴＡについて、変形処理の対象から除外する決定をする。
【００９８】
図３４に例示するように対象画像ＴＩ上に複数の変形領域ＴＡが設定されている場合においては、顔が略上側を向いている変形領域ＴＡの数が２であり最大であるとともに、２以上の顔が略共通して向いている他の方向（右、左または下側）は存在しない。そのため、上記Ｓ１７４３において、略上側以外の方向を向いている変形領域ＴＡについて変形処理の対象から除外する決定をする。
【００９９】
一方、Ｓ１７４２において、属する変形領域ＴＡの数が最大であるグループが複数存在すると判断した場合には、除外判別部２７０はＳ１７４４に進み、属する変形領域ＴＡの数が最大である各グループの中に、顔領域ＦＡのサイズが最大である変形領域ＴＡを含むグループが複数あるか否か判断する。顔領域ＦＡのサイズについては上述の通りである。顔領域ＦＡのサイズが最大である変形領域ＴＡを含むグループが一つである場合には、Ｓ１７４５に進み、属する変形領域ＴＡの数が最大であってかつ顔領域ＦＡのサイズが最大である変形領域ＴＡを含むグループに属する変形領域ＴＡ、以外の変形領域ＴＡについて変形処理の対象から除外する決定をする。
【０１００】
図３５に例示するように対象画像ＴＩ上に複数の変形領域ＴＡが設定されている場合においては、顔が略上側を向いている変形領域ＴＡの数と顔が略右側を向いている変形領域ＴＡの数とがいずれも最大数（２）であり、かつ顔が略上側を向いている変形領域ＴＡのグループの中に顔領域ＦＡが最大のものが含まれている。そのため、上記Ｓ１７４５において、略上側以外の方向を向いている変形領域ＴＡについて変形処理の対象から除外する決定をする。
【０１０１】
一方、属する変形領域ＴＡの数が最大である各グループの中に、顔領域ＦＡのサイズが最大である変形領域ＴＡを含むグループが複数存在する場合には、除外判別部２７０はＳ１７４６に進み、その複数のグループの中から所定の優先順位に従って一つの向きにかかるグループを選択する。そして、当該選択したグループに属する変形領域ＴＡ以外の変形領域ＴＡについて、変形処理の対象から除外する決定をする。ここで言う所定の優先順位とは、上下左右についての順位であり、少なくとも上側を最優先としたものとする。左、右、下についての優先順は特に限られないが、例えば、下、左、右というように順位を予め付けておく。
【０１０２】
図３６に例示するように対象画像ＴＩ上に複数の変形領域ＴＡが設定されている場合においては、顔が略上側を向いている変形領域ＴＡと、顔が略右側を向いている変形領域ＴＡと、顔が略左側を向いている変形領域ＴＡとの数がいずれも同数であり、かつ顔が略上側を向いている変形領域ＴＡと、顔が略右側を向いている変形領域ＴＡと、顔が略左側を向いている変形領域ＴＡとの各顔領域ＦＡのサイズも同じである。そのため、上記Ｓ１７４６では上記優先順位に従い、略上側以外の方向を向いている変形領域ＴＡについて変形処理の対象から除外する決定をする。
【０１０３】
このようにＳ１７４の処理によれば、対象画像ＴＩ上に設定された各変形領域ＴＡの顔の上下の向きが、略上側、略下側、略右側、略左側というようにばらばらな向きであっても、変形処理の対象とする変形領域ＴＡの向きを、各向きにおける変形領域ＴＡの数やサイズ、あるいは各向き間における優先順位に従って一つだけ選択する。そのため、プリンタ１００における処理負担増およびメモリ消費量の増大を避けることができる。なお図３３に示したフローチャートはあくまで一例であり、除外判別部２７０は必ずしもこのフローチャート通りのステップを踏む必要は無い。例えば、Ｓ１７４２において“Ｙｅｓ”の判断をした後に、Ｓ１７４４の判断行うこと無くＳ１７４６の判断に移るとしてもよい。かかる手順とすれば、Ｓ１７４の処理をより簡素に行うことができる。
【０１０４】
Ｓ１７５では、第５の除外判別として、除外判別部２７０は、変形領域ＴＡの間で重なりが生じている場合に当該重なりが解消されるように一以上の変形領域ＴＡを変形処理の対象から除外する処理を行なう。当該判別は、上記Ｓ１７１〜Ｓ１７４において変形処理の対象から除外すると判別されなかった変形領域ＴＡを対象に行う。
【０１０５】
図３７は、Ｓ１７５の処理の詳細をフローチャートにより示している。
Ｓ１７５１では、除外判別部２７０は、その時点で変形処理の対象から除外するものと判別されていない変形領域ＴＡのうち、顔領域ＦＡのサイズが最大の変形領域ＴＡを一つ選択する。
Ｓ１７５２では、直近のＳ１７５１で選択した変形領域ＴＡに対して重なる、その時点で変形処理の対象から除外するものと判別されていない他の変形領域ＴＡが存在するか否か判断する。上記重なる他の変形領域ＴＡが存在する場合には、除外判別部２７０はＳ１７５３に進み、上記重なる他の変形領域ＴＡの全てについて、変形処理の対象から除外する決定をする。
【０１０６】
Ｓ１７５３の後においては、あるいはＳ１７５２で“Ｎｏ”の判断がされた場合には、Ｓ１７５４に進む。Ｓ１７５４では除外判別部２７０は、過去のＳ１７５１で選択した変形領域ＴＡ以外にその時点で変形処理の対象から除外するものと判別されていない変形領域ＴＡが存在するか否か判断する。存在すると判断した場合にはＳ１７５１に戻り、除外判別部２７０は、過去のＳ１７５１で選択した変形領域ＴＡ以外の変形領域ＴＡを新たに選択し、Ｓ１７５２以降の処理を繰り返す。一方、過去のＳ１７５１で選択した変形領域ＴＡ以外に、その時点で変形処理の対象から除外するものと判別されていない変形領域ＴＡが存在しない場合には、図３７の処理を終了する。
【０１０７】
図３８に示すように、対象画像ＴＩ上に複数の変形領域ＴＡが重なり合って設定されている場合を例に、図３７の処理を説明すると次のようになる。図３８においては、変形領域ＴＡ１〜ＴＡ６の中で変形領域ＴＡ１が最も顔領域ＦＡのサイズが大きいため、当該変形領域ＴＡ１がまず最初にＳ１７５１で選択される。そして、変形領域ＴＡ１に対しては、変形領域ＴＡ５が重なっているため、変形領域ＴＡ５が変形処理の対象から除外される。次のＳ１７５１では、過去のＳ１７５１で選択されていない変形領域ＴＡのうち顔領域ＦＡのサイズが最大の変形領域ＴＡ２が選択される。変形領域ＴＡ２に対しては、変形領域ＴＡ３および変形領域ＴＡ４が重なっているため、変形領域ＴＡ３，ＴＡ４が変形処理の対象から除外される。次のＳ１７５１では、変形領域ＴＡ６が選択される。ただし、その時点で除外されずに変形領域ＴＡ６に重なっている他の変形領域ＴＡは存在しない（Ｓ１７５２でＮｏ）。また、変形領域ＴＡ１，ＴＡ２，ＴＡ６以外に、その時点で変形処理の対象から除外するものと判別されていない変形領域ＴＡは存在しないため（Ｓ１７５４でＮｏ）、図３７の処理を終了する。この結果図３８の例においては、変形領域ＴＡ１，ＴＡ２，ＴＡ６が除外されずに残り、変形領域ＴＡの重なりが解消される。
【０１０８】
ここで、対象画像ＴＩ上において一部が重なり合っている両変形領域ＴＡをそれぞれ変形処理するには、一方の領域を先に変形処理し、後に他方の領域を変形するために、上記一方の領域にかかる変形後の画像データを、オリジナル画像（いずれの変形領域ＴＡも変形処理していない状態の対象画像ＴＩ）とは別に保持しておく必要がある。そのため、メモリの使用量が莫大となる。本実施例では、除外判別部２７０は、複数の変形領域ＴＡの中から顔領域ＦＡのサイズの大きい順に一の変形領域ＴＡを選択するとともに当該選択した変形領域ＴＡに対して重なる他の変形領域ＴＡを変形処理の対象から除外する処理を繰り返し行うことにより、変形対象となる変形領域ＴＡが重なることを回避している。そのため、本実施例によれば、サイズが大きくユーザにとっての重要度がより高いと想定される顔を変形処理の対象として残しつつ、変形領域ＴＡの重なりに起因する上述したようなメモリの大量消費を解消することができる。
【０１０９】
ここで、変形領域ＴＡの重なりを解消する手法は上述した手法に限られない。例えば、除外判別部２７０は、変形領域ＴＡの重なりを解消すべく一つの変形領域ＴＡを選択する際に、顔領域ＦＡのサイズを基準に選択するのではなく、外部から入力された変形領域ＴＡの選択指示に従って選択するとしてもよい。つまり、除外判別部２７０は、ユーザの操作部１４０の操作による選択指示を受付ける。この場合、除外判別部２７０は、対象画像ＴＩ上の変形領域ＴＡを任意に選択可能なユーザインターフェースを表示部１５０に表示するように表示処理部３１０に指示し、当該ユーザインターフェースを介してユーザによって入力された選択指示に応じて変形領域ＴＡを選択する。そして、当該選択した変形領域ＴＡに対して重なる他の変形領域ＴＡが存在する場合、当該重なる他の変形領域ＴＡの全てについて変形処理の対象から除外する決定をする。かかる構成とすれば、ユーザが選択した変形領域ＴＡを変形処理の対象として残しつつ、変形領域ＴＡ間の重なりを解消することができる。
【０１１０】
Ｓ１７６では、第６の除外判別として、除外判別部２７０は、対象画像ＴＩ上の変形領域ＴＡの数が予め定められたしきい値（最大処理数）を超えるか否か判断し、当該しきい値を超える場合には、当該しきい値に収まる数の変形領域ＴＡを選択するとともに、選択外の変形領域ＴＡについては、変形処理の対象から除外する決定を行う。当該判別は、上記Ｓ１７１〜Ｓ１７５において変形処理の対象から除外すると判別されなかった変形領域ＴＡを対象に行う。上記しきい値としては様々な数値を用いることが可能であるが、本実施例ではプリンタ１００の処理能力を考慮し、一例として上記しきい値を“５個”としている。
【０１１１】
除外判別部２７０は、対象画像ＴＩ上の変形領域ＴＡの数が上記しきい値を超える場合には、例えば、顔領域ＦＡのサイズが大きい順に、しきい値以内の数の変形領域ＴＡを選択する。その結果、サイズが大きくユーザにとっての重要度がより高いと想定される顔を変形処理の対象として残しつつ、プリンタ１００の処理能力を超えた数の変形領域ＴＡを変形処理の対象としてしまうことを回避することができる。
【０１１２】
Ｓ１７７では、第７の除外判別として、除外判別部２７０は、外部から入力されたトリミングの指示に基づいて切り出されるトリミング画像から少なくとも一部が出る変形領域ＴＡが存在するか否か判別し、存在する場合には当該トリミング画像から少なくとも一部が出る変形領域ＴＡについては変形処理の対象から除外する決定を行う。当該判別は、上記Ｓ１７１〜Ｓ１７６において変形処理の対象から除外すると判別されなかった変形領域ＴＡ毎に行う。上記Ｓ１７２では、プリンタ１００が使用可能な全印刷用紙のアスペクト比に基づいて対象画像ＴＩをそれぞれトリミングしたときに共通して残る共通画像範囲ＣＡからはみ出る変形領域ＴＡについては除外するとしたが、さらにＳ１７７では、ユーザが任意に設定することが可能なトリミングの範囲からはみ出る変形領域ＴＡについても、変形処理の対象から除外する。
【０１１３】
上記Ｓ１７７においては、除外判別部２７０は、外部からのトリミングの指示を取得する。この場合、すでにユーザの操作部１４０を介した入力操作によって対象画像ＴＩのトリミングの指示がなされている場合には、当該指示に基づいて、対象画像ＴＩ上にトリミングによって切り出される画像範囲を設定する。或いは除外判別部２７０は、対象画像ＴＩに対するトリミングの設定を行うためのユーザインターフェースを表示部１５０に表示するように表示処理部３１０に指示し、当該ユーザインターフェースを介してユーザによって入力されたトリミングの指示に基づいて、対象画像ＴＩ上にトリミングによる画像範囲を設定してもよい。除外判別部２７０は、判別の対象となる変形領域ＴＡ毎に、上記設定したトリミングの画像範囲からはみ出ていないか判断し、一部でもはみ出ている変形領域ＴＡについては、変形処理の対象から除外する決定をする。
【０１１４】
上記Ｓ１７７の処理によれば、ユーザが指示されたトリミングによって切り出される画像範囲に全体が含まれる変形領域ＴＡのみが変形処理の対象となり得るため、上述したような変形領域ＴＡの再設定の必要性が無くなり、プリンタ１００における処理負担増およびメモリ消費量の増大を避けることができる。ただしＳ１７７の処理は、外部からトリミングの指示が得られない場合には実行されない。
【０１１５】
このように本実施例では、上述した第１〜第７の除外判別が上記順序によって行われ、いずれの除外判別によっても除外されずに最終的に残った変形領域ＴＡを対象として、Ｓ１８０以降の処理が行われる。ただし、上記に示した第１〜第７の除外判別の順序はあくまで一例であり、除外判別部２７０は、各除外判別の処理をどのような順序で実施することも可能であるし、上記第１〜第７の除外判別の一部だけを実施することも可能である。
【０１１６】
（２‐３）変形領域の分割から印刷処理まで：
Ｓ１８０（図４）では、変形領域分割部２５０（図１）が、変形領域ＴＡを複数の小領域に分割する。図１９は、変形領域ＴＡの小領域への分割方法の一例を示す説明図である。変形領域分割部２５０は、変形領域ＴＡに複数の分割点Ｄを配置し、分割点Ｄを結ぶ直線を用いて変形領域ＴＡを複数の小領域に分割する。変形領域ＴＡが複数存在する場合には、変形領域ＴＡ毎に小領域への分割を行う。
【０１１７】
分割点Ｄの配置の態様（分割点Ｄの個数および位置）は、分割点配置パターンテーブル４１０（図１）により、Ｓ１２０（図４）において設定される変形タイプと対応付けて定義されている。変形領域分割部２５０は、分割点配置パターンテーブル４１０を参照し、Ｓ１２０において設定された変形タイプと対応付けられた態様で分割点Ｄを配置する。本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプＡ」（図５参照）が設定されているため、この変形タイプに対応付けられた態様で分割点Ｄが配置される。
【０１１８】
図１９に示すように、分割点Ｄは、水平分割線Ｌｈと垂直分割線Ｌｖとの交点と、水平分割線Ｌｈおよび垂直分割線Ｌｖと変形領域ＴＡの外枠との交点とに配置される。ここで、水平分割線Ｌｈおよび垂直分割線Ｌｖは、変形領域ＴＡ内に分割点Ｄを配置するための基準となる線である。図１９に示すように、顔をシャープにするための変形タイプに対応付けられた分割点Ｄの配置では、基準線ＲＬと直行する２本の水平分割線Ｌｈと、基準線ＲＬに平行な４本の垂直分割線Ｌｖとが設定される。２本の水平分割線Ｌｈを、変形領域ＴＡの下方から順に、Ｌｈ１，Ｌｈ２と呼ぶ。また、４本の垂直分割線Ｌｖを、変形領域ＴＡの左から順に、Ｌｖ１，Ｌｖ２，Ｌｖ３，Ｌｖ４と呼ぶ。
【０１１９】
水平分割線Ｌｈ１は、変形領域ＴＡにおいて、顎の画像より下方に配置され、水平分割線Ｌｈ２は、目の画像のすぐ下付近に配置される。また、垂直分割線Ｌｖ１およびＬｖ４は、頬のラインの画像の外側に配置され、垂直分割線Ｌｖ２およびＬｖ３は、目尻の画像の外側に配置される。なお、水平分割線Ｌｈおよび垂直分割線Ｌｖの配置は、水平分割線Ｌｈおよび垂直分割線Ｌｖと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域ＴＡの大きさとの対応関係に従い実行される。
【０１２０】
上述した水平分割線Ｌｈと垂直分割線Ｌｖとの配置に従い、水平分割線Ｌｈと垂直分割線Ｌｖとの交点と、水平分割線Ｌｈおよび垂直分割線Ｌｖと変形領域ＴＡの外枠との交点とに、分割点Ｄが配置される。図１９に示すように、水平分割線Ｌｈｉ（ｉ＝１または２）上に位置する分割点Ｄを、左から順に、Ｄ０ｉ，Ｄ１ｉ，Ｄ２ｉ，Ｄ３ｉ，Ｄ４ｉ，Ｄ５ｉと呼ぶものとする。例えば、水平分割線Ｌｈ１上に位置する分割点Ｄは、Ｄ０１，Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１，Ｄ５１と呼ばれる。同様に、垂直分割線Ｌｖｊ（ｊ＝１，２，３，４のいずれか）上に位置する分割点Ｄを、下から順に、Ｄｊ０，Ｄｊ１，Ｄｊ２，Ｄｊ３と呼ぶものとする。例えば、垂直分割線Ｌｖ１上に位置する分割点Ｄは、Ｄ１０，Ｄ１１，Ｄ１２，Ｄ１３と呼ばれる。
【０１２１】
なお、図１９に示すように、本実施例における分割点Ｄの配置は、基準線ＲＬに対して対称の配置となっている。
変形領域分割部２５０は、配置された分割点Ｄを結ぶ直線（すなわち水平分割線Ｌｈおよび垂直分割線Ｌｖ）により、変形領域ＴＡを複数の小領域に分割する。本実施例では、図１９に示すように、変形領域ＴＡが１５個の矩形の小領域に分割される。
なお本実施例では、分割点Ｄの配置は、水平分割線Ｌｈおよび垂直分割線Ｌｖの本数および位置により定まるため、分割点配置パターンテーブル４１０は水平分割線Ｌｈおよび垂直分割線Ｌｖの本数および位置を定義していると言い換えることも可能である。
【０１２２】
Ｓ１９０（図４）では、変形処理部２６０（図１）が、対象画像ＴＩの変形領域ＴＡを対象とした画像の変形処理を行う。変形処理部２６０による変形処理は、Ｓ１８０で変形領域ＴＡ内に配置された分割点Ｄの位置を移動して、小領域を変形することにより行われる。Ｓ１９０の処理も、変形領域ＴＡが複数存在する場合には各変形領域ＴＡを対象として行われる。
【０１２３】
変形処理のための各分割点Ｄの位置の移動態様（移動方向および移動距離）は、分割点移動テーブル４２０（図１）により、Ｓ１２０（図４）において設定される変形タイプと変形の度合いとの組み合わせに対応付けて、予め定められている。変形処理部２６０は、分割点移動テーブル４２０を参照し、Ｓ１２０において設定された変形タイプと変形の度合いとの組み合わせに対応付けられた移動方向および移動距離で、分割点Ｄの位置を移動する。
【０１２４】
本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプＡ」（図５参照）が設定され、変形度合いとして程度「中」の度合いが設定されているため、これらの変形タイプおよび変形度合いの組み合わせに対応付けられた移動方向および移動距離で、分割点Ｄの位置が移動されることとなる。
【０１２５】
図２０は、分割点移動テーブル４２０の内容の一例を示す説明図である。また図２１は、分割点移動テーブル４２０に従った分割点Ｄの位置の移動の一例を示す説明図である。図２０には、分割点移動テーブル４２０により定義された分割点Ｄの位置の移動態様の内、顔をシャープにするための変形タイプと程度「中」の変形度合いとの組み合わせに対応付けられた移動態様を示している。図２０に示すように、分割点移動テーブル４２０には、各分割点Ｄについて、基準線ＲＬと直行する方向（Ｈ方向）および基準線ＲＬと平行な方向（Ｖ方向）に沿った移動量が示されている。なお、本実施例では、分割点移動テーブル４２０に示された移動量の単位は、対象画像ＴＩの画素ピッチＰＰである。また、Ｈ方向については、向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、Ｖ方向については、顔の上方への移動量が正の値として表され、顔の下方への移動量が負の値として表される。例えば、分割点Ｄ１１は、Ｈ方向に沿って右側に画素ピッチＰＰの７倍の距離だけ移動され、Ｖ方向に沿って上方に画素ピッチＰＰの１４倍の距離だけ移動される。また、例えば分割点Ｄ２２は、Ｈ方向およびＶ方向共に移動量がゼロであるため、移動されない。
【０１２６】
なお、本実施例では、変形領域ＴＡの内外の画像間の境界が不自然とならないように、変形領域ＴＡの外枠上に位置する分割点Ｄ（例えば図２１に示す分割点Ｄ１０等）の位置は移動されないものとしている。従って、図２０に示した分割点移動テーブル４２０には、変形領域ＴＡの外枠上に位置する分割点Ｄについての移動態様は定義されていない。
【０１２７】
図２１では、移動前の分割点Ｄは白抜きの丸で、移動後の分割点Ｄや位置の移動の無い分割点Ｄは黒丸で示されている。また、移動後の分割点Ｄは分割点Ｄ’と呼ばれるものとする。例えば分割点Ｄ１１の位置は、図２１において右上方向に移動され、分割点Ｄ’１１となる。
【０１２８】
なお、本実施例では、基準線ＲＬに対して対称な位置関係にある２つの分割点Ｄの組み合わせ（例えば分割点Ｄ１１とＤ４１との組み合わせ）のすべてが、分割点Ｄの移動後も、基準線ＲＬに対して対称な位置関係を維持するように、移動態様が定められている。
【０１２９】
変形処理部２６０は、変形領域ＴＡを構成する各小領域について、分割点Ｄの位置移動前の状態における小領域の画像が、分割点Ｄの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。例えば、図２１において、分割点Ｄ１１，Ｄ２１，Ｄ２２，Ｄ１２を頂点とする小領域（ハッチングを付して示す小領域）の画像は、分割点Ｄ’１１，Ｄ’２１，Ｄ２２，Ｄ’１２を頂点とする小領域の画像に変形される。
【０１３０】
図２２は、変形処理部２６０による画像の変形処理方法の概念を示す説明図である。図２２では、分割点Ｄを黒丸で示している。図２２では、説明を簡略化するために、４つの小領域について、左側に分割点Ｄの位置移動前の状態を、右側に分割点Ｄの位置移動後の状態を、それぞれ示している。図２２の例では、中央の分割点Ｄａが分割点Ｄａ’の位置に移動され、その他の分割点Ｄの位置は移動されない。これにより、例えば、分割点Ｄの移動前の分割点Ｄａ，Ｄｂ，Ｄｃ，Ｄｄを頂点とする矩形の小領域（以下「変形前注目小領域ＢＳＡ」とも呼ぶ）の画像は、分割点Ｄａ’，Ｄｂ，Ｄｃ，Ｄｄを頂点とする矩形の小領域（以下「変形後注目小領域ＡＳＡ」とも呼ぶ）の画像に変形される。
【０１３１】
本実施例では、矩形の小領域を小領域の重心ＣＧを用いて４つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図２２の例では、変形前注目小領域ＢＳＡが、変形前注目小領域ＢＳＡの重心ＣＧを頂点の１つとする４つの三角形領域に分割される。同様に、変形後注目小領域ＡＳＡが、変形後注目小領域ＡＳＡの重心ＣＧ’を頂点の１つとする４つの三角形領域に分割される。そして、分割点Ｄａの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域ＢＳＡ中の分割点Ｄａ，Ｄｄおよび重心ＣＧを頂点とする三角形領域の画像が、変形後注目小領域ＡＳＡ中の分割点Ｄａ’，Ｄｄおよび重心ＣＧ’を頂点とする三角形領域の画像に変形される。
【０１３２】
図２３は、三角形領域における画像の変形処理方法の概念を示す説明図である。図２３の例では、点ｓ，ｔ，ｕを頂点とする三角形領域ｓｔｕの画像が、点ｓ’，ｔ’，ｕ’を頂点とする三角形領域ｓ’ｔ’ｕ’の画像に変形される。画像の変形は、変形後の三角形領域ｓ’ｔ’ｕ’の画像中のある画素の位置が、変形前の三角形領域ｓｔｕの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
【０１３３】
例えば、図２３において、変形後の三角形領域ｓ’ｔ’ｕ’の画像中の注目画素ｐ’の位置は、変形前の三角形領域ｓｔｕの画像中の位置ｐに相当するものとする。位置ｐの算出は、以下のように行う。まず、注目画素ｐ’の位置を、下記の式（１）のようにベクトルｓ’ｔ’とベクトルｓ’ｕ’との和で表現するための係数ｍ１およびｍ２を算出する。
【０１３４】
【数１】
0005338887.tif 000002
【０１３５】
次に、算出された係数ｍ１およびｍ２を用いて、下記の式（２）により、変形前の三角形領域ｓｔｕにおけるベクトルｓｔとベクトルｓｕとの和を算出することにより、位置ｐが求まる。
【０１３６】
【数２】
0005338887.tif 000003
【０１３７】
変形前の三角形領域ｓｔｕにおける位置ｐが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域ｓｔｕにおける位置ｐが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置ｐの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置ｐにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【０１３８】
変形後の三角形領域ｓ’ｔ’ｕ’の画像中の各画素について上述のように画素値を算出することにより、三角形領域ｓｔｕの画像から三角形領域ｓ’ｔ’ｕ’の画像への画像変形処理を行うことができる。変形処理部２６０は、図２１に示した変形領域ＴＡを構成する各小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域ＴＡにおける画像変形処理を行う。
【０１３９】
ここで、本実施例の顔形状補正の態様についてより詳細に説明する。図２４は、本実施例における顔形状補正の態様を示す説明図である。本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプＡ」（図５参照）が設定され、変形度合いとして程度「中」の度合いが設定されている。図２４には、変形領域ＴＡを構成する各小領域の変形態様のイメージを矢印により示している。
【０１４０】
図２４に示すように、本実施例の顔形状補正では、基準線ＲＬと平行な方向（Ｖ方向）に関し、水平分割線Ｌｈ１上に配置された分割点Ｄ（Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１）の位置は上方に移動される一方、水平分割線Ｌｈ２上に配置された分割点Ｄ（Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２）の位置は移動されない（図２０参照）。従って、水平分割線Ｌｈ１と水平分割線Ｌｈ２との間に位置する画像は、Ｖ方向に関して縮小される。上述したように、水平分割線Ｌｈ１は顎の画像より下方に配置され、水平分割線Ｌｈ２は目の画像のすぐ下付近に配置されるため、本実施例の顔形状補正では、顔の画像の内、顎から目の下にかけての部分の画像がＶ方向に縮小されることとなる。この結果、画像中の顎のラインは上方に移動する。
【０１４１】
他方、基準線ＲＬと直行する方向（Ｈ方向）に関しては、垂直分割線Ｌｖ１上に配置された分割点Ｄ（Ｄ１１，Ｄ１２）の位置は右方向に移動され、垂直分割線Ｌｖ４上に配置された分割点Ｄ（Ｄ４１，Ｄ４２）の位置は左方向に移動される（図２０参照）。さらに、垂直分割線Ｌｖ２上に配置された２つの分割点Ｄの内、水平分割線Ｌｈ１上に配置された分割点Ｄ（Ｄ２１）の位置は右方向に移動され、垂直分割線Ｌｖ３上に配置された２つの分割点Ｄの内、水平分割線Ｌｈ１上に配置された分割点Ｄ（Ｄ３１）の位置は左方向に移動される（図２０参照）。従って、垂直分割線Ｌｖ１より左側に位置する画像は、Ｈ方向に関して右側に拡大され、垂直分割線Ｌｖ４より右側に位置する画像は、左側に拡大される。また、垂直分割線Ｌｖ１と垂直分割線Ｌｖ２との間に位置する画像は、Ｈ方向に関して縮小または右側に移動され、垂直分割線Ｌｖ３と垂直分割線Ｌｖ４との間に位置する画像は、Ｈ方向に関して縮小または左側に移動される。さらに、垂直分割線Ｌｖ２と垂直分割線Ｌｖ３との間に位置する画像は、水平分割線Ｌｈ１の位置を中心にＨ方向に関して縮小される。
【０１４２】
上述したように、垂直分割線Ｌｖ１およびＬｖ４は、頬のラインの画像の外側に配置され、垂直分割線Ｌｖ２およびＬｖ３は、目尻の画像の外側に配置される。そのため、本実施例の顔形状補正では、顔の画像の内、両目尻より外側の部分の画像が全体的にＨ方向に縮小される。特に顎付近において縮小率が高くなる。この結果、画像中の顔の形状は、全体的に幅方向に細くなる。
【０１４３】
上述したＨ方向およびＶ方向の変形態様を総合すると、本実施例の顔形状補正により、対象画像ＴＩ中の顔の形状がシャープになる。なお、顔の形状がシャープになるとは、いわゆる「小顔」になると表現することもできる。
【０１４４】
なお、図２４に示す分割点Ｄ２２，Ｄ３２，Ｄ３３，Ｄ２３を頂点とする小領域（ハッチングを付した領域）は、上述した水平分割線Ｌｈ２や垂直分割線Ｌｖ２およびＬｖ３の配置方法によると、両目の画像を含む領域となる。図２０に示すように、分割点Ｄ２２およびＤ３２はＨ方向にもＶ方向にも移動されないため、この両目の画像を含む小領域は変形されない。このように本実施例では、両目の画像を含む小領域については変形しないこととし、顔形状補正後の画像がより自然で好ましいものとなるようにしている。
【０１４５】
Ｓ２００（図４）では、顔形状補正部２００（図１）が、顔形状補正後の対象画像ＴＩを表示部１５０に表示するよう表示処理部３１０に指示する。図２５は、顔形状補正後の対象画像ＴＩが表示された表示部１５０の状態の一例を示す説明図である。顔形状補正後の対象画像ＴＩが表示された表示部１５０により、ユーザは、補正結果を確認することができる。ユーザが補正結果に満足せず「戻る」ボタンを選択した場合には、例えば表示部１５０に図５に示した変形タイプおよび変形度合いを選択する画面が表示され、ユーザによる変形タイプや変形度合いの再度の設定が実行される。ユーザが補正結果に満足し、「印刷」ボタンを選択した場合には、以下の補正画像印刷処理が開始される。
【０１４６】
Ｓ３００（図３）では、印刷処理部３２０（図１）が、プリンタエンジン１６０を制御して、顔形状補正処理後の対象画像ＴＩの印刷を行う。図２６は、本実施例における補正画像印刷処理の流れを示すフローチャートである。印刷処理部３２０は、顔形状補正処理後の対象画像ＴＩの画像データの解像度を、プリンタエンジン１６０による印刷処理に適した解像度に変換し（Ｓ３１０）、解像度変換後の画像データを、プリンタエンジン１６０における印刷に用いられる複数のインク色で階調表現されたインク色画像データに変換する（Ｓ３２０）。なお、本実施例では、プリンタエンジン１６０における印刷に用いられる複数のインク色は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色であるものとする。さらに、印刷処理部３２０は、インク色画像データにおける各インク色の階調値に基づいてハーフトーン処理を実行することによって、印刷画素毎のインクドットの形成状態を示すドットデータを生成し（Ｓ３３０）、ドットデータを配列して印刷データを生成する（Ｓ３４０）。印刷処理部３２０は、生成された印刷データをプリンタエンジン１６０に供給し、プリンタエンジン１６０に対象画像ＴＩの印刷を行わせる（Ｓ３５０）。これにより、顔形状補正後の対象画像ＴＩの印刷が完了する。
【０１４７】
以上説明したように、本実施例のプリンタ１００による顔形状補正印刷処理では、対象画像ＴＩ上に設定された変形領域ＴＡ内に複数の分割点Ｄが配置され、分割点Ｄ同士を結ぶ直線（水平分割線Ｌｈおよび垂直分割線Ｌｖ）を用いて変形領域ＴＡが複数の小領域に分割される。また、分割点Ｄの位置が移動され、小領域が変形されることにより変形領域ＴＡ内の画像の変形処理が実行される。このように、本実施例のプリンタ１００による顔形状補正印刷処理では、変形領域ＴＡ内に分割点Ｄを配置して、配置された分割点Ｄを移動するだけで画像変形を行うことができ、多様な変形態様に対応した画像変形を、容易に、かつ効率的に実現することができる。
【０１４８】
また本実施例によれば、顔領域検出に基づいて対象画像ＴＩ上に設定された変形領域ＴＡのうち、上述の各除外判別のいずれによっても変形処理の対象から除外するものと判別されなかった変形領域ＴＡを対象として、画像の変形処理を行なう。そのため、従来、顔領域検出に基づいて対象画像ＴＩ上に設定された変形領域ＴＡの全てに対し変形処理を実行していたことによって生じていた、プリンタ１００のＣＰＵ１１０に対する過剰な処理負担やメモリの大量消費を、適切に抑制することができる。特に、プリンタ１００が上述したような複合機である場合には、顔形状補正印刷処理のために確保できるリソースも限られるため、本実施例のように変形処理の対象とする変形領域ＴＡを限定することは、プリンタ１００の安定した稼動の実現に繋がる。
【０１４９】
（３）追加の説明および他の実施例：
上記Ｓ１７１の説明の際に述べた、顔領域ＦＡの傾き（角度β）がある所定の上限角度（角度βＬ）に近づくほどに変形領域ＴＡの変形処理に要するメモリ消費量が増える、という事情について説明する。
図３９（ａ）は、垂直基準線Ｖｓと基準線ＲＬとがなす角度βが０度である変形領域ＴＡの一部を示しており、図３９（ｂ）は、垂直基準線Ｖｓと基準線ＲＬとがなす角度βが０度より大きい所定の角度（例えば、角度β２。）である変形領域ＴＡの一部分を示している。
【０１５０】
ここで、上記Ｓ１９０の変形処理の過程においては、変形処理部２６０は、変形後の対象画像ＴＩのデータを垂直基準線Ｖｓに直交する行（画素行）単位で順次生成する。つまり、変形後の画像の各画素に対応する画素値を変形前の対象画像ＴＩ（オリジナル画像）から取得する処理を、画素行毎に順次行うことにより、変形が施された一枚の対象画像ＴＩを最終的に得る。この画素行毎の生成を行なう過程においては、プリンタ１００は、１つの画素行を生成する処理の間、当該１つの画素行の各画素に対応する画素値を取得するために必要なオリジナル画像上の所定範囲のデータを、一時的に内部メモリ２００内等の所定のバッファ領域に保存して変形処理に利用することとなる。従って、変形後の１つの画素行の各画素に対応する画素値を取得するために必要なオリジナル画像上の範囲が広ければ広いほど、プリンタ１００内におけるメモリ消費量が増えるということになる。
【０１５１】
図３９（ａ），（ｂ）では、分割点Ｄ１１，Ｄ２１を含む変形領域ＴＡの左下の領域を中心に示している。分割点Ｄ１１，Ｄ２１（基準線ＲＬより右側の分割点Ｄ３１，４１も同様。）は、本実施例の変形処理において変形前後の移動距離ｄが最も長い分割点である（分割点移動テーブル４２０を参照。）ため、このような移動距離の長い分割点Ｄの移動を例に、変形処理に要するメモリ量の違いを説明する。
例えば、Ｓ１９０の変形処理において、図３９（ａ）に示した分割点Ｄ’２１を含む画素行Ｌ１を生成するには、少なくとも分割点Ｄ’２１の移動前の分割点Ｄ２１にかかるオリジナル画像上のデータが必要となる。また、画素行Ｌ１を生成するには、分割点Ｄ’２１以外の画素行Ｌ１上の他の画素についても画素値をオリジナル画像から取得する必要があるため、オリジナル画像における、画素行Ｌ１と同位置の画素行のデータや、分割点Ｄ２１ほどは離れてないが画素行Ｌ１からある程度離れた位置の画素行のデータが必要となる。
【０１５２】
そのため、画素行Ｌ１の生成の際には、オリジナル画像内のデータであって、少なくとも画素行Ｌ１と同位置の画素行から分割点Ｄ２１を含む画素行までの幅（Ｖｂａｎｄ１）分の画像データを、上記のように一時的にバッフ領域に保存して変形処理に利用することとなる。一方、図３９（ｂ）のように、変形領域ＴＡが対象画像ＴＩ上で傾いている状況において、分割点Ｄ’２１を含む画素行Ｌ２を生成する場合にも、分割点Ｄ’２１の移動前の分割点Ｄ２１にかかるオリジナル画像上のデータ等、が必要となる。従って、画素行Ｌ２の生成の際には、オリジナル画像内のデータであって、少なくとも画素行Ｌ２と同位置の画素行から分割点Ｄ２１を含む画素行までの幅（Ｖｂａｎｄ２）分の画像データを、一時的にバッフ領域に保存して変形処理に利用することとなる。
【０１５３】
変形領域ＴＡが垂直基準線Ｖｓに対し傾いていても傾いていなくても、各分割点Ｄの移動距離ｄは変らない。しかし、本実施例の変形処理においては、図２４等の説明からも判るように、変形前後で移動する各点の殆どは基準線ＲＬに対して平行な方向ではなく基準線ＲＬに対して斜めの方向に移動する。分割点Ｄ２１も、基準線ＲＬと平行な移動ではなく変形領域ＴＡ内において右上方向に移動する。従って、変形領域ＴＡが図３９（ｂ）のように垂直基準線Ｖｓに対し傾くことで、分割点Ｄ２１の移動方向が垂直基準線Ｖｓに対し平行な状態に近づき、移動前後の分割点Ｄ２１，Ｄ’２１間の垂直基準線Ｖｓに平行な方向における距離が長くなる。つまり、図３９（ａ），（ｂ）に示したように、変形領域ＴＡが垂直基準線Ｖｓに対し傾き０度のときは、分割点Ｄ’２１を含む画素行Ｌ１の生成に必要なバッファ領域は、オリジナル画像におけるＶｂａｎｄ１分の画像データを記憶可能な容量で済むが、変形領域ＴＡが垂直基準線Ｖｓに対しβ２の傾きを有するときは、分割点Ｄ’２１を含む画素行Ｌ２の生成に必要なバッファ領域は、Ｖｂａｎｄ１よりバンド幅の大きいＶｂａｎｄ２分の画像データを記憶可能な容量となってしまう。
【０１５４】
なお本実施例では、変形領域ＴＡ内の変形処理は、中央の基準線ＲＬを挟んで左右対称に行われる。そのため、図３９（ｂ）のように、変形領域ＴＡが垂直基準線Ｖｓに対して傾いている場合、基準線ＲＬを挟んで対称関係にある左右の分割点Ｄ（例えば、分割点Ｄ２１と分割点Ｄ３１との関係）については、一方の移動方向は垂直基準線Ｖｓに対し略平行に近い状態となり、他方の移動方向は垂直基準線Ｖｓに対し略垂直に近い状態となる。しかしながら、画像変形処理のために確保しなければ成らないバッファ領域のサイズは、必要となる最大量に対応したものでなければならないため、結局、図３９（ａ）の場合よりも、図３９（ｂ）の場合に変形処理を行なう方が、必要とされるバッファ領域のサイズは大きいものとなってしまう。また上記では、基準線ＲＬと垂直基準線Ｖｓとの関係で説明を行ったが、基準線ＲＬと水平基準線Ｈｓとの関係においても同様のことが言える。つまり、基準線ＲＬが水平基準線Ｈｓと平行である場合と比較して、基準線ＲＬと水平基準線Ｈｓとの間にある角度βが生じている場合の方が、上記分割点Ｄ１１，２１（あるいは分割点Ｄ３１，４２）等の移動方向が垂直基準線Ｖｓと平行な状態に近づくからである。
【０１５５】
このように本実施例においては、顔領域ＦＡのサイズが同じであっても、変形前後における分割点Ｄの移動方向が、対象画像ＴＩ上における顔領域ＦＡ（変形領域ＴＡ）の傾きに起因して垂直基準線Ｖｓあるいは水平基準線Ｈｓと平行な状態になっているほど、変形処理に多くのメモリが必要になると言える。そこで本実施例では、上述したように、顔領域ＦＡの傾き（角度β）が上限角度βＬに近いほど、変形処理の対象とし得る顔領域ＦＡのサイズの上限値を小さい値とし、プリンタ１００におけるメモリ消費の抑制を図っているのである。
【０１５６】
なお、上限角度βＬの値は、変形前後の移動距離が長い分割点Ｄについての変形領域ＴＡ内での移動方向に基づいて規定することができる。例えば、分割点移動テーブル４２０に規定された分割点Ｄ２１のＨ方向（基準線ＲＬと直交する方向）およびＶ方向（基準線ＲＬと平行な方向）への移動距離に基づいて、分割点Ｄ２１の変形領域ＴＡ内における移動方向を特定し、当該分割点Ｄ２１の移動方向とＶ方向とがなす角度を上限角度βＬとすることができる。また、変形領域ＴＡ内における各分割点Ｄの移動方向は、Ｓ１２０において設定される変形の度合い等によっても異なり得るため、上限角度βＬ（上限角度βＬなどを規定した顔領域サイズ上限値テーブル４３０）を、Ｓ１２０において設定される変形の度合い等ごとに規定しておいてもよい。
【０１５７】
あるいは、上記Ｓ１７１の後に行われるＳ１７３の処理（第３の除外判別）を考慮して上限角度βＬの値を設定してもよい。本実施例では、第３の除外判別を経る以上、水平基準線Ｈｓの正方向と基準線ＲＬの上方向とがなす上記角度γが、水平基準線Ｈｓの正方向、垂直基準線Ｖｓの正方向、水平基準線Ｈｓの負方向をそれぞれ中心とした±１５度の範囲に属する変形領域ＴＡしか変形処理の対象として残らない。そのため、上記１５度という数値を上限角度βＬとしても差し支えない。なお、上限角度βＬが１５度と設定されている状況で、上記Ｓ１７１１（図２８）において角度βとして１５度より大きい値が検出された場合には、その角度βを検出した変形領域ＴＡについてはそれ以上第１の除外判別を続行する必要はない。この場合、その角度βを検出した変形領域ＴＡについては第３の除外判別によって変形対象から除外する決定がなされる。
【０１５８】
また、対象画像ＴＩ上における顔の上下の向きがばらばらである場合にも、変形後の画素行の各画素に対応する画素値を取得するために必要なオリジナル画像上の範囲が拡大してしまい、変形処理にかかる負担が増加する。例えば、図３９（ａ）に示した画素行Ｌ１上であって同図に示した変形領域ＴＡよりも右側あるいは左側の位置に、別の変形領域ＴＡ（不図示）が存在している場合を想定する。当該別の変形領域ＴＡの上の向きが、図３９（ａ）に示した変形領域ＴＡの上の向きと共通していれば（両方の変形領域ＴＡの上の向きが、対象画像ＴＩの略上側を向いていれば）、画素行Ｌ１の各画素の画素値を取得するために必要なオリジナル画像上の範囲は、およそ、画素行Ｌ１および画素行Ｌ１より下方の複数の画素行からなる画素行の束に限定される。しかし、当該別の変形領域ＴＡの上の向きが、略下側や略右側や略左側を向いていると、変形領域ＴＡ毎に、領域内の画素の移動方向の傾向が異なることになる。そのため、画素行Ｌ１の各画素の画素値を取得するために必要なオリジナル画像上の範囲は、画素行Ｌ１の上方及び下方にそれぞれ拡大されがちであり、その結果、多くのバッファを必要としてしまう。そこで、本実施例では上述したように、変形処理の対象とする変形領域ＴＡの顔の向きを略統一し（第４の除外判別）、対象画像ＴＩ上における顔の上下の向きがばらばらであることに起因するメモリ消費量の増大を防いでいる。
【０１５９】
さらに他の実施例として、除外判別部２７０は、第１〜第７の除外判別の最中において、逐一、プリンタ１００内のメモリにおける使用可能な空き容量を検知するようにしてもよい。そして、検知した空き容量が、その時点で変形処理の対象から除外されていない全ての変形領域ＴＡについて変形処理を行うために必要十分な容量であると判断した場合には、Ｓ１７０の処理を途中で中断し、その時点で変形処理の対象から除外されていない全ての変形領域ＴＡを、Ｓ１８０以降の処理の対象とするとしてもよい。
【０１６０】
なお、この発明は上記実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。
上記実施例では、画像処理装置としてのプリンタ１００による顔形状補正印刷処理を説明したが、顔形状補正印刷処理は例えば、顔形状補正（Ｓ１００）がパーソナルコンピュータにより実行され、印刷処理（Ｓ３００）のみがプリンタにより実行されるとしてもよい。また、プリンタ１００はインクジェットプリンタに限らず、他の方式のプリンタ、例えばレーザプリンタや昇華型プリンタであるとしてもよい。
【符号の説明】
【０１６１】
１００…プリンタ、１１０…ＣＰＵ、１２０…内部メモリ、１４０…操作部、１５０…表示部、１６０…プリンタエンジン、１７０…カードインターフェース、１７２…カードスロット、２００…顔形状補正部、２１０…変形態様設定部、２１２…指定取得部、２２０…顔領域検出部、２３０…顔領域調整部、２３２…基準領域設定部、２３４…評価部、２３６…決定部、２４０…変形領域設定部、２５０…変形領域分割部、２６０…変形処理部、２７０…除外判別部、３１０…表示処理部、３２０…印刷処理部、４１０…分割点配置パターンテーブル、４２０…分割点移動テーブル、４３０…顔領域サイズ上限値テーブル
【図１】
0005338887.tif 000004
【図２】
0005338887.tif 000005
【図３】
0005338887.tif 000006
【図４】
0005338887.tif 000007
【図５】
0005338887.tif 000008
【図６】
0005338887.tif 000009
【図７】
0005338887.tif 000010
【図８】
0005338887.tif 000011
【図９】
0005338887.tif 000012
【図１０】
0005338887.tif 000013
【図１１】
0005338887.tif 000014
【図１２】
0005338887.tif 000015
【図１３】
0005338887.tif 000016
【図１４】
0005338887.tif 000017
【図１５】
0005338887.tif 000018
【図１６】
0005338887.tif 000019
【図１７】
0005338887.tif 000020
【図１８】
0005338887.tif 000021
【図１９】
0005338887.tif 000022
【図２０】
0005338887.tif 000023
【図２１】
0005338887.tif 000024
【図２２】
0005338887.tif 000025
【図２３】
0005338887.tif 000026
【図２４】
0005338887.tif 000027
【図２５】
0005338887.tif 000028
【図２６】
0005338887.tif 000029
【図２７】
0005338887.tif 000030
【図２８】
0005338887.tif 000031
【図２９】
0005338887.tif 000032
【図３０】
0005338887.tif 000033
【図３１】
0005338887.tif 000034
【図３２】
0005338887.tif 000035
【図３３】
0005338887.tif 000036
【図３４】
0005338887.tif 000037
【図３５】
0005338887.tif 000038
【図３６】
0005338887.tif 000039
【図３７】
0005338887.tif 000040
【図３８】
0005338887.tif 000041
【図３９】
0005338887.tif 000042