説明

画像処理装置、画像処理方法および画像処理プログラム

【課題】顔の縦横比まで大きく変化させてしまうことで、見栄えの悪い画像変形結果が得られていた。
【解決手段】顔画像が含まれる対象画像において、当該顔画像を含む領域を圧縮領域として設定する領域設定部と、所定の圧縮率によって、上記圧縮領域を特定方向に圧縮する画像変形部と、上記顔画像の少なくとも一部が上記特定方向に拡大するように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形する顔変形部とを備える画像処理装置とした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている(特許文献1参照。)。特許文献1には、顔の画像上の一部の領域(頬の画像を表す領域)を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【特許文献1】特開2004‐318204号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
またユーザは、画像に顔を含む人物が写っている場合に、人物の体型が好みの体型(例えば、細身の体型)に変形された(補正された)画像を得たいと望むことがある。
しかし、画像内の人物が含まれている領域を対象として一律な変形処理を施すと、当該人物の顔も当該変形の影響を受け、その結果、顔の縦横比が大きく変化した画像が得られてしまう。このように顔の縦横比が大きく変化した人物の画像(例えば、顔が著しく長細くなった画像)は、例えその体型がユーザの好みの体型となっていても、ユーザに違和感を与えてしまう。
【0004】
本発明は上記課題に鑑みてなされたものであり、人物を含む画像について、より見栄えのよい変形結果を容易に得ることが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するため、本発明の画像処理装置は、顔画像が含まれる対象画像において、当該顔画像を含む領域を圧縮領域として設定する領域設定部と、所定の圧縮率によって、上記圧縮領域を特定方向に圧縮する画像変形部と、上記顔画像の少なくとも一部が上記特定方向に拡大するように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形する顔変形部とを備える。本発明によれば、顔変形部は、圧縮領域に含まれる顔画像の少なくとも一部が、圧縮領域の圧縮率に応じて決定した拡大量によって特定方向に拡大するように変形させる。そのため、画像変形部によって圧縮領域が圧縮されても、結果的に顔の縦横比は大きく崩れることが無い。よって、ユーザに違和感を感じさせることの無い、上記圧縮領域が圧縮された画像を得ることができる。なお、画像変形部による処理と顔変形部による処理の順番はどちらが先でも良い。
【0006】
画像処理装置は、顔の小型化の指示を外部から受付ける指示受付部を備えるとしてもよい。そして、上記顔変形部は、上記指示受付部が上記指示を受付けた場合には、上記顔画像の少なくとも一部に対して適用する拡大量を低下させるとしてもよい。当該構成によれば、ユーザに違和感を感じさせることの無い、上記圧縮領域が圧縮された画像であって、かつ顔が適度に小型化された画像を得ることができる。
【0007】
上記顔変形部は、上記圧縮率が示す数値のうちの所定割合の数値に基づいて上記拡大量を決定するとしてもよい。例えば、上記圧縮率が20%であれば、当該20%という数値の何割かの数値を上記拡大量とする。このように、圧縮領域に対する圧縮の効果を完全に打ち消すような拡大量を顔画像の拡大に適用するのではなく、圧縮率が示す数値のうちの所定割合の数値に基づいて顔画像の拡大量を決定することで、画像変形部による処理と顔変形部による処理の両方が終わった後において、圧縮領域における顔と顔以外の部分とのバランスが最適となった画像を得ることができる。
【0008】
上記顔変形部は、上記圧縮率が示す数値から上記所定割合の数値を差し引いた残りの数値に基づいて圧縮量を決定し、上記顔画像の少なくとも一部が上記特定方向と直交する方向に圧縮するよう、当該決定した圧縮量によって上記顔画像を変形するとしてもよい。当該構成によれば、顔画像は、特定方向に拡大されかつ特定方向と直交する方向に圧縮される。そのため、画像変形部による処理と顔変形部による処理の両方が終わった後において、圧縮領域における顔と顔以外の部分とのバランスが最適となった画像を得ることができる。
【0009】
上記顔変形部は、所定の顔器官より外側の領域に適用する拡大量に制限を与えるとしてもよい。当該構成によれば、画像変形部による処理と顔変形部による処理の両方が終わった後において、顔器官より外側の領域(頬や顎などの領域)が適度に引き締まった印象の顔を含む、圧縮領域における顔と顔以外の部分とのバランスが最適となった画像を得ることができる。
【0010】
上記領域設定部は、上記特定方向と直交する線によって上記対象画像を上記圧縮領域と当該圧縮領域以外の領域とに分ける構成としてもよい。当該構成によれば、圧縮領域に人物の画像が含まれている場合に、人物の体型は圧縮されて程よくスリムになり、かつその人物の顔の縦横比は違和感の無い状態となった画像を得ることができる。
【0011】
これまでは、本発明の技術的思想を画像処理装置として説明したが、上述した画像処理装置が備える各手段に対応した各工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各手段に対応した各機能をコンピュータに実行させる画像処理プログラムの発明をも把握することができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、パーソナルコンピュータやサーバ等のハードウェアによって実現されてもよいし、画像入力装置としてのデジタルスチルカメラやスキャナ、あるいは、画像出力装置としてのプリンタ(印刷装置)やプロジェクタやフォトヴューワ等、様々な製品によって実現することができる。
【発明を実施するための最良の形態】
【0012】
下記の順序に従って、本発明の実施形態を説明する。
1.画像処理装置の概略構成
2.画像補正処理
3.他の実施例
【0013】
1.画像処理装置の概略構成
図1は、本発明にかかる画像処理装置の一例としてのプリンタ100の構成を概略的に示す説明図である。プリンタ100は、メモリカードMC等の記録メディアから取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、内部メモリ120と、CPU110と、操作部140と、表示部150と、プリンタエンジン160と、カードインタフェース(カードI/F)170と、カードスロット172とを備えている。
【0014】
内部メモリ120は、ROMやRAMによって構成されており、機能ブロックとして、画像補正処理部200と、表示処理部310と、印刷処理部320とを備えている。画像補正処理部200は、所定のオペレーティングシステムの下で、後述する画像補正処理を実行するためのコンピュータプログラムである。画像補正処理部200は、プログラムモジュールとして、顔領域検出部210と、変形方向設定部220と、一方向変形部230とを有している。一方向変形部230は、RAMに設けられた一時記憶領域であるバッファ領域と、対応画素数テーブル410とを用いることにより、画像補正処理の一種としての一方向変形処理を実行する。一方向変形部230は、特許請求の範囲における領域設定部および画像変形部を兼ねている。さらに、画像補正処理部200は、プログラムモジュールとして、顔変形部240を含んでいる。顔変形部240は、分割点配置パターンテーブル420を用いて、画像補正処理の一種としての顔変形処理を実行する。これら各部の機能については後述する。
【0015】
表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージや画像等を表示させるディスプレイドライバである。印刷処理部320は、画像データに対して所定の色変換処理やハーフトーン処理を施すことにより画素毎のインク量を規定した印刷データを生成し、プリンタエンジン160を制御して当該印刷データに基づいて画像の印刷を実行させるためのコンピュータプログラムである。印刷処理部320による色変換処理やハーフトーン処理の処理対象となる画像データには、例えば、画像補正処理部200によって画像補正処理が実行された後の画像を表す画像データが該当する。CPU110は、上述したこれらのプログラムを内部メモリ120から読み出して実行することにより、これら各部の機能をそれぞれ実現する。
【0016】
操作部140は、ボタンやタッチパネルを備えておりユーザによる指示等の入力を受け付ける。表示部150は、例えば液晶ディスプレイによって構成されている。プリンタエンジン160は、印刷処理部320から送信される印刷データに基づき印刷を行う印刷機構である。カードI/F170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインタフェースである。プリンタ100は、カードI/F170以外にも、他の機器(例えばデジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインタフェースを備える構成とすることもできる。以上の各構成要素は、バスを介して互いに接続されている。
【0017】
プリンタ100は、人画像を含む画像に対して顔変形処理および一方向変形処理を実行することにより、人画像を全体的に細く変形させる(以下、「スリム化する」とも言う)ことができる。以下では、顔変形処理および一方向変形処理を含む画像補正処理を「スリム化補正処理」とも呼ぶ。本実施形態における「スリム化補正処理」では、プリンタ100は、人画像の顔の縦横比が変化しすぎてユーザが違和感をおぼえることがないように、画像を見栄え良く変形させる。また、プリンタ100は「スリム化補正処理」とともに、人画像の顔を小さく変形させる(以下、「小顔化する」とも言う)こともできる。
【0018】
2.画像補正処理
図2は、プリンタ100によって実行される画像補正処理をフローチャートにより示している。
ステップS(以下、ステップの表記を省略する。)100では、画像補正処理部200は、処理対象となる対象画像を設定(取得)する。例えば、カードスロット172にメモリカードMCが挿入されると、表示処理部310は、メモリカードMCに格納された画像の表示を含むユーザインタフェース(UI)を表示部150に表示させる。そして、画像補正処理部200は、当該UIからの入力に従って対象画像を設定する。
【0019】
図3は、表示部150に表示されるUIの一例を示している。例えば、UIは、画像表示欄IAと、2つの画像切替用ボタンB1,B2と、通常印刷ボタンB3と、スリム補正印刷ボタンB4と、小顔補正印刷ボタンB5と、キャンセル用ボタンB6とを備えている。ユーザは、画像表示欄IAを見ながら画像切替用ボタンB1,B2を操作して対象画像を選択し、通常印刷ボタンB3、スリム補正印刷ボタンB4、小顔補正印刷ボタンB5のいずれかを押下することで対象画像を設定できる。図3の例では、人物P1が写った画像TIが対象画像として選択されており、この状態でユーザが通常印刷ボタンB3、スリム補正印刷ボタンB4、小顔補正印刷ボタンB5のいずれかを押下することで、画像補正処理部200は、画像TIを対象画像として設定する。なおUIは、メモリカードMC内の複数の画像を一覧表示する構成とすることもできる。
【0020】
また、ユーザがスリム補正印刷ボタンB4を押下すると、画像補正処理部200は、対象画像に対して後述するような「スリム化補正処理」を施す。また、ユーザが小顔補正印刷ボタンB5を押下すると、画像補正処理部200は、対象画像に対して後述するような「小顔化を伴うスリム化補正処理」を施す。UIにおける小顔補正印刷ボタンB5は、顔の小型化の指示を外部から受付ける指示受付部の一例に該当する。ただし、画像補正処理部200は、スリム補正印刷ボタンB4と小顔補正印刷ボタンB5とが両方押下げられた場合に「小顔化を伴うスリム化補正処理」を実行するとしてもよい。プリンタ100は、当該フローチャート終了後は、補正処理が実行された画像を印刷する。ただし、ユーザが通常印刷ボタンB3を操作した場合には、プリンタ100は、対象画像について「スリム化補正処理」も「小顔化を伴うスリム化補正処理」も行なうことなく通常通り印刷する。
【0021】
S200では、画像補正処理部200は、上記UIのボタンに対するユーザの操作によって、「スリム化補正処理」の実行または「小顔化を伴うスリム化補正処理」の実行が指示されているか否か判断し、指示されている場合にはS300以下の処理に進み、指示されていな場合には当該フローチャートを終了する。以下では、S100においてユーザがスリム補正印刷ボタンB4を押下げし「スリム化補正処理」の実行指示をしたとして、説明を続ける。
【0022】
S300では、顔領域検出部210が、対象画像を表す画像データをメモリカードMCから内部メモリ120に読み出すとともに、対象画像における顔領域の検出を行う。顔領域とは、対象画像内の顔画像の少なくとも一部を含む領域であって、少なくとも所定の顔器官(目や鼻や口)を含むと想定される領域である。顔領域検出部210は、対象画像を表す画像データを解析して当該顔器官を含むと想定される矩形の領域を顔領域として検出する。顔領域の検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2006‐279460参照)といった公知の検出方法を用いて実行される。顔領域検出部210は、上記パターンマッチングにも、顔領域を検出可能な手法であればあらゆる手法を採用することができる。例えば、顔領域検出部210は、対象画像内に設定した矩形領域(検出対象領域)単位で、画像の各種情報(例えば、輝度情報やエッジ量やコントラスト等。)を入力し検出対象領域が顔領域に該当するか否かを示す情報を出力する、予め学習されたニューラルネットワークを用いることにより、顔領域の検出を行なっても良いし、サポートベクタマシンを利用して検出対象領域毎に顔領域であるか否かを判断してもよい。
【0023】
図4は、S300における顔領域の検出結果の一例を示す説明図である。図4の例では、対象画像TIに人物P1の画像が含まれているため、人物P1の顔画像に対応する顔領域Fdが検出されている。顔領域Fd1は両目と鼻と口の各画像をすべて含む矩形の領域である。顔領域検出部210は、顔領域Fdを、その領域の4つの頂点の座標により特定する。対象画像内に複数の顔画像が存在する場合には、顔領域検出部210によってそれぞれの顔画像にかかる顔領域が検出される。ただし、メモリカードMCに格納された対象画像を表す画像データに、既に対象画像内の顔領域Fdの検出結果(画像内の顔領域の位置を特定する情報)が付属情報として存在している場合もある。例えば、対象画像の撮影に用いられたデジタルスチルカメラの機能によって既に対象画像から顔領域Fdが検出され、その検出結果を示した情報が画像データとともにメモリカードMCに記録されている場合等である。このような場合には、顔領域検出部210は対象画像から顔領域Fdの検出を行なう必要はなく、上記付属情報に基づいて対象画像内の顔領域Fdを特定する。
【0024】
S400では、変形方向設定部220が、一方向変形処理のための変形方向を設定する。以下、単に変形方向と言った場合には、一方向変形処理のための変形方向を意味する。変形方向は、特許請求の範囲における特定方向に該当する。変形方向は、対象画像の横方向または縦方向のどちらかである。本実施形態では、対象画像の長辺方向を横方向とし、対象画像の短辺方向を縦方向として取り扱う。変形方向設定部220は、変形方向を外部からのユーザの入力に応じて設定することも可能であるし、対象画像の解析結果によって設定することも可能である。
【0025】
変形方向をユーザの入力に応じて設定する場合、変形方向設定部220は、表示処理部310に変形方向設定用のUIを表示する処理を実行することを指示し、表示処理部310は、当該指示に応じて、表示部150に変形方向設定用のUIを表示させる。ユーザは、変形方向設定用のUIを介し、変形方向として「横方向」または「縦方向」のどちらを選択するかを入力する。変形方向設定部220は、ユーザの入力によって選択された「横方向」または「縦方向」を、変形方向として設定する。なおユーザは、表示部150に表示された対象画像を視認しながら、基本的には、対象画像の横方向と縦方向とのうち、対象画像内の顔の左右方向(顔の幅方向)となす角度が小さい方向を、変形方向として選択する。
【0026】
変形方向を対象画像の解析結果によって設定する場合、変形方向設定部220は、対象画像中の顔の傾きに応じて横方向または縦方向のどちらかを変形方向として設定する。例えば、変形方向設定部220は、S300で顔領域検出部210が検出または特定した顔領域Fd内における、右目の画像を含む領域(右目領域)と左目を含む領域(左目領域)とを検出する。この器官領域(右目領域、左目領域)の検出は、顔領域の検出と同様に、例えばテンプレートを利用したパターンマッチングによる方法といった公知の検出方法を用いて実行することができる。
【0027】
図5は、器官領域の検出結果の一例を示す説明図である。図5の例では、顔領域Fdにおいて、右目領域ERと左目領域ELとが検出されている。変形方向設定部220は、検出した右目領域ER、左目領域ELを、それぞれの領域の4つの頂点の座標によって特定することができる。変形方向設定部220は、右目領域ERの中心点CRと左目領域ELの中心点CLとを結ぶ線分L1に対して対象画像TI内で直交する線分L2を、顔の上下方向(顔の高さ方向)を規定する線分として扱い、線分L2の傾きを顔の傾きとする。例えば、変形方向設定部220は、対象画像TIの縦方向に対する線分L2の傾きが45°より小さい場合は、変形方向を「横方向」に設定する。一方、対象画像TIの縦方向に対する線分L2の傾きが45°より大きい場合は、変形方向を「縦方向」に設定する。線分L2の傾きが45°である場合、変形方向を予め定められた標準方向(例えば、横方向)に設定する。
【0028】
対象画像に複数の顔が含まれている場合は、変形方向設定部220は、変形方向を、より大きい顔の傾きに応じて設定するとしてもよい。あるいは、対象画像に複数の顔が含まれている場合、対象画像の縦方向または横方向に対する傾きが最も小さい顔の傾きに基づいて、変形方向を設定してもよいし、複数の顔の傾きに基づいて変形方向を設定してもよい。以下では、変形方向として横方向が設定されたものとして説明を続ける。
【0029】
S500では、顔変形部240が、S400で設定された変形方向と顔の高さ方向とが略直交するか否か判定し、略直交する場合(Yes)にはS600に進み、略直交しない場合(No)にはS600をスキップしてS700に進む。変形方向と顔の高さ方向とが略直交するとは、変形方向と線分L2とがなす角度が90°である場合だけでなく、例えば、変形方向と線分L2とがなす角度が90°±所定角度(例えば5°)の範囲に収まる場合を言う。S500の判定を行なうために、画像補正処理部200は、S400でユーザの入力に応じて変形方向を設定した場合であっても、顔の高さ方向を規定する線分L2は上記器官領域の検出に基づいて特定する。
【0030】
S500の判定をS600の前に行なう理由は次の通りである。本実施形態の「スリム化補正処理」は、概略的には、S600の顔変形処理において、対象画像内の顔をその顔の幅方向に拡大し、S700の一方向変形処理において、顔を含めた人物全体を変形方向において圧縮して人物を全体的にスリム化することにより、顔についてはスリム化し過ぎない(細長くなりすぎない)ようにする。しかしながら、変形方向と顔の高さ方向とが略直交の関係に無い場合には、S600における顔の幅方向の拡大を打ち消す向きにS700の圧縮が適切に作用せず、S600で拡大した顔がS700の圧縮処理によって適切に収縮しないという問題が生じる。さらに、変形方向と顔の高さ方向とが略直角の関係に無い場合、S600の顔の幅方向の拡大とS700の変形方向における圧縮とが、元の顔よりも当該顔を太らせる結果を招くことも有り得る。そこで本実施形態では、S500において変形方向と顔の高さ方向とが略直交すると判定した場合にのみ、S600に進むことにより、「スリム化補正処理」の狙いに反する補正結果が生じることを防止している。
S600では、顔変形部240は、対象画像内の顔画像を対象として、顔変形処理を実行する。
【0031】
図6は、S600における顔変形処理の詳細をフローチャートにより示している。
S610では、顔変形部240は、上記検出または特定された顔領域Fdを基準にして変形領域を設定する。変形領域とは、対象画像内の顔領域Fdを含む領域であって顔変形処理の対象となる領域を意味する。変形領域は顔画像のほぼ全体をカバーする矩形領域であり、変形領域を顔画像として解釈してもよい。
【0032】
図7は、変形領域の設定方法の一例を示す説明図である。図7において、実線の矩形TAは、顔領域Fdについて設定される変形領域TAを示す。基準線RLは、顔領域Fdの高さ方向(上下方向)を定義すると共に、顔領域Fdの幅方向(左右方向)の中心を示す線である。基準線RLは、矩形の顔領域Fdの重心を通り、顔領域Fdの高さ方向に沿った境界線に平行な直線である。基準線RLは線分L2と略平行な線であるとも言える。よって、上記S500の判定では、変形方向と線分L2が略直交するか否かを判定する代わりに、変形方向と基準線RLとが略直交するか否かを判定してもよい。変形領域TAは、顔領域Fdを基準線RLと平行な方向(高さ方向)および基準線RLに直交する方向(幅方向)に伸張した領域として設定される。具体的には、顔領域Fd1の高さ方向の長さをH1、幅方向の大きさをW1とすると、顔領域Fdを、上方向にk1・H1、下方向にk2・H1だけ伸ばすと共に、左右にそれぞれk3・W1だけ伸ばした領域が、変形領域TAとして設定される。k1,k2,k3は、所定の係数である。このように変形領域TAが設定されると、顔領域Fdの高さ方向の輪郭線に平行な直線である基準線RLは、変形領域TAの高さ方向の輪郭線にも平行な直線となる。また、基準線RLは、変形領域TAの幅を半分に分割する直線となる。
【0033】
図7に示すように、変形領域TAは、高さ方向に関しては、概ね顎から額までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち本実施形態では、変形領域TAが概ねそのような範囲の画像を含む領域となるように、上述の係数k1,k2,k3を予め実験により求めて設定されている。
S620では、顔変形部240は、変形領域TAを複数の小領域に分割する。
【0034】
図8は、変形領域の小領域への分割方法の一例を示す説明図である。図8では、変形領域TAを記載している。顔変形部240は、変形領域TAに複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TAを複数の小領域に分割する。分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル420により定義されている。顔変形部240は、分割点配置パターンテーブル420を参照して分割点Dを配置する。図8の例では、分割点Dは、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに配置される。水平分割線Lhおよび垂直分割線Lvは、変形領域TA内に分割点Dを配置するための基準となる線である。図8に示すように、本実施形態における分割点Dの配置では、基準線RLと直交する3本の水平分割線Lhと、基準線RLに平行な4本の垂直分割線Lvとが設定される。3本の水平分割線Lhを、変形領域TAの下方から順に、Lh1,Lh2,Lh3と呼ぶ。また、4本の垂直分割線Lvを、変形領域TAの左から順に、Lv1,Lv2,Lv3,Lv4と呼ぶ。
【0035】
水平分割線Lh1は、変形領域TAにおいて、顎の画像より下方に配置され、水平分割線Lh2は、目の画像の下付近に配置され、水平分割線Lh3は、目の画像の上付近あるいは額の画像辺りに配置される。垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TAの大きさとの対応関係に従い実行される。
【0036】
上述した水平分割線Lhと垂直分割線Lvとの配置に従い、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに、分割点Dが配置される。図8に示すように、水平分割線Lhi(i=1,2,3のいずれか)上に位置する分割点Dを、左から順に、D0i,D1i,D2i,D3i,D4i,D5iと呼ぶ。例えば、水平分割線Lh1上に位置する分割点Dは、D01,D11,D21,D31,D41,D51と呼ばれる。同様に、垂直分割線Lvj(j=1,2,3,4のいずれか)上に位置する分割点Dを、下から順に、Dj0,Dj1,Dj2,Dj3と呼ぶ。例えば、垂直分割線Lv1上に位置する分割点Dは、D10,D11,D12,D13と呼ばれる。本実施形態における分割点Dの配置は、基準線RLに対して対称の配置となっている。顔変形部240は、配置された分割点Dを結ぶ直線(水平分割線Lhおよび垂直分割線Lv)によって変形領域TAを複数の小領域に分割する。図8の例では、変形領域TAは、20個の矩形の小領域に分割されている。
【0037】
S630では、顔変形部240は、所定の分割点Dについての移動量を、一方向変形処理に用いる圧縮率に応じて決定する。
ここで、後述の一方向変形処理(S700)では、対象画像を変形方向に垂直な分割線(水平分割線Lhおよび垂直分割線Lvとは異なる分割線)によって分割することにより、対象画像を圧縮領域と拡大領域とに分け、圧縮領域については所定の圧縮率で圧縮し、拡大領域については所定の拡大率で拡大する。なお、変形方向に垂直な分割線で対象画像を圧縮領域と拡大領域とに分ける際には、圧縮領域に上記変形領域の全体が含まれるように分ける。S630では、このような圧縮領域に対して一方向変形処理の際に適用される圧縮率を取得し、当該圧縮率に基づいて分割点Dの移動量を決定する。
以下において単に「圧縮率」と表現した場合には、一方向変形処理の際に圧縮領域に適用される圧縮率を意味し、単に「拡大率」と表現した場合には、一方向変形処理の際に拡大領域に適用される拡大率を意味する。
【0038】
圧縮率(および拡大率)は、予め固定値として内部メモリ120等に記憶されていてもよいし、操作部140を介してユーザによって入力された数値であってもよい。圧縮率をユーザに入力させる場合は、プリンタ100では、表示処理部310に圧縮率(および拡大率)設定用のUIを表示する処理を実行することを指示し、表示処理部310は、当該指示に応じて、表示部150に圧縮率および拡大率設定用のUIを表示させる。ユーザは、圧縮率および拡大率設定用のUIを介し、任意の圧縮率および拡大率を入力する。或いは、プリンタ100は、一方向変形処理後の対象画像のサイズが変わり過ぎることを防止するために、UIを介して圧縮率と拡大率のいずれか一方のみをユーザに入力させ、入力された圧縮率または拡大率の一方の値に応じて、入力されていない圧縮率または拡大率の値を決定するとしてもよい。
【0039】
顔変形部240は、上述したように予め内部メモリ120に記憶されていた圧縮率またはユーザによって入力された(あるいはユーザの入力に従って決定された)圧縮率を取得することができる。ここでは一例として、顔変形部240は「30%」という圧縮率を取得したものとして説明を行なう。「30%」の圧縮率とは、言い換えれば、一方向変形処理前の圧縮領域の変形方向における長さを一方向変形処理後に0.7倍の長さにするための倍率である。
【0040】
顔変形部240は「スリム化補正処理」における顔変形処理の実行に際して、顔画像の少なくとも一部が変形方向に拡大されるように、所定の分割点Dについて基準線RLから離れる向きへの移動量を圧縮率に応じて設定する。本実施形態では、顔変形部240は、各分割点Dのうち変形領域TAの枠よりも内側に存在する分割点D11,D12,D13,D21,D22,D23,D31,D32,D33,D41,D42,D43についての移動量を決定する。図8に示したように、基準線RLと直交する方向をH方向と呼び、基準線RLと平行な方向をV方向と呼ぶ。また、H方向については、向かって右側への移動量を正値(プラス)として表し、向かって左側への移動量を負値(マイナス)として表し、V方向については、上方への移動量を正値(プラス)として表し、下方への移動量を負値(マイナス)として表す。
【0041】
上述したように、S500において変形方向と顔の高さ方向(線分L2または基準線RL)とが略直交すると判定された場合に、S600の顔変形処理が実行される。そのため、変形方向とH方向とはほぼ平行であると言える。従って、所定の分割点Dについて、基準線RLから離れる向きへの移動量を圧縮率に基づいて設定し、設定した移動量に従って分割点Dを移動させれば、顔画像の少なくとも一部は変形方向にも拡大される。一例として、顔変形部240は、H方向における移動量として、基準線RLよりも左側の分割点D11,D21,D12,D22,D13,D23についてはマイナス側(左側)への移動量を設定し、基準線RLよりも右側の分割点D31,D41,D32,D42,D33,D43についてはプラス側(右側)への移動量を設定する。
【0042】
また顔変形部240は、V方向における移動量として、水平分割線Lh1上の分割点D11,D21,D31,D41についてはプラス側(上側)への移動量を設定し、水平分割線Lh3上の分割点D13,D23,D33,D43についてはマイナス側(下側)への移動量を設定する。変形方向とV方向とは、ほぼ直交していると言える。従って、上記のように水平分割線Lh1上の所定の分割点Dおよび水平分割線Lh3上の所定の分割点Dについて移動量を設定し、設定した移動量に従って分割点Dを移動させれば、顔画像の少なくとも一部は変形方向と直交する方向にも圧縮される。
【0043】
より具体的には、顔変形部240は、各分割点Dの移動量を設定する際、圧縮率が示す数値(30%)を、まず変形領域内の画像のH方向における変形量(拡大量)とV方向における変形量(圧縮量)とに所定割合で配分する。一例として、顔変形部240は、圧縮率が示す数値(30%)のうち8割(24%)をH方向における変形量(拡大量)に割り当て、圧縮率が示す数値(30%)から上記H方向における変形量(拡大量)を差し引いた残り(6%)を、V方向における変形量(圧縮量)に割り当てる。
【0044】
顔変形部240は、H方向とV方向とに割り当てた変形量をさらに、各分割点Dへ移動量として配分する。一例として、顔変形部240は、H方向に割り当てた変形量(24%)の5割に当る数値(12%)を、各分割点D11,D12,D13,D21,D22,D23,D31,D32,D33,D41,D42,D43のH方向における移動量(基準線RLから離れる向きへの移動量)として設定し、V方向に割り当てた変形量(6%)の2.5割に当る数値(1.5%)を、水平分割線Lh1上の各分割点D11,D21,D31,D41のV方向プラス側への移動量として設定し、V方向に割り当てた変形量(6%)の7.5割に当る数値(4.5%)を、水平分割線Lh3上の各分割点D13,D23,D33,D43のV方向マイナス側への移動量として設定する。この結果、例えば、分割点D11については、H方向マイナス側への移動量として12%という数値が設定され、V方向プラス側への移動量として1.5%という数値が設定される。また、分割点D43については、H方向プラス側への移動量として12%という数値が設定され、V方向マイナス側への移動量として4.5%という数値が設定される。このように設定された分割点DのH方向、V方向への移動量は、変形領域TAのH方向、V方向の長さ(画素数)に対する割合を意味する。
【0045】
上述したような、圧縮率が示す数値をH方向とV方向との変形量に配分する際の割合(配分比率)や、H方向の変形量やV方向の変形量を各分割点Dに配分する際の割合は、限られるものではない。また、顔変形部240は、分割点DのH方向、V方向の移動量について、分割点D毎に更なる変更を加えても良い。ただし、原則的には、各分割点Dの移動態様は、基準線RLを挟んで左右対称になるようにし、また「スリム化補正処理」の顔変形処理においては、水平分割線Lh1上の各分割点D11,D21,D31,D41をV方向プラス側へ移動させる量よりも、水平分割線Lh3上の各分割点D13,D23,D33,D43をV方向マイナス側へ移動させる量を多くする。これは、水平分割線Lh1上の各分割点D11,D21,D31,D41をV方向プラス側へ大きく移動させることによって変形後の首の画像が長くなってしまうことを、防ぐためである。
【0046】
図9は、顔変形部240が、上記のように圧縮率が示す数値をH方向とV方向との変形量に配分し、さらにH方向およびV方向の変形量を各分割点Dに配分して決定した移動量の一例を表によって示している。ただし図9では、上記のように圧縮率に応じて決定した各分割点Dの移動量を、さらに分割点Dの位置に応じて変更した後の移動量を示している。また図9では、各分割点Dの移動量を上記のようなn%といった表現ではなく、画素ピッチに換算した値によって示している。例えば、分割点D13については、H方向に沿って左側に画素ピッチの19倍の距離の移動量が設定され、V方向に沿って下方に画素ピッチの7倍の距離の移動量が設定されている。さらに、図9の例では、水平分割線Lh1上の分割点D11,D21,D31,D41および水平分割線Lh3上の分割点D13,D23,D33,D43に対してだけではなく、水平分割線Lh2上の分割点D12,D22,D32,D42に対しても、V方向における移動量を設定した例を示している。
S640では、顔変形部240は、S630で決定した分割点D毎の移動量に従い各分割点Dを移動して変形領域TA内で小領域を変形することによって、変形領域TA内の画像を変形させる。
【0047】
図10は、図9に例示した分割点D毎の移動量に従って、各分割点Dの位置を移動させて変形領域TA内の画像を変形する際の具体的態様を示している。顔変形部240は、変形領域TAを構成する各小領域について、分割点Dの位置移動前の状態における小領域の画像が分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。図10では比較の便宜のため、変形前の人物P1の顔の輪郭を鎖線で示し、変形後の人物P1の顔の輪郭を実線で示している。また図10では、移動後の分割点Dの符号には「’」を付し、移動前の分割点D(白丸)の符号には括弧を付している。例えば、分割点D11,D21,D22,D12を頂点とする小領域(ハッチングを付して示す小領域)の画像は、分割点D’11,D’21,D’22,D’12を頂点とする小領域の画像に変形される。この小領域画像の変形処理の詳細については後述する。
【0048】
図10に示すように、S640における分割点Dの移動の結果、基準線RLと平行な方向(V方向)に関し、水平分割線Lh1上に配置された分割点D11,D21,D31,D41の位置は上方に移動される一方、水平分割線Lh2,Lh3上に配置された分割点D12,D22,D32,D42,D13,D23,D33,D43の位置は下方に移動される。従って、水平分割線Lh1と水平分割線Lh3との間に位置する画像はV方向に関して圧縮され、その中でも特に水平分割線Lh1と水平分割線Lh2との間に位置する画像はV方向に関して強く圧縮される。
【0049】
基準線RLと直交する方向(H方向)に関しては、垂直分割線Lv1上に配置された分割点D11,D12,D13の位置は左方向に移動され、垂直分割線Lv4上に配置された分割点D41,D42,D43の位置は右方向に移動される。垂直分割線Lv2上に配置された分割点D21,D22,D23の位置は左方向に移動され、垂直分割線Lv3上に配置された分割点D31,D32,D33の位置は右方向に移動される。従って、垂直分割線Lv1より左側に位置する画像は、H方向に関して左側に圧縮され、垂直分割線Lv4より右側に位置する画像は、右側に圧縮される。また、垂直分割線Lv1と垂直分割線Lv2との間に位置する画像は、H方向に関して左側に移動しつつ拡大され、垂直分割線Lv3と垂直分割線Lv4との間に位置する画像は、H方向に関して右側に移動しつつ拡大される。さらに、垂直分割線Lv2と垂直分割線Lv3との間に位置する画像は、基準線RLを中心にH方向に関して拡大される。
【0050】
上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh3は額の画像付近に配置され、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、本実施形態の「スリム化補正処理」における顔変形処理では、顔画像の内、顎から額にかけての部分の画像がV方向に縮小されるとともに、左右の頬と頬の間の顔画像が全体的にH方向に拡大される。以上のH方向およびV方向の変形態様を総合すると、「スリム化補正処理」が指示された場合のS640の処理によって、変形領域TAに含まれる人物P1の顔の形状は、上下方向においてある程度押しつぶされ、幅方向に太った形状に変形される。
【0051】
なお顔変形部240は、S630において、圧縮率が示す数値を最終的に各分割点Dに配分して決定した各移動量に対してさらに所定の補正係数を乗算し、当該補正係数を乗算して得られた各値を、各分割点Dの移動量としてもよい。ここで言う補正係数とは、例えば0以上1未満の数値であって、顔変形処理による顔の幅方向(H方向)における拡大の度合いおよび顔の高さ方向(V方向)における圧縮の度合いを抑制するための数値である。補正係数の具体値は、予め内部メモリ120に記憶されていてもよいし、ユーザの入力に設定されてもよい。このような補正係数による変形度合いの抑制は、例えば、上記のように圧縮率に基づいて各分割点Dに配分した移動量を各分割点Dに適用して変形処理を施したときに、変形量が大きすぎて画像に破綻を生じさせる恐れがある場合等に行なう。
【0052】
図11は、S640において実行される小領域画像の変形処理を概念的に示す説明図である。図11では、分割点Dを黒丸で示している。また、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図11の例では、中央の分割点Daが分割点Da’の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da’,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
【0053】
本実施形態では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図11の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG’を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da’,Ddおよび重心CG’を頂点とする三角形領域の画像に変形される。
【0054】
図12は、三角形領域における画像の変形処理方法の概念を示す説明図である。図12の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s’,t’,u’を頂点とする三角形領域s’t’u’の画像に変形される。画像の変形は、変形後の三角形領域s’t’u’の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
【0055】
例えば、図12において、変形後の三角形領域s’t’u’の画像中の注目画素p’の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p’の位置を、下記の式(1)のようにベクトルs’t’とベクトルs’u’との和で表現するための係数m1およびm2を算出する。
【0056】
【数1】

【0057】
次に、算出された係数m1およびm2を用いて、下記の式(2)により、変形前の三角形領域stuにおけるベクトルstとベクトルsuとの和を算出することにより、位置pが求まる。
【0058】
【数2】

【0059】
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【0060】
変形後の三角形領域s’t’u’の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s’t’u’の画像への画像変形処理を行うことができる。このようにして、顔変形部240は、変形領域TAを構成する各小領域について、上述したように三角形領域を定義して変形処理を行う。
【0061】
S700では、一方向変形部230が対象画像について一方向変形処理を実行する。
一方向変形部230は、変形方向に直交する分割線によって対象画像を圧縮領域と拡大領域とに分ける。
【0062】
図13Aは、対象画像TIを圧縮領域ACと拡大領域AEとに分けた様子を例示している。
図13Bは、対象画像TIに対して一方向変形処理を施した後の画像(変形済画像TI’と呼ぶ。)を例示している。
一方向変形部230は、変形方向における変形領域TAの幅に基づいて変形方向における圧縮領域ACの幅を決定し(例えば、変形方向における変形領域TAの幅の2.5倍の幅を、変形方向における圧縮領域ACの幅とする)、当該決定した幅を有する領域であって変形領域TAを含む(基本的には中央に含む)領域を、変形方向に直交する分割線によって特定し、当該特定した領域を圧縮領域ACとして設定する。従って、基本的に圧縮領域ACには、対象画像TI中の人物P1の全体が含まれる結果となる。
【0063】
また、一方向変形部230は、対象領域TIにおける圧縮領域AC以外の領域を拡大領域AEとして設定する。そして、一方向変形部230は、一方向変形処理を実行することにより、図13Bに示すように、対象画像TIの圧縮領域ACを変形方向の長さが短縮された圧縮領域AC’に変形し、対象画像TIの拡大領域AEを変形方向の長さが延長された拡大領域AE’に変形する。
【0064】
図14は、S700において実行される一方向変形処理をフローチャートにより示している。
図15は、変形方向が横方向である場合の、一方向変形処理を模式的に示した説明図である。図15Aは、一方向変形処理が施される前の対象画像における画素の配置を示している。図15Bは、対応画素数テーブル410の一例を示している。図15Cは、一方向変形処理が施された画像(変形済画像)の画素の配置を示している。
【0065】
S710では、一方向変形部230は、S400において変形方向設定部220が設定した変形方向が横方向と縦方向とのいずれであるかを判断する。変形方向が横方向である場合、処理はS720に進む。一方、変形方向が縦方向である場合、処理はS750に進む。上述したように、本実施形態では横方向が変形方向であるため、S720に進む。
S720では、一方向変形部230は、対象画像において圧縮領域と拡大領域とを設定する。圧縮領域と拡大領域との設定方法は既に述べたため、ここでは説明を省略する。
【0066】
S730では、一方向変形部230は、対応画素数テーブル410を生成する。対応画素数テーブル410とは、対象画像の変形方向における各画素に対応する変形済画像の画素数を表すテーブルである。一方向変形部230は、圧縮領域および拡大領域それぞれについて既に設定されている倍率(圧縮率および拡大率)に基づいて、変形済画像の画素数(対応画素数)を決定する。そして、決定された対応画素数を対応画素数テーブル410に格納することにより、対応画素数テーブル410が生成される。
【0067】
一方向変形部230は、対応画素数テーブル410の生成にあたっては、圧縮率や拡大率を倍率に変換する。例えば、上述したように圧縮率として「30%」という数値が設定されている場合には、この圧縮率を0.7倍という数値(倍率)に変換する。また、例えば、拡大率として30%という数値が設定されている場合には、この拡大率を1.3倍という数値(倍率)に変換する。一方向変形部230は、例えば、このような倍率の小数部についてハーフトーン処理による二値化を行って0と1との配列パターンを決定し、配列パターンの0または1の値に倍率の整数部を加えることによって、対象画像の画素毎の対応画素数を決定することができる。一方向変形部230は、対応画素数テーブル410の生成に当っては、ハーフトーン処理としては、ディザや誤差拡散などの周知の方法を用いることができる。また、倍率の小数部ごとに予め格納された配列パターンを用いてもよい。なおS720において、対応画素数テーブル410を生成するのに代えて、予め作成された対応画素数テーブルを用いてもよい。
【0068】
図15Aでは、説明をごく簡単にするために、画像の横方向にそれぞれ5画素からなる領域1,2,3が存在し、領域1および領域3が拡大領域であり、領域2が圧縮領域である場合を想定して説明を行なう。ここでは、領域1の倍率が1.2倍、領域2の倍率が0.6倍、領域3の倍率が1.2倍であるとする。そのため、対応画素数テーブル(図15B)においては、領域1の5画素Px1〜Px5のうち、4つの画素Px1,Px2,Px3,Px5については、対応画素数が1に設定され、残り1つの画素Px4については、対応画素数が2に設定されている。また、領域2の5画素Px6〜Px10のうち、3つの画素Px6,Px8,Px10については、対応画素数が1に設定され、残り2つの画素Px7,Px9については、対応画素数が0に設定されている。また、領域3の5画素Px11〜Px15のうち、4つの画素Px11,Px12,Px13,Px15については、対応画素数が1に設定され、残り1つの画素Px14については、対応画素数が2に設定されている。
【0069】
S740では、一方向変形部230は、対応画素数テーブルを参照し、内部メモリ120内のバッファ領域を用いて対象画像の1ライン分の画素の再配置を行なう。ここで、ラインとは、一方向変形処理における処理単位であり、長さが対象画像の横方向における全画素数分で、幅が1画素分の画像領域をいう。図15の例では、図15Cに示すように、領域1を構成する画素として、順次、対応画素数が1の画素Px1,Px2,Px3が1つずつ配置され、次に対応画素数が2の画素Px4が2つ配置され、次に対応画素数が1の画素Px5が1つ配置される。次いで、領域2を構成する画素として、対応画素数が1の画素Px6,Px8,Px10が順に1つずつ配置され、次に、領域3を構成する画素として、対応画素数が1の画素Px11,Px12,Px13が1つずつ配置され、対応画素数が2の画素Px14が2つ配置され、対応画素数が1の画素Px15が1つ配置される。このような1ライン分の画素の再配置を全ラインについて行なうことにより、対象画像の拡大領域はそれぞれ1.2倍に拡大され、圧縮領域は0.6倍に圧縮される。
【0070】
S750では、一方向変形処理実行部230は、対象画像の全てのラインについて、画素の再配置が完了したか否かを判断する。全てのラインについて画素の再配置が完了している場合、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、画素の再配置が完了していない場合、処理はS740に戻され、全てのラインについて画素の再配置が完了するまで、S740,S750が繰り返し実行される。
【0071】
一方向変形部230は、S760においては、対象画像の縦方向と直交する分割線よって対象画像を圧縮領域と拡大領域とに分け、S770では、S730と同様に圧縮領域、拡大領域の各倍率を用いて対応画素数テーブル410を生成する。変形方向が縦方向の場合、対象画像の縦方向に並ぶ各画素(縦方向に並ぶ各ライン)についての対応画素数を規定した対応画素数テーブル410が生成される。対応画素数の決定方法はS730と同様であるので説明を省略する。
【0072】
S780において、一方向変形部230は、対応画素数テーブルを参照して、上記バッファ領域に設けられた変形済画像の格納領域に、対象画像のラインを配置する。変形方向が横方向である場合には、画素単位でその画素に対応する対応画素数(0や1や2等)に応じた再配置を行なうが、変形方向が縦方向である場合には、ライン単位で、そのラインに対応する対応画素数に応じた配置を行なう。具体的には、上記バッファ領域の変形済画像の格納領域に、バッファ領域に格納された対象画像の1ラインを、当該1ラインに対応する対応画素数分のラインとして追加する。
【0073】
S790では、一方向変形部230は、対象画像の全てのラインを対象としてS780の処理を完了したか否かを判断し、完了している場合は、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、完了していない場合は、処理はS780に戻され、対象画像の全てのラインを対象としてS780が行なわれるまで、S780,S790が繰り返し実行される。
【0074】
このように、S700の一方向変形処理により、対象画像において変形領域TAを基準にして設定された圧縮領域(顔画像を含む領域)は変形方向に圧縮され、拡大領域は変形方向に拡大される。そのため、図13Bに示したように、変形済画像TI’中の人物P1は、変形前の対象画像TI中の人物P1よりも全体的に細くなる(スリム化される)。上述したように、S600の顔変形処理によって、顔の形状は上下方向に押しつぶされ幅方向に太った形状となっている。そのため、「スリム化補正処理」を構成する顔変形処理および一方向変形処理が施された対象画像においては、人物画像は全体的にスリムな体型に変形しつつも、顔のスリム化の度合いは他の体部分のスリム化の度合いよりも緩くなっている。人間の体の中でも顔はユーザにとって特に注意を引く部分であり、画像補正処理によって顔の縦横比が著しく変形していると、ユーザは大きな違和感を感じてしまう。本実施形態の「スリム化補正処理」によれば、顔の縦横比については、処理前と比較して著しく変化することが抑制されるため、ユーザは、見た目に違和感の無い画像を得ることができる。
【0075】
上記では、顔変形処理(S600)の後に一方向変形処理(S700)を実行する場合を例に説明を行なったが、これら2つの処理を行なう場合の処理の順序は問わず、一方向変形処理の後に顔変形処理を行なう構成としてもよい。一方向変形処理の後に顔変形処理を行なう構成の場合、S500において“No”の判定がなされた場合には一方向変形処理後に、図2のフローチャートを終える。
【0076】
また、本実施形態の「スリム化補正処理」では、対象画像中の顔の縦横比が変化し過ぎることを防止しつつも、全体的にバランスの良い画像を得るための種々の工夫をしている。上述したように、顔変形処理では、変形領域の画像のH方向における変形量(拡大量)として、一方向変形処理における圧縮率が示す数値をそのまま適用するのではなく、圧縮率が示す数値のうち所定割合分の数値を適用する。つまり、一方向変形処理による圧縮をほぼ全て打ち消す程の拡大を顔変形処理において行なうと、「スリム化補正処理」後の画像において、顔と顔以外の体とのバランスが非常に悪い(顔以外の体だけが細い)人物画像が得られてしまう恐れがある。そのため、あくまで顔変形処理における顔の幅方向の拡大は、一方向変形処理による圧縮領域の圧縮効果がある程度勝るような度合いで行なうようにしている。
【0077】
また上記では、顔変形部240が分割点Dの移動量を決定する際に、分割点D毎に異なる移動量を決定しても良い旨述べた。その一例として、顔変形部240は、目や鼻や口といった顔器官よりも外側の領域(例えば、頬付近や顎付近の領域)に適用するH方向への移動量(基準線RLから離れていく向きへの移動量)に、制限を与えるとしてもよい。具体的には、顔変形部240は、垂直分割線Lv1上の分割点D11,D12と垂直分割線Lv2上の分割点D21,D22とについては、内側に位置する分割点D(D21,D22)に設定するH方向の移動量よりも、外側に位置する分割点D(D11,D12)に設定するH方向の移動量を少なくしたり、顎付近の分割点D(D11,D21)に設定するH方向の移動量をさらに少なくしてもよい。この場合、顔の左側の垂直分割線Lv3上の分割点D31,D32と垂直分割線Lv4上の分割点D41,D42とに対しても、同様の考えによってH方向の移動量を設定する。
【0078】
このように、垂直分割線Lv1,Lv4上の分割点D11,D12,D41,D42のH方向の移動量を、垂直分割線Lv2,Lv3上の分割点D21,D22,D31,D32のH方向の移動量よりも少なく設定すれば、顔変形処理を行なった場合に、これら各分割点Dはそれぞれ基準線RLから離れる向きに移動(顔画像が顔の幅方向に拡大)しつつも、移動後の分割点D’11,D’12と分割点D’21,D’22との距離および分割点D’41,D’42と分割点D’31,D’32との距離は、顔変形処理の前よりも狭まる。従って、このような顔変形処理に一方向変形処理を加えて人画像を変形方向に全体的に圧縮した後においては、顔画像も全体的に圧縮された状態となるが、その中でも特に分割点D’11,D’12,D’22,D’21で囲まれた画像領域および分割点D’41,D’42,D’32,D’31で囲まれた画像領域は顔変形処理前と比較してより狭くなる。
【0079】
分割点D’11,D’12,D’22,D’21で囲まれた画像領域および分割点D’41,D’42,D’32,D’31で囲まれた画像領域は、左右の頬や顎のラインに対応する領域である。そのため、かかる領域が特に狭い領域へと変形されることで「スリム化補正処理」後においては、頬や顎のラインが引き締まった顔画像が得られる。さらに、顎付近の分割点D11,D21,D31,D41のH方向の移動量を、頬付近の分割点D12,D22,D32,D42のH方向の移動量よりも少なく設定すれば、「スリム化補正処理」後においては、顎の幅がより狭くシャープな印象となった顔画像が得られる。
【0080】
3.他の実施例
次に、上記S200において、画像補正処理部200が、UIのボタンに対するユーザの操作によって「小顔化を伴うスリム化補正処理」の実行が指示されたと判断した後の処理について説明する。「小顔化を伴うスリム化補正処理」と上述の「スリム化補正処理」とは、S600における顔補正処理の内容が異なる。そのため、ここでは「小顔化を伴うスリム化補正処理」における顔補正処理について説明する。
【0081】
「スリム化補正処理」における顔変形処理と、「小顔化を伴うスリム化補正処理」における顔変形処理との違いは、S630で各分割点Dに対して決定する移動量の違いに表れる。具体的には、顔変形部240は「小顔化を伴うスリム化補正処理」における顔変形処理では、少なくとも一部の分割点Dについて、H方向に沿った基準線RLから離れる向きへの移動量を「スリム化補正処理」の際に設定する移動量よりも少なく設定するとともに、少なくとも一部の分割点Dについて、顔画像を小顔化させるように移動量を設定する。ただしこの場合でも、顔変形部240は、圧縮率を示す数値をH方向とV方向との変形量に所定割合で割り当て、H方向とV方向とに割り当てた変形量を各分割点Dへ移動量として配分した上で、各分割点Dの移動量を調整して設定する。
【0082】
図16は、「小顔化を伴うスリム化補正処理」における顔変形処理の際に、顔変形部240が各分割点Dに対して決定した移動量を表で示している。図16においても、図9と同様に、各分割点Dの移動量は画素ピッチによって示している。図16においては、例えば、分割点D12,D42についてのH方向の移動量(基準線RLから離れていく向きへの移動量)が、「スリム化補正処理」の顔変形処理の際に設定される移動量(図9参照)よりも少ない値に設定されている。また図16においては、水平分割線Lh1上の分割点D11,D21,D31,D41についてのH方向の移動量としては、「スリム化補正処理」の顔変形処理の際に設定される移動量(図9参照)とは異なり、基準線RLに接近する向きへの移動量が設定されており、かつ、これら分割点D11,D21,D31,D41についてのV方向プラス側への移動量は、「スリム化補正処理」の顔変形処理の際に設定される移動量(図9参照)よりも大幅に大きな値となっている。
【0083】
図17は、顔変形部240がS640において、図16に示された分割点D毎の移動量に従って、各分割点Dの位置を移動させて変形領域TA内の画像を変形する際の具体的態様を示している。図17でも図10と同様に、比較の便宜のため、変形前の人物P1の顔の輪郭を鎖線で示し、変形後の人物P1の顔の輪郭を実線で示している。また図17でも、移動後の分割点Dの符号に「’」を付し、移動する前の分割点D(白丸)の符号に括弧を付している。図17に示すように、基準線RLと平行な方向(V方向)に関し、水平分割線Lh1上に配置された分割点D11,D21,D31,D41の位置は上方に移動され、水平分割線Lh2,Lh3上に配置された分割点D12,D22,D32,D42,D13,D23,D33,D43の位置は下方に移動される。ただし、分割点D11,D21,D31,D41のV方向プラス側への移動量は、「スリム化補正処理」における顔変形処理のときの移動量よりも多い。そのため、水平分割線Lh1と水平分割線Lh2との間に位置する画像(顎の下付近から目の下付近までの画像)はV方向に関して「スリム化補正処理」における顔変形処理のときよりも強く圧縮される。
【0084】
基準線RLと直交する方向(H方向)に関しては、垂直分割線Lv1上に配置された分割点D12,D13の位置は左方向に移動され、垂直分割線Lv4上に配置された分割点D42,D43の位置は右方向に移動される。さらに、垂直分割線Lv2上に配置された分割点D22,D23の位置は左方向に移動され、垂直分割線Lv3上に配置された分割点D32,D33の位置は右方向に移動される。ただし、分割点D12のH方向マイナス側への移動量および分割点D42のH方向プラス側への移動量は、「スリム化補正処理」における顔変形処理のときの夫々の移動量よりも少ない。そのため、顔画像における、特に頬の高さ辺りの幅は、「スリム化補正処理」における顔変形処理のときよりも拡大の度合いが少なくなっている。
【0085】
さらに、水平分割線Lh1上に配置された分割点D11,D21,D31,D41のH方向の移動量が示す向きは、「スリム化補正処理」における顔変形処理のときの移動量が示す向きと反対である。そのため、顔画像における顎付近の顔の幅は、当該「小顔化を伴うスリム化補正処理」における顔変形処理によって圧縮される。このように、「小顔化を伴うスリム化補正処理」における顔変形処理では、顔の幅が「スリム化補正処理」における顔変形処理のときほどは拡大されず、かつ顔の特に目より下の領域が縮小される(小顔化される)。そのため、「小顔化を伴うスリム化補正処理」を構成する顔変形処理および一方向変形処理が施された対象画像においては、人物画像は全体的にスリムな体型に変形されつつ顔のスリム化の度合いは基本的には他の体部分のスリム化の度合いよりも緩くなっているが、同時に、顔画像における頬や顎周辺を含む、目より下の領域については、顔の高さ方向および幅方向における縮小度合いが強くなっており、その結果、小顔化も実現されている。
【図面の簡単な説明】
【0086】
【図1】画像処理装置としてのプリンタの構成を概略的に示す説明図である。
【図2】画像補正処理の一例を示したフローチャートである。
【図3】UIの一例を示した説明図である。
【図4】対象画像から顔領域が検出された様子を示した説明図である。
【図5】顔領域から器官領域が検出された様子を示した説明図である。
【図6】顔変形処理の詳細を示したフローチャートである。
【図7】顔領域に対して変形領域を設定した様子を示した説明図である。
【図8】変形領域の小領域への分割方法の一例を示す説明図である。
【図9】分割点毎の移動量の一例を示した図である。
【図10】顔変形処理によって変形領域内の画像が変形される様子の一例を示した図である。
【図11】小領域画像の変形処理を概念的に示す説明図である。
【図12】三角形領域における画像の変形処理方法の概念を示す説明図である。
【図13】一方向変形処理によって対象画像の各領域が変形される様子の一例を示した図である。
【図14】一方向変形処理の詳細を示したフローチャートである。
【図15】一方向変形処理を模式的に示した説明図である。
【図16】分割点毎の移動量の一例を示した図である。
【図17】顔変形処理によって変形領域内の画像が変形される様子の一例を示した図である。
【符号の説明】
【0087】
100…プリンタ、110…CPU、120…内部メモリ、140…操作部、150…表示部、160…プリンタエンジン、170…カードインタフェース、172…カードスロット、200…画像補正処理部、210…顔領域検出部、220…変形方向設定部、230…一方向変形部、240…顔変形部、310…表示処理部、320…印刷処理部、410…対応画素数テーブル、420…分割点配置パターンテーブル

【特許請求の範囲】
【請求項1】
顔画像が含まれる対象画像において、当該顔画像を含む領域を圧縮領域として設定する領域設定部と、
所定の圧縮率によって、上記圧縮領域を特定方向に圧縮する画像変形部と、
上記顔画像の少なくとも一部が上記特定方向に拡大するように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形する顔変形部とを備えることを特徴とする画像処理装置。
【請求項2】
顔の小型化の指示を外部から受付ける指示受付部を備え、
上記顔変形部は、上記指示受付部が上記指示を受付けた場合には、上記顔画像の少なくとも一部に対して適用する拡大量を低下させることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記顔変形部は、上記圧縮率が示す数値のうちの所定割合の数値に基づいて上記拡大量を決定することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
上記顔変形部は、上記圧縮率が示す数値から上記所定割合の数値を差し引いた残りの数値に基づいて圧縮量を決定し、上記顔画像の少なくとも一部が上記特定方向と直交する方向に圧縮するよう、当該決定した圧縮量によって上記顔画像を変形することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
上記顔変形部は、所定の顔器官より外側の領域に適用する拡大量に制限を与えることを特徴とする請求項1〜請求項4のいずれかに記載の画像処理装置。
【請求項6】
上記領域設定部は、上記特定方向と直交する線によって上記対象画像を上記圧縮領域と当該圧縮領域以外の領域とに分けることを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
顔画像が含まれる対象画像において、当該顔画像を含む領域を圧縮領域として設定する領域設定工程と、
上記顔画像の少なくとも一部を変形する顔変形工程と、
所定の圧縮率によって、上記圧縮領域を特定方向に圧縮する画像変形工程とを備え、
上記顔変形工程では、上記顔画像の少なくとも一部が上記特定方向に拡大するように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形することを特徴とする画像処理方法。
【請求項8】
顔画像が含まれる対象画像において、当該顔画像を含む領域を圧縮領域として設定する領域設定機能と、
所定の圧縮率によって、上記圧縮領域を特定方向に圧縮する画像変形機能と、
上記顔画像の少なくとも一部が上記特定方向に拡大するように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形する顔変形機能とをコンピュータに実行させることを特徴とする画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−55257(P2010−55257A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−217922(P2008−217922)
【出願日】平成20年8月27日(2008.8.27)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】