(57)【要約】【課題】顔の縦横比まで大きく変化させてしまうことで、見栄えの悪い画像変形結果が得られていた。【解決手段】顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定部と、所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形部と、上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形部とを備える画像処理装置とした。【選択図】図２
2010170219.tif 000002
【特許請求の範囲】
【請求項１】
顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定部と、
所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形部と、
上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形部とを備えることを特徴とする画像処理装置。
【請求項２】
上記画像変形部は、所定の圧縮率によって上記圧縮領域を上記特定方向に圧縮し、
上記顔変形部は、上記顔画像の少なくとも一部が上記圧縮領域に含まれている場合に、当該圧縮領域に含まれている顔画像が上記特定方向に拡大されるように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
上記顔変形部は、上記顔画像の上下方向と上記特定方向とがなす角度が所定の基準角度より大きい場合に、上記顔画像の変形を実行することを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
上記顔変形部は、上記対象画像内に複数の顔画像が存在する場合に、少なくとも一部が互いに重なっている各顔画像を除いた顔画像に対して変形を実行することを特徴とする請求項１〜請求項３のいずれかに記載の画像処理装置。
【請求項５】
上記顔変形部は、上記拡大率が示す数値のうちの所定割合の数値に基づいて上記圧縮量を決定することを特徴とする請求項１〜請求項４のいずれかに記載の画像処理装置。
【請求項６】
顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定工程と、
所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形工程と、
上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形工程とを備えることを特徴とする画像処理方法。
【請求項７】
顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定機能と、
所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形機能と、
上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形機能とをコンピューターに実行させることを特徴とする画像処理プログラム。
【請求項８】
顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定部と、
所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形部と、
上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形部とを備えることを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラムおよび印刷装置に関する。
【背景技術】
【０００２】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている（特許文献１参照。）。特許文献１には、顔の画像上の一部の領域（頬の画像を表す領域）を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４‐３１８２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
またユーザーは、画像に顔を含む人物が写っている場合に、人物の体型が好みの体型（例えば、細身の体型）に変形された画像を得たいと望むことがある。このような要望に応える変形処理として、画像内に特定領域を設定してこの特定領域に対して一律な圧縮処理を施し、同時に、当該特定領域外の領域に対して一律な拡大処理を施す場合がある。しかし上記一律な変形（圧縮および拡大）処理を施すと、特定領域あるいは特定領域外に含まれる人物の顔も変形の影響を受け、その結果、顔の縦横比が大きく変化した画像が得られてしまう。このように顔の縦横比が大きく変化した人物の画像（例えば、顔が著しく横長になった画像）は、ユーザーに違和感を与えてしまう。
【０００５】
本発明は上記課題に鑑みてなされたものであり、人物を含む画像について、より見栄えのよい変形結果を容易に得ることが可能な画像処理装置、画像処理方法、画像処理プログラムおよび印刷装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の画像処理装置は、顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定部と、所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形部と、上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形部とを備える。本発明によれば、顔変形部は、拡大領域に含まれる顔画像が、拡大領域の拡大率に応じて決定した圧縮量によって特定方向に圧縮されるように変形させる。そのため、画像変形部によって拡大領域が拡大されても、結果的に顔の縦横比は大きく崩れることが無い。よって、ユーザーに違和感を与えることの無い画像を得ることができる。なお、画像変形部による処理と顔変形部による処理の順番はどちらが先でも良い。
【０００７】
上記画像変形部は、所定の圧縮率によって上記圧縮領域を上記特定方向に圧縮し、上記顔変形部は、上記顔画像の少なくとも一部が上記圧縮領域に含まれている場合に、当該圧縮領域に含まれている顔画像が上記特定方向に拡大されるように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形するとしてもよい。当該構成によれば、拡大領域に含まれる顔画像は拡大領域における拡大効果をある程度打ち消すように圧縮されるという効果に加え、圧縮領域に含まれる顔画像は圧縮領域における圧縮効果をある程度打ち消すように拡大されるという効果も奏する。なお、圧縮領域と拡大領域とに跨る位置に存在する顔画像については、圧縮領域に含まれる範囲を特定方向に拡大し、拡大領域に含まれる範囲を特定方向に圧縮する。
【０００８】
上記顔変形部は、上記顔画像の上下方向と上記特定方向とがなす角度が所定の基準角度より大きい場合に、上記顔画像の変形を実行するとしてもよい。当該構成によれば、上下方向が特定方向と略平行な顔画像については変形対象から除外し、特定方向に対して上下方向がある程度立った（略垂直な）顔画像について、拡大領域（圧縮領域）における拡大率（圧縮率）に応じた変形を行なうことができる。
【０００９】
上記顔変形部は、上記対象画像内に複数の顔画像が存在する場合に、少なくとも一部が互いに重なっている各顔画像を除いた顔画像に対して変形を実行するとしてもよい。当該構成によれば、互いに重なっている各顔画像について個々に変形を行なうことで却って画像が全体的に破綻してしまう、といった不都合を防止できる。
【００１０】
上記顔変形部は、上記拡大率が示す数値のうちの所定割合の数値に基づいて上記圧縮量を決定するとしてもよい。例えば、上記拡大率が２０％であれば、当該２０％という数値の何割かの数値を上記圧縮量とする。このように、拡大領域に対する拡大効果を完全に打ち消すような圧縮量を顔画像に適用するのではなく、拡大率が示す数値のうちの所定割合の数値に基づいて顔画像の圧縮量を決定することで、画像変形部による処理と顔変形部による処理の両方が終わった後において、拡大領域における顔と顔以外の部分とのバランスが最適となった画像を得ることができる。
【００１１】
これまでは、本発明の技術的思想を画像処理装置として説明したが、上述した画像処理装置が備える各手段に対応した各工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各手段に対応した各機能をコンピューターに実行させる画像処理プログラムの発明をも把握することができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、パーソナルコンピューターやサーバー等のハードウェアによって実現されてもよいし、画像入力装置としてのデジタルスチルカメラやスキャナー、あるいは、画像出力装置としてのプリンター（印刷装置）やプロジェクターやフォトヴューワー等、様々な製品によって実現することができる。
【図面の簡単な説明】
【００１２】
【図１】画像処理装置としてのプリンターの構成を概略的に示す説明図である。
【図２】画像補正処理の一例を示したフローチャートである。
【図３】ＵＩの一例を示した説明図である。
【図４】対象画像から顔領域が検出された様子を示した説明図である。
【図５】顔領域から器官領域が検出された様子を示した説明図である。
【図６】顔変形処理の詳細を示したフローチャートである。
【図７】顔領域に対して変形領域を設定した様子を示した説明図である。
【図８】変形領域の小領域への分割方法の一例を示した説明図である。
【図９】分割点毎の移動量の一例を示した図である。
【図１０】顔変形処理によって変形領域内の画像が変形される様子の一例を示した図である。
【図１１】小領域画像の変形処理を概念的に示す説明図である。
【図１２】三角形領域における画像の変形処理方法の概念を示す説明図である。
【図１３】一方向変形処理によって対象画像の各領域が変形される様子の一例を示した図である。
【図１４】一方向変形処理の詳細を示したフローチャートである。
【図１５】一方向変形処理を模式的に示した説明図である。
【図１６】対象領域内において顔領域が互いに重なった様子を示した図である。
【図１７】分割点毎の移動量の他の例を示した図である。
【図１８】顔変形処理によって変形領域内の画像が変形される様子の他の例を示した図である。
【図１９】変形領域が圧縮領域と拡大領域に跨っている様子を示した図である。
【発明を実施するための形態】
【００１３】
下記の順序に従って、本発明の実施形態を説明する。
１．画像処理装置の概略構成
２．画像補正処理
３．まとめ
【００１４】
１．画像処理装置の概略構成
図１は、本発明にかかる画像処理装置の一例としてのプリンター１００の構成を概略的に示す説明図である。プリンター１００は、メモリーカードＭＣ等の記録メディアから取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンターである。プリンター１００は、内部メモリー１２０と、ＣＰＵ１１０と、操作部１４０と、表示部１５０と、プリンターエンジン１６０と、カードインターフェース（カードＩ／Ｆ）１７０と、カードスロット１７２とを備えている。
【００１５】
内部メモリー１２０は、ＲＯＭやＲＡＭによって構成されており、機能ブロックとして、画像補正処理部２００と、表示処理部３１０と、印刷処理部３２０とを備えている。画像補正処理部２００は、所定のオペレーティングシステムの下で、後述する画像補正処理を実行するためのコンピュータープログラムである。画像補正処理部２００は、プログラムモジュールとして、顔領域検出部２１０と、変形方向設定部２２０と、一方向変形部２３０とを有している。一方向変形部２３０は、ＲＡＭに設けられた一時記憶領域であるバッファ領域と、対応画素数テーブル４１０とを用いることにより、画像補正処理の一種としての一方向変形処理を実行する。一方向変形部２３０は、特許請求の範囲における領域設定部および画像変形部を兼ねている。さらに、画像補正処理部２００は、プログラムモジュールとして、顔変形部２４０を含んでいる。顔変形部２４０は、分割点配置パターンテーブル４２０を用いて、画像補正処理の一種としての顔変形処理を実行する。これら各部の機能については後述する。
【００１６】
表示処理部３１０は、表示部１５０を制御して、表示部１５０上に処理メニューやメッセージや画像等を表示させるディスプレードライバーである。印刷処理部３２０は、画像データに対して所定の色変換処理やハーフトーン処理を施すことにより画素毎のインク量を規定した印刷データを生成し、プリンターエンジン１６０を制御して当該印刷データに基づいて画像の印刷を実行させるためのコンピュータープログラムである。印刷処理部３２０による色変換処理やハーフトーン処理の処理対象となる画像データには、例えば、画像補正処理部２００によって画像補正処理が実行された後の画像を表す画像データが該当する。ＣＰＵ１１０は、上述したこれらのプログラムを内部メモリー１２０から読み出して実行することにより、これら各部の機能をそれぞれ実現する。
【００１７】
操作部１４０は、ボタンやタッチパネルを備えておりユーザーによる指示等の入力を受け付ける。表示部１５０は、例えば液晶ディスプレーによって構成されている。プリンターエンジン１６０は、印刷処理部３２０から送信される印刷データに基づき印刷を行う印刷機構である。カードＩ／Ｆ１７０は、カードスロット１７２に挿入されたメモリーカードＭＣとの間でデータのやり取りを行うためのインターフェースである。プリンター１００は、カードＩ／Ｆ１７０以外にも、他の機器（例えばデジタルスチルカメラやパーソナルコンピューター）とのデータ通信を行うためのインターフェースを備える構成とすることもできる。以上の各構成要素は、バスを介して互いに接続されている。
プリンター１００は、人画像を含む画像に対して顔変形処理および一方向変形処理を実行することにより、人画像を全体的に細くあるいは太く変形させることができるとともに、人物の顔のバランス（顔の縦横比）を適正化することができる。
【００１８】
２．画像補正処理
図２は、プリンター１００によって実行される画像補正処理をフローチャートにより示している。
ステップＳ（以下、ステップの表記を省略する。）１００では、画像補正処理部２００は、処理対象となる対象画像を設定（取得）する。例えば、カードスロット１７２にメモリーカードＭＣが挿入されると、表示処理部３１０は、メモリーカードＭＣに格納された画像の表示を含むユーザーインターフェース（ＵＩ）を表示部１５０に表示させる。そして、画像補正処理部２００は、当該ＵＩからの入力に従って対象画像を設定する。
【００１９】
図３は、表示部１５０に表示されるＵＩの一例を示している。例えば、ＵＩは、画像表示欄ＩＡと、２つの画像切替用ボタンＢ１，Ｂ２と、通常印刷ボタンＢ３と、補正印刷ボタンＢ４と、キャンセル用ボタンＢ５とを備えている。ユーザーは、画像表示欄ＩＡを見ながら画像切替用ボタンＢ１，Ｂ２を操作して対象画像を選択し、通常印刷ボタンＢ３、補正印刷ボタンＢ４のいずれかを押下することで対象画像を設定できる。図３の例では、人物Ｐ１，Ｐ２が写った画像ＴＩが対象画像として選択されており、この状態でユーザーが通常印刷ボタンＢ３、補正印刷ボタンＢ４のいずれかを押下することで、画像補正処理部２００は、画像ＴＩを対象画像として設定する。なおＵＩは、メモリーカードＭＣ内の複数の画像を一覧表示する構成とすることもできる。
【００２０】
ユーザーが補正印刷ボタンＢ４を押下すると、画像補正処理部２００は、対象画像に対して後述するように顔変形処理および一方向変形処理を施す。プリンター１００は、当該フローチャート終了後は、補正処理が実行された画像を印刷する。ただし、ユーザーが通常印刷ボタンＢ３を押下した場合には、プリンター１００は、対象画像について顔変形処理および一方向変形処理を行なうことなく、通常通り印刷する。
【００２１】
Ｓ２００では、画像補正処理部２００は、上記ＵＩのボタンに対するユーザーの操作によって、「補正印刷」の実行が指示されているか否か判断し、「補正印刷」が指示されている場合にはＳ３００以下の処理に進み、「通常印刷」が指示されている場合には当該フローチャートを終了する。以下では、Ｓ１００においてユーザーが補正印刷ボタンＢ４を押下げし「補正印刷」の実行指示をしたとして、説明を続ける。
【００２２】
Ｓ３００では、顔領域検出部２１０が、対象画像を表す画像データをメモリーカードＭＣから内部メモリー１２０に読み出すとともに、対象画像における顔領域の検出を行う。顔領域とは、対象画像内の顔画像の少なくとも一部を含む領域であって、少なくとも所定の顔器官（目や鼻や口）を含むと想定される領域である。顔領域検出部２１０は、対象画像を表す画像データを解析して当該顔器官を含むと想定される矩形の領域を顔領域として検出する。顔領域の検出は、例えばテンプレートを利用したパターンマッチングによる方法（特開２００６‐２７９４６０参照）といった公知の検出方法を用いて実行される。顔領域検出部２１０は、上記パターンマッチングにも、顔領域を検出可能な手法であればあらゆる手法を採用することができる。例えば、顔領域検出部２１０は、対象画像内に設定した矩形領域（検出対象領域）単位で、画像の各種情報（例えば、輝度情報やエッジ量やコントラスト等。）を入力し検出対象領域が顔領域に該当するか否かを示す情報を出力する、予め学習されたニューラルネットワークを用いることにより、顔領域の検出を行なっても良いし、サポートベクタマシンを利用して検出対象領域毎に顔領域であるか否かを判断してもよい。
【００２３】
図４は、Ｓ３００における顔領域の検出結果の一例を示す説明図である。図４の例では、対象画像ＴＩに２人の人物Ｐ１，Ｐ２の画像が含まれているため、人物Ｐ１，Ｐ２の顔画像に対応する顔領域Ｆｄ（Ｆｄ１，Ｆｄ２）が検出されている。つまり、対象画像内に複数の顔画像が存在する場合には、顔領域検出部２１０によってそれぞれの顔画像にかかる顔領域Ｆｄが検出される。顔領域Ｆｄは、対応する顔における両目と鼻と口の各画像をすべて含む矩形の領域である。顔領域検出部２１０は、顔領域Ｆｄを、その領域の４つの頂点の座標により特定する。ただし、メモリーカードＭＣに格納された対象画像を表す画像データに、既に対象画像内の顔領域Ｆｄの検出結果（画像内の顔領域の位置を特定する情報）が付属情報として存在している場合もある。例えば、対象画像の撮影に用いられたデジタルスチルカメラの機能によって既に対象画像から顔領域Ｆｄが検出され、その検出結果を示した情報が画像データとともにメモリーカードＭＣに記録されている場合等である。このような場合には、顔領域検出部２１０は対象画像から顔領域Ｆｄの検出を行なう必要はなく、上記付属情報に基づいて対象画像内の顔領域Ｆｄを特定する。
【００２４】
Ｓ４００では、変形方向設定部２２０が、一方向変形処理のための変形方向を設定する。以下、「変形方向」と言った場合には、一方向変形処理のための変形方向を意味する。変形方向は、特許請求の範囲における特定方向に該当する。変形方向は、対象画像の横方向または縦方向のどちらかである。本実施形態では、対象画像の長辺方向を横方向とし、対象画像の短辺方向を縦方向として取り扱う。変形方向設定部２２０は、変形方向を外部からのユーザーの入力に応じて設定することも可能であるし、対象画像の解析結果によって設定することも可能である。
【００２５】
変形方向をユーザーの入力に応じて設定する場合、変形方向設定部２２０は、表示処理部３１０に変形方向設定用のＵＩを表示する処理を実行することを指示し、表示処理部３１０は、当該指示に応じて、表示部１５０に変形方向設定用のＵＩを表示させる。ユーザーは、変形方向設定用のＵＩを介し、変形方向として「横方向」または「縦方向」のどちらを選択するかを入力する。変形方向設定部２２０は、ユーザーの入力によって選択された「横方向」または「縦方向」を、変形方向として設定する。なおユーザーは、表示部１５０に表示された対象画像を視認しながら、基本的には、対象画像の横方向と縦方向とのうち、対象画像内の顔の左右方向（顔の幅方向）となす角度が小さい方向を、変形方向として選択する。
【００２６】
変形方向を対象画像の解析結果によって設定する場合、変形方向設定部２２０は、対象画像中の顔の傾きに応じて横方向または縦方向のどちらかを変形方向として設定する。例えば、変形方向設定部２２０は、Ｓ３００で顔領域検出部２１０が検出または特定した顔領域Ｆｄ内における、右目の画像を含む領域（右目領域）と左目を含む領域（左目領域）とを検出する。この器官領域（右目領域、左目領域）の検出は、顔領域の検出と同様に、例えばテンプレートを利用したパターンマッチングによる方法といった公知の検出方法を用いて実行することができる。
【００２７】
図５は、器官領域の検出結果の一例を示す説明図である。図５の例では、顔領域Ｆｄ１において、右目領域ＥＲと左目領域ＥＬとが検出されている。変形方向設定部２２０は、検出した右目領域ＥＲ、左目領域ＥＬを、それぞれの領域の４つの頂点の座標によって特定することができる。変形方向設定部２２０は、右目領域ＥＲの中心点ＣＲと左目領域ＥＬの中心点ＣＬとを結ぶ線分Ｌ１に対して対象画像ＴＩ内で直交する線分Ｌ２を、顔の上下方向（顔の高さ方向）を規定する線分として扱い、線分Ｌ２の傾きを顔の傾きとする。例えば、変形方向設定部２２０は、対象画像ＴＩの縦方向に対する線分Ｌ２の傾きが４５°より小さい場合は、変形方向を「横方向」に設定する。一方、対象画像ＴＩの縦方向に対する線分Ｌ２の傾きが４５°より大きい場合は、変形方向を「縦方向」に設定する。線分Ｌ２の傾きが４５°である場合、変形方向を予め定められた標準方向（例えば、横方向）に設定する。
【００２８】
対象画像に複数の顔が含まれている場合は、変形方向設定部２２０は、変形方向を、より大きい顔の傾きに応じて設定するとしてもよい。あるいは、対象画像に複数の顔が含まれている場合、対象画像の縦方向または横方向に対する傾きが最も小さい顔の傾きに応じて、変形方向を設定してもよいし、複数の顔の傾きの平均に応じて変形方向を設定してもよい。以下では、変形方向として横方向が設定されたものとして説明を続ける。
【００２９】
Ｓ５００では、顔変形部２４０が、対象画像内のある一つの顔領域Ｆｄについて、その顔の高さ方向の傾きが後述の顔変形処理の対象となり得る傾きであるか否か判定する。具体的には、Ｓ４００で設定された変形方向と、顔の高さ方向とがなす角度が基準角度より大きいか否か判定し、基準角度より大きい場合（Ｙｅｓ）にはＳ６００（顔変形処理）に進み、基準角度以下である場合（Ｎｏ）にはＳ６００をスキップしてＳ７００に進む。ここで用いる基準角度としては、例えば４５°が該当する。上述したようにＳ４００では、対象画像内の顔の傾きを考慮して基本的にＳ５００で“Ｙｅｓ”と判定されるような変形方向が設定されるものの、ユーザーの設定ミスや、顔が複数ある場合に一部の顔については変形方向に対して顔の高さ方向が寝ている（変形方向と顔の高さ方向との間の角度が４５°以内。）事態もあり得る。そのためＳ５００の判定を行う必要がある。
【００３０】
Ｓ５００の判定を行なうために、画像補正処理部２００は、Ｓ４００でユーザーの入力に応じて変形方向を設定した場合であっても、顔の高さ方向を規定する線分Ｌ２の上記器官領域の検出に基づく特定を、顔毎に行なう。
Ｓ７００では、顔変形部２４０は、対象画像内で検出された全ての顔領域Ｆｄを一つずつ対象としたＳ５００の判定を終えたか否か判定し、全ての顔領域ＦｄについてＳ５００の判定を終えている場合（Ｙｅｓ）にはＳ８００に進み、終えていない場合（Ｎｏ）にはＳ５００に戻り未判定の顔領域Ｆｄを対象として処理を繰り返す。
【００３１】
なお、図１６に示すように、対象画像ＴＩ内において検出された複数の顔領域Ｆｄが互いに重なっている場合もある。このように互いに重なっている各顔領域Ｆｄについて顔変形処理の対象とした場合、一方の顔の変形結果が他方の顔に悪影響を与えるなど、かえって画像を破綻させてしまうこともあり得る。そのため本実施形態では、顔変形部２４０は、対象画像ＴＩから複数の顔領域Ｆｄが検出された場合には、一部分でも他の顔領域Ｆｄと重なっている顔領域Ｆｄについては顔変形処理の処理対象としない。つまりＳ５００では、実質的に、変形方向と顔の高さ方向とがなす角度が基準角度以上かつ他の顔領域Ｆｄと重なっていない顔領域Ｆｄについて、“Ｙｅｓ”と判定する。
Ｓ６００では、顔変形部２４０は、対象画像内の各顔画像を対象として、顔変形処理を実行する。
【００３２】
図６は、Ｓ６００における顔変形処理の詳細をフローチャートにより示している。
Ｓ６１０では、顔変形部２４０は、顔領域Ｆｄ（直近のＳ５００で判定の対象となった顔領域Ｆｄ）を基準にして変形領域を設定する。変形領域とは、対象画像内の顔領域Ｆｄを含む領域であって顔変形処理の対象となる領域を意味する。変形領域は顔画像の全体をカバーする矩形領域であり、変形領域を顔画像として解釈してもよい。また上記では、顔領域Ｆｄ同士が重なるものについては、顔変形処理の対象から外すとしたが、変形領域同士が重なる各顔について顔変形処理の対象から外すとしてもよい。
【００３３】
図７は、変形領域の設定方法の一例を示す説明図である。図７において、実線の矩形ＴＡは、顔領域Ｆｄについて設定される変形領域ＴＡを示す。基準線ＲＬは、顔領域Ｆｄの高さ方向（上下方向）を定義すると共に、顔領域Ｆｄの幅方向（左右方向）の中心を示す線である。基準線ＲＬは、矩形の顔領域Ｆｄの重心を通り、顔領域Ｆｄの高さ方向に沿った境界線に平行な直線である。基準線ＲＬは線分Ｌ２と略平行な線であるとも言える。よって、上記Ｓ５００の判定では、変形方向と線分Ｌ２との角度を調べる代わりに、変形方向と基準線ＲＬとの角度を調べてもよい。変形領域ＴＡは、顔領域Ｆｄを基準線ＲＬと平行な方向（高さ方向）および基準線ＲＬに直交する方向（幅方向）に伸張した領域として設定される。具体的には、顔領域Ｆｄ１の高さ方向の長さをＨ１、幅方向の大きさをＷ１とすると、顔領域Ｆｄを、上方向にｋ１・Ｈ１、下方向にｋ２・Ｈ１だけ伸ばすと共に、左右にそれぞれｋ３・Ｗ１だけ伸ばした領域が、変形領域ＴＡとして設定される。ｋ１，ｋ２，ｋ３は、所定の係数である。このように変形領域ＴＡが設定されると、顔領域Ｆｄの高さ方向の輪郭線に平行な直線である基準線ＲＬは、変形領域ＴＡの高さ方向の輪郭線にも平行な直線となる。また、基準線ＲＬは、変形領域ＴＡの幅を半分に分割する直線となる。
【００３４】
図７に示すように、変形領域ＴＡは、高さ方向に関しては、概ね顎から頭頂部までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち本実施形態では、変形領域ＴＡが概ねそのような範囲の画像を含む領域となるように、上述の係数ｋ１，ｋ２，ｋ３を予め実験により求めて設定されている。
Ｓ６２０では、顔変形部２４０は、Ｓ６１０で設定された変形領域を複数の小領域に分割する。
【００３５】
図８は、変形領域の小領域への分割方法の一例を示す説明図である。図８では、変形領域ＴＡを記載している。顔変形部２４０は、変形領域ＴＡに複数の分割点Ｄを配置し、分割点Ｄを結ぶ直線を用いて変形領域ＴＡを複数の小領域に分割する。分割点Ｄの配置の態様（分割点Ｄの個数および位置）は、分割点配置パターンテーブル４２０により定義されている。顔変形部２４０は、分割点配置パターンテーブル４２０を参照して分割点Ｄを配置する。図８の例では、分割点Ｄは、水平分割線Ｌｈと垂直分割線Ｌｖとの交点と、水平分割線Ｌｈおよび垂直分割線Ｌｖと変形領域ＴＡの外枠との交点とに配置される。水平分割線Ｌｈおよび垂直分割線Ｌｖは、変形領域ＴＡ内に分割点Ｄを配置するための基準となる線である。図８に示すように、本実施形態における分割点Ｄの配置では、基準線ＲＬと直交する３本の水平分割線Ｌｈと、基準線ＲＬに平行な４本の垂直分割線Ｌｖとが設定される。３本の水平分割線Ｌｈを、変形領域ＴＡの下方から順に、Ｌｈ１，Ｌｈ２，Ｌｈ３と呼ぶ。また、４本の垂直分割線Ｌｖを、変形領域ＴＡの左から順に、Ｌｖ１，Ｌｖ２，Ｌｖ３，Ｌｖ４と呼ぶ。
【００３６】
水平分割線Ｌｈ１は、変形領域ＴＡにおいて、顎の画像より下方に配置され、水平分割線Ｌｈ２は、目の画像の下付近に配置され、水平分割線Ｌｈ３は、目の画像の上付近あるいは額の画像辺りに配置される。垂直分割線Ｌｖ１およびＬｖ４は、頬のラインの画像の外側に配置され、垂直分割線Ｌｖ２およびＬｖ３は、目尻の画像の外側に配置される。水平分割線Ｌｈおよび垂直分割線Ｌｖの配置は、水平分割線Ｌｈおよび垂直分割線Ｌｖと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域ＴＡの大きさとの対応関係に従い実行される。
【００３７】
上述した水平分割線Ｌｈと垂直分割線Ｌｖとの配置に従い、水平分割線Ｌｈと垂直分割線Ｌｖとの交点と、水平分割線Ｌｈおよび垂直分割線Ｌｖと変形領域ＴＡの外枠との交点とに、分割点Ｄが配置される。図８に示すように、水平分割線Ｌｈｉ（ｉ＝１，２，３のいずれか）上に位置する分割点Ｄを、左から順に、Ｄ０ｉ，Ｄ１ｉ，Ｄ２ｉ，Ｄ３ｉ，Ｄ４ｉ，Ｄ５ｉと呼ぶ。例えば、水平分割線Ｌｈ１上に位置する分割点Ｄは、Ｄ０１，Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１，Ｄ５１と呼ばれる。同様に、垂直分割線Ｌｖｊ（ｊ＝１，２，３，４のいずれか）上に位置する分割点Ｄを、下から順に、Ｄｊ０，Ｄｊ１，Ｄｊ２，Ｄｊ３と呼ぶ。例えば、垂直分割線Ｌｖ１上に位置する分割点Ｄは、Ｄ１０，Ｄ１１，Ｄ１２，Ｄ１３と呼ばれる。本実施形態における分割点Ｄの配置は、基準線ＲＬに対して対称の配置となっている。顔変形部２４０は、配置された分割点Ｄを結ぶ直線（水平分割線Ｌｈおよび垂直分割線Ｌｖ）によって変形領域ＴＡを複数の小領域に分割する。図８の例では、変形領域ＴＡは、２０個の矩形の小領域に分割されている。
【００３８】
Ｓ６３０では、顔変形部２４０は、所定の分割点Ｄについての移動量を、一方向変形処理に用いる圧縮率あるいは拡大率に応じて決定する。ここで、後述の一方向変形処理（Ｓ８００）では、対象画像内に圧縮領域および拡大領域を設定した状況下、圧縮領域については所定の圧縮率で圧縮し、拡大領域については所定の拡大率で拡大する。圧縮領域および拡大領域の設定は、一方向変形部２３０が行なう。具体的には、一方向変形部２３０は、対象画像を変形方向に垂直な分割線（水平分割線Ｌｈおよび垂直分割線Ｌｖとは異なる分割線）によって分割することにより、略中央位置の圧縮領域と、圧縮領域の左右に位置する拡大領域とに分けて設定する。
【００３９】
一方向変形部２３０による、当該変形方向に垂直な分割線による圧縮領域と拡大領域への分け方は様々であり、例えば、予め固定値として内部メモリー１２０等に設定されている圧縮領域と拡大領域との面積比によって分けてもよいし、操作部１４０および表示部１５０を介してユーザーが対象画像上に指定した分割線の位置によって分けてもよいし、あるいは、対象画像のより中央に位置する変形領域の全体を含む領域を圧縮領域として設定するとともに当該設定した圧縮領域の左右の領域を拡大領域として設定してもよい。以下では、単に「圧縮領域」と言った場合には一方向変形処理の為に対象領域内に設定された圧縮領域を意味し、単に「拡大領域」と言った場合には一方向変形処理の為に対象領域内に設定された拡大領域を意味する。
【００４０】
本実施形態では、一方向変形部２３０は、上記のような対象画像内における圧縮領域および拡大領域の設定を、少なくとも顔変形部２４０がＳ６３０の処理を開始する前に行なっておく。そして、Ｓ６３０では、顔変形部２４０は、対象画像内が圧縮領域と拡大領域とに分けられていることを前提として、Ｓ６１０で設定された変形領域が圧縮領域と拡大領域とのいずれに含まれているか判断し、圧縮領域に含まれている場合には当該圧縮領域に一方向変形処理で用いられる圧縮率に応じて上記移動量を決定し、拡大領域に含まれている場合には当該拡大領域に一方向変形処理で用いられる拡大率に応じて上記移動量を決定する。以下、単に「圧縮率」と表現した場合には、一方向変形処理の際に圧縮領域に適用される圧縮率を意味し、単に「拡大率」と表現した場合には、一方向変形処理の際に拡大領域に適用される拡大率を意味する。
【００４１】
圧縮率および拡大率は、予め固定値として内部メモリー１２０等に記憶されていてもよいし、操作部１４０等を介してユーザーによって入力された数値であってもよい。或いは、プリンター１００は、一方向変形処理後の対象画像のサイズが変わり過ぎることを防止するために、ＵＩを介して圧縮率と拡大率のいずれか一方のみをユーザーに入力させ、入力された圧縮率または拡大率の一方の値に応じて、入力されていない圧縮率または拡大率の値を決定するとしてもよい。
【００４２】
顔変形部２４０は、上述したように予め内部メモリー１２０に記憶されていた圧縮率および拡大率または、ユーザーによって入力された（あるいはユーザーの入力に従って決定された）圧縮率および拡大率を取得することができる。
ここではまず、顔変形部２４０が、変形領域は圧縮領域に含まれていると判断し、圧縮領域に適用される圧縮率として「３０％」という値を取得した場合について説明する。３０％の圧縮率とは、言い換えれば、一方向変形処理前の圧縮領域の変形方向における長さを一方向変形処理後に０．７倍の長さにするための倍率である。
【００４３】
顔変形部２４０は、変形領域が圧縮領域に含まれていると判断した場合、その変形領域にかかる顔画像の少なくとも一部が変形方向に拡大されるように、所定の分割点Ｄについて基準線ＲＬから離れる向きへの移動量を圧縮率に応じて設定する。本実施形態では、顔変形部２４０は、各分割点Ｄのうち変形領域ＴＡの枠よりも内側に存在する分割点Ｄ１１，Ｄ１２，Ｄ１３，Ｄ２１，Ｄ２２，Ｄ２３，Ｄ３１，Ｄ３２，Ｄ３３，Ｄ４１，Ｄ４２，Ｄ４３についての移動量を決定する。図８に示したように、基準線ＲＬと直交する方向をＨ方向と呼び、基準線ＲＬと平行な方向をＶ方向と呼ぶ。また、Ｈ方向については、向かって右側への移動量を正値（プラス）として表し、向かって左側への移動量を負値（マイナス）として表し、Ｖ方向については、上方への移動量を正値（プラス）として表し、下方への移動量を負値（マイナス）として表す。
【００４４】
ここでは、変形方向とＨ方向とがなす角度は変形方向とＶ方向とがなす角度よりも小さいと言える。従って、所定の分割点Ｄについて、基準線ＲＬから離れる向きへの移動量を圧縮率に基づいて設定し、設定した移動量に従って分割点Ｄを移動させれば、顔画像の一部は少なくとも変形方向にも拡大される。一例として、顔変形部２４０は、Ｈ方向における移動量として、基準線ＲＬよりも左側の分割点Ｄ１１，Ｄ２１，Ｄ１２，Ｄ２２，Ｄ１３，Ｄ２３についてはマイナス側（左側）への移動量を設定し、基準線ＲＬよりも右側の分割点Ｄ３１，Ｄ４１，Ｄ３２，Ｄ４２，Ｄ３３，Ｄ４３についてはプラス側（右側）への移動量を設定する。
【００４５】
また顔変形部２４０は、Ｖ方向における移動量として、水平分割線Ｌｈ１上の分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１についてはプラス側（上側）への移動量を設定し、水平分割線Ｌｈ３上の分割点Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３についてはマイナス側（下側）への移動量を設定する。このように水平分割線Ｌｈ１上の所定の分割点Ｄおよび水平分割線Ｌｈ３上の所定の分割点Ｄについて移動量を設定し、設定した移動量に従って分割点Ｄを移動させれば、顔画像の一部は少なくとも変形方向と直交する方向にも圧縮される。
【００４６】
より具体的には、顔変形部２４０は、各分割点Ｄの移動量を設定する際、圧縮率が示す数値（３０％）を、まず変形領域内の画像のＨ方向における変形量（拡大量）とＶ方向における変形量（圧縮量）とに所定割合で配分する。一例として、顔変形部２４０は、圧縮率が示す数値（３０％）のうち７割（２１％）をＨ方向における変形量（拡大量）に割り当て、圧縮率が示す数値（３０％）から上記Ｈ方向における変形量（拡大量）を差し引いた残り（９％）を、Ｖ方向における変形量（圧縮量）に割り当てる。
【００４７】
顔変形部２４０は、Ｈ方向とＶ方向とに割り当てた変形量をさらに、各分割点Ｄへ移動量として配分する。一例として、顔変形部２４０は、Ｈ方向に割り当てた変形量（２１％）の５割に当る数値（１０．５％）を、各分割点Ｄ１１，Ｄ１２，Ｄ１３，Ｄ２１，Ｄ２２，Ｄ２３，Ｄ３１，Ｄ３２，Ｄ３３，Ｄ４１，Ｄ４２，Ｄ４３のＨ方向における移動量（基準線ＲＬから離れる向きへの移動量）として設定し、Ｖ方向に割り当てた変形量（９％）の３割に当る数値（２．７％）を、水平分割線Ｌｈ１上の各分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１のＶ方向プラス側への移動量として設定し、Ｖ方向に割り当てた変形量（９％）の７割に当る数値（６．３％）を、水平分割線Ｌｈ３上の各分割点Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３のＶ方向マイナス側への移動量として設定する。この結果、例えば、分割点Ｄ１１については、Ｈ方向マイナス側への移動量として１０．５％という数値が設定され、Ｖ方向プラス側への移動量として２．７％という数値が設定される。また、分割点Ｄ４３については、Ｈ方向プラス側への移動量として１０．５％という数値が設定され、Ｖ方向マイナス側への移動量として６．３％という数値が設定される。このように設定された分割点ＤのＨ方向、Ｖ方向への移動量は、変形領域ＴＡのＨ方向、Ｖ方向の長さ（画素数）に対する割合を意味する。
【００４８】
上述したような、圧縮率が示す数値をＨ方向とＶ方向との変形量に配分する際の割合（配分比率）や、Ｈ方向の変形量やＶ方向の変形量を各分割点Ｄに配分する際の割合は、限られるものではない。また、顔変形部２４０は、分割点ＤのＨ方向、Ｖ方向の移動量について、分割点Ｄ毎に更なる変更を加えても良い。ただし、原則的には、各分割点Ｄの移動態様は、基準線ＲＬを挟んで左右対称になるようにし、また、このように変形領域が圧縮領域に含まれている場合の顔変形処理においては、水平分割線Ｌｈ１上の各分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１をＶ方向プラス側へ移動させる量よりも、水平分割線Ｌｈ３上の各分割点Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３をＶ方向マイナス側へ移動させる量を多くする。これは、水平分割線Ｌｈ１上の各分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１をＶ方向プラス側へ大きく移動させることによって変形後の首の画像が長くなってしまうことを、防ぐためである。
【００４９】
図９は、顔変形部２４０が、上記のように圧縮率が示す数値をＨ方向とＶ方向との変形量に配分し、さらにＨ方向およびＶ方向の変形量を各分割点Ｄに配分して決定した移動量の一例を表によって示している。ただし図９では、上記のように圧縮率に応じて決定した各分割点Ｄの移動量を、さらに分割点Ｄの位置に応じて変更した後の移動量を示している。また図９では、各分割点Ｄの移動量を上記のようなｎ％といった表現ではなく、画素ピッチに換算した値によって示している。例えば、分割点Ｄ１３については、Ｈ方向に沿って左側に画素ピッチの１９倍の距離の移動量が設定され、Ｖ方向に沿って下方に画素ピッチの７倍の距離の移動量が設定されている。さらに、図９の例では、水平分割線Ｌｈ１上の分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１および水平分割線Ｌｈ３上の分割点Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３に対してだけではなく、水平分割線Ｌｈ２上の分割点Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２に対しても、Ｖ方向における移動量を設定した例を示している。
Ｓ６４０では、顔変形部２４０は、Ｓ６３０で決定した分割点Ｄ毎の移動量に従い各分割点Ｄを移動して変形領域ＴＡ内で小領域を変形することによって、変形領域ＴＡ内の画像を変形させる。
【００５０】
図１０は、図９に例示した分割点Ｄ毎の移動量に従って、各分割点Ｄの位置を移動させて変形領域ＴＡ内の画像を変形する際の具体的態様を示している。顔変形部２４０は、変形領域ＴＡを構成する各小領域について、分割点Ｄの位置移動前の状態における小領域の画像が分割点Ｄの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。図１０では比較の便宜のため、変形前の人物Ｐ１の顔の輪郭を鎖線で示し、変形後の人物Ｐ１の顔の輪郭を実線で示している。また図１０では、移動後の分割点Ｄの符号には「’」を付し、移動前の分割点Ｄ（白丸）の符号には括弧を付している。例えば、分割点Ｄ１１，Ｄ２１，Ｄ２２，Ｄ１２を頂点とする小領域（ハッチングを付して示す小領域）の画像は、分割点Ｄ’１１，Ｄ’２１，Ｄ’２２，Ｄ’１２を頂点とする小領域の画像に変形される。この小領域画像の変形処理の詳細については後述する。
【００５１】
図１０に示すように、Ｓ６４０における分割点Ｄの移動の結果、基準線ＲＬと平行な方向（Ｖ方向）に関し、水平分割線Ｌｈ１上に配置された分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１の位置は上方に移動される一方、水平分割線Ｌｈ２，Ｌｈ３上に配置された分割点Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２，Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３の位置は下方に移動される。従って、水平分割線Ｌｈ１と水平分割線Ｌｈ３との間に位置する画像はＶ方向に関して圧縮され、その中でも特に水平分割線Ｌｈ１と水平分割線Ｌｈ２との間に位置する画像はＶ方向に関して強く圧縮される。
【００５２】
基準線ＲＬと直交する方向（Ｈ方向）に関しては、垂直分割線Ｌｖ１上に配置された分割点Ｄ１１，Ｄ１２，Ｄ１３の位置は左方向に移動され、垂直分割線Ｌｖ４上に配置された分割点Ｄ４１，Ｄ４２，Ｄ４３の位置は右方向に移動される。垂直分割線Ｌｖ２上に配置された分割点Ｄ２１，Ｄ２２，Ｄ２３の位置は左方向に移動され、垂直分割線Ｌｖ３上に配置された分割点Ｄ３１，Ｄ３２，Ｄ３３の位置は右方向に移動される。従って、垂直分割線Ｌｖ１より左側に位置する画像は、Ｈ方向に関して左側に圧縮され、垂直分割線Ｌｖ４より右側に位置する画像は、右側に圧縮される。また、垂直分割線Ｌｖ１と垂直分割線Ｌｖ２との間に位置する画像は、Ｈ方向に関して左側に移動しつつ拡大され、垂直分割線Ｌｖ３と垂直分割線Ｌｖ４との間に位置する画像は、Ｈ方向に関して右側に移動しつつ拡大される。さらに、垂直分割線Ｌｖ２と垂直分割線Ｌｖ３との間に位置する画像は、基準線ＲＬを中心にＨ方向に関して拡大される。
【００５３】
上述したように、水平分割線Ｌｈ１は顎の画像より下方に配置され、水平分割線Ｌｈ３は頭頂部の画像より上に配置され、垂直分割線Ｌｖ１およびＬｖ４は、頬のラインの画像の外側に配置され、垂直分割線Ｌｖ２およびＬｖ３は、目尻の画像の外側に配置される。そのため、このように変形領域が圧縮領域に含まれている場合の顔変形処理では、顔画像の内、顎から頭頂部にかけての部分の画像がＶ方向に縮小されるとともに、左右の頬と頬の間の顔画像が全体的にＨ方向に拡大される。以上のＨ方向およびＶ方向の変形態様を総合すると、かかる顔変形処理によって、変形領域ＴＡに含まれる人物Ｐ１の顔の形状は、上下方向においてある程度押しつぶされ、幅方向に太った形状に変形される。
【００５４】
なお顔変形部２４０は、Ｓ６３０において、圧縮率が示す数値を最終的に各分割点Ｄに配分して決定した各移動量に対して、さらに所定の補正係数を乗算し、当該補正係数を乗算して得られた各値を、各分割点Ｄの移動量としてもよい。ここで言う補正係数とは、例えば０以上１未満の数値であって、顔変形処理による顔の幅方向（Ｈ方向）における拡大の度合いおよび顔の高さ方向（Ｖ方向）における圧縮の度合いを抑制するための数値である。補正係数の具体値は、予め内部メモリー１２０に記憶されていてもよいし、ユーザーの入力に設定されてもよい。このような補正係数による変形度合いの抑制は、例えば、上記のように圧縮率に基づいて各分割点Ｄに配分した移動量を各分割点Ｄに適用して変形処理を施したときに、変形量が大きすぎて画像に破綻を生じさせる恐れがある場合等に行なう。
【００５５】
図１１は、Ｓ６４０において実行される小領域画像の変形処理を概念的に示す説明図である。図１１では、分割点Ｄを黒丸で示している。また、説明を簡略化するために、４つの小領域について、左側に分割点Ｄの位置移動前の状態を、右側に分割点Ｄの位置移動後の状態を、それぞれ示している。図１１の例では、中央の分割点Ｄａが分割点Ｄａ’の位置に移動され、その他の分割点Ｄの位置は移動されない。これにより、例えば、分割点Ｄの移動前の分割点Ｄａ，Ｄｂ，Ｄｃ，Ｄｄを頂点とする矩形の小領域（以下「変形前注目小領域ＢＳＡ」とも呼ぶ）の画像は、分割点Ｄａ’，Ｄｂ，Ｄｃ，Ｄｄを頂点とする矩形の小領域（以下「変形後注目小領域ＡＳＡ」とも呼ぶ）の画像に変形される。
【００５６】
本実施形態では、矩形の小領域を小領域の重心ＣＧを用いて４つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図１１の例では、変形前注目小領域ＢＳＡが、変形前注目小領域ＢＳＡの重心ＣＧを頂点の１つとする４つの三角形領域に分割される。同様に、変形後注目小領域ＡＳＡが、変形後注目小領域ＡＳＡの重心ＣＧ’を頂点の１つとする４つの三角形領域に分割される。そして、分割点Ｄａの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域ＢＳＡ中の分割点Ｄａ，Ｄｄおよび重心ＣＧを頂点とする三角形領域の画像が、変形後注目小領域ＡＳＡ中の分割点Ｄａ’，Ｄｄおよび重心ＣＧ’を頂点とする三角形領域の画像に変形される。
【００５７】
図１２は、三角形領域における画像の変形処理方法の概念を示す説明図である。図１２の例では、点ｓ，ｔ，ｕを頂点とする三角形領域ｓｔｕの画像が、点ｓ’，ｔ’，ｕ’を頂点とする三角形領域ｓ’ｔ’ｕ’の画像に変形される。画像の変形は、変形後の三角形領域ｓ’ｔ’ｕ’の画像中のある画素の位置が、変形前の三角形領域ｓｔｕの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
【００５８】
例えば、図１２において、変形後の三角形領域ｓ’ｔ’ｕ’の画像中の注目画素ｐ’の位置は、変形前の三角形領域ｓｔｕの画像中の位置ｐに相当するものとする。位置ｐの算出は、以下のように行う。まず、注目画素ｐ’の位置を、下記の式（１）のようにベクトルｓ’ｔ’とベクトルｓ’ｕ’との和で表現するための係数ｍ１およびｍ２を算出する。
【００５９】
【数１】
2010170219.tif 000003
【００６０】
次に、算出された係数ｍ１およびｍ２を用いて、下記の式（２）により、変形前の三角形領域ｓｔｕにおけるベクトルｓｔとベクトルｓｕとの和を算出することにより、位置ｐが求まる。
【００６１】
【数２】
2010170219.tif 000004
【００６２】
変形前の三角形領域ｓｔｕにおける位置ｐが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域ｓｔｕにおける位置ｐが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置ｐの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置ｐにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【００６３】
変形後の三角形領域ｓ’ｔ’ｕ’の画像中の各画素について上述のように画素値を算出することにより、三角形領域ｓｔｕの画像から三角形領域ｓ’ｔ’ｕ’の画像への画像変形処理を行うことができる。このようにして、顔変形部２４０は、変形領域ＴＡを構成する各小領域について、上述したように三角形領域を定義して変形処理を行う。
【００６４】
次に、顔変形部２４０が、変形領域は拡大領域に含まれていると判断し、拡大領域に適用される拡大率を取得した場合について説明する。顔変形部２４０は、変形領域が拡大領域に含まれていると判断した場合には、変形領域にかかる顔画像の少なくとも一部が変形方向に圧縮されるように、所定の分割点Ｄについて基準線ＲＬへ近づく向きへの移動量を拡大率に応じて設定する。この場合、変形領域が圧縮領域に含まれていたときと同様に、顔変形部２４０は、各分割点Ｄのうち変形領域ＴＡの枠よりも内側に存在する分割点Ｄ１１，Ｄ１２，Ｄ１３，Ｄ２１，Ｄ２２，Ｄ２３，Ｄ３１，Ｄ３２，Ｄ３３，Ｄ４１，Ｄ４２，Ｄ４３についての移動量を決定する。これら所定の分割点Ｄについて、基準線ＲＬに近づく向きへの移動量を拡大率に基づいて設定し、設定した移動量に従って分割点Ｄを移動させれば、顔画像の一部は少なくとも変形方向にも圧縮される。
【００６５】
また顔変形部２４０は、変形領域が拡大領域に含まれていると判断した場合、Ｖ方向における移動量として、水平分割線Ｌｈ１上の分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１についてはマイナス側（下側）への移動量を設定し、水平分割線Ｌｈ３上の分割点Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３についてはプラス側（上側）への移動量を設定してもよい。このように水平分割線Ｌｈ１上の所定の分割点Ｄおよび水平分割線Ｌｈ３上の所定の分割点Ｄについて移動量を設定し、設定した移動量に従って分割点Ｄを移動させれば、顔画像の一部は少なくとも変形方向と直交する方向にも拡大される。
【００６６】
なお、顔変形部２４０は、変形領域が圧縮領域に含まれている場合と同様に、変形領域が拡大領域に含まれている場合の各分割点Ｄの移動量設定においても、拡大率が示す数値のうちの所定割合（例えば７割）の数値をＨ方向における変形量（圧縮量）に割り当てるとともに、拡大率が示す数値からこのＨ方向における変形量（圧縮量）を差し引いた残り（例えば３割）の数値を、Ｖ方向における変形量（拡大量）に割り当てる。さらに、顔変形部２４０は、変形領域が拡大領域に含まれている場合に上記のようにＨ方向とＶ方向とに割り当てた変形量を、変形領域が圧縮領域に含まれている場合と同様に、分割点Ｄ１１，Ｄ１２，Ｄ１３，Ｄ２１，Ｄ２２，Ｄ２３，Ｄ３１，Ｄ３２，Ｄ３３，Ｄ４１，Ｄ４２，Ｄ４３に対して所定の割合で分配して設定する。
【００６７】
図１７は、顔変形部２４０が、上記のように拡大率が示す数値をＨ方向とＶ方向との変形量に配分し、さらにＨ方向およびＶ方向の変形量を各分割点Ｄに配分して決定した移動量の一例を表によって示している。ただし図１７では、上記のように拡大率に応じて決定した各分割点Ｄの移動量を、さらに分割点Ｄの位置に応じて変更した後の移動量を示している。また図１７では図９と同様に、各分割点Ｄの移動量を画素ピッチに換算した値によって示している。図１７の例では、水平分割線Ｌｈ１上の分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１および水平分割線Ｌｈ３上の分割点Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３に対してだけではなく、水平分割線Ｌｈ２上の分割点Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２に対しても、Ｖ方向における移動量を設定した例を示している。
【００６８】
図１８は、図１７に例示した分割点Ｄ毎の移動量に従って、顔変形部２４０がＳ６４０において各分割点Ｄを移動して変形領域ＴＡ内の画像を変形する際の具体的態様を示している。図１８でも図１０と同様に、比較の便宜のため、変形前の人物Ｐ２の顔の輪郭を鎖線で示し、変形後の人物Ｐ２の顔の輪郭を実線で示している。また図１８でも、移動後の分割点Ｄの符号に「’」を付し、移動前の分割点Ｄ（白丸）の符号には括弧を付している。
【００６９】
図１８に示すように、Ｓ６４０における分割点Ｄの移動の結果、Ｖ方向に関し、水平分割線Ｌｈ１上に配置された分割点Ｄ１１，Ｄ２１，Ｄ３１，Ｄ４１の位置は下方に移動される一方、水平分割線Ｌｈ２，Ｌｈ３上に配置された分割点Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２，Ｄ１３，Ｄ２３，Ｄ３３，Ｄ４３の位置は上方に移動される。従って、水平分割線Ｌｈ１と水平分割線Ｌｈ３との間に位置する画像はＶ方向に関して拡大され、その中でも特に水平分割線Ｌｈ１と水平分割線Ｌｈ２との間に位置する画像はＶ方向に関して強く拡大される。
【００７０】
また図１８では、Ｈ方向に関しては、垂直分割線Ｌｖ１，Ｌｖ２上に配置された分割点Ｄ１１，Ｄ１２，Ｄ１３，Ｄ２１，Ｄ２２，Ｄ２３の位置は右方向に移動され、垂直分割線Ｌｖ３，Ｌｖ４上に配置された分割点Ｄ３１，Ｄ３２，Ｄ３３，Ｄ４１，Ｄ４２，Ｄ４３の位置は左方向に移動される。従って、垂直分割線Ｌｖ１より左側に位置する画像は、Ｈ方向に関して右側に拡大され、垂直分割線Ｌｖ４より右側に位置する画像は、左側に拡大される。また、垂直分割線Ｌｖ１と垂直分割線Ｌｖ２との間に位置する画像は、Ｈ方向に関して右側に移動しつつ圧縮され、垂直分割線Ｌｖ３と垂直分割線Ｌｖ４との間に位置する画像は、Ｈ方向に関して左側に移動しつつ圧縮される。さらに、垂直分割線Ｌｖ２と垂直分割線Ｌｖ３との間に位置する画像は、基準線ＲＬを中心にＨ方向に関して圧縮される。
【００７１】
上述したように、水平分割線Ｌｈ１は顎の画像より下方に配置され、水平分割線Ｌｈ３は頭頂部の画像より上に配置され、垂直分割線Ｌｖ１およびＬｖ４は、頬のラインの画像の外側に配置され、垂直分割線Ｌｖ２およびＬｖ３は、目尻の画像の外側に配置される。そのため、このように変形領域が拡大領域に含まれている場合の顔変形処理では、顔画像の内、顎から頭頂部にかけての部分の画像がＶ方向に拡大されるとともに、左右の頬と頬の間の顔画像が全体的にＨ方向において圧縮される。つまり変形領域が拡大領域に含まれている場合の顔変形処理では、変形領域ＴＡに含まれる人物Ｐ２の顔の形状は、上下方向においてある程度伸長され、幅方向において細い形状に変形される。なお顔変形部２４０は、Ｓ６３０において、拡大率が示す数値を最終的に各分割点Ｄに配分して決定した各移動量に対してもさらに所定の補正係数を乗算し、この乗算によって得た各値を各分割点Ｄの移動量としてもよい。この場合の補正係数とは、例えば０以上１未満の数値であって、顔変形処理による顔の幅方向（Ｈ方向）における圧縮の度合いおよび顔の高さ方向（Ｖ方向）における拡大の度合いを抑制するための数値である。
【００７２】
Ｓ８００では、一方向変形部２３０が対象画像について一方向変形処理を実行する。上述したように、一方向変形部２３０は、一方向変形処理を行なうに際して変形方向に直交する分割線によって対象画像を圧縮領域と拡大領域とに分けている。
【００７３】
図１３Ａは、対象画像ＴＩを圧縮領域ＡＣと拡大領域ＡＥとに分けた様子を例示している。図１３Ａでは、対象画像ＴＩの中心を含む領域に圧縮領域ＡＣが設定され、圧縮領域ＡＣの左右両側に同一面積の拡大領域ＡＥ，ＡＥが設定された例を示しており、圧縮領域ＡＣには人物Ｐ１が、向かって左側の拡大領域ＡＥには人物Ｐ２が含まれている。
【００７４】
図１３Ｂは、対象画像ＴＩに対して一方向変形処理を施した後の画像（変形済画像ＴＩ’と呼ぶ。）を例示している。つまり、一方向変形部２３０は、一方向変形処理を実行することにより、図１３Ｂに示すように、圧縮領域ＡＣを変形方向の長さが短縮された圧縮領域ＡＣ’に変形し、拡大領域ＡＥを変形方向の長さが延長された拡大領域ＡＥ’に変形する。
【００７５】
図１４は、Ｓ８００において実行される一方向変形処理をフローチャートにより示している。
図１５は、変形方向が横方向である場合の、一方向変形処理を模式的に示した説明図である。図１５Ａは、一方向変形処理が施される前の対象画像における画素の配置を示している。図１５Ｂは、対応画素数テーブル４１０の一例を示している。図１５Ｃは、一方向変形処理が施された画像（変形済画像）の画素の配置を示している。
【００７６】
Ｓ８１０では、一方向変形部２３０は、Ｓ４００において変形方向設定部２２０が設定した変形方向が横方向と縦方向とのいずれであるかを判断する。変形方向が横方向である場合、処理はＳ８２０に進む。一方、変形方向が縦方向である場合、処理はＳ８５０に進む。上述したように、本実施形態では横方向が変形方向であるため、Ｓ８２０に進む。
【００７７】
Ｓ８２０では、一方向変形部２３０は、対応画素数テーブル４１０を生成する。対応画素数テーブル４１０とは、対象画像の変形方向における各画素に対応する変形済画像の画素数を表すテーブルである。一方向変形部２３０は、圧縮領域および拡大領域それぞれについて既に設定されている倍率（圧縮率および拡大率）に基づいて、変形済画像の画素数（対応画素数）を決定する。そして、決定された対応画素数を対応画素数テーブル４１０に格納することにより、対応画素数テーブル４１０が生成される。
【００７８】
一方向変形部２３０は、対応画素数テーブル４１０の生成にあたっては、圧縮率や拡大率を倍率に変換する。例えば、上述したように圧縮率として「３０％」という数値が設定されている場合には、この圧縮率を０．７倍という数値（倍率）に変換する。また、例えば、拡大率として３０％という数値が設定されている場合には、この拡大率を１．３倍という数値（倍率）に変換する。一方向変形部２３０は、例えば、このような倍率の小数部についてハーフトーン処理による二値化を行って０と１との配列パターンを決定し、配列パターンの０または１の値に倍率の整数部を加えることによって、対象画像の画素毎の対応画素数を決定することができる。一方向変形部２３０は、対応画素数テーブル４１０の生成に当っては、ハーフトーン処理としては、ディザや誤差拡散などの周知の方法を用いることができる。また、倍率の小数部ごとに予め格納された配列パターンを用いてもよい。なおＳ８２０において、対応画素数テーブル４１０を生成するのに代えて、予め作成された対応画素数テーブルを用いてもよい。
【００７９】
図１５Ａでは、説明をごく簡単にするために、画像の横方向にそれぞれ５画素からなる領域１，２，３が存在し、領域１および領域３が拡大領域であり、領域２が圧縮領域である場合を想定して説明を行なう。ここでは、領域１の倍率が１．２倍、領域２の倍率が０．６倍、領域３の倍率が１．２倍であるとする。そのため、対応画素数テーブル（図１５Ｂ）においては、領域１の５画素Ｐｘ１〜Ｐｘ５のうち、４つの画素Ｐｘ１，Ｐｘ２，Ｐｘ３，Ｐｘ５については、対応画素数が１に設定され、残り１つの画素Ｐｘ４については、対応画素数が２に設定されている。また、領域２の５画素Ｐｘ６〜Ｐｘ１０のうち、３つの画素Ｐｘ６，Ｐｘ８，Ｐｘ１０については、対応画素数が１に設定され、残り２つの画素Ｐｘ７，Ｐｘ９については、対応画素数が０に設定されている。また、領域３の５画素Ｐｘ１１〜Ｐｘ１５のうち、４つの画素Ｐｘ１１，Ｐｘ１２，Ｐｘ１３，Ｐｘ１５については、対応画素数が１に設定され、残り１つの画素Ｐｘ１４については、対応画素数が２に設定されている。
【００８０】
Ｓ８３０では、一方向変形部２３０は、対応画素数テーブルを参照し、内部メモリー１２０内のバッファ領域を用いて対象画像の１ライン分の画素の再配置を行なう。ここで、ラインとは、一方向変形処理における処理単位であり、長さが対象画像の横方向における全画素数分で、幅が１画素分の画像領域をいう。図１５の例では、図１５Ｃに示すように、領域１を構成する画素として、順次、対応画素数が１の画素Ｐｘ１，Ｐｘ２，Ｐｘ３が１つずつ配置され、次に対応画素数が２の画素Ｐｘ４が２つ配置され、次に対応画素数が１の画素Ｐｘ５が１つ配置される。次いで、領域２を構成する画素として、対応画素数が１の画素Ｐｘ６，Ｐｘ８，Ｐｘ１０が順に１つずつ配置され、次に、領域３を構成する画素として、対応画素数が１の画素Ｐｘ１１，Ｐｘ１２，Ｐｘ１３が１つずつ配置され、対応画素数が２の画素Ｐｘ１４が２つ配置され、対応画素数が１の画素Ｐｘ１５が１つ配置される。このような１ライン分の画素の再配置を全ラインについて行なうことにより、対象画像の拡大領域はそれぞれ１．２倍に拡大され、圧縮領域は０．６倍に圧縮される。
【００８１】
Ｓ８４０では、一方向変形処理実行部２３０は、対象画像の全てのラインについて、画素の再配置が完了したか否かを判断する。全てのラインについて画素の再配置が完了している場合、一方向変形処理を終了し、その結果、図２のフローチャートが終了する。一方、画素の再配置が完了していない場合、処理はＳ８３０に戻され、全てのラインについて画素の再配置が完了するまで、Ｓ８３０，Ｓ８４０が繰り返し実行される。
【００８２】
一方向変形部２３０は、Ｓ８５０では、Ｓ８２０と同様に圧縮領域、拡大領域の各倍率を用いて対応画素数テーブル４１０を生成する。変形方向が縦方向の場合、対象画像の縦方向に並ぶ各画素についての対応画素数を規定した対応画素数テーブル４１０が生成される。対応画素数の決定方法はＳ８２０と同様であるので説明を省略する。
【００８３】
Ｓ８６０において、一方向変形部２３０は、対応画素数テーブルを参照して、上記バッファ領域に設けられた変形済画像の格納領域に、対象画像のラインを配置する。変形方向が横方向である場合には、画素単位でその画素に対応する対応画素数（０や１や２等）に応じた再配置を行なうが、変形方向が縦方向である場合には、ライン単位で、そのラインに対応する対応画素数に応じた配置を行なう。具体的には、上記バッファ領域の変形済画像の格納領域に、バッファ領域に格納された対象画像の１ラインを、当該１ラインに対応する対応画素数分のラインとして追加する。
【００８４】
Ｓ８７０では、一方向変形部２３０は、対象画像の全てのラインを対象としてＳ８６０の処理を完了したか否かを判断し、完了している場合は、一方向変形処理を終了し、その結果、図２のフローチャートが終了する。一方、完了していない場合は、処理はＳ８６０に戻され、対象画像の全てのラインを対象としてＳ８６０が行なわれるまで、Ｓ８６０，Ｓ８７０が繰り返し実行される。
【００８５】
３．まとめ
このように、Ｓ８００の一方向変形処理により、対象画像において設定された圧縮領域は変形方向に圧縮され、拡大領域は変形方向に拡大される。そのため、図１３Ｂに示したように、変形済画像ＴＩ’中の人物Ｐ１は、変形前の対象画像ＴＩ中の人物Ｐ１よりも全体的に細くなり（スリム化）、変形済画像ＴＩ’中の人物Ｐ２は、変形前の対象画像ＴＩ中の人物Ｐ２よりも全体的に太くなる。上述したように、Ｓ６００の顔変形処理によって、圧縮領域に含まれていた顔の形状は上下方向に押しつぶされ幅方向に太った形状となっており、拡大領域に含まれていた顔の形状は、上下方向に伸長され幅方向にやせ細った形状となっている。そのため、顔変形処理および一方向変形処理が施された対象画像においては、圧縮領域に含まれていた人物画像は全体的にスリムな体型に変形し、かつ圧縮領域と拡大領域のいずれに含まれていた人物画像の顔も、縦横のバランスが違和感の無いものとなる。人間の体の中でも顔はユーザーにとって特に注意を引く部分であり、画像補正処理によって顔の縦横比が著しく変形していると、ユーザーは大きな違和感を覚えてしまう。本実施形態によれば、顔の縦横比については、処理前と比較して著しく変化することが抑制されるため、ユーザーは、見た目に違和感の無い画像を得ることができる。
【００８６】
上記では、顔変形処理（Ｓ６００）の後に一方向変形処理（Ｓ８００）を実行する場合を例に説明を行なったが、これら２つの処理を行なう場合の処理の順序は問わず、一方向変形処理の後に顔変形処理を行なう（例えば、図２のフローチャートにおいて、Ｓ４００とＳ５００の間にＳ８００を行なう）構成としてもよい。
【００８７】
また、本実施形態では、対象画像中の顔の縦横比が変化し過ぎることを防止しつつも、全体的にバランスの良い画像を得るための種々の工夫をしている。上述したように、顔変形処理では、変形領域の画像のＨ方向における変形量として、一方向変形処理における圧縮率あるいは拡大率が示す数値をそのまま適用するのではなく、圧縮率あるいは拡大率が示す数値のうち所定割合分の数値を適用する。つまり、圧縮領域での圧縮をほぼ全て打ち消す程の拡大や、拡大領域での拡大をほぼ全て打ち消す程の圧縮を、顔変形処理で行なうと、顔と顔以外の体とのバランスが非常に悪い人物画像が得られてしまう恐れがある。そのため、あくまで顔変形処理における顔の幅方向の変形は、一方向変形処理による変形の効果がある程度勝るような度合いで行なうようにしている。
【００８８】
上記の顔変形処理では、変形領域の全体が圧縮領域に含まれている場合（人物Ｐ１）、および変形領域の全体が拡大領域に含まれている場合（人物Ｐ２）の２つのケースについて説明を行なった。しかし、対象画像内での人物画像の位置や、圧縮領域および拡大領域の設定態様によっては、一つの変形領域が圧縮画像と拡大画像との境界を跨ぐ位置に設定されることもある。
【００８９】
図１９Ａは、ある人物の顔画像についての変形領域ＴＡが、対象画像内の圧縮画像と拡大画像との境界（鎖線）を跨ぐ位置に設定された場合を例示している。このような場合、Ｓ６３０で顔変形部２４０は、変形領域ＴＡ内に上述したように配置した各分割点Ｄのうち圧縮領域に属する分割点Ｄに対しては、圧縮領域の圧縮率に基づいて（変形領域ＴＡ全体が圧縮領域に含まれていると想定して）上述のように算出した移動量を設定する。一方、変形領域ＴＡの各分割点Ｄのうち拡大領域に属する分割点Ｄに対しては、拡大領域の拡大率に基づいて（変形領域ＴＡ全体が拡大領域に含まれていると想定して）上述のように算出した移動量を設定する。
【００９０】
このように各分割点Ｄの移動量を設定した後、Ｓ６４０において顔変形部２４０は、図１９Ｂに示すように、変形領域ＴＡを圧縮領域に属する変形領域ＴＡ１と拡大領域に属する変形領域ＴＡ２に分け、変形領域ＴＡ１内の画像については変形領域ＴＡ１内の分割点Ｄに設定した移動量に応じた変形を行ない、変形領域ＴＡ２内の画像については変形領域ＴＡ２内の分割点Ｄに設定した移動量に応じた変形を行なう。このような顔変形処理の結果、変形領域ＴＡ内の顔のうち、圧縮領域に属していた部分については変形方向において拡大され、拡大領域に属していた部分については変形方向において圧縮される。
【符号の説明】
【００９１】
１００…プリンター、１１０…ＣＰＵ、１２０…内部メモリー、１４０…操作部、１５０…表示部、１６０…プリンターエンジン、１７０…カードＩ／Ｆ、１７２…カードスロット、２００…画像補正処理部、２１０…顔領域検出部、２２０…変形方向設定部、２３０…一方向変形部、２４０…顔変形部、３１０…表示処理部、３２０…印刷処理部、４１０…対応画素数テーブル、４２０…分割点配置パターンテーブル
【図１】
2010170219.tif 000005
【図２】
2010170219.tif 000006
【図３】
2010170219.tif 000007
【図４】
2010170219.tif 000008
【図５】
2010170219.tif 000009
【図６】
2010170219.tif 000010
【図７】
2010170219.tif 000011
【図８】
2010170219.tif 000012
【図９】
2010170219.tif 000013
【図１０】
2010170219.tif 000014
【図１１】
2010170219.tif 000015
【図１２】
2010170219.tif 000016
【図１３】
2010170219.tif 000017
【図１４】
2010170219.tif 000018
【図１５】
2010170219.tif 000019
【図１６】
2010170219.tif 000020
【図１７】
2010170219.tif 000021
【図１８】
2010170219.tif 000022
【図１９】
2010170219.tif 000023