説明

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

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

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、画像処理プログラムおよび印刷装置に関する。
【背景技術】
【0002】
デジタル画像を対象に、画像を変形するための画像処理技術が知られている(特許文献1参照。)。特許文献1には、顔の画像上の一部の領域(頬の画像を表す領域)を補正領域として設定し、補正領域を所定のパターンに従い複数の小領域に分割し、小領域毎に設定された倍率で画像を拡大または縮小することにより、顔の形状を変形する画像処理が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004‐318204号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
またユーザーは、画像に顔を含む人物が写っている場合に、人物の体型が好みの体型(例えば、細身の体型)に変形された画像を得たいと望むことがある。このような要望に応える変形処理として、画像内に特定領域を設定してこの特定領域に対して一律な圧縮処理を施し、同時に、当該特定領域外の領域に対して一律な拡大処理を施す場合がある。しかし上記一律な変形(圧縮および拡大)処理を施すと、特定領域あるいは特定領域外に含まれる人物の顔も変形の影響を受け、その結果、顔の縦横比が大きく変化した画像が得られてしまう。このように顔の縦横比が大きく変化した人物の画像(例えば、顔が著しく横長になった画像)は、ユーザーに違和感を与えてしまう。
【0005】
本発明は上記課題に鑑みてなされたものであり、人物を含む画像について、より見栄えのよい変形結果を容易に得ることが可能な画像処理装置、画像処理方法、画像処理プログラムおよび印刷装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の画像処理装置は、顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定部と、所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形部と、上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形部とを備える。本発明によれば、顔変形部は、拡大領域に含まれる顔画像が、拡大領域の拡大率に応じて決定した圧縮量によって特定方向に圧縮されるように変形させる。そのため、画像変形部によって拡大領域が拡大されても、結果的に顔の縦横比は大きく崩れることが無い。よって、ユーザーに違和感を与えることの無い画像を得ることができる。なお、画像変形部による処理と顔変形部による処理の順番はどちらが先でも良い。
【0007】
上記画像変形部は、所定の圧縮率によって上記圧縮領域を上記特定方向に圧縮し、上記顔変形部は、上記顔画像の少なくとも一部が上記圧縮領域に含まれている場合に、当該圧縮領域に含まれている顔画像が上記特定方向に拡大されるように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形するとしてもよい。当該構成によれば、拡大領域に含まれる顔画像は拡大領域における拡大効果をある程度打ち消すように圧縮されるという効果に加え、圧縮領域に含まれる顔画像は圧縮領域における圧縮効果をある程度打ち消すように拡大されるという効果も奏する。なお、圧縮領域と拡大領域とに跨る位置に存在する顔画像については、圧縮領域に含まれる範囲を特定方向に拡大し、拡大領域に含まれる範囲を特定方向に圧縮する。
【0008】
上記顔変形部は、上記顔画像の上下方向と上記特定方向とがなす角度が所定の基準角度より大きい場合に、上記顔画像の変形を実行するとしてもよい。当該構成によれば、上下方向が特定方向と略平行な顔画像については変形対象から除外し、特定方向に対して上下方向がある程度立った(略垂直な)顔画像について、拡大領域(圧縮領域)における拡大率(圧縮率)に応じた変形を行なうことができる。
【0009】
上記顔変形部は、上記対象画像内に複数の顔画像が存在する場合に、少なくとも一部が互いに重なっている各顔画像を除いた顔画像に対して変形を実行するとしてもよい。当該構成によれば、互いに重なっている各顔画像について個々に変形を行なうことで却って画像が全体的に破綻してしまう、といった不都合を防止できる。
【0010】
上記顔変形部は、上記拡大率が示す数値のうちの所定割合の数値に基づいて上記圧縮量を決定するとしてもよい。例えば、上記拡大率が20%であれば、当該20%という数値の何割かの数値を上記圧縮量とする。このように、拡大領域に対する拡大効果を完全に打ち消すような圧縮量を顔画像に適用するのではなく、拡大率が示す数値のうちの所定割合の数値に基づいて顔画像の圧縮量を決定することで、画像変形部による処理と顔変形部による処理の両方が終わった後において、拡大領域における顔と顔以外の部分とのバランスが最適となった画像を得ることができる。
【0011】
これまでは、本発明の技術的思想を画像処理装置として説明したが、上述した画像処理装置が備える各手段に対応した各工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各手段に対応した各機能をコンピューターに実行させる画像処理プログラムの発明をも把握することができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、パーソナルコンピューターやサーバー等のハードウェアによって実現されてもよいし、画像入力装置としてのデジタルスチルカメラやスキャナー、あるいは、画像出力装置としてのプリンター(印刷装置)やプロジェクターやフォトヴューワー等、様々な製品によって実現することができる。
【図面の簡単な説明】
【0012】
【図1】画像処理装置としてのプリンターの構成を概略的に示す説明図である。
【図2】画像補正処理の一例を示したフローチャートである。
【図3】UIの一例を示した説明図である。
【図4】対象画像から顔領域が検出された様子を示した説明図である。
【図5】顔領域から器官領域が検出された様子を示した説明図である。
【図6】顔変形処理の詳細を示したフローチャートである。
【図7】顔領域に対して変形領域を設定した様子を示した説明図である。
【図8】変形領域の小領域への分割方法の一例を示した説明図である。
【図9】分割点毎の移動量の一例を示した図である。
【図10】顔変形処理によって変形領域内の画像が変形される様子の一例を示した図である。
【図11】小領域画像の変形処理を概念的に示す説明図である。
【図12】三角形領域における画像の変形処理方法の概念を示す説明図である。
【図13】一方向変形処理によって対象画像の各領域が変形される様子の一例を示した図である。
【図14】一方向変形処理の詳細を示したフローチャートである。
【図15】一方向変形処理を模式的に示した説明図である。
【図16】対象領域内において顔領域が互いに重なった様子を示した図である。
【図17】分割点毎の移動量の他の例を示した図である。
【図18】顔変形処理によって変形領域内の画像が変形される様子の他の例を示した図である。
【図19】変形領域が圧縮領域と拡大領域に跨っている様子を示した図である。
【発明を実施するための形態】
【0013】
下記の順序に従って、本発明の実施形態を説明する。
1.画像処理装置の概略構成
2.画像補正処理
3.まとめ
【0014】
1.画像処理装置の概略構成
図1は、本発明にかかる画像処理装置の一例としてのプリンター100の構成を概略的に示す説明図である。プリンター100は、メモリーカードMC等の記録メディアから取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンターである。プリンター100は、内部メモリー120と、CPU110と、操作部140と、表示部150と、プリンターエンジン160と、カードインターフェース(カードI/F)170と、カードスロット172とを備えている。
【0015】
内部メモリー120は、ROMやRAMによって構成されており、機能ブロックとして、画像補正処理部200と、表示処理部310と、印刷処理部320とを備えている。画像補正処理部200は、所定のオペレーティングシステムの下で、後述する画像補正処理を実行するためのコンピュータープログラムである。画像補正処理部200は、プログラムモジュールとして、顔領域検出部210と、変形方向設定部220と、一方向変形部230とを有している。一方向変形部230は、RAMに設けられた一時記憶領域であるバッファ領域と、対応画素数テーブル410とを用いることにより、画像補正処理の一種としての一方向変形処理を実行する。一方向変形部230は、特許請求の範囲における領域設定部および画像変形部を兼ねている。さらに、画像補正処理部200は、プログラムモジュールとして、顔変形部240を含んでいる。顔変形部240は、分割点配置パターンテーブル420を用いて、画像補正処理の一種としての顔変形処理を実行する。これら各部の機能については後述する。
【0016】
表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージや画像等を表示させるディスプレードライバーである。印刷処理部320は、画像データに対して所定の色変換処理やハーフトーン処理を施すことにより画素毎のインク量を規定した印刷データを生成し、プリンターエンジン160を制御して当該印刷データに基づいて画像の印刷を実行させるためのコンピュータープログラムである。印刷処理部320による色変換処理やハーフトーン処理の処理対象となる画像データには、例えば、画像補正処理部200によって画像補正処理が実行された後の画像を表す画像データが該当する。CPU110は、上述したこれらのプログラムを内部メモリー120から読み出して実行することにより、これら各部の機能をそれぞれ実現する。
【0017】
操作部140は、ボタンやタッチパネルを備えておりユーザーによる指示等の入力を受け付ける。表示部150は、例えば液晶ディスプレーによって構成されている。プリンターエンジン160は、印刷処理部320から送信される印刷データに基づき印刷を行う印刷機構である。カードI/F170は、カードスロット172に挿入されたメモリーカードMCとの間でデータのやり取りを行うためのインターフェースである。プリンター100は、カードI/F170以外にも、他の機器(例えばデジタルスチルカメラやパーソナルコンピューター)とのデータ通信を行うためのインターフェースを備える構成とすることもできる。以上の各構成要素は、バスを介して互いに接続されている。
プリンター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とを備えている。ユーザーは、画像表示欄IAを見ながら画像切替用ボタンB1,B2を操作して対象画像を選択し、通常印刷ボタンB3、補正印刷ボタンB4のいずれかを押下することで対象画像を設定できる。図3の例では、人物P1,P2が写った画像TIが対象画像として選択されており、この状態でユーザーが通常印刷ボタンB3、補正印刷ボタンB4のいずれかを押下することで、画像補正処理部200は、画像TIを対象画像として設定する。なおUIは、メモリーカードMC内の複数の画像を一覧表示する構成とすることもできる。
【0020】
ユーザーが補正印刷ボタンB4を押下すると、画像補正処理部200は、対象画像に対して後述するように顔変形処理および一方向変形処理を施す。プリンター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に2人の人物P1,P2の画像が含まれているため、人物P1,P2の顔画像に対応する顔領域Fd(Fd1,Fd2)が検出されている。つまり、対象画像内に複数の顔画像が存在する場合には、顔領域検出部210によってそれぞれの顔画像にかかる顔領域Fdが検出される。顔領域Fdは、対応する顔における両目と鼻と口の各画像をすべて含む矩形の領域である。顔領域検出部210は、顔領域Fdを、その領域の4つの頂点の座標により特定する。ただし、メモリーカード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の例では、顔領域Fd1において、右目領域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が、対象画像内のある一つの顔領域Fdについて、その顔の高さ方向の傾きが後述の顔変形処理の対象となり得る傾きであるか否か判定する。具体的には、S400で設定された変形方向と、顔の高さ方向とがなす角度が基準角度より大きいか否か判定し、基準角度より大きい場合(Yes)にはS600(顔変形処理)に進み、基準角度以下である場合(No)にはS600をスキップしてS700に進む。ここで用いる基準角度としては、例えば45°が該当する。上述したようにS400では、対象画像内の顔の傾きを考慮して基本的にS500で“Yes”と判定されるような変形方向が設定されるものの、ユーザーの設定ミスや、顔が複数ある場合に一部の顔については変形方向に対して顔の高さ方向が寝ている(変形方向と顔の高さ方向との間の角度が45°以内。)事態もあり得る。そのためS500の判定を行う必要がある。
【0030】
S500の判定を行なうために、画像補正処理部200は、S400でユーザーの入力に応じて変形方向を設定した場合であっても、顔の高さ方向を規定する線分L2の上記器官領域の検出に基づく特定を、顔毎に行なう。
S700では、顔変形部240は、対象画像内で検出された全ての顔領域Fdを一つずつ対象としたS500の判定を終えたか否か判定し、全ての顔領域FdについてS500の判定を終えている場合(Yes)にはS800に進み、終えていない場合(No)にはS500に戻り未判定の顔領域Fdを対象として処理を繰り返す。
【0031】
なお、図16に示すように、対象画像TI内において検出された複数の顔領域Fdが互いに重なっている場合もある。このように互いに重なっている各顔領域Fdについて顔変形処理の対象とした場合、一方の顔の変形結果が他方の顔に悪影響を与えるなど、かえって画像を破綻させてしまうこともあり得る。そのため本実施形態では、顔変形部240は、対象画像TIから複数の顔領域Fdが検出された場合には、一部分でも他の顔領域Fdと重なっている顔領域Fdについては顔変形処理の処理対象としない。つまりS500では、実質的に、変形方向と顔の高さ方向とがなす角度が基準角度以上かつ他の顔領域Fdと重なっていない顔領域Fdについて、“Yes”と判定する。
S600では、顔変形部240は、対象画像内の各顔画像を対象として、顔変形処理を実行する。
【0032】
図6は、S600における顔変形処理の詳細をフローチャートにより示している。
S610では、顔変形部240は、顔領域Fd(直近のS500で判定の対象となった顔領域Fd)を基準にして変形領域を設定する。変形領域とは、対象画像内の顔領域Fdを含む領域であって顔変形処理の対象となる領域を意味する。変形領域は顔画像の全体をカバーする矩形領域であり、変形領域を顔画像として解釈してもよい。また上記では、顔領域Fd同士が重なるものについては、顔変形処理の対象から外すとしたが、変形領域同士が重なる各顔について顔変形処理の対象から外すとしてもよい。
【0033】
図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の幅を半分に分割する直線となる。
【0034】
図7に示すように、変形領域TAは、高さ方向に関しては、概ね顎から頭頂部までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち本実施形態では、変形領域TAが概ねそのような範囲の画像を含む領域となるように、上述の係数k1,k2,k3を予め実験により求めて設定されている。
S620では、顔変形部240は、S610で設定された変形領域を複数の小領域に分割する。
【0035】
図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と呼ぶ。
【0036】
水平分割線Lh1は、変形領域TAにおいて、顎の画像より下方に配置され、水平分割線Lh2は、目の画像の下付近に配置され、水平分割線Lh3は、目の画像の上付近あるいは額の画像辺りに配置される。垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TAの大きさとの対応関係に従い実行される。
【0037】
上述した水平分割線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個の矩形の小領域に分割されている。
【0038】
S630では、顔変形部240は、所定の分割点Dについての移動量を、一方向変形処理に用いる圧縮率あるいは拡大率に応じて決定する。ここで、後述の一方向変形処理(S800)では、対象画像内に圧縮領域および拡大領域を設定した状況下、圧縮領域については所定の圧縮率で圧縮し、拡大領域については所定の拡大率で拡大する。圧縮領域および拡大領域の設定は、一方向変形部230が行なう。具体的には、一方向変形部230は、対象画像を変形方向に垂直な分割線(水平分割線Lhおよび垂直分割線Lvとは異なる分割線)によって分割することにより、略中央位置の圧縮領域と、圧縮領域の左右に位置する拡大領域とに分けて設定する。
【0039】
一方向変形部230による、当該変形方向に垂直な分割線による圧縮領域と拡大領域への分け方は様々であり、例えば、予め固定値として内部メモリー120等に設定されている圧縮領域と拡大領域との面積比によって分けてもよいし、操作部140および表示部150を介してユーザーが対象画像上に指定した分割線の位置によって分けてもよいし、あるいは、対象画像のより中央に位置する変形領域の全体を含む領域を圧縮領域として設定するとともに当該設定した圧縮領域の左右の領域を拡大領域として設定してもよい。以下では、単に「圧縮領域」と言った場合には一方向変形処理の為に対象領域内に設定された圧縮領域を意味し、単に「拡大領域」と言った場合には一方向変形処理の為に対象領域内に設定された拡大領域を意味する。
【0040】
本実施形態では、一方向変形部230は、上記のような対象画像内における圧縮領域および拡大領域の設定を、少なくとも顔変形部240がS630の処理を開始する前に行なっておく。そして、S630では、顔変形部240は、対象画像内が圧縮領域と拡大領域とに分けられていることを前提として、S610で設定された変形領域が圧縮領域と拡大領域とのいずれに含まれているか判断し、圧縮領域に含まれている場合には当該圧縮領域に一方向変形処理で用いられる圧縮率に応じて上記移動量を決定し、拡大領域に含まれている場合には当該拡大領域に一方向変形処理で用いられる拡大率に応じて上記移動量を決定する。以下、単に「圧縮率」と表現した場合には、一方向変形処理の際に圧縮領域に適用される圧縮率を意味し、単に「拡大率」と表現した場合には、一方向変形処理の際に拡大領域に適用される拡大率を意味する。
【0041】
圧縮率および拡大率は、予め固定値として内部メモリー120等に記憶されていてもよいし、操作部140等を介してユーザーによって入力された数値であってもよい。或いは、プリンター100は、一方向変形処理後の対象画像のサイズが変わり過ぎることを防止するために、UIを介して圧縮率と拡大率のいずれか一方のみをユーザーに入力させ、入力された圧縮率または拡大率の一方の値に応じて、入力されていない圧縮率または拡大率の値を決定するとしてもよい。
【0042】
顔変形部240は、上述したように予め内部メモリー120に記憶されていた圧縮率および拡大率または、ユーザーによって入力された(あるいはユーザーの入力に従って決定された)圧縮率および拡大率を取得することができる。
ここではまず、顔変形部240が、変形領域は圧縮領域に含まれていると判断し、圧縮領域に適用される圧縮率として「30%」という値を取得した場合について説明する。30%の圧縮率とは、言い換えれば、一方向変形処理前の圧縮領域の変形方向における長さを一方向変形処理後に0.7倍の長さにするための倍率である。
【0043】
顔変形部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方向については、上方への移動量を正値(プラス)として表し、下方への移動量を負値(マイナス)として表す。
【0044】
ここでは、変形方向とH方向とがなす角度は変形方向とV方向とがなす角度よりも小さいと言える。従って、所定の分割点Dについて、基準線RLから離れる向きへの移動量を圧縮率に基づいて設定し、設定した移動量に従って分割点Dを移動させれば、顔画像の一部は少なくとも変形方向にも拡大される。一例として、顔変形部240は、H方向における移動量として、基準線RLよりも左側の分割点D11,D21,D12,D22,D13,D23についてはマイナス側(左側)への移動量を設定し、基準線RLよりも右側の分割点D31,D41,D32,D42,D33,D43についてはプラス側(右側)への移動量を設定する。
【0045】
また顔変形部240は、V方向における移動量として、水平分割線Lh1上の分割点D11,D21,D31,D41についてはプラス側(上側)への移動量を設定し、水平分割線Lh3上の分割点D13,D23,D33,D43についてはマイナス側(下側)への移動量を設定する。このように水平分割線Lh1上の所定の分割点Dおよび水平分割線Lh3上の所定の分割点Dについて移動量を設定し、設定した移動量に従って分割点Dを移動させれば、顔画像の一部は少なくとも変形方向と直交する方向にも圧縮される。
【0046】
より具体的には、顔変形部240は、各分割点Dの移動量を設定する際、圧縮率が示す数値(30%)を、まず変形領域内の画像のH方向における変形量(拡大量)とV方向における変形量(圧縮量)とに所定割合で配分する。一例として、顔変形部240は、圧縮率が示す数値(30%)のうち7割(21%)をH方向における変形量(拡大量)に割り当て、圧縮率が示す数値(30%)から上記H方向における変形量(拡大量)を差し引いた残り(9%)を、V方向における変形量(圧縮量)に割り当てる。
【0047】
顔変形部240は、H方向とV方向とに割り当てた変形量をさらに、各分割点Dへ移動量として配分する。一例として、顔変形部240は、H方向に割り当てた変形量(21%)の5割に当る数値(10.5%)を、各分割点D11,D12,D13,D21,D22,D23,D31,D32,D33,D41,D42,D43のH方向における移動量(基準線RLから離れる向きへの移動量)として設定し、V方向に割り当てた変形量(9%)の3割に当る数値(2.7%)を、水平分割線Lh1上の各分割点D11,D21,D31,D41のV方向プラス側への移動量として設定し、V方向に割り当てた変形量(9%)の7割に当る数値(6.3%)を、水平分割線Lh3上の各分割点D13,D23,D33,D43のV方向マイナス側への移動量として設定する。この結果、例えば、分割点D11については、H方向マイナス側への移動量として10.5%という数値が設定され、V方向プラス側への移動量として2.7%という数値が設定される。また、分割点D43については、H方向プラス側への移動量として10.5%という数値が設定され、V方向マイナス側への移動量として6.3%という数値が設定される。このように設定された分割点DのH方向、V方向への移動量は、変形領域TAのH方向、V方向の長さ(画素数)に対する割合を意味する。
【0048】
上述したような、圧縮率が示す数値を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方向プラス側へ大きく移動させることによって変形後の首の画像が長くなってしまうことを、防ぐためである。
【0049】
図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内の画像を変形させる。
【0050】
図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を頂点とする小領域の画像に変形される。この小領域画像の変形処理の詳細については後述する。
【0051】
図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方向に関して強く圧縮される。
【0052】
基準線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方向に関して拡大される。
【0053】
上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh3は頭頂部の画像より上に配置され、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、このように変形領域が圧縮領域に含まれている場合の顔変形処理では、顔画像の内、顎から頭頂部にかけての部分の画像がV方向に縮小されるとともに、左右の頬と頬の間の顔画像が全体的にH方向に拡大される。以上のH方向およびV方向の変形態様を総合すると、かかる顔変形処理によって、変形領域TAに含まれる人物P1の顔の形状は、上下方向においてある程度押しつぶされ、幅方向に太った形状に変形される。
【0054】
なお顔変形部240は、S630において、圧縮率が示す数値を最終的に各分割点Dに配分して決定した各移動量に対して、さらに所定の補正係数を乗算し、当該補正係数を乗算して得られた各値を、各分割点Dの移動量としてもよい。ここで言う補正係数とは、例えば0以上1未満の数値であって、顔変形処理による顔の幅方向(H方向)における拡大の度合いおよび顔の高さ方向(V方向)における圧縮の度合いを抑制するための数値である。補正係数の具体値は、予め内部メモリー120に記憶されていてもよいし、ユーザーの入力に設定されてもよい。このような補正係数による変形度合いの抑制は、例えば、上記のように圧縮率に基づいて各分割点Dに配分した移動量を各分割点Dに適用して変形処理を施したときに、変形量が大きすぎて画像に破綻を生じさせる恐れがある場合等に行なう。
【0055】
図11は、S640において実行される小領域画像の変形処理を概念的に示す説明図である。図11では、分割点Dを黒丸で示している。また、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図11の例では、中央の分割点Daが分割点Da’の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da’,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
【0056】
本実施形態では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図11の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG’を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da’,Ddおよび重心CG’を頂点とする三角形領域の画像に変形される。
【0057】
図12は、三角形領域における画像の変形処理方法の概念を示す説明図である。図12の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s’,t’,u’を頂点とする三角形領域s’t’u’の画像に変形される。画像の変形は、変形後の三角形領域s’t’u’の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
【0058】
例えば、図12において、変形後の三角形領域s’t’u’の画像中の注目画素p’の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p’の位置を、下記の式(1)のようにベクトルs’t’とベクトルs’u’との和で表現するための係数m1およびm2を算出する。
【0059】
【数1】



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



【0062】
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
【0063】
変形後の三角形領域s’t’u’の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s’t’u’の画像への画像変形処理を行うことができる。このようにして、顔変形部240は、変形領域TAを構成する各小領域について、上述したように三角形領域を定義して変形処理を行う。
【0064】
次に、顔変形部240が、変形領域は拡大領域に含まれていると判断し、拡大領域に適用される拡大率を取得した場合について説明する。顔変形部240は、変形領域が拡大領域に含まれていると判断した場合には、変形領域にかかる顔画像の少なくとも一部が変形方向に圧縮されるように、所定の分割点Dについて基準線RLへ近づく向きへの移動量を拡大率に応じて設定する。この場合、変形領域が圧縮領域に含まれていたときと同様に、顔変形部240は、各分割点Dのうち変形領域TAの枠よりも内側に存在する分割点D11,D12,D13,D21,D22,D23,D31,D32,D33,D41,D42,D43についての移動量を決定する。これら所定の分割点Dについて、基準線RLに近づく向きへの移動量を拡大率に基づいて設定し、設定した移動量に従って分割点Dを移動させれば、顔画像の一部は少なくとも変形方向にも圧縮される。
【0065】
また顔変形部240は、変形領域が拡大領域に含まれていると判断した場合、V方向における移動量として、水平分割線Lh1上の分割点D11,D21,D31,D41についてはマイナス側(下側)への移動量を設定し、水平分割線Lh3上の分割点D13,D23,D33,D43についてはプラス側(上側)への移動量を設定してもよい。このように水平分割線Lh1上の所定の分割点Dおよび水平分割線Lh3上の所定の分割点Dについて移動量を設定し、設定した移動量に従って分割点Dを移動させれば、顔画像の一部は少なくとも変形方向と直交する方向にも拡大される。
【0066】
なお、顔変形部240は、変形領域が圧縮領域に含まれている場合と同様に、変形領域が拡大領域に含まれている場合の各分割点Dの移動量設定においても、拡大率が示す数値のうちの所定割合(例えば7割)の数値をH方向における変形量(圧縮量)に割り当てるとともに、拡大率が示す数値からこのH方向における変形量(圧縮量)を差し引いた残り(例えば3割)の数値を、V方向における変形量(拡大量)に割り当てる。さらに、顔変形部240は、変形領域が拡大領域に含まれている場合に上記のようにH方向とV方向とに割り当てた変形量を、変形領域が圧縮領域に含まれている場合と同様に、分割点D11,D12,D13,D21,D22,D23,D31,D32,D33,D41,D42,D43に対して所定の割合で分配して設定する。
【0067】
図17は、顔変形部240が、上記のように拡大率が示す数値をH方向とV方向との変形量に配分し、さらにH方向およびV方向の変形量を各分割点Dに配分して決定した移動量の一例を表によって示している。ただし図17では、上記のように拡大率に応じて決定した各分割点Dの移動量を、さらに分割点Dの位置に応じて変更した後の移動量を示している。また図17では図9と同様に、各分割点Dの移動量を画素ピッチに換算した値によって示している。図17の例では、水平分割線Lh1上の分割点D11,D21,D31,D41および水平分割線Lh3上の分割点D13,D23,D33,D43に対してだけではなく、水平分割線Lh2上の分割点D12,D22,D32,D42に対しても、V方向における移動量を設定した例を示している。
【0068】
図18は、図17に例示した分割点D毎の移動量に従って、顔変形部240がS640において各分割点Dを移動して変形領域TA内の画像を変形する際の具体的態様を示している。図18でも図10と同様に、比較の便宜のため、変形前の人物P2の顔の輪郭を鎖線で示し、変形後の人物P2の顔の輪郭を実線で示している。また図18でも、移動後の分割点Dの符号に「’」を付し、移動前の分割点D(白丸)の符号には括弧を付している。
【0069】
図18に示すように、S640における分割点Dの移動の結果、V方向に関し、水平分割線Lh1上に配置された分割点D11,D21,D31,D41の位置は下方に移動される一方、水平分割線Lh2,Lh3上に配置された分割点D12,D22,D32,D42,D13,D23,D33,D43の位置は上方に移動される。従って、水平分割線Lh1と水平分割線Lh3との間に位置する画像はV方向に関して拡大され、その中でも特に水平分割線Lh1と水平分割線Lh2との間に位置する画像はV方向に関して強く拡大される。
【0070】
また図18では、H方向に関しては、垂直分割線Lv1,Lv2上に配置された分割点D11,D12,D13,D21,D22,D23の位置は右方向に移動され、垂直分割線Lv3,Lv4上に配置された分割点D31,D32,D33,D41,D42,D43の位置は左方向に移動される。従って、垂直分割線Lv1より左側に位置する画像は、H方向に関して右側に拡大され、垂直分割線Lv4より右側に位置する画像は、左側に拡大される。また、垂直分割線Lv1と垂直分割線Lv2との間に位置する画像は、H方向に関して右側に移動しつつ圧縮され、垂直分割線Lv3と垂直分割線Lv4との間に位置する画像は、H方向に関して左側に移動しつつ圧縮される。さらに、垂直分割線Lv2と垂直分割線Lv3との間に位置する画像は、基準線RLを中心にH方向に関して圧縮される。
【0071】
上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh3は頭頂部の画像より上に配置され、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、このように変形領域が拡大領域に含まれている場合の顔変形処理では、顔画像の内、顎から頭頂部にかけての部分の画像がV方向に拡大されるとともに、左右の頬と頬の間の顔画像が全体的にH方向において圧縮される。つまり変形領域が拡大領域に含まれている場合の顔変形処理では、変形領域TAに含まれる人物P2の顔の形状は、上下方向においてある程度伸長され、幅方向において細い形状に変形される。なお顔変形部240は、S630において、拡大率が示す数値を最終的に各分割点Dに配分して決定した各移動量に対してもさらに所定の補正係数を乗算し、この乗算によって得た各値を各分割点Dの移動量としてもよい。この場合の補正係数とは、例えば0以上1未満の数値であって、顔変形処理による顔の幅方向(H方向)における圧縮の度合いおよび顔の高さ方向(V方向)における拡大の度合いを抑制するための数値である。
【0072】
S800では、一方向変形部230が対象画像について一方向変形処理を実行する。上述したように、一方向変形部230は、一方向変形処理を行なうに際して変形方向に直交する分割線によって対象画像を圧縮領域と拡大領域とに分けている。
【0073】
図13Aは、対象画像TIを圧縮領域ACと拡大領域AEとに分けた様子を例示している。図13Aでは、対象画像TIの中心を含む領域に圧縮領域ACが設定され、圧縮領域ACの左右両側に同一面積の拡大領域AE,AEが設定された例を示しており、圧縮領域ACには人物P1が、向かって左側の拡大領域AEには人物P2が含まれている。
【0074】
図13Bは、対象画像TIに対して一方向変形処理を施した後の画像(変形済画像TI’と呼ぶ。)を例示している。つまり、一方向変形部230は、一方向変形処理を実行することにより、図13Bに示すように、圧縮領域ACを変形方向の長さが短縮された圧縮領域AC’に変形し、拡大領域AEを変形方向の長さが延長された拡大領域AE’に変形する。
【0075】
図14は、S800において実行される一方向変形処理をフローチャートにより示している。
図15は、変形方向が横方向である場合の、一方向変形処理を模式的に示した説明図である。図15Aは、一方向変形処理が施される前の対象画像における画素の配置を示している。図15Bは、対応画素数テーブル410の一例を示している。図15Cは、一方向変形処理が施された画像(変形済画像)の画素の配置を示している。
【0076】
S810では、一方向変形部230は、S400において変形方向設定部220が設定した変形方向が横方向と縦方向とのいずれであるかを判断する。変形方向が横方向である場合、処理はS820に進む。一方、変形方向が縦方向である場合、処理はS850に進む。上述したように、本実施形態では横方向が変形方向であるため、S820に進む。
【0077】
S820では、一方向変形部230は、対応画素数テーブル410を生成する。対応画素数テーブル410とは、対象画像の変形方向における各画素に対応する変形済画像の画素数を表すテーブルである。一方向変形部230は、圧縮領域および拡大領域それぞれについて既に設定されている倍率(圧縮率および拡大率)に基づいて、変形済画像の画素数(対応画素数)を決定する。そして、決定された対応画素数を対応画素数テーブル410に格納することにより、対応画素数テーブル410が生成される。
【0078】
一方向変形部230は、対応画素数テーブル410の生成にあたっては、圧縮率や拡大率を倍率に変換する。例えば、上述したように圧縮率として「30%」という数値が設定されている場合には、この圧縮率を0.7倍という数値(倍率)に変換する。また、例えば、拡大率として30%という数値が設定されている場合には、この拡大率を1.3倍という数値(倍率)に変換する。一方向変形部230は、例えば、このような倍率の小数部についてハーフトーン処理による二値化を行って0と1との配列パターンを決定し、配列パターンの0または1の値に倍率の整数部を加えることによって、対象画像の画素毎の対応画素数を決定することができる。一方向変形部230は、対応画素数テーブル410の生成に当っては、ハーフトーン処理としては、ディザや誤差拡散などの周知の方法を用いることができる。また、倍率の小数部ごとに予め格納された配列パターンを用いてもよい。なおS820において、対応画素数テーブル410を生成するのに代えて、予め作成された対応画素数テーブルを用いてもよい。
【0079】
図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に設定されている。
【0080】
S830では、一方向変形部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倍に圧縮される。
【0081】
S840では、一方向変形処理実行部230は、対象画像の全てのラインについて、画素の再配置が完了したか否かを判断する。全てのラインについて画素の再配置が完了している場合、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、画素の再配置が完了していない場合、処理はS830に戻され、全てのラインについて画素の再配置が完了するまで、S830,S840が繰り返し実行される。
【0082】
一方向変形部230は、S850では、S820と同様に圧縮領域、拡大領域の各倍率を用いて対応画素数テーブル410を生成する。変形方向が縦方向の場合、対象画像の縦方向に並ぶ各画素についての対応画素数を規定した対応画素数テーブル410が生成される。対応画素数の決定方法はS820と同様であるので説明を省略する。
【0083】
S860において、一方向変形部230は、対応画素数テーブルを参照して、上記バッファ領域に設けられた変形済画像の格納領域に、対象画像のラインを配置する。変形方向が横方向である場合には、画素単位でその画素に対応する対応画素数(0や1や2等)に応じた再配置を行なうが、変形方向が縦方向である場合には、ライン単位で、そのラインに対応する対応画素数に応じた配置を行なう。具体的には、上記バッファ領域の変形済画像の格納領域に、バッファ領域に格納された対象画像の1ラインを、当該1ラインに対応する対応画素数分のラインとして追加する。
【0084】
S870では、一方向変形部230は、対象画像の全てのラインを対象としてS860の処理を完了したか否かを判断し、完了している場合は、一方向変形処理を終了し、その結果、図2のフローチャートが終了する。一方、完了していない場合は、処理はS860に戻され、対象画像の全てのラインを対象としてS860が行なわれるまで、S860,S870が繰り返し実行される。
【0085】
3.まとめ
このように、S800の一方向変形処理により、対象画像において設定された圧縮領域は変形方向に圧縮され、拡大領域は変形方向に拡大される。そのため、図13Bに示したように、変形済画像TI’中の人物P1は、変形前の対象画像TI中の人物P1よりも全体的に細くなり(スリム化)、変形済画像TI’中の人物P2は、変形前の対象画像TI中の人物P2よりも全体的に太くなる。上述したように、S600の顔変形処理によって、圧縮領域に含まれていた顔の形状は上下方向に押しつぶされ幅方向に太った形状となっており、拡大領域に含まれていた顔の形状は、上下方向に伸長され幅方向にやせ細った形状となっている。そのため、顔変形処理および一方向変形処理が施された対象画像においては、圧縮領域に含まれていた人物画像は全体的にスリムな体型に変形し、かつ圧縮領域と拡大領域のいずれに含まれていた人物画像の顔も、縦横のバランスが違和感の無いものとなる。人間の体の中でも顔はユーザーにとって特に注意を引く部分であり、画像補正処理によって顔の縦横比が著しく変形していると、ユーザーは大きな違和感を覚えてしまう。本実施形態によれば、顔の縦横比については、処理前と比較して著しく変化することが抑制されるため、ユーザーは、見た目に違和感の無い画像を得ることができる。
【0086】
上記では、顔変形処理(S600)の後に一方向変形処理(S800)を実行する場合を例に説明を行なったが、これら2つの処理を行なう場合の処理の順序は問わず、一方向変形処理の後に顔変形処理を行なう(例えば、図2のフローチャートにおいて、S400とS500の間にS800を行なう)構成としてもよい。
【0087】
また、本実施形態では、対象画像中の顔の縦横比が変化し過ぎることを防止しつつも、全体的にバランスの良い画像を得るための種々の工夫をしている。上述したように、顔変形処理では、変形領域の画像のH方向における変形量として、一方向変形処理における圧縮率あるいは拡大率が示す数値をそのまま適用するのではなく、圧縮率あるいは拡大率が示す数値のうち所定割合分の数値を適用する。つまり、圧縮領域での圧縮をほぼ全て打ち消す程の拡大や、拡大領域での拡大をほぼ全て打ち消す程の圧縮を、顔変形処理で行なうと、顔と顔以外の体とのバランスが非常に悪い人物画像が得られてしまう恐れがある。そのため、あくまで顔変形処理における顔の幅方向の変形は、一方向変形処理による変形の効果がある程度勝るような度合いで行なうようにしている。
【0088】
上記の顔変形処理では、変形領域の全体が圧縮領域に含まれている場合(人物P1)、および変形領域の全体が拡大領域に含まれている場合(人物P2)の2つのケースについて説明を行なった。しかし、対象画像内での人物画像の位置や、圧縮領域および拡大領域の設定態様によっては、一つの変形領域が圧縮画像と拡大画像との境界を跨ぐ位置に設定されることもある。
【0089】
図19Aは、ある人物の顔画像についての変形領域TAが、対象画像内の圧縮画像と拡大画像との境界(鎖線)を跨ぐ位置に設定された場合を例示している。このような場合、S630で顔変形部240は、変形領域TA内に上述したように配置した各分割点Dのうち圧縮領域に属する分割点Dに対しては、圧縮領域の圧縮率に基づいて(変形領域TA全体が圧縮領域に含まれていると想定して)上述のように算出した移動量を設定する。一方、変形領域TAの各分割点Dのうち拡大領域に属する分割点Dに対しては、拡大領域の拡大率に基づいて(変形領域TA全体が拡大領域に含まれていると想定して)上述のように算出した移動量を設定する。
【0090】
このように各分割点Dの移動量を設定した後、S640において顔変形部240は、図19Bに示すように、変形領域TAを圧縮領域に属する変形領域TA1と拡大領域に属する変形領域TA2に分け、変形領域TA1内の画像については変形領域TA1内の分割点Dに設定した移動量に応じた変形を行ない、変形領域TA2内の画像については変形領域TA2内の分割点Dに設定した移動量に応じた変形を行なう。このような顔変形処理の結果、変形領域TA内の顔のうち、圧縮領域に属していた部分については変形方向において拡大され、拡大領域に属していた部分については変形方向において圧縮される。
【符号の説明】
【0091】
100…プリンター、110…CPU、120…内部メモリー、140…操作部、150…表示部、160…プリンターエンジン、170…カードI/F、172…カードスロット、200…画像補正処理部、210…顔領域検出部、220…変形方向設定部、230…一方向変形部、240…顔変形部、310…表示処理部、320…印刷処理部、410…対応画素数テーブル、420…分割点配置パターンテーブル

【特許請求の範囲】
【請求項1】
顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定部と、
所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形部と、
上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形部とを備えることを特徴とする画像処理装置。
【請求項2】
上記画像変形部は、所定の圧縮率によって上記圧縮領域を上記特定方向に圧縮し、
上記顔変形部は、上記顔画像の少なくとも一部が上記圧縮領域に含まれている場合に、当該圧縮領域に含まれている顔画像が上記特定方向に拡大されるように、上記圧縮率に応じて決定した拡大量によって上記顔画像を変形することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記顔変形部は、上記顔画像の上下方向と上記特定方向とがなす角度が所定の基準角度より大きい場合に、上記顔画像の変形を実行することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
上記顔変形部は、上記対象画像内に複数の顔画像が存在する場合に、少なくとも一部が互いに重なっている各顔画像を除いた顔画像に対して変形を実行することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項5】
上記顔変形部は、上記拡大率が示す数値のうちの所定割合の数値に基づいて上記圧縮量を決定することを特徴とする請求項1〜請求項4のいずれかに記載の画像処理装置。
【請求項6】
顔画像が含まれる対象画像において、対象画像内に圧縮領域と拡大領域とを設定する領域設定工程と、
所定の拡大率によって、上記拡大領域を特定方向に拡大する画像変形工程と、
上記顔画像の少なくとも一部が上記拡大領域に含まれている場合に、当該拡大領域に含まれている顔画像が上記特定方向に圧縮されるように、上記拡大率に応じて決定した圧縮量によって上記顔画像を変形する顔変形工程とを備えることを特徴とする画像処理方法。
【請求項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

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2010−170219(P2010−170219A)
【公開日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2009−10328(P2009−10328)
【出願日】平成21年1月20日(2009.1.20)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】