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