次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
A−1.画像処理装置の構成:
A−2.顔形状補正印刷処理:
A−3.変形領域の設定:
A−4.変形処理:
A−5.他の変形処理:
B.第2実施例:
C.第3実施例:
D.変形例:
A.第1実施例:
A−1.画像処理装置の構成:
図1は、本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。第1実施例のプリンタ100は、メモリカードMC等から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラーインクジェットプリンタである。プリンタ100は、プリンタ100の各部を制御するCPU110と、例えばROMやRAMによって構成された内部メモリ120と、ボタンやタッチパネルにより構成された操作部140と、液晶ディスプレイにより構成された表示部150と、プリンタエンジン160と、カードインターフェース(カードI/F)170と、を備えている。プリンタ100は、さらに、他の機器(例えばデジタルスチルカメラやパーソナルコンピュータ)とのデータ通信を行うためのインターフェースを備えているとしてもよい。プリンタ100の各構成要素は、バスを介して互いに接続されている。
プリンタエンジン160は、印刷データに基づき印刷を行う印刷機構である。カードインターフェース170は、カードスロット172に挿入されたメモリカードMCとの間でデータのやり取りを行うためのインターフェースである。なお、本実施例では、メモリカードMCにRGBデータとしての画像データを含む画像ファイルが格納されている。この画像ファイルは、例えばデジタルスチルカメラ等の撮像装置によりExif(Exchangeable Image File Format)規格に則って生成されたファイルであり、撮像により生成された画像データの他に、撮像時の絞り・シャッタースピード・レンズの焦点距離等の付加データを含んでいる。プリンタ100は、カードインターフェース170を介してメモリカードMCに格納された画像ファイルの取得を行う。
内部メモリ120には、顔形状補正部200と、顔領域検出部220と、被写体距離推定部330と、表示処理部310と、印刷処理部320とが格納されている。顔形状補正部200と顔領域検出部220と被写体距離推定部330とは、所定のオペレーティングシステムの下で、それぞれ後述する顔形状補正処理、顔領域検出処理、被写体距離推定処理を実行するためのコンピュータプログラムである。表示処理部310は、表示部150を制御して、表示部150上に処理メニューやメッセージを表示させるディスプレイドライバである。印刷処理部320は、画像データから印刷データを生成し、プリンタエンジン160を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU110は、内部メモリ120から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
顔形状補正部200は、プログラムモジュールとして、変形態様設定部210と、顔領域調整部230と、変形領域設定部240と、変形領域分割部250と、分割領域変形部260と、変形量設定部290と、を含んでいる。変形態様設定部210は、指定取得部212を含んでいる。また、被写体距離推定部330は、プログラムモジュールとして、情報取得部340を含んでいる。これらの各部の機能については、後述の顔形状補正印刷処理の説明において詳述する。なお、後述するように、変形領域分割部250と、分割領域変形部260と、により画像の変形が行われる。そのため、変形領域分割部250と分割領域変形部260とは、併せて「変形処理部」とも呼ぶことができる。また、顔領域検出部220は、被写体としての顔の画像を検出するものであり、「被写体検出部」とも呼ぶことができる。
内部メモリ120には、また、分割点配置パターンテーブル410と分割点移動テーブル420とが格納されている。分割点配置パターンテーブル410および分割点移動テーブル420の内容についても、後述の顔形状補正印刷処理の説明において詳述する。
A−2.顔形状補正印刷処理:
プリンタ100は、メモリカードMCに格納された画像ファイルに基づき、画像の印刷を行う。カードスロット172にメモリカードMCが挿入されると、表示処理部310により、メモリカードMCに格納された画像の一覧表示を含むユーザインターフェースが表示部150に表示される。図2は、画像の一覧表示を含むユーザインターフェースの一例を示す説明図である。図2に示すユーザインターフェースには、8つのサムネイル画像TN1〜TN8と、5つのボタンBN1〜BN5が表示されている。なお、本実施例では、画像の一覧表示は、メモリカードMCに格納された画像ファイルに含まれるサムネイル画像を用いて実現される。
第1実施例のプリンタ100は、図2に示すユーザインターフェースにおいて、ユーザにより、1つ(または複数)の画像が選択されると共に通常印刷ボタンBN3が選択されると、選択された画像を通常通り印刷する通常印刷処理を実行する。他方、当該ユーザインターフェースにおいて、ユーザにより、1つ(または複数)の画像が選択されると共に顔形状補正印刷ボタンBN4が選択されると、プリンタ100は、選択された画像について、画像中の顔の形状を補正して補正後の画像を印刷する顔形状補正印刷処理を実行する。図2の例では、サムネイル画像TN1と顔形状補正印刷ボタンBN4とが選択されているため、プリンタ100は、サムネイル画像TN1に対応する画像について顔形状補正印刷処理を行う。
図3は、第1実施例のプリンタ100による顔形状補正印刷処理の流れを示すフローチャートである。ステップS100では、顔形状補正部200(図1)が、顔形状補正処理を実行する。本実施例の顔形状補正処理は、画像中の顔の少なくとも一部の形状(例えば顔の輪郭形状や目の形状)を補正する処理である。なお、目や鼻などの顔の一部分は、一般に器官とも呼ばれる。
図4は、第1実施例における顔形状補正処理(図3のステップS100)の流れを示すフローチャートである。ステップS110では、顔形状補正部200(図1)が、顔形状補正処理の対象となる対象画像TIを設定する。顔形状補正部200は、図2に示したユーザインターフェースにおいてユーザにより選択されたサムネイル画像TN1に対応する画像を対象画像TIとして設定する。設定された対象画像TIの画像ファイルは、メモリカードMCからカードインターフェース170を介してプリンタ100に取得され、内部メモリ120の所定領域に格納される。なお、以下では、このようにメモリカードMCから取得され、プリンタ100の内部メモリ120に格納された画像ファイルに含まれる画像データを「元画像データ」とも呼ぶ。また、元画像データにより表される画像を「元画像」とも呼ぶ。
ステップS120(図4)では、変形態様設定部210(図1)が、顔形状補正のための画像変形のタイプと画像変形の度合いとを設定する。変形態様設定部210は、画像変形のタイプおよび度合いを設定するためのユーザインターフェースを表示部150に表示するように表示処理部310に指示し、当該ユーザインターフェースを通じてユーザにより指定された画像変形のタイプおよび度合いを選択し、処理に使用する画像変形タイプおよび度合いとして設定する。
図5は、画像変形のタイプおよび度合いを設定するためのユーザインターフェースの一例を示す説明図である。図5に示すように、このユーザインターフェースには、画像変形タイプを設定するためのインターフェースが含まれている。本実施例では、例えば、顔の形状をシャープにする変形タイプ「タイプA」や、目の形状を大きくする変形タイプ「タイプB」等が選択肢として予め設定されているものとする。ユーザは、このインターフェースを介して画像変形のタイプを指定する。変形態様設定部210は、ユーザにより指定された画像変形タイプを、実際の処理に使用する画像変形タイプとして設定する。
また、図5に示すユーザインターフェースには、画像変形の度合い(程度)を設定するためのインターフェースが含まれている。図5に示すように、本実施例では、画像変形の度合いとして、強(S)、中(M)、弱(W)の3段階と、自動と、の4つが選択肢として予め設定されているものとする。ユーザは、このインターフェースを介して画像変形の度合いを指定する。強、中、弱の3つの内のいずれかが指定された場合には、変形態様設定部210は、指定された画像変形の度合いを、実際の処理に使用する画像変形の度合いとして設定する。「自動」が指定された場合には、後述するように、画像変形の度合い(変形量)が変形量設定部290(図1)によって自動的に設定される。ユーザインターフェースに設けられたチェックボックスは、ユーザが変形態様の詳細指定を希望する場合にチェックされる。
以降では、画像変形のタイプとして顔の形状をシャープにするための変形タイプ「タイプA」が設定され、画像変形の度合いとして「自動」が選択され、ユーザによる詳細指定の希望はなかったものとして説明を行う。
ステップS130(図4)では、顔領域検出部220(図1)が、対象画像TIにおける顔領域FAの検出を行う。ここで、顔領域FAとは、対象画像TI上の画像領域であって、少なくとも顔の一部の画像が含まれる領域を意味している。顔領域検出部220による顔領域FAの検出は、例えばテンプレートを利用したパターンマッチングによる方法(特開2004−318204参照)といった公知の顔検出方法を用いて実行される。
図6は、顔領域FAの検出結果の一例を示す説明図である。図6の例では、対象画像TIに人物の顔の画像が含まれている。そのため、ステップS130において、対象画像TIから顔領域FAが検出される。この顔領域FAは、図6に示すように、両目と鼻と口の画像を含む矩形の領域となっている。なお、顔領域検出部220は、顔領域FAの検出結果として、対象画像TIにおける顔領域FAの位置を特定可能な情報(例えば顔領域FAの4つの頂点の座標)を出力する。また、図6に示すように、本実施例では、対象画像TIの幅をWwi(単位は画素数)と表し、顔領域FAの幅をWfi(単位は画素数)と表すものとする。
なお、ステップS130の顔領域FAの検出において、顔領域FAが検出されなかった場合には、その旨が表示部150を通じてユーザに通知される。この場合には、顔形状補正を伴わない通常印刷が行われるとしてもよいし、他の顔検出方法を用いた顔領域FAの再度の検出処理が行われるとしてもよい。
ステップS130では、テンプレートを利用したパターンマッチングにより対象画像TIから顔領域FAが検出される。このようなテンプレートを利用したパターンマッチングによる方法等の公知の顔検出方法は、一般に、顔全体や顔の部位(目や口等)について位置や傾き(角度)を詳細に検出するものではなく、対象画像TI中から顔の画像が概ね含まれると考えられる領域を顔領域FAとして設定するものである。
ステップS500(図4)において、プリンタ100は、検出された顔領域FAに基づいて変形領域TAを設定する。変形領域TAは、対象画像TI上の領域であって顔形状補正のための画像変形処理の対象となる領域である。変形領域TAの設定方法については、後述の「A−3.変形領域の設定」において詳述する。図7は、ステップS500における変形領域TAの設定結果を示す説明図である。図7中の破線は、ステップS130において検出された顔領域FAを示しており、図7中の太実線は、設定された変形領域TAを示している。
ステップS570(図4)では、被写体距離推定部330(図1)が、被写体距離Sdの推定を行う。ここで、被写体距離Sdは、対象画像TIの撮像時における撮像装置(より詳細には撮像装置のレンズの主点)から特定種類の被写体までの距離を意味している。また、本実施例では、特定種類の被写体として人物の顔が設定されている。従って、本実施例における被写体距離Sdは、撮像装置から人物の顔までの距離である。
図8は、被写体距離Sdの推定方法を示す説明図である。図8には、対象画像TIの撮像時における撮像装置の結像面ISと被写体としての人物Pの顔との位置関係を示している。図8に示すように、レンズの主点UPと人物Pの顔との間の距離である被写体距離Sdは、人物Pの顔の位置を含み結像面ISに平行な面(以下「被写体面SS」とも呼ぶ)における撮像範囲の幅Wwと画角θとにより定まる。また、画角θは、レンズの焦点距離fと結像面ISの幅Wxとの関係により特定される。すなわち、下記の式(1)が成り立つ。
Sd:Ww=f:Wx ・・・(1)
また、被写体面SSにおける撮像範囲の幅Wwは、人物Pの顔の画像が対象画像TI(図6)において占める大きさに基づき特定される。すなわち、被写体面SSにおける幅Wwと人物Pの顔の幅Wfとの比は、対象画像TIにおける画像全体の幅Wwiと顔領域FAの幅Wfiとの比に等しいと考えられる(式(2)参照)。
Ww:Wf=Wwi:Wfi ・・・(2)
上記式(1)および(2)から、下記の式(3)が導かれる。
Sd=(Wwi×Wf×f)/(Wfi×Wx) ・・・(3)
被写体距離推定部330の情報取得部340(図1)は、式(3)を用いた被写体距離Sdの算出に必要な情報を取得する。具体的には、情報取得部340は、対象画像TIを表す画像ファイルにメタデータとして付加されている対象画像TIの全体の幅Wwiの値(画素数)を取得すると共に、顔領域FA(図6)の幅Wfiの値(画素数)を算出する。顔領域FAの幅Wfiの算出は、例えば顔領域FAの2つの頂点の座標を用いて2つの頂点間の距離を算出することにより行う。なお、本実施例において、対象画像TIの全体の幅Wwiの値と顔領域FAの幅Wfiの値とは、対象画像TIの大きさに対する顔の画像の大きさを示す情報であり、本発明における第1の情報に相当する。
情報取得部340は、また、人物Pの顔の幅Wfの値として、予め設定され内部メモリ120(図1)に格納された典型的な人物の顔の幅(顔の現実の大きさ)の概略値(例えば200mm)を取得する。人物Pの顔の幅Wfの値は、本発明における第2の情報に相当する。
さらに、情報取得部340は、対象画像TIの画像ファイルの付加データに含まれる撮像時のレンズ焦点距離fの値を取得する。ここで、取得されるレンズの焦点距離fの値は、35mmフィルム換算値であり、撮像装置の実際の焦点距離(実焦点距離)とは異なる場合がある。このような場合には、情報取得部340は、結像面ISの幅Wxとして、予め設定された35mmフィルムの幅の値(=36mm)を取得する。なお、画像ファイルの付加データに実焦点距離のデータと撮像装置の撮像素子の幅のデータとが含まれている場合には、情報取得部340が、レンズの焦点距離fとして実焦点距離の値を取得し、結像面ISの幅Wxとして撮像素子の幅の値を取得するとしてもよい。また、画像ファイルの付加データに画角そのものを示すデータが含まれている場合には、情報取得部340が画角を示すデータを取得するとしてもよい。本実施例において、レンズの焦点距離fの値と結像面ISの幅Wxの値とは、対象画像TIの画角θを特定可能な情報であり、本発明における第3の情報に相当する。
被写体距離推定部330は、情報取得部340により取得された上記各情報(対象画像TIの全体の幅Wwiの値、顔領域FAの幅Wfiの値、人物Pの顔の幅Wfの値、レンズの焦点距離fの値、結像面ISの幅Wxの値)と、上記式(3)とを用いて、被写体距離Sdを算出(推定)する。
図4のステップS590では、変形量設定部290(図1)が、変形量(「変形の度合い」または「変形の程度」とも呼ぶ)を設定する。変形量設定部290による変形量の設定方法については、後述の「A−4.変形処理」において詳述する。
ステップS600(図4)では、ステップS500で設定された変形領域TAに対し、変形処理が行われる。変形処理の具体的内容については、後述の「A−4.変形処理」において詳述する。
図9は、変形処理が行われた結果を示す説明図である。図9(a)は、図4のステップS600における変形処理が行われる前の対象画像TIを示しており、図9(b)は、変形処理後の対象画像TIを示している。図9(b)に示すように、変形処理後の対象画像TIでは、変形領域TA内の人物の顔の画像が細くなっている。なお、ステップS600における変形処理は対象画像TI中の変形領域TA内の画像にのみ施され、変形領域TAの外の画像は変形されない。その結果、画像の全体を過剰に変形させずに、被写体を変形させることができる。
図9の例では、顔の左右の頬のライン(顔の輪郭)の画像が変形量DQだけ内側に移動している。この変形量DQは、図4のステップS590において設定された量である。このような変形処理によって、変形処理後の顔の画像の幅Wdは、変形前の顔の画像の幅Woと比べて、変形量DQの2倍だけ狭くなる。このように幅が狭くなるように画像を変形する理由は、画像の観察によって得られる被写体の印象を、実物の観察によって得られる印象に近づけるためである。
図10は、被写体の印象の違いを示す説明図である。図10中には、被写体Sと、人(観察者)の右目REと左目LEと、撮像装置としてのカメラCMとが示されている。図10では、観察者の上面から見た位置関係を示している。
図10の例では、説明を簡単にするために、上面から見た被写体Sの形状が半径rの円であるものと仮定している。なお、このような丸い被写体Sとしては、人の頭に限らず、種々の被写体(例えば、円筒形の建物やボール)が挙げられる。この被写体Sは、2つの目RE、LEの真正面に位置している。また、カメラCMは、2つの目RE、LEの中点MPに配置されている。すなわち、カメラCMは、観察者とほぼ同じ位置から、被写体Sを見る。なお、図中のx軸は、被写体Sの中心Cと、中点MPとを通る座標軸である。y軸は、中心Cを通り、x軸に垂直な座標軸である。2つの目RE、LEは、このy軸に沿って並んでいる。距離Lは、2つの目RE、LEの間の距離を示している。また、距離dは、中心Cと目RE、LEとの間のx軸に沿った距離を示している。
図10中の第1幅W1は、被写体Sの幅を示している。この第1幅W1は、カメラCMから見える部分の幅を示している。カメラCMから見える部分は、被写体Sの表面の内の、カメラ被写体範囲SRC内の部分である。このカメラ被写体範囲SRCは、カメラCMの視野の全範囲の内の被写体Sが占める範囲を示している。
図10中の第2幅W2も、被写体Sの幅を示している。ただし、この第2幅W2は、両目RE、LEから見える部分の幅を示している。両目RE、LEから見える部分は、被写体Sの表面の内の、右被写体範囲SRRと左被写体範囲SRLとの重なる範囲の内の部分である。右被写体範囲SRRは、右目REの視野の全範囲の内の被写体Sが占める範囲を示し、左被写体範囲SRLは、左目LEの視野の全範囲の内の被写体Sが占める範囲を示している。
図10に示すように、右目REと左目LEとの間では、被写体Sの見える部分が異なっている。すなわち、右目REから見える部分は右目RE側に偏っており、左目LEから見える部分は左目LE側に偏っている。このような場合には、人(観察者)による被写体Sの認識は、両目RE、LEに共通な可視部分から強い影響を受けると推定される。例えば、人は、両目RE、LEに共通な可視部分の幅W2が被写体Sの幅であるという認識を持つと推定される。
また、図10に示すように、第2幅W2は第1幅W1よりも狭い。すなわち、撮像によって生成された画像を観察すると、実際の被写体Sを観察したときと比べて幅が広い印象を受ける。そこで、図9(b)に示すように幅が狭くなるように画像を変形することによって、画像の観察によって得られる被写体の印象を、実物の観察によって得られる印象に近づけることができる。
図11は、第1幅W1に対する第2幅W2の比率Riと、距離dとの関係を示すグラフである。横軸は距離dを示し、縦軸は比率Riを示している。また、図11には、これらの幅W1、W2を示す関数も示されている。これらの幅W1、W2は、半径rと距離dと距離Lとの関数で表されている。なお、図11のグラフでは、半径rと距離Lとは固定されている。
図11に示すように、比率Ri(W2/W1)は、距離dが小さいほど小さい。また、この比率Ri(W2/W1)は、「1.0」よりも小さく、距離dが大きいほど「1.0」に近くなる。
図12(a)は、変形量DQと被写体距離Sdとの関係を示すグラフである。図12(b)は、変形前の幅Woに対する変形後の幅Wdの比率Rwと、被写体距離Sdとの関係を示すグラフである。これらのグラフでは、横軸がステップS570(図4)で推定された被写体距離Sdを示している。
図12(a)に示す変形量DQは、図12(b)に示す比率Rwが図11に示す比率Riと同じとなるように、予め設定されている。この結果、被写体距離Sdの値が小さいほど、変形量DQは大きな値に設定される。ここで、距離Lと半径rとは所定値に予め固定されている。目の距離Lとしては、例えば、100mmを採用可能である。また、半径r、すなわち、被写体Sの大きさとしては、被写体を代表する値(例えば、100mm)を採用可能である。なお、本実施例では、変形量DQは、変形領域TA内における幅の変化率(この場合は減少率)を示している。
上述した図4のステップS590では、変形量設定部290(図1)が、予め設定された図12(a)に示す対応関係を用いて、ステップS570において算出(推定)された被写体距離Sdから変形量DQを決定する。図4のステップS600では、このように決定された変形量DQを利用して画像が変形される(図9(b))。その結果、被写体距離Sdに合わせて画像を適切に変形させることができる。具体的には、画像の観察によって得られる被写体の印象を、実物の観察によって得られる印象に近づけることができる。
ステップS200(図3)では、顔形状補正部200(図1)が、顔形状補正後の対象画像TIを表示部150に表示するよう表示処理部310に指示する。図13は、顔形状補正後の対象画像TIが表示された表示部150の状態の一例を示す説明図である。顔形状補正後の対象画像TIが表示された表示部150により、ユーザは、補正結果を確認することができる。ユーザが補正結果に満足せず「戻る」ボタンを選択した場合には、例えば表示部150に図5に示した変形タイプおよび変形度合いを選択する画面が表示され、ユーザによる変形タイプや変形度合いの再度の設定が実行される。ユーザが補正結果に満足し、「印刷」ボタンを選択した場合には、以下の補正画像印刷処理が開始される。
ステップS300(図3)では、印刷処理部320(図1)が、プリンタエンジン160を制御して、顔形状補正処理後の対象画像TIの印刷を行う。印刷処理部320は、顔形状補正処理後の対象画像TIの画像データに、解像度変換やハーフトーン処理などの処理を施して印刷データを生成する。生成された印刷データは、印刷処理部320からプリンタエンジン160に供給され、プリンタエンジン160は対象画像TIの印刷を実行する。これにより、顔形状補正後の対象画像TIの印刷が完了する。
以上説明したように、本実施例のプリンタ100では、対象画像TIの全体の幅Wwiの値、顔領域FAの幅Wfiの値、人物Pの顔の幅Wfの値、レンズの焦点距離fの値、結像面ISの幅Wxの値を用いて、上記式(3)により、対象画像TIにおける被写体距離Sdを推定することができる。
また、本実施例のプリンタ100では、推定された被写体距離Sdに基づき、被写体距離Sdが小さいほど変形の度合いが大きくなる(変形量が大きくなる)ように画像変形における変形の度合い(変形量)が設定され、設定された変形量DQを利用して画像の変形処理が行われる。そのため、画像の観察によって得られる被写体の印象を実物の観察によって得られる印象に近づけるような、画像の変形処理を実現することができる。
なお、本実施例における画像の変形処理は、本発明における特定の処理に相当し、本実施例において画像の変形処理を行う顔形状補正部200は本発明における特定処理実行部に相当する。
A−3.変形領域の設定:
上述した顔形状補正処理(図4)における変形領域TAの設定処理(ステップS500)について詳述する。図14は、顔領域FAの検出結果の一例を示す説明図である。図14に示すように、図4のステップS130において、対象画像TIから顔領域FAが検出されている。図14に示した基準線RLは、顔領域FAの高さ方向(上下方向)を定義すると共に、顔領域FAの幅方向(左右方向)の中心を示す線である。すなわち、基準線RLは、矩形の顔領域FAの重心を通り、顔領域FAの高さ方向(上下方向)に沿った境界線に平行な直線である。
変形領域TAは、顔領域FAに基づき設定される。ここで、上述したように、顔領域FAの検出に用いられる公知の顔検出方法(テンプレートを利用したパターンマッチングによる方法等)は、顔全体や顔の部位(目や口等)について位置や傾き(角度)を詳細に検出するものではなく、対象画像TI中から顔の画像が概ね含まれると考えられる領域を顔領域FAとして設定するものである。他方、顔の画像は、一般に、観察者の注目度が高いため、顔領域FAに基づき設定された変形領域TAと顔の画像との位置や角度の関係によっては、顔形状補正後の画像が不自然なものとなる可能性がある。そこで、本実施例では、より自然で好ましい顔形状補正が実現されるように、ステップS130で検出された顔領域FAについて、以下に説明する位置調整および傾き調整を行うものとしている。
図15は、変形領域設定処理の流れを示すフローチャートである。ステップS510では、顔領域調整部230(図1)が、ステップS130(図4)で検出された顔領域FAの高さ方向の位置調整を行う。ここで、顔領域FAの高さ方向の位置調整とは、顔領域FAの基準線RL(図14参照)に沿った位置を調整して、対象画像TIにおける顔領域FAを再設定することを意味している。
図16は、顔領域FAの高さ方向の位置調整処理の流れを示すフローチャートである。ステップS511では、顔領域調整部230(図1)が、特定領域SAを設定する。ここで、特定領域SAとは、対象画像TI上の領域であって、顔領域FAの高さ方向の位置調整を実行する際に参照する所定の参照被写体の画像を含む領域である。参照被写体は、例えば「目」に設定することができ、その場合、特定領域SAは「目」の画像を含む領域として設定される。
図17は、特定領域SAの一例を示す説明図である。本実施例では、顔領域調整部230(図1)が、特定領域SAを顔領域FAとの関係に基づいて設定する。具体的には、顔領域FAの大きさを、基準線RLに直行する方向および基準線RLに平行な方向に、所定比率で縮小(または拡大)した大きさの領域であって、顔領域FAの位置と所定の位置関係を有する領域が、特定領域SAとして設定される。すなわち、本実施例では、顔領域検出部220により検出された顔領域FAとの関係に基づき特定領域SAを設定すれば、特定領域SAが両方の目の画像を含む領域となるように、上記所定比率や所定の位置関係が予め設定されている。なお、特定領域SAは、目の画像とまぎらわしい画像(例えば髪の毛の画像)がなるべく含まれないように、両目の画像を含む限りにおいて、なるべく小さい領域として設定されることが好ましい。
また、図17に示すように、特定領域SAは、基準線RLに対して対称な矩形形状の領域として設定される。特定領域SAは、基準線RLにより、向かって左側の領域(以下「左分割特定領域SA(l)」とも呼ぶ)と、向かって右側の領域(以下「右分割特定領域SA(r)」とも呼ぶ)とに分割される。特定領域SAは、左分割特定領域SA(l)と右分割特定領域SA(r)とのそれぞれに片目の画像が含まれるように設定される。
ステップS512(図16)では、顔領域調整部230(図1)が、特定領域SAにおける目の画像の位置を検出するための評価値を算出する。図18は、評価値の算出方法の一例を示す説明図である。本実施例では、RGB画像データとしての対象画像TIの各画素のR値(R成分値)が評価値の算出に用いられる。これは、肌の部分の画像と目の部分の画像とではR値の差が大きいため、R値を評価値の算出に用いることにより、目の画像の検出精度を向上させることができると考えられるからである。また、本実施例では、対象画像TIのデータがRGBデータとして取得されているため、R値を評価値の算出に用いることにより、評価値の算出の効率化を図ることができるからでもある。なお、図18に示すように、評価値の算出は、2つの分割特定領域(右分割特定領域SA(r)および左分割特定領域SA(l))のそれぞれについて個別に行われる。
顔領域調整部230は、図18に示すように、分割特定領域(右分割特定領域SA(r)および左分割特定領域SA(l))内に、基準線RLと直行するn本の直線(以下「対象画素特定線PL1〜PLn」と呼ぶ)を設定する。対象画素特定線PL1〜PLnは、分割特定領域の高さ(基準線RLに沿った大きさ)を(n+1)等分する直線である。すなわち、対象画素特定線PL同士の間隔は、すべて等間隔sである。
顔領域調整部230は、対象画素特定線PL1〜PLnのそれぞれについて、対象画像TIを構成する画素の中から評価値の算出に用いる画素(以下「評価対象画素TP」と呼ぶ)を選択する。図19は、評価対象画素TPの選択方法の一例を示す説明図である。顔領域調整部230は、対象画像TIを構成する画素の内、対象画素特定線PLと重なる画素を評価対象画素TPとして選択する。図19(a)は、対象画素特定線PLが対象画像TIの画素の行方向(図19のX方向)と平行である場合を示している。この場合には、各対象画素特定線PLと重なる画素行上の画素(図19(a)において○印を付した画素)が、各対象画素特定線PLについての評価対象画素TPとして選択される。
一方、顔領域FAの検出方法や特定領域SAの設定方法によっては、図19(b)に示すように、対象画素特定線PLが対象画像TIの画素の行方向(X方向)と平行とはならない場合も生ずる。このような場合にも、原則として、各対象画素特定線PLと重なる画素が、各対象画素特定線PLについての評価対象画素TPとして選択される。ただし、例えば図19(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として選択される場合もある。
顔領域調整部230は、対象画素特定線PLのそれぞれについて、評価対象画素TPのR値の平均値を評価値として算出する。ただし、本実施例では、各対象画素特定線PLについて、選択された複数の評価対象画素TPの内、R値の大きい一部の画素を評価値の算出対象から除外するものとしている。具体的には、例えば、ある対象画素特定線PLについてk個の評価対象画素TPが選択された場合、評価対象画素TPが、R値の比較的大きい0.75k個の画素により構成される第1グループと、比較的R値の小さい0.25k個の画素により構成される第2グループとの2グループに分けられ、第2グループに属する画素のみが評価値としてのR値の平均値の算出対象となる。このように一部の評価対象画素TPを評価値の算出対象から除外する理由については後述する。
以上のように、本実施例では、顔領域調整部230により各対象画素特定線PLについての評価値が算出される。ここで、対象画素特定線PLは基準線RLに直行する直線であるため、評価値は、基準線RLに沿った複数の位置(評価位置)について算出されると表現することができる。また、評価値は、各評価位置について、基準線RLに直行する方向に沿った画素値の分布の特徴を表す値と表現することができる。
ステップS513(図16)では、顔領域調整部230(図1)が、特定領域SAにおける目の位置を検出し、検出結果に基づき高さ基準点Rhを決定する。まず、顔領域調整部230は、図18の右側に示すように、各分割特定領域について、基準線RLに沿った評価値(R値の平均値)の分布を表す曲線を作成し、評価値が極小値をとる基準線RL方向に沿った位置を目の位置Ehとして検出する。なお、左分割特定領域SA(l)における目の位置EhをEh(l)と表し、右分割特定領域SA(r)における目の位置EhをEh(r)と表わす。
黄色人種の場合、分割特定領域中の肌の画像を表す部分はR値が大きい一方、目(より詳細には目の中央の黒目部分)の画像を表す部分はR値が小さいと考えられる。そのため、上述のように、評価値(R値の平均値)が極小値をとる基準線RLに沿った位置を目の位置Ehと判断することが可能となる。但し、他の人種(白色人種や黒色人種)を対象とする場合には、他の評価値(例えば、輝度や明度やB値)が用いられる。
なお、図18に示すように、分割特定領域には、目の画像以外にもR値の小さい他の画像(例えば、眉や髪の毛の画像)が含まれている場合もある。そのため、顔領域調整部230は、基準線RLに沿った評価値の分布を表す曲線が複数の極小値をとる場合には、極小値をとる位置の内、最も下側の位置を目の位置Ehと判断する。一般に、目の画像より上側には眉や髪の毛等のR値の小さい画像が位置することが多い一方、目の画像より下側にはR値の小さい画像が位置することが少ないと考えられることから、このような判断が可能となる。
また、上記曲線が、目の画像の位置よりも下側(主に肌の画像に対応した位置)であっても、評価値が大きいながらも極小値をとる可能性があるため、極小値の内、所定の閾値より大きいものは無視するものとしてもよい。あるいは、単純に、各対象画素特定線PLについて算出された評価値の内の最小値に対応した対象画素特定線PLの位置を目の位置Ehとしてもよい。
なお、本実施例では、顔において周囲との色の差が比較的大きいと考えられる部位である目(目の中央の黒目部分)を顔領域FAの位置調整の参照被写体として用いている。しかし、評価値としてのR値の平均値は、対象画素特定線PL上の複数の評価対象画素TPを対象として算出されるため、例えば、黒目の周縁の白目部分の画像の影響により、黒目部分の検出の精度が低下する怖れがある。本実施例では、上述したように、参照被写体とは色の差が大きいと考えられる一部の評価対象画素TP(例えば上述した第1のグループに属する比較的R値の大きい画素)を評価値の算出対象から除外することにより、参照被写体の検出精度をより向上させている。
次に、顔領域調整部230は、検出された目の位置Ehに基づき高さ基準点Rhを決定する。図20は、高さ基準点Rhの決定方法の一例を示す説明図である。高さ基準点Rhは、顔領域FAの高さ方向の位置調整の際に、基準として用いられる点である。本実施例では、図20に示すように、左右2つの目の位置Eh(l)およびEh(r)の中間に位置する基準線RL上の点が高さ基準点Rhとして設定される。すなわち、左の目の位置Eh(l)を示す直線EhL(l)と基準線RLとの交点と、右の目の位置Eh(r)を示す直線EhL(r)と基準線RLとの交点と、の中点が、高さ基準点Rhとして設定される。
なお、本実施例では、顔領域調整部230が、検出された目の位置Ehに基づき、顔画像の概略の傾き角(以下「概略傾き角RI」と呼ぶ)を算出するものとしている。顔画像の概略傾き角RIは、対象画像TI中の顔の画像が、顔領域FAの基準線RLに対して概ねどれぐらい傾いているかを推定した角度である。図21は、概略傾き角RIの算出方法の一例を示す説明図である。図21に示すように、顔領域調整部230は、まず、左分割特定領域SA(l)の幅Ws(l)を半分に分割する直線と直線EhL(l)との交点IP(l)と、右分割特定領域SA(r)の幅Ws(r)を半分に分割する直線と直線EhL(r)との交点IP(r)とを決定する。そして、交点IP(l)と交点IP(r)とを結ぶ直線に直交する直線ILと、基準線RLとのなす角が、概略傾き角RIとして算出される。
ステップS514(図16)では、顔領域調整部230(図1)が、顔領域FAの高さ方向の位置調整を行う。図22は、顔領域FAの高さ方向の位置調整方法の一例を示す説明図である。顔領域FAの高さ方向の位置調整は、高さ基準点Rhが、位置調整後の顔領域FAにおける所定の位置に位置することとなるように、顔領域FAを再設定することにより行う。具体的には、図22に示すように、高さ基準点Rhが、顔領域FAの高さHfを所定の比率r1対r2で分けるような位置に位置することとなるように、顔領域FAが基準線RLに沿って上下に位置調整される。図22の例では、破線で示した調整前の顔領域FAを上方向に移動することにより、実線で示した調整後の顔領域FAが再設定されている。
顔領域FAの位置調整の後、ステップS520(図15)では、顔領域調整部230(図1)が、顔領域FAの傾き調整(角度調整)を行う。ここで、顔領域FAの傾き調整とは、対象画像TIにおける顔領域FAの傾きを顔の画像の傾きに適合するように調整して、顔領域FAを再設定することを意味している。本実施例では、顔領域FAの傾き調整を実行する際に参照する所定の参照被写体は、「両目」と設定されている。本実施例における顔領域FAの傾き調整では、傾き調整の調整角度の選択肢を表す複数の評価方向が設定され、各評価方向に対応した評価特定領域ESAが両目の画像を含む領域として設定される。そして、各評価方向について評価特定領域ESAの画像の画素値に基づき評価値が算出され、評価値に基づき決定される傾き調整の調整角度を用いて顔領域FAの傾きが調整される。
図23は、第1実施例における顔領域FAの傾き調整処理の流れを示すフローチャートである。また、図24は、顔領域FAの傾き調整のための評価値の算出方法の一例を示す説明図である。ステップS521(図23)では、顔領域調整部230(図1)が、初期評価特定領域ESA(0)を設定する。初期評価特定領域ESA(0)は、顔領域FAの位置調整後の基準線RL(図22参照)と平行な方向(以下「初期評価方向」とも呼ぶ)に対応付けられた評価特定領域ESAである。本実施例では、位置調整後の顔領域FAに対応した特定領域SA(図22参照)が、そのまま初期評価特定領域ESA(0)として設定される。なお、顔領域FAの傾き調整における評価特定領域ESAは、顔領域FAの位置調整時の特定領域SAとは異なり、左右2つの領域に分割されることはない。図24の最上段には、設定された初期評価特定領域ESA(0)が示されている。
ステップS522(図23)では、顔領域調整部230(図1)が、複数の評価方向と各評価方向に対応した評価特定領域ESAとを設定する。複数の評価方向は、傾き調整の調整角度の選択肢を表す方向として設定される。本実施例では、基準線RLとのなす角が所定の範囲内である複数の評価方向線ELが設定され、評価方向線ELと平行な方向が評価方向として設定される。図24に示すように、基準線RLを初期評価特定領域ESA(0)の中心点(重心)CPを中心として反時計回りおよび時計回りに所定の角度α刻みで回転させることにより定まる直線が、複数の評価方向線ELとして設定される。なお、基準線RLとのなす角がφ度である評価方向線ELをEL(φ)と表す。
本実施例では、上述した各評価方向線ELと基準線RLとのなす角についての所定の範囲は±20度と設定される。ここで本明細書では、基準線RLを時計回りに回転させたときの回転角は正の値で表され、基準線RLを反時計回りに回転させたときの回転角は負の値で表される。顔領域調整部230は、基準線RLを反時計回りおよび時計回りにα度、2α度・・・と20度を超えない範囲で回転角を増加させつつ回転させ、複数の評価方向線ELを設定する。図24には、基準線RLを−α度,−2α度,α度回転させることによりそれぞれ定まる評価方向線EL(EL(−α),EL(−2α),EL(α))が示されている。なお、基準線RLは、評価方向線EL(0)とも表現できる。
各評価方向を表す評価方向線ELに対応した評価特定領域ESAは、初期評価特定領域ESA(0)を、中心点CPを中心として、評価方向線ELの設定時の回転角と同じ角度で回転させた領域である。評価方向線EL(φ)に対応した評価特定領域ESAは、評価特定領域ESA(φ)と表される。図24には、評価方向線EL(−α),EL(−2α),EL(α)のそれぞれに対応した評価特定領域ESA(ESA(−α),ESA(−2α),ESA(α))が示されている。なお、初期評価特定領域ESA(0)も評価特定領域ESAの1つとして扱われるものとする。
ステップS523(図23)では、顔領域調整部230(図1)が、設定された複数の評価方向のそれぞれについて、評価特定領域ESAの画像の画素値に基づき評価値を算出する。本実施例では、顔領域FAの傾き調整における評価値として、上述した顔領域FAの位置調整における評価値と同様に、R値の平均値が用いられる。顔領域調整部230は、評価方向に沿った複数の評価位置についての評価値を算出する。
評価値の算出方法は、上述した顔領域FAの位置調整における評価値の算出方法と同様である。すなわち、顔領域調整部230は、図24に示すように、各評価特定領域ESA内に、評価方向線ELに直交する対象画素特定線PL1〜PLnを設定し、各対象画素特定線PL1〜PLnについて評価対象画素TPを選択し、選択された評価対象画素TPのR値の平均値を評価値として算出する。
評価特定領域ESAにおける対象画素特定線PLの設定方法や評価対象画素TPの選択方法は、領域を左右に分割するか否かの違いはあるものの、図18および図19に示した顔領域FAの位置調整における方法と同様である。なお、顔領域FAの位置調整時と同様に、選択された評価対象画素TPの内の一部(例えばk個の評価対象画素TPの内のR値の比較的大きい0.75k個の画素)を評価値の算出対象から除外するとしてもよい。図24の右側には、各評価方向について、算出された評価値の評価方向線ELに沿った分布を示している。
なお、対象画素特定線PLは評価方向線ELに直行する直線であるため、評価値は、評価方向線ELに沿った複数の位置(評価位置)について算出されると表現することができる。また、評価値は、各評価位置について、評価方向線ELに直行する方向に沿った画素値の分布の特徴を表す値と表現することができる。
ステップS524(図23)では、顔領域調整部230(図1)が、顔領域FAの傾き調整に用いる調整角度を決定する。顔領域調整部230は、各評価方向について、ステップS523において算出された評価値の評価方向線ELに沿った分散を算出し、分散の値が最大となる評価方向を選択する。そして、選択された評価方向に対応した評価方向線ELと基準線RLとのなす角を、傾き調整に用いる調整角度として決定する。
図25は、各評価方向についての評価値の分散の算出結果の一例を示す説明図である。図25の例では、回転角が−α度である評価方向において、分散が最大値Vmaxをとる。従って、−α度、すなわち反時計回りにα度の回転角が、顔領域FAの傾き調整に用いる調整角度として決定される。
評価値の分散の値が最大となるときの評価方向に対応した角度が傾き調整に用いる調整角度として決定される理由について説明する。図24の上から2段目に示すように、回転角が−α度であるときの評価特定領域ESA(−α)では、左右の目の中央部(黒目部分)の画像が、概ね対象画素特定線PLに平行な方向(すなわち評価方向線ELに直行する方向)に並ぶような配置となっている。また、このときには、左右の眉の画像も同様に、概ね評価方向線ELに直行する方向に並ぶような配置となる。従って、このときの評価方向線ELに対応した評価方向が、概ね顔の画像の傾きを表す方向であると考えられる。このときには、一般にR値が小さい目や眉の画像と一般にR値が大きい肌の部分の画像との位置関係が、対象画素特定線PLの方向に沿って両者が重なる部分の小さい位置関係となる。そのため、目や眉の画像の位置における評価値は比較的小さくなり、肌の部分の画像の位置における評価値は比較的大きくなる。従って、評価方向線ELに沿った評価値の分布は、図24に示すように、比較的ばらつきの大きい(振幅の大きい)分布となり、分散の値は大きくなる。
一方、図24中の最上段および3段目、4段目に示すように、回転角が0度,−2α度,α度であるときの評価特定領域ESA(0),ESA(−2α),ESA(α)では、左右の目の中央部や左右の眉の画像が、評価方向線ELに直行する方向に並ばず、ずれた配置となっている。従って、このときの評価方向線ELに対応した評価方向は、顔の画像の傾きを表していはいない。このときには、目や眉の画像と肌の部分の画像との位置関係が、対象画素特定線PLの方向に沿って両者が重なる部分の大きい位置関係となる。そのため、評価方向線ELに沿った評価値の分布は、図24に示すように、比較的ばらつきの小さい(振幅の小さい)分布となり、分散の値は小さくなる。
以上のように、評価方向が顔の画像の傾きの方向に近い場合には、評価方向線ELに沿った評価値の分散の値が大きくなり、評価方向が顔の画像の傾きの方向から遠い場合には、評価方向線ELに沿った評価値の分散の値が小さくなる。従って、評価値の分散の値が最大となるときの評価方向に対応した角度を傾き調整に用いる調整角度として決定すれば、顔領域FAの傾きが顔の画像の傾きに適合するような顔領域FAの傾き調整を実現することができる。
なお本実施例では、評価値の分散の算出結果が、角度の範囲の臨界値、すなわち−20度または20度において最大値をとるような結果となった場合には、顔の傾きが正確に評価されていない可能性が高いと考えられるため、顔領域FAの傾き調整を行わないものとしている。
また本実施例では、決定された調整角度が、上述した顔領域FAの位置調整の際に算出された概略傾き角RIと比較される。調整角度と概略傾き角RIとの差が所定の閾値より大きい場合には、顔領域FAの位置調整および傾き調整における評価や決定の際に何らかの誤りが発生したと考えられるため、顔領域FAの位置調整および傾き調整を行わないものとしている。
ステップS525(図23)では、顔領域調整部230(図1)が、顔領域FAの傾き調整を行う。図26は、顔領域FAの傾き調整方法の一例を示す説明図である。顔領域FAの傾き調整は、顔領域FAを、初期評価特定領域ESA(0)の中心点CPを中心に、ステップS524において決定された調整角度だけ回転させることにより行う。図26の例では、破線で示した調整前の顔領域FAを反時計回りにα度回転させることにより、実線で示した調整後の顔領域FAが設定される。
顔領域FAの傾き調整終了後のステップS530(図15)では、変形領域設定部240(図1)が、変形領域TAを設定する。変形領域TAは、対象画像TI上の領域であって顔形状補正のための画像変形処理の対象となる領域である。図27は、変形領域TAの設定方法の一例を示す説明図である。図27に示すように、本実施例では、変形領域TAは、顔領域FAを基準線RLと平行な方向(高さ方向)および基準線RLに直行する方向(幅方向)に伸張(または短縮)した領域として設定される。具体的には、顔領域FAの高さ方向の大きさをHf、幅方向の大きさをWfとすると、顔領域FAを、上方向にk1・Hf、下方向にk2・Hfだけ伸ばすと共に、左右にそれぞれk3・Wfだけ伸ばした領域が、変形領域TAとして設定される。なお、k1,k2,k3は、所定の係数である。
このように変形領域TAが設定されると、顔領域FAの高さ方向の輪郭線に平行な直線である基準線RLは、変形領域TAの高さ方向の輪郭線にも平行な直線となる。また、基準線RLは、変形領域TAの幅を半分に分割する直線となる。
図27に示すように、変形領域TAは、高さ方向に関しては、概ね顎から額までの画像を含み、幅方向に関しては、左右の頬の画像を含むような領域として設定される。すなわち、本実施例では、変形領域TAが概ねそのような範囲の画像を含む領域となるように、顔領域FAの大きさとの関係に基づき、上述の係数k1,k2,k3が予め設定されている。
A−4.変形処理:
上述した顔形状補正処理(図4)における変形処理(ステップS600)について詳述する。図28は、変形処理の流れを示すフローチャートである。ステップS610では、変形領域分割部250(図1)が、変形領域TAを複数の小領域に分割する。図29は、変形領域TAの小領域への分割方法の一例を示す説明図である。変形領域分割部250は、変形領域TAに複数の分割点Dを配置し、分割点Dを結ぶ直線を用いて変形領域TAを複数の小領域に分割する。
分割点Dの配置の態様(分割点Dの個数および位置)は、分割点配置パターンテーブル410(図1)により、ステップS120(図4)において設定される変形タイプと対応付けて定義されている。変形領域分割部250は、分割点配置パターンテーブル410を参照し、ステップS120において設定された変形タイプと対応付けられた態様で分割点Dを配置する。本実施例では、上述したように、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定されているため、この変形タイプに対応付けられた態様で分割点Dが配置される。
図29に示すように、分割点Dは、水平分割線Lhと垂直分割線Lvとの交点と、水平分割線Lhおよび垂直分割線Lvと変形領域TAの外枠との交点とに配置される。ここで、水平分割線Lhおよび垂直分割線Lvは、変形領域TA内に分割点Dを配置するための基準となる線である。図29に示すように、顔をシャープにするための変形タイプに対応付けられた分割点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が配置される。図29に示すように、水平分割線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と呼ばれる。
なお、図29に示すように、本実施例における分割点Dの配置は、基準線RLに対して対称の配置となっている。
変形領域分割部250は、配置された分割点Dを結ぶ直線(すなわち水平分割線Lhおよび垂直分割線Lv)により、変形領域TAを複数の小領域に分割する。本実施例では、図29に示すように、変形領域TAが15個の矩形の小領域に分割される。
なお本実施例では、分割点Dの配置は、水平分割線Lhおよび垂直分割線Lvの本数および位置により定まるため、分割点配置パターンテーブル410は水平分割線Lhおよび垂直分割線Lvの本数および位置を定義していると言い換えることも可能である。
ステップS620(図28)では、分割領域変形部260(図1)が、対象画像TIの変形領域TAを対象とした画像の変形処理を行う。分割領域変形部260による変形処理は、ステップS610で変形領域TA内に配置された分割点Dの位置を移動して、小領域を変形することにより行われる。
変形処理のための各分割点Dの位置の移動態様(移動方向および移動距離)は、分割点移動テーブル420(図1)により、ステップS120(図4)において設定される変形タイプと変形の度合いとの組み合わせに対応付けて、予め定められている。分割領域変形部260は、分割点移動テーブル420を参照し、ステップS120において設定された変形タイプと変形の度合いとの組み合わせに対応付けられた移動方向および移動距離で、分割点Dの位置を移動する。
変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして程度「中」の度合いが設定されている場合には、これらの変形タイプおよび変形度合いの組み合わせに対応付けられた移動方向および移動距離で、分割点Dの位置が移動されることとなる。
また、変形度合いとして「自動」が選択されている場合には、分割点Dの移動方向および移動距離が、変形量設定部290によって設定された変形量DQに基づいて決定される。
図30は、分割点移動テーブル420の内容の一例を示す説明図である。また図31は、分割点移動テーブル420に従った分割点Dの位置の移動の一例を示す説明図である。図30には、分割点移動テーブル420により定義された分割点Dの位置の移動態様の内、顔をシャープにするための変形タイプと変形度合い「自動」との組み合わせに対応付けられた移動態様を示している。図30に示すように、分割点移動テーブル420には、各分割点Dについて、基準線RLと直交する方向(H方向)および基準線RLと平行な方向(V方向)に沿った移動量が示されている。なお、分割点移動テーブル420に示された移動量の単位は、対象画像TIの画素ピッチPPである。また、テーブル中の移動量DQpは、変形量設定部290(図1)によって決定される。図4のステップS590では、変形量設定部290は、設定した変形量DQを画素ピッチに換算することによって、移動量DQpを算出する。また、H方向については、向かって右側への移動量が正の値として表され、向かって左側への移動量が負の値として表され、V方向については、上方への移動量が正の値として表され、下方への移動量が負の値として表される。例えば、分割点D11は、H方向に沿って右側に画素ピッチPPのDQp倍の距離だけ移動され、V方向に沿って上方に画素ピッチPPの2*DQp倍の距離だけ移動される。また、例えば分割点D22は、H方向およびV方向共に移動量がゼロであるため、移動されない。なお、変形度合いとして「強(S)」、「中(M)」、「弱(W)」のいずれかが選択された場合には、移動量DQpとして、変形量設定部290によって調整された値の代わりに、各変形度合いに対応付けて予め定められた値が利用される。
なお、本実施例では、変形領域TAの内外の画像間の境界が不自然とならないように、変形領域TAの外枠上に位置する分割点D(例えば図29に示す分割点D10等)の位置は移動されないものとしている。従って、図30に示した分割点移動テーブル420には、変形領域TAの外枠上に位置する分割点Dについての移動態様は定義されていない。
図31では、移動前の分割点Dは白抜きの丸で、移動後の分割点Dや位置の移動の無い分割点Dは黒丸で示されている。また、移動後の分割点Dは分割点D'と呼ばれるものとする。例えば分割点D11の位置は、図31において右上方向に移動され、分割点D'11となる。
なお、本実施例では、基準線RLに対して対称な位置関係にある2つの分割点Dの組み合わせ(例えば分割点D11とD41との組み合わせ)のすべてが、分割点Dの移動後も、基準線RLに対して対称な位置関係を維持するように、移動態様が定められている。
分割領域変形部260は、変形領域TAを構成する各小領域について、分割点Dの位置移動前の状態における小領域の画像が、分割点Dの位置移動により新たに定義された小領域の画像となるように、画像の変形処理を行う。例えば、図31において、分割点D11,D21,D22,D12を頂点とする小領域(ハッチングを付して示す小領域)の画像は、分割点D'11,D'21,D22,D'12を頂点とする小領域の画像に変形される。
図32は、分割領域変形部260による画像の変形処理方法の概念を示す説明図である。図32では、分割点Dを黒丸で示している。図32では、説明を簡略化するために、4つの小領域について、左側に分割点Dの位置移動前の状態を、右側に分割点Dの位置移動後の状態を、それぞれ示している。図32の例では、中央の分割点Daが分割点Da'の位置に移動され、その他の分割点Dの位置は移動されない。これにより、例えば、分割点Dの移動前の分割点Da,Db,Dc,Ddを頂点とする矩形の小領域(以下「変形前注目小領域BSA」とも呼ぶ)の画像は、分割点Da',Db,Dc,Ddを頂点とする矩形の小領域(以下「変形後注目小領域ASA」とも呼ぶ)の画像に変形される。
本実施例では、矩形の小領域を小領域の重心CGを用いて4つの三角形領域に分割し、三角形領域単位で画像の変形処理を行っている。図32の例では、変形前注目小領域BSAが、変形前注目小領域BSAの重心CGを頂点の1つとする4つの三角形領域に分割される。同様に、変形後注目小領域ASAが、変形後注目小領域ASAの重心CG'を頂点の1つとする4つの三角形領域に分割される。そして、分割点Daの移動前後のそれぞれの状態において対応する三角形領域毎に、画像の変形処理が行われる。例えば、変形前注目小領域BSA中の分割点Da,Ddおよび重心CGを頂点とする三角形領域の画像が、変形後注目小領域ASA中の分割点Da',Ddおよび重心CG'を頂点とする三角形領域の画像に変形される。
図33は、三角形領域における画像の変形処理方法の概念を示す説明図である。図33の例では、点s,t,uを頂点とする三角形領域stuの画像が、点s',t',u'を頂点とする三角形領域s't'u'の画像に変形される。画像の変形は、変形後の三角形領域s't'u'の画像中のある画素の位置が、変形前の三角形領域stuの画像中のどの位置に相当するかを算出し、算出された位置における変形前の画像における画素値を変形後の画像の画素値とすることにより行う。
例えば、図33において、変形後の三角形領域s't'u'の画像中の注目画素p'の位置は、変形前の三角形領域stuの画像中の位置pに相当するものとする。位置pの算出は、以下のように行う。まず、注目画素p'の位置を、下記の式(4)のようにベクトルs't'とベクトルs'u'との和で表現するための係数m1およびm2を算出する。
次に、算出された係数m1およびm2を用いて、下記の式(5)により、変形前の三角形領域stuにおけるベクトルstとベクトルsuとの和を算出することにより、位置pが求まる。
変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置に一致した場合には、当該画素の画素値が変形後の画像の画素値とされる。一方、変形前の三角形領域stuにおける位置pが、変形前の画像の画素中心位置からはずれた位置となった場合には、位置pの周囲の画素の画素値を用いたバイキュービック等の補間演算により、位置pにおける画素値を算出し、算出された画素値が変形後の画像の画素値とされる。
変形後の三角形領域s't'u'の画像中の各画素について上述のように画素値を算出することにより、三角形領域stuの画像から三角形領域s't'u'の画像への画像変形処理を行うことができる。分割領域変形部260は、図31に示した変形領域TAを構成する各小領域について、上述したように三角形領域を定義して変形処理を行い、変形領域TAにおける画像変形処理を行う。
ここで、変形タイプとして顔をシャープにするための変形「タイプA」(図5参照)が設定され、変形度合いとして「自動」が設定された場合を例に取り、顔形状補正の態様についてより詳細に説明する。図34は、この場合における顔形状補正の態様を示す説明図である。図34には、変形領域TAを構成する各小領域の変形態様のイメージを矢印により示している。
図34の例に示す顔形状補正では、基準線RLと平行な方向(V方向)に関し、水平分割線Lh1上に配置された分割点D(D11,D21,D31,D41)の位置は上方に移動される一方、水平分割線Lh2上に配置された分割点D(D12,D22,D32,D42)の位置は移動されない(図30参照)。従って、水平分割線Lh1と水平分割線Lh2との間に位置する画像は、V方向に関して縮小される。上述したように、水平分割線Lh1は顎の画像より下方に配置され、水平分割線Lh2は目の画像のすぐ下付近に配置されるため、この顔形状補正では、顔の画像の内、顎から目の下にかけての部分の画像がV方向に縮小されることとなる。この結果、画像中の顎のラインは上方に移動する。
他方、基準線RLと直交する方向(H方向)に関しては、垂直分割線Lv1上に配置された分割点D(D11,D12)の位置は右方向に移動され、垂直分割線Lv4上に配置された分割点D(D41,D42)の位置は左方向に移動される(図30参照)。さらに、垂直分割線Lv2上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D21)の位置は右方向に移動され、垂直分割線Lv3上に配置された2つの分割点Dの内、水平分割線Lh1上に配置された分割点D(D31)の位置は左方向に移動される(図30参照)。従って、垂直分割線Lv1より左側に位置する画像は、H方向に関して右側に拡大され、垂直分割線Lv4より右側に位置する画像は、左側に拡大される。また、垂直分割線Lv1と垂直分割線Lv2との間に位置する画像は、H方向に関して縮小または右側に移動され、垂直分割線Lv3と垂直分割線Lv4との間に位置する画像は、H方向に関して縮小または左側に移動される。さらに、垂直分割線Lv2と垂直分割線Lv3との間に位置する画像は、水平分割線Lh1の位置を中心にH方向に関して縮小される。
上述したように、垂直分割線Lv1およびLv4は、頬のラインの画像の外側に配置され、垂直分割線Lv2およびLv3は、目尻の画像の外側に配置される。そのため、図34の例における顔形状補正では、顔の画像の内、両目尻より外側の部分の画像が全体的にH方向に縮小される。特に顎付近において縮小率が高くなる。この結果、画像中の顔の形状は、全体的に幅方向に細くなる。
上述したH方向およびV方向の変形態様を総合すると、図34の例に示した顔形状補正により、対象画像TI中の顔の形状がシャープになる。なお、顔の形状がシャープになるとは、いわゆる「小顔」になると表現することもできる。
なお、図34に示す分割点D22,D32,D33,D23を頂点とする小領域(ハッチングを付した領域)は、上述した水平分割線Lh2や垂直分割線Lv2およびLv3の配置方法によると、両目の画像を含む領域となる。図30に示すように、分割点D22およびD32はH方向にもV方向にも移動されないため、この両目の画像を含む小領域は変形されない。このように図34の例では、両目の画像を含む小領域については変形しないこととし、顔形状補正後の画像がより自然で好ましいものとなるようにしている。
A−5.他の変形処理:
図35は、変形処理の他の実施例を示す概略図である。図9に示す変形処理とは異なり、図35の例では、対象画像TI上の一部の変形領域が変形される代わりに、対象画像TIの全体のアスペクト比が変更される。
図35(a)は、変形前の対象画像TIを示し、図35(b)は変形後の画像TIdを示している。また、図中には、互いに直交する2つの方向Dr1、Dr2が示されている。第1方向Dr1は、矩形画像TI、TIdの短辺と平行な方向を示し、第2方向Dr2は、矩形画像TI、TIdの長辺と平行な方向を示している。図35の例では、顔の幅方向は、第2方向Dr2とほぼ一致している。
図35の例では、第1方向Dr1に沿った変形は実行されずに、第2方向Dr2に沿った変形(圧縮)が実行される。この変形によって、画像の全体が、第2方向Dr2に沿って圧縮される。すなわち、対象画像TI上の被写体の幅も狭くなる。その結果、画像の観察によって得られる被写体の印象を、実物の観察によって得られる印象に近づけることができる。
この変形では、変形済画像TIdの第2方向Dr2の大きさ(幅IWd)が、変形前の大きさ(幅IW)と比べて、変形量DQの2倍だけ小さくなる。すなわち、変形済画像TIdの第2方向Dr2方向の画素数が、変形前の画素数と比べて、少なくなる。ここで、変形済画像TIdの画素値(各画素の階調値)の決定方法としては、種々の方法を採用可能である。例えば、対象画像TIの画素値を補間することによって、変形済画像TIdの画素値を決定してもよい。
変形量DQとしては、上述の実施例で説明した任意の変形量を採用可能である。例えば、被写体距離Sdに基づいて決定された変形量DQを採用してもよい。
なお、2つの方向Dr1、Dr2から圧縮すべき方向を、被写体の方向の検出結果に基づいて選択することが好ましい。例えば、顔領域検出部220(図1)は、図14、図35(a)に示すように、顔領域FAの高さ方向(上下方向)を示す基準線RLを検出可能である。そこで、2つの方向Dr1、Dr2の内の、この基準線RLとのなす角度が大きい方の方向を選択することが好ましい(図35の例では、第2方向Dr2)。こうすば、被写体の幅(水平方向の大きさ)を小さくすることができる。
なお、対象画像TIの全体のアスペクト比を変更する変形処理を採用する場合には、顔形状補正部として、図1に示すような顔形状補正部200を採用可能である。ただし、変形処理部から、変形領域分割部250と分割領域変形部260とを省略することができる。その代わりに、変形処理部は、対象画像TIのアスペクト比を変更する機能を有していればよい。また、顔領域調整部230と変形領域設定部240とを省略可能である。顔領域検出部220は、被写体の方向を検出するために利用され得る。ただし、顔領域検出部220を省略してもよい。
ここで、被写体の幅方向に沿って対象画像TIを圧縮する変形処理の代わりに、被写体の高さ方向に沿って対象画像TIを伸張する変形処理を採用してもよい。この場合も、被写体の高さに対する幅の比率が小さくなるので、画像の観察によって得られる被写体の印象を、実物の観察によって得られる印象に近づけることができる。
B.第2実施例:
図36は、本発明の第2実施例における画像処理装置としてのプリンタ100aの構成を概略的に示す説明図である。第2実施例のプリンタ100aと第1実施例のプリンタ100(図1)との違いは、第2実施例のプリンタ100aが顔形状補正部200の代わりにぼかし処理部360を備えている点である。第2実施例のプリンタ100aのその他の構成は、第1実施例のプリンタ100と同様である。
ぼかし処理部360は、所定のオペレーティングシステムの下で、後述する背景ぼかし印刷処理を実行するためのコンピュータプログラムである。ぼかし処理部360は、ぼかし度合い設定部362を含んでいる。
図37は、第2実施例のプリンタ100aによる背景ぼかし印刷処理の流れを示すフローチャートである。背景ぼかし印刷処理は、対象画像中の背景領域の画像にぼかし処理を施した後、印刷を行う処理である。背景ぼかし印刷処理により、遠近感が大きく、主な被写体が強調された画像の印刷を実現できる。
ステップS710では、ぼかし処理部360(図36)が、背景ぼかし印刷処理の対象画像TIaを設定する。対象画像TIaの設定方法は、第1実施例の顔形状補正処理(図4)における対象画像の設定方法と同様である。図38は、背景ぼかし印刷処理の対象画像TIaの一例を示す説明図である。
ステップS720(図37)では、顔領域検出部220(図36)が、対象画像TIaにおける顔領域FAを検出する。顔領域FAの検出方法は、第1実施例の顔形状補正処理(図4)における顔領域FAの検出方法と同様である。図38には、対象画像TIaにおける検出された顔領域FAを破線で示している。
ステップS730(図37)では、ぼかし処理部360が、背景領域を設定する。背景領域は、対象画像TIaにおけるぼかし処理を施す領域である。ぼかし処理部360は、ステップS720で検出された顔領域FAに基づき除外領域EAを設定し、対象画像TIaにおける除外領域EAを除く領域を背景領域として設定する。図38には、対象画像TIaにおける設定された除外領域EAの一例を示している。除外領域EAの設定は、第1実施例の顔形状補正処理(図4)における変形領域TAの設定と同様に、顔領域FAを所定の係数を用いて拡大することにより行うことができる。なお図38に示すように、除外領域EAは、おおむね顔全体の画像を含む領域となるように、第1実施例における変形領域TA(図7参照)より大きな領域として設定されてもよい。また、除外領域EAは、おおむね人物の全身の画像を丸ごと含む領域となるように設定されてもよい。
ステップS740(図37)では、被写体距離推定部330(図36)が、被写体距離Sdを推定する。被写体距離Sdの推定方法は、第1実施例の顔形状補正処理(図4)における被写体距離Sdの推定方法と同様である。
ステップS750(図37)では、ぼかし度合い設定部362(図36)が、ぼかし度合い(「ぼかし強度」とも呼ぶ)を設定する。ぼかし度合いは、対象画像TIa中の背景領域に施すぼかし処理の度合い(強度)である。ぼかし度合い設定部362は、予め定められたぼかし度合いと被写体距離Sdとの関係に基づき、ぼかし度合いを設定する。図39は、ぼかし度合いと被写体距離Sdとの関係を示すグラフである。横軸は被写体距離Sdを示し、縦軸はぼかし度合いを示している。図39に示すように、ぼかし度合いと被写体距離Sdとの関係は、被写体距離Sdが小さいほどぼかし度合いが大きくなるように定められている。一般の撮像装置では、撮像距離が短いほど被写界深度が浅くなる。従って、ぼかし度合いと被写体距離Sdとの関係を図39に示すように定めることにより、自然で好ましいぼかし処理が実現される。ぼかし度合い設定部362は、ステップS740で推定された被写体距離Sdと図39に示した関係とに基づき、ぼかし度合いを設定する。
ステップS760(図37)では、ぼかし処理部360(図36)がぼかし処理を行う。ぼかし処理部360は、対象画像TIa中に設定された背景領域の画像に対し、ステップS750で設定されたぼかし度合いでぼかし処理を行う。なお、ぼかし処理は、例えばガウスフィルタを用いた公知の方法により実行される。図40は、ぼかし処理後の対象画像TIaの一例を示す説明図である。図40(a)には、被写体距離Sdが比較的小さい場合におけるぼかし処理後の対象画像TIaを示しており、図40(b)には、被写体距離Sdが比較的大きい場合におけるぼかし処理後の対象画像TIaを示している。図40(a)および図40(b)に示すように、被写体距離Sdが小さい方が、背景の画像のぼけ具合が大きくなる。
その後、ぼかし処理後の画像の表示(図37のステップS770)および印刷(図37のステップS780)が実行される。ぼかし処理後の画像の表示および印刷は、第1実施例の顔形状補正印刷処理(図3)における画像の表示および印刷と同様に行われる。
以上説明したように、第2実施例のプリンタ100aでは、推定された被写体距離Sdに基づき、被写体距離Sdが小さいほどぼかし度合いが大きくなるようにぼかし度合いが設定され、設定されたぼかし度合いを利用して画像のぼかし処理が行われる。そのため、撮像装置の特性に適合した自然で好ましい画像のぼかし処理を実現することができる。
なお、本実施例における画像のぼかし処理は、本発明における特定の処理に相当し、本実施例において画像のぼかし処理を行うぼかし処理部360は本発明における特定処理実行部に相当する。
C.第3実施例:
図41は、本発明の第3実施例における画像処理装置としてのデジタルスチルカメラ500の構成を概略的に示す説明図である。第3実施例のデジタルスチルカメラ(以下「DSC」とも呼ぶ)500は、対象物を撮像して画像を生成する撮像装置(画像生成装置)として機能すると共に、生成された画像に対する画像処理を行う画像処理装置としても機能する。
DSC500は、レンズ502と、レンズ502を駆動して焦点(ピント)の位置や焦点距離を調整するレンズ駆動部504と、レンズ駆動部504を制御するレンズ駆動制御部506と、レンズ502を介して受光面に入力された光を電気信号に変換する撮像素子508と、撮像素子508から出力された電気信号に対するA/D変換を行うA/D変換器510と、外部機器との情報のやり取りのためのインターフェイス部(I/F部)512と、液晶ディスプレイにより構成された表示部514と、ボタンやタッチパネルにより構成された操作部516と、DSC500の各部を制御するCPU518と、ROMやRAMによって構成された内部メモリ600と、を備えている。撮像素子508は、例えばCCDを用いて構成される。DSC500の各構成要素は、バス522を介して互いに接続されている。
内部メモリ600には、画像生成部610が格納されている。画像生成部610は、所定のオペレーティングシステムの下で、後述する画像生成処理を実行するためのコンピュータプログラムである。CPU518は、内部メモリ600から、このプログラムを読み出して実行することにより、画像生成部610の機能を実現する。
画像生成部610は、プログラムモジュールとして、顔領域検出部620と、被写体距離推定部630と、画像ファイル生成部650と、焦点範囲設定部660と、タイミング決定部670とを含んでいる。また、被写体距離推定部630は、情報取得部640を含んでいる。これらの各部の機能については、後述の画像生成処理の説明において詳述する。なお、顔領域検出部620は、第1実施例のプリンタ100(図1)に含まれる顔領域検出部220と同様の機能を有し、被写体距離推定部630は、第1実施例のプリンタ100に含まれる被写体距離推定部330と同様の機能を有する。
図42は、第3実施例のDSC500による画像生成処理の流れを示すフローチャートである。第3実施例における画像生成処理では、所定の条件が満たされた場合に撮像が行われ、画像を表す画像データを含む画像ファイルが生成される。
ステップS810では、画像生成部610(図41)が、準備画像を取得する。撮像前の種々の処理に用いられる画像である。画像生成部610は、レンズ502や撮像素子508、A/D変換器510を制御して、準備画像を取得する。なお、表示部514が撮像時のファインダーとして利用されている場合には、準備画像が表示部514に表示される。
ステップS820(図42)では、顔領域検出部620(図41)が、準備画像における顔領域FAを検出する。顔領域FAの検出方法は、第1実施例の顔形状補正処理(図4)における顔領域FAの検出方法と同様である。
ステップS830(図42)では、被写体距離推定部630(図41)が、準備画像における被写体距離Sdを推定する。被写体距離Sdの推定方法は、第1実施例の顔形状補正処理(図4)における被写体距離Sdの推定方法と同様である。すなわち、情報取得部640が準備画像の全体の幅、顔領域FAの幅、人物Pの顔の幅、レンズの焦点距離、結像面の幅といった情報を取得し、被写体距離推定部630がこれらの情報と上記式(3)とを用いて被写体距離Sdを算出(推定)する。
ステップS840(図43)では、タイミング決定部670(図41)が、ステップS830において推定された被写体距離Sdに基づき、画像生成タイミング(撮像タイミング)を決定する。図43は、第3実施例における画像生成処理の概要を示す説明図である。第3実施例における画像生成処理では、画像の生成(撮像)を行う条件として、被写体距離Sdが所定の閾値T1以下であるという条件が定められている。すなわち、図43において被写体としての人物Pが位置P2に居るときは、上記撮像条件が満たされず、撮像は行われない。一方、人物が位置P1に移動すると、上記撮像条件が満たされ、撮像が行われることとなる。なお、このような撮像条件は、例えば防犯カメラの撮像条件として設定されうる。
ステップS840において、タイミング決定部670は、被写体距離Sdと閾値T1とを比較し、被写体距離Sdが閾値T1以下である場合には、画像生成を行うことを決定し、処理をステップS850にすすめる。一方、タイミング決定部670は、被写体距離Sdが閾値T1より大きい場合には、画像生成を行わないことを決定し、処理をステップS810に戻す。図42のステップS810からS840までの処理は、ステップS840において画像生成を行うことが決定されるまで、所定時間経過毎に繰り返し実行される。
ステップS850(図42)では、焦点範囲設定部660(図41)が、ステップS830において推定された被写体距離Sdに基づき、焦点範囲FRを設定する。焦点範囲FRは、撮像時における焦点(ピント)の位置すべき範囲である。焦点範囲設定部660は、図43に示すように、DSC500から被写体距離Sdだけ離れた位置を中心として前後にそれぞれ所定の距離L1の広がりを有する範囲を焦点範囲FRとして設定する。なお、焦点範囲FRは、DSC500の機構上、焦点が位置することができる最大の範囲である最大焦点範囲FRmaxよりも狭い範囲として設定される。
ステップS860(図42)では、画像生成部610(図41)が、レンズ502、レンズ駆動部504、レンズ駆動制御部506を制御して、自動焦点合わせ(オートフォーカス)を行う。具体的には、画像生成部610は、焦点範囲FR内で焦点を移動させつつ撮像により画像を取得し、取得された画像の内のコントラストが最も大きい画像に対応した位置に焦点を合わせる。一般のDSCにおける自動焦点合わせでは、最大焦点範囲FRmax内で焦点を移動させつつ取得された画像のコントラスト検出が行われる。一方、本実施例のDSC500における自動焦点合わせでは、最大焦点範囲FRmaxよりも狭い範囲である焦点範囲FR内のみで焦点を移動させつつ取得された画像のコントラスト検出が行われるため、焦点合わせに要する時間の短縮を図ることができる。
ステップS870(図42)では、画像生成部610(図41)が、撮像により画像データを生成すると共に、画像ファイル生成部650が、画像データとステップS830において推定された被写体距離Sdを示すデータとを含む画像ファイルを生成する。画像ファイルは、例えばExif規格に則ったファイルとして生成され、被写体距離Sdを示すデータは、付加データとして画像ファイルに付加される。
以上説明したように、第3実施例のDSC500による画像生成処理では、準備画像における被写体距離Sdの推定が行われ、推定された被写体距離Sdに基づき画像生成(撮像)タイミングが決定される。そのため、DSC500と被写体との距離に関する撮像条件を定めて画像の生成を行うことができる。また、第3実施例のDSC500による画像生成処理では、推定された被写体距離Sdに基づき、焦点範囲FRが設定され、焦点範囲FR内で自動焦点合わせが行われる。そのため、焦点合わせに要する時間の短縮を図ることができる。
また、第3実施例のDSC500による画像生成処理では、画像データと被写体距離Sdを示すデータとを含む画像ファイルが生成される。そのため、画像ファイル生成の後に、画像ファイルに含まれる被写体距離Sdを示すデータを利用して、第1実施例で説明した顔形状補正処理や第2実施例で説明したぼかし処理を行うことができる。また、画像ファイルに含まれる被写体距離Sdを示すデータは、画像の検索にも利用可能である。例えば、複数の画像ファイルの中から被写体距離Sdが比較的小さい画像を容易に選択することが可能となる。
なお、本実施例における画像ファイルの生成、画像生成タイミングの決定および焦点範囲FRの設定は、それぞれ本発明における特定の処理に相当し、本実施例において画像ファイルの生成、画像生成タイミングの決定および焦点範囲FRの設定を行う画像ファイル生成部650、タイミング決定部670および焦点範囲設定部660は、それぞれ本発明における特定処理実行部に相当する。また、本実施例における準備画像は、本発明における対象画像に相当する。
D.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
D1.変形例1:
上記各実施例では、被写体距離Sdを推定する被写体(特定種類の被写体)として人物の顔を採用しているが、被写体距離Sdを推定する被写体として人物の顔以外の任意の被写体を採用可能である。例えば、ボールや車両、建築物、製造機器等、対象画像からの検出が可能であり、かつ、大きさが既知の被写体であれば、被写体距離Sdを推定する被写体として採用可能である。また、対象画像から被写体を検出する方法としては、任意の方法を採用可能である。
D2.変形例2:
上記各実施例では、対象画像TIおよび準備画像から1つの顔領域FAのみが検出された場合について説明したが、対象画像TIおよび準備画像から複数の顔領域FAが検出された場合には、各顔領域FAについて被写体距離Sdの推定を行ってもよい。複数の顔領域FAについて被写体距離Sdの推定を行った場合には、各顔領域FAについて、顔形状補正処理等の画像処理を行ってもよい。
また、複数の顔領域FAについて被写体距離Sdの推定を行った場合には、人物間の距離が推定されることとなる。この推定された人物間の距離を用いて種々の処理を行ってもよい。例えば、第3実施例における撮像条件として、推定された人物間の距離が所定の閾値以下であること等を採用することができる。また、推定された人物間の距離を3D画像の生成に用いることも可能である。
D3.変形例3:
上記各実施例では、図8に示すように、水平方向の長さ(対象画像TIの全体の幅Wwi、顔領域FAの幅Wfi、人物Pの顔の幅Wf、結像面ISの幅Wx)を用いて被写体距離Sdを推定しているが、垂直方向の長さ、すなわち、対象画像TIの高さ、顔領域FAの高さ、人物Pの顔の高さ、結像面ISの高さを用いて被写体距離Sdを推定することも可能である。
また、上記各実施例では、対象画像TIの大きさに対する被写体の画像の大きさを特定するデータとして、対象画像TIの全体の幅Wwiと顔領域FAの幅Wfiとを用いているが、代わりに対象画像TIの全体面積(または画素数)に対する顔領域FAの面積(または画素数)を用いることも可能である。
D4.変形例4:
上記第3実施例では、ステップS870(図42)で生成された画像ファイルには、ステップS830において推定された被写体距離Sdを示すデータ(すなわち準備画像における被写体距離Sdを示すデータ)が含まれるとしている。しかし、ステップS870における撮像により生成された画像について新たに被写体距離Sdの推定を行い、当該被写体距離Sdを示すデータを画像ファイルに含ませるものとしてもよい。
また、上記第1実施例および第2実施例においても、顔形状補正処理および背景ぼかし処理が施された画像データと被写体距離Sdを示すデータとを含む画像ファイルが生成されるとしてもよい。
D5.変形例5:
上記第3実施例では、推定された被写体距離Sdを焦点範囲FRの設定に用いている。すなわち、被写体距離Sdを自動焦点合わせの補助に用いている。しかし、推定された被写体距離Sdの位置そのものに焦点を合わせるように、焦点合わせを行うことも可能である。すなわち、コントラスト検出等を用いず、被写体距離Sdのみを用いて自動焦点合わせを行うとしてもよい。
D6.変形例6:
上記第3実施例の画像生成処理において、被写体距離Sdに基づく撮像タイミングの決定を行う必要はなく、ユーザ操作による撮像指示が行われてもよい。また、被写体距離Sdに基づく焦点範囲FRの設定が行われる必要はなく、最大焦点範囲FRmaxにおいて最適な焦点を探索する一般的な自動焦点合わせが行われるとしてもよい。
また、上記第3実施例では、被写体距離SdをDSC500による撮像判定に用いているが、被写体距離Sdはデジタルビデオカメラ等の動画像生成装置による録画開始判定に用いるとしてもよい。
D7.変形例7:
上記各実施例では、変形領域TAを矩形の領域として設定しているが、変形領域TAの形状は、他の形状(例えば、楕円や菱形)であってもよい。
D8.変形例8:
上記各実施例では、画像処理装置としてのプリンタ100による顔形状補正印刷処理(図3)を説明したが、顔形状補正印刷処理は例えば、顔形状補正と補正画像の表示(ステップS100,S200)がパーソナルコンピュータにより実行され、印刷処理(ステップS300)のみがプリンタにより実行されるものとしてもよい。また、プリンタ100はインクジェットプリンタに限らず、他の方式のプリンタ、例えばレーザプリンタや昇華型プリンタであるとしてもよい。
また、変形済画像データは、印刷に限らず、任意の用途に利用可能である。例えば、表示装置(例えば、プロジェクタ)による表示を採用してもよい。
D9.変形例9:
上記各実施例において、変形処理としては種々の処理を採用可能である。例えば、変形領域TA内の画像を、被写体の高さ方向には変形させずに、被写体の水平方向にのみ変形させてもよい。
いずれの場合も、変形処理としては、被写体の少なくとも一部分の対象画像TI上における少なくとも一方向(以下「短縮方向」と呼ぶ)の大きさが小さくなるような変形処理を採用することが好ましい。こうすれば、観察者から見た横方向に短縮方向が向くような角度で画像と実物とを観察した場合に、画像の観察によって得られる被写体の印象を、実物の観察によって得られる印象に近づけることができる。ここで、被写体の輪郭によって示される大きさを、短縮方向に小さくすることが好ましい。すなわち、輪郭で囲まれる領域の短縮方向の長さが小さくなることが好ましい。このように、変形処理によって、被写体の少なくとも輪郭が変形されることが好ましい。こうすれば、画像の観察によって得られる被写体の印象を、適切に、実物の観察によって得られる印象に近づけることができる。
なお、短縮方向は、対象画像TI上の任意の方向に設定可能である。例えば、所定の方向(例えば、対象画像TIの長辺と平行な方向)を短縮方向として採用してもよい。ただし、短縮方向と被写体の幅方向とがなす角度が30度以下であることが好ましく、この角度が15度以下であることが特に好ましく、短縮方向が被写体の幅方向に向けられることが最も好ましい。こうすれば、多くの場合において、自然で好ましい変形を実行することができる。
ここで、被写体の幅方向に近くなるように短縮方向を決定する方法としては、種々の方法を採用可能である。例えば、変形処理部は、被写体の幅方向と関連のある情報を利用することによって、短縮方向を決定してもよい。被写体の幅方向と関連のある情報としては、種々の情報を採用可能である。例えば、被写体の方向の検出結果を採用可能である。上述の実施例では、顔領域検出部220は、対象画像TIを解析することによって被写体(この場合は顔)の方向を検出する。また、撮像装置の中には、撮像時の地面に対する鉛直方向(重力方向)を示す鉛直情報を、履歴情報として画像ファイルに格納するものがある。このような鉛直情報を利用可能な場合には、鉛直情報に基づいて対象画像TI上の重力方向を特定することができ、その重力方向と垂直な方向を被写体の幅方向として採用することができる。
また、変形処理部は、ユーザの指示に従って短縮方向を決定してもよい。例えば、変形処理部は、被写体の幅方向を示す指示を受け入れ、受け入れた指示に従って短縮方向を決定してもよい。
また、被写体の幅方向が、対象画像TI上の所定の方向と一致することが予め決まっている場合がある。例えば、一般的なユーザによって撮像された対象画像TIでは、被写体の幅方向は、対象画像TIの長辺と平行であることが多い。このような場合には、変形処理部は、対象画像TI上の所定の方向(この場合は、長辺と平行な方向)を、被写体の幅方向として採用してもよい。すなわち、対象画像TI上の所定の方向を短縮方向として採用してもよい。
以上の説明は、被写体が人物の顔とは異なる場合についても、同様に適用可能である。また、被写体の変形される部分は、任意に設定可能である。
D10.変形例10:
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、図1の変形領域分割部250と分割領域変形部260との全体の機能を、論理回路を有するハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
D11.変形例11:
[変形処理を行うための手段]
変形処理を行うために、画像処理装置は、画像の変形を行う画像処理装置であって、対象画像上の少なくとも一部の領域を変形領域として設定する変形領域設定部と、前記変形領域内に複数の分割点を配置し、前記分割点同士を結ぶ直線を用いて前記変形領域を複数の小領域に分割する変形領域分割部と、少なくとも1つの前記分割点の位置を移動して前記小領域を変形することにより前記変形領域内の画像の変形を行う変形処理部と、を備えるものとしてもよい。
この画像処理装置では、対象画像上に設定された変形領域内に複数の分割点が配置され、分割点同士を結ぶ直線を用いて変形領域が複数の小領域に分割される。また、分割点の位置が移動され、小領域が変形されることにより変形領域内の画像の変形処理が実行される。このように、この画像処理装置では、変形領域内に分割点を配置して、配置された分割点を移動するだけで画像変形を行うことができ、多様な変形態様に対応した画像変形の画像処理を、容易に、かつ効率的に実現することができる。
上記画像処理装置において、さらに、複数の所定の変形タイプの内の1つを選択して前記変形領域内の画像の変形に適用する変形タイプとして設定する変形態様設定部を備え、前記変形領域分割部は、前記設定された変形タイプに対応付けられた所定の配置パターンに従い前記複数の分割点を配置するとしてもよい。
このようにすれば、例えば顔をシャープする変形タイプや目を大きくする変形タイプ等、それぞれの変形タイプに適した分割点の配置、すなわち変形領域の分割が行われるため、各変形タイプに対応した画像変形のための画像処理のさらなる容易化を実現することができる。
また、上記画像処理装置において、前記変形態様設定部は、複数の所定の変形度合いの内の1つを選択して前記変形領域内の画像の変形に適用する変形度合いとして設定し、前記変形処理部は、前記設定された変形タイプと変形度合いとの組み合わせに対応付けられた所定の移動方向および移動量に従い前記分割点の位置を移動するとしてもよい。
このようにすれば、変形タイプと変形度合いとが設定されれば、それらの組み合わせに応じた画像変形が実行されるため、画像変形のための画像処理のさらなる容易化を実現することができる。
また、上記画像処理装置において、前記変形態様設定部は、少なくとも1つの前記分割点について、前記分割点の移動方向および移動量に関するユーザ指定を取得する指定取得部を含み、前記変形処理部は、前記取得されたユーザ指定に従い前記分割点の位置を移動するとしてもよい。
このようにすれば、よりユーザの希望に近い態様での画像変形のための画像処理を容易に実現することができる。
また、上記画像処理装置において、前記変形領域設定部は、前記変形領域に顔の少なくとも一部の画像が含まれるように前記変形領域を設定するとしてもよい。
このようにすれば、顔の画像を対象として、多様な変形態様に対応した画像変形のための画像処理を、容易に、かつ効率的に実現することができる。
また、上記画像処理装置において、前記変形領域分割部は、少なくとも1組の前記分割点が所定の基準線に対して互いに対称の位置に配置されるように、前記複数の分割点を配置し、前記変形処理部は、前記少なくとも1組の分割点を、前記所定の基準線に対して互いに対称である位置関係を維持したまま移動するとしてもよい。
このようにすれば、所定の基準線に対して左右対称な画像変形が行われることとなり、より自然で好ましい顔画像の画像変形のための画像処理を実現することができる。
また、上記画像処理装置において、前記変形処理部は、少なくとも1つの前記小領域について、変形を行わないとしてもよい。
このようにすれば、顔の印象を大きく変更することなく所望の画像変形を行うことが可能となり、より自然で好ましい顔画像の画像変形のための画像処理を実現することができる。
また、上記画像処理装置において、前記変形処理部は、目の画像を含む前記小領域について、変形を行わないとしてもよい。
このようにすれば、目の画像を含む小領域については変形を行わないものとすることにより、より自然で好ましい顔画像の画像変形のための画像処理を実現することができる。
また、上記画像処理装置において、さらに、前記対象画像上の顔の画像を表す顔領域を検出する顔領域検出部を備え、前記変形領域設定部は、検出された前記顔領域に基づき前記変形領域を設定するとしてもよい。
このようにすれば、対象画像から検出された顔領域に基づき設定された変形領域の画像変形について、多様な変形態様に対応した画像変形のための画像処理を、容易に、かつ効率的に実現することができる。
また、上記画像処理装置において、さらに、前記変形領域内の画像の変形が行われた前記対象画像を印刷する印刷部を備えるとしてもよい。
このようにすれば、多様な変形態様に対応した画像変形後の画像の印刷を、容易に、かつ効率的に実現することができる。