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