(57)【要約】【課題】合成画像を表す合成画像データを生成する際に、第１の画像と第２の画像との合成位置を決定する精度の低下を抑制する。【解決手段】画像処理装置は、第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、第１の画像内の基準領域と、第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出部と、複数個の類似度に基づいて、複数の候補領域のうちの１つの候補領域を基準領域に対応する対応領域として決定する対応領域決定部と、基準領域と対応領域とが重なるように、第１の画像と第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、を備え、算出部は、基準領域内の複数個の画素の値のばらつきに基づいて、基準領域内のＮ個の画素の中から、類似度の算出に用いられるＭ個の画素を決定し、基準領域内のＭ個の画素と、基準領域内のＭ個の画素に対応する各候補領域内のＭ個の画素と、を用いる。【選択図】  図６
2015198274.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得部と、
前記第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、
前記第１の画像内の前記基準領域と、前記第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出部と、
前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定部と、
前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、
を備え、
前記算出部は、
前記基準領域内の複数個の画素の値のばらつきに基づいて、前記基準領域内の前記Ｎ個（Ｎは３以上の整数）の画素の中から、前記類似度の算出に用いられるＭ個（Ｍは１以上Ｎ未満の整数）の画素を決定し、
前記基準領域内のＭ個の画素と、前記基準領域内のＭ個の画素に対応する前記各候補領域内のＭ個の画素と、を用いて、前記類似度を算出する、画像処理装置。
【請求項２】
適用例１に記載の画像処理装置であって、
前記算出部は、前記第１の画像の前記基準領域内の複数個の画素の値のばらつきが小さいほど、前記類似度の算出に用いられる前記基準領域内の画素の個数Ｍを大きくする、画像処理装置。
【請求項３】
請求項１に記載の画像処理装置であって、
前記第１の画像内の基準領域は、第１の部分基準領域と、内部に含まれる複数個の画素の値のばらつきが前記第１の部分基準領域とは異なる第２の部分基準領域と、を含み
前記算出部は、
前記基準領域内の複数個の画素のばらつきに基づいて、前記第１の部分基準領域と、前記第２の部分基準領域と、を特定し、
前記類似度の算出に用いられる前記Ｍ個の画素の一部として、前記第１の部分基準領域内のＮ１個（Ｎ１は２以上の整数）の画素の中から、Ｍ１個（Ｍ１は１以上Ｎ１以下の整数）の画素を決定し、
前記類似度の算出に用いられる前記Ｍ個の画素の一部として、前記第２の部分基準領域内のＮ２個（Ｎ２は２以上の整数）の画素の中から、Ｍ２個（Ｍ２は１以上Ｎ２以下の整数）の画素を決定し、
前記第１の部分基準領域内の前記Ｎ１個の画素に対する前記Ｍ１個の画素の割合（Ｍ１／Ｎ１）と、前記第２の部分基準領域内の前記Ｎ２個の画素に対する前記Ｍ２個の画素の割合（Ｍ２／Ｎ２）とは、互いに異なる、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記第２の領域は、内部に含まれる複数個の画素の値のばらつきが前記第１の領域より大きく、
前記割合（Ｍ２／Ｎ２）は、前記割合（Ｍ１／Ｎ１）より大きい、画像処理装置。
【請求項５】
画像処理装置であって、
第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得部と、
前記第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、
前記第１の画像内の前記基準領域と、前記第１の画像内の前記基準領域に対応する前記第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出部と、
前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定部と、
前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、
を備え、
前記第１の画像内の前記基準領域は、第１の部分基準領域と、内部に含まれる複数個の画素の値のばらつきが前記第１の部分基準領域とは異なる第２の部分基準領域と、を含み、
前記第２の画像内の前記各候補領域は、前記第１の画像内の前記第１の部分基準領域と前記第２の部分基準領域とにそれぞれ対応する第１の部分候補領域と第２の部分候補領域とを含み、
前記算出部は、
前記基準領域内の複数個の画素のばらつきに基づいて、前記第１の部分基準領域と、前記第２の部分基準領域と、を特定し、
第１の重み値を用いて、前記第１の部分基準領域と前記第１の部分基準領域に対応する前記第１の部分候補領域との間の第１の部分類似度を算出し、かつ、第２の重み値を用いて、前記第２の部分基準領域と前記第２の部分基準領域に対応する前記第２の部分候補領域との間の第２の部分類似度を算出することによって、前記第１の画像内の前記基準領域と、前記第１の画像内の前記基準領域に対応する前記第２の画像内の前記各候補領域と、の間の前記類似度を算出する、画像処理装置。
【請求項６】
請求項５に記載の画像処理装置であって、
前記第２の部分基準領域は、内部に含まれる複数個の画素の値のばらつきが前記第１の部分基準領域より大きく、
前記第２の重み値は、前記第２の重み値より大きい、画像処理装置。
【請求項７】
画像処理装置であって、
第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得部と、
前記第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、
前記基準領域内の複数個の画素の値のばらつきに基づいて、縮小率を決定する縮小率決定部と、
前記第１の画像内の前記基準領域内の画像を前記縮小率で縮小した縮小基準画像と、前記第２の画像内の複数個の候補領域内の画像を前記縮小率で縮小した複数個の縮小候補画像と、の間の複数個の類似度を算出する算出部と、
前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定部と、
前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、
を備える、画像処理装置。
【請求項８】
請求項７に記載の画像処理装置であって、
前記縮小率決定部は、前記第１の画像内の前記基準領域内の複数個の画素の値のばらつきが小さいほど、前記縮小基準画像の画素の個数が大きくなるように、前記縮小率を決定する、画像処理装置。
【請求項９】
コンピュータプログラムであって、
第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得機能と、
前記第１の画像内の一部の領域である基準領域を決定する基準領域決定機能と、
前記第１の画像内の前記基準領域と、前記第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出機能と、
前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定機能と、
前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成機能と、
をコンピュータに実現させ、
前記算出機能は、
前記基準領域内の複数個の画素の値のばらつきに基づいて、前記基準領域内の前記Ｎ個（Ｎは３以上の整数）の画素の中から、前記類似度の算出に用いられるＭ個（Ｍは１以上Ｎ未満の整数）の画素を決定し、
前記基準領域内のＭ個の画素と、前記基準領域内のＭ個の画素に対応する前記各候補領域内のＭ個の画素と、を用いて、前記類似度を算出する、コンピュータプログラム。
【請求項１０】
コンピュータプログラムであって、
第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得機能と、
前記第１の画像内の一部の領域である基準領域を決定する基準領域決定機能と、
前記第１の画像内の前記基準領域と、前記第１の画像内の前記基準領域に対応する前記第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出機能と、
前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定機能と、
前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成機能と、
をコンピュータに実現させ、
前記第１の画像内の前記基準領域は、第１の部分基準領域と、内部に含まれる複数個の画素の値のばらつきが前記第１の部分基準領域とは異なる第２の部分基準領域と、を含み、
前記第２の画像内の前記各候補領域は、前記第１の画像内の前記第１の部分基準領域と前記第２の部分基準領域とにそれぞれ対応する第１の部分候補領域と第２の部分候補領域とを含み、
前記算出機能は、
前記基準領域内の複数個の画素のばらつきに基づいて、前記第１の部分基準領域と、前記第２の部分基準領域と、を特定し、
第１の重み値を用いて、前記第１の部分基準領域と前記第１の部分基準領域に対応する前記第１の部分候補領域との間の第１の部分類似度を算出し、かつ、第２の重み値を用いて、前記第２の部分基準領域と前記第２の部分基準領域に対応する前記第２の部分候補領域との間の第２の部分類似度を算出することによって、前記第１の画像内の前記基準領域と、前記第１の画像内の前記基準領域に対応する前記第２の画像内の前記各候補領域と、の間の前記類似度を算出する、コンピュータプログラム。
【請求項１１】
コンピュータプログラムであって、
第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得機能と、
前記第１の画像内の一部の領域である基準領域を決定する基準領域決定機能と、
前記基準領域内の複数個の画素の値のばらつきに基づいて、縮小率を決定する縮小率決定機能と、
前記第１の画像内の前記基準領域内の画像を前記縮小率で縮小した縮小基準画像と、前記第２の画像内の複数個の候補領域内の画像を前記縮小率で縮小した複数個の縮小候補画像と、の間の複数個の類似度を算出する算出機能と、
前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定機能と、
前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の画像と第２の画像とが合成された画像を表す合成画像データを生成する技術に関する。
【背景技術】
【０００２】
第１の画像と第２の画像とが合成された画像を表す合成画像データを生成する技術が知られている。例えば、特許文献１に開示された技術では、一度には読み取れない大きさの原稿を、スキャナを用いて２回に分けて読み取ることによって、第１の画像を表すスキャンデータと、第２の画像を表すスキャンデータと、が取得される。そして、２個のスキャンデータを用いて、第１の画像と第２の画像とが合成された画像を表す出力画像データが生成される。第１の画像と第２の画像とを合成する位置は、パターンマッチングを用いて決定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２９００６６号公報
【特許文献２】特開平４−１９５６８９号公報
【特許文献３】特開平１１−１９６２６１号公報
【特許文献４】特開２００３−２３５３０号公報
【特許文献５】特開平１−３９１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、第１の画像がどのような画像であっても、同じ画像処理によって、第１の画像と第２の画像とが合成される。この結果、画像処理が十分に適正化されているとはいえず、第１の画像と第２の画像との合成位置を決定する精度が低下する可能性があった。
【０００５】
本発明は、第１の画像と第２の画像とが合成された合成画像を表す合成画像データを生成する際に、第１の画像と第２の画像との合成位置を決定する精度の低下を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］画像処理装置であって、第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得部と、前記第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、前記第１の画像内の前記基準領域と、前記第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出部と、前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定部と、前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、を備え、前記算出部は、前記基準領域内の複数個の画素の値のばらつきに基づいて、前記基準領域内の前記Ｎ個（Ｎは３以上の整数）の画素の中から、前記類似度の算出に用いられるＭ個（Ｍは１以上Ｎ未満の整数）の画素を決定し、前記基準領域内のＭ個の画素と、前記基準領域内のＭ個の画素に対応する前記各候補領域内のＭ個の画素と、を用いて、前記類似度を算出する、画像処理装置。
【０００８】
上記構成によれば、基準領域内の複数個の画素の値のばらつきに基づいて、類似度の算出に用いられるＭ個が決定される。そして、基準領域内のＭ個の画素と、各候補領域内のＭ個の画素と、を用いて、類似度が算出される。この結果、適切な個数の画素を用いて類似度が算出されるので、対応領域を適切に決定することができる。したがって、合成画像における第１の画像と第２の画像との合成位置を決定する精度の低下を抑制することができる。
【０００９】
［適用例２］画像処理装置であって、第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得部と、前記第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、前記第１の画像内の前記基準領域と、前記第１の画像内の前記基準領域に対応する前記第２の画像内の複数個の候補領域と、の間の複数個の類似度を算出する算出部と、前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定部と、前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、を備え、前記第１の画像内の前記基準領域は、第１の部分基準領域と、内部に含まれる複数個の画素の値のばらつきが前記第１の部分基準領域とは異なる第２の部分基準領域と、を含み、前記第２の画像内の前記各候補領域は、前記第１の画像内の前記第１の部分基準領域と前記第２の部分基準領域とにそれぞれ対応する第１の部分候補領域と第２の部分候補領域とを含み、前記算出部は、前記基準領域内の複数個の画素のばらつきに基づいて、前記第１の部分基準領域と、前記第２の部分基準領域と、を特定し、第１の重み値を用いて、前記第１の部分基準領域と前記第１の部分基準領域に対応する前記第１の部分候補領域との間の第１の部分類似度を算出し、かつ、第２の重み値を用いて、前記第２の部分基準領域と前記第２の部分基準領域に対応する前記第２の部分候補領域との間の第２の部分類似度を算出することによって、前記第１の画像内の前記基準領域と、前記第１の画像内の前記基準領域に対応する前記第２の画像内の前記各候補領域と、の間の前記類似度を算出する、画像処理装置。
【００１０】
上記構成によれば、第１の重み値を用いて、第１の部分基準領域と第１の部分候補領域との間の第１の部分類似度が算出され、第２の重み値を用いて、第２の部分基準領域と第２の部分候補領域との間の第２の部分類似度が算出される。これによって、基準領域と、基準領域に対応する各候補領域と、の間の類似度が算出される。この結果、ばらつきが異なる２個の部分基準領域についての２個の部分類似度を適切に用いて類似度が算出されるので、対応領域を適切に決定することができる。したがって、合成画像における第１の画像と第２の画像との合成位置を決定する精度を向上することができる。
【００１１】
［適用例３］画像処理装置であって、第１の画像を表す第１の画像データと、第２の画像を表す第２の画像データと、を取得する取得部と、前記第１の画像内の一部の領域である基準領域を決定する基準領域決定部と、前記基準領域内の複数個の画素の値のばらつきに基づいて、縮小率を決定する縮小率決定部と、前記第１の画像内の前記基準領域内の画像を前記縮小率で縮小した縮小基準画像と、前記第２の画像内の複数個の候補領域内の画像を前記縮小率で縮小した複数個の縮小候補画像と、の間の複数個の類似度を算出する算出部と、前記複数個の類似度に基づいて、前記複数の候補領域のうちの１つの候補領域を前記基準領域に対応する対応領域として決定する対応領域決定部と、前記第１の画像データと前記第２の画像データとを用いて、前記基準領域と前記対応領域とが重なるように、前記第１の画像と前記第２の画像とが合成された合成画像を表す合成画像データを生成する生成部と、を備える、画像処理装置。
【００１２】
上記構成によれば、基準領域内の複数個の画素の値のばらつきに基づいて決定された縮小率で縮小した縮小基準画像と縮小候補画像との間の類似度が算出される。この結果、適切なサイズの画像を用いて、類似度が算出されるので、対応領域を適切に決定することができる。したがって、合成画像における第１の画像と第２の画像との合成位置を決定する精度の低下を抑制することができる。
【００１３】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理装置の制御方法、これらの装置または方法を実現するためのコンピュータプ口グラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施例における画像処理システムの構成を示すブロック図である。
【図２】画像処理システム１０００の動作を示すフローチャートである。
【図３】本実施例で用いられる原稿１０の一例を示す図である。
【図４】ＵＩ画面の一例を示す図である。
【図５】スキャン画像の一例を示す図である。
【図６】参照画素決定処理のフローチャートである。
【図７】参照画素決定処理の説明図である。
【図８】ばらつき画素と非ばらつき画素とを説明する図である。
【図９】マスクデータ生成処理のフローチャートである。
【図１０】マスクデータ生成処理の説明図である。
【図１１】対応領域決定処理のフローチャートである。
【図１２】探索領域ＳＡ内に配置可能な複数個の候補領域について説明する図である。
【図１３】合成画像３０の一例を示す図である。
【図１４】第２実施例の参照画素決定処理のフローチャートである。
【図１５】第２実施例の参照画素決定処理の説明図である。
【図１６】第３実施例の対応領域決定処理のフローチャートである。
【図１７】第４実施例の参照画素決定処理のフローチャートである。
【図１８】第４実施例の対応領域決定処理のフローチャートである。
【発明を実施するための形態】
【００１５】
Ａ．第１実施例：
Ａ−１：画像処理システム１０００の構成
図１は、第１実施例における画像処理システムの構成を示すブロック図である。画像処理システム１０００は、画像処理装置としてのサーバ４００と、複合機２００と、を備えている。サーバ４００は、インターネット７０に接続されており、複合機２００は、ＬＡＮ（Local Area Network）８０を介して、インターネット７０に接続されている。この結果、サーバ４００と複合機２００は、ＬＡＮ８０とインターネット７０とを介して、通信可能である。また、ＬＡＮ８０には、複合機２００のユーザのパーソナルコンピュータ５００が接続されていても良い。
【００１６】
サーバ４００は、ＣＰＵ４１０と、ＤＲＡＭなどの揮発性記憶装置４２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置４３０と、インターネット７０などのネットワークに接続するためのインタフェースを含む通信部４８０と、を備えている。揮発性記憶装置４２０には、ＣＰＵ４１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域４２１が設けられている。不揮発性記憶装置４３０には、コンピュータプログラム４３１と、ＵＩデータ群４３３と、が格納されている。
【００１７】
コンピュータプログラム４３１、および、ＵＩデータ群４３３は、例えば、サーバ４００の管理者によって、インターネット７０を介してサーバ４００にアップロードされることによって、サーバ４００にインストールされる。または、コンピュータプログラム４３１、および、ＵＩデータ群４３３は、例えば、ＤＶＤ−ＲＯＭなどに格納された形態で提供され、サーバ４００の管理者によって、サーバ４００にインストールされても良い。ＣＰＵ４１０は、コンピュータプログラム４３１を実行することにより、後述する画像処理を実現する。
【００１８】
複合機２００は、ＣＰＵ２１０と、ＤＲＡＭなどの揮発性記憶装置２２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置２３０と、プリンタ部２４０と、スキャナ部２５０と、タッチパネルやボタンなどの操作部２６０と、液晶ディスプレイなどの表示部２７０と、外部機器と通信を行う通信部２８０と、を備えている。例えば、通信部２８０は、ＬＡＮ８０などのネットワークに接続するためのインタフェースや、外部記憶装置（例えば、ＵＳＢメモリ）と接続するためのインタフェースを含んでいる。
【００１９】
揮発性記憶装置２２０には、ＣＰＵ２１０が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域２２１が設けられている。不揮発性記憶装置２３０には、制御プログラム２３１が格納されている。
【００２０】
プリンタ部２４０は、インクジェット方式やレーザー方式などの印刷方式を用いて印刷を実行する。スキャナ部２５０は、光電変換素子（例えば、ＣＣＤ、ＣＭＯＳ）を用いて光学的に原稿を読み取ることによってスキャンデータを生成する。スキャナ部２５０は、いわゆるフラットベッド式の原稿台を備えており、本実施例では、１回で読み取ることができる原稿の最大サイズは、Ａ４より大きくＡ３より小さいサイズである。具体的には、スキャナ部２５０は、長手方向の長さがＡ４と同じであり、かつ、短手方向の長さがＡ４より少しだけ（例えば、数センチ）長いサイズの原稿を読み取ることができる。このために、後述するように、Ａ３サイズの原稿の長手方向の中央付近が重複するように、Ａ３サイズの原稿を２回に分けて読み取ることができる。
【００２１】
ＣＰＵ２１０は、制御プログラム２３１を実行することにより、複合機２００の制御を実行する。例えば、ＣＰＵ２１０は、プリンタ部２４０やスキャナ部２５０を制御して、コピー処理、印刷処理、スキャン処理などを実行する。さらに、ＣＰＵ２１０は、サーバ４００にアクセスして、サーバ４００が提供するサービスを利用するサービス利用処理を、実行することができる。
【００２２】
Ａ−２：画像処理システム１０００の動作
図２は、画像処理システム１０００の動作を示すフローチャートである。このフローチャートの処理は、複合機２００が、サーバ４００が提供する画像生成サービスの利用指示を、ユーザから受け付けた場合に開始される。この画像生成サービスは、詳細は後述するが、複数個のスキャンデータによって表される複数個のスキャン画像を合成するサービスである。複数個のスキャンデータは、詳細は後述するが、例えば、１回で読み取り可能なサイズより大きなサイズの原稿を、複数回に分けて読み取ることによって生成される。
【００２３】
処理が開始されると、Ｓ５では、複合機２００のＣＰＵ２１０は、サービス開始要求を、サーバ４００に対して送信する。サーバ４００のＣＰＵ４１０は、サービス開始要求を受信すると、ＵＩデータ群４３３（図１）から画像生成サービスの提供に必要なＵＩデータを選択し、該ＵＩデータを複合機２００に対して送信する（Ｓ１０）。ＵＩデータは、具体的には、ユーザインタフェース画面（以下、ＵＩ画面）を表す画面データと、制御データと、を含む。この制御データは、例えば、ＵＩ画面を利用して複合機２００が所定の処理（具体的には、後述するＳ１５のスキャン処理）を行うために必要な各種のデータを含む。例えば、制御データは、ＵＩ画面（例えば、図４）を介して受け付けたユーザの指示に基づいて、複合機２００が実行すべき処理（例えば、サーバ４００へのスキャンデータの送信）を行うために必要な情報（例えば、スキャンデータの送信先アドレス）を含む。
【００２４】
Ｓ１５では、ＣＰＵ２１０は、受信したＵＩデータに基づいて、複数個のスキャンデータを生成するスキャン処理を実行する。スキャン処理では、ＣＰＵ２１０は、ユーザが用意した原稿を２回に分けて読み取ることによって、２個のスキャンデータを生成する。本実施例のスキャンデータは、ＲＧＢの各成分の値（例えば、０〜２５５の２５６階調の値）を画素ごとに含むＲＧＢ画像データである。
【００２５】
図３は、本実施例で用いられる原稿の一例を示す図である。図３の原稿１０のサイズは、スキャナ部２５０が１回で読み取り可能なサイズ（本実施例では、Ａ４サイズより少し大きなサイズ）の約２倍のサイズ（本実施例では、Ａ３サイズ）である。
【００２６】
図４は、ＵＩ画面の一例を示す図である。先ず、ＣＰＵ２１０は、図４のＵＩ画面ＵＧ１を表示部２７０に表示する。例えば、ＵＩ画面ＵＧ１は、原稿台への原稿１０の適切な設置を促すメッセージＭＳ１と、スキャンボタンＳＢと、キャンセルボタンＣＢと、を含んでいる。ユーザは、ＵＩ画面ＵＧ１に従って、原稿１０の左側の約半分の領域１０Ｌ（図３）を読み取ることができるように、原稿１０を原稿台に設置し、スキャンボタンＳＢを押下する。スキャンボタンＳＢの押下に応じて、ＣＰＵ２１０は、スキャナ部２５０を制御して原稿を読み取ることによって、左側スキャンデータを生成する。
【００２７】
図５は、スキャン画像の一例を示す図である。図５（Ａ）には、左側スキャンデータによって表される左側スキャン画像２０Ｌが示されている。左側スキャン画像２０Ｌは、原稿１０の左側の約半分の領域１０Ｌ（図３）を示す左側原稿画像ＨＩＬと、余白ＷＢＬと、を含んでいる。
【００２８】
次に、ＣＰＵ２１０は、所定のＵＩ画面（図示省略）を表示部２７０に表示する。このＵＩ画面は、ＵＩ画面ＵＧ１と同様に、原稿台への原稿１０の適切な設置を促すメッセージと、スキャンボタンと、キャンセルボタンと、を含んでいる。ユーザは、ＵＩ画面に従って、原稿１０の右側の約半分の領域１０Ｒ（図３）を読み取ることができるように、原稿１０を原稿台に設置し、スキャンボタンを押下する。ＣＰＵ２１０は、スキャンボタンの押下に応じて、スキャナ部２５０を制御して原稿を読み取ることによって、右側スキャンデータを生成する。
【００２９】
図５（Ｂ）には、右側スキャンデータによって表される右側スキャン画像２０Ｒが示されている。右側スキャン画像２０Ｒは、原稿１０の右側の約半分の領域１０Ｒ（図３）を示す右側原稿画像ＨＩＲと、余白ＷＢＲと、を含んでいる。
【００３０】
ここで、図３の原稿１０の横方向の中央部ＣＡを表す画像は、左側スキャン画像２０Ｌの右辺に沿った領域と、右側スキャン画像２０Ｒの左辺に沿った領域と、の両方に含まれている。すなわち、図５にハッチングで示すように、左側スキャン画像２０Ｌは、原稿１０の中央部ＣＡを表す画像ＣＩＬを含み、右側スキャン画像２０Ｒは、原稿１０の中央部ＣＡを表す画像ＣＩＲを含んでいる。これは、例えば、ＵＩ画面や説明書などによって、原稿１０の中央部ＣＡが、右側スキャンデータの生成時と左側スキャンデータの生成時との両方で読み取られるように、原稿１０を原稿台に設置するように、ユーザに指示することによって、実現される。なお、左側スキャン画像２０Ｌ内の画像ＣＩＬと、右側スキャン画像２０Ｒ内の画像ＣＩＲとは、ともに原稿１０の部分ＣＩＡを表しているが、ユーザの操作などにおって、面積や色などに多少の差は、生じ得る。
【００３１】
図２のＳ２０では、ＣＰＵ２１０は、右側スキャン画像２０Ｒを表す右側スキャンデータと、左側スキャン画像２０Ｌを表す左側スキャンデータと、をサーバ４００に対して送信する。この結果、Ｓ２５にて、サーバ４００のＣＰＵ４１０は、右側スキャンデータと、左側スキャンデータと、取得して、バッファ領域４２１に格納する。
【００３２】
Ｓ３０では、ＣＰＵ４１０は、右側スキャンデータを用いて、参照画素決定処理を実行する。図６は、参照画素決定処理のフローチャートである。
【００３３】
Ｓ１０５では、ＣＰＵ４１０は、右側スキャン画像２０Ｒ内の一部の領域である基準領域ＳＰを決定する。基準領域ＳＰは、右側スキャン画像２０Ｒ内の所定の位置に配置された所定のサイズの矩形領域に決定される。また、基準領域ＳＰは、右側スキャン画像２０Ｒにおいて、原稿１０の中央部ＣＡを表す画像ＣＩＲ内に配置される。例えば、基準領域ＳＰは、右側スキャン画像２０Ｒの４つの辺のうち、中央部ＣＡを表す画像ＣＩＲに沿った辺（本実施例では、左辺）に沿って配置される。より具体的には、基準領域ＳＰは、右側スキャン画像２０Ｒの左上角の近傍であって、左端および上端から所定のマージン（例えば、５画素〜２０画素のマージン）だけ離れた位置に配置される。基準領域ＳＰの横方向のサイズは、例えば、５画素〜２０画素であり、基準領域ＳＰの縦方向のサイズは、右側スキャン画像２０Ｒの縦方向の画素数の１／４〜１／２である。所定のマージンを確保して、基準領域ＳＰが配置されるのは、右側スキャン画像２０Ｒの端部は、原稿の端部の影などが写るなどの理由から、内側の部分と比較してノイズが多い領域であるので、当該ノイズの多い領域が基準領域ＳＰ内に含まれることを避けるためである。
【００３４】
図７は、参照画素決定処理の説明図である。図７（Ａ）には、Ｓ１０５にて決定された基準領域ＳＰ内の画像が示されている。
【００３５】
Ｓ１１０では、ＣＰＵ４１０は、基準領域ＳＰ内の複数個の画素を、２種類の画素、すなわち、ばらつき画素と、その他の画素（非ばらつき画素とも呼ぶ）と、に分類する。
【００３６】
図８は、ばらつき画素と非ばらつき画素とを説明する図である。ＣＰＵ４１０は、基準領域ＳＰ内の複数個の画素を１個ずつ注目画素ＴＰとして選択して、注目画素ＴＰがばらつき画素であるか非ばらつき画素であるかを判断する。具体的には、図８に示すように、ＣＰＵ４１０は、注目画素ＴＰを中心とする横３画素×３画素分の領域ＦＬ内の画素を用いて、当該判断を実行する。まず、図８の式に示すように、ＣＰＵ４１０は、注目画素ＴＰの値（Ｒ０、Ｂ０、Ｂ０）と、周囲の８個の画素の値（Ｒｎ、Ｇｎ、Ｂｎ）のそれぞれと、の差分ΔＶｎを算出する。ｎは、注目画素の周囲の８個の画素を識別する１〜８までの番号であり、図８の領域ＦＬ内の各画素に付された番号である。ΔＶｎは、図８に式で示すように、３種類の成分値の差分の絶対値の和で表される。すなわち、ΔＶｎは、（Ｒｎ−Ｒ０）の絶対値と、（Ｇｎ−Ｇ０）の絶対値と、（Ｂｎ−Ｂ０）の絶対値と、の合計値で表される。ＣＰＵ４１０は、図８に式で示すように、算出された８個の差分ΔＶｎの合計値を、注目画素ＴＰのばらつき値Ｖとして算出する。
【００３７】
注目画素ＴＰのばらつき値Ｖが、所定の閾値Ｖｔｈ以上である場合には、注目画素ＴＰは、ばらつき画素であると判断される。注目画素ＴＰのばらつき値Ｖが、所定の閾値Ｖｔｈ未満である場合には、注目画素ＴＰは、非ばらつき画素であると判断される。これによって、基準領域ＳＰ内の全ての画素が、ばらつき画素と非ばらつき画素とのいずれかに分類される。以上の説明から解るように、ばらつき画素は、周囲の複数個の画素との値の差が基準以上の画素である、と言うことができる。非ばらつき画素は、周囲の複数個の画素との値の差が基準未満の画素である、と言うことができる。
【００３８】
図７（Ｂ）には、基準領域ＳＰ内の複数個の画素を、ばらつき画素と非ばらつき画素とに分類することによって得られる二値画像ＥＰが示されている。二値画像ＥＰは、例えば、ばらつき画素と判断された画素の値を「１」とし、非ばらつき画素と判断された画素の値を「０」とすることによって、得られる。二値画像ＥＰ内のシングルハッチングされた第１の領域ＳＶは、複数個の非ばらつき画素によって構成される領域、すなわち、内部の複数個の画素の値のばらつきが比較的小さな領域を示す。二値画像ＥＰ内のクロスハッチングされた第２の領域ＢＶは、複数個のばらつき画素によって構成される領域、すなわち、内部の複数個の画素の値のばらつきが比較的大きな領域を示す。例えば、第２の領域ＢＶは、基準領域ＳＰのうち、オブジェクトのエッジを多く含む領域が含まれる。また、第１の領域ＳＶには、背景を示す領域や、オブジェクトの内部の色の変化が乏しい領域が含まれる。
【００３９】
したがって、基準領域ＳＰに占める第２の領域ＢＶの割合、すなわち、基準領域ＳＰ内の画素の総数Ｎｔに対するばらつき画素の個数Ｎｖの割合（Ｎｖ／Ｎｔ）は、処理対象の右側スキャン画像２０Ｒごとに異なる。具体的には、基準領域ＳＰが配置される位置に、オブジェクトのエッジなどの特徴的な部分が比較的多いスキャン画像が処理対象である場合には、（Ｎｖ／Ｎｔ）は比較的大きくなる。また、基準領域ＳＰが配置される位置に、背景を示す領域や、オブジェクトの内部の色の変化が乏しい部分が比較的多いスキャン画像が処理対象である場合には、（Ｎｖ／Ｎｔ）は比較的小さくなる。
【００４０】
Ｓ１１５では、ＣＰＵ４１０は、基準領域ＳＰ内の画素の総数Ｎｔに対するばらつき画素の個数Ｎｖの割合（Ｎｖ／Ｎｔ）を算出する。Ｓ１２０では、ＣＰＵ４１０は、間引率ＴＲ（単位は％）を算出する。間引率ＴＲは、以下の式（１）を用いて算出される。
ＴＲ＝｛０．２＋０．７×（Ｎｖ／Ｎｔ）｝×１００    ...（１）
【００４１】
Ｓ１２５では、ＣＰＵ４１０は、間引率ＴＲに基づいてマスクデータを生成するマスクデータ生成処理を実行する。図９は、マスクデータ生成処理のフローチャートである。図１０は、マスクデータ生成処理の説明図である。マスクデータは、参照画素を示す値（「ＯＮ」）と、非参照画素を示す値（「ＯＦＦ」）と、のいずれかの値を、画素ごとに有する二値画像データである。すなわち、マスクデータ生成処理は、間引率ＴＲに基づいて、基準領域ＳＰ内の複数個の画素のそれぞれを、参照画素と非参照画素とのいずれかに決定する処理である、と言うことができる。
【００４２】
図９のＳ２００では、ＣＰＵ４１０は、マスクデータの初期データをバッファ領域４２１内に準備する。初期データは、基準領域ＳＰと同じサイズ（縦方向および横方向の画素数）の領域を表す二値画像データであり、全ての画素の値が、初期値、すなわち、「ＯＦＦ」にセットされている。図１０（Ａ）には、初期データによって表される初期状態のマスク画像ＭＰａが示されている。
【００４３】
Ｓ２０５では、ＣＰＵ４１０は、誤差値ＥＶを初期化する（ゼロにする）。誤差値ＥＶは、マスクデータを生成するために用いられるパラメータである。
【００４４】
Ｓ２１０では、初期状態のマスク画像ＭＰａ内の複数個の画素ＰＸから１個の注目画素を選択する。図１０（Ａ）において矢印で示すように、例えば、マスク画像ＭＰａ内の複数個の画素ＰＸは、左上の端から右方向に順次に１個ずつ注目画素として選択され、横方向の１行分の画素が選択されると、１行下の複数個の画素が左上の端から右方向に順次に１個ずつ選択される。
【００４５】
Ｓ２１５では、現在の誤差値ＥＶに間引率ＴＲが加算される（ＥＶ←ＥＶ＋ＴＲ）。Ｓ２２０では、ＣＰＵ４１０は、加算後の誤差値ＥＶが１００以上であるか否かを判断する。誤差値ＥＶが１００以上である場合には（Ｓ２２０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ２２５において、注目画素の値を「ＯＦＦ」に決定する。すなわち、ＣＰＵ４１０は、注目画素の値を、初期値「ＯＦＦ」のまま維持する。続くＳ２３０では、ＣＰＵ４１０は、誤差値ＥＶを初期化する（ゼロにする）。
【００４６】
誤差値ＥＶが１００未満である場合には（Ｓ２２０：ＮＯ）、ＣＰＵ４１０は、Ｓ２３５において、注目画素の値を「ＯＮ」に決定する。すなわち、ＣＰＵ４１０は、注目画素の値を、初期値「ＯＦＦ」から「ＯＮ」に変更する。
【００４７】
Ｓ２４０では、ＣＰＵ４１０は、マスク画像ＭＰａ内の全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ２４０：ＮＯ）、ＣＰＵ４１０は、Ｓ２１０に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ２４０：ＹＥＳ）、ＣＰＵ４１０は、マスクデータ生成処理を終了する。マスクデータ生成処理が終了した時点で、マスクデータが生成されている。
【００４８】
図１０（Ｂ）、図１０（Ｃ）には、マスクデータ生成処理によって生成されたマスクデータによって表されるマスク画像の一例が示されている。図１０（Ｂ）、図１０（Ｃ）のマスク画像ＭＰｂ、ＭＰｃ内のハッチングされた画素は、「ＯＮ」の画素であり、ハッチングされていない画素は、「ＯＦＦ」の画素である。図１０（Ｂ）のマスク画像ＭＰｂは、間引率ＴＲが２５％である場合のマスク画像である。このマスク画像ＭＰｂでは、２５％の画素が「ＯＦＦ」の画素とされ、７５％の画素が「ＯＮ」の画素とされている。図１０（Ｃ）のマスク画像ＭＰｃは、間引率ＴＲが５０％である場合のマスク画像である。このマスク画像ＭＰｃでは、５０％の画素が「ＯＦＦ」の画素とされ、５０％の画素が「ＯＮ」の画素とされている。なお、図７（Ｃ）にも、図７（Ａ）に示す基準領域ＳＰに対応して、図９のマスクデータ生成処理にて生成されるマスク画像ＭＰが例示されている。図９のマスク画像ＭＰは、間引率ＴＲが５０％である場合の例である。
【００４９】
以上の説明から解るように、基準領域ＳＰ内の画素の総数に占める参照画素の割合を参照率ＲＲとすると、間引率ＴＲが２５％であることは、参照率ＲＲが７５％であることを意味し、間引率ＴＲが５０％であることは、参照率ＲＲが５０％であることを意味する。すなわち、ＲＲ＝（１００−ＴＲ）である。参照率ＲＲは、後述する対応領域決定処理において、類似度を算出する際に、基準領域ＳＰ内の複数の画素の値を参照する程度を示す値である、と言うことができる。
【００５０】
上述した式（１）に示すように、間引率ＴＲは、基準領域ＳＰ内の画素の総数Ｎｔに対するばらつき画素の個数Ｎｖの比率（Ｎｖ／Ｎｔ）、すなわち、基準領域ＳＰ内に占めるばらつき画素の割合（Ｎｖ／Ｎｔ）に応じて、２０％〜９０％の値に決定される。（Ｎｖ／Ｎｔ）が大きいほど、間引率ＴＲは大きくなり、（Ｎｖ／Ｎｔ）が小さいほど、間引率ＴＲは小さくなる。
【００５１】
したがって、参照率ＲＲは、基準領域ＳＰ内に占めるばらつき画素の割合（Ｎｖ／Ｎｔ）に応じて、１０％〜８０％の値に決定される。（Ｎｖ／Ｎｔ）が大きいほど、参照率ＲＲは小さくなり、（Ｎｖ／Ｎｔ）が小さいほど、参照率ＲＲは大きくなる。
【００５２】
マスクデータ生成処理が終了されると、図６の参照画素決定処理は終了される。参照画素決定処理が終了されると、図２のＳ３５では、ＣＰＵ４１０は、対応領域決定処理を実行する。対応領域決定処理は、右側スキャン画像２０Ｒ内の基準領域ＳＰに対応する左側スキャン画像２０Ｌ内の対応領域ＣＰを決定する処理である。基準領域ＳＰに対応する対応領域ＣＰは、次のように定義できる。右側スキャン画像２０Ｒ内の基準領域ＳＰ内に表されている原稿１０の一部分を特定部分ＳＰＴ（図３）とする。基準領域ＳＰに対応する対応領域ＣＰは、左側スキャン画像２０Ｌにおいて、原稿１０の特定部分ＳＰＴを表す領域である。
【００５３】
図１１は、対応領域決定処理のフローチャートである。Ｓ３００では、ＣＰＵ４１０は、左側スキャン画像２０Ｌ内に探索領域ＳＡを決定する。図５（Ａ）の左側スキャン画像２０Ｌ内には、探索領域ＳＡが示されている。探索領域ＳＡは、予め定められた領域である。探索領域ＳＡの縦方向の長さは、左側スキャン画像２０Ｌの縦方向の全長に等しい。探索領域ＳＡの左右方向の長さは、例えば、左側スキャン画像２０Ｌの左右方向の長さの２０％〜５０％である。
【００５４】
Ｓ３０５では、ＣＰＵ４１０は、探索領域ＳＡ内に配置可能な複数個の候補領域の中から、１個の注目候補領域を選択する。図１２は、探索領域ＳＡ内に配置可能な複数個の候補領域について説明する図である。
【００５５】
候補領域のサイズは、右側スキャン画像２０Ｒ内の基準領域ＳＰ（図５）のサイズと同じである。探索領域ＳＡの上辺および右辺と、上辺および右辺が一致する候補領域ＮＰａの右上の点Ｐａの座標を（１、１）とする。探索領域ＳＡの下辺および右辺と、下辺および右辺が一致する候補領域ＮＰｂの右上の点Ｐｂの座標を（１、ｍ）とする。探索領域ＳＡの上辺および左辺と、上辺および左辺が一致する候補領域ＮＰｃの右上の点Ｐｃの座標を（ｋ、１）とする。探索領域ＳＡの下辺および左辺と、下辺および左辺が一致する候補領域ＮＰｄの右上の点Ｐｄの座標を（ｋ、ｍ）とする。
【００５６】
候補領域の右上の点は、（ｐ、ｑ）で表される（ｋ×ｍ）個の座標のうち、任意の座標に位置することができる。ここで、ｐは、１以上ｋ以下の任意の整数であり、ｑは、１以上ｍ以下の任意の整数である。したがって、探索領域ＳＡ内には、（ｋ×ｍ）個の候補領域が設定可能である。
【００５７】
図１２に矢印で示すように、これらの（ｋ×ｍ）個の候補領域の中から、右上の端の候補領域ＮＰａが最初の注目候補領域として選択される。そして、１画素ずつ下方向に位置がずれた候補領域が、順次に選択される。そして、右下の端の候補領域ＮＰｂが選択されると、右上の端の候補領域ＮＰａの位置から１画素だけ左方向にずれた候補領域が選択される。その後は、再び１画素ずつ下方向に位置がずれた候補領域が、順次に選択される。最後に選択される候補領域は、左下の端の候補領域ＮＰｄである。
【００５８】
１個の注目候補領域が選択されると、Ｓ３１０では、ＣＰＵ４１０は、右側スキャン画像２０Ｒ内の基準領域ＳＰ（図７（Ａ））内の全ての画素のうち、１個の画素を注目画素として選択する。
【００５９】
Ｓ３２０では、ＣＰＵ４１０は、注目画素に対応するマスク画像ＭＰ（図７（Ｃ））内の画素（以下、対応マスク画素とも呼ぶ。）の値に基づいて、注目画素が参照画素であるか否かを判断する。具体的には、対応マスク画素の値が、「ＯＮ」である場合には、注目画素は参照画素であると判断される。対応マスク画素の値が、「ＯＦＦ」である場合には、注目画素は参照画素でないと判断される。
【００６０】
注目画素が、参照画素である場合には（Ｓ３２０：ＹＥＳ）、Ｓ３２５において、ＣＰＵ４１０は、基準領域ＳＰ内の注目画素の値と、当該注目画素に対応する注目候補領域内の画素の値と、の差ΔＶＰを算出する。差ΔＶＰを算出すべき２個の画素の値を、（Ｒ１、Ｇ１、Ｂ１）と（Ｒ２、Ｇ２、Ｂ２）とする。差ΔＶＰは、３種類の成分値間の差分の絶対値の和で表される。すなわち、差ΔＶＰは、（Ｒ１−Ｒ２）の絶対値と、（Ｇ１−Ｇ２）の絶対値と、（Ｂ１−Ｂ２）の絶対値と、の合計値で表される。これに代えて、差ΔＶＰには、（Ｒ１、Ｇ１、Ｂ１）と（Ｒ２、Ｇ２、Ｂ２）とのユークリッド距離が用いられても良い。
【００６１】
続くＳ３３０では、ＣＰＵ４１０は、算出された差ΔＶＰが、所定の基準値ＴＨ１以下であるか否かを判断する。差ΔＶＰが、所定の基準値ＴＨ１以下である場合には（Ｓ３３０：ＹＥＳ）、Ｓ３３５において、ＣＰＵ４１０は、類似画素数ＳＣをカウントアップする。差ΔＶＰが、所定の基準値ＴＨ１以下である場合には、基準領域ＳＰ内の注目画素と、当該注目画素に対応する注目候補領域内の画素とは、類似する画素であると判断できるからである。
【００６２】
差ΔＶＰが、所定の基準値ＴＨ１より大きい場合には（Ｓ３３０：ＮＯ）、ＣＰＵ４１０は、Ｓ３３５をスキップして、処理をＳ３４０に進める。
【００６３】
上述したＳ３２０にて、注目画素が、非参照画素である場合には（Ｓ３２０：ＮＯ）、Ｓ３２５において、ＣＰＵ４１０は、Ｓ３２５〜Ｓ３３５をスキップして、処理をＳ３４０に進める。
【００６４】
Ｓ３４０では、ＣＰＵ４１０は、基準領域ＳＰ内の全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ３４０：ＮＯ）、ＣＰＵ４１０は、Ｓ３１０に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ３４０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３４２に処理を進める。
【００６５】
Ｓ３４２では、ＣＰＵ４１０は、基準領域ＳＰと、注目候補領域と、の類似度（ＳＣ／Ｎｒｔ）を算出する。類似度（ＳＣ／Ｎｒｔ）は、基準領域ＳＰ内の参照画素の総数Ｎｒｔに対する類似画素数ＳＣの割合である。類似度（ＳＣ／Ｎｒｔ）が大きいほど、基準領域ＳＰと、注目候補領域とは、類似している。
【００６６】
Ｓ３４５では、ＣＰＵ４１０は、類似度（ＳＣ／Ｎｒｔ）が、閾値ＴＨ２以上であるか否かを判断する。
【００６７】
類似度（ＳＣ／Ｎｒｔ）が、閾値ＴＨ２以上である場合には（Ｓ３４５：ＹＥＳ）、Ｓ３５０において、ＣＰＵ４１０は、現在の注目候補領域を、基準領域ＳＰに対応する対応領域ＣＰとして決定して、対応領域決定処理を終了する。
【００６８】
類似度（ＳＣ／Ｎｒｔ）が、閾値ＴＨ２未満である場合には（Ｓ３４５：ＮＯ）、Ｓ３５５において、ＣＰＵ４１０は、探索領域ＳＡ内の全ての候補領域（図１２）を注目候補領域として処理したか否かを判断する。未処理の候補領域がある場合には（Ｓ３５５：ＮＯ）、ＣＰＵ４１０は、Ｓ３６０において、類似画素数ＳＣを初期化したうえで、Ｓ３０５に戻って、未処理の候補領域を注目候補領域として選択する。全ての候補領域が処理された場合には（Ｓ３５５：ＹＥＳ）、ＣＰＵ４１０は、基準領域ＳＰに対応する対応領域ＣＰを決定できないまま、対応領域決定処理を終了する。
【００６９】
図５（Ａ）には、左側スキャン画像２０Ｌの探索領域ＳＡ内に、決定された対応領域ＣＰが図示されている。
【００７０】
対応領域決定処理が終了すると、図２のＳ４０では、ＣＰＵ４１０は、合成処理を実行する。合成処理は、右側スキャンデータと左側スキャンデータとを用いて、右側スキャン画像２０Ｒ内の右側原稿画像ＨＩＲと、左側スキャン画像２０Ｌ内の左側原稿画像ＨＩＬと合成された合成画像を表す合成画像データが生成される。
【００７１】
図１３は、合成画像３０の一例を示す図である。図１３に示すように、合成画像３０において、右側原稿画像ＨＩＲと左側原稿画像ＨＩＬとは、右側原稿画像ＨＩＲ内の基準領域ＳＰと、左側原稿画像ＨＩＬ内の対応領域ＣＰと、が重なるように、合成される。合成画像３０において、右側原稿画像ＨＩＲと左側原稿画像ＨＩＬとが互いに重なり合う領域内の画素の値には、例えば、右側原稿画像ＨＩＲ（右側スキャン画像２０Ｒ）内の画素の値が優先的に採用される。これによって、右側原稿画像ＨＩＲと左側原稿画像ＨＩＬとが合成されて、図３の原稿１０を表す合成画像３０が生成される。
【００７２】
なお、図１１の対応領域決定処理において、基準領域ＳＰに対応する対応領域ＣＰを決定できなかった場合には（図１１のＳ３５５：ＹＥＳ）、例えば、機械的に、左側スキャン画像２０Ｌの右端の辺と、右側スキャン画像２０Ｒの左端の辺と、が接するように、２個のスキャン画像が合成された合成画像を表す合成画像データが生成される（図示省略）。
【００７３】
図２のＳ４５では、ＣＰＵ４１０は、生成された合成画像データを複合機２００に対して送信する。複合機２００のＣＰＵ２１０は、合成画像データを受信すると、受信した合成画像データを不揮発性記憶装置２３０に格納するとともに、ユーザに合成画像データを受信したことを通知する。合成画像データは、ユーザの利用に供される。ユーザは、例えば、複合機２００に、これらの合成画像データを用いて、合成画像３０を印刷させることができる。
【００７４】
上記実施例によれば、右側スキャン画像２０Ｒ内の基準領域ＳＰ内の複数個の画素の値のばらつきを示す値、すなわち、上述した基準領域ＳＰ内の画素の総数Ｎｔに対するばらつき画素の個数Ｎｖの割合（Ｎｖ／Ｎｔ）が算出される（図６のＳ１１５）。そして、ばらつきを示す値（Ｎｖ／Ｎｔ）に基づいて、間引率ＴＲが算出される（図６のＳ１２０）。上述したように、間引率ＴＲは、基準領域ＳＰ内の画素の総数に占める参照画素の割合を示す参照率ＲＲと、ＲＲ＝（１００−ＴＲ）という関係がある。すなわち、図６のＳ１２０にて、間引率ＴＲが決定されることは、参照率ＲＲが決定されることと同義である。
【００７５】
そして、間引率ＴＲに基づいて（換言すれば、参照率ＲＲに基づいて）、基準領域ＳＰと、複数個の候補領域のそれぞれと、の類似度（ＳＣ／Ｎｒｔ）が算出される。より具体的には、間引率ＴＲに基づいて、マスク画像データが生成され（図６のＳ１２５）、マスク画像データを参照して、類似度（ＳＣ／Ｎｒｔ）が算出される（図１１のＳ３１０〜Ｓ３４２）。そして、類似度（ＳＣ／Ｎｒｔ）に基づいて、複数の候補領域のうちの１つの候補領域が、対応領域ＣＰとして決定される（図１１のＳ３５０）。したがって、合成画像３０（図１３）において、右側原稿画像ＨＩＲと左側原稿画像ＨＩＬとを合成する位置を決定する精度（以下、単に合成精度と呼ぶ）の低下を抑制することができる。
【００７６】
換言すれば、ＣＰＵ４１０は、基準領域ＳＰ内の複数個の画素の値のばらつきに基づいて、基準領域ＳＰ内のＮ個（Ｎは３以上の整数）の画素（具体的には、基準領域ＳＰ内の全ての画素）の中から、類似度の算出に用いられるＭ個（Ｍは１以上Ｎ未満の整数）の画素（具体的には、参照画像）を決定する（図６のＳ１２５）。そして、ＣＰＵ４１０は、基準領域ＳＰ内のＭ個の画素と、基準領域ＳＰ内のＭ個の画素に対応する各候補領域内のＭ個の画素と、を用いて、類似度（ＳＣ／Ｎｒｔ）が算出される（図１１のＳ３１０〜Ｓ３４２）。この結果、適切な個数の画素を用いて類似度（ＳＣ／Ｎｒｔ）が算出されるので、対応領域ＣＰを適切に決定することができる。したがって、合成画像３０における右側スキャン画像２０Ｒと左側スキャン画像２０Ｌとの合成位置を決定する精度の低下を抑制することができる。
【００７７】
具体的には、図１１の対応領域決定処理において、基準領域ＳＰ内の全ての画素を参照画素とすると、計算負荷が過度に高くなる可能性がある。しかしながら、参照率ＲＲを単純に低くする場合には、計算負荷を低減することはできるが、合成精度が低下する可能性があった。一方で、基準領域ＳＰ内の複数個の画素のばらつきが比較的大きい場合には、基準領域ＳＰ内にエッジなどの特徴的な要素が比較的多く含まれていると考えられる。この場合には、参照率ＲＲを低くしても十分な合成精度を達成できる可能性が高い。一方、基準領域ＳＰ内の複数個の画素のばらつきが比較的小さい場合には、基準領域ＳＰ内は、背景を示す領域や、オブジェクトの内部の色の変化が乏しい領域などの比較的特徴がない画像が比較的多く含まれていると考えられる。この場合には、合成精度を確保することが困難になるので、参照率ＲＲを低くすると十分な合成精度を達成できない可能性がある。このため、この場合には、参照率ＲＲを高くすることが好ましい。本実施例では、ＣＰＵ４１０は、基準領域ＳＰ内の複数個のばらつきを示す値（Ｎｖ／Ｎｔ）が小さいほど、高い参照率ＲＲを決定している、換言すれば、値（Ｎｖ／Ｎｔ）が小さいほど、低い間引率ＴＲを決定している（図６のＳ１２０）。そして、ＣＰＵ４１０は、参照率ＲＲが高いほど、基準領域ＳＰ内の多数の画素の値を用いて、類似度（ＳＣ／Ｎｒｔ）を算出している（図１１）。換言すれば、基準領域ＳＰ内の複数個の画素の値のばらつきが小さいほど、類似度（ＳＣ／Ｎｒｔ）の算出に用いられる基準領域ＳＰ内の画素の個数Ｍが大きくされる。この結果、合成精度の低下を抑制しつつ、処理速度の向上を図ることができる。
【００７８】
さらに、上記実施例では、ＣＰＵ４１０は、参照率ＲＲに基づいて、換言すれば、間引率ＴＲに基づいて、参照画素と非参照画素とを定義するマスクデータを生成している（図９、図１０）。すなわち、参照率ＲＲに基づいて、基準領域ＳＰの複数個の画素の中から、複数個の参照画素が決定される。そして、決定された複数個の参照画素の値を用いて類似度（ＳＣ／Ｎｒｔ）が算出される（図１１）。そして、決定される参照画素の個数は、参照率ＲＲが高いほど多い、換言すれば、間引率ＴＲが低いほど多い（図１０）。したがって、基準領域ＳＰ内の複数個の画素のうち、適切な個数の参照画素の値を用いて、類似度（ＳＣ／Ｎｒｔ）を適切に算出できる。この結果、合成精度の低下を抑制しつつ、処理速度の向上を図ることができる。
【００７９】
また、類似度は、基準領域ＳＰ内の参照画素の値と、当該参照画素に対応する候補領域内の画素の値と、の差ΔＶＰに基づいて算出される（図１１のＳ３２５）。したがって、基準領域ＳＰ内の複数個の画素のうち、類似度の算出に用いられる画素の個数が多くなれば、候補領域内の複数個の画素のうち、類似度の算出に用いられる画素の個数も多くなる。すなわち、ＣＰＵ４１０は、参照率ＲＲが高いほど、類似度を算出する際に用いる基準領域ＳＰ内の画素の個数と、類似度を算出する際に用いる候補領域内の画素の個数と、をそれぞれ多くする。したがって、参照率ＲＲに応じて適切な個数の画素を用いて、類似度が算出されるので、合成精度の低下を適切に抑制することができる。
【００８０】
Ｂ．第２実施例
第２実施例の参照画素決定処理は、第１実施例の参照画素決定処理と異なる処理を含んでいる。第２実施例のその他の点は、第１実施例と同じである。図１４は、第２実施例の参照画素決定処理のフローチャートである。図１５は、第２実施例の参照画素決定処理の説明図である。
【００８１】
図１４の第２実施例の参照画素決定処理では、図６の第１実施例の参照画素決定処理と同様にＳ１０５とＳ１１０の処理が実行される。この結果、第１実施例と同様に、基準領域ＳＰ内の複数個の画素は、ばらつき画素と、非ばらつき画素と、に分類される。図１５（Ｂ）には、ばらつき画素と非ばらつき画素とに分類することによって得られる二値画像ＥＰが示されている。図１５（Ｂ）に示す二値画像ＥＰによって、基準領域ＳＰは、複数個の非ばらつき画素によって構成される第１の領域ＳＶと、複数個のばらつき画素によって構成される第２の領域ＢＶと、に分離される。換言すれば、基準領域ＳＰは、内部の複数個の画素の値のばらつきが比較的小さな第１の領域ＳＶと、内部の複数個の画素の値のばらつきが比較的大きな第２の領域ＢＶと、に分離される。
【００８２】
図１４の第２実施例の参照画素決定処理では、図６のＳ１１５〜Ｓ１２５に代えて、Ｓ１２０Ｂの処理が実行される。Ｓ１２０Ｂでは、ＣＰＵ４１０は、基準領域ＳＰのうち、複数個の非ばらつき画素で構成される第１の領域ＳＶ内の複数個の画素が間引かれたマスクデータを生成する。具体的には、ＣＰＵ４１０は、第１の領域ＳＶの参照率ＲＲ１を５０％に設定し、第２の領域ＢＶ内の参照率ＲＲ２を１００％に設定する。そして、ＣＰＵ４１０は、当該参照率ＲＲ１、ＲＲ２に従って、マスクデータを生成する。生成されるマスクデータによって表されるマスク画像ＭＰ内の第１の領域ＳＶ内には、参照画素を示す「ＯＮ」の画素と、非参照画素を示す「ＯＦＦ」の画素と、が５０％ずつ配置され、第２の領域ＢＶ内には、参照画素を示す「ＯＮ」の画素のみが配置される（図１５（Ｃ））。
【００８３】
以上説明した第２実施例によれば、基準領域ＳＰの第１の領域ＳＶの参照率と、第２の領域の参照率とが、互いに異なるレベルに決定される。すなわち、ばらつきが互いに異なる第１の領域ＳＶと第２の領域ＢＶとに対して、それぞれ異なる参照率が決定される。
【００８４】
換言すれば、ＣＰＵ４１０は、基準領域ＳＰ内の複数個の画素のばらつきに基づいて、第１の領域ＳＶと、第２の領域ＢＶと、を特定している（図１４のＳ１１０、図１５（Ｂ））。そして、類似度（ＳＣ／Ｎｒｔ）の算出に用いられるＭ個の画素の一部として、第１の領域ＳＶ内のＮ１個（Ｎ１は２以上の整数）の画素の中から、Ｍ１個（Ｍ１は１以上Ｎ１未満の整数）の画素が定されるとともに、第２の領域ＢＶ内のＮ２個（Ｎ２は２以上の整数）の画素の中から、Ｍ２個（Ｍ２は１以上Ｎ２未満の整数）の画素が決定される（図１４のＳ１２０Ｂ）。そして、第１の領域ＳＶ内のＮ１個の画素に対するＭ１個の画素の割合（Ｍ１／Ｎ１）、すなわち、第１の領域ＳＶの参照率ＲＲ１（具体的には、５０％）と、第２の領域ＢＶ内のＮ２個の画素に対するＭ２個の画素の割合（Ｍ２／Ｎ２）、すなわち、第２の領域ＢＶの参照率ＲＲ２（具体的には、１００％）とは、互いに異なる。その結果、合成画像データによって表される合成画像における右側原稿画像ＨＩＲと左側原稿画像ＨＩＬとの合成精度を向上することができる。
【００８５】
より具体的には、ばらつきが比較的大きな第２の領域ＢＶの参照率ＲＲ２（すなわち、割合（Ｍ２／Ｎ２））は、ばらつきが比較的小さな第１の領域ＳＶの参照率ＲＲ１（すなわち、割合（Ｍ１／Ｎ１））より大きい。この結果、合成画像における合成精度を向上することができる。
【００８６】
画素のばらつきが比較的小さい領域内の画素の値に基づいて、基準領域ＳＰに対応する対応領域ＣＰが決定されると、ばらつきが比較的大きな領域内の画素の値に基づいて、基準領域ＳＰに対応する対応領域ＣＰが決定される場合と比較して、誤った領域が対応領域ＣＰに決定されやすい。換言すれば、エッジなどがあまり存在しない領域を基準にして、類似する領域を探索するよりも、エッジが多く存在する領域を基準にして、類似する領域を探索するほうが、精度良く類似する領域を探索できる。第２実施例によれば、画素のばらつきが第１の領域ＳＶより大きい第２の領域ＢＶの参照率を第１の領域より高くするので、基準領域ＳＰに対応する対応領域ＣＰをより精度良く決定することができる。したがって、合成画像における合成精度を向上することができる。
【００８７】
第２実施例では、第１の領域ＳＶ内の複数個の画素のうちの第１の割合（具体的には、５０％）の画素の値と、第２の領域ＢＶ内の複数個の画素のうちの第２の割合（具体的には１００％）の画素の値と、を用いて、類似度（ＳＣ／Ｎｒｔ）が算出される。そして、
第２の割合は、第１の割合より高く設定されている。これによって、第１の領域ＳＶの参照率が、第２の領域ＢＶの参照率より高くなる。この結果、合成画像３０における合成精度が向上できる。
【００８８】
Ｃ．第３実施例
第３実施例では、図１４の第２実施例の参照画素決定処理のＳ１２０Ｂの処理は、省略される。したがって、第３実施例の参照画素決定処理は、図１５（Ｂ）に示すように、基準領域ＳＰの内部の複数個の画素が、ばらつき画素と非ばらつき画素とに分類された時点で終了される。
【００８９】
第３実施例の対応領域決定処理は、第１実施例および第２実施例の対応領域決定処理（図１１）と異なる処理を含んでいる。第３実施例のその他の点は、第２実施例と同じである。図１６は、第３実施例の対応領域決定処理のフローチャートである。図１６のフローチャートにおいて、図１１の対応領域決定処理と異なるステップについては、符号の末尾に「Ｃ」を付し、図１１の対応領域決定処理と同一のステップについては、図１１のフローチャートと同じ符号を付した。
【００９０】
図１６の第３実施例の対応領域決定処理では、第１の類似画素数ＳＣ１と、第２の類似画素数ＳＣ２と、の２種類のパラメータが用いられる。図１６の第３実施例の対応領域決定処理では、Ｓ３２０Ｃにおいて、ＣＰＵ４１０は、図１５（Ｂ）の二値画像ＥＰを参照して、注目画素がばらつき画素であるか否かを判断する。
【００９１】
そして、注目画素がばらつき画素である場合には（Ｓ３２０Ｃ：ＹＥＳ）、すなわち、注目画素が、ばらつき画素で構成される第２の領域ＢＶに属する場合には、ＣＰＵ４１０は、図１１のＳ３２５、Ｓ３３０と同様に、基準領域ＳＰ内の注目画素の値と、当該注目画素に対応する注目候補領域内の画素の値と、の差ΔＶＰを算出し（Ｓ３２５）、差ΔＶＰが、所定の基準値ＴＨ１以下であるか否かを判断する（Ｓ３３０）。そして、差ΔＶＰが、所定の基準値ＴＨ１以下である場合には（Ｓ３３０：ＹＥＳ）、Ｓ３３５Ｃにおいて、ＣＰＵ４１０は、第２の類似画素数ＳＣ２をカウントアップする。また、差ΔＶＰが、所定の基準値ＴＨ１より大きい場合には（Ｓ３３０：ＮＯ）、ＣＰＵ４１０は、Ｓ３３５Ｃをスキップして、処理をＳ３４０に進める。
【００９２】
注目画素が非ばらつき画素である場合には（Ｓ３２０Ｃ：ＮＯ）、すなわち、注目画素が、非ばらつき画素で構成される第１の領域ＳＶに属する場合には、ＣＰＵ４１０は、図１１のＳ３２５、Ｓ３３０と同様に、基準領域ＳＰ内の注目画素の値と、当該注目画素に対応する注目候補領域内の画素の値と、の差ΔＶＰを算出し（Ｓ３３６Ｃ）、差ΔＶＰが、所定の基準値ＴＨ１以下であるか否かを判断する（Ｓ３３７Ｃ）。そして、差ΔＶＰが、所定の基準値ＴＨ１以下である場合には（Ｓ３３７Ｃ：ＹＥＳ）、Ｓ３３８Ｃにおいて、ＣＰＵ４１０は、第１の類似画素数ＳＣ１をカウントアップする。また、差ΔＶＰが、所定の基準値ＴＨ１より大きい場合には（Ｓ３３７Ｃ：ＮＯ）、ＣＰＵ４１０は、Ｓ３３８Ｃをスキップして、処理をＳ３４０に進める。
【００９３】
すなわち、第３実施例の対応領域決定処理では、注目画素が、図１５（Ｂ）の第１の領域ＳＶに属する画素（すなわち、非ばらつき画素）である場合には、注目画素と注目画素に対応する注目候補領域内の画素とが類似していることを条件に、第１の類似画素数ＳＣ１がカウントアップされる。そして、注目画素が、図１５（Ｂ）の第２の領域ＢＶに属する画素（すなわち、ばらつき画素）である場合には、注目画素と注目画素に対応する注目候補領域内の画素とが類似していることを条件に、第２の類似画素数ＳＣ２がカウントアップされる。
【００９４】
Ｓ３４０では、ＣＰＵ４１０は、基準領域ＳＰ内の全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ３４０：ＮＯ）、ＣＰＵ４１０は、Ｓ３１０に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ３４０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３４２Ｃに処理を進める。
【００９５】
Ｓ３４２Ｃでは、ＣＰＵ４１０は、第１の類似画素数ＳＣ１と、第２の類似画素数ＳＣ２と、を用いて、トータルの類似度ＳＣｔｏｔａｌを算出する。類似度ＳＣｔｏｔａｌは、以下の式（２）を用いて算出される。
ＳＣｔｏｔａｌ＝ＷＴ１×ＳＣ１＋ＷＴ２×ＳＣ２  ...（２）
【００９６】
ここで、ＷＴ１は、第１の領域ＳＶ内の画素、すなわち、非ばらつき画素に対する重み付けである。ＷＴ２は、第２の領域ＢＶ内の画素、すなわち、ばらつき画素に対する重み付けである。第２の領域ＢＶ内の画素に対する重み付けＷＴ２は、第１の領域ＳＶ内の画素に対する重み付けＷＴ１より大きい。本実施例では、ＷＴ１＝０．５、ＷＴ２＝１．０である。トータルの類似度ＳＣｔｏｔａｌが大きいほど、基準領域ＳＰと、注目候補領域とは、類似している。
【００９７】
上記式（２）の第１項（ＷＴ１×ＳＣ１）は、基準領域ＳＰ内の第１の領域ＳＶと、第１の領域ＳＶに対応する注目候補領域内の部分領域（第１の部分候補領域とも呼ぶ）と、の間の類似度（第１の部分類似度とも呼ぶ）と、言うことができる。上記式（２）の第２項（ＷＴ２×ＳＣ２）は、基準領域ＳＰ内の第２の領域ＢＶと、第２の領域ＢＶに対応する注目候補領域内の部分領域（第２の部分候補領域とも呼ぶ）と、の間の類似度（第２の部分類似度とも呼ぶ）と、言うことができる。
【００９８】
Ｓ３４５Ｃでは、ＣＰＵ４１０は、トータルの類似度ＳＣｔｏｔａｌが、閾値ＴＨ３以上であるか否かを判断する。
【００９９】
トータルの類似度ＳＣｔｏｔａｌが、閾値ＴＨ３以上である場合には（Ｓ３４５Ｃ：ＹＥＳ）、Ｓ３５０において、ＣＰＵ４１０は、現在の注目候補領域を、基準領域ＳＰに対応する対応領域ＣＰとして決定して、対応領域決定処理を終了する。
【０１００】
トータルの類似度ＳＣｔｏｔａｌが、閾値ＴＨ３未満である場合には（Ｓ３４５：ＮＯ）、Ｓ３５５において、ＣＰＵ４１０は、探索領域ＳＡ内の全ての候補領域（図１２）を注目候補領域として処理したか否かを判断する。未処理の候補領域がある場合には（Ｓ３５５：ＮＯ）、ＣＰＵ４１０は、Ｓ３６０Ｃにおいて、２個の類似画素数ＳＣ１、ＳＣ２を初期化したうえで、Ｓ３０５に戻って、未処理の候補領域を注目候補領域として選択する。全ての候補領域が処理された場合には（Ｓ３５５：ＹＥＳ）、ＣＰＵ４１０は、基準領域ＳＰに対応する対応領域ＣＰを決定できないまま、対応領域決定処理を終了する。
【０１０１】
以上説明した第３実施例によれば、ＣＰＵ４１０は、第１の重み値ＷＴ１を用いて、第１の部分類似度（ＷＴ１×ＳＣ１）を算出し、かつ、第２の重み値を用いて、第２の部分類似度（ＷＴ２×ＳＣ２）を算出することによって、基準領域ＳＰと、基準領域ＳＰに対応する左側スキャン画像２０Ｌ内の各候補領域と、の間の類似度ＳＣｔｏｔａｌを算出する。この結果、ばらつきが異なる２個の領域ＳＶ、ＢＶについての２個の部分類似度を適切に用いて類似度が算出されるので、対応領域ＣＰを適切に決定することができる。したがって、合成画像３０における右側スキャン画像２０Ｒと、左側スキャン画像２０Ｌとの合成位置を決定する精度を向上することができる。
【０１０２】
そして、ＣＰＵ４１０は、類似度ＳＣｔｏｔａｌを算出する際に、第２の領域ＢＶ内の複数個の画素ＷＴ２に対する重み付けを、第１の領域ＳＶ内の複数個の画素に対する重み付けＷＴ１より大きくしている。これによって、類似度ＳＣｔｏｔａｌを算出する際に、第２の領域ＢＶ内の画素の値を参照する程度が、第１の領域ＳＶ内の画素の値を参照する程度より高くされる。この結果、第２の領域ＢＶ内の画素の値（すなわち、ばらつき画素の値）の類似度ＳＣｔｏｔａｌに対する影響を比較的大きくすることによって、第２実施例と同様に、合成画像における合成精度を向上できる。
【０１０３】
Ｄ．第４実施例：
第４実施例の参照画素決定処理は、第１実施例の参照画素決定処理（図６）と異なる処理を含んでいる。第４実施例の対応領域決定処理は、第１実施例の対応領域決定処理（図１１）と異なる処理を含んでいる。第４実施例のその他の点は、第１実施例と同じである。
【０１０４】
図１７は、第４実施例の参照画素決定処理のフローチャートである。第４実施例の参照画素決定処理では、図６のＳ１２０、Ｓ１２５に代えて、Ｓ１２０Ｄ、Ｓ１２５Ｄの処理が行われる。Ｓ１２０Ｄでは、ＣＰＵ４１０は、縮小率ＳＲを決定する。縮小率ＳＲ（単位は％）には、第１実施例の参照率ＲＲと同じ値が用いられる。すなわち、縮小率ＳＲは、基準領域ＳＰ内の複数個の画素の値のばらつきに基づいて決定される。具体的には、縮小率ＳＲは、第１実施例の参照率ＲＲと同様に、基準領域ＳＰ内の複数個の画素の値のばらつきが小さいほど、大きな値になる。
【０１０５】
Ｓ１２５Ｄでは、ＣＰＵ４１０は、右側スキャン画像２０Ｒの基準領域ＳＰ内の画像を、Ｓ１２０で決定した縮小率ＳＲで縮小した縮小基準画像を生成する。具体的には、ＣＰＵ４１０は、基準領域ＳＰ内の画像の複数個の画素を適宜に間引くことによって、例えば、ニアレストネイバー法を用いて縮小率ＳＲに応じた個数の画素を間引くことによって、縮小基準画像を生成する。例えば、縮小基準画像の画素の個数は、縮小前の基準領域ＳＰ内の画像の画素の個数に、縮小率ＳＲを乗じた個数である。したがって、縮小基準画像の画素の個数は、縮小率ＳＲが高いほど、大きくなる。すなわち、縮小基準画像の画素の個数は、基準領域ＳＰ内の複数個の画素の値のばらつきが小さいほど、大きくなる。
【０１０６】
図１８は、第４実施例の対応領域決定処理のフローチャートである。図１８のＳ４００、Ｓ４０５の処理は、図１１のＳ３００、Ｓ３０５の処理と同一である。Ｓ４０７では、ＣＰＵ４１０は、注目候補領域内の画像を、Ｓ１２０で決定した縮小率ＳＲで縮小した縮小候補画像を生成する。縮小候補画像の生成法は、縮小基準画像の生成方法と同じである（例えば、ニアレストネイバー法）。縮小候補画像のサイズ（縦および横方向の画素数）は、図６のＳ１２５Ｄにて生成される縮小基準画像のサイズと同じである。すなわち、図６のＳ１２５Ｄにて生成される縮小基準画像内の各画素は、Ｓ４０７にて生成される縮小候補画像内の各画素と１対１で対応している。
【０１０７】
Ｓ４１０では、ＣＰＵ４１０は、縮小基準画像の全ての画素のうち、１個の画素を注目画素として選択する。
【０１０８】
Ｓ４２５では、ＣＰＵ４１０は、縮小基準画像内の注目画素の値と、当該注目画素に対応する縮小候補画像内の画素の値と、の差ΔＶＰを算出する。差ΔＶＰの算出法は、図１１のＳ３２５における差ΔＶＰの算出と同様である。続くＳ４３０では、ＣＰＵ４１０は、算出された差ΔＶＰが、所定の基準値ＴＨ１以下であるか否かを判断する。差ΔＶＰが、所定の基準値ＴＨ１以下である場合には（Ｓ４３０：ＹＥＳ）、Ｓ４３５において、ＣＰＵ４１０は、類似画素数ＳＣｍをカウントアップする。差ΔＶＰが、所定の基準値ＴＨ１より大きい場合には（Ｓ４３０：ＮＯ）、ＣＰＵ４１０は、Ｓ４３５をスキップして、処理をＳ４４０に進める。
【０１０９】
Ｓ４４０では、ＣＰＵ４１０は、縮小基準画像内の全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ４４０：ＮＯ）、ＣＰＵ４１０は、Ｓ４１０に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ４４０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ４４２に処理を進める。
【０１１０】
Ｓ４４２では、ＣＰＵ４１０は、縮小基準画像と、注目候補領域の縮小候補画像と、の類似度（ＳＣｍ／Ｎｍｔ）を算出する。類似度（ＳＣｍ／Ｎｍｔ）は、縮小基準画像内の画素の個数Ｎｍｔに対する類似画素数ＳＣｍの割合である。類似度（ＳＣｍ／Ｎｍｔ）が大きいほど、縮小基準画像と、注目候補領域の縮小候補画像とは、類似している。また、類似度（ＳＣｍ／Ｎｍｔ）が大きいほど、基準領域ＳＰと、注目候補領域とは、類似している。
【０１１１】
Ｓ４４５では、ＣＰＵ４１０は、類似度（ＳＣｍ／Ｎｍｔ）が、閾値ＴＨｍ以上であるか否かを判断する。類似度（ＳＣｍ／Ｎｍｔ）が、閾値ＴＨｍ以上である場合には（Ｓ４４５：ＹＥＳ）、Ｓ４５０において、ＣＰＵ４１０は、現在の注目候補領域を、基準領域ＳＰに対応する対応領域ＣＰとして決定して、対応領域決定処理を終了する。
【０１１２】
類似度（ＳＣｍ／Ｎｍｔ）が、閾値ＴＨｍ未満である場合には（Ｓ４４５：ＮＯ）、Ｓ４５５において、ＣＰＵ４１０は、探索領域ＳＡ内の全ての候補領域（図１２）を注目候補領域として処理したか否かを判断する。未処理の候補領域がある場合には（Ｓ４５５：ＮＯ）、ＣＰＵ４１０は、Ｓ４６０において、類似画素数ＳＣｍを初期化したうえで、Ｓ４０５に戻って、未処理の候補領域を注目候補領域として選択する。全ての候補領域が処理された場合には（Ｓ４５５：ＹＥＳ）、ＣＰＵ４１０は、基準領域ＳＰに対応する対応領域ＣＰを決定できないまま、対応領域決定処理を終了する。
【０１１３】
以上説明した第４実施例によれば、基準領域ＳＰ内の複数個の画素の値のばらつきに基づいて決定された縮小率ＳＲで縮小した縮小基準画像と縮小候補画像との間の類似度（ＳＣｍ／Ｎｍｔ）が算出される。この結果、適切なサイズ（すなわち、画素数）の縮小基準画像を用いて、類似度（ＳＣｍ／Ｎｍｔ）が算出されるので、第１実施例と同様に、対応領域を適切に決定することができる。したがって、合成画像３０における右側スキャン画像２０Ｒと左側スキャン画像２０Ｌとの合成位置を決定する精度の低下を抑制することができる。
【０１１４】
具体的には、ＣＰＵ４１０は、右側スキャン画像２０Ｒの基準領域ＳＰ内の複数個の画素の値のばらつきが小さいほど、縮小基準画像の画素の個数が大きくなるように、縮小率ＳＲを決定する。この結果、第１実施例と同様に、合成精度の低下を抑制しつつ、処理速度の向上を図ることができる。
【０１１５】
なお、縮小候補画像や縮小基準画像の生成法は、ニアレストネイバー法に限られない。例えば、縮小候補画像や縮小基準画像の生成法に、縮小前の画像内の複数個の画素の値の単純平均値や重み付き平均値を、縮小後の画像内の１個の画素の値として採用する方法、例えば、バイリニア法が用いられても良い。ただし、ニアレストネイバー法では、縮小前の画像内の特徴的な画素の値が平均化されて失われることを抑制できるので、より好ましい。
【０１１６】
Ｅ．変形例
（１）上記各実施例では、２個のスキャンデータを用いて、２個のスキャン画像が合成された合成画像を表す合成画像データが生成されている。これに限らず、任意の個数のスキャンデータを用いて合成画像データが生成されても良い。例えば、４個のスキャン画像データを用いて、４個のスキャン画像が合成された合成画像を表す合成画像データが生成されてもよい。
【０１１７】
（２）上記各実施例では、右側スキャン画像２０Ｒの基準領域ＳＰ内の複数個の画素の値のばらつきを示す値として、基準領域ＳＰ内の画素の総数Ｎｔに対するばらつき画素の個数Ｎｖの割合（Ｎｖ／Ｎｔ）が用いられている（図６のＳ１１５）。基準領域ＳＰ内の複数個の画素の値のばらつきを示す値には、（Ｎｖ／Ｎｔ）の値に代えて、例えば、基準領域ＳＰ内の複数個の画素の値の分散σ２、標準偏差σ、エッジ量が用いられても良い。
【０１１８】
（３）上記各実施例の対応領域決定処理において、基準領域ＳＰに対応する対応領域ＣＰを決定するアルゴリズムは、一例であり、他のアルゴリズムが採用されても良い。例えば、第１実施例や第２実施例の対応領域決定処理では、ＣＰＵ４１０は、基準領域ＳＰ内の各参照画素の値と、当該参照画素に対応する注目候補領域内の画素の値と、の差ΔＶＰを、基準領域ＳＰ内の全ての参照画素について合計した値ＶＰｔｏｔａｌを算出しても良い。そして、探索領域ＳＡ内に配置可能な複数個の候補領域のうち、当該合計値ＶＰｔｏｔａｌが最小である候補領域が、対応領域ＣＰとして決定されても良い。
【０１１９】
（４）上記第１実施例で間引率ＴＲの算出式（１）、すなわち、ＴＲ＝｛０．２＋０．７×（Ｎｖ／Ｎｔ）｝×１００は、一例である。間引率ＴＲは、基準領域ＳＰ内のばらつきが大きいほど大きくなるように規定された任意の式で算出され得る。例えば、式（１）の「０．２」と「０．７」のパラメータの値は、異なる値でも良く、具体的には、「０．３」と「０．６」の組み合わせでも良く、「０．１」と「０．８」の組み合わせでも良い。
【０１２０】
（５）上各記実施例では、合成画像データの生成に用いられる２個の画像データは、複合機２００のスキャナ部２５０によって原稿が読み取られることによって生成される２個のスキャンデータである。これに代えて、２個の画像データは、デジタルカメラによって原稿の複数個の領域を撮影することによって、２個の画像データが生成されても良い。
【０１２１】
（６）上記各実施例においてサーバ４００のＣＰＵ４１０によって実行される処理（例えば、図２のＳ２５〜Ｓ４０の処理）は、例えば、複合機２００のＣＰＵ２１０によって実行されても良い。この場合には、サーバ４００は不要であり、複合機２００が単体で図３の処理を実行すればよい。また、サーバ４００のＣＰＵ４１０によって実行される処理は、複合機２００と接続されたパーソナルコンピュータ５００（図１）のＣＰＵ（図示省略）によって実行されても良い。例えば、パーソナルコンピュータ５００のＣＰＵは、パーソナルコンピュータ５００にインストールされたスキャナドライバプログラムを実行することによって、これらの処理を実行しても良い。また、サーバ４００は、本実施例のように１つの計算機で構成されても良く、複数個の計算機を含む計算システムによって構成されていても良い。
【０１２２】
（７）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【符号の説明】
【０１２３】
２００...複合機、２１０...ＣＰＵ、２２０...揮発性記憶装置、２２１...バッファ領域、２３０...不揮発性記憶装置、２３１...制御プログラム、２４０...プリンタ部、２５０...スキャナ部、２６０...操作部、２７０...表示部、２８０...通信部、４００...サーバ、４１０...ＣＰＵ、４２０...揮発性記憶装置、４２１...バッファ領域、４３０...不揮発性記憶装置、４３１...コンピュータプログラム、４３３...ＵＩデータ群、４８０...通信部、５００...パーソナルコンピュータ、１０００...画像処理システム
【図１】
2015198274.tif 000003
【図２】
2015198274.tif 000004
【図３】
2015198274.tif 000005
【図４】
2015198274.tif 000006
【図５】
2015198274.tif 000007
【図６】
2015198274.tif 000008
【図７】
2015198274.tif 000009
【図８】
2015198274.tif 000010
【図９】
2015198274.tif 000011
【図１０】
2015198274.tif 000012
【図１１】
2015198274.tif 000013
【図１２】
2015198274.tif 000014
【図１３】
2015198274.tif 000015
【図１４】
2015198274.tif 000016
【図１５】
2015198274.tif 000017
【図１６】
2015198274.tif 000018
【図１７】
2015198274.tif 000019
【図１８】
2015198274.tif 000020