(58)【調査した分野】(Int.Cl.,DB名)
前記部分領域抽出部は、さらに、前記選択済みテンプレート画像が前記第2種の領域を含み、かつ、前記原画像から前記顔領域が特定されない場合に、前記原画像から、所定サイズを有する第2の部分領域を抽出し、
前記合成部は、さらに、前記選択済みテンプレート画像が前記第2種の領域を含み、かつ、前記原画像から前記顔領域が特定されない場合に、前記原画像データのうちの前記第2の部分領域を表わす第2の部分領域データを用いて得られる第2の対象データと、前記選択済みテンプレートデータと、を合成するための前記画像処理を実行して、第2の処理済み画像を表わす第2の処理済み画像データを生成する、請求項1から6のいずれか一項に記載の画像処理装置。
前記生成部は、前記選択済みテンプレート画像が前記第1種の領域を含み、かつ、前記原画像から前記顔領域が特定されない場合に、前記画像処理を実行せずに、前記処理済み画像データを生成しない、請求項1から7のいずれか一項に画像処理装置。
前記部分領域抽出部は、前記選択済みテンプレート画像が前記第1種の領域を含み、かつ、前記原画像から複数個の前記顔領域が特定される場合に、前記原画像から、前記複数個の顔領域のうちの1個の顔領域を選択して、前記1個の顔領域の少なくとも一部を含む前記第1の部分領域を抽出する、請求項1から8のいずれか一項に記載の画像処理装置。
【発明を実施するための形態】
【0011】
(第1実施例)
(通信システム2の構成;
図1)
通信システム2は、サーバSRと、プリンタPRと、を備える。サーバSRとプリンタPRとは、インターネットを介して、相互に通信可能である。
【0012】
(サーバSRの構成)
サーバSRは、プリンタPRのベンダによってインターネット上に設置される。サーバSRは、プリンタPRから取得される指示に従った画像処理を実行して、処理済み画像データをプリンタPRに供給する。サーバSRは、ネットワークインターフェース20と、制御部30と、を備える。ネットワークインターフェース20は、図示省略のLANを介して、インターネットに接続される。
【0013】
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に格納されているプログラム36に従って、様々な処理を実行するプロセッサである。メモリ34は、RAM、ROM等によって構成される。メモリ34は、プログラム36のみならず、テンプレート情報38を予め格納している。なお、以下では、テンプレートのことを「TP」と記載する。
【0014】
TP情報38は、複数個のTPデータ41〜43を含む。各TPデータ41〜43は、プリンタPRから取得される原画像データを用いて得られる対象データが合成されるべきデータである。また、TP情報38は、第1種のTPデータ41に対応付けられている第1の比情報41aと、第2種のTPデータ42に対応付けられている第2の比情報42aと、を含む。各比情報41a,42aは、原画像データによって表わされる原画像から部分領域が特定される際に利用される面積比を示す情報である。なお、第3種のTPデータ43には、比情報が対応付けられていない。
【0015】
第1種のTPデータ41によって表わされる第1種のTP画像TP1は、動物を模したオブジェクトを含むと共に、当該オブジェクト内に対象画像が合成されるべき円形の合成領域CA1を含む。合成領域CA1は、動物の顔の位置に相当する領域であり、原画像内のヒトの顔を示す対象画像が必ず合成されるべき領域である。従って、原画像内にヒトの顔が存在しない場合には、当該原画像が第1種のTP画像TP1に合成されない。
【0016】
第2種のTPデータ42によって表わされる第2種のTP画像TP2は、対象画像が合成されるべき矩形の合成領域CA2を含む。合成領域CA2は、合成領域CA1とは異なり、動物の顔の位置に相当する領域ではないので、原画像内のヒトの顔を示す対象画像が必ずしも合成されるべき領域でない。即ち、原画像内にヒトの顔が存在する場合には、ヒトの顔を示す対象画像が合成領域CA2に合成されるが、原画像内にヒトの顔が存在しない場合でも、原画像から得られる対象画像(例えば風景のみを示す画像)が合成領域CA2に合成される。
【0017】
第3種のTPデータ43によって表わされる第3種のTP画像TP3は、対象画像が合成されるべき矩形の合成領域CA3を含む。合成領域CA3は、合成領域CA2よりも大きく、原画像内のヒトの顔を示す対象画像が必ずしも合成されるべき領域でない。
【0018】
(サーバのメイン処理;
図2)
続いて、
図2を参照して、サーバSRのCPU32が実行するメイン処理の内容について説明する。メイン処理は、サーバSRの電源がONされることをトリガとして実行される。
【0019】
S2では、サーバSRのCPU32は、プリンタPRからの要求に応じて、複数個のTPデータ41〜43に対応する複数個のサムネイルTP情報をプリンタPRに供給する。各サムネイルTP情報は、対応するTPデータから生成される縮小画像データであるサムネイルTPデータと、対応するTPデータを識別するためのTP識別情報(例えばID)と、を含む。
【0020】
プリンタPRは、サーバSRから複数個のサムネイルTP情報を取得すると、複数個のサムネイルTPデータによって表わされる複数個のサムネイルTP画像を含むTP選択画面を表示する。そして、プリンタPRは、複数個のサムネイルTP画像のうちの1個のサムネイルTP画像がユーザによって選択される場合に、選択済みサムネイルTP画像に対応するTP識別情報を含む選択結果情報をサーバSRに供給する。即ち、選択結果情報は、複数個のTPデータ41〜43のうちのいずれがユーザによって選択されたのかを示す。以下では、ユーザによって選択されたTPデータ、当該TPデータによって表わされるTP画像のことを、それぞれ、「選択済みTPデータ」、「選択済みTP画像」と呼ぶ。
【0021】
S4では、サーバSRのCPU32は、プリンタPRから選択結果情報を取得するまで待機する。そして、CPU32は、プリンタPRから選択結果情報を取得する場合(S4でYES)に、S6に進む。
【0022】
一方、プリンタPRは、さらに、例えば、プリンタPRに挿入されている外部メモリ(例えばUSBメモリ、カードメモリ等)内の1個以上の画像データに対応する1個以上のサムネイル画像を表示する。そして、プリンタPRは、1個以上のサムネイル画像のうちの1個のサムネイル画像がユーザによって選択される場合に、選択済みサムネイル画像に対応する画像データをサーバSRに供給する。以下では、当該画像データのことを「原画像データ」と呼ぶ。
【0023】
S6では、サーバSRのCPU32は、プリンタPRから原画像データを取得するまで待機する。そして、CPU32は、プリンタPRから原画像データを取得する場合(S6でYES)に、S8に進む。なお、
図2には、原画像データによって表わされる原画像OI1の一例が示されている。原画像OI1は、ヒトの顔を含む。
【0024】
S8では、サーバSRのCPU32は、S6で取得された原画像データに対して部分領域抽出処理(後述の
図3参照)を実行して、原画像から矩形の部分領域を抽出する。
図2の例では、原画像OI1からヒトの顔の一部を含む部分領域PA1が抽出される。
【0025】
次いで、S10では、CPU32は、まず、S6で取得された原画像データから、S8で抽出された部分領域を表わす部分領域データを取得する。そして、CPU32は、部分領域データを用いて得られる対象データと、S4で取得された選択結果情報によって示される選択済みTPデータと、を合成して、処理済み画像データを生成する。
図2の例では、選択済みTP画像が第1種のTP画像TP1であり、部分領域PA1に対応する対象画像が合成領域CA1に合成される。これにより、処理済み画像PI1を表わす処理済み画像データが生成される。
【0026】
次いで、S12では、CPU32は、S10で生成された処理済み画像データをプリンタPRに供給する。これにより、プリンタPRは、サーバSRから処理済み画像データを取得し、処理済み画像データによって表わされる処理済み画像の印刷を実行する。この結果、処理済み画像が印刷された印刷媒体をユーザに提供することができる。
【0027】
(部分領域抽出処理;
図3)
続いて、
図3を参照して、
図2のS8で実行される部分領域抽出処理の内容について説明する。S102では、CPU32は、
図2のS4で取得された選択結果情報内のTP識別情報を利用して、選択済みTPデータの種類を特定する。CPU32は、第1種のTPデータ41を特定する場合に、S104に進み、第2種のTPデータ42を特定する場合に、S114に進み、第3種のTPデータ43を特定する場合に、S122に進む。
【0028】
S104(S102で「第1種のTPデータ」)では、CPU32は、第1の顔領域特定処理(後述の
図4参照)を実行して、原画像から1個以上の矩形の顔領域を特定することを試行する。
【0029】
次いで、S106では、CPU32は、S104で特定された顔領域の個数を特定する。CPU32は、S104で1個の顔領域も特定することができなかった場合に、S108に進む。また、CPU32は、S104で2個以上の顔領域を特定した場合に、S110に進み、S104で1個の顔領域のみを特定した場合に、S110をスキップしてS112に進む。
【0030】
S108では、CPU32は、原画像データを利用した合成処理を実行不可能であることを示すエラー通知をプリンタPRに供給する。上述したように、第1種のTPデータ41によって表わされる第1種のTP画像TP1は、ヒトの顔を示す対象画像が必ず合成されるべき合成領域CA1を含む。S104で1個の顔領域も特定されない場合(S106で「0個」の場合)には、合成領域CA1にヒトの顔を示す対象画像を合成することができない。このために、CPU32は、エラー通知をプリンタPRに供給する。S108が終了すると、
図3の処理が終了し、
図2のS6に戻る。
【0031】
プリンタPRは、サーバSRからエラー通知を取得する場合に、プリンタPRに挿入されている外部メモリ内の1個以上の画像データに対応する1個以上のサムネイル画像を再表示する。これにより、ユーザは、前回に選択したサムネイル画像とは異なる1個のサムネイル画像を新たに選択することができる。プリンタPRは、ユーザによって新たに選択されたサムネイル画像に対応する画像データをサーバSRに供給する。この結果、サーバSRのCPU32は、プリンタPRから取得される当該画像データを新たな原画像データとして扱って、
図2のS8以降の処理を実行する。
【0032】
S110では、CPU32は、S104で特定された2個以上の顔領域のうち、最大の面積を有する1個の顔領域を選択する。ここで、「面積」は、顔領域を示す画素数に相当する。即ち、CPU32は、上記の2個以上の顔領域のそれぞれについて、当該顔領域を示す画素数を算出し、上記の2個以上の顔領域のうち、最大の画素数を有する1個の顔領域を選択する。これにより、最大の面積を有する顔領域に対応する対象画像が第1種のTP画像TP1内の合成領域CA1(
図1参照)に合成される(
図2のS10)。詳しくは後述するが、合成領域CA1の面積に対する顔領域の面積の比は一定となる。そのため、最大の面積を有する顔領域が選択される場合、処理済み画像では、顔領域に対応する対象画像は比較的高画質となる。このために、適切な処理済み画像をユーザに提供し得る。なお、以下でも、画像又は領域の「面積」という用語を利用する場合には、当該領域の画素数を意味する。
【0033】
S112では、CPU32は、第1種のTPデータ41に対応付けてメモリ34に格納されている第1の比情報41a(
図1参照)に従って、原画像から矩形の部分領域を抽出する。CPU32は、1個の顔領域のみを特定する場合(S106で「1個」)には、当該1個の顔領域に基づいて、原画像から部分領域を特定する。また、CPU32は、2個以上の顔領域を特定する場合(S106で「2個以上」)には、S110で選択された最大の面積を有する1個の顔領域に基づいて、原画像から部分領域を特定する。S112が終了すると、
図3の処理が終了し、
図2のS10に進む。
【0034】
また、S114(S102で「第2種のTPデータ」)では、CPU32は、第2の顔領域特定処理(後述の
図7参照)を実行して、原画像から1個以上の矩形の顔領域を特定することを試行する。
【0035】
次いで、S116では、CPU32は、S114で特定された顔領域の個数を特定する。CPU32は、S114で1個の顔領域も特定することができなかった場合、又は、2個以上の顔領域を特定した場合に、S122に進む。また、CPU32は、S114で1個の顔領域のみを特定した場合に、S120に進む。
【0036】
S120では、CPU32は、第2種のTPデータ42に対応付けてメモリ34に格納されている第2の比情報42a(
図1参照)に従って、1個の顔領域に基づいて、原画像から矩形の部分領域を抽出する。S120が終了すると、
図3の処理が終了し、
図2のS10に進む。
【0037】
上述したように、選択済みTPデータが第2種のTPデータ42である場合(S102で「第2種のTPデータ」)において、1個の顔領域も特定されない場合(S116で「0個」)、又は、2個以上の顔領域が特定される場合(S116で「2個以上」)に、S122が実行される。また、選択済みTPデータが第3種のTPデータ43である場合(S102で「第3種のTPデータ」)も、S122が実行される。S122では、CPU32は、選択済みTPデータ(即ち、第2種のTPデータ42又は第3種のTPデータ43)に応じて、原画像から部分領域を抽出する。S122が終了すると、
図3の処理が終了し、
図2のS10に進む。
【0038】
(第1の顔領域特定処理;
図4〜
図6)
続いて、
図4〜
図6を参照して、
図3のS104で実行される第1の顔領域特定処理の内容について説明する。
図4のS202では、CPU32は、原画像から1個以上の顔候補領域を特定することを試行する。具体的には、CPU32は、原画像から3×M(Mは1以上の整数)個の画素を一辺とする正方形の領域(以下では「正方形領域」と呼ぶ)を特定する。ここで、CPU32は、M=1を採用し、原画像の左上の頂点を含む正方形領域を最初に特定する。次いで、CPU32は、正方形領域が顔候補領域であるのか否かを判断する顔判断処理を実行して、正方形領域が顔候補領域であると判断する場合に、正方形領域を顔候補領域として特定する。顔判断処理の詳細については後述する。
【0039】
CPU32は、原画像内において正方形領域の位置を1画素ずつずらして、原画像内の各正方形領域について顔判断処理を実行する。CPU32は、M=1の場合に、原画像内の全ての正方形領域について顔判断処理を実行すると、Mの値を「1」だけインクリメントして、前回の正方形領域よりも大きい新たな正方形領域を特定する。そして、CPU32は、原画像内の新たな各正方形領域について顔判断処理を実行する。CPU32は、正方形領域を特定することができなくなるまでMの値をインクリメントして、顔判断処理を実行することを繰り返す。そして、CPU32は、正方形領域を特定することができなくなると、即ち、正方形領域の一辺が原画像の短辺の長さより大きくなると、S202を終了する。S202では、CPU32は、1個以上の顔候補領域を特定し得る。
【0040】
次いで、
図5を参照して、顔判断処理の内容について説明する。
図5は、原画像OI1内の1個の正方形領域SAを示す。CPU32は、まず、正方形領域SAを9個の注目領域OAに分割する。次いで、CPU32は、9個の注目領域OAのうちの1個の注目領域を特定する。CPU32は、特定済みの注目領域を構成する全ての画素のそれぞれについて、当該画素の画素値(即ち、R値、G値、B値)から輝度値Yを算出する。輝度値Yは、0.298912×R値+0.586611×G値+0.114478×B値によって得られる。なお、以下では、原画像OI1内において、座標(u,v)に位置する画素の輝度値をY(u,v)と記載する。
【0041】
次いで、CPU32は、特定済みの注目領域に含まれる全ての画素のそれぞれについて、式1に従って勾配強度m(u,v)を算出し、さらに、式2に従って勾配方向θ(u,v)を算出する。ただし、f
u(u,v)=Y(u+1,v)−Y(u−1,v)であると共に、f
v(u,v)=Y(u,v+1)−Y(u,v−1)である。また、勾配方向θ(u,v)は、0°以上180°未満である。
【0042】
次いで、CPU32は、特定済みの注目領域内の各画素の各輝度値の勾配方向ヒストグラムを生成する。具体的には、CPU32は、まず、各画素の勾配方向のそれぞれを、0〜160°のうちの20°間隔の9個の値(0,20,40・・・160°)のうちの最も近い値に変換する。例えば、ある画素の勾配方向が31°である場合には、当該画素の勾配方向が40°に変換される。この結果、特定済みの注目領域内の各画素が、勾配方向に基づいて9個のグループに分類される。そして、CPU32は、各グループに属する各画素の勾配強度の和を算出することによって、勾配方向ヒストグラムを生成する。
【0043】
次いで、CPU32は、勾配方向ヒストグラムを利用して、特定済みの注目領域のHOG(Histograms of Oriented Gradientsの略)特徴量V
1を算出する。勾配方向ヒストグラムにおいて、各勾配方向に対応する各勾配強度の和がm
0,m
20,m
40,m
60,m
80,m
100,m
120,m
140,m
160である場合に、HOG特徴量V
1は、(m
0,m
20,m
40,m
60,m
80,m
100,m
120,m
140,m
160)で表現される。
【0044】
また、CPU32は、9個の注目領域OAのうちの他の1個の注目領域を新たに特定し、特定済みの新たな注目領域について、HOG特徴量を同様に算出する。これにより、CPU32は、1個の正方形領域内の9個の注目領域OAに対応する9個のHOG特徴量V
1〜V
9を算出する。そして、CPU32は、AdaBoost(Adaptive Boostingの略)と呼ばれる機械学習アルゴリズムによって取得される強識別器に9個のHOG特徴量V
1〜V
9を入力し、出力値を取得する。CPU32は、出力値が所定値Th1以上である場合に、正方形領域SAが顔候補領域であると判断し、出力値が所定値Th1未満である場合に、正方形領域SAが顔候補領域でないと判断する。なお、変形例では、CPU32は、HOG特徴量とは異なる指標値を利用して、顔候補領域を特定してもよい。即ち、例えば、CPU32は、SIFT(Scale-invariant Feature Transformの略)特徴量、PCA(Principal Component Analysisの略)−SIFT特徴量、BSIFT(Background and Scale-invariant Feature Transformの略)特徴量等の指標値を利用して顔候補領域を特定してもよい。
【0045】
上記のように、CPU32は、原画像内の正方形領域SAが顔候補領域であるのか否かを判断することができ、この結果、原画像から1個以上の顔候補領域を特定し得る。
図6には、ヒトの顔を示す領域を含む原画像OI2から2個の顔候補領域FC1,FC2が特定される例が示されている。
【0046】
図4のS204では、CPU32は、S202で1個以上の顔候補領域を特定したのか否かを判断する。CPU32は、S202で1個以上の顔候補領域を特定した場合(S204でYES)に、S206に進む。一方において、CPU32は、S202で1個の顔候補領域も特定することができなかった場合(S204でNO)に、S206以降の処理を実行せずに、
図4の処理を終了する。この場合、1個の顔領域も特定することができないので(
図4のS212が実行されないので)、
図3のS106で「0個」と判断される。
【0047】
S206では、CPU32は、1組以上の重複候補領域群を特定することを試行する。ここで、S206の「1組の重複候補領域群」は、重複する2個以上の顔候補領域を意味する。例えば、1個の顔候補領域が他のいずれの顔候補領域にも重複していない場合には、当該1個の顔候補領域は、重複候補領域群として特定されない。また、例えば、3個の顔候補領域が互いに重複している場合には、当該3個の顔候補領域が1組の重複候補領域群として特定される。
図6の例では、2個の顔候補領域FC1,FC2が重複しているので、2個の顔候補領域FC1,FC2が1組の重複候補領域群として特定される。
【0048】
S208では、CPU32は、1組以上の重複候補領域群を特定することができたのか否かを判断する。CPU32は、1組以上の重複候補領域群を特定することができた場合に、S210に進む。一方において、CPU32は、1組の重複候補領域群も特定することができなかった場合に、S210以降の処理を実行せずに、
図4の処理を終了する。この場合、1個の顔領域も特定することができないので(
図4のS212が実行されないので)、
図3のS106で「0個」と判断される。
【0049】
S210では、CPU32は、S208で特定された1組以上の重複候補領域群を利用して、1個以上の中間領域を特定する。具体的には、CPU32は、1組以上の重複領域候補群のうちの1組の重複候補領域群を選択し、選択済みの1組の重複候補領域群に含まれる2個以上の顔候補領域のそれぞれについて、左上の頂点の座標を特定する。そして、CPU32は、2個以上の左上の頂点の座標の平均値を算出し、算出済みの平均値の座標を中間領域の左上の頂点の座標として特定する。例えば、
図6の例では、CPU32は、座標P1と座標P2を利用して、中間領域の左上の頂点の座標PMを特定する。同様に、CPU32は、中間領域の右上、左下、及び、右下の各頂点の各座標を特定する。これにより、CPU32は、1組の重複候補領域群から1個の中間領域MA1を特定することができる。同様に、CPU32は、他の1組の重複候補領域群が存在する場合には、当該他の重複候補領域群から1個の中間領域を特定する。これにより、CPU32は、1個以上の中間領域を特定する。
【0050】
図4のS212では、CPU32は、S210で特定された1個以上の中間領域を1個以上の顔領域として特定する。
図6の例では、中間領域MA1が顔領域FA1として特定される。S212が終了すると、
図4の処理が終了する。この場合、1個以上の顔領域が特定されるので、
図3のS106で「1個」又は「2個以上」と判断される。上述したように、1個の顔領域のみが特定される場合(S106で「1個」)には、S112において、当該1個の顔領域に基づいて、原画像から部分領域が特定される。また、2個以上の顔領域が特定される場合(S106で「2個以上」)には、S110において、最大の面積を有する1個の顔領域が選択され、S112において、当該1個の顔領域に基づいて、原画像から部分領域が特定される。原画像から部分領域を特定するためのS112の処理の詳細について、次に説明する。
【0051】
図6に示されるように、原画像OI2から1個の顔領域FA1のみが特定される(
図3のS106で「1個」)。S112では、CPU32は、第1のTPデータ41に対応付けられている第1の比情報41a(
図1参照)に従って、原画像OI2から部分領域PA2を抽出する。具体的には、CPU32は、原画像OI2から、以下の条件(1)〜(3)を満たす部分領域PA2を抽出する。条件(1)では、部分領域PA2の面積は、顔領域FA1の面積と第1の比情報41aとによって決定される面積である。第1の比情報41aは、決定されるべき部分領域の面積に対する顔領域の面積の比(例えば「1.3/1」)である。例えば、顔領域FA1の面積が130画素であり、かつ、第1の比情報41aが「1.3/1」を示す場合には、部分領域PA2の面積は、100画素である。ここで、第1の比情報41aは、部分領域PA2の面積が顔領域FA1の面積よりも小さくなる面積比を示す。このように、部分領域PA2の面積が顔領域FA1の面積よりも小さくなると、部分領域PA2を用いて得られる対象画像が第1種のTP画像TP1内の合成領域CA1(
図1参照)に合成される場合に、合成領域CA1内において顔の各パーツ(目、鼻、口等)が大きくなる。この結果、適切な処理済み画像をユーザに提供することができる。条件(2)では、部分領域PA2の重心は、顔領域FA1の重心に一致する。条件(3)では、部分領域PA2のアスペクト比は、第1種のTP画像TP1内の円形の合成領域CA1(
図1参照)に外接する矩形(即ち正方形)のアクペクト比に等しい。即ち、部分領域PA2は、正方形の領域である。なお、条件(1)で部分領域PA2の面積として正方形に適合しない面積(例えば90画素等)が算出される場合には、算出済みの面積よりも大きい面積であって、正方形に適合する最も小さい面積(例えば100画素)が採用される。S112で部分領域PA2が抽出されると、
図2のS10で合成処理が実行される。当該合成処理の内容について、次に説明する。
【0052】
CPU32は、まず、原画像データから、部分領域PA2を表わす部分領域データを取得する。次いで、CPU32は、部分領域データのサイズを変更して、変更済み画像を表わす変更済み画像データを生成する。具体的には、CPU32は、部分領域データを単純拡大又は単純縮小して、第1種のTP画像TP1内の円形の合成領域CA1に外接する矩形に一致するサイズを有する変更済み画像を表わす変更済み画像データを生成する。ここで、単純拡大又は単純縮小は、部分領域PA2を対角線方向に拡大又は縮小することを意味する。そして、CPU32は、変更済み画像データを用いて得られる対象データを第1種のTPデータ41に合成して、処理済み画像PI2を表わす処理済み画像データを生成する。当該対象データは、変更済み画像データのうち、変更済み画像の矩形に内接する円形の対象画像TI1を表わすデータである。CPU32は、第1種のTP画像TP1内の合成領域CA1を構成する各画素の画素値を、上記の対象画像TI1を構成する各画素の各画素値に置換することによって、上記の合成処理を実行する。
【0053】
(第2の顔領域特定処理;
図7〜
図10)
続いて、
図7〜
図10を参照して、
図3のS114で実行される第2の顔領域特定処理の内容について説明する。S302,S304は、それぞれ、
図4のS202,S204と同様である。
図9の例では、3個の顔を含む原画像OI3から、12個の顔候補領域FC3〜FC14が特定されるので、S304でYESと判断される。
【0054】
S306では、CPU32は、1組以上の重複候補領域群を特定することを試行する。ここで、上述したように、
図4のS206の「1組の重複候補領域群」が重複する2個以上の顔候補領域を意味するのに対し、S306の「1組の重複候補領域群」は、重複する5個以上の顔候補領域を意味する。これは、
図4のS206では重複候補領域群が特定され易く、S306では重複候補領域群が特定され難いことを意味する。その理由は、以下のとおりである。即ち、本実施例では、第1種のTP画像TP1内の合成領域CA1(
図1参照)には、顔を示す対象画像が必ず合成される必要がある。従って、
図4の第1の顔領域特定処理のS206では、重複候補領域群を特定するための基準が緩くなっており、この結果、顔領域が特定され易くなっている。一方、第2種のTP画像TP2内の合成領域CA2(
図1参照)には、顔を示す対象画像が必ずしも合成される必要がない。従って、正確に顔領域を特定することを目的として、S306では、重複候補領域群を特定するための基準が厳しくなっている。
図9の例では、5個の顔候補領域FC3〜FC7が1組の重複候補領域群として特定されると共に、5個の顔候補領域群FC10〜FC14が1組の重複候補領域群として特定される。なお、2個の顔候補領域FC8,FC9は、5個以上の顔候補領域が重複しないので、重複候補領域群として特定されない。例えば、帽子をかぶっているヒトの顔、眼鏡をかけているヒトの顔等は、顔候補領域として特定され難い。従って、
図9に示されるように、帽子をかぶっているヒトの顔を示す2個の顔候補領域FC8,FC9は、ヒトの顔を示す領域であるにも関わらず、重複候補領域群として特定されない。
【0055】
S308は、
図4のS208と同様である。
図9の例では、2組の重複候補領域群が特定されるので、S308でYESと判断される。また、S310は、
図4のS210と同様である。
図9の例では、2組の重複候補領域群から2個の中間領域MA2,MA3が特定される。
【0056】
S312では、CPU32は、S310で特定された1個以上の中間領域の中に1個以上の対象中間領域が存在するのか否かを判断する。対象中間領域は、原画像の面積に対する面積の比が所定値Th2よりも大きい中間領域である。
図9の例では、原画像OI3の面積に対する中間領域MA2の面積の比は、所定値Th2よりも大きくなるので中間領域MA2は対象中間領域である。一方において、原画像OI3の面積に対する中間領域MA3の面積の比は、所定値Th2以下であるので、中間領域MA3は対象中間領域ではない。この結果、中間領域MA3は、顔領域として特定されず、中間領域MA3を示す画像が、第2種のTP画像TP2内の合成領域CA2(
図1参照)に合成されない。これにより、比較的に小さい顔を示す画像が合成されるのを抑制することができ、この結果、適切な処理済み画像をユーザに提供することができる。なお、第2種のTP画像TP2内の合成領域CA2には、顔を示す対象画像が必ずしも合成される必要がないため、比較的に小さい顔を示す画像が特定されなくてもよい。
【0057】
CPU32は、1個以上の対象中間領域が存在すると判断する場合(S312でYES)に、S314において、当該1個以上の対象中間領域を1個以上の顔領域として特定する。
図9の例では、中間領域MA2が顔領域FA2として特定される。次いで、
図8のS316に進む。一方において、CPU32は、1個の対象中間領域も存在しないと判断する場合(S312でNO)に、顔領域を特定することなく(即ちS314を実行せずに)、
図8のS316に進む。
【0058】
図8のS316では、CPU32は、
図7の各処理で1個以上の顔領域を特定したのか否かを判断する。CPU32は、1個の顔領域も特定することができなかった場合(S316でNO)に、
図8の処理を終了する。この場合、
図3のS116で「0個」と判断され、S122に進む。一方において、CPU32は、1個以上の顔領域を特定した場合(S316でYES)に、S318に進む。S318以降では、特定済みの顔領域の周辺に他の顔領域が存在するのか否かが判断される。例えば、
図9に示されるように、S314では、左側のヒトの顔を示す顔領域FA2が特定されるが、その顔領域FA2の周辺に他の顔領域(即ち中央のヒトの顔を示す顔領域)が存在する。このような状況では、ユーザは、左側のヒトの顔と中央のヒトの顔との双方を示す対象画像が合成されることを望む可能性が高い。このために、中央のヒトの顔を特定するためにS318以降が実行される。
【0059】
S318は、
図4のS206と同様である。即ち、「1組の重複候補領域群」は、重複する2個以上の顔候補領域を意味し、
図7のS306よりも重複候補領域群を特定するための基準が緩い。なお、S318では、CPU32は、
図7のS306で特定済みの重複候補領域群と同一の重複候補領域群を再び特定しない。
図9の例では、S318において、2個の顔候補領域FC8,9が1組の重複領域群として特定される。
【0060】
S319では、CPU32は、S318で1組以上の重複候補領域群を特定することができたか否かを判断する。CPU32は、1組以上の重複候補領域群を特定することができた場合(S319でYES)に、S320に進む。S320は、
図4のS210と同様である。
図9の例では、1個の中間領域MA4が特定される。一方において、CPU32は、S318で1組の重複候補領域群も特定することができなかった場合(S319でNO)に、
図8の処理を終了する。
【0061】
S322では、CPU32は、S320で特定された1個以上の中間領域の中に1個以上の重複中間領域が存在するのか否かを判断する。重複中間領域は、
図7のS314で特定された1個以上の顔領域の1個以上の周辺領域に重複する中間領域である。具体的には、CPU32は、
図7のS314で特定された1個以上の顔領域のそれぞれについて、以下の条件(4)〜(6)を満たす周辺領域を特定する。条件(4)では、周辺領域の面積は、顔領域の面積を所定の倍率だけ拡大した面積である。条件(5)では、周辺領域の重心は、顔領域の重心に一致する。条件(6)では、周辺領域のアスペクト比は、顔領域のアスペクト比に等しい。
図9の例では、顔領域FA2に対応する周辺領域NAが特定される。次いで、CPU32は、S320で特定された1個以上の中間領域のうち、1個以上の周辺領域のいずれかに重複する中間領域が存在する場合に、当該中間領域を重複中間領域として特定する。
図9の例では、周辺領域NAに中間領域MA4が重複するので、中間領域MA4が重複中間領域として特定される。
【0062】
S324では、CPU32は、S322で特定された1個以上の重複中間領域の中に1個以上の対象中間領域が存在するのか否かを判断する。ここでの判断は、
図7のS312と同様である。
図9の例では、原画像OI3の面積に対する重複中間領域MA4の面積の比は、所定値Th2よりも大きいので、重複中間領域MA4が対象中間領域として特定される。
【0063】
CPU32は、1個以上の対象中間領域が存在すると判断する場合(S324でYES)に、S326において、当該1個以上の対象中間領域を1個以上の顔領域として特定する。
図9の例では、中間領域MA4が顔領域FA3として特定される。即ち、
図7のS314で顔領域FA2が特定され、
図8のS326で顔領域FA3が特定され、結果として、2個の顔領域FA2,FA3が特定される。CPU32は、S326を終えると、
図8の処理を終了する。この場合、2個以上の顔領域が特定されるので、
図3のS116で「2個以上」と判断されてS122が実行される。一方において、CPU32は、1個の対象中間領域も存在しないと判断する場合(S324でNO)に、顔領域を特定することなく、
図8の処理を終了する。この場合、1個以上の顔領域が特定されるので、
図3のS116で「1個」と判断されてS120が実行されるか、S116で「2個以上」と判断されてS122が実行される。
【0064】
続いて、
図3のS120において、1個の顔領域に基づいて、原画像から部分領域を特定する処理の内容を説明する。例えば、
図7及び
図8の処理において、
図9の原画像OI3から、1個の顔領域FA2のみが特定される状況(即ち、
図9の顔領域FA3が特定されない状況)を想定する。この場合、
図10に示されるように、S120では、CPU32は、第2のTPデータ42に対応付けられている第2の比情報42a(
図1参照)に従って、原画像OI3から部分領域PA3を抽出する。具体的には、CPU32は、原画像OI3から、以下の条件(7)〜(9)を満たす部分領域PA3を抽出する。条件(7)では、部分領域PA3の面積は、顔領域FA2と第2の比情報42aとによって決定される面積である。第1の比情報42aは、決定されるべき部分領域の面積に対する顔領域の面積の比(例えば「0.4/1」)である。ここで、第2の比情報42aは、部分領域PA3の面積が顔領域FA2の面積よりも大きくなる面積比を示す。このように、部分領域PA3の面積が顔領域FA2の面積よりも大きくなると、第2種のTP画像TP2内の合成領域CA2(
図1参照)に部分領域PA3に基づく対象画像が合成される場合に、合成領域CA2内に顎、耳等を含む顔の全体が含まれることになる。この結果、適切な処理済み画像をユーザに提供することができる。条件(8)では、部分領域PA3の重心は、顔領域FA2の重心に一致する。条件(9)では、部分領域PA3のアスペクト比は、第2種のTP画像TP2内の合成領域CA2(
図1参照)のアクペクト比に等しい。S122で部分領域PA3が抽出されると、
図2のS10で合成処理が実行される。当該合成処理の内容について、次に説明する。
【0065】
CPU32は、まず、原画像データから、部分領域PA3を表わす部分領域データを取得する。次いで、CPU32は、部分領域データを単純拡大又は単純縮小して、第2種のTP画像TP2内の矩形の合成領域CA2のサイズに一致するサイズを有する対象画像TI2を表わす対象データを生成する。そして、CPU32は、対象データを第2種のTPデータ42に合成して、処理済み画像PI3を表わす処理済み画像データを生成する。CPU32は、第2種のTP画像TP2内の合成領域CA2を構成する各画素の画素値を、上記の対象画像TI2を構成する各画素の各画素値に置換することによって、上記の合成処理を実行する。
【0066】
続いて、
図3のS116で「2個以上」と判断されて実行されるS122の処理の内容を説明する。
図10に示されるように、原画像OI3から2個の顔領域FA2,FA3が特定される状況を想定する。この場合、S122では、CPU32は、第2のTPデータ42に従って、原画像OI3から部分領域PA4を抽出する。具体的には、CPU32は、原画像OI3から、以下の条件(10)〜(12)を満たす部分領域PA4を抽出する。条件(10)では、部分領域PA4のアスペクト比は、合成領域CA2のアスペクト比に一致する。条件(11)では、部分領域PA4の重心は、原画像OI3の重心に一致する。条件(12)では、部分領域PA4は、原画像OI3に内接する。これにより、CPU32は、合成領域CA2のアスペクト比に一致するという条件(10)の下で、最大の面積を有する部分領域PA4を抽出することができる。この結果、部分領域PA4は、原画像OI3に含まれる比較的多くのオブジェクト(即ち2人のヒト)を含み得る。このために、第2種のTP画像TP2内の合成領域CA2(
図1参照)に部分領域PA4に基づく対象画像が合成される場合に、合成領域CA2内に比較的多くのオブジェクトが含まれることになる。この結果、適切な処理済み画像をユーザに提供することができる。S122で部分領域PA4が抽出されると、上記と同様に、
図2のS10の合成処理が実行される。即ち、部分領域PA4が単純縮小された対象画像TI3が合成領域CA2に合成されて、処理済み画像PI4を表わす処理済み画像データが生成される。
【0067】
(第3種のTPデータ43が選択される場合;
図11)
続いて、
図11を参照して、選択済みTPデータが第3種のTPデータ43であるケース(
図3のS102で「第3種のTPデータ」)を説明する。選択済みTPデータが第3種のTPデータ43である場合には、S122が実行される。この場合、
図11の例では、CPU32は、
図6の原画像OI2と同じ原画像OI2から、顔候補領域及び顔領域を特定しない(即ちS104又はS114を実行しない)。CPU32は、第3種のTPデータ43に応じた上記の条件(10)〜(12)に従って、原画像OI2から部分領域PA5を抽出する(S122)。即ち、条件(10)では、部分領域PA5のアスペクト比は、第3種のTP画像TP3内の合成領域CA3のアスペクト比に一致する。条件(11)では、部分領域PA5の重心は、原画像OI2の重心に一致する。条件(12)では、部分領域PA5は、原画像OI2に内接する。S122で部分領域PA5が抽出されると、上記と同様に、
図2のS10の合成処理が実行される。即ち、部分領域PA5が単純縮小された対象画像TI4が合成領域CA3に合成されて、処理済み画像PI5を表わす処理済み画像データが生成される。
【0068】
(同じ原画像に対して異なるTPデータが選択される具体例;
図12)
図12は、ヒトの顔を含む原画像OI2に対して各TPデータ41〜43が選択される様子を示す。選択済みTPデータが第1種のTPデータ41である場合(
図3のS102で「第1種のTPデータ」)には、
図6を参照して説明したように、原画像OI2から2個の顔候補領域FC1,FC2が特定され(
図4のS202)、この結果、原画像OI2から1個の顔領域FA1が特定される(S212)。次いで、原画像OI2から、顔領域FA1の少なくとも一部を含む部分領域PA2が抽出される(
図3のS112)。そして、部分領域PA2のうちの円形の対象画像TI1が第1種のTP画像TP1内の合成領域CA1に合成され、処理済み画像PI2が生成される(
図2のS10)。
【0069】
また、選択済みTPデータが第2種のTPデータ42である場合(
図3のS102で「第2種のTPデータ」)には、原画像OI2から2個の顔候補領域FC1,FC2が特定されるが(
図7のS302)、5個以上の顔候補領域が重複しないので(S306参照)、顔領域が特定されない(S308でNO)。従って、原画像OI2から、第2種のTPデータ42に応じた部分領域PA7が抽出される(
図3のS122)。そして、部分領域PA7が単純縮小された対象画像TI6が第2種のTP画像TP2内の合成領域CA2に合成され、処理済み画像PI7が生成される(
図2のS10)。このように、原画像が同じであっても、選択済みTPデータが第1種のTPデータ41である場合では、顔領域が特定され、選択済みTPデータが第2種のTPデータ42である場合では、顔領域が特定されない。
【0070】
また、選択済みTPデータが第3種のTPデータ43である場合(
図3のS102で「第3種のTPデータ」)には、
図11を参照して説明したように、原画像OI2から顔候補領域及び顔領域が特定されない(
図3のS104又はS114が実行されない)。従って、原画像OI2から、第3種のTPデータ43に応じた部分領域PA5が抽出される(
図3のS122)。そして、部分領域PA5が単純縮小された対象画像TI4が第3種のTP画像TP3内の合成領域CA3に合成され、処理済み画像PI5が生成される(
図2のS10)。
【0071】
(同じ原画像に対して異なるTPデータが選択される具体例;
図13)
図13は、ヒトの顔を含まない原画像OI4に対して各TPデータ41〜43が選択される様子を示す。選択済みTPデータが第1種のTPデータ41である場合(
図3のS102で「第1種のTPデータ」)には、原画像OI4から顔候補領域及び顔領域が特定されない(
図4のS204でNO、
図3のS106で「0個」)。このために、エラー通知がプリンタPRに供給され(S108)、原画像OI4を利用した合成処理が実行されない。
【0072】
また、選択済みTPデータが第2種のTPデータ42である場合(
図3のS102で「第2種のTPデータ」)には、原画像OI4から顔候補領域及び顔領域が特定されない(
図7のS304でNO、S316でNO,
図3のS116で「0個」)。従って、原画像OI4から、第2種のTPデータ42に応じた部分領域PA8が抽出される(
図3のS122)。そして、部分領域PA8が単純縮小された対象画像TI7が第2種のTP画像TP2内の合成領域CA2に合成され、処理済み画像PI8が生成される(
図2のS10)。
【0073】
また、選択済みTPデータが第3種のTPデータ43である場合(
図3のS102で「第3種のTPデータ」)には、原画像OI4から顔候補領域及び顔領域が特定されない(
図3のS104又はS114が実行されない)。従って、原画像OI4から、第3種のTPデータ43に応じた部分領域PA9が抽出される(
図3のS122)。そして、部分領域PA9が単純縮小された対象画像TI8が第3種のTP画像TP3内の合成領域CA3に合成され、処理済み画像PI9が生成される(
図2のS10)。
【0074】
上述したように、サーバSRは、選択済みテンプレート画像が合成領域CA1を含む場合に、
図4の第1の顔領域特定処理で顔領域を特定するための条件を満たす顔領域を原画像から特定することを試行する。一方において、サーバSRは、選択済みテンプレート画像が合成領域CA2を含む場合に、上記の条件とは異なる、
図7及び
図8の第2の顔領域特定処理で顔領域を特定するための条件を満たす顔領域を原画像から特定することを試行する。このように、サーバSRは、原画像から顔領域を特定するための条件を選択済みテンプレートデータに応じて変えるという新規な手法を採用している。そして、サーバSRは、原画像から顔領域が特定される場合に、当該顔領域の少なくとも一部を含む部分領域を抽出する。即ち、サーバSRは、新規な手法を利用して、原画像から選択済みテンプレートデータに応じた部分領域を抽出する。この結果、サーバSRは、原画像データのうち、抽出済みの部分領域を表わす部分領域データを用いて得られる対象データと、選択済みテンプレートデータと、を合成して、処理済み画像データを適切に生成し得る。
【0075】
また、上述したように、サーバSRは、選択済みテンプレート画像が合成領域CA1を含み、かつ、原画像から顔領域が特定される場合に、顔領域と部分領域との面積比が第1の比情報41aの値に一致するように、原画像から部分領域を抽出する。一方において、サーバSRは、選択済みテンプレート画像が合成領域CA2を含み、かつ、原画像から顔領域が特定される場合に、顔領域と部分領域との面積比が第1の比情報41aの値とは異なる第2の比情報42aの値に一致するように、原画像から部分領域を抽出する。このように、サーバSRは、原画像から部分領域を抽出する際に、選択済みテンプレートデータに応じた面積比を利用するという新規な手法を採用している。この結果、サーバSRは、原画像データのうち、抽出済みの部分領域を表わす部分領域データを用いて得られる対象データと、選択済みテンプレートデータと、を合成して、処理済み画像データを適切に生成し得る。
【0076】
(対応関係)
プリンタPRが、「画像処理装置」の一例である。合成領域CA1、合成領域CA2が、それぞれ、「第1種の領域」、「第2種の領域」の一例である。部分領域PA2が、「第1の部分領域」の一例である。部分領域PA7,PA8が、「第2の部分領域」の一例である。
図4の第1の顔領域特定処理で顔領域を特定するための条件(即ちS202〜S212)が、「第1の条件」の一例である。
図7及び
図8の第2の顔領域特定処理で顔領域を特定するための条件(即ちS302〜S326)が、「第2の条件」の一例である。複数個のTPデータ41〜43が、「複数個のテンプレートデータ」の一例である。第1の比情報41aによって示される比、第2の比情報42aによって示される比が、それぞれ、「第1の比」、「第2の比」の一例である。
図3のS116を経て実行されるS122で抽出される部分領域のサイズが「所定のサイズ」の一例である。
図7のS312及びS324のTh2が、「所定値」の一例である。
【0077】
図2のS4の処理、S6の処理、S10の処理が、それぞれ、「選択結果情報取得部」、「原画像データ取得部」、「合成部」によって実行される処理の一例である。
図3のS104,S114の処理が、「特定試行部」によって実行される処理の一例である。S112,S120,S122の処理が、「部分領域抽出部」によって実行される処理の一例である。
【0078】
(第2実施例;
図14)
本実施例では、CPU32は、
図3のS116で顔領域の個数が「1個」であると判断する場合に、S118の比情報変更処理を実行する。比情報変更処理は、第2の比情報42aに従って部分領域を抽出するのが不適切である場合に、第2の比情報42aの値を変更するための処理である。
【0079】
図14を参照して、比情報変更処理の内容を説明する。S402では、CPU32は、拡縮率Rが所定値Th3よりも大きいのか否かを判断する。具体的には、まず、CPU32は、
図3のS114で特定された1個の顔領域の面積と第2の比情報42aとを利用して、候補部分領域の面積を算出する。例えば、
図14の原画像OI5内の顔領域FA4の面積が40画素であり、メモリ34内の第2の比情報42aが「0.4/1」を示す場合には、候補部分領域CPAの面積は100画素である。次いで、CPU32は、第2種のTP画像TP2内の合成領域CA2の面積を候補部分領域CPAの面積(例えば100画素)で除算することによって、拡縮率Rを算出する。即ち、拡縮率Rは、合成領域CA2に対象画像を合成するために、候補部分領域CPAをどれだけ拡大又は縮小すべきかを示す値である。そして、CPU32は、拡縮率Rが所定値Th3よりも大きいと判断する場合(S402でYES)、即ち、候補部分領域CPAを比較的大きく拡大すべき場合に、S404に進む。一方において、CPU32は、拡縮率Rが所定値Th3未満であると判断する場合(S402でNO)、即ち、候補部分領域CPAを大きく拡大せずに済む場合に、S404を実行せずに、
図14の処理を終了する。この場合、メモリ34内の第2の比情報42aに従って、第1実施例の
図3のS120と同様に、部分領域が抽出される。
【0080】
S404では、CPU32は、メモリ34内の第2の比情報42aの値を変更する。具体的には、CPU32は、変更後の第2の比情報の値が、「(所定値Th3×顔領域FA4の面積)/合成領域CA2の面積」によって得られる値に一致するように、変更後の第2の比情報の値を算出する。即ち、変更後の第2の比情報の値は、拡縮率Rが所定値Th3に一致するように決定される。
【0081】
CPU32は、S404を経て
図14の処理を終了すると、
図3のS120において、変更後の第2の比情報に従って、原画像から部分領域を抽出する。
図14の例では、CPU32は、変更後の第2の比情報に従って、原画像OI5から部分領域PA10を抽出する。そして、CPU32は、部分領域PA10が拡大された対象画像TI9を第2種のTP画像TP2内の合成領域CA2に合成して、処理済み画像PI10を表わす処理済み画像データを生成する。
【0082】
(本実施例の効果)
仮に、
図14の候補部分領域CPAを拡大して合成領域CA2に合成する手法を採用すると、候補部分領域CPAを比較的に大きく拡大する必要があり、処理済み画像が低画質になる可能性がある。これに対し、本実施例では、S404で変更後の第2の比情報が算出されるので、変更後の第2の比情報に従って抽出される部分領域PA10の面積は、候補部分領域CPAの面積よりも大きくなる。このために、部分領域PA10をそれほど大きく拡大しなくても、部分領域PA10を用いて得られる対象画像TI9を合成領域CA2に合成することができる。この結果、処理済み画像PI10が低画質になるのを抑制することができる。なお、本実施例では、
図14のS404で算出される変更後の第2の比情報の値が、「第3の比」の一例である。S402の判断の基準が「所定の基準」の一例である。
【0083】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0084】
(変形例1)上記の各実施例では、
図4のS206の「1組の重複候補領域群」は、重複する2個以上の顔候補領域を意味し、
図7のS306の「1組の重複候補領域群」は、重複する5個以上の顔候補領域を意味する。ただし、これらの「2個」及び「5個」という数値は、後者の数値が前者の数値よりも大きければ、適宜変更可能である。一般的に言うと、「第1の条件」と「第2の条件」とが異なるものであればよい。
【0085】
(変形例2)上記の各実施例では、
図2のS12において、CPU32は、処理済み画像データをプリンタPRに供給するが、これに代えて、例えば、サーバSRの図示省略の表示部に処理済み画像を表示させてもよい。即ち、「出力部」が処理済み画像データを外部に出力することは、処理済み画像データをプリンタPRに供給することに限られない。
【0086】
(変形例3)上記の各実施例では、CPU32は、第1種のTPデータ41を特定する場合(
図3のS102で「第1種のTPデータ」)に、S104で第1の顔領域特定処理を実行する。一方において、CPU32は、第2種のTPデータ42を特定する場合(S102で「第2種のTPデータ」)に、S114で第2の顔領域特定処理を実行する。変形例では、第1の顔領域特定処理と第2の顔領域特定処理とは同一の処理であってもよい。即ち、「特定試行部」は、原画像から顔領域を特定することを試行すればよい。
【0087】
(変形例4)上記の各実施例では、CPU32は、第1種のTPデータ41を特定する場合(
図3のS102で「第1種のTPデータ」)に、S112で第1の比情報41aに従って、原画像から部分領域を抽出する。一方において、CPU32は、第2種のTPデータ42を特定する場合(S102で「第2種のTPデータ」)に、S120で第2の比情報42aに従って、原画像から部分領域を抽出する。変形例では、第1の比情報41aの値と第2の比情報42aの値とが同一の値であってもよい。即ち、「部分領域抽出部」は、原画像から顔領域が特定される場合に、原画像から、顔領域の少なくとも一部を含む部分領域を抽出すればよい。
【0088】
(変形例5)上記の各実施例では、第1種のTPデータ41は、1個の合成領域CA1を含む。変形例では、第1種のTPデータ41は、複数個の合成領域を含んでいてもよく、例えば、2個の合成領域CA1,CA2を含んでいてもよい。この場合、以下の処理が実行されてもよい。まず、CPU32は、第1種のTPデータ41を示す選択結果情報をプリンタPRから取得し(
図2のS4でYES)、2個の原画像を表わす2個の原画像データを取得する(S6でYES)。次いで、CPU32は、
図3のS104〜S112を実行することによって、2個の原画像のうちの第1の原画像から部分領域を抽出し、S114〜S120を実行することによって、2個の原画像のうちの第2の原画像から部分領域を抽出する。次いで、CPU32は、第1,2の原画像から抽出済みの2個の部分領域を表わす2個の部分領域データを用いて得られる2個の対象データと、第1種のTPデータ41と、を合成する(
図2のS10)。具体的には、CPU32は、第1の原画像に対応する対象画像が合成領域CA1に合成され、第2の原画像に対応する対象画像が合成領域CA2に合成されるように、各データを合成する。これにより、処理済み画像を表わす処理済み画像データが生成される。即ち、「複数個のテンプレートデータ」のうちの少なくとも1個のテンプレートデータによって表わされる少なくとも1個のテンプレート画像は、「第1種の領域」と「第2種の領域」と双方を含んでいてもよい。
【0089】
(変形例6)上記の第2実施例では、CPU32は、
図14のS402において、拡縮率Rが所定値Th3よりも大きいか否かを判断するが、これに代えて、例えば、原画像の長辺の長さが所定の長さよりも短いか否かを判断してもよい。CPU32は、原画像の長辺の長さが所定の長さよりも短いと判断する場合に、S404を実行し、原画像の長辺の長さが所定の長さ以上であると判断する場合に、S404を実行しなくてもよい。即ち、「所定の基準」は、S402の判断基準に限られない。
【0090】
(変形例7)
図7のS312と
図8のS324とは省略してもよい。即ち、「特定試行部」は、選択済みテンプレートデータが第2種の領域を含む場合に、小面積領域を顔領域として特定してもよい。
【0091】
(変形例8)
図8のS316〜S326は省略してもよい。即ち、
図3のS114の第2の顔領域特定処理では、CPU32は、
図7のS302〜S314のみを実行してもよい。
【0092】
(変形例9)上記の各実施例では、
図3のS116で「2個以上」と判断されて実行されるS122では、CPU32は、第2種のTPデータ42に応じて、部分領域を抽出する。即ち、CPU32は、上述した条件(10)〜(12)を満たす部分領域を抽出する。変形例では、CPU32は、条件(10)〜(12)のうち、部分領域が原画像に内接するという条件(12)に代えて、例えば、部分領域の面積が所定の面積以下となるという条件を満たす部分領域を抽出してもよい。即ち、「所定サイズ」はS122で決定されるサイズに限られない。
【0093】
(変形例10)上記の各実施例では、
図3のS110において、CPU32は、特定された2個以上の顔領域のうち、最大の面積を有する1個の顔領域を選択する。これに代えて、CPU32は、以下のように1個の顔領域を選択してもよい。即ち、CPU32は、2個以上の顔領域のそれぞれについて、当該顔領域に対応する1組の重複候補領域群(
図4のS206)を構成する顔候補領域の数を特定する。そして、CPU32は、2個以上の顔領域のうち、特定済みの顔候補領域の数が最も多い顔領域を選択してもよい。
【0094】
(変形例11)サーバSRのCPU32によって実行される
図2〜
図4、
図7、
図8、及び、
図14の各処理は、プリンタPRによって実行されてもよい。この場合、プリンタPRが「画像処理装置」である。また、「画像処理装置」は、例えば、PC等であってもよい。一般的に言うと、「画像処理装置」は、処理済み画像データを生成し、処理済み画像データを外部に出力可能なあらゆるデバイスを含む。
【0095】
(変形例12)上記の各実施例では、サーバSRのCPU32がプログラム(即ちソフトウェア)を実行することによって、
図2〜
図4、
図7、
図8、及び、
図14の各処理が実現される。これに代えて、
図2〜
図4、
図7、
図8、及び、
図14の各処理のうちの少なくとも1つの処理は、論理回路等のハードウェアによって実現されてもよい。
【0096】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。