次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
A−1.画像処理装置の構成:
A−2.顔形状補正印刷処理:
A−3.第1実施例の変形例:
B.その他の変形例:
A.第1実施例:
A−1.画像処理装置の構成:
図1は、本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。本実施例のプリンタ100は、メモリカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、プリンタ100の各部を制御するCPU110と、例えばROMやRAMによって構成された内部メモリ120と、ボタンやタッチパネルにより構成された操作部140と、液晶ディスプレイにより構成された表示部150と、プリンタエンジン160と、カードインターフェース(カードI/F)170と、を備えている。プリンタ100は、さらに、他の機器(例えばデジタルスチルカメラ)とのデータ通信を行うためのインターフェースを備えているとしてもよい。プリンタ100の各構成要素は、バスを介して互いに接続されている。
プリンタエンジン160は、印刷データに基づき印刷を行う印刷機構である。カードインターフェース170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインターフェースである。なお、本実施例では、メモリカードMCにRGBデータとしての画像データが格納されており、プリンタ100は、カードインターフェース170を介してメモリカードMCに格納された画像データの取得を行う。
内部メモリ120には、顔形状補正部200と、表示処理部310と、印刷処理部320とが格納されている。顔形状補正部200は、所定のオペレーティングシステムの下で、後述する顔形状補正処理を実行するためのコンピュータプログラムである。表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージを表示させるディスプレイドライバである。印刷処理部320は、画像データから印刷データを生成し、プリンタエンジン160を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU110は、内部メモリ120から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
顔形状補正部200は、プログラムモジュールとして、変形態様設定部210と、顔領域検出部220と、顔領域調整部230と、変形領域設定部240と、変形領域分割部250と、変形処理部260と、を含んでいる。変形態様設定部210は、指定取得部212を含んでおり、顔領域調整部230は、特定領域設定部232と、評価部234と、決定部236と、を含んでいる。これらの各部の機能については、後述の顔形状補正印刷処理の説明において詳述する。
内部メモリ120には、また、分割点配置パターンテーブル410と分割点移動テーブル420とが格納されている。分割点配置パターンテーブル410および分割点移動テーブル420の内容についても、後述の顔形状補正印刷処理の説明において詳述する。
A−2.顔形状補正印刷処理:
プリンタ100は、メモリカードMCに格納された画像データに基づき、画像の印刷を行う。カードスロット172にメモリカードMCが挿入されると、表示処理部310により、メモリカードMCに格納された画像の一覧表示を含むユーザインターフェースが表示部150に表示される。図2は、画像の一覧表示を含むユーザインターフェースの一例を示す説明図である。なお、本実施例では、画像の一覧表示は、メモリカードMCに格納された画像データ(画像ファイル)に含まれるサムネイル画像を用いて実現される。
本実施例のプリンタ100は、図2に示すユーザインターフェースにおいて、ユーザにより、1つ(または複数)の画像が選択されると共に通常印刷ボタンが選択されると、選択された画像を通常通り印刷する通常印刷処理を実行する。他方、当該ユーザインターフェースにおいて、ユーザにより、1つ(または複数)の画像が選択されると共に顔形状補正印刷ボタンが選択されると、プリンタ100は、選択された画像について、画像中の顔の形状を補正して補正後の画像を印刷する顔形状補正印刷処理を実行する。
図3は、本実施例のプリンタ100による顔形状補正印刷処理の流れを示すフローチャートである。ステップS100では、顔形状補正部200(図1)が、顔形状補正処理を実行する。本実施例の顔形状補正処理は、画像中の顔の少なくとも一部の形状(例えば顔の輪郭形状や目の形状)を補正する処理である。
図4は、本実施例における顔形状補正処理の流れを示すフローチャートである。ステップS110では、顔形状補正部200(図1)が、顔形状補正処理の対象となる対象画像TIを設定する。顔形状補正部200は、図2に示したユーザインターフェースにおいてユーザにより選択された画像を対象画像TIとして設定する。設定された対象画像TIの画像データは、メモリカードMCからカードインターフェース170を介してプリンタ100に取得され、内部メモリ120の所定領域に格納される。
ステップS120(図4)では、変形態様設定部210(図1)が、顔形状補正のための画像変形のタイプと画像変形の度合いとを設定する。変形態様設定部210は、画像変形のタイプおよび度合いを設定するためのユーザインターフェースを表示部150に表示するように表示処理部310に指示し、当該ユーザインターフェースを通じてユーザにより指定された画像変形のタイプおよび度合いを選択し、処理に使用する画像変形タイプおよび度合いとして設定する。
図5は、画像変形のタイプおよび度合いを設定するためのユーザインターフェースの一例を示す説明図である。図5に示すように、このユーザインターフェースには、画像変形タイプを設定するためのインターフェースが含まれている。本実施例では、例えば、顔の形状をシャープにする変形タイプ「タイプA」や、目の形状を大きくする変形タイプ「タイプB」等が選択肢として予め設定されているものとする。ユーザは、このインターフェースを介して画像変形のタイプを指定する。変形態様設定部210は、ユーザにより指定された画像変形タイプを、実際の処理に使用する画像変形タイプとして設定する。
また、図5に示すユーザインターフェースには、画像変形の度合い(程度)を設定するためのインターフェースが含まれている。図5に示すように、本実施例では、画像変形の度合いとして、強(S)、中(M)、弱(W)の3段階が選択肢として予め設定されているものとする。ユーザは、このインターフェースを介して画像変形の度合いを指定する。変形態様設定部210は、ユーザにより指定された画像変形の度合いを、実際の処理に使用する画像変形の度合いとして設定する。
なお、本実施例では、後述するように、ユーザによる変形態様の詳細指定が可能となっている。図5に示すユーザインターフェースにおいて、ユーザにより、詳細指定を希望する旨のチェックボックスにチェックが入れられた場合には、後述するように、ユーザによる変形態様の詳細指定がなされる。
以降では、画像変形のタイプとして顔の形状をシャープにするための変形タイプ「タイプA」が設定され、画像変形の度合いとして程度「中」の度合いが設定され、ユーザによる詳細指定の希望はなかったものとして説明を行う。
ステップS130(図4)では、顔領域検出部220(図1)が、対象画像TIにおける顔領域FAの検出を行う。ここで、顔領域FAとは、対象画像TI上の画像領域であって、少なくとも顔の一部の画像が含まれる領域を意味している。顔領域検出部220による顔領域FAの検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2004−318204参照)といった公知の顔検出方法を用いて実行される。
図6は、顔領域FAの検出結果の一例を示す説明図である。図6に示すように、本実施例で用いた顔検出方法によると、対象画像TI上の目と鼻と口の画像を含む矩形の領域が顔領域FAとして検出される。なお、図6に示した基準線RLは、顔領域FAの高さ方向(上下方向)を定義すると共に、顔領域FAの幅方向(左右方向)の中心を示す線である。すなわち、基準線RLは、矩形の顔領域FAの重心を通り、顔領域FAの高さ方向(上下方向)に沿った境界線に平行な直線である。
なお、ステップS130の顔領域FAの検出において、顔領域FAが検出されなかった場合には、その旨が表示部150を通じてユーザに通知される。この場合には、顔形状補正を伴わない通常印刷が行われるとしてもよいし、他の顔検出方法を用いた顔領域FAの再度の検出処理が行われるとしてもよい。
ここで、一般に、テンプレートを利用したパターンマッチングによる方法等の公知の顔検出方法は、顔全体や顔の部位(目や口等)について位置や傾き(角度)を詳細に検出するものではなく、対象画像TI中から顔の画像が概ね含まれると考えられる領域を顔領域FAとして設定するものである。他方、本実施例のプリンタ100は、後述するように、検出された顔領域FAに基づいて顔形状補正のための画像変形処理を施す領域(後述の変形領域TA)を設定する。顔の画像は、一般に、観察者の注目度が高いため、設定された変形領域TAと顔の画像との位置や角度の関係によっては、顔形状補正後の画像が不自然なものとなる可能性がある。そこで、本実施例では、より自然で好ましい顔形状補正が実現されるように、ステップS130で検出された顔領域FAについて、以下に説明する位置調整および傾き調整を行うものとしている。
ステップS140(図4)では、顔領域調整部230(図1)が、ステップS130で検出された顔領域FAの高さ方向の位置調整を行う。ここで、顔領域FAの高さ方向の位置調整とは、顔領域FAの基準線RL(図6参照)に沿った位置を調整して、対象画像TIにおける顔領域FAを再設定することを意味している。
図7は、本実施例における顔領域FAの高さ方向の位置調整処理の流れを示すフローチャートである。ステップS141では、特定領域設定部232(図1)が、特定領域SAを設定する。ここで、特定領域SAとは、対象画像TI上の領域であって、顔領域FAの高さ方向の位置調整を実行する際に参照する所定の参照被写体の画像を含む領域である。本実施例では、参照被写体は「目」と設定され、特定領域SAは「目」の画像を含む領域として設定される。
図8は、特定領域SAの一例を示す説明図である。本実施例では、特定領域設定部232が、特定領域SAを顔領域FAとの関係に基づいて設定する。具体的には、顔領域FAの大きさを、基準線RLに直行する方向および基準線RLに平行な方向に、所定比率で縮小(または拡大)した大きさの領域であって、顔領域FAの位置と所定の位置関係を有する領域が、特定領域SAとして設定される。すなわち、本実施例では、顔領域検出部220により検出された顔領域FAとの関係に基づき特定領域SAを設定すれば、特定領域SAが両方の目の画像を含む領域となるように、上記所定比率や所定の位置関係が予め設定されている。なお、特定領域SAは、目の画像とまぎらわしい画像(例えば髪の毛の画像)がなるべく含まれないように、両目の画像を含む限りにおいて、なるべく小さい領域として設定されることが好ましい。
また、図8に示すように、特定領域SAは、基準線RLに対して対称な矩形形状の領域として設定される。特定領域SAは、基準線RLにより、向かって左側の領域(以下「左分割特定領域SA(l)」とも呼ぶ)と、向かって右側の領域(以下「右分割特定領域SA(r)」とも呼ぶ)とに分割される。特定領域SAは、左分割特定領域SA(l)と右分割特定領域SA(r)とのそれぞれに片目の画像が含まれるように設定される。
ステップS142(図7)では、評価部234(図1)が、特定領域SAにおける目の画像の位置を検出するための評価値を算出する。図9は、評価値の算出方法の一例を示す説明図である。本実施例では、RGB画像データとしての対象画像TIの各画素のR値(R成分値)が評価値の算出に用いられる。これは、肌の部分の画像と目の部分の画像とではR値の差が大きいため、R値を評価値の算出に用いることにより、目の画像の検出精度を向上させることができると考えられるからである。また、本実施例では、対象画像TIのデータがRGBデータとして取得されているため、R値を評価値の算出に用いることにより、評価値の算出の効率化を図ることができるからでもある。なお、図9に示すように、評価値の算出は、2つの分割特定領域(右分割特定領域SA(r)および左分割特定領域SA(l))のそれぞれについて個別に行われる。
評価部234は、図9に示すように、分割特定領域(右分割特定領域SA(r)および左分割特定領域SA(l))内に、基準線RLと直行するn本の直線(以下「対象画素特定線PL1〜PLn」と呼ぶ)を設定する。対象画素特定線PL1〜PLnは、分割特定領域の高さ(基準線RLに沿った大きさ)を(n+1)等分する直線である。すなわち、対象画素特定線PL同士の間隔は、すべて等間隔sである。
評価部234は、対象画素特定線PL1〜PLnのそれぞれについて、対象画像TIを構成する画素の中から評価値の算出に用いる画素(以下「評価対象画素TP」と呼ぶ)を選択する。図10は、評価対象画素TPの選択方法の一例を示す説明図である。評価部234は、対象画像TIを構成する画素の内、対象画素特定線PLと重なる画素を評価対象画素TPとして選択する。図10(a)は、対象画素特定線PLが対象画像TIの画素の行方向(図10のX方向)と平行である場合を示している。この場合には、各対象画素特定線PLと重なる画素行上の画素(図10(a)において○印を付した画素)が、各対象画素特定線PLについての評価対象画素TPとして選択される。
一方、顔領域FAの検出方法や特定領域SAの設定方法によっては、図10(b)に示すように、対象画素特定線PLが対象画像TIの画素の行方向(X方向)と平行とはならない場合も生ずる。このような場合にも、原則として、各対象画素特定線PLと重なる画素が、各対象画素特定線PLについての評価対象画素TPとして選択される。ただし、例えば図10(b)における対象画素特定線PL1と画素PXaおよびPXbとの関係のように、ある対象画素特定線PLが、対象画像TIの画素マトリクスの同一列に位置する(すなわちY座標が同一の)2つの画素と重なる場合には、重なり部分の距離のより短い方の画素(例えば画素PXb)は評価対象画素TPから除外される。すなわち、各対象画素特定線PLについて、画素マトリクスの1つの列からは1つの画素のみが評価対象画素TPとして選択される。
なお、対象画素特定線PLの傾きが、X方向に対して45度を超える場合には、上記説明において画素マトリクスの列と行との関係が逆転し、画素マトリクスの1つの行から1つの画素のみが評価対象画素TPとして選択されることとなる。また、対象画像TIと特定領域SAとの大きさの関係によっては、1つの画素が複数の対象画素特定線PLについての評価対象画素TPとして選択される場合もある。
評価部234は、対象画素特定線PLのそれぞれについて、評価対象画素TPのR値の平均値を評価値として算出する。ただし、本実施例では、各対象画素特定線PLについて、選択された複数の評価対象画素TPの内、R値の大きい一部の画素を評価値の算出対象から除外するものとしている。具体的には、例えば、ある対象画素特定線PLについてk個の評価対象画素TPが選択された場合、評価対象画素TPが、R値の比較的大きい0.75k個の画素により構成される第1グループと、比較的R値の小さい0.25k個の画素により構成される第2グループとの2グループに分けられ、第2グループに属する画素のみが評価値としてのR値の平均値の算出対象となる。このように一部の評価対象画素TPを評価値の算出対象から除外する理由については後述する。
以上のように、本実施例では、評価部234により各対象画素特定線PLについての評価値が算出される。ここで、対象画素特定線PLは基準線RLに直行する直線であるため、評価値は、基準線RLに沿った複数の位置(評価位置)について算出されると表現することができる。また、評価値は、各評価位置について、基準線RLに直行する方向に沿った画素値の分布の特徴を表す値と表現することができる。
ステップS143(図7)では、決定部236(図1)が、特定領域SAにおける目の位置を検出し、検出結果に基づき高さ基準点Rhを決定する。まず、決定部236は、図9の右側に示すように、各分割特定領域について、基準線RLに沿った評価値(R値の平均値)の分布を表す曲線を作成し、評価値が極小値をとる基準線RL方向に沿った位置を目の位置Ehとして検出する。なお、左分割特定領域SA(l)における目の位置EhをEh(l)と表し、右分割特定領域SA(r)における目の位置EhをEh(r)と表わす。
黄色人種の場合、分割特定領域中の肌の画像を表す部分はR値が大きい一方、目(より詳細には目の中央の黒目部分)の画像を表す部分はR値が小さいと考えられる。そのため、上述のように、評価値(R値の平均値)が極小値をとる基準線RLに沿った位置を目の位置Ehと判断することが可能となる。
なお、図9に示すように、分割特定領域には、目の画像以外にもR値の小さい他の画像(例えば、眉や髪の毛の画像)が含まれている場合もある。そのため、決定部236は、基準線RLに沿った評価値の分布を表す曲線が複数の極小値をとる場合には、極小値をとる位置の内、最も下側の位置を目の位置Ehと判断する。一般に、目の画像より上側には眉や髪の毛等のR値の小さい画像が位置することが多い一方、目の画像より下側にはR値の小さい画像が位置することが少ないと考えられることから、このような判断が可能となる。
また、上記曲線が、目の画像の位置よりも下側(主に肌の画像に対応した位置)であっても、評価値が大きいながらも極小値をとる可能性があるため、極小値の内、所定の閾値より大きいものは無視するものとしてもよい。あるいは、単純に、各対象画素特定線PLについて算出された評価値の内の最小値に対応した対象画素特定線PLの位置を目の位置Ehとしてもよい。
なお、本実施例では、顔において周囲との色の差が比較的大きいと考えられる部位である目(目の中央の黒目部分)を顔領域FAの位置調整の参照被写体として用いている。しかし、評価値としてのR値の平均値は、対象画素特定線PL上の複数の評価対象画素TPを対象として算出されるため、例えば、黒目の周縁の白目部分の画像の影響により、黒目部分の検出の精度が低下する怖れがある。本実施例では、上述したように、参照被写体とは色の差が大きいと考えられる一部の評価対象画素TP(例えば上述した第1のグループに属する比較的R値の大きい画素)を評価値の算出対象から除外することにより、参照被写体の検出精度をより向上させている。
次に、決定部236は、検出された目の位置Ehに基づき高さ基準点Rhを決定する。図11は、高さ基準点Rhの決定方法の一例を示す説明図である。高さ基準点Rhは、顔領域FAの高さ方向の位置調整の際に、基準として用いられる点である。本実施例では、図11に示すように、左右2つの目の位置Eh(l)およびEh(r)の中間に位置する基準線RL上の点が高さ基準点Rhとして設定される。すなわち、左の目の位置Eh(l)を示す直線EhL(l)と基準線RLとの交点と、右の目の位置Eh(r)を示す直線EhL(r)と基準線RLとの交点と、の中点が、高さ基準点Rhとして設定される。
なお、本実施例では、決定部236が、検出された目の位置Ehに基づき、顔画像の概略の傾き角(以下「概略傾き角RI」と呼ぶ)を算出するものとしている。顔画像の概略傾き角RIは、対象画像TI中の顔の画像が、顔領域FAの基準線RLに対して概ねどれぐらい傾いているかを推定した角度である。図12は、概略傾き角RIの算出方法の一例を示す説明図である。図12に示すように、決定部236は、まず、左分割特定領域SA(l)の幅Ws(l)を半分に分割する直線と直線EhL(l)との交点IP(l)と、右分割特定領域SA(r)の幅Ws(r)を半分に分割する直線と直線EhL(r)との交点IP(r)とを決定する。そして、交点IP(l)と交点IP(r)とを結ぶ直線に直交する直線ILと、基準線RLとのなす角が、概略傾き角RIとして算出される。
ステップS144(図7)では、顔領域調整部230(図1)が、顔領域FAの高さ方向の位置調整を行う。図13は、顔領域FAの高さ方向の位置調整方法の一例を示す説明図である。顔領域FAの高さ方向の位置調整は、高さ基準点Rhが、位置調整後の顔領域FAにおける所定の位置に位置することとなるように、顔領域FAを再設定することにより行う。具体的には、図13に示すように、高さ基準点Rhが、顔領域FAの高さHfを所定の比率r1対r2で分けるような位置に位置することとなるように、顔領域FAが基準線RLに沿って上下に位置調整される。図13の例では、破線で示した調整前の顔領域FAを上方向に移動することにより、実線で示した調整後の顔領域FAが再設定されている。
顔領域FAの位置調整の後、ステップS150(図4)では、顔領域調整部230(図1)が、顔領域FAの傾き調整(角度調整)を行う。ここで、顔領域FAの傾き調整とは、対象画像TIにおける顔領域FAの傾きを顔の画像の傾きに適合するように調整して、顔領域FAを再設定することを意味している。本実施例では、顔領域FAの傾き調整を実行する際に参照する所定の参照被写体は、「両目」と設定されている。本実施例における顔領域FAの傾き調整では、傾き調整の調整角度の選択肢を表す複数の評価方向が設定され、各評価方向に対応した評価特定領域ESAが両目の画像を含む領域として設定される。そして、各評価方向について評価特定領域ESAの画像の画素値に基づき評価値が算出され、評価値に基づき決定される傾き調整の調整角度を用いて顔領域FAの傾きが調整される。
図14は、本実施例における顔領域FAの傾き調整処理の流れを示すフローチャートである。また、図15は、顔領域FAの傾き調整のための評価値の算出方法の一例を示す説明図である。ステップS151(図14)では、特定領域設定部232(図1)が、初期評価特定領域ESA(0)を設定する。初期評価特定領域ESA(0)は、顔領域FAの位置調整後の基準線RL(図13参照)と平行な方向(以下「初期評価方向」とも呼ぶ)に対応付けられた評価特定領域ESAである。本実施例では、位置調整後の顔領域FAに対応した特定領域SA(図13参照)が、そのまま初期評価特定領域ESA(0)として設定される。なお、顔領域FAの傾き調整における評価特定領域ESAは、顔領域FAの位置調整時の特定領域SAとは異なり、左右2つの領域に分割されることはない。図15の最上段には、設定された初期評価特定領域ESA(0)が示されている。
ステップS152(図14)では、特定領域設定部232(図1)が、複数の評価方向と各評価方向に対応した評価特定領域ESAとを設定する。複数の評価方向は、傾き調整の調整角度の選択肢を表す方向として設定される。本実施例では、基準線RLとのなす角が所定の範囲内である複数の評価方向線ELが設定され、評価方向線ELと平行な方向が評価方向として設定される。図15に示すように、基準線RLを初期評価特定領域ESA(0)の中心点(重心)CPを中心として反時計回りおよび時計回りに所定の角度α刻みで回転させることにより定まる直線が、複数の評価方向線ELとして設定される。なお、基準線RLとのなす角がφ度である評価方向線ELをEL(φ)と表す。
本実施例では、上述した各評価方向線ELと基準線RLとのなす角についての所定の範囲は±20度と設定される。ここで本明細書では、基準線RLを時計回りに回転させたときの回転角は正の値で表され、基準線RLを反時計回りに回転させたときの回転角は負の値で表される。特定領域設定部232は、基準線RLを反時計回りおよび時計回りにα度、2α度・・・と20度を超えない範囲で回転角を増加させつつ回転させ、複数の評価方向線ELを設定する。図15には、基準線RLを−α度,−2α度,α度回転させることによりそれぞれ定まる評価方向線EL(EL(−α),EL(−2α),EL(α))が示されている。なお、基準線RLは、評価方向線EL(0)とも表現できる。
各評価方向を表す評価方向線ELに対応した評価特定領域ESAは、初期評価特定領域ESA(0)を、中心点CPを中心として、評価方向線ELの設定時の回転角と同じ角度で回転させた領域である。評価方向線EL(φ)に対応した評価特定領域ESAは、評価特定領域ESA(φ)と表される。図15には、評価方向線EL(−α),EL(−2α),EL(α)のそれぞれに対応した評価特定領域ESA(ESA(−α),ESA(−2α),ESA(α))が示されている。なお、初期評価特定領域ESA(0)も評価特定領域ESAの1つとして扱われるものとする。
ステップS153(図14)では、評価部234(図1)が、設定された複数の評価方向のそれぞれについて、評価特定領域ESAの画像の画素値に基づき評価値を算出する。本実施例では、顔領域FAの傾き調整における評価値として、上述した顔領域FAの位置調整における評価値と同様に、R値の平均値が用いられる。評価部234は、評価方向に沿った複数の評価位置についての評価値を算出する。
評価値の算出方法は、上述した顔領域FAの位置調整における評価値の算出方法と同様である。すなわち、評価部234は、図15に示すように、各評価特定領域ESA内に、評価方向線ELに直交する対象画素特定線PL1〜PLnを設定し、各対象画素特定線PL1〜PLnについて評価対象画素TPを選択し、選択された評価対象画素TPのR値の平均値を評価値として算出する。
評価特定領域ESAにおける対象画素特定線PLの設定方法や評価対象画素TPの選択方法は、領域を左右に分割するか否かの違いはあるものの、図9および図10に示した顔領域FAの位置調整における方法と同様である。なお、顔領域FAの位置調整時と同様に、選択された評価対象画素TPの内の一部(例えばk個の評価対象画素TPの内のR値の比較的大きい0.75k個の画素)を評価値の算出対象から除外するとしてもよい。図15の右側には、各評価方向について、算出された評価値の評価方向線ELに沿った分布を示している。
なお、対象画素特定線PLは評価方向線ELに直行する直線であるため、評価値は、評価方向線ELに沿った複数の位置(評価位置)について算出されると表現することができる。また、評価値は、各評価位置について、評価方向線ELに直行する方向に沿った画素値の分布の特徴を表す値と表現することができる。
ステップS154(図14)では、決定部236(図1)が、顔領域FAの傾き調整に用いる調整角度を決定する。決定部236は、各評価方向について、ステップS153において算出された評価値の評価方向線ELに沿った分散を算出し、分散の値が最大となる評価方向を選択する。そして、選択された評価方向に対応した評価方向線ELと基準線RLとのなす角を、傾き調整に用いる調整角度として決定する。
図16は、各評価方向についての評価値の分散の算出結果の一例を示す説明図である。図16の例では、回転角が−α度である評価方向において、分散が最大値Vmaxをとる。従って、−α度、すなわち反時計回りにα度の回転角が、顔領域FAの傾き調整に用いる調整角度として決定される。
評価値の分散の値が最大となるときの評価方向に対応した角度が傾き調整に用いる調整角度として決定される理由について説明する。図15の上から2段目に示すように、回転角が−α度であるときの評価特定領域ESA(−α)では、左右の目の中央部(黒目部分)の画像が、概ね対象画素特定線PLに平行な方向(すなわち評価方向線ELに直行する方向)に並ぶような配置となっている。また、このときには、左右の眉の画像も同様に、概ね評価方向線ELに直行する方向に並ぶような配置となる。従って、このときの評価方向線ELに対応した評価方向が、概ね顔の画像の傾きを表す方向であると考えられる。このときには、一般にR値が小さい目や眉の画像と一般にR値が大きい肌の部分の画像との位置関係が、対象画素特定線PLの方向に沿って両者が重なる部分の小さい位置関係となる。そのため、目や眉の画像の位置における評価値は比較的小さくなり、肌の部分の画像の位置における評価値は比較的大きくなる。従って、評価方向線ELに沿った評価値の分布は、図15に示すように、比較的ばらつきの大きい(振幅の大きい)分布となり、分散の値は大きくなる。
一方、図15中の最上段および3段目、4段目に示すように、回転角が0度,−2α度,α度であるときの評価特定領域ESA(0),ESA(−2α),ESA(α)では、左右の目の中央部や左右の眉の画像が、評価方向線ELに直行する方向に並ばず、ずれた配置となっている。従って、このときの評価方向線ELに対応した評価方向は、顔の画像の傾きを表していはいない。このときには、目や眉の画像と肌の部分の画像との位置関係が、対象画素特定線PLの方向に沿って両者が重なる部分の大きい位置関係となる。そのため、評価方向線ELに沿った評価値の分布は、図15に示すように、比較的ばらつきの小さい(振幅の小さい)分布となり、分散の値は小さくなる。
以上のように、評価方向が顔の画像の傾きの方向に近い場合には、評価方向線ELに沿った評価値の分散の値が大きくなり、評価方向が顔の画像の傾きの方向から遠い場合には、評価方向線ELに沿った評価値の分散の値が小さくなる。従って、評価値の分散の値が最大となるときの評価方向に対応した角度を傾き調整に用いる調整角度として決定すれば、顔領域FAの傾きが顔の画像の傾きに適合するような顔領域FAの傾き調整を実現することができる。
なお本実施例では、評価値の分散の算出結果が、角度の範囲の臨界値、すなわち−20度または20度において最大値をとるような結果となった場合には、顔の傾きが正確に評価されていない可能性が高いと考えられるため、顔領域FAの傾き調整を行わないものとしている。
また本実施例では、決定された調整角度が、上述した顔領域FAの位置調整の際に算出された概略傾き角RIと比較される。調整角度と概略傾き角RIとの差が所定の閾値より大きい場合には、顔領域FAの位置調整および傾き調整における評価や決定の際に何らかの誤りが発生したと考えられるため、顔領域FAの位置調整および傾き調整を行わないものとしている。んしゅうtはには
ステップS155(図14)では、顔領域調整部230(図1)が、顔領域FAの傾き調整を行う。図17は、顔領域FAの傾き調整方法の一例を示す説明図である。顔領域FAの傾き調整は、顔領域FAを、初期評価特定領域ESA(0)の中心点CPを中心に、ステップS154において決定された調整角度だけ回転させることにより行う。図17の例では、破線で示した調整前の顔領域FAを反時計回りにα度回転させることにより、実線で示した調整後の顔領域FAが設定される。
顔領域FAの傾き調整終了後のステップS160(図4)では、変形領域設定部240(図1)が、変形領域TAを設定する。変形領域TAは、対象画像TI上の領域であって顔形状補正のための画像変形処理の対象となる領域である。図18は、変形領域TAの設定方法の一例を示す説明図である。図18に示すように、本実施例では、変形領域TAは、顔領域FAを基準線RLと平行な方向(高さ方向)および基準線RLに直行する方向(幅方向)に伸張(または短縮)した領域として設定される。具体的には、顔領域FAの高さ方向の大きさをHf、幅方向の大きさをWfとすると、顔領域FAを、上方向にk1・Hf、下方向にk2・Hfだけ伸ばすと共に、左右にそれぞれk3・Wfだけ伸ばした領域が、変形領域TAとして設定される。なお、k1,k2,k3は、所定の係数である。
このように変形領域TAが設定されると、顔領域FAの高さ方向の輪郭線に平行な直線である基準線RLは、変形領域TAの高さ方向の輪郭線にも平行な直線となる。また、基準線RLは、変形領域TAの幅を半分に分割する直線となる。
図18に示すように、変形領域TAは、高さ方向に関しては、概ね顎から額までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち、本実施例では、変形領域TAが概ねそのような範囲の画像を含む領域となるように、顔領域FAの大きさとの関係に基づき、上述の係数k1,k2,k3が予め設定されている。
ステップS170(図4)では、変形領域分割部250(図1)が、変形領域TAを複数の小領域に分割する。図19は、変形領域TAの小領域への分割方法の一例を示す説明図である。変形領域分割部250は、変形領域TAに複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TAを複数の小領域に分割する。
分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル410(図1)により、ステップS120(図4)において設定される変形タイプと対応付けて定義されている。変形領域分割部250は、分割点配置パターンテーブル410を参照し、ステップS120において設定された変形タイプと対応付けられた態様で分割点Dを配置する。本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定されているため、この変形タイプに対応付けられた態様で分割点Dが配置される。
図19に示すように、分割点Dは、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに配置される。ここで、水平分割線Lhおよび垂直分割線Lvは、変形領域TA内に分割点Dを配置するための基準となる線である。図19に示すように、顔をシャープにするための変形タイプに対応付けられた分割点Dの配置では、基準線RLと直行する2本の水平分割線Lhと、基準線RLに平行な4本の垂直分割線Lvとが設定される。2本の水平分割線Lhを、変形領域TAの下方から順に、Lh1,Lh2と呼ぶ。また、4本の垂直分割線Lvを、変形領域TAの左から順に、Lv1,Lv2,Lv3,Lv4と呼ぶ。
水平分割線Lh1は、変形領域TAにおいて、顎の画像より下方に配置され、水平分割線Lh2は、目の画像のすぐ下付近に配置される。また、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。なお、水平分割線Lhおよび垂直分割線Lvの配置は、水平分割線Lhおよび垂直分割線Lvと画像との位置関係が結果的に上述の位置関係となるように予め設定された変形領域TAの大きさとの対応関係に従い実行される。
上述した水平分割線Lhと垂直分割線Lvとの配置に従い、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに、分割点Dが配置される。図19に示すように、水平分割線Lhi(i=1または2)上に位置する分割点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と呼ばれる。
なお、図19に示すように、本実施例における分割点Dの配置は、基準線RLに対して対称の配置となっている。
変形領域分割部250は、配置された分割点Dを結ぶ直線(すなわち水平分割線Lhおよび垂直分割線Lv)により、変形領域TAを複数の小領域に分割する。本実施例では、図19に示すように、変形領域TAが15個の矩形の小領域に分割される。
なお本実施例では、分割点Dの配置は、水平分割線Lhおよび垂直分割線Lvの本数および位置により定まるため、分割点配置パターンテーブル410は水平分割線Lhおよび垂直分割線Lvの本数および位置を定義していると言い換えることも可能である。
ステップS180(図4)では、変形処理部260(図1)が、対象画像TIの変形領域TAを対象とした画像の変形処理を行う。変形処理部260による変形処理は、ステップS170で変形領域TA内に配置された分割点Dの位置を移動して、小領域を変形することにより行われる。
変形処理のための各分割点Dの位置の移動態様(移動方向および移動距離)は、分割点移動テーブル420(図1)により、ステップS120(図4)において設定される変形タイプと変形の度合いとの組み合わせに対応付けて、予め定められている。変形処理部260は、分割点移動テーブル420を参照し、ステップS120において設定された変形タイプと変形の度合いとの組み合わせに対応付けられた移動方向および移動距離で、分割点Dの位置を移動する。
本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして程度「中」の度合いが設定されているため、これらの変形タイプおよび変形度合いの組み合わせに対応付けられた移動方向および移動距離で、分割点Dの位置が移動されることとなる。
図20は、分割点移動テーブル420の内容の一例を示す説明図である。また図21は、分割点移動テーブル420に従った分割点Dの位置の移動の一例を示す説明図である。図20には、分割点移動テーブル420により定義された分割点Dの位置の移動態様の内、顔をシャープにするための変形タイプと程度「中」の変形度合いとの組み合わせに対応付けられた移動態様を示している。図20に示すように、分割点移動テーブル420には、各分割点Dについて、基準線RLと直行する方向(H方向)および基準線RLと平行な方向(V方向)に沿った移動量が示されている。なお、本実施例では、分割点移動テーブル420に示された移動量の単位は、対象画像TIの画素ピッチPPである。また、H方向については、向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、V方向については、上方への移動量が正の値として表され、下方への移動量が負の値として表される。例えば、分割点D11は、H方向に沿って右側に画素ピッチPPの7倍の距離だけ移動され、V方向に沿って上方に画素ピッチPPの14倍の距離だけ移動される。また、例えば分割点D22は、H方向およびV方向共に移動量がゼロであるため、移動されない。
なお、本実施例では、変形領域TAの内外の画像間の境界が不自然とならないように、変形領域TAの外枠上に位置する分割点D(例えば図21に示す分割点D10等)の位置は移動されないものとしている。従って、図20に示した分割点移動テーブル420には、変形領域TAの外枠上に位置する分割点Dについての移動態様は定義されていない。
図21では、移動前の分割点Dは白抜きの丸で、移動後の分割点Dや位置の移動の無い分割点Dは黒丸で示されている。また、移動後の分割点Dは分割点D’と呼ばれるものとする。例えば分割点D11の位置は、図21において右上方向に移動され、分割点D’11となる。
なお、本実施例では、基準線RLに対して対称な位置関係にある2つの分割点Dの組み合わせ(例えば分割点D11とD41との組み合わせ)のすべてが、分割点Dの移動後も、基準線RLに対して対称な位置関係を維持するように、移動態様が定められている。
変形処理部260は、変形領域TAを構成する各小領域について、分割点Dの位置移動前の状態における小領域の画像が、分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。例えば、図21において、分割点D11,D21,D22,D12を頂点とする小領域(ハッチングを付して示す小領域)の画像は、分割点D’11,D’21,D22,D’12を頂点とする小領域の画像に変形される。
図22は、変形処理部260による画像の変形処理方法の概念を示す説明図である。図22では、分割点Dを黒丸で示している。図22では、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図22の例では、中央の分割点Daが分割点Da’の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da’,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
本実施例では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図22の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG’を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da’,Ddおよび重心CG’を頂点とする三角形領域の画像に変形される。
図23は、三角形領域における画像の変形処理方法の概念を示す説明図である。図23の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s’,t’,u’を頂点とする三角形領域s’t’u’の画像に変形される。画像の変形は、変形後の三角形領域s’t’u’の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
例えば、図23において、変形後の三角形領域s’t’u’の画像中の注目画素p’の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p’の位置を、下記の式(1)のようにベクトルs’t’とベクトルs’u’との和で表現するための係数m1およびm2を算出する。
次に、算出された係数m1およびm2を用いて、下記の式(2)により、変形前の三角形領域stuにおけるベクトルstとベクトルsuとの和を算出することにより、位置pが求まる。
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
変形後の三角形領域s’t’u’の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s’t’u’の画像への画像変形処理を行うことができる。変形処理部260は、図21に示した変形領域TAを構成する各小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域TAにおける画像変形処理を行う。
ここで、本実施例の顔形状補正の態様についてより詳細に説明する。図24は、本実施例における顔形状補正の態様を示す説明図である。本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして程度「中」の度合いが設定されている。図24には、変形領域TAを構成する各小領域の変形態様のイメージを矢印により示している。
図24に示すように、本実施例の顔形状補正では、基準線RLと平行な方向(V方向)に関し、水平分割線Lh1上に配置された分割点D(D11,D21,D31,D41)の位置は上方に移動される一方、水平分割線Lh2上に配置された分割点D(D12,D22,D32,D42)の位置は移動されない(図20参照)。従って、水平分割線Lh1と水平分割線Lh2との間に位置する画像は、V方向に関して縮小される。上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh2は目の画像のすぐ下付近に配置されるため、本実施例の顔形状補正では、顔の画像の内、顎から目の下にかけての部分の画像がV方向に縮小されることとなる。この結果、画像中の顎のラインは上方に移動する。
他方、基準線RLと直行する方向(H方向)に関しては、垂直分割線Lv1上に配置された分割点D(D11,D12)の位置は右方向に移動され、垂直分割線Lv4上に配置された分割点D(D41,D42)の位置は左方向に移動される(図20参照)。さらに、垂直分割線Lv2上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D21)の位置は右方向に移動され、垂直分割線Lv3上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D31)の位置は左方向に移動される(図20参照)。従って、垂直分割線Lv1より左側に位置する画像は、H方向に関して右側に拡大され、垂直分割線Lv4より右側に位置する画像は、左側に拡大される。また、垂直分割線Lv1と垂直分割線Lv2との間に位置する画像は、H方向に関して縮小または右側に移動され、垂直分割線Lv3と垂直分割線Lv4との間に位置する画像は、H方向に関して縮小または左側に移動される。さらに、垂直分割線Lv2と垂直分割線Lv3との間に位置する画像は、水平分割線Lh1の位置を中心にH方向に関して縮小される。
上述したように、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、本実施例の顔形状補正では、顔の画像の内、両目尻より外側の部分の画像が全体的にH方向に縮小される。特に顎付近において縮小率が高くなる。この結果、画像中の顔の形状は、全体的に幅方向に細くなる。
上述したH方向およびV方向の変形態様を総合すると、本実施例の顔形状補正により、対象画像TI中の顔の形状がシャープになる。なお、顔の形状がシャープになるとは、いわゆる「小顔」になると表現することもできる。
なお、図24に示す分割点D22,D32,D33,D23を頂点とする小領域(ハッチングを付した領域)は、上述した水平分割線Lh2や垂直分割線Lv2およびLv3の配置方法によると、両目の画像を含む領域となる。図20に示すように、分割点D22およびD32はH方向にもV方向にも移動されないため、この両目の画像を含む小領域は変形されない。このように本実施例では、両目の画像を含む小領域については変形しないこととし、顔形状補正後の画像がより自然で好ましいものとなるようにしている。
ステップS190(図4)では、顔形状補正部200(図1)が、顔形状補正後の対象画像TIを表示部150に表示するよう表示処理部310に指示する。図25は、顔形状補正後の対象画像TIが表示された表示部150の状態の一例を示す説明図である。顔形状補正後の対象画像TIが表示された表示部150により、ユーザは、補正結果を確認することができる。ユーザが補正結果に満足せず「戻る」ボタンを選択した場合には、例えば表示部150に図5に示した変形タイプおよび変形度合いを選択する画面が表示され、ユーザによる変形タイプや変形度合いの再度の設定が実行される。ユーザが補正結果に満足し、「印刷」ボタンを選択した場合には、以下の補正画像印刷処理が開始される。
ステップS200(図3)では、印刷処理部320(図1)が、プリンタエンジン160を制御して、顔形状補正処理後の対象画像TIの印刷を行う。図26は、本実施例における補正画像印刷処理の流れを示すフローチャートである。印刷処理部320は、顔形状補正処理後の対象画像TIの画像データの解像度を、プリンタエンジン160による印刷処理に適した解像度に変換し(ステップS210)、解像度変換後の画像データを、プリンタエンジン160における印刷に用いられる複数のインク色で階調表現されたインク色画像データに変換する(ステップS220)。なお、本実施例では、プリンタエンジン160における印刷に用いられる複数のインク色は、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4色であるものとする。さらに、印刷処理部320は、インク色画像データにおける各インク色の階調値に基づいてハーフトーン処理を実行することによって、印刷画素毎のインクドットの形成状態を示すドットデータを生成し(ステップS230)、ドットデータを配列して印刷データを生成する(ステップS240)。印刷処理部320は、生成された印刷データをプリンタエンジン160に供給し、プリンタエンジン160に対象画像TIの印刷を行わせる(ステップS250)。これにより、顔形状補正後の対象画像TIの印刷が完了する。
A−3.第1実施例の変形例:
第1実施例では、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして程度「中」の度合いが設定された場合の顔形状補正処理について説明した。これらの設定が異なる場合には、異なる顔形状補正印刷処理が実行される。
上述したように、変形処理のための分割点Dの位置の移動態様(移動方向および移動距離)は、分割点移動テーブル420(図1)により、変形タイプと変形の度合いとの組み合わせに対応付けて定められている。従って、例えば、変形度合いとして程度「中」の代わりに程度「大」が設定された場合には、分割点移動テーブル420に定められた、程度「大」に対応付けられた移動態様で分割点Dが移動される。
図27は、分割点移動テーブル420の内容の他の一例を示す説明図である。図27には、顔をシャープにするための変形タイプと程度「大」の変形度合いとの組み合わせに対応付けられた分割点Dの位置の移動態様を示している。図27に示した移動態様は、図20に示した顔をシャープにするための変形タイプと程度「中」の変形度合いとの組み合わせに対応付けられたものと比較して、H方向およびV方向の移動距離の値が大きくなっている。従って、変形度合いとして程度「大」が設定された場合には、変形領域TAを構成する小領域の内、変形される小領域の変形量が大きくなり、結果として、対象画像TI中の顔の形状がよりシャープになる。
また、上述したように、変形領域TAにおける分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル410(図1)により、設定される変形タイプと対応付けて定義されている。従って、例えば、変形タイプとして、顔をシャープにするための変形タイプの代わりに、目を大きくする変形「タイプB」(図5参照)が設定された場合には、目を大きくする変形タイプに対応付けられた態様で分割点Dが配置される。
図28は、分割点Dの他の配置方法の一例を示す説明図である。図28には、目を大きくする変形タイプに対応付けられた分割点Dの配置の態様を示している。図28に示した分割点Dの配置は、図19に示した顔をシャープにするための変形タイプに対応付けられたものと比較して、水平分割線Lh4上に位置する6つの分割点D(D04,D14,D24,D34,D44,D54)が付加された配置となっている。なお、水平分割線Lh4は、目の画像のすぐ上付近に配置されている。
図29は、分割点移動テーブル420の内容の他の一例を示す説明図である。図29には、目を大きくするための変形タイプと程度「中」の変形度合いとの組み合わせに対応付けられた分割点Dの位置の移動態様を示している。なお、図29には、水平分割線Lh2および水平分割線Lh4(図28)上の分割点Dのみに関する移動態様を抜き出して示している。図29に示した分割点D以外の分割点Dはいずれも移動しないものとする。
図29に示した態様で分割点Dの移動が行われると、分割点D22,D32,D34,D24を頂点とする矩形の小領域(図28でハッチングを付して示す領域)の画像は、基準線RLと平行な方向に沿って拡大されることとなる。従って、対象画像TI中の目の形状が上下に大きくなる。
また、上述したように、本実施例では、図5に示すユーザインターフェースを通じて希望された場合には、ユーザによる変形態様の詳細指定が行われる。この場合には、設定された変形タイプに対応付けられたパターンに従った分割点Dの配置(図4のステップS170)の後に、ユーザによる分割点Dの移動態様の指定が行われる。
図30は、ユーザによる分割点Dの移動態様の指定のためのユーザインターフェースの一例を示す説明図である。ユーザにより変形態様の詳細指定が希望された場合には、分割点Dの配置の完了後、プリンタ100の指定取得部212(図1)が、表示処理部310に、図30に示したユーザインターフェースを表示部150に表示させるよう指示する。図30に示したユーザインターフェースには、左側に対象画像TIの変形領域TA上の分割点Dの配置を示す画像が表示され、右側に分割点Dの移動態様を指定するインターフェースが配置されている。ユーザは、このユーザインターフェースを介して、各分割点DについてH方向およびV方向の移動量を任意に指定することができる。変形処理部260(図1)は、このユーザインターフェースを介して指定された移動態様で分割点Dを移動することにより、変形処理を行う。
なお、図30に示したユーザインターフェースでは、初期状態において、設定された変形タイプ(例えば顔をシャープにするための変形タイプ)に応じて、各分割点DのH方向およびV方向のデフォルトの移動量が定められており、ユーザは所望の分割点Dについて移動量を修正するようになっている。このようにすれば、ユーザは、デフォルトの移動量を参照しつつ、移動量を微調整して指定することができ、所望の変形タイプの画像変形を微調整した画像変形処理を実現することができる。
以上説明したように、本実施例のプリンタ100による顔形状補正印刷処理では、対象画像TI上に設定された変形領域TA内に複数の分割点Dが配置され、分割点D同士を結ぶ直線(水平分割線Lhおよび垂直分割線Lv)を用いて変形領域TAが複数の小領域に分割される。また、分割点Dの位置が移動され、小領域が変形されることにより変形領域TA内の画像の変形処理が実行される。このように、本実施例のプリンタ100による顔形状補正印刷処理では、変形領域TA内に分割点Dを配置して、配置された分割点Dを移動するだけで画像変形を行うことができ、多様な変形態様に対応した画像変形を、容易に、かつ効率的に実現することができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、複数の変形タイプの中から選択・設定された変形タイプに対応付けられた配置パターンに従って分割点Dが配置される。そのため、顔をシャープする変形タイプや目を大きくする変形タイプ等、それぞれの変形タイプに適した分割点Dの配置、すなわち変形領域TAの分割が行われ、各変形タイプの画像変形のさらなる容易化を実現することができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、選択・設定された変形タイプと変形度合いとの組み合わせに対応付けられた移動態様(移動方向および移動量)で分割点Dが移動される。そのため、変形タイプと変形度合いとを設定すれば、それらの組み合わせに応じた画像変形が実行され、画像変形のさらなる容易化を実現することができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、変形領域TAにおける分割点Dの配置は、基準線RLに対して対称の配置となっており、基準線RLに対して対称な位置関係にある2つの分割点Dの組み合わせのすべてが、分割点Dの移動後も、基準線RLに対して対称な位置関係を維持するように、分割点Dの移動態様が定められている。そのため、本実施例の顔形状補正印刷処理では、基準線RLに対して左右対称な画像変形が行われることとなり、より自然で好ましい顔画像の画像変形を実現することができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、変形領域TAを構成する複数の小領域の内の一部の小領域について、変形を行わないようにすることが可能である。すなわち、図24に示すように、両目の画像を含む小領域については、変形が行われないように、分割点Dの配置および移動態様を設定することが可能である。このように、両目の画像を含む小領域については変形を行わないものとすることにより、より自然で好ましい顔画像の画像変形を実現することができる。
また、本実施例のプリンタ100による顔形状補正印刷処理において、ユーザにより変形態様の詳細指定が希望された場合には、ユーザインターフェースを介した各分割点DについてのH方向およびV方向の移動量の指定が行われ、指定に従い分割点Dの位置が移動される。そのため、よりユーザの希望に近い態様での画像変形を容易に実現することができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、変形領域TAの設定(図4のステップS130)の前に、検出された顔領域FAの高さ方向に沿った位置調整が実行される(図4のステップS140)。そのため、対象画像TI中の顔の画像の位置に、より適合した顔領域FAを設定することができ、顔領域FAに基づき設定される変形領域TAにおける画像変形処理の結果を、より好ましいものとすることができる。
また、本実施例における顔領域FAの位置調整は、参照被写体としての目の画像の基準線RLに沿った位置を参照して実行される。本実施例では、目の画像を含む領域として設定された特定領域SAにおいて、基準線RLに沿った複数の評価位置について、基準線RLに直行する方向に沿った画素値の分布の特徴を表す評価値が算出されるため、算出された評価値に基づき目の画像の基準線RLに沿った位置を検出することができる。
より具体的には、基準線RLに直行する複数の対象画素特定線PLについて評価対象画素TPを選択し、評価対象画素TPのR値の平均値を評価値として用いることで、目の画像の位置を検出することができる。
また、目の画像の位置の検出は、それぞれに片目の画像が含まれるように設定された左分割特定領域SA(l)と右分割特定領域SA(r)とのそれぞれについて個別に行われる。そのため、目の画像の位置の検出を特定領域SA全体を対象として実行する場合と比較して、左右の目の基準線RLに沿った位置ずれの影響を排除することができ、検出精度を向上させることができる。
また、目の画像の位置の検出のための評価値の算出の際には、各対象画素特定線PLについて、選択された複数の評価対象画素TPの内、R値の大きい一部の画素を評価値の算出対象から除外するものとしている。そのため、参照被写体としての目の画像とは色の差が大きいと考えられる一部の評価対象画素TPを評価値の算出対象から除外することにより、目の画像の位置検出精度をより向上させることができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、変形領域TAの設定(図4のステップS130)の前に、顔領域FAの傾き調整が実行される(図4のステップS150)。そのため、対象画像TI中の顔の画像の傾きに、より適合した顔領域FAを設定することができ、顔領域FAに基づき設定される変形領域TAにおける画像変形処理の結果を、より好ましいものとすることができる。
また、本実施例における顔領域FAの傾き調整は、参照被写体としての両目の画像の傾きを参照して実行される。本実施例では、基準線RLを種々の角度で回転させた複数の評価方向線ELのそれぞれに対応付けて両目の画像を含む領域が評価特定領域ESAとして設定される。そして、各評価特定領域ESAにおいて、評価方向に沿った複数の評価位置について、評価方向に直行する方向に沿った画素値の分布の特徴を表す評価値が算出される。そのため、算出された評価値に基づき、両目の画像の傾きを検出することができる。
より具体的には、各評価特定領域ESAについて、評価方向線ELに直行する複数の対象画素特定線PLについて評価対象画素TPを選択し、評価対象画素TPのR値の平均値を評価値として算出し、評価値の分散が最大となる評価方向を決定することで、両目の画像の傾きを検出することができる。
また、両目の画像の傾き検出のための評価値の算出の際には、各対象画素特定線PLについて、選択された複数の評価対象画素TPの内、R値の大きい一部の画素を評価値の算出対象から除外するものとしている。そのため、参照被写体としての両目の画像とは色の差が大きいと考えられる一部の評価対象画素TPを評価値の算出対象から除外することにより、両目の画像の傾き検出精度をより向上させることができる。
また、本実施例のプリンタ100による顔形状補正印刷処理では、変形領域TAを構成する複数の小領域を4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。このとき、変形前および変形後のそれぞれについて、小領域の4つの三角形への分割は、小領域の各頂点と重心CG(CG’)とを結ぶ線分を用いて行っている。小領域の重心位置は、4つの頂点の座標から算出できる。そのため、はじめから変形領域TAを三角形の小領域に分割する場合と比較して、指定する座標の数を少なくすることができ、処理の高速化を図ることができる。また、小領域を三角形に分割せずに画像の変形を行う場合には、小領域の各頂点(分割点D)の移動方向および移動量によっては、小領域が180度を超える内角を有する形状となって変形処理に支障をきたす可能性がある。本実施例では、小領域を三角形に分割して変形処理を行っているため、このような不都合の発生を防止することができ、処理の円滑化・安定化を図ることができる。
B.その他の変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
B1.その他の変形例1:
上記実施例では、顔領域FAの位置調整や傾き調整の際の評価値として、各対象画素特定線PLについてのR値の平均値を用いているが(図9および図15参照)、対象画素特定線PLの方向(すなわち基準線RLに直行する方向)に沿った画素値の分布を表す値であれば、他の値を評価値として採用することも可能である。例えば、輝度値やエッジ量の平均値を用いてもよい。参照被写体としての目の画像の部分は、輝度値やエッジ量が、周囲の肌の部分の画像とは大きく異なると考えられることから、こられの値を評価値として用いることも可能である。
また、これらの値について、評価値算出の対象となる画素の平均値ではなく、累計値や、閾値以下(または以上)の値を有する画素数などを用いてもよい。例えば、各対象画素特定線PLについてのR値の累計値や、R値が閾値以下の画素の画素数を評価値として用いてもよい。また、上記実施例では、各対象画素特定線PLについて評価対象画素TPの内の一部を評価値の算出に用いないものとしているが、すべての評価対象画素TPを用いて評価値を算出してもよい。
また、上記実施例では、黄色人種を対象とすることを前提に、評価値としてR値の平均値を用いているが、他の人種(白色人種や黒色人種)を対象とする場合には、他の評価値(例えば輝度や明度、B値等)が用いられるとしてもよい。
B2.その他の変形例2:
上記実施例では、顔領域FAの位置調整や傾き調整において、特定領域SAや評価特定領域ESAにn本の対象画素特定線PLを設定し、対象画素特定線PLの位置において評価値を算出している(図9および図15参照)。しかし、対象画素特定線PLの設定本数はn本に固定する必要はなく、対象画像TIに対する特定領域SAや評価特定領域ESAの大きさに従って可変に設定されるとしてもよい。例えば、対象画素特定線PLのピッチsを固定とし、特定領域SAや評価特定領域ESAの大きさに応じて対象画素特定線PLの本数を設定してもよい。
B3.その他の変形例3:
上記実施例では、顔領域FAの傾き調整において、基準線RLの方向を中心に時計回りおよび反時計回りに20度の範囲で評価方向を設定しているが(図15参照)、顔領域FAの位置調整の際に算出された概略傾き角RIの方向を中心に時計回りおよび反時計回りに20度の範囲で評価方向を設定するとしてもよい。
また上記実施例では、一定の角度αのピッチで評価方向が設定されるとしているが、複数の評価方向のピッチは一定である必要はない。例えば、基準線RLの方向に近い範囲では、ピッチを細かくして評価方向を設定し、基準線RLから遠い範囲では、ピッチを粗くして評価方向を設定するとしてもよい。
また上記実施例では、顔領域FAの傾き調整において、位置調整後の顔領域FAに対応した特定領域SAが初期評価特定領域ESA(0)として設定されるとしているが、初期評価特定領域ESA(0)は、特定領域SAと独立して設定されるとしてもよい。
B4.その他の変形例4:
上記実施例では、顔領域FAの傾き調整において、複数の評価方向が設定され、各評価方向を表す評価方向線ELに対応した評価特定領域ESAが設定される。この各評価特定領域ESAは、初期評価特定領域ESA(0)を、各評価方向線ELの基準線RLからの回転角と同じ角度で回転させた領域である(図15参照)。しかし、評価特定領域ESAは必ずしもこのような領域として設定される必要はない。例えば、各評価方向線ELに対応した評価特定領域ESAは、すべて初期評価特定領域ESA(0)と同じ領域として設定されてもよい。この場合にも、各評価方向線ELと直行する対象画素特定線PLについて同様に評価値としてのR値の平均値を算出すればよい。このようにした場合でも、評価値の分散が最大値をとる評価方向を選択すれば、画像の傾きに適合した顔領域FAの傾き調整を実現することができる。
B5.その他の変形例5:
上記実施例では、顔領域FAの位置調整や傾き調整において、参照被写体としての目の画像の位置や傾きが検出され、検出された位置や傾きを用いて顔領域FAの位置調整や傾き調整が実行される。しかし、他の画像、例えば鼻や口の画像が参照被写体として用いられるとしてもよい。
また、本実施例における参照被写体の画像の位置や傾きの検出は、顔領域FAの位置調整や傾き調整を目的とする場合に限らず、広く、対象画像TI中の参照被写体の画像の位置や傾きを検出する場合に適用可能である。この場合に、参照被写体は、顔の部位に限られず、任意の被写体を参照被写体として採用可能である。
B6.その他の変形例6:
上記実施例では、変形領域TA(図18参照)は長方形形状の領域として設定されるとしているが、変形領域TAは他の形状、例えば楕円形状や菱形形状の領域として設定されるとしてもよい。
また、上記実施例における変形領域TAの小領域への分割方法(図19および図28参照)は、あくまで一例であり、他の分割方法を採用することも可能である。例えば、変形領域TAにおける分割点Dの配置は任意に変更可能である。また、小領域は、長方形形状ではなく、矩形形状や多角形形状であってもよい。また、変形領域TAにおける分割点Dの配置を、ユーザ指定に従い行うとしてもよい。
B7.その他の変形例7:
上記実施例において、変形領域TAの一部が対象画像TIからはみ出す場合もある。また、その場合に、一部の分割点Dが対象画像TI上に配置できない場合がある。一部の分割点Dが対象画像TI上に配置できない場合には、当該分割点Dの位置を定義するための水平分割線Lhおよび垂直分割線Lv(図19参照)を削除して、残りの水平分割線Lhおよび垂直分割線Lvにより定義される分割点Dのみを用いて変形領域TAの小領域への分割を実行するとしてもよい。あるいは、一部の分割点Dが対象画像TI上に配置できない場合には、顔形状補正を実行しないものとしてもよい。
B8.その他の変形例8:
上記実施例において、顔形状補正印刷処理(図3)の内容はあくまで一例であり、各ステップの順番を変更したり、一部のステップの実行を省略したりしてもよい。例えば、顔形状補正(図3のステップS100)の前に、印刷処理の内の解像度変換や色変換(図26のステップS210やS220)が実行されるとしてもよい。
また、顔領域FAの位置調整(図4のステップS140)と顔領域FAの傾き調整(図4のステップS150)との順番を逆にしてもよい。また、これらの処理の一方のみが実行され、他方の処理は省略されるとしてもよい。また、顔領域FAの検出(図4のステップS130)の直後に変形領域TAの設定(図4のステップS160)が実行され、設定された変形領域TAを対象に同様の位置調整や傾き調整が行われるとしてもよい。この場合にも、変形領域TAは少なくとも顔の一部の画像を含む領域であるため、顔の画像を含む領域の位置調整や傾き調整が行われるということができる。
また上記実施例では、顔領域FAの検出(図4のステップS130)が実行されるが、顔領域FAの検出の代わりに、例えばユーザ指定を介した顔領域FAの情報の取得が行われるとしてもよい。
B9.その他の変形例9:
上記実施例では、画像処理装置としてのプリンタ100による顔形状補正印刷処理(図3)を説明したが、顔形状補正印刷処理は例えば、顔形状補正(図3のステップS100)がパーソナルコンピュータにより実行され、印刷処理(ステップS200)のみがプリンタにより実行されるとしてもよい。また、プリンタ100はインクジェットプリンタに限らず、他の方式のプリンタ、例えばレーザプリンタや昇華型プリンタであるとしてもよい。
B10.その他の変形例10:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。