(57)【要約】【課題】適切な合成画像を表す合成画像データを生成できる新たな技術を提供する。【解決手段】画像処理装置は、対象画像内の顔を表す顔領域を検出する検出部と、顔領域の検出結果に基づいて対象画像内の部分画像を特定する特定部と、部分画像をテンプレート画像内の特定領域に合成して、合成画像を表す合成画像データを生成する生成部と、を備える。１個の顔領域が検出された場合に、１個の顔領域を含み、１個の顔領域のサイズに基づいて決定されるサイズを有する第１の部分画像を特定し、複数個の顔領域が検出された場合に、少なくとも１個の顔領域を含み、テンプレート画像内の特定領域と相似な形状を有する対象画像内の最大のサイズの第２の部分画像を特定する。【選択図】  図６
2015041359.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
画像処理の対象である対象画像を表す対象画像データと、テンプレート画像を表すテンプレート画像データと、を取得する画像データ取得部と、
前記対象画像内の顔を表す顔領域を検出する検出部と、
前記顔領域の検出結果に基づいて前記対象画像内の部分画像を特定する特定部と、
特定された前記部分画像を前記テンプレート画像内の特定領域に合成して、合成画像を表す合成画像データを生成する生成部と、
を備え
前記特定部は、
前記対象画像内に１個の前記顔領域が検出された場合に、１個の前記顔領域を含み、１個の前記顔領域のサイズに基づいて決定されるサイズを有する画像である第１の部分画像を特定し、
前記対象画像内に複数個の前記顔領域が検出された場合に、少なくとも１個の前記顔領域を含み、前記テンプレート画像内の特定領域と相似な形状を有する前記対象画像内の最大のサイズの画像である第２の部分画像を特定する、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記特定部は、前記対象画像内に前記顔領域が検出されない場合には、前記特定領域と相似な形状を有する前記対象画像内の最大のサイズを有する前記部分画像を特定する、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、さらに、
前記対象画像内に複数個の前記顔領域が検出された場合に、前記対象画像が、検出された複数個の前記顔領域を含む領域であって、かつ、前記特定領域と相似な形状を有する前記対象画像内の最大のサイズの領域を含む第１の領域を含むか否かを判断する領域判断部を備え、
前記特定部は、前記対象画像が前記第１の領域を含む場合には、前記第１の領域内の画像を前記第２の部分画像として特定し、前記対象画像が前記第１の領域を含まない場合には、前記第１の領域とは異なる第２の領域内の画像を前記第２の部分画像として特定する、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記領域判断部は、前記検出された複数個の前記顔領域のうち、特定方向の前記対象画像の端に最も近い第１の顔領域と、前記特定方向とは反対方向の前記対象画像の端に最も近い第２の顔領域と、の間の前記特定方向の距離が基準値未満であるか否かを判断し、
前記特定部は、前記第１の顔領域と前記第２の顔領域との間の前記特定方向の距離が前記基準値未満である場合に、前記第１の顔領域と前記第２の顔領域との間の前記特定方向の中心位置に基づいて前記第２の部分画像を特定する、画像処理装置。
【請求項５】
請求項３または請求項４に記載の画像処理装置であって、
前記領域判断部は、前記検出された複数個の顔領域のうち、特定方向の前記対象画像の端に最も近い第１の顔領域と、前記特定方向とは反対方向の前記対象画像の端に最も近い第２の顔領域と、の間の前記特定方向の距離が基準値未満であるか否かを判断し、
前記特定部は、前記第１の顔領域と前記第２の顔領域との間の前記特定方向の距離が前記基準値以上である場合に、前記第１の顔領域と前記第２の顔領域とのうち、サイズが大きい前記顔領域を含み、サイズが小さい前記顔領域を含まない前記第２の部分画像を特定する、画像処理装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の画像処理装置であって、
前記特定部は、
特定すべき前記部分画像のサイズを有する領域であって、前記部分画像に含むべき前記顔領域の位置に基づいて決定される第３の領域が、前記対象画像内に含まれる場合には、前記第３の領域内の画像を、前記部分画像として特定し、
前記第３の領域が、前記対象画像より外側の部分を含む場合には、前記第３の領域を前記対象画像の中心に近づく方向にシフトして得られる第４の領域内の画像を、前記部分画像として特定する、画像処理装置。
【請求項７】
請求項１ないし請求項６に記載の画像処理装置であって、さらに、
前記対象画像が、人物画像であるか否かを判断する画像判断部を備え、
前記特定部は、前記対象画像が前記人物画像である場合に、前記第１の部分画像および前記第２の部分画像のうちのいずれかを特定し、
前記対象画像が前記人物画像とは異なる画像である場合には、前記特定領域と相似な形状を有する前記対象画像内の最大のサイズを有する前記部分画像を特定する、画像処理装置。
【請求項８】
請求項１ないし請求項７のいずれかに記載の画像処理装置であって、さらに、
ユーザの指示に基づいて、第１のモードと第２のモードとを含む複数個の処理モードの中から１個のモードを選択する選択部を備え、
前記特定部は、
前記第１のモードが選択された場合に、前記対象画像内の前記顔領域の検出結果に基づいて、前記第１の部分画像および前記第２の部分画像のうちのいずれかを特定し、
前記第２のモードが選択された場合には、前記対象画像内の前記顔領域の有無に拘わらずに決定されるサイズを有する前記部分画像を特定する、画像処理装置。
【請求項９】
請求項１ないし請求項８のいずれかに記載の画像処理装置であって、さらに、
前記顔領域の検出結果に基づいて、前記部分画像を回転させる回転処理部を備え、
前記合成部は、回転済みの前記部分画像を前記テンプレート画像内の前記特定領域に合成する、画像処理装置。
【請求項１０】
請求項１ないし請求項８のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データに対応付けられた情報であって、前記対象画像が撮影されたときの撮影装置の向きを示す情報を取得する情報取得部と、
前記撮影装置の向きを示す情報に基づいて、前記部分画像を回転させる回転処理部と、
を備え、
前記合成部は、回転済みの前記部分画像を前記テンプレート画像内の前記特定領域に合成する、画像処理装置。
【請求項１１】
請求項１ないし請求項８のいずれかに記載の画像処理装置であって、さらに、
複数個の前記対象画像の端に沿った複数個の端領域の輝度を比較する比較部と、
複数個の端のうち、対応する前記端領域の輝度が最も高い端が上方に位置するように、前記部分画像を回転させる回転処理部を備え、
前記合成部は、回転済みの前記部分画像を前記テンプレート画像内の前記特定領域に合成する、画像処理装置。
【請求項１２】
請求項１ないし請求項１１のいずれかに記載の画像処理装置であって、さらに、
前記合成画像データの出力を制御する出力制御部を備え、
前記出力制御部は、前記合成画像を表す第１の合成画像データと、前記合成画像と余白とを含む画像を表す第２の合成画像データとを、前記合成画像データとして出力し、
前記第１の合成画像データは、第１種の用紙に前記合成画像を印刷するためのデータであり、
前記第２の合成画像データを、前記第１種の用紙よりも大きい第２種の用紙に前記合成画像と余白とを含む画像を印刷するためのデータであり、
前記第１の合成画像データに基づく前記合成画像の用紙上のサイズと、前記第２の合成画像データに基づく前記合成画像の用紙上のサイズと、は等しい、画像処理装置。
【請求項１３】
画像処理をコンピュータに実行させるためのコンピュータプログラムであって、
画像処理の対象である対象画像を表す対象画像データと、テンプレート画像を表すテンプレート画像データと、を取得する画像データ取得機能と、
前記対象画像内の顔を表す顔領域を検出する検出機能と、
前記顔領域の検出結果に基づいて前記対象画像内の部分画像を特定する特定機能と、
特定された前記部分画像を前記テンプレート画像内の特定領域に合成して、合成画像を表す合成画像データを生成する生成機能と、
をコンピュータに実現させ、
前記特定機能は、
前記対象画像内に１個の前記顔領域が検出された場合に、１個の前記顔領域を含み、１個の前記顔領域のサイズに基づいて決定されるサイズを有する画像である第１の部分画像を特定し、
前記対象画像内に複数個の前記顔領域が検出された場合に、少なくとも１個の前記顔領域を含み、前記テンプレート画像内の特定領域と相似な形状を有する前記対象画像内の最大のサイズの画像である第２の部分画像を特定する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、特に、顔領域を含む画像を表す画像データを処理するする画像処理技術に関する。
【背景技術】
【０００２】
写真画像を表す画像データと、写真枠を含むフレーム画像を表す画像データと、を合成して、合成画像データを生成する技術が知られている（例えば、特許文献１）。この技術では、処理装置は、写真画像を表す画像データを用いて、写真画像から顔を含む顔領域を特定し、顔領域を含む所定の範囲の画像を抽出する。処理装置は、抽出された所定の範囲の画像が、フレーム画像内の写真枠に収まるように、合成画像データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２００７−２３５１８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、複数個の画像データを合成して合成画像データを生成することは有用である。例えば、合成画像データによって表される合成画像は、プリンタによって用紙に印刷されて、ユーザの利用のために提供される。
【０００５】
本発明の目的は、上記技術とは異なる手法を用いて、複数個の画像データを合成して、適切な合成画像を表す合成画像データを生成できる新たな技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］画像処理装置であって、
画像処理の対象である対象画像を表す対象画像データと、テンプレート画像を表すテンプレート画像データと、を取得する画像データ取得部と、
前記対象画像内の顔を表す顔領域を検出する検出部と、
前記顔領域の検出結果に基づいて前記対象画像内の部分画像を特定する特定部と、
特定された前記部分画像を前記テンプレート画像内の特定領域に合成して、合成画像を表す合成画像データを生成する生成部と、
を備え
前記特定部は、
前記対象画像内に１個の前記顔領域が検出された場合に、１個の前記顔領域を含み、１個の前記顔領域のサイズに基づいて決定されるサイズを有する画像である第１の部分画像を特定し、
前記対象画像内に複数個の前記顔領域が検出された場合に、少なくとも１個の前記顔領域を含み、前記テンプレート画像内の特定領域と相似な形状を有する前記対象画像内の最大のサイズの画像である第２の部分画像を特定する、画像処理装置。
【０００８】
上記構成によれば、対象画像内に含まれる顔領域の個数に応じて、適切なサイズの部分画像が特定される。この結果、適切な合成画像を表す合成画像データを生成できる
【０００９】
［適用例２］適用例１に記載の画像処理装置であって、
前記特定部は、前記対象画像内に前記顔領域が検出されない場合には、前記特定領域と相似な形状を有する前記対象画像内の最大のサイズを有する前記部分画像を特定する、画像処理装置。
【００１０】
この構成によれば、顔領域を含まない対象画像から適切なサイズの部分画像を特定することができる。
【００１１】
［適用例３］適用例１または適用例２に記載の画像処理装置であって、さらに、
前記対象画像内に複数個の前記顔領域が検出された場合に、前記対象画像が、検出された複数個の前記顔領域を含む領域であって、かつ、前記特定領域と相似な形状を有する前記対象画像内の最大のサイズの領域を含む第１の領域を含むか否かを判断する領域判断部を備え、
前記特定部は、前記対象画像が前記第１の領域を含む場合には、前記第１の領域内の画像を前記第２の部分画像として特定し、前記対象画像が前記第１の領域を含まない場合には、前記第１の領域とは異なる第２の領域内の画像を前記第２の部分画像として特定する、画像処理装置。
【００１２】
この構成によれば、検出された複数個の顔領域を含む領域内の画像を優先的に第２の部分画像として特定するので、適切な第２の部分画像を特定することができる。
【００１３】
［適用例４］適用例３に記載の画像処理装置であって、
前記領域判断部は、前記検出された複数個の前記顔領域のうち、特定方向の前記対象画像の端に最も近い第１の顔領域と、前記特定方向とは反対方向の前記対象画像の端に最も近い第２の顔領域と、の間の前記特定方向の距離が基準値未満であるか否かを判断し、
前記特定部は、前記第１の顔領域と前記第２の顔領域との間の前記特定方向の距離が前記基準値未満である場合に、前記第１の顔領域と前記第２の顔領域との間の前記特定方向の中心位置に基づいて前記第２の部分画像を特定する、画像処理装置。
【００１４】
この構成によれば、第１の顔領域と第２の顔領域との間の特定方向の中心位置に基づいて複数個の顔領域が適切に配置された第２の部分画像を特定することができる。
【００１５】
［適用例５］適用例３または適用例４に記載の画像処理装置であって、
前記領域判断部は、前記検出された複数個の顔領域のうち、特定方向の前記対象画像の端に最も近い第１の顔領域と、前記特定方向とは反対方向の前記対象画像の端に最も近い第２の顔領域と、の間の前記特定方向の距離が基準値未満であるか否かを判断し、
前記特定部は、前記第１の顔領域と前記第２の顔領域との間の前記特定方向の距離が前記基準値以上である場合に、前記第１の顔領域と前記第２の顔領域とのうち、サイズが大きい前記顔領域を含み、サイズが小さい前記顔領域を含まない前記第２の部分画像を特定する、画像処理装置。
【００１６】
この構成によれば、比較的サイズが大きい顔領域を含むように、適切な第２の部分画像を特定することができる。
【００１７】
［適用例６］適用例１ないし適用例５のいずれかに記載の画像処理装置であって、
前記特定部は、
特定すべき前記部分画像のサイズを有する領域であって、前記部分画像に含むべき前記顔領域の位置に基づいて決定される第３の領域が、前記対象画像内に含まれる場合には、前記第３の領域内の画像を、前記部分画像として特定し、
前記第３の領域が、前記対象画像より外側の部分を含む場合には、前記第３の領域を前記対象画像の中心に近づく方向にシフトして得られる第４の領域内の画像を、前記部分画像として特定する、画像処理装置。
【００１８】
この構成によれば、所望のサイズの部分画像を適切に特定することができる。
【００１９】
［適用例７］適用例１ないし適用例６に記載の画像処理装置であって、さらに、
前記対象画像が、人物画像であるか否かを判断する画像判断部を備え、
前記特定部は、前記対象画像が前記人物画像である場合に、前記第１の部分画像および前記第２の部分画像のうちのいずれかを特定し、
前記対象画像が前記人物画像とは異なる画像である場合には、前記特定領域と相似な形状を有する前記対象画像内の最大のサイズを有する前記部分画像を特定する、画像処理装置。
【００２０】
この構成によれば、対象画像が人物画像とは異なる画像である場合に、適切な部分画像を特定することができる。
【００２１】
［適用例８］適用例１ないし適用例７のいずれかに記載の画像処理装置であって、さらに、
ユーザの指示に基づいて、第１のモードと第２のモードとを含む複数個の処理モードの中から１個のモードを選択する選択部を備え、
前記特定部は、
前記第１のモードが選択された場合に、前記対象画像内の前記顔領域の検出結果に基づいて、前記第１の部分画像および前記第２の部分画像のうちのいずれかを特定し、
前記第２のモードが選択された場合には、前記対象画像内の前記顔領域の有無に拘わらずに決定されるサイズを有する前記部分画像を特定する、画像処理装置。
【００２２】
この構成によれば、ユーザの意図に沿った適切な部分画像を特定することができる。
【００２３】
［適用例９］適用例１ないし適用例８のいずれかに記載の画像処理装置であって、さらに、
前記顔領域の検出結果に基づいて、前記部分画像を回転させる回転処理部を備え、
前記合成部は、回転済みの前記部分画像を前記テンプレート画像内の前記特定領域に合成する、画像処理装置。
【００２４】
この構成によれば、適切な向きに回転された部分画像を用いて、適切な合成画像データを生成することができる。
【００２５】
［適用例１０］適用例１ないし適用例８のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データに対応付けられた情報であって、前記対象画像が撮影されたときの撮影装置の向きを示す情報を取得する情報取得部と、
前記撮影装置の向きを示す情報に基づいて、前記部分画像を回転させる回転処理部と、
を備え、
前記合成部は、回転済みの前記部分画像を前記テンプレート画像内の前記特定領域に合成する、画像処理装置。
【００２６】
この構成によれば、適切な向きに回転された部分画像を用いて、適切な合成画像データを生成することができる。
【００２７】
［適用例１１］適用例１ないし適用例８のいずれかに記載の画像処理装置であって、さらに、
複数個の前記対象画像の端に沿った複数個の端領域の輝度を比較する比較部と、
複数個の端のうち、対応する前記端領域の輝度が最も高い端が上方に位置するように、前記部分画像を回転させる回転処理部を備え、
前記合成部は、回転済みの前記部分画像を前記テンプレート画像内の前記特定領域に合成する、画像処理装置。
【００２８】
この構成によれば、適切な向きに回転された部分画像を用いて、適切な合成画像データを生成することができる。
【００２９】
［適用例１２］適用例１ないし適用例１１のいずれかに記載の画像処理装置であって、さらに、
前記合成画像データの出力を制御する出力制御部を備え、
前記出力制御部は、前記合成画像を表す第１の合成画像データと、前記合成画像と余白とを含む画像を表す第２の合成画像データとを、前記合成画像データとして出力し、
前記第１の合成画像データは、第１種の用紙に前記合成画像を印刷するためのデータであり、
前記第２の合成画像データを、前記第１種の用紙よりも大きい第２種の用紙に前記合成画像と余白とを含む画像を印刷するためのデータであり、
前記第１の合成画像データに基づく前記合成画像の用紙上のサイズと、前記第２の合成画像データに基づく前記合成画像の用紙上のサイズと、は等しい、画像処理装置。
【００３０】
こうすれば、第２の合成画像データを用いて第２種の用紙に画像を印刷することによって、合成画像を第１種の用紙に印刷することなく、合成画像の内容を適切に確認することができる。
【００３１】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法、これらの装置の機能または方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００３２】
【図１】実施例における画像処理システムの構成を示すブロック図である。
【図２】テンプレートデータの一例を示す図である。
【図３】画像処理システム１０００の動作を示すフローチャートである。
【図４】ＵＩ画像の一例を示す図である。
【図５】元画像の一例を示す図である。
【図６】クロッピング処理のフローチャートである。
【図７】画像種類判定処理のフローチャートである。
【図８】顔周囲領域抽出処理のフローチャートである。
【図９】対象画像に対する抽出枠ＥＡの設定について説明する図である。
【図１０】最大矩形抽出処理Ａのフローチャートである。
【図１１】最大矩形抽出処理Ａの説明図である。
【図１２】最大矩形抽出処理Ｂのフローチャートである。
【図１３】最大矩形抽出処理Ｂの説明図である。
【図１４】元画像から抽出される矩形画像の一例を示す図である。
【図１５】生成される合成画像の一例を示す図である。
【図１６】変形例の対象画像回転処理のフローチャートである。
【発明を実施するための形態】
【００３３】
Ａ．実施例：
Ａ−１：画像処理システム１０００の構成
図１は、実施例における画像処理システムの構成を示すブロック図である。画像処理システム１０００は、画像処理装置としてのサーバ４００と、複合機２００と、を備えている。サーバ４００は、インターネット７０に接続されており、複合機２００は、ＬＡＮ（Local Area Network）５０を介して、インターネット７０に接続されている。この結果、サーバ４００と複合機２００は、ＬＡＮ５０とインターネット７０とを介して、通信可能である。また、ＬＡＮ５０には、複合機２００のユーザのパーソナルコンピュータ５００が接続されていても良い。
【００３４】
サーバ４００は、ＣＰＵ４１０と、ＤＲＡＭなどの揮発性記憶装置４２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置４３０と、インターネット７０などのネットワークに接続するためのインタフェースを含む通信部４８０と、を備えている。揮発性記憶装置４２０には、ＣＰＵ４１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域４２１が設けられている。不揮発性記憶装置４３０には、コンピュータプログラム４３１と、複数個のテンプレートデータを含むテンプレートデータ群４３２と、後述するＵＩデータ群４３３と、が格納されている。
【００３５】
コンピュータプログラム４３１は、例えば、ＤＶＤ−ＲＯＭなどに格納された形態で提供され、サーバ４００の管理者によって、サーバ４００にインストールされる。ＣＰＵ４１０は、コンピュータプログラム４３１を実行することにより、後述する画像処理を実現する。
【００３６】
図２は、テンプレートデータの一例を示す図である。１個のテンプレートデータは、テンプレート画像１０（図２（Ａ））を表すテンプレート画像データと、マスク画像１１（図２（Ｂ））を表すマスク画像データと、領域情報１２と、を含んでいる。テンプレートデータは、所定のファイルフォーマット、例えば、ＰＮＧ（Portable Network Graphics）フォーマットで生成されている。
【００３７】
テンプレート画像データは、例えば、ＲＧＢ画像データである。図２の例では、テンプレート画像１０は、文字や図柄などのオブジェクトがデザインされた背景画像ＢＧと、他の画像を合成するための３個の合成対象領域１５Ａ〜１５Ｃと、を含んでいる。合成対象領域の個数や形状やサイズ、および、背景画像ＢＧのデザインは、テンプレートごとに異なり得る。合成対象領域は、後述する画像処理において、テンプレート画像１０を用いて合成画像を生成する際に、後述する元画像内の部分画像が、合成される領域である。
【００３８】
マスク画像１１は、テンプレート画像１０内の３個の合成対象領域１５Ａ〜１５Ｃを特定するための画像である。マスク画像１１は、テンプレート画像１０と同じサイズ（すなわち、縦方向の画素数および横方向の画素数）を有する。マスク画像１１内の画素の値は、第１値と、第２値と、の２つの値を取る。第１値は、対応するテンプレート画像１０内の画素が背景画像ＢＧを構成する画素であることを示す。第２値は、対応するテンプレート画像１０内の画素が合成対象領域１５Ａ〜１５Ｃを構成する画素であることを示す。例えば、マスク画像データには、画素ごとに透過率を規定するアルファチャンネルが用いられる。この場合には、例えば、第１値は、透過率が０％であること、すなわち、不透明であることを示す値（例えば、２５５）であり、第２値は、透過率が１００％であること、すなわち、透明であることを示す値（例えば、０）である。
【００３９】
マスク画像１１内のハッチングされた領域ＭＡは、第１値を有する複数個の画素で構成される領域である。領域ＭＡは、テンプレート画像１０の背景画像ＢＧに対応する。マスク画像１１内のハッチングされていない３個の領域１１Ａ〜１１Ｃは、第２値を有する複数個の画素で構成される領域である。領域１１Ａ〜１１Ｃは、テンプレート画像１０内の合成対象領域１５Ａ〜１５Ｃに対応する。
【００４０】
なお、これに代えて、マスク画像データにおいて、テンプレート画像１０内の合成対象領域１５Ａ〜１５Ｃに対応する領域１１Ａ〜１１Ｃ内の画素の値は、対応する合成対象領域の領域番号（例えば、１〜３）であってもよい。そして、テンプレート画像１０の背景画像ＢＧに対応する領域ＭＡ内の画素の値は、領域番号とは異なる特定値（例えば、０）であっても良い。
【００４１】
領域情報１２は、合成対象領域１５Ａ〜１５Ｃに関する情報である。具体的には、領域情報１２は、合成対象領域１５Ａ〜１５Ｃを識別する識別子としての領域番号と、合成対象領域１５Ａ〜１５Ｃの代表点Ｐ１〜Ｐ３の座標、幅Ｗ１〜Ｗ３（左右方向の長さ）、および、高さＨ１〜Ｈ３（上下方向の長さ）を含む。代表点の座標は、１個の代表点、例えば、合成対象領域１５Ａ〜１５Ｃに外接する外接矩形１４Ａ〜１４Ｃの左上の頂点の座標が用いられる。
【００４２】
複合機２００は、ＣＰＵ２１０と、ＤＲＡＭなどの揮発性記憶装置２２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置２３０と、プリンタ部２４０と、スキャナ部２５０と、タッチパネルやボタンなどの操作部２６０と、液晶ディスプレイなどの表示部２７０と、外部機器と通信を行う通信部２８０と、を備えている。例えば、通信部２８０は、ＬＡＮ５０などのネットワークに接続するためのインタフェースや、外部記憶装置（例えば、ＵＳＢメモリ）と接続するためのインタフェースを含んでいる。
【００４３】
揮発性記憶装置２２０には、ＣＰＵ２１０が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域２２１が設けられている。不揮発性記憶装置２３０には、制御プログラム２３１が格納されている。
【００４４】
プリンタ部２４０は、インクジェット方式やレーザー方式などの印刷方式を用いて印刷を実行する。スキャナ部２５０は、光電変換素子（例えば、ＣＣＤ、ＣＭＯＳ）を用いて光学的に原稿を読み取ることによってスキャンデータを生成する。
【００４５】
ＣＰＵ２１０は、制御プログラム２３１を実行することにより、複合機２００の制御を実行する。例えば、ＣＰＵ２１０は、プリンタ部２４０やスキャナ部２５０を制御して、コピー処理、印刷処理、スキャン処理などを実行する。さらに、ＣＰＵ２１０は、サーバ４００にアクセスして、サーバ４００が提供するサービスを利用するサービス利用処理を、実行することができる。
【００４６】
Ａ−２：画像処理システム１０００の動作
サーバ４００のＣＰＵ４１０は、クライアントとしての複合機２００の要求に応じて、後述する元画像をテンプレート画像に合成して、合成画像を生成する画像処理を実行する。この画像処理は、サーバ４００がクライアントに提供する画像生成サービスを実現するために、実行される。以下では、サーバ４００が提供する画像生成サービスを含む画像処理システム１０００の動作について説明する。
【００４７】
図３は、画像処理システム１０００の動作を示すフローチャートである。このフローチャートの処理は、複合機２００が、サーバ４００が提供する画像生成サービスの利用指示を、ユーザから受け付けた場合に開始される。この画像生成サービスは、具体的には、ユーザの所有する画像データを用いて、ハガキ（例えば、年賀ハガキ）に印刷するための合成画像を生成するサービスである。ユーザの所有する画像データは、例えば、デジタルスチルカメラで撮影された写真を表す画像データであり、例えば、ＪＰＥＧ形式で圧縮された画像データである。
【００４８】
処理が開始されると、ステップＳ５では、複合機２００のＣＰＵ２１０は、サービス開始要求を、サーバ４００に対して送信する。サーバ４００のＣＰＵ４１０は、サービス開始要求を受信すると、ＵＩデータ群４３３（図１）から画像生成サービスの提供に必要なＵＩデータを選択し、該ＵＩデータを複合機２００に対して送信する（ステップＳ１０）。ＵＩデータは、具体的には、ＵＩ画像を表示するために必要な各種の画像データと、制御データと、を含む。この制御データは、例えば、ＵＩ画像を利用して複合機２００が所定の処理（具体的には、後述するＳ１５、Ｓ２０、Ｓ３０、Ｓ３５の処理）を行うために必要な各種のデータを含む。例えば、制御データは、ＵＩ画像（例えば、図４）を介して受け付けたユーザの指示に基づいて、複合機２００が実行すべき処理、例えば、サーバ４００に所定の情報を送信する処理を示す情報を含む。
【００４９】
ステップＳ１５では、ＣＰＵ２１０は、受信したＵＩデータに基づいて、ユーザ指示受付処理を実行する。ユーザ指示受付処理は、サーバ４００が画像生成サービスを提供するために必要なユーザの指示を、ユーザから受け付ける処理である。
【００５０】
図４は、ＵＩ画像の一例を示す図である。先ず、ＣＰＵ２１０は、図４（Ａ）のＵＩ画像ＵＧ１を表示部２７０に表示して、利用するテンプレート画像の選択をユーザから受け付ける。例えば、ＵＩ画像ＵＧ１は、選択可能な複数個のテンプレート画像を示す複数個のサムネイル画像ＳＭ１、ＳＭ２と、テンプレート画像の選択を促すメッセージＭＳ１と、を含む。ＵＩ画像ＵＧ１やサムネイル画像ＳＭ１、ＳＭ２示す画像データ群は、サーバ４００から受信されたＵＩデータに含まれているデータ群が用いられる。次に、ＣＰＵ２１０は、所定のＵＩ画像（図示省略）を表示して、画像生成サービスの動作モードをユーザから受け付ける。本実施例では、動作モードは、詳細は後述するが「顔抽出モード」と「全体抽出モード」とを含んでいる。動作モードによって、利用するテンプレート画像と元画像（後述）とが同じであっても、生成される画像が異なる。
【００５１】
ステップＳ２０では、ＣＰＵ２１０は、ユーザから受け付けた指示を示す指示データをサーバ４００に対して送信する。指示データは、ユーザによって選択されたテンプレート画像を指定する情報と、動作モードを指定する情報と、を含む。
【００５２】
ステップＳ２５では、サーバ４００のＣＰＵ４１０は、受信された指示データに基づいて、不揮発性記憶装置４３０に格納されたテンプレートデータ群４３２（図１）の中から、ユーザによって選択されたテンプレート画像に対応するテンプレートデータを取得する。テンプレートデータは、外部機器、例えば、サーバ４００と接続された他のサーバや外部記憶装置から取得されても良い。なお、図２に示すテンプレート画像１０がユーザによって選択された場合を例として、以後の処理を説明する。
【００５３】
ステップＳ２０の指示データの送信に続いて、複合機２００のＣＰＵ２１０は、元画像データ選択処理を実行する（ステップＳ３０）。元画像データ選択処理は、テンプレート画像１０に合成すべき画像（元画像とも呼ぶ）をユーザの指示に基づいて選択する処理である。具体的には、ＣＰＵ２１０は、図４（Ｂ）のＵＩ画像ＵＧ２を表示部２７０に表示して、使用する元画像の選択をユーザから受け付ける。例えば、ＵＩ画像ＵＧ２は、選択可能な複数個の元画像を示す複数個のサムネイル画像ＳＩ１〜ＳＩ４と、元画像の選択を促すメッセージＭＳ２と、を含む。サムネイル画像ＳＩ１〜ＳＩ４を表す画像データは、元画像を表す画像データ（元画像データとも呼ぶ）に基づいて生成される。
【００５４】
元画像データは、例えば、ユーザによって指定された記憶装置から取得される。指定される記憶装置には、例えば、通信部２８０に接続されたＵＳＢメモリなどのリムーバブルメディアや、外部のハードディスクドライブや、複合機２００の内部に備えられた記憶装置２２０、２３０が含まれる。本実施例の元画像データは、例えば、ユーザが所有する画像データ、具体的には、ユーザがデジタルカメラを用いて撮影を行うことで生成された画像データ、あるいは、画像生成アプリケーションなどを用いて生成された画像データである。
【００５５】
ＣＰＵ２１０は、利用するテンプレート画像に含まれる合成領域の個数の元画像の選択を受け付ける。例えば、テンプレート画像１０を利用する場合には、テンプレート画像１０は、他の画像を合成すべき３個の合成対象領域１５Ａ〜１５Ｃを含んでいるので（図２（Ａ））、３個の元画像が選択される。
【００５６】
図５は、元画像の一例を示す図である。元画像には、オブジェクトとしての人物の顔を含む画像と、人物の顔を含まない画像と、が含まれる。例えば、図５（Ａ）の元画像１６は、１個の顔１６Ａを含み、図５（Ｂ）の元画像１７は、２個の顔１７Ａ、１７Ｂを含み、図５（Ｄ）の元画像１９は、２個の顔１９Ｂ、１９Ｃを含む。図５（Ｃ）の元画像１８は、人物の顔を含んでいない。元画像には、人物の顔とは異なるオブジェクト、例えば、建物１８Ａ（図５（Ｃ））、木１９Ａ（図５（Ｄ））が含まれ得る。３個の元画像１６〜１８がユーザによって選択された場合を例に、以後の処理を説明する。ただし、説明の便宜のために、他の元画像も、一例として適宜に参照する。
【００５７】
元画像が選択されると、ステップＳ３５では、ＣＰＵ２１０は、選択された３個の元画像１６〜１８を表す３個の元画像データをサーバ４００に送信する。このときに、ＣＰＵ２１０は、元画像がユーザによって選択された順序を示す情報を、元画像データに対応付けて、送信する。これによって、サーバ４００のＣＰＵ４１０は、３個の元画像データと、選択順序を示す情報と、を取得する（ステップＳ４０）。テンプレート画像１０の３個の合成対象領域１５Ａ〜１５Ｃには、予め処理順序が決められており、選択順序が先の元画像が、処理順序が先の合成対象領域に、順次に対応付けられる。また、元画像を表す元画像データに、元画像の撮影日時を示す情報（タイムスタンプ）が対応付けられている場合には、撮影日時が早い元画像が、処理順序が先の合成対象領域に、対応付けられても良い。
【００５８】
ステップＳ４５では、ＣＰＵ４１０は、クロッピング処理を実行する。クロッピング処理は、テンプレート画像１０の３個の合成対象領域１５Ａ〜１５Ｃに合成すべき部分画像を含む矩形画像を、３個の元画像１６〜１８からそれぞれ抽出する処理である。
【００５９】
図６は、クロッピング処理のフローチャートである。ステップＳ１００では、ＣＰＵ４１０は、取得された元画像データから、１個の元画像データを処理対象とする画像データ（対象画像データとも呼ぶ）として選択する。
【００６０】
ステップＳ１１０では、ＣＰＵ４１０は、対象画像データによって表される画像（対象画像とも呼ぶ）内に存在する顔領域ＦＡを検出する顔領域検出処理を実行する。顔領域ＦＡは、対象画像内に含まれる人物の顔を含む領域である。顔領域検出処理は、公知の方法を用いて実行される。例えば、顔領域検出処理は、例えば、エッジのような低次特徴から眼や口のような高次特徴を階層的に検出し、最終的に顔の重心位置や顔の外形などを検出するコンボリューションニューラルネットワークが知られている（例えば、特開２０１３−１２０９５４、特開２００９−２３７６１８参照）。
【００６１】
なお、傾いた顔を含む顔領域を、顔の傾き角を示す角度情報などとともに特定できる第１種のアルゴリズムを用いる場合には、１つの方向に関してのみの対象画像に対して顔検出処理が実行される。基準方向を向いた顔の領域を検出する第２種のアルゴリズムを用いる場合には、対象画像を、０度（回転無し）、９０度、１８０度、２７０度だけ回転させた４つの方向に関する対象画像に対してそれぞれ顔検出処理が実行される。基準方向を向いた顔は、例えば、頭頂部が上方を向き、かつ、あごが下を向いた顔である。顔領域検出処理によって、本実施例では、顔に外接する外接矩形が顔領域として特定される。すなわち、顔に外接する外接矩形の位置およびサイズを示す情報が算出される。
【００６２】
例えば、図５（Ａ）の元画像１６では、顔１６Ａを含む顔領域ＦＡ１が検出される。図５（Ａ）の元画像１７では、２個の顔１７Ａ、１７Ｂを含む２個の顔領域ＦＡ２、ＦＡ３が検出される。図５（Ｄ）の元画像１９では、２個の顔１９Ｂ、１７Ｃを含む２個の顔領域ＦＡ４、ＦＡ５が検出される。図５（Ｃ）の元画像１８では、顔領域ＦＡは検出されない。
【００６３】
ステップＳ１１５では、ＣＰＵ４１０は、対象画像内に顔領域ＦＡが検出されたか否かを判断する。顔領域ＦＡが検出された場合には（ステップＳ１１５：ＹＥＳ）、ＣＰＵ４１０は、顔領域ＦＡの検出結果に基づいて、必要に応じて対象画像を回転する。例えば、上述した第１種のアルゴリズムを用いて顔検出処理が実行された場合には、特定された顔の傾き角に基づいて、顔領域ＦＡ内の顔が上述した基準方向を向くように、対象画像が回転される。なお、回転角度は、０度（回転無し）、９０度、１８０度、２７０度のうちのいずれかが用いられる。
【００６４】
また、第２種のアルゴリズムを用いて顔検出処理が実行された場合には、顔検出処理時の４つの回転角度、０度、９０度、１８０度、２７０度のうち、検出された顔領域の個数が最も多い回転角度で、対象画像が回転される。
【００６５】
顔領域ＦＡを含む画像（例えば、写真画像）を用いて合成画像を生成する場合には、その他のオブジェクトの向きに拘わらずに、合成画像において、顔領域ＦＡ内の顔が上述した基準方向を向いていることが好ましい場合が多い。本実施例では、顔領域ＦＡが検出された場合には、顔領域の検出結果に基づいて回転処理を行う。この結果、後に、対象画像（元画像）がテンプレート画像１０に合成されるときに、対象画像内の顔が適切な方向を向いた状態で対象画像が合成される。この結果、適切な合成画像を生成することができる。
【００６６】
顔領域ＦＡが検出されない場合には（ステップＳ１１５：ＮＯ）、ＣＰＵ４１０は、対象画像の４個の端部の平均輝度を算出する（ステップＳ１２５）。具体的には、図５（Ｃ）の元画像１８に示すように、対象画像の上下左右の４方向の端に沿う帯状の４個の領域ＴＡ１〜ＴＡ４内の画素の平均輝度が、それぞれ算出される。帯状の領域ＴＡ１〜ＴＡ４の幅ＢＴは、予め定められており、例えば、対象画像の上下方向の長さ（高さとも呼ぶ）、または、左右方向の長さ（幅とも呼ぶ）の５％〜２０％の長さに設定される。
【００６７】
ステップＳ１３０では、ＣＰＵ４１０は、算出された４個の端部の平均輝度に基づいて、対象画像を回転する。具体的には、４個の端部のうち、平均輝度が最も高い輝度が上方に位置するように、対象画像を回転する。対象画像が写真画像である場合には、撮影された被写体の上方の輝度が高い可能性が高い。屋外での太陽や外灯、屋内での室内灯などの光源は、被写体となる人物や風景の上方に位置する可能性が高いからである。本実施例では、ステップＳ１３０によって、対象画像を適切な方向に回転することができる。特に、顔領域ＦＡが検出されない場合や、顔領域検出処理を行わない場合であっても、対象画像を適切な方向に回転することができる。この結果、後に、対象画像（元画像）がテンプレート画像１０に合成されるときに、対象画像内の被写体（例えば、風景）が適切な方向を向いた状態で対象画像が合成される。この結果、適切な合成画像を生成することができる。ステップＳ１３０に続いて、後述する最大矩形抽出処理Ａ（ステップＳ１６５）が実行される。
【００６８】
ステップＳ１２０に続くステップＳ１３５では、ＣＰＵ４１０は、ユーザによって指定された動作モードが顔抽出モードであるか、全体抽出モードであるか、を判断する。動作モードが全体抽出モードである場合には（ステップＳ１３５：ＮＯ）、ＣＰＵ４１０は、後述する最大矩形抽出処理Ａ（ステップＳ１６５）を実行する。動作モードが顔抽出モードである場合には（ステップＳ１３５：ＹＥＳ）、ＣＰＵ４１０は、画像種類判定処理を実行する（ステップＳ１４０）。顔抽出モードは、顔領域ＦＡの検出結果に基づいて、合成対象領域に合成すべき部分画像を変更する動作モードである。全体抽出モードは、顔領域ＦＡの有無に拘わらずに、合成対象領域に合成すべき部分画像を決定する動作モードである。  
【００６９】
図７は、画像種類判定処理のフローチャートである。画像種類判定処理は、対象画像が、人物画像であるか、非人物画像であるか、を判定する処理である。人物画像は、人物が主要なオブジェクトである画像である。非人物画像は、人物とは異なるオブジェクトが、主要なオブジェクトである画像である。人物とは異なるオブジェクトは、風景や、車や家などの人工物などを含む。
【００７０】
ステップＳ２００では、ＣＰＵ４１０は、対象画像内に、第１の閾値ＴＨ１以上のサイズを有する顔領域ＦＡが存在するか否かを判断する。第１の閾値ＴＨ１は、例えば、高さの閾値と幅の閾値との組合わせであっても良く、面積の閾値であっても良い。対象画像内の顔領域ＦＡは、図６のステップＳ１００にて検出済みである。第１の閾値ＴＨ１は、例えば、一人の人物のポートレートに含まれ得る顔領域のサイズより小さい値に設定される。第１の閾値ＴＨ１は、例えば、複数の人物を含む写真（家族写真や集合写真など）に含まれ得る顔領域のサイズより大きい値に設定される。具体的には、一人の人物のポートレートに含まれ得る顔領域のサイズには、対象画像の面積の６％程度の面積に相当するサイズが想定される。複数の人物を含む写真に含まれ得る顔領域のサイズには、例えば、対象画像の面積の３％程度の面積に相当するサイズが想定される。
【００７１】
例えば、図５（Ａ）の元画像１６の顔領域ＦＡ１のサイズは、第１の閾値ＴＨ１以上であると判断される。図５（Ｂ）、図５（Ｄ）の元画像１７、１９の顔領域ＦＡ２〜ＦＡ５のサイズは、第１の閾値ＴＨ１より小さいと判断される。
【００７２】
第１の閾値ＴＨ１以上のサイズを有する顔領域ＦＡが存在する場合には（ステップＳ２００：ＹＥＳ）、ＣＰＵ４１０は、対象画像は、人物画像であると判定する（ステップＳ２１５）。例えば、図５（Ａ）の元画像１６は、人物画像であると判定される。
【００７３】
第１の閾値ＴＨ１以上のサイズを有する顔領域ＦＡが存在しない場合には（ステップＳ２００：ＮＯ）、ＣＰＵ４１０は、第１の閾値ＴＨ１より小さな第２の閾値ＴＨ２以上のサイズを有する顔領域ＦＡが２個以上存在するか否かを判断する（ステップＳ２０５）。第２の閾値ＴＨ２は、例えば、複数の人物を含む写真（家族写真や集合写真など）に含まれ得る顔領域のサイズより小さな値に設定される。例えば、図５（Ｂ）、図５（Ｄ）の元画像１７、１９の顔領域ＦＡ２〜ＦＡ５のサイズは、第２の閾値ＴＨ２以上であると判断される。
【００７４】
第２の閾値ＴＨ２以上のサイズを有する２個以上の顔領域ＦＡが存在しない場合には（ステップＳ２０５：ＮＯ）、ＣＰＵ４１０は、対象画像は、非人物画像であると判定する（ステップＳ２２０）。
【００７５】
第２の閾値ＴＨ２以上のサイズを有する２個以上の顔領域ＦＡが存在する場合には（ステップＳ２０５：ＹＥＳ）、ＣＰＵ４１０は、最も近い顔領域のペア（以下、最近接ペアとも呼ぶ）を構成する２個の顔領域の距離ＤＦが、第３の閾値ＴＨ３以下であるか否かを判断する（ステップＳ２１０）。最近接ペアは、第２の閾値ＴＨ２以上のサイズを有する２個以上の顔領域ＦＡのうち、互いの距離が最も近い２個の顔領域ＦＡで構成されるペアである。２個の顔領域ＦＡの距離には、例えば、２個の顔領域ＦＡのうち、右側の顔領域ＦＡの右端と、左側の顔領域ＦＡの左端と、の間の横方向の距離が用いられる。図５（Ｂ）には、元画像１７内の、顔領域ＦＡ２と顔領域ＦＡ３との間の距離ＤＦ１が示されている。図５（Ｄ）には、元画像１９内の、顔領域ＦＡ４と顔領域ＦＡ５との間の距離ＤＦ２が示されている。第３の閾値ＴＨ３は、例えば、対象画像の横方向の長さ（幅）の１／３の長さに設定される。
【００７６】
距離ＤＦが第３の閾値ＴＨ３以下である場合には（ステップＳ２１０：ＹＥＳ）、ＣＰＵ４１０は、対象画像は、人物画像であると判定する（ステップＳ２１５）。距離ＤＦが第３の閾値ＴＨ３より大きい場合には（ステップＳ２１０：ＮＯ）、ＣＰＵ４１０は、対象画像は、非人物画像であると判定する（ステップＳ２２０）。
【００７７】
距離ＤＦが比較的近い場合には、対象画像は、複数の人物を主要なオブジェクトとする画像、例えば、家族写真や集合写真である可能性が高いと考えられる。一方、距離ＤＦが比較的遠い場合には、対象画像内の人物は、対象画像の主要なオブジェクトではない可能性が高い。具体的には、対象画像内の人物は、人物以外のオブジェクトを撮影したときに、偶然に、対象画像内の端部に写った人物である可能性が考えられる。例えば、図５（Ｂ）の元画像１７は、顔領域ＦＡ２と顔領域ＦＡ３との間の距離ＤＦ１が比較的近いので人物画像であると判定される。また、図５（Ｄ）の元画像１９は、顔領域ＦＡ４と顔領域ＦＡ５との間の距離ＤＦ２が比較的遠いので非人物画像であると判定される。
【００７８】
以上説明した画像種類判定処理によれば、対象画像内の顔領域ＦＡの個数およびサイズ、および、顔領域の位置（具体的には、２個の顔領域の間の距離）に基づいて、対象画像の種類を適切に判定することができる。対象画像が、人物画像であるか、非人物画像であるか、が判定されると、画像種類判定処理は、終了される。
【００７９】
図６に戻って説明を続ける。画像種類判定処理にて、対象画像が人物画像であると判定された場合には（ステップＳ１４５：ＹＥＳ）、ＣＰＵ４１０は、対象画像内の有効な顔領域ＦＡの個数は、１個であるか否かを判断する（ステップＳ１５０）。ここで、有効な顔領域ＦＡは、上述した画像種類判定処理（ステップＳ１４０）において考慮された顔領域ＦＡである。したがって、人物画像であると判定された対象画像には、少なくとも１個以上の有効な顔領域ＦＡが存在する。
【００８０】
有効な顔領域ＦＡの個数は、１個である場合には（ステップＳ１５０：ＹＥＳ）、ＣＰＵ４１０は、顔周囲領域抽出処理を実行する（ステップＳ１５５）。顔周囲領域抽出処理は、有効な１個な顔領域ＦＡを含み、かつ、有効な１個の顔領域ＦＡのサイズに基づいて決定されるサイズを有する矩形画像を、対象画像から抽出する処理である。
【００８１】
図８は、顔周囲領域抽出処理のフローチャートである。図９は、対象画像に対する抽出枠ＥＡの設定について説明する図である。以下では、図９に示す元画像１６の顔領域ＦＡ１に対して、抽出枠ＥＡ１を設定する場合を例に説明する。
【００８２】
ステップＳ３００では、ＣＰＵ４１０は、テンプレート画像１０内の合成対象領域１５Ａ〜１５Ｃのうち、対象画像を合成すべき合成対象領域の縦横比ＡＲ１を算出する。縦横比は、横方向の長さ（幅）Ｗに対する縦方向の長さ（高さ）Ｈの比Ｈ／Ｗである。合成対象領域の縦横比ＡＲ１は、例えば、領域情報１２（図２（Ｃ））を用いて算出される。抽出枠ＥＡは、後述するように、合成対象領域の縦横比ＡＲ１を有する矩形に設定される。
【００８３】
図２に示すように、合成対象領域は、合成対象領域１５Ａのように、矩形を有している場合もあるが、矩形とは異なる様々な外形などを有している場合がある。例えば、合成対象領域１５Ｂは、ノコギリの歯のように比較的複雑に配置された多数の辺を含む外形を有している。図２の合成対象領域１５Ｃは、曲線を含む外形を有しており、合成対象領域１５Ｂは、矩形の外形を有している。その他にも合成対象領域は、例えば、円や、三角形などの各種の多角形などの形状を有し得る。このために、本実施例では、合成対象領域１５Ａ〜１５Ｃに外接する外接矩形１４Ａ〜１４Ｃの幅および高さが、合成対象領域１５Ａ〜１５Ｃの幅および高さとして用いられる（図２（Ａ））。例えば、合成対象領域１５Ａの縦横比ＡＲ１は、Ｈ１／Ｗ１であり、合成対象領域１５Ｃの縦横比ＡＲ１は、Ｈ３／Ｗ３である。
【００８４】
ステップＳ３０５では、ＣＰＵ４１０は、顔領域ＦＡの縦横比ＡＲ２を算出する。図９の顔領域ＦＡ１の縦横比ＡＲ２は、図９に示すようにＦＨ１／ＦＷ１である。ステップＳ３１０では、ＣＰＵ４１０は、顔領域ＦＡの縦横比ＡＲ２が、合成対象領域の縦横比ＡＲ１より大きいか否かを判断する（ステップＳ３１０）。
【００８５】
縦横比ＡＲ２が縦横比ＡＲ１より大きい場合には（ステップＳ３１０：ＹＥＳ）、ＣＰＵ４１０は、顔領域ＦＡの高さＦＨを基準にして、抽出枠ＥＡの高さＥＨを決定する（ステップＳ３３０）。例えば、顔領域ＦＡの高さＦＨの１００％〜１５０％の範囲に、抽出枠ＥＡの高さＥＨが決定される。より具体的には、抽出枠ＥＡの高さＥＨは、顔領域ＦＡの高さＦＨと、基準マージンＴＭの２倍と、の和に決定される（ＥＨ＝ＦＨ＋２ＴＭ）。そして、抽出枠ＥＡの高さＥＨを決定した後に、抽出枠ＥＡの縦横比が、顔領域ＦＡ１の縦横比ＡＲ１と同じになるように、抽出枠ＥＡの幅ＥＷを決定する（ステップＳ３４０）。縦横比ＡＲ２が縦横比ＡＲ１より大きい場合には、抽出枠ＥＡの形状が顔領域ＦＡの形状より横長になる。したがって、抽出枠ＥＡの幅ＥＷを高さＥＨより先に決定すると、顔領域ＦＡと抽出枠ＥＡとの間の縦方向のマージンが基準マージンＴＭより小さくなる。場合によっては、顔領域ＦＡの高さＦＨより抽出枠ＥＡの高さＴＨが小さくなり、本来、抽出枠ＥＡ内に含まれるべき顔領域ＦＡの上下の端が、抽出枠ＥＡ内に含まれなくなることが起こり得る。このために、縦横比ＡＲ２が縦横比ＡＲ１より大きい場合には、基準マージンＴＭを抽出枠ＥＡの４方向に確保するために、抽出枠ＥＡの高さＥＨを幅ＥＷより先に決定する。
【００８６】
図９（Ａ）では、顔領域ＦＡ１の縦横比ＡＲ２が、設定すべき抽出枠ＥＡ１の縦横比（すなわち、合成すべき合成対象領域の縦横比ＡＲ１）が、より大きい場合、すなわち、設定すべき抽出枠ＥＡ１が、顔領域ＦＡ１より横長な形状を有している場合が例示されている。この場合には、上述したように、抽出枠ＥＡ１の縦方向のマージン、すなわち、上側と下側のマージンＵＭ、ＤＭが、それぞれ基準マージンＴＭとなるように、抽出枠ＥＡ１の高さＥＨ１が先に決定される（ＥＨ１＝ＦＨ１＋２ＴＭ、ステップＳ３３０）。その後に、抽出枠ＥＡ１の縦横比が、合成対象領域の縦横比ＡＲ１と同じになるように、抽出枠ＥＡ１の幅ＥＷ１が決定される（ステップＳ３４０）。
【００８７】
縦横比ＡＲ２が縦横比ＡＲ１以下である場合には（ステップＳ３１０：ＮＯ）、ＣＰＵ４１０は、顔領域ＦＡの幅ＦＷを基準にして、抽出枠ＥＡの幅ＥＷを決定する（ステップＳ３１５）。例えば、顔領域ＦＡの幅ＦＷの１００％〜１５０％の範囲に、抽出枠ＥＡの幅ＥＷが決定される。より具体的には、抽出枠ＥＡの幅ＥＷは、顔領域ＦＡの幅ＦＷと、基準マージンＴＭの２倍と、の和に決定される（ＥＡ＝ＦＷ＋２ＴＭ）。そして、抽出枠ＥＡの幅ＥＷを決定した後に、抽出枠ＥＡの縦横比が、合成対象領域の縦横比ＡＲ１と同じになるように、抽出枠ＥＡの高さＥＨを決定する（ステップＳ３１５）。縦横比ＡＲ２が縦横比ＡＲ１以下である場合には、抽出枠ＥＡの形状が顔領域ＦＡの形状より縦長になる。したがって、抽出枠ＥＡの高さＥＨを幅ＥＷより先に決定すると、顔領域ＦＡと抽出枠ＥＡとの間の横方向のマージンが基準マージンＴＭより小さくなる。場合によっては、顔領域ＦＡの幅ＦＷより抽出枠ＥＡの幅ＴＷが小さくなり、本来、抽出枠ＥＡ内に含まれるべき顔領域ＦＡの左右の端が、抽出枠ＥＡ内に含まれなくなることが起こり得る。このために、縦横比ＡＲ２が縦横比ＡＲ１以下である場合には、基準マージンＴＭを抽出枠ＥＡの４方向に確保するために、抽出枠ＥＡの幅ＥＷを高さＥＨより先に決定する。
【００８８】
ステップＳ３５０では、ＣＰＵ４１０は、サイズが決定された抽出枠ＥＡの中心と、顔領域ＦＡの中心とが一致するように対象画像に対して抽出枠ＥＡを設定する。この結果、縦方向または横方向の一方のマージンが基準マージンＴＭと同じになり、他方のマージンが基準マージンＴＭ以上になるように、対象画像に対して抽出枠ＥＡを設定することができる。図９（Ａ）の例では、抽出枠ＥＡ１の縦方向のマージン、すなわち、上側と下側のマージンＵＭ、ＤＭが、それぞれ基準マージンＴＭとなっている。そして、抽出枠ＥＡ１の横方向のマージン、すなわち、右側と左側のマージンＲＭ、ＬＭが、それぞれ基準マージンＴＭより大きくなっている。本ステップで設定される抽出枠ＥＡによって規定される領域が、第３の領域の例である。
【００８９】
ステップＳ３６０では、ＣＰＵ４１０は、設定された抽出枠ＥＡが、対象画像内に含まれているか否か（すなわち、設定された抽出枠ＥＡが対象画像の外側にはみ出さないか否か）を判断する。例えば、図９（Ａ）の例では、抽出枠ＥＡ１が、元画像１６内に含まれている。図９（Ｂ）には、抽出枠ＥＡが、対象画像内に含まれていない場合の例が示されている。対象画像としての元画像２０は、顔領域ＦＡ６が、元画像２０の右辺および上辺に比較的近い位置にある。このために、ステップＳ３５０において、元画像２０に対して設定される抽出枠ＥＡ２は、元画像２０より外側の部分ＯＳＡ（図９（Ｂ）でクロスハッチングされた部分）を含んでいる。
【００９０】
設定された抽出枠ＥＡが、対象画像内に含まれている場合には（ステップＳ３６０：ＹＥＳ）、ＣＰＵ４１０は、対象画像のうち、抽出枠ＥＡに対応する矩形画像を抽出する（ステップＳ３８０）。すなわち、ＣＰＵ４１０は、対象画像を抽出枠ＥＡを基準にクロッピングして得られる矩形画像を表す画像データを生成する。例えば、図９（Ａ）の例では、抽出枠ＥＡ１に対応する矩形画像がクロッピングされる。矩形画像が抽出されると、顔周囲領域抽出処理は終了される。
【００９１】
設定された抽出枠ＥＡが、対象画像内に含まれていない場合には（ステップＳ３６０：ＮＯ）、すなわち、抽出枠ＥＡが対象画像より外側の部分を含む場合には、ＣＰＵ４１０は、抽出枠ＥＡを、対象画像内にシフトする（ステップＳ３７０）。具体的には、ＣＰＵ４１０は、抽出枠ＥＡの４つの辺のうち、対象画像より外側に位置する辺が、対象画像の対応する辺と一致するように、対象画像の中心に近づく方向に抽出枠ＥＡをシフトする。例えば、図９（Ｂ）の例では、図９（Ｂ）の矢印ＡＲで示す方向に抽出枠ＥＡ２がシフトされる。図９（Ｃ）には、図９（Ｂ）の抽出枠ＥＡ２をシフトされて得られる抽出枠ＥＡ２ａが図示されている。抽出枠ＥＡ２ａの上辺と元画像２０の上辺は一致しており、抽出枠ＥＡ２ａの右辺と元画像２０の右辺は一致していることが解る（図９（Ｃ））。本ステップでシフトされた後の抽出枠ＥＡ２ａによって規定される領域が、第４の領域の例である。
【００９２】
抽出枠ＥＡがシフトされた後には、ＣＰＵ４１０は、対象画像のうち、抽出枠ＥＡに対応する矩形画像を抽出する（ステップＳ３８０）。すなわち、ＣＰＵ４１０は、対象画像をシフト済みの抽出枠ＥＡを基準にクロッピングして得られる矩形画像を表す画像データを生成する。例えば、図９（Ｃ）の例では、抽出枠ＥＡ２ａに対応する矩形画像がクロッピングされる。矩形画像が抽出されると、顔周囲領域抽出処理は終了される。
【００９３】
このように、抽出枠ＥＡが対象画像内に含まれる場合には、顔領域ＦＡの中心を基準として配置される抽出枠ＥＡに対応する矩形画像が抽出され、抽出枠ＥＡが対象画像内に含まれない場合には、対象画像内にシフトされた抽出枠ＥＡに対応する矩形画像が抽出される。したがって、後の処理で矩形画像内の部分画像を合成対象領域に合成する際に、適切な部分画像を矩形画像から特定することができる。すなわち、合成対象領域内に部分画像が合成できない部分が生じず、かつ、顔領域ＦＡが合成対象領域内に適切に配置されるように、適切なサイズの部分画像を特定することができる。
【００９４】
図６に戻って説明を続ける。対象画像内に有効な顔領域が複数個存在する場合には（ステップＳ１５０：ＮＯ）、ＣＰＵ４１０は、最大矩形抽出処理Ｂを実行する（ステップＳ１６０）。一方、ステップＳ１１５にて顔領域ＦＡが検出されずにステップＳ１３０が実行された後、あるいは、動作モードが全体抽出モードである場合（ステップＳ１３５：ＮＯ）、あるいは、対象画像が非人物画像であると判断された場合には（ステップＳ１４５：ＮＯ）、最大矩形抽出処理Ａが実行される（ステップＳ１６５）。最大矩形抽出処理Ｂは、最大矩形抽出処理Ａより複雑な処理であるので、理解の容易のために、最大矩形抽出処理Ａを先に説明する。
【００９５】
図１０は、最大矩形抽出処理Ａのフローチャートである。図１１は、最大矩形抽出処理Ａの説明図である。最大矩形抽出処理Ａは、顔領域ＦＡの有無とは無関係に、対象合成領域の縦横比ＡＲ１と等しい縦横比を有する矩形画像であって、対象画像から抽出し得る最大の矩形画像を抽出する処理である。
【００９６】
ステップＳ４００では、ＣＰＵ４１０は、上述した合成対象領域の縦横比ＡＲ１を算出する。ステップＳ４０５では、ＣＰＵ４１０は、対象画像の縦横比ＡＲ３を算出する。ステップＳ４１０では、ＣＰＵ４１０は、対象画像の縦横比ＡＲ３が、合成対象領域の縦横比ＡＲ１より大きいか否かを判断する。
【００９７】
縦横比ＡＲ３が縦横比ＡＲ１より大きい場合には（ステップＳ４１０：ＹＥＳ）、ＣＰＵ４１０は、抽出枠ＥＡの幅ＥＷを、対象画像の幅ＧＷと同じ値に決定する（ステップＳ４１５）。そして、抽出枠ＥＡの幅ＥＷを決定した後に、抽出枠ＥＡの縦横比が、合成対象領域の縦横比ＡＲ１と同じになるように、抽出枠ＥＡの高さＥＨを決定する（ステップＳ４２０）。縦横比ＡＲ３が縦横比ＡＲ１より大きい場合には、対象画像の形状が、抽出枠ＥＡの形状より縦長になる。したがって、抽出枠ＥＡの高さＥＨを幅ＥＷより先に決定すると、抽出枠ＥＡが対象画像より大きくなってしまう。このために、縦横比ＡＲ３が縦横比ＡＲ１より大きい場合には、対象画像内に抽出枠ＥＡを設定するために、抽出枠ＥＡの幅ＥＷを高さＥＨより先に決定する。
【００９８】
図１１（Ａ）では、対象画像である元画像１８の縦横比ＡＲ３が、設定すべき抽出枠ＥＡ３の縦横比（すなわち、合成すべき合成対象領域の縦横比ＡＲ１）より大きい。すなわち、元画像１８が、設定すべき抽出枠ＥＡ３より縦長な形状を有している。この場合には、上述したように、抽出枠ＥＡ３の幅ＥＷ３が先に決定される（ＥＷ３＝ＧＷ１、ステップＳ４１５）。その後に、抽出枠ＥＡ３の縦横比が、合成対象領域の縦横比ＡＲ１と同じになるように、抽出枠ＥＡ３の高さＥＨ３が決定される（ステップＳ４２０）。
【００９９】
縦横比ＡＲ３が縦横比ＡＲ１以下である場合には（ステップＳ４１０：ＮＯ）、ＣＰＵ４１０は、抽出枠ＥＡの高さＥＨを、対象画像の高さＧＨと同じ値に決定する（ステップＳ４３０）。そして、抽出枠ＥＡの高さＥＨを決定した後に、抽出枠ＥＡの縦横比が、合成対象領域の縦横比ＡＲ１と同じになるように、抽出枠ＥＡの幅ＥＷを決定する（ステップＳ４４０）。縦横比ＡＲ３が縦横比ＡＲ１以下である場合には、対象画像の形状が、抽出枠ＥＡの形状より横長になる。したがって、抽出枠ＥＡの幅ＥＷを高さＥＨより先に決定すると、抽出枠ＥＡが対象画像より大きくなってしまう。このために、縦横比ＡＲ３が縦横比ＡＲ１以下である場合には、対象画像内に抽出枠ＥＡを設定するために、抽出枠ＥＡの高さＥＨを幅ＥＷより先に決定する。
【０１００】
図１１（Ｂ）では、対象画像である元画像１９の縦横比ＡＲ３が、設定すべき抽出枠ＥＡ４の縦横比（すなわち、合成すべき合成対象領域の縦横比ＡＲ１）以下である。すなわち、元画像１９が、設定すべき抽出枠ＥＡ４より横長な形状を有している。この場合には、上述したように、抽出枠ＥＡ４の高さＥＨ４が先に決定される（ＥＨ４＝ＧＨ２、ステップＳ４３０）。その後に、抽出枠ＥＡ４の縦横比が、合成対象領域の縦横比ＡＲ１と同じになるように、抽出枠ＥＡ４の幅ＥＷ４が決定される（ステップＳ４４０）。
【０１０１】
ステップＳ４００〜Ｓ４４０までの処理によって、抽出枠ＥＡのサイズが決定される。決定されるサイズは、対象合成領域の縦横比ＡＲ１と等しい縦横比を有する矩形であって、対象画像内に含まれ得る最大の矩形のサイズ（以下、最大矩形サイズとも呼ぶ）である。
【０１０２】
ステップＳ４５０では、ＣＰＵ４１０は、サイズが決定された抽出枠ＥＡの中心と、対象画像の中心と、が一致するように対象画像に対して抽出枠ＥＡを設定する。ステップＳ４６０では、ＣＰＵ４１０は、対象画像のうち、抽出枠ＥＡに対応する矩形画像を抽出する。この結果、対象画像を抽出枠ＥＡを基準にクロッピングして得られる矩形画像を表す画像データが生成される。矩形画像が抽出されると、最大矩形抽出処理Ａは終了される。上述したように、抽出枠ＥＡの幅ＥＷが対象画像の幅ＧＷと同じ値に設定される（ステップＳ４１５）、あるいは、抽出枠ＥＡの高さＥＨが対象画像の高さＧＨと同じ値に設定される（ステップＳ４３０）。したがって、矩形画像の上下の２辺、および、左右の２辺のうちの少なくとも一方の２辺が、対象画像の対応する２辺と一致するように、矩形画像が抽出される。
【０１０３】
最大矩形抽出処理Ａによって、最大矩形サイズを有する矩形画像を抽出することができる。この結果、後の処理で矩形画像内の部分画像を合成対象領域に合成する際に、合成対象領域には、合成対象領域と相似な形状を有する対象画像内の最大のサイズの部分画像を合成することができる。
【０１０４】
次に、図６のステップＳ１５０にて、対象画像内に有効な顔領域が複数個存在すると判断された場合（ステップＳ１５０：ＮＯ）に実行される最大矩形抽出処理Ｂについて説明する。最大矩形抽出処理Ｂでは、最大矩形抽出処理Ａと同様に、最大矩形サイズの抽出枠ＥＡを設定して、矩形画像を抽出する処理である。最大矩形抽出処理Ｂでは、複数個の顔領域の位置に基づいて、抽出枠ＥＡの位置を調整する点が、最大矩形抽出処理Ａと異なる。
【０１０５】
図１２は、最大矩形抽出処理Ｂのフローチャートである。図１３は、最大矩形抽出処理Ｂの説明図である。ステップＳ５００では、図１０のステップＳ４００〜Ｓ４４０までの処理が、実行される。この結果、対象画像に設定すべき抽出枠ＥＡのサイズ（最大矩形サイズ）が決定される。
【０１０６】
ステップＳ５０５では、ＣＰＵ４１０は、対象画像の縦横比ＡＲ３が、合成対象領域の縦横比ＡＲ１（すなわち、設定すべき抽出枠ＥＡの縦横比ＡＲ１）より大きいか否かを判断する。縦横比ＡＲ３が縦横比ＡＲ１より大きい場合には（ステップＳ５０５：ＹＥＳ）、すなわち、対象画像が、設定すべき抽出枠ＥＡより縦長な形状を有する場合には、ＣＰＵ４１０は、処理方向を縦方向に決定する（ステップＳ５１０）。縦横比ＡＲ３が縦横比ＡＲ１以下である場合には（ステップＳ５０５：ＮＯ）、すなわち、対象画像が、設定すべき抽出枠ＥＡより横長な形状を有する場合には、ＣＰＵ４１０は、処理方向を横方向に決定する（ステップＳ５１５）。例えば、図１３（Ａ）、図１３（Ｂ）に示す元画像１７、２１が対象画像である場合には、処理方向は横方向に決定される。
【０１０７】
処理方向が決定されると、ステップＳ５２０では、ＣＰＵ４１０は、対象画像内の２個の顔領域ＦＡＰ、ＦＡＱの間の距離Ｄを算出する。２個の顔領域ＦＡＰ、ＦＡＱは、抽出対象の複数個の顔領域ＦＡのうち、処理方向の両端に位置する２個の顔領域である。初回のステップＳ５２０では、対象画像内の全ての有効な顔領域が抽出対象である。後述するように、ステップＳ５２０が２回以上実行される場合には、一部の顔領域が、抽出対象から除外されている。
【０１０８】
図１３（Ａ）に示す元画像１７が対象画像である場合には、有効な２個の顔領域ＦＡ２、ＦＡ３が、距離Ｄが算出されるべき２個の顔領域ＦＡＰ、ＦＡＱである。したがって、右側の顔領域ＦＡ３の右端と、左側の顔領域ＦＡ２の左端と、の間の横方向の距離Ｄ１が算出される。図１３（Ｂ）に示す元画像２１元画像１７が対象画像である場合には、初回のステップＳ５２０では、有効な３個の顔領域ＦＡ６〜ＦＡ８のうち、右端の顔領域ＦＡ８と左端の顔領域ＦＡ６とが、距離Ｄが算出されるべき２個の顔領域ＦＡＰ、ＦＡＱである。したがって、右側の顔領域ＦＡ８の右端と、左側の顔領域ＦＡ６の左端と、の間の横方向の距離Ｄ２が算出される。
【０１０９】
ステップＳ５２５では、ＣＰＵ４１０は、算出された距離Ｄが、抽出枠ＥＡの処理方向の長さより長いか否かを判断する。処理方向が横方向である場合には、距離Ｄが抽出枠ＥＡの幅ＥＷより大きいか否かが判断され、処理方向が縦方向である場合には、距離Ｄが抽出枠ＥＡの高さＥＨより大きいか否かが判断される。図１３（Ａ）の例では、距離Ｄ１は、抽出枠ＥＡ６の幅ＥＷ６以下であると判断される。図１３（Ｂ）の例では、距離Ｄ２は、抽出枠ＥＡ７の幅ＥＷ７より長いと判断される。
【０１１０】
距離Ｄが、抽出枠ＥＡの処理方向の長さより長い場合には（ステップＳ５２５：ＹＥＳ）、現在の抽出対象の顔領域ＦＡを全て含み、かつ、最大矩形サイズを有する領域は、対象画像内には含まれない（存在しない）、と判断できる。すなわち、このような抽出枠ＥＡは、対象画像内に設定できないと判断できる。したがって、この場合には、ＣＰＵ４１０は、このような抽出枠ＥＡとは異なる抽出枠ＥＡを設定する処理を実行する。すなわち、ＣＰＵ４１０は、距離Ｄが算出された２個の顔領域ＦＡＰ、ＦＡＱのサイズを比較して、小さい方の顔領域を抽出対象から除外する（ステップＳ５３０〜５４０）。すなわち、顔領域ＦＡＰのサイズが顔領域ＦＡＱのサイズより小さい場合には（ステップＳ５３０：ＹＥＳ）、顔領域ＦＡＰが抽出対象から除外される（ステップＳ５３５）。そして、顔領域ＦＡＰのサイズが顔領域ＦＡＱのサイズ以上である場合には（ステップＳ５３０：ＮＯ）、顔領域ＦＡＱが抽出対象から除外される（ステップＳ５４０）。１個の顔領域が抽出対象から除外されると、ＣＰＵ４１０は、ステップＳ５２０に処理を戻す。
【０１１１】
例えば、図１３（Ｂ）の例では、初回のステップＳ５２０で算出される距離Ｄ２が、抽出枠ＥＡ７の幅ＥＷ７より長い。したがって、顔領域ＦＡ６と顔領域ＦＡ８とのうち、サイズが小さい顔領域ＦＡ８が抽出対象から除外される。そして、２回目のステップＳ５２０では、顔領域ＦＡ６と顔領域ＦＡ７との間の距離Ｄ３が算出される。
【０１１２】
距離Ｄが、抽出枠ＥＡの処理方向の長さ以下である場合には（ステップＳ５２５：ＮＯ）、現在の抽出対象の顔領域ＦＡを全て含むように、最大矩形サイズを有する抽出枠ＥＡが設定できると判断できる。したがって、この場合には、ＣＰＵ４１０は、現在の抽出対象の顔領域ＦＡを全て含むように、対象画像内に、最大矩形サイズを有する抽出枠ＥＡを設定する（ステップＳ５４５）。具体的には、顔領域ＦＡＰの外側の端と顔領域ＦＡＱの外側の端との間の処理方向の中心位置と、抽出枠ＥＡの処理方向の中心位置とが、一致するように、抽出枠ＥＡを対象画像内に設定する。このように中心位置に基づいて抽出枠ＥＡを対象画像内に設定することによって、現在の抽出対象の顔領域ＦＡが抽出枠ＥＡ内に適切に含まれるように、抽出枠ＥＡを設定することができる。この結果、後の処理にて、複数個の顔領域ＦＡが適切に配置された部分画像を、テンプレート画像１０に合成することができる。
【０１１３】
例えば、図１３（Ａ）の例では、初回のステップＳ５２０で算出される距離Ｄ１が、設定されるべき抽出枠ＥＡ６の幅ＥＷ６以下である。したがって、図１３（Ａ）に示す中心位置ＣＬ１が、抽出枠ＥＡ６の横方向の中心位置と一致するように、抽出枠ＥＡ６が設定される。図１３（Ａ）に示す中心位置ＣＬ１は、右側の顔領域ＦＡ３の右端と、左側の顔領域ＦＡ２の左端と、の間の横方向の中心位置である。
【０１１４】
また、図１３（Ｂ）の例では、２回目のステップＳ５２０で算出される距離Ｄ３が、設定されるべき抽出枠ＥＡ７の幅ＥＷ７以下である。したがって、図１３（Ｂ）に示す中心ＣＬ２と、抽出枠ＥＡ７の横方向の中心とが、一致するように、抽出枠ＥＡ７が設定される。図１３（Ｂ）に示す中心ＣＬ２は、抽出対象である２個の顔領域ＦＡのうちの右側の顔領域ＦＡ７の右端と、左側の顔領域ＦＡ６の左端と、の間の横方向の中心位置である。換言すれば、図１３（Ｂ）の例では、元画像２１内の横方向の両端に位置する２個の顔領域ＦＡ６、ＦＡ８のうち、サイズが大きい顔領域ＦＡ６を含み、サイズが小さい顔領域ＦＡ８を含まない抽出枠ＥＡ７が設定される。この結果、後の処理にて、比較的サイズが大きい顔領域ＦＡを含むように、適切な部分画像をテンプレート画像１０に合成することができる。
【０１１５】
ステップＳ５５０では、ＣＰＵ４１０は、対象画像のうち、抽出枠ＥＡに対応する矩形画像を抽出する。この結果、抽出枠ＥＡを基準にして対象画像をクロッピングして得られる矩形画像を表す画像データが生成される。矩形画像が抽出されると、最大矩形抽出処理Ｂは終了される。
【０１１６】
最大矩形抽出処理Ｂによって、最大矩形抽出処理Ａと同様に、合成対象領域の縦横比ＡＲ１を有し、かつ、対象画像内に設定し得る最大の矩形を抽出枠ＥＡとして設定することができる。さらに、設定される抽出枠ＥＡには、少なくとも１個の顔領域ＦＡが含まれる。この結果、後の処理で矩形画像内の部分画像を合成対象領域に合成する際に、合成対象領域には、合成対象領域と相似な形状を有する対象画像内の最大のサイズの部分画像であって、少なくとも１個の顔領域ＦＡを含む部分画像を合成することができる。
【０１１７】
顔周囲領域抽出処理、最大矩形抽出処理Ａ、Ｂのいずれかによって対象画像から矩形画像が抽出されると、図６のステップＳ１７０では、ＣＰＵ４１０は、全ての元画像データを対象画像データとして処理したか否かを判断する。未処理の元画像データがある場合には（ステップＳ１７０：ＮＯ）、ステップＳ１００に戻って、未処理の元画像データが選択され、上述したステップＳ１００〜Ｓ１６０までの処理が繰り返される。全ての元画像データが処理された場合には（ステップＳ１７０：ＹＥＳ）、クロッピング処理は終了される。
【０１１８】
図１４は、元画像から抽出される矩形画像の一例を示す図である。図１５は、生成される合成画像の一例を示す図である。図１４（Ａ）〜図１４（Ｃ）は、図５の元画像１６〜１８から抽出された矩形画像２６〜２８をそれぞれ示す。以下に説明する処理によって、図１４の３個の矩形画像２６〜２８と、図２（Ａ）に示すテンプレート画像１０と、が合成されて、図１６の合成画像１０Ｍが生成される。
【０１１９】
クロッピング処理の後、図３のステップＳ５０では、ＣＰＵ４１０は、サイズ調整処理を実行する。サイズ調整処理は、クロッピング処理によって抽出された矩形画像のサイズを、対応する合成対象領域のサイズに応じて調整する処理である。矩形画像に対応する合成対象領域は、当該矩形画像の輪郭に内接する部分画像が合成されるべき合成対象領域である。図１４、図１５の例では、矩形画像２６〜２８が、テンプレート画像１０（図２（Ａ））の合成対象領域１５Ａ〜１５Ｃにそれぞれ対応する。
【０１２０】
具体的には、ＣＰＵ４１０は、矩形画像の横方向のサイズと、対応する合成対象領域の外接矩形の横方向のサイズと、のサイズ比を算出する。ＣＰＵ４１０は、算出されたサイズ比を用いて、矩形画像の縦横比を変更することなく、矩形画像を拡大または縮小する。矩形画像の縦横比は、合成対象領域の縦横比と一致するように抽出されているので、拡大または縮小の結果、矩形画像の縦方向および横方向のサイズは、対応する合成対象領域の外接矩形の縦方向および横方向のサイズと一致する。例えば、サイズが調整された後の矩形画像２６〜２８（図１４）のサイズは、合成対象領域１５Ａ〜１５Ｃの外接矩形１４Ａ〜１４Ｃ（図２）のサイズと一致する。
【０１２１】
ステップＳ５５では、ＣＰＵ４１０は、サイズが調整された後の矩形画像を用いて、矩形画像内の部分画像を、対応する合成対象領域に合成する合成処理を実行する。具体的には、ＣＰＵ４１０は、領域情報１２（図２（Ｃ））を参照して、テンプレート画像１０上における合成対象領域の左上の頂点の位置（座標）を取得する。ＣＰＵ４１０は、合成対象領域の外接矩形の左上の頂点の画素と、矩形画像の左上の頂点の画素と、が対応するように、テンプレート画像１０の座標系と、矩形画像の座標系と、を対応付ける。例えば、矩形画像２６〜２８の頂点Ｐ２６〜Ｐ２８（図１４）の画素は、合成対象領域１５Ａ〜１５Ｃの外接矩形１４Ａ〜１４Ｃの頂点Ｐ１〜Ｐ３の画素（図２（Ａ））に対応付けられる。
【０１２２】
そして、ＣＰＵ４１０は、矩形画像内の画素を１個ずつ注目画素に設定して、矩形画像内の画素ごとに次の処理を実行する。すなわち、ＣＰＵ４１０は、矩形画像内の注目画素に対応する、マスク画像１１（図２（Ｂ））内の画素を参照する。ＣＰＵ４１０は、参照したマスク画像１１内の画素の値が第２値である場合には、参照したマスク画像１１内の画素に対応するテンプレート画像１０内の画素の色値を、矩形画像内の注目画素の色値に置換する。ＣＰＵ４１０は、参照したマスク画像１１内の画素の値が第１値である場合には、参照したマスク画像１１内の画素に対応するテンプレート画像１０内の画素の色値を、元の値に維持する。
【０１２３】
この結果、テンプレート画像１０の合成対象領域１５Ａ〜１５Ｃを構成する複数個の画素の色値が、対応する矩形画像２６〜２８内の画素の色値に置換される。すなわち、対応する矩形画像２６〜２８から合成すべき部分画像２６Ａ〜２８Ａ（図１４）が特定されて、特定された部分画像２６Ａ〜２８Ａが、テンプレート画像１０の合成対象領域１５Ａ〜１５Ｃ（図２）に合成される。この結果、合成画像１０Ｍ（図１５（Ａ））を表す合成画像データが生成される。
【０１２４】
図１４に示すように、矩形画像２６〜２８内に特定される部分画像２６Ａ〜２８Ａは、矩形画像２６〜２８の輪郭に内接する画像であり、かつ、合成対象領域１５Ａ〜１５Ｃと同じ形状、および、同じサイズを有する画像である。
【０１２５】
そして、１個の顔領域ＦＡ１を含む矩形画像２６は、上述した顔周囲領域抽出処理（図８、図９（Ａ））によって元画像１６（図５（Ａ））から抽出された矩形画像である。すなわち、顔領域ＦＡ１を含む部分画像２６Ａ（図１４（Ａ））は、合成対象領域１５Ａと同じ縦横比を有し、かつ、顔領域ＦＡ１のサイズに基づいて決定されたサイズで、元画像１６から抽出された矩形画像２６の輪郭に内接する画像である。したがって、部分画像２６Ａは、元画像１６（図５（Ａ））の部分画像であり、かつ、元画像１６内の顔領域ＦＡ１のサイズに基づいて決定されたサイズを有する部分画像である。
【０１２６】
また、２個の顔領域ＦＡ２、ＦＡ３を含む矩形画像２７は、上述した最大矩形抽出処理Ｂ（図１２、図１３（Ａ））によって元画像１７（図５（Ｂ））から抽出された矩形画像である。すなわち、２個の顔領域ＦＡ２、ＦＡ３を含む部分画像２７Ａ（図１４（Ｂ））は、合成対象領域１５Ｂと同じ縦横比を有し、かつ、元画像１７から取り得る最大のサイズの矩形画像２７の輪郭に内接する画像である。したがって、部分画像２７Ａは、元画像１７の部分画像であり、かつ、合成対象領域１５Ｂと相似な形状で、元画像１７から取り得る最大のサイズの部分画像である。
【０１２７】
同様に、有効な顔領域ＦＡを含まない矩形画像２８は、上述した最大矩形抽出処理Ａ（図１０、図１１（Ａ））によって元画像１８（図５（Ｃ））から抽出された矩形画像である。すなわち、有効な顔領域ＦＡを含まない部分画像２８Ａ（図１４（Ｃ））は、合成対象領域１５Ｃと同じ縦横比を有し、かつ、元画像１８から取り得る最大のサイズの矩形画像２８の輪郭に内接する画像である。したがって、部分画像２８Ａは、元画像１８の部分画像であり、かつ、合成対象領域１５Ｃと相似な形状で、元画像１７から取り得る最大のサイズの部分画像である。
【０１２８】
以上の説明から解るように、部分画像２６Ａは、第１の部分画像の例であり、部分画像２７Ａは、第２の部分画像の例である。
【０１２９】
ステップＳ６０では、ＣＰＵ４１０は、ステップＳ５５で生成された合成画像データを用いて、テスト画像１０Ｔ（図１５（Ｂ））を表すテスト画像データを生成する。テスト画像１０Ｔは、合成画像１０Ｍと余白ＭＪとを含んでいる。余白ＭＪには、テスト画像１０Ｔが、合成画像１０Ｍのテスト印刷のための画像であることを示すメッセージＭＳ３、ＭＳ４が配置されている。
【０１３０】
なお、合成画像１０Ｍを示す合成画像データは、ハガキに合成画像１０Ｍを印刷するための画像データである。一方、テスト画像１０Ｔを表すテスト画像データは、ハガキより大きなＡ４サイズの用紙にテスト画像１０Ｔを印刷するためのデータである。合成画像データを用いて、ハガキに印刷される合成画像１０Ｍのハガキ上のサイズと、テスト画像データを用いて、Ａ４サイズの用紙に印刷されるテスト画像１０Ｔ内の合成画像１０Ｍの用紙上のサイズとは、互いに等しい。このために、Ａ４サイズの用紙に印刷されたテスト画像１０Ｔを見たユーザは、ハガキに合成画像１０Ｍを印刷することなく、ハガキに印刷された場合の合成画像１０Ｍの内容を適切に確認することができる。
【０１３１】
このように、テスト画像データによって表されるテスト画像１０Ｔに含まれる合成画像１０Ｍと、合成画像データによって表される合成画像１０Ｍとは、同じサイズである。このため、テスト画像データは、合成画像データに余白分の画像データを付加するだけで容易に生成することができる。すなわち、テスト画像データのために新たな合成画像を生成しなくても良い。
【０１３２】
ステップＳ６５では、ＣＰＵ４１０は、生成された合成画像データと、テスト画像データと、を複合機２００に対して送信して処理を終了する。複合機２００のＣＰＵ２１０は、合成画像データとテスト画像データとを受信すると、これらの画像データを不揮発性記憶装置２３０に格納するとともに、ユーザに合成画像データとテスト画像データを受信したことを通知する。なお、ＣＰＵ２１０は、合成画像データとテスト画像データとを、複合機２００に接続されたＵＳＢメモリやメディアカードなどのリムーバブルメディアに格納しても良い。
【０１３３】
合成画像データとテスト画像データは、ユーザの利用に供される。ユーザは、例えば、複合機２００に、テスト画像１０ＴをＡ４サイズの用紙上に印刷させる。そして、ユーザは、Ａ４サイズの用紙に印刷されたテスト画像１０Ｔに含まれる合成画像１０Ｍを確認する。ユーザは、合成画像１０Ｍの内容に満足した場合には、複合機２００に、合成画像１０Ｍをハガキ上に印刷させる。ユーザは、合成画像１０Ｍの内容に満足しない場合には、合成画像１０Ｍの生成をもう一度行ってもよい。例えば、使用するテンプレート画像や元画像を変更して、複合機２００とサーバ４００とに図３の処理をもう一度実行させても良い。
【０１３４】
上記実施例によれば、１個の顔領域ＦＡ１を含む元画像１６が対象画像である場合には、顔領域ＦＡ１を含み、顔領域ＦＡのサイズに基づいて決定されるサイズを有する部分画像２６Ａが特定され、合成対象領域１５Ａに合成される（図８、図９、図１４、図１５）。そして、ＣＰＵ４１０は、２個の顔領域ＦＡ２、Ｆ３を含む元画像１７が対象画像である場合には、２個の顔領域ＦＡ２、Ｆ３を含み、合成対象領域１５Ｂと相似な形状を有し、元画像１７から取り得る最大のサイズの部分画像２７Ａが特定され、合成対象領域１５Ｂに合成される（図１２〜図１５）。この結果、対象画像内に含まれる顔領域ＦＡの個数に応じて、適切なサイズの部分画像がテンプレート画像１０に合成される。この結果、サーバ４００は、適切な合成画像１０Ｍを表す合成画像データを生成することができる。
【０１３５】
例えば、上記実施例は、ハガキなどの郵便物に印刷される合成画像を生成する場合、特に、年賀ハガキに印刷される合成画像を生成する場合に有効である。複数の人物（例えば、同じ家族の複数の人物）を含む画像をハガキに印刷する場合には、複数の人物が行った行動（旅行など）を伝える意図がある場合が多いと考えられるからである。したがって、この場合には、複数の人物の顔とともに、複数の人物が行った行動が解る画像（例えば、人物の背景に写っている画像）を含む部分画像を特定することが適切であると考えられる。また、一人の人物（例えば、子供）を含む画像をハガキに印刷する場合には、一人の人物の現在の様子（成長の程度など）を伝える意図がある場合が多いと考えられるからである。この場合には、一人の人物の顔に基づくサイズの部分画像（例えば、一人の人物をクローズアップした部分画像）を特定することが適切であると考えられる。とりわけ、年賀ハガキに印刷される画像については、上記の推定が正しい場合が多い。
【０１３６】
さらに、上記のクロッピング処理では、有効な顔領域ＦＡを含まない元画像１８が対象画像である場合には、合成対象領域１５Ｃと相似な形状を有し、元画像１８から取り得る最大のサイズの部分画像２８Ａが特定され、合成対象領域１５Ｃに合成される（図１０、図１１、図１４、図１５）。この結果、顔領域ＦＡを含まない対象画像から特定された適切なサイズの部分画像がテンプレート画像１０に合成される。この結果、適切な合成画像１０Ｍを表す合成画像データを生成することができる。
【０１３７】
さらに、上記のクロッピング処理では、対象画像が人物画像である場合には、部分画像２６Ａ、２７Ａのように、顔領域を基準としたサイズや、合成対象領域と相似な形状で取り得る最大のサイズを有し、有効な顔領域ＦＡを含む部分画像が特定される（図６のステップＳ１４５〜Ｓ１６０）。そして、対象画像が非人物画像である場合には、部分画像２８Ａのように、合成対象領域と相似な形状で取り得る最大のサイズを有し、顔領域とは無関係に決定される部分画像が特定される（図６のステップＳ１４５、Ｓ１６５）。この結果、対象画像が人物画像である場合にも、非人物画像である場合にも、適切な部分画像を特定することができる。
【０１３８】
さらに、上記のクロッピング処理では、ユーザの指示に基づいて、動作モードが顔抽出モードに設定されている場合には、顔領域の検出結果に基づいて、顔周囲領域抽出処理、最大矩形抽出処理Ａ、Ｂが使い分けられる。そして、動作モードが顔抽出モードに設定されている場合には、顔領域の有無に拘わらずに、最大矩形抽出処理Ａのみが実行される。この結果、ユーザの意図に沿った適切な部分画像を特定することができる。
【０１３９】
Ｂ．変形例
（１）上記実施例におけるクロッピング処理では、処理の始めに対象画像が適切な向きとなるように、対象画像を回転する処理が実行される（図６のステップＳ１１０〜Ｓ１３５）。例えば、上記実施例では、顔領域の検出結果に基づく回転処理（ステップＳ１１０〜Ｓ１２０）や、対象画像の端部近傍領域の輝度に基づく回転処理（ステップＳ１２５、Ｓ１３０）が採用されているが、これに限られない。
【０１４０】
図１６は、変形例の対象画像回転処理のフローチャートである。この回転処理は、例えば、図６のステップＳ１１０〜Ｓ１３５に代えて実行される。この回転処理は、元画像データに、撮影時の重力方向を特定するための重力情報が、付属情報（例えば、Ｅｘｉｆ（Exchangeable image file format）に規定されたメタデータ）として対応付けられている場合に、使用できる。ステップＳ６００では、ＣＰＵ４１０は、元画像データの付属情報から、当該重力情報を取得して、撮影時の重力方向を特定する。撮影時の重力方向は、デジタルカメラなどの撮影装置の向きを示す情報と言うことができる。重力情報は、例えば、デジタルカメラに備えられた加速度センサを用いて検出された重力に基づいて生成される情報である。ステップＳ６１０では、ＣＰＵ４１０は、撮影時の重力方向が下方向になるように、対象画像を回転する。本変形例によれば、重力情報が元画像データに対応付けられている場合に、対象画像を適切かつ容易に回転することができる。この結果、適切な向きに回転された部分画像を用いて、適切な合成画像データを生成することができる。
【０１４１】
（２）上記実施例において、元画像データは、ユーザの所有する画像データであり、ＵＳＢメモリなどの記憶装置から取得されて、サーバ４００に送信される。これに代えて、元画像データの全部または一部は、複合機２００のスキャナ部２５０を用いて、ユーザが用意した原稿を光学的に読み取ることによって、取得されても良い。
【０１４２】
（３）上記実施例のクロッピング処理において、対象画像内で検出された顔領域ＦＡが１個である場合には、ＣＰＵ４１０は、顔領域ＦＡの４方向に所定のマージンが設けられるように決定された矩形画像を抽出している（図８、図９（Ａ））。そして、この矩形画像の輪郭に内接する部分画像が特定されて、対応する合成対象領域に部分画像が合成される（ステップＳ５５）。これに代えて、対象画像内で検出された顔領域ＦＡが１個である場合であって、かつ、合成対象領域が円形である場合には、ＣＰＵ４１０は、顔領域ＦＡのサイズに基づく半径を有し、顔領域ＦＡの重心を中心とした円形の部分画像を特定し、該円形の部分画像を、円形の合成対象領域に合成しても良い。また、対象画像内で検出された顔領域ＦＡが１個である場合であって、かつ、合成対象領域が星形である場合には、ＣＰＵ４１０は、顔領域ＦＡのサイズに基づく半径を有し、顔領域ＦＡの重心を中心とした円形に外接する星型の部分画像を特定し、該星型の部分画像を、星型の合成対象領域に合成しても良い。一般的に言えば、ＣＰＵ４１０は、対象画像内で検出された顔領域ＦＡが１個である場合には、顔領域ＦＡを含み、顔領域ＦＡのサイズに基づいて決定されるサイズを有する部分画像を特定して、合成対象領域に合成すれば良い。そして、特定される部分画像は、合成対象領域と相似な形状を有することが好ましい。
【０１４３】
（４）上記実施例のクロッピング処理において、対象画像内で検出された顔領域ＦＡが複数個である場合には、ＣＰＵ４１０は、複数個の顔領域ＦＡのうちの２個の顔領域の間の距離Ｄを用いて、抽出対象の顔領域ＦＡを含むように決定された矩形画像を抽出している（図１２、図１３）。そして、この矩形画像の輪郭に内接する部分画像が特定されて、対応する合成対象領域に部分画像が合成される（ステップＳ５５）。これに代えて、対象画像内で検出された顔領域ＦＡが複数個である場合であって、かつ、合成対象領域が円形である場合には、ＣＰＵ４１０は、対象画像に内接し、１個以上の顔領域ＦＡを含む円形の部分画像を特定し、該円形の部分画像を、円形の合成対象領域に合成しても良い。また、対象画像内で検出された顔領域ＦＡが複数個である場合であって、かつ、合成対象領域が星形である場合には、ＣＰＵ４１０は、対象画像に内接し、１個以上の顔領域を含む星型の部分画像を特定し、該星型の部分画像を、星型の合成対象領域に合成しても良い。一般的に言えば、ＣＰＵ４１０は、対象画像内で検出された顔領域ＦＡが複数個である場合には、少なくとも１個以上の顔領域ＦＡを含み、合成対象領域と相似な形状を有する対象画像内の最大のサイズの部分画像を特定して、合成対象領域に合成すれば良い。
【０１４４】
（５）上記実施例の最大矩形抽出処理Ｂ（図１２、図１３）では、対象画像内の全ての顔領域ＦＡを含み、かつ、最大矩形サイズの抽出枠ＥＡを設定できない場合には（ステップＳ５２５：ＮＯ）、抽出対象の顔領域ＦＡのうち、対象画像の両端に位置する２個の顔領域ＦＡＰ、ＦＡＱのうち、サイズが小さな顔領域が抽出対象から除外される（ステップＳ５３０〜Ｓ５４０）。そして、サイズが小さな顔領域を除いた残りの顔領域を含み、かつ、合成対象領域の縦横比ＡＲ１を有する抽出枠ＥＡが設定される。これに代えて、対象画像内の全ての顔領域ＦＡを含み、かつ、最大矩形サイズの抽出枠ＥＡを設定できない場合には、対象画像内の全ての顔領域ＦＡのうち、最大のサイズの顔領域ＦＡを少なくとも含むように設定される最大矩形サイズの抽出枠ＥＡのうち、最も多数の顔領域ＦＡを含む抽出枠ＥＡが設定されても良い。一般的には、ＣＰＵ４１０は、対象画像内の全ての顔領域ＦＡを含み、かつ、最大矩形サイズの第１の領域を抽出枠ＥＡとして設定できない場合には、第１の領域とは異なる第２の領域を抽出枠ＥＡとして設定すれば良い。
【０１４５】
（６）上記実施例のクロッピング処理（図６）において、一部の処理ステップは適宜に省略され得る。例えば、画像の回転処理（ステップＳ１２０、Ｓ１２５、Ｓ１３０）は、省略されて良く、動作モードの判定（ステップＳ１３５）や、画像種類判定処理（ステップＳ１４０）なども適宜に省略され得る。
【０１４６】
（７）上記第１実施例では、図２（Ａ）に示すように、テンプレート画像１０は、合成対象領域１５Ａ〜１５Ｃを示す枠が明示的に設けられている。したがって、テンプレート画像１０を表すテンプレート画像データを用いて、合成対象領域１５Ａ〜１５Ｃを特定することもでき、マスク画像１１（図２（Ｂ））を表すマスク画像データを用いて、合成対象領域１５Ａ〜１５Ｃを特定することもできる。これに代えて、テンプレート画像には、合成対象領域を示す枠が明示的には設けられていない画像、例えば、ユーザが所有する画像データによって表される風景画像が用いられても良い。換言すれば、テンプレート画像データ用いて合成対象領域を特定できなくても良く、マスク画像データのみによって、合成対象領域が特定可能であっても良い。この場合には、風景画像における、マスク画像上に規定された合成対象領域に対応する領域内の画像が消去されて、当該領域に元画像内の部分画像が合成される。
【０１４７】
（８）上記実施例においてサーバ４００のＣＰＵ４１０によって実行される画像処理（例えば、図３のステップＳ４５〜Ｓ６０の処理）は、サーバ４００とは異なる装置、例えば、複合機２００のＣＰＵ２１０によって実行されても良い。この場合には、例えば、ＣＰＵ２１０は、合成画像を生成した後に、テスト画像データや合成画像データをプリンタ部２４０に出力することによって、テスト画像１０Ｔや合成画像１０Ｍ（図１５）をプリンタ部２４０に印刷させる。また、これらの画像処理は、プリンタなどの印刷装置と接続されたパーソナルコンピュータ５００（図１）のＣＰＵ（図示省略）によって実行されても良い。この場合には、ＣＰＵは、合成画像を生成した後に、テスト画像データや合成画像データを外部のプリンタに出力することによって、テスト画像１０Ｔや合成画像１０Ｍ（図１５）を外部のプリンタに印刷させる。すなわち、テスト画像データや合成画像データの出力には、実施例のようなサーバ４００からクライアント装置（例えば、複合機２００）への送信に加えて、複合機２００の内部でのＣＰＵ２１０からプリンタ部２４０への供給、パーソナルコンピュータ５００から外部のプリンタへの送信などが含まれる。
【０１４８】
（９）これらの画像処理は、例えば、複合機２００のスキャナ部２５０や、単体のスキャナ（図示せず）を、制御するためにパーソナルコンピュータ５００にインストールされたスキャナドライバによって実行されても良い。また、サーバ４００は、本実施例のように１つの計算機で構成されても良く、複数個の計算機を含む計算システム（例えば、いわゆるクラウドコンピューティングを実現する分散型の計算システム）によって構成されていても良い。例えば、サーバ４００は、ＵＩデータを複合機２００に提供（送信）する第１の装置と、画像処理を実行する第２の装置と、を含むサーバシステムであっても良い。この場合には、例えば、図３のステップＳ１０の処理は、第１の装置が実行し、図３のステップＳ２５〜Ｓ６５までの処理は、第２の装置が実行しても良い。
【０１４９】
（１０）上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【符号の説明】
【０１５０】
５０...ＬＡＮ、７０...インターネット、２００...複合機、２１０...ＣＰＵ、２２０...揮発性記憶装置、２２１...バッファ領域、２３０...不揮発性記憶装置、２３１...制御プログラム、２４０...プリンタ部、２５０...スキャナ部、２６０...操作部、２７０...表示部、２８０...通信部、４００...サーバ、４１０...ＣＰＵ、４２０...揮発性記憶装置、４２１...バッファ領域、４３０...不揮発性記憶装置、４３１...コンピュータプログラム、４３２...テンプレートデータ群、４３３...ＵＩデータ群、４８０...通信部、５００...パーソナルコンピュータ、１０００...画像処理システム
【図１】
2015041359.tif 000003
【図２】
2015041359.tif 000004
【図３】
2015041359.tif 000005
【図４】
2015041359.tif 000006
【図５】
2015041359.tif 000007
【図６】
2015041359.tif 000008
【図７】
2015041359.tif 000009
【図８】
2015041359.tif 000010
【図９】
2015041359.tif 000011
【図１０】
2015041359.tif 000012
【図１１】
2015041359.tif 000013
【図１２】
2015041359.tif 000014
【図１３】
2015041359.tif 000015
【図１４】
2015041359.tif 000016
【図１５】
2015041359.tif 000017
【図１６】
2015041359.tif 000018