(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
１個の対象物の一部を示す第１の対象画像を含む第１の画像を表す第１の画像データと、前記対象物の他の一部を示す第２の対象画像を含む第２の画像を表す第２の画像データと、を取得する取得部と、
特定条件が満たされる場合に第１の配置方法を選択し、前記特定条件が満たされない場合に第２の配置方法を選択する方法選択部であって、前記特定条件は、前記第１の対象画像の第１の方向の端と前記第１の画像の前記第１の方向の端との間に含まれる連続する複数個の第１の画素の個数が比較的大きいことを示す第１の条件を含み、前記連続する複数個の第１の画素は、前記第１の対象画像に含まれず、かつ、前記第１の画像に含まれる複数個の画素である、前記方法選択部と、
前記第１の配置方法と前記第２の配置方法のうちの選択済の配置方法を用いて、前記第１の対象画像と前記第２の対象画像との相対的な配置位置を決定する決定部と、
決定済の前記配置位置に前記第１の対象画像と前記第２の対象画像とが配置され、第１の画像と第２の画像とで前記対象物を示す配置済画像を表す配置済画像データを生成する生成部と、
を備える、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記方法選択部は、
画素の値が特定の判定条件を満たす画素を前記第１の画素であると判定し、
前記第１の方向と直交する第２の方向に前記第１の画素が連続することを示す連続条件を満たす前記第１の画素の個数を算出し、
前記連続条件を満たす前記第１の画素を含む前記連続する複数個の第１の画素の個数を用いて、前記第１の条件が満たされるか否かを判断する、画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記方法選択部は、
前記第２の方向に沿った複数個の画素をそれぞれ含む複数本のラインのうち、前記連続条件を満たす前記第１の画素の個数が閾値以上である特定種のラインであって、前記第１の対象画像の前記第１の方向の端と前記第１の画像の前記第１の方向の端との間に位置する前記特定種のラインの本数を算出し、
前記特定種のラインの本数を用いて、前記第１の条件が満たされるか否かを判断する、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記方法選択部は、
前記第１の画像の前記第１の方向の端の近傍の特定の位置から、前記第１の方向の反対方向に向かって、前記ラインごとに、前記特定種のラインであるか否かを判定し、
前記特定種のラインが前記第１の方向に連続する本数を、前記第１の対象画像の前記第１の方向の端と前記第１の画像の前記第１の方向の端との間に位置する前記特定種のラインの本数として算出する、画像処理装置。
【請求項５】
請求項２から請求項４のいずれか一項に記載の画像処理装置であって、さらに、
前記第１の対象画像の特定の端と、前記第１の画像の特定の端と、が平行になるように、前記第１の対象画像の傾きを補正する補正部を備える、画像処理装置。
【請求項６】
請求項１から請求項５のいずれか一項に記載の画像処理装置であって、
前記特定条件は、前記第２の対象画像の第３の方向の端と前記第２の画像の前記第３の方向の端との間に含まれる連続する複数個の第２の画素の個数が比較的大きいことを示す第２の条件を含み、前記連続する複数個の第２の画素は、前記第２の対象画像に含まれず、かつ、前記第２の画像に含まれる複数個の画素であり、
前記方法選択部は、前記第１の条件が満たされ、かつ、前記第２の条件が満たされる場合に、前記第１の配置方法を選択し、前記第１の条件が満たされず、かつ、前記第２の条件が満たされない場合に、前記第２の配置方法を選択する、画像処理装置。
【請求項７】
請求項６に記載の画像処理装置であって、
前記第１の対象画像の前記第１の方向の端と、前記第２の対象画像の前記第３の方向の端とは、それぞれ、予め定められた方向であり、
前記方法選択部は、前記第１の条件が満たされ、かつ、前記第２の条件が満たされない場合、および、前記第１の条件が満たされず、かつ、前記第２の条件が満たされる場合には、前記第２の配置方法を選択し、
前記決定部は、前記第１の対象画像の前記第１の方向の端と、前記第２の対象画像の前記第３の方向の端と、が前記配置済画像の特定方向の中央部に位置するように、前記配置位置を決定する、画像処理装置。
【請求項８】
請求項６に記載の画像処理装置であって、さらに、
前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との一の組み合わせを、前記第１の対象画像の前記第１の方向の端と前記第２の対象画像の前記第３の方向の端との特定の組み合わせとして選択する方向選択部を備え、
前記方法選択部は、
（１）選択済の前記特定の組み合わせについて、前記第１の条件が満たされ、かつ、前記第２の条件が満たされる場合に、前記第１の配置方法を選択し、
（２）選択済の前記特定の組み合わせについて、前記第１の条件が満たされず、かつ、前記第２の条件が満たされない場合に、前記第２の配置方法を選択し、
（３）選択済の前記特定の組み合わせについて、前記第１の条件が満たされ、かつ、前記第２の条件が満たされない場合、および、前記第１の条件が満たされず、かつ、前記第２の条件が満たされる場合に、配置方法を選択せず、
前記配置方向が選択される場合には、前記決定部は、選択済の前記特定の組み合わせにおける前記第１の対象画像の前記第１の方向の端と、前記第２の対象画像の前記第３の方向の端と、が前記配置済画像の特定方向の中央部に位置するように、前記配置位置を決定し、
前記配置方法が選択されない場合には、前記方向選択部は、前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との他の組み合わせを前記特定の組み合わせとして再度選択し、前記方法選択部は、再度選択された前記特定の組み合わせについて、（１）〜（３）の処理を再度実行する、画像処理装置。
【請求項９】
請求項６に記載の画像処理装置であって、さらに、
前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との一の組み合わせを、前記第１の対象画像の前記第１の方向の端と前記第２の対象画像の前記第３の方向の端との特定の組み合わせとして選択する方向選択部を備え、
前記方法選択部は、選択済の前記特定の組み合わせについて、配置方法を選択し、
前記決定部によって、前記選択済の配置方法を用いて前記配置位置を決定できない場合には、前記方向選択部は、前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との他の組み合わせを前記特定の組み合わせとして再度選択し、前記方法選択部は、再度選択された前記特定の組み合わせについて、配置方法を再度選択する、画像処理装置。
【請求項１０】
請求項１から請求項９のいずれか一項に記載の画像処理装置であって、
前記第１の配置方法は、前記第１の対象画像と前記第２の対象画像とが重ならない前記配置位置を決定する方法であり、
前記第２の配置方法は、前記第１の対象画像の一部と前記第２の対象画像の一部とが重なる前記配置位置を決定する方法である、画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置であって、
前記第２の配置方法は、
第１の対象画像の前記対象物の一部分であって前記第２の対象画像内にも表された前記一部分を表す領域である基準領域を決定し、
前記第２の対象画像内の一部の領域である探索領域から、前記基準領域内の画像と類似する類似画像を特定し、
前記基準領域と前記類似画像との位置に基づいて、前記第１の対象画像と前記第２の対象画像との前記配置位置を決定する、
方法である、画像処理装置。
【請求項１２】
請求項１０または請求項１１に記載の画像処理装置であって、
前記第１の配置方法は、
前記第１の対象画像の前記第１の方向の端に沿って前記第１の対象画像の内側に並ぶ複数個の画素の値を用いて、前記第１の対象画像の前記第１の方向の端に沿って前記第１の対象画像の外側に並ぶ複数個の画素を生成し、
前記第１の対象画像の外側に並ぶ複数個の画素を用いて、前記第１の対象画像と前記第２の対象画像との前記配置位置を決定する、
方法である、画像処理装置。
【請求項１３】
請求項１から請求項１２のいずれか一項に記載の画像処理装置であって、
前記複数個の第１の画素は、白色および黒色のうちの一方の色を有する複数個の画素である、画像処理装置。
【請求項１４】
請求項１から請求項１３のいずれか一項に記載の画像処理装置であって、
前記取得部は、原稿の第１領域を光学的に読み取ることによって生成される前記第１の画像データと、前記原稿の第２領域を光学的に読み取ることによって生成される前記第２の画像データを取得し、
前記第１の対象画像は、前記原稿の前記第１領域を表す画像であり、前記複数個の第１の画素は、前記第１の画像のうち、前記原稿を表す画像より外側の領域を構成する複数個の画素である、画像処理装置。
【請求項１５】
コンピュータプログラムであって、
１個の対象物の一部を示す第１の対象画像を含む第１の画像を表す第１の画像データと、前記対象物の他の一部を示す第２の対象画像を含む第２の画像を表す第２の画像データと、を取得する取得機能と、
特定条件が満たされる場合に第１の配置方法を選択し、前記特定条件が満たされない場合に第２の配置方法を選択する方法選択機能であって、前記特定条件は、前記第１の対象画像の第１の方向の端と前記第１の画像の前記第１の方向の端との間に含まれる連続する複数個の第１の画素の個数が比較的大きいことを示す第１の条件を含み、前記連続する複数個の第１の画素は、前記第１の対象画像に含まれず、かつ、前記第１の画像に含まれる複数個の画素である、前記方法選択機能と、
前記第１の配置方法と前記第２の配置方法のうちの選択済の配置方法を用いて、前記第１の対象画像と前記第２の対象画像との相対的な配置位置を決定する決定機能と、
決定済の前記配置位置に前記第１の対象画像と前記第２の対象画像とが配置され、第１の画像と第２の画像とで前記対象物を示す配置済画像を表す配置済画像データを生成する生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の画像と第２の画像とが配置され、第１の画像と第２の画像とで１個の対象物を示す配置済画像を表す配置済画像データを生成する技術に関する。
【背景技術】
【０００２】
特許文献１には、原稿を２回に分けて読み取ることで複数個の原稿画像を入力し、複数個の原稿画像が繋ぎ合わされた画像を出力する技術が開示されている。この技術では、複数個の原稿画像を、パターンマッチングを用いて決定される位置で繋ぎ合わせる方法と、単純に並べた位置で繋ぎ合わせる方法と、が用いられている。これらの２個の方法は、例えば、ユーザの指示に基づいて選択される。ユーザの指示に基づいてパターンマッチングを用いる方法が実行された結果、パターンマッチングが成功しない場合には、単純に２個の画像を並べる方法が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１９６２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、ユーザの指示に基づいて、先に実行されるべき方法が選択される。このために、例えば、知識不足などのために、ユーザが適切な方法を指示できない場合には、適切な方法が選択されない可能性があった。
【０００５】
本明細書は、第１の画像と第２の画像とが配置され、第１の画像と第２の画像とで１個の対象物（例えば、１枚の原稿）を示す配置済画像を表す画像データを生成する際に、これらの画像の配置方法を適切に選択できる新たな技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【０００７】
［適用例１］画像処理装置であって、１個の対象物の一部を示す第１の対象画像を含む第１の画像を表す第１の画像データと、前記対象物の他の一部を示す第２の対象画像を含む第２の画像を表す第２の画像データと、を取得する取得部と、特定条件が満たされる場合に第１の配置方法を選択し、前記特定条件が満たされない場合に第２の配置方法を選択する方法選択部であって、前記特定条件は、前記第１の対象画像の第１の方向の端と前記第１の画像の前記第１の方向の端との間に含まれる連続する複数個の第１の画素の個数が比較的大きいことを示す第１の条件を含み、前記連続する複数個の第１の画素は、前記第１の対象画像に含まれず、かつ、前記第１の画像に含まれる複数個の画素である、前記方法選択部と、前記第１の配置方法と前記第２の配置方法のうちの選択済の配置方法を用いて、前記第１の対象画像と前記第２の対象画像との相対的な配置位置を決定する決定部と、
決定済の前記配置位置に前記第１の対象画像と前記第２の対象画像とが配置され、第１の画像と第２の画像とで前記対象物を示す配置済画像を表す配置済画像データを生成する生成部と、を備える、画像処理装置。
【０００８】
上記構成によれば、第１の対象画像の第１の方向の端から第１の画像の第１の方向の端までの間に含まれる複数個の第１の画素の個数が比較的大きいことを示す第１の条件を含む特定条件が満たされるか否かに応じて、配置方法が選択される。この結果、第１の画像と第２の画像とが配置された配置済画像を表す画像データを生成する際に、これらの画像の配置方法を適切に選択できる。
【０００９】
［適用例２］適用例１に記載の画像処理装置であって、前記方法選択部は、画素の値が特定の判定条件を満たす画素を前記第１の画素であると判定し、前記第１の方向と直交する第２の方向に前記第１の画素が連続することを示す連続条件を満たす前記第１の画素の個数を算出し、前記連続条件を満たす前記第１の画素を含む前記連続する複数個の第１の画素の個数を用いて、前記第１の条件が満たされるか否かを判断する、画像処理装置。
【００１０】
こうすれば、第１の条件を満たすか否かを適切に判断できる。
【００１１】
［適用例３］適用例２に記載の画像処理装置であって、前記方法選択部は、前記第２の方向に沿った複数個の画素をそれぞれ含む複数本のラインのうち、前記連続条件を満たす前記第１の画素の個数が閾値以上である特定種のラインであって、前記第１の対象画像の前記第１の方向の端と前記第１の画像の前記第１の方向の端との間に位置する前記特定種のラインの本数を算出し、前記特定種のラインの本数を用いて、前記第１の条件が満たされるか否かを判断する、画像処理装置。
【００１２】
こうすれば、第１の条件を満たすか否かをより精度良く判断できる。
【００１３】
［適用例４］適用例３に記載の画像処理装置であって、前記方法選択部は、前記第１の画像の前記第１の方向の端の近傍の特定の位置から、前記第１の方向の反対方向に向かって、前記ラインごとに、前記特定種のラインであるか否かを判定し、前記特定種のラインが前記第１の方向に連続する本数を、前記第１の対象画像の前記第１の方向の端と前記第１の画像の前記第１の方向の端との間に位置する前記特定種のラインの本数として算出する、画像処理装置。
【００１４】
こうすれば、第１の対象画像の第１の方向の端と第１の画像の第１の方向の端との間に含まれる特定種のラインの本数を精度良く算出することができる。
【００１５】
［適用例５］適用例２から適用例４のいずれか一項に記載の画像処理装置であって、さらに、前記第１の対象画像の特定の端と、前記第１の画像の特定の端と、が平行になるように、前記第１の対象画像の傾きを補正する補正部を備える、画像処理装置。
【００１６】
こうすれば、第１の画像内で、第１の対象画像が傾いている場合であっても、第１の条件が満たされるか否かを精度良く判断することができる。
【００１７】
［適用例６］適用例１から適用例５のいずれか一項に記載の画像処理装置であって、前記特定条件は、前記第２の対象画像の第３の方向の端と前記第２の画像の前記第３の方向の端との間に含まれる連続する複数個の第２の画素の個数が比較的大きいことを示す第２の条件を含み、前記連続する複数個の第２の画素は、前記第２の対象画像に含まれず、かつ、前記第２の画像に含まれる複数個の画素であり、前記方法選択部は、前記第１の条件が満たされ、かつ、前記第２の条件が満たされる場合に、前記第１の配置方法を選択し、前記第１の条件が満たされず、かつ、前記第２の条件が満たされない場合に、前記第２の配置方法を選択する、画像処理装置。
【００１８】
こうすれば、第１の画像が第１の条件を満たすか否かと、第２の画像が第２の条件を満たすか否かに応じて、より適切な配置方法を選択することができる。
【００１９】
［適用例７］適用例６に記載の画像処理装置であって、前記第１の対象画像の前記第１の方向の端と、前記第２の対象画像の前記第３の方向の端とは、それぞれ、予め定められた方向であり、前記方法選択部は、前記第１の条件が満たされ、かつ、前記第２の条件が満たされない場合、および、前記第１の条件が満たされず、かつ、前記第２の条件が満たされる場合には、前記第２の配置方法を選択し、前記決定部は、前記第１の対象画像の前記第１の方向の端と、前記第２の対象画像の前記第３の方向の端と、が前記配置済画像の特定方向の中央部に位置するように、前記配置位置を決定する、画像処理装置。
【００２０】
こうすれば、第１の画像と第２の画像とを予め定められた方向で配置する場合に、配置方法を選択することができる。
【００２１】
［適用例８］適用例６に記載の画像処理装置であって、さらに、前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との一の組み合わせを、前記第１の対象画像の前記第１の方向の端と前記第２の対象画像の前記第３の方向の端との特定の組み合わせとして選択する方向選択部を備え、前記方法選択部は、（１）選択済の前記特定の組み合わせについて、前記第１の条件が満たされ、かつ、前記第２の条件が満たされる場合に、前記第１の配置方法を選択し、（２）選択済の前記特定の組み合わせについて、前記第１の条件が満たされず、かつ、前記第２の条件が満たされない場合に、前記第２の配置方法を選択し、（３）選択済の前記特定の組み合わせについて、前記第１の条件が満たされ、かつ、前記第２の条件が満たされない場合、および、前記第１の条件が満たされず、かつ、前記第２の条件が満たされる場合に、配置方法を選択せず、前記配置方向が選択される場合には、前記決定部は、選択済の前記特定の組み合わせにおける前記第１の対象画像の前記第１の方向の端と、前記第２の対象画像の前記第３の方向の端と、が前記配置済画像の特定方向の中央部に位置するように、前記配置位置を決定し、前記配置方法が選択されない場合には、前記方向選択部は、前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との他の組み合わせを前記特定の組み合わせとして再度選択し、前記方法選択部は、再度選択された前記特定の組み合わせについて、（１）〜（３）の処理を再度実行する、画像処理装置。
【００２２】
こうすれば、第１の条件と第２の条件を満たすか否かに応じて、配置方法を適切に選択できるとともに、第１の対象画像と第２の対象画像の配置の方向を適切に決定することができる。
【００２３】
［適用例９］適用例６に記載の画像処理装置であって、さらに、前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との一の組み合わせを、前記第１の対象画像の前記第１の方向の端と前記第２の対象画像の前記第３の方向の端との特定の組み合わせとして選択する方向選択部を備え、前記方法選択部は、選択済の前記特定の組み合わせについて、配置方法を選択し、前記決定部によって、前記選択済の配置方法を用いて前記配置位置を決定できない場合には、前記方向選択部は、前記第１の対象画像の複数個の端のうちの１個の端と前記第２の対象画像の複数個の端のうちの１個の端との他の組み合わせを前記特定の組み合わせとして再度選択し、前記方法選択部は、再度選択された前記特定の組み合わせについて、配置方法を再度選択する、画像処理装置。
【００２４】
こうすれば、第１の条件と第２の条件とを用いて選択される配置方法を用いて配置位置を決定できるか否かに基づいて、第１の対象画像と第２の対象画像の配置の方向を適切に決定することができる。
【００２５】
［適用例１０］適用例１から適用例９のいずれか一項に記載の画像処理装置であって、前記第１の配置方法は、前記第１の対象画像と前記第２の対象画像とが重ならない前記配置位置を決定する方法であり、前記第２の配置方法は、前記第１の対象画像の一部と前記第２の対象画像の一部とが重なる前記配置位置を決定する方法である、画像処理装置。
【００２６】
こうすれば、第１の対象画像と第２の対象画像とが重ならない配置位置を決定するか、第１の対象画像の一部と第２の対象画像の一部とが重なる配置位置を決定するか、を適切に決定することができる。
【００２７】
［適用例１１］適用例１０に記載の画像処理装置であって、前記第２の配置方法は、第１の対象画像の前記対象物の一部分であって前記第２の対象画像内にも表された前記一部分を表す領域である基準領域を決定し、前記第２の対象画像内の一部の領域である探索領域から、前記基準領域内の画像と類似する類似画像を特定し、前記基準領域と前記類似画像との位置に基づいて、前記第１の対象画像と前記第２の対象画像との前記配置位置を決定する、方法である、画像処理装置。
【００２８】
こうすれば、第１の対象画像の一部と第２の対象画像の一部とが重なる配置位置を精度良く決定することができる。
【００２９】
［適用例１２］適用例１０または適用例１１に記載の画像処理装置であって、前記第１の配置方法は、前記第１の対象画像の前記第１の方向の端に沿って前記第１の対象画像の内側に並ぶ複数個の画素の値を用いて、前記第１の対象画像の前記第１の方向の端に沿って前記第１の対象画像の外側に並ぶ複数個の画素を生成し、前記第１の対象画像の外側に並ぶ複数個の画素を用いて、前記第１の対象画像と前記第２の対象画像との前記配置位置を決定する、方法である、画像処理装置。
【００３０】
こうすれば、第１の対象画像と第２の対象画像とが重ならない配置位置を精度良く決定することができる。
【００３１】
［適用例１３］適用例１から適用例１２のいずれか一項に記載の画像処理装置であって、前記複数個の第１の画素は、白色および黒色のうちの一方の色を有する複数個の画素である、画像処理装置。
【００３２】
［適用例１４］適用例１から適用例１３のいずれか一項に記載の画像処理装置であって、前記取得部は、原稿の第１領域を光学的に読み取ることによって生成される前記第１の画像データと、前記原稿の第２領域を光学的に読み取ることによって生成される前記第２の画像データを取得し、前記第１の対象画像は、前記原稿の前記第１領域を表す画像であり、前記複数個の第１の画素は、前記第１の画像のうち、前記原稿を表す画像より外側の領域を構成する複数個の画素である、画像処理装置。
【００３３】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００３４】
【図１】画像処理システムの構成を示すブロック図である。
【図２】画像処理システム１０００の動作を示すシーケンス図である。
【図３】原稿の一例を示す図である。
【図４】スキャンパターンＡの説明図である。
【図５】スキャンパターンＡで生成されるスキャン画像の一例を示す図である。
【図６】スキャンパターンＢの説明図である。
【図７】スキャンパターンＢで生成されるスキャン画像の一例を示す図である。
【図８】第１実施例の配置前処理のフローチャートである。
【図９】配置済画像の一例を示す図である。
【図１０】余白量判定処理のフローチャートである。
【図１１】第１配置位置決定処理のフローチャートである。
【図１２】第１配置位置決定処理の説明図である。
【図１３】画素復元処理のフローチャートである。
【図１４】図１２（Ａ）の参照範囲ＲＥａ近傍の拡大図である。
【図１５】第２配置位置決定処理のフローチャートである。
【図１６】第２配置位置決定処理の説明図である。
【図１７】第２実施例の説明図である。
【図１８】第２実施例の配置前処理のフローチャートである。
【図１９】第３実施例の配置前処理のフローチャートである。
【発明を実施するための形態】
【００３５】
Ａ．第１実施例：
Ａ−１：画像処理システム１０００の構成
図１は、画像処理システムの構成を示すブロック図である。画像処理システム１０００は、画像処理装置としてのサーバ４００と、複合機２００と、を備えている。サーバ４００は、インターネット７０に接続されており、複合機２００は、ＬＡＮ（Local Area Networkの略称）８０を介して、インターネット７０に接続されている。この結果、サーバ４００と複合機２００は、ＬＡＮ８０とインターネット７０とを介して、通信可能である。また、ＬＡＮ８０には、複合機２００のユーザのパーソナルコンピュータ５００が接続されていても良い。
【００３６】
サーバ４００は、サーバ４００のコントローラの一例としてのＣＰＵ４１０と、ＤＲＡＭなどの揮発性記憶装置４２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置４３０と、インターネット７０などのネットワークに接続するためのインタフェースを含む通信部４８０と、を備えている。揮発性記憶装置４２０には、ＣＰＵ４１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域４２１が設けられている。不揮発性記憶装置４３０には、コンピュータプログラム４３１と、ＵＩデータ群４３３と、が格納されている。
【００３７】
コンピュータプログラム４３１、および、ＵＩデータ群４３３は、例えば、サーバ４００の管理者によって、インターネット７０を介してサーバ４００にアップロードされることにより、サーバ４００にインストールされる。または、コンピュータプログラム４３１、および、ＵＩデータ群４３３は、例えば、ＤＶＤ−ＲＯＭなどに格納された形態で提供され、サーバ４００の管理者によって、サーバ４００にインストールされても良い。ＣＰＵ４１０は、コンピュータプログラム４３１を実行することにより、後述する画像処理を実現する。
【００３８】
複合機２００は、複合機２００のコントローラの一例としてのＣＰＵ２１０と、ＤＲＡＭなどの揮発性記憶装置２２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置２３０と、プリンタ部２４０と、スキャナ部２５０と、タッチパネルやボタンなどの操作部２６０と、液晶ディスプレイなどの表示部２７０と、外部機器と通信を行う通信部２８０と、を備えている。例えば、通信部２８０は、ＬＡＮ８０などのネットワークに接続するためのインタフェースや、ＵＳＢメモリなどの外部記憶装置と接続するためのインタフェースを含んでいる。
【００３９】
揮発性記憶装置２２０には、ＣＰＵ２１０が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域２２１が設けられている。不揮発性記憶装置２３０には、制御プログラム２３１が格納されている。制御プログラム２３１は、プリンタ１００の製造時に不揮発性記憶装置２３０に予め格納されて提供され得る。これに代えて、制御プログラム２３１は、例えば、インターネットを介して接続されたサーバからダウンロードされる形態、あるいは、ＣＤ−ＲＯＭなどに記録された形態で提供され得る。
【００４０】
プリンタ部２４０は、インクジェット方式やレーザー方式などの印刷方式を用いて印刷を実行する。スキャナ部２５０は、ＣＣＤやＣＭＯＳなどの光電変換素子を用いて光学的に原稿を読み取ることによってカラー画像やグレー画像を表すスキャンデータを生成する。スキャナ部２５０は、いわゆるフラットベッド式の後述する原稿台２５５を備えている。
【００４１】
ＣＰＵ２１０は、制御プログラム２３１を実行することにより、複合機２００の制御を実行する。例えば、ＣＰＵ２１０は、プリンタ部２４０やスキャナ部２５０を制御して、コピー処理、印刷処理、スキャン処理などを実行する。さらに、ＣＰＵ２１０は、サーバ４００にアクセスして、サーバ４００が提供するサービスを利用することができる。
【００４２】
Ａ−２：画像処理システム１０００の動作
図２は、画像処理システム１０００の動作を示すシーケンス図である。このシーケンス図の処理は、複合機２００が、サーバ４００が提供する画像生成サービスの利用指示を、ユーザから受け付けた場合に開始される。この画像生成サービスは、詳細は後述するが、複数個のスキャンデータによって表される複数個の画像が配置され、複数個の画像で１個の対象物（具体的には、後述する原稿１０）を示す配置済画像を表す配置済画像データを生成するサービスである。複数個のスキャンデータは、詳細は後述するが、例えば、１回で読み取り可能なサイズより大きなサイズの原稿を、複数回に分けて読み取ることによって生成される。
【００４３】
処理が開始されると、Ｓ５では、複合機２００のＣＰＵ２１０は、サービス開始要求を、サーバ４００に対して送信する。サーバ４００のＣＰＵ４１０は、サービス開始要求を受信すると、図１に示されるＵＩデータ群４３３から画像生成サービスの提供に必要なＵＩデータを選択し、Ｓ１０にて、該ＵＩデータを複合機２００に対して送信する。ＵＩデータは、具体的には、ユーザインタフェース画面（以下、ＵＩ画面とも呼ぶ）を表す画面データと、制御データと、を含む。この制御データは、例えば、ＵＩ画面を利用して複合機２００が後述するＳ１５のスキャン処理などの所定の処理を行うために必要な各種のデータを含む。例えば、制御データは、複合機２００が実行すべき処理を行うために必要な情報、例えば、画像ファイルの送信先アドレスなどを含む。複合機２００が実行すべき処理は、例えば、後述するＳ２０にて画像ファイルをサーバ４００へ送信する処理を含む。
【００４４】
Ｓ１５では、ＣＰＵ２１０は、受信したＵＩデータに基づいて、複数個のスキャンデータを生成するスキャン処理を実行する。スキャン処理では、ＣＰＵ２１０は、ユーザが用意した原稿を２回に分けて読み取ることによって、２個のスキャンデータを生成する。本実施例のスキャンデータは、例えば、０〜２５５の２５６階調の値で表されるＲＧＢの各成分の成分値を画素ごとに含むＲＧＢ画像データである。
【００４５】
図３は、原稿の一例を示す図である。この原稿１０のサイズは、本実施例では、Ａ３サイズである。線ＣＬは、Ａ３サイズの原稿１０の長手方向の中央部に位置し、原稿１０の短辺と平行な線である。左領域１０Ｌは、原稿１０の左側の半分の領域、すなわち、線ＣＬより左側の領域である。右領域１０Ｒは、原稿１０の右側の半分の領域、すなわち、原稿１０の線ＣＬより右側の領域である。左領域１０Ｌのサイズ、および、右領域１０Ｒのサイズは、Ａ４サイズである。なお、Ａ３サイズ、および、Ａ４サイズは、ＩＳＯ（International Organization for Standardizationの略）２１６で定められている紙の寸法である。
【００４６】
図３の符号１０Ｌ、１０Ｒが付された矢印は、領域１０Ｌ、１０Ｒの位置と向きを示す。すなわち、これらの矢印が配置された位置、および、これらの矢印が示す向きに、これらの領域１０Ｌ、１０Ｒが配置されていることを意味している。後述する図４、図５では、領域１０Ｌ、１０Ｒ内の画像の図示を省略して、符号付きの矢印のみで、これらの領域１０Ｌ、１０Ｒの位置および向きを図示している。
【００４７】
図４は、スキャンパターンＡの説明図である。スキャナ部２５０の原稿台２５５（図４（Ｂ）、図４（Ｃ））の長手方向の長さは、Ａ４サイズの長手方向の長さである２９７ｍｍより少しだけ（例えば、数センチ）長い。そして、原稿台の短手方向の長さは、ＡＮＳＩ／ＡＳＭＥ（American National Standards Institute／American Society of Mechanical Engineersの略）Ｙ１４．１で定められている紙の寸法であるレターサイズの短手方向の長さである２１５．９ｍｍより少しだけ（例えば、数センチ）長い。すなわち、本実施例では、１回で読み取ることができる原稿の最大サイズは、Ａ４サイズより大きくＡ３サイズより小さいサイズである。このために、本実施例では、２回に分けてＡ３サイズの原稿１０を読み取る。
【００４８】
本実施例のスキャン処理は、図４のスキャンパターンＡと、後述する図６のスキャンパターンＢのいずれかの方法で、２回の読み取りが実行されて、２個のスキャンデータが生成される。具体的には、後述する２個のスキャンパターンＡ、Ｂについて、図示しないマニュアルや表示部２７０に表示されるＵＩ画面によって、事前にユーザに説明される。ユーザは、２個のスキャンパターンＡ、Ｂのいずれかに従って、スキャナ部２５０に原稿１０の２回の読み取りを実行させる。
【００４９】
（スキャンパターンＡ）
スキャンパターンＡでは、図４（Ａ）に示すように、原稿１０は、折れ線ＶＬで二つ折りにされた状態で、スキャナ部２５０によって読み取られる。折れ線ＶＬは、図４の線ＣＬと同じ位置の線である。従って、二つ折りにされた状態の原稿１０のサイズは、Ａ４サイズである。二つ折りにされた状態の原稿１０の一方の面には右領域１０Ｒが位置し、他方の面には、左領域１０Ｌが位置する。
【００５０】
１回目の読み取りでは、左領域１０Ｌ内の画像を示す左側スキャンデータが生成される。具体的には、ユーザは、図４（Ｂ）に示すように、左領域１０Ｌが原稿台２５５側を向き、右領域１０Ｒが原稿台２５５の反対側を向くように、二つ折りにされた原稿１０を原稿台２５５上に配置する。このとき、二つ折りにされた原稿１０は、線ＶＬが手前（図４（Ｂ）の下側）に位置し、かつ、当該原稿の左奥の頂点（図４（Ｂ）の左上の頂点）と原稿台２５５の左奥の頂点とが概ね一致するように、原稿台２５５上に配置される。ユーザが、読み取り指示を複合機２００に入力すると、ＣＰＵ２１０は、スキャナ部２５０を制御して左領域１０Ｌを読み取ることによって、左側スキャンデータを生成する。
【００５１】
２回目の読み取りでは、右領域１０Ｒ内の画像を示す右側スキャンデータが生成される。具体的には、ユーザは、図４（Ｃ）に示すように、右領域１０Ｒが原稿台２５５側を向き、左領域１０Ｌが原稿台２５５の反対側を向くように、二つ折りにされた原稿１０を原稿台２５５上に配置する。このとき、二つ折りにされた原稿１０は、線ＶＬが手前（図４（Ｃ）の下側）に位置し、かつ、当該原稿の左奥の頂点（図４（Ｃ）の左上の頂点）と原稿台２５５の左奥の頂点とが概ね一致するように、原稿台２５５上に配置される。ユーザが、読み取り指示を複合機２００に入力すると、ＣＰＵ２１０は、スキャナ部２５０を制御して右領域１０Ｒを読み取ることによって、右側スキャンデータを生成する。
【００５２】
図５は、スキャンパターンＡで生成されるスキャン画像の一例を示す図である。図５（Ａ）には、左側スキャンデータによって表される左側スキャン画像ＡＬ１と、右側スキャンデータによって表される右側スキャン画像ＡＲ１と、が示されている。左側スキャン画像ＡＬ１は、原稿１０の左領域１０Ｌを示す左側原稿画像ＡＩＬと、余白ＷＡＬと、を含んでいる。右側スキャン画像ＡＲ１は、原稿１０の右領域１０Ｒを示す右側原稿画像ＡＩＲと、余白ＷＡＲと、を含んでいる。余白ＷＡＬ、ＷＡＲは、原稿台２５５を読み取った領域であるので、原稿台２５５の色を示す値（ＲＧＢ値）有している。余白ＷＡＬ、ＷＡＲの色は、本実施例では、白色であるが、黒色であっても良いし、グレーであっても良い。余白ＷＡＬ、ＷＡＲは、スキャン画像ＡＬ１、ＡＲ１において、原稿画像ＡＩＬ、ＡＩＲより外側の領域である。
【００５３】
ここで、スキャン画像ＡＬ１、ＡＲ１において、原稿画像ＡＩＬ、ＡＩＲが傾いているのは、スキャンデータの生成時に、原稿台２５５に配置された原稿１０が傾いていたためである。
【００５４】
スキャン画像ＡＬ１、ＡＲ１は、図４（Ｂ）、（Ｃ）の原稿台２５５の形状に対応する矩形を有している。スキャン画像ＡＬ１、ＡＲ１は、原稿台２５５の長辺に沿った方向を縦方向とし、原稿台２５５の図４（Ｂ）、（Ｃ）における左方向を上方向として、原稿台２５５上に配置された画像を表す。左領域１０Ｌを読み取る際の原稿台２５５に対する原稿１０の上方向（図４（Ｂ）の矢印の方向）と、右領域１０Ｒを読み取る際の原稿台２５５に対する原稿１０の上方向（図４（Ｃ）の矢印の方向）とは、逆向きになる。このために、左側スキャン画像ＡＬ１の左側原稿画像ＡＩＬと、右側スキャン画像ＡＲ１の右側原稿画像ＡＩＲとは、上下方向が逆になっている。
【００５５】
なお、スキャンパターンＡで生成される図５（Ａ）のスキャン画像ＡＬ１、ＡＲ１には、原稿画像ＡＩＬ、ＡＩＲの右端からスキャン画像ＡＬ１、ＡＲ１の右端までの間に、比較的広い余白ＷＡＬ、ＷＢＬが存在することが解る。これは、図４（Ｂ）、（Ｃ）に示すように、折り曲げられた原稿１０が原稿台２５５に配置された状態で、原稿台２５５の手前（図４（Ｂ）、（Ｃ）の下側）に、原稿１０が配置されない領域２５５Ｕが存在するためである。
【００５６】
（スキャンパターンＢ）
図６は、スキャンパターンＢの説明図である。スキャンパターンＢでは、原稿１０は、折り曲げられることなく、原稿台２５５に配置される。スキャンパターンＢの１回目の読み取りでは、左領域１０Ｌと、右領域１０Ｒのうちの左領域１０Ｌと接する部分領域ＣＡＲと、を含む領域内の画像を示す左側スキャンデータが生成される。具体的には、ユーザは、図６（Ａ）に示すように、原稿１０の画像が配置された原稿面が原稿台２５５側を向き、かつ、原稿面の左領域１０Ｌが奥側（図６（Ａ）の上側）に、原稿面の右領域１０Ｒが手前側（図６（Ａ）の下側）に位置するように、原稿１０を原稿台２５５上に配置する。ユーザが、読み取り指示を複合機２００に入力すると、ＣＰＵ２１０は、スキャナ部２５０を制御して、左領域１０Ｌと部分領域ＣＡＲと、を読み取ることによって、左側スキャンデータを生成する。
【００５７】
２回目の読み取りでは、右領域１０Ｒと、左領域１０Ｌのうちの右領域１０Ｒと接する部分領域ＣＡＬと、を含む領域内の画像を示す右側スキャンデータが生成される。具体的には、ユーザは、図６（Ｂ）に示すように、原稿１０の画像が配置された原稿面が原稿台２５５側を向き、かつ、原稿面の右領域１０Ｒが奥側（図６（Ｂ）の上側）に、原稿面の左領域１０Ｌが手前側（図６（Ｃ）の下側）に位置するように、原稿１０を原稿台２５５上に配置する。ユーザが、読み取り指示を複合機２００に入力すると、ＣＰＵ２１０は、スキャナ部２５０を制御して、右領域１０Ｒと部分領域ＣＡＬと、を読み取ることによって、右側スキャンデータを生成する。
【００５８】
なお、２回の読み取りのいずれにおいても、スキャンパターンＡと同様に、原稿１０の左奥の頂点と原稿台２５５の左奥の頂点とが概ね一致するように、原稿１０が原稿台２５５上に配置される。
【００５９】
図７は、スキャンパターンＢで生成されるスキャン画像の一例を示す図である。図７（Ａ）には、左側スキャンデータによって表される左側スキャン画像ＢＬ１と、右側スキャンデータによって表される右側スキャン画像ＢＲ１と、が示されている。左側スキャン画像ＢＬ１は、原稿１０の左領域１０Ｌと部分領域ＣＡＲとを示す左側原稿画像ＢＩＬと、余白ＷＢＬと、を含んでいる。右側スキャン画像ＢＲ１は、右領域１０Ｒと部分領域ＣＡＬを示す右側原稿画像ＢＩＲと、余白ＷＢＲと、を含んでいる。これらの原稿画像ＢＩＬ、ＢＩＲは、図３の原稿１０の横方向の中央部ＣＡ（すなわち、上述した部分領域ＣＡＬ、ＣＡＲからなる領域）を表す画像ＣＩＬ、ＣＩＲを、それぞれ、含んでいる。
【００６０】
スキャンパターンＡのスキャン画像ＡＬ１、ＡＲ１（図５（Ａ））と同様に、スキャンパターンＢにおいても、左側スキャン画像ＢＬ１の左側原稿画像ＢＩＬと、右側スキャン画像ＢＲ１の右側原稿画像ＢＩＲとは、上下方向が逆になっている。
【００６１】
なお、スキャンパターンＢで生成される図７（Ａ）のスキャン画像ＢＬ１、ＢＲ１には、
スキャンパターンＡの場合とは異なり、原稿画像ＢＩＬ、ＢＩＲの右端からスキャン画像ＢＬ１、ＢＲ１の右端までの間に、余白ＷＢＬ、ＷＢＬがほとんど存在しないことが解る。これは、図６（Ａ）、（Ｂ）に示すように、折り曲げられていない原稿１０が原稿台２５５に配置された状態で、スキャンパターンＡの場合とは異なり、原稿台２５５の手前（図６（Ａ）、（Ｂ）の下側）に、原稿１０が配置されない領域が存在しないためである。
【００６２】
Ｓ１５のスキャン処理において、左側スキャンデータ、および、右側スキャンデータは、それぞれ、所定のフォーマットのファイル、例えば、ＪＰＥＧ（Joint Photographic Experts Groupの略）フォーマットの画像ファイルに変換される。
【００６３】
図２のＳ２０では、ＣＰＵ２１０は、左側スキャンデータの画像ファイル（左側画像ファイルとも呼ぶ）と、右側スキャンデータの画像ファイル（右側画像ファイルとも呼ぶ）と、をサーバ４００に対して送信する。この結果、Ｓ２５にて、サーバ４００のＣＰＵ４１０は、これらの２個の画像ファイルを取得する。ＣＰＵ４１０は、これらの画像ファイルから左側スキャンデータおよび右側スキャンデータ取得して、バッファ領域４２１に格納する。例えば、ＪＰＥＧ形式の画像ファイルが用いられる場合には、画像ファイルから、所定の変換処理によって、ＲＧＢ画像データに変換されたスキャンデータが取得されて、バッファ領域４２１に格納される。
【００６４】
Ｓ３０では、ＣＰＵ４１０は、左側スキャンデータと右側スキャンデータとに対して、それぞれ、傾き補正処理を実行する。具体的には、ＣＰＵ４１０は、左側スキャンデータに対してハフ変換やエッジ検出処理などの公知の処理を実行して、左側スキャン画像（ＡＬ１またはＢＬ１）内の左側原稿画像（ＡＩＬまたはＢＩＬ）の上端を検出する。ＣＰＵ４１０は、左側原稿画像（ＡＩＬまたはＢＩＬ）の上端と、左側スキャン画像（ＡＬ１またはＢＬ１）の上端と、が、平行になるように、左側スキャン画像（ＡＬ１またはＢＬ１）を回転して、補正済の左側スキャン画像を表す補正済の左側スキャンデータを生成する。ここで、検出すべき左側原稿画像の端は、上端に代えて、左端や下端でも良いが、右端以外の端であることが好ましい。これは、左側スキャン画像（ＡＬ１またはＢＬ１）左側原稿画像（ＡＩＬまたはＢＩＬ）の右端は、原稿１０の端を表していないからである。例えば、スキャンパターンＡで読み取られた左側スキャン画像ＡＬ１の左側原稿画像ＡＩＬの右端は、原稿１０の折れ線ＶＬを表している。スキャンパターンＢで読み取られた左側スキャン画像ＢＬ１の左側原稿画像ＢＩＬの右端は、原稿１０の右領域１０Ｒの一部分を表している。
【００６５】
後述する余白量判定処理では、縦方向のラインごと余白ラインを判断するので、このように予め傾き補正を実行することによって、処理対象のスキャン画像内で原稿画像が傾いている場合であっても、後の余白量判定処理によって、余白量が基準量以上であるか否かを精度良く判断することができる。
【００６６】
ＣＰＵ４１０は、右側スキャンデータに対しても同様の傾き補正処理を実行する。すなわち、ＣＰＵ４１０は、右側原稿画像（ＡＩＲまたはＢＩＲ）の上端と、右側スキャン画像（ＡＲ１またはＢＲ１）の上端と、が、平行になるように、右側スキャン画像（ＡＲ１またはＢＲ１）を回転して、補正済の右側スキャン画像を表す補正済の右側スキャンデータを生成する。
【００６７】
図５（Ｂ）には、スキャンパターンＡが用いられた場合の補正済の左側スキャン画像ＡＬ２および補正済の右側スキャン画像ＡＲ２が示されている。補正済の左側スキャン画像ＡＬ２には、左側原稿画像ＡＩＬおよび余白ＷＡＬの外側に、追加画素によって構成される追加領域ＡＡＬが追加されている。これは、処理の便宜上、補正済の左側スキャン画像ＡＬ２を、上下の端が横方向と平行で、かつ、左右の端が上下方向と平行な矩形の画像として扱うためである。ＣＰＵ４１０は、追加領域ＡＡＬを、他の領域と区別して特定できるように、追加領域ＡＡＬ内の画素と、他の領域内の画素と、を二値化したマスク画像（図示省略）を生成して、バッファ領域４２１に保存する。
【００６８】
同様に、補正済の右側スキャン画像ＡＲ２には、右側原稿画像ＡＩＲおよび余白ＷＡＲの外側に、追加画素によって構成される追加領域ＡＡＲが追加されている。ＣＰＵ４１０は、追加領域ＡＡＲを特定するためのマスク画像を生成して、バッファ領域４２１に保存する。
【００６９】
図７（Ｂ）には、スキャンパターンＢが用いられた場合の補正済の左側スキャン画像ＢＬ２および補正済の右側スキャン画像ＢＲ２が示されている。スキャンパターンＡが用いられた場合と同様に、補正済のスキャン画像ＢＬ２、ＢＲ２には、原稿画像ＢＩＬ、ＢＩＲおよび余白ＷＢＬ、ＷＢＲの外側に、追加画素によって構成される追加領域ＡＢＬ、ＡＢＲがそれぞれ追加されている。ＣＰＵ４１０は、追加領域ＡＢＬ、ＡＢＲを特定するためのマスク画像をそれぞれ生成してバッファ領域４２１に保存する。
【００７０】
以下では、補正済のスキャン画像ＡＬ２、ＡＲ２、ＢＬ２、ＢＲ２を、単に、ＡＬ２、ＡＲ２、ＢＬ２、ＢＲ２とも呼び、補正済のスキャン画像ＡＬ２、ＢＬ２を表す左側スキャンデータ、および、補正済のスキャン画像ＡＲ２、ＢＲ２を表す右側スキャンデータを、単に、左側スキャンデータ、および、右側スキャンデータと呼ぶ。
【００７１】
傾き補正処理が終了すると、図２のＳ３５では、ＣＰＵ４１０は、配置前処理を実行する。配置前処理は、配置済画像の生成に先立って、スキャンパターンに応じて適切な配置位置決定処理を選択し、選択された配置位置決定処理を実行することによって、左側原稿画像（ＡＩＬまたはＢＩＬ）と、右側原稿画像（ＡＩＲまたはＢＩＲ）と、の相対的な配置位置を決定する処理である。
【００７２】
図８は、配置前処理のフローチャートである。Ｓ２０５では、ＣＰＵ４１０は、左側スキャン画像（ＡＬ２またはＢＬ２）の余白量判定処理を実行する。Ｓ２１０では、ＣＰＵ４１０は、右側スキャン画像（ＡＲ２またはＢＲ２）の余白量判定処理を実行する。これらの余白量判定処理は、スキャン画像の予め定められた方向側の余白量（本実施例では右側の余白量）が基準以上であるか否かを判定する処理である。具体的には、図５（Ｂ）、図７（Ｂ）のスキャン画像ＡＬ２、ＡＲ２、ＢＬ２、ＢＲ２のうちの処理対象のスキャン画像内の原稿画像（ＡＩＬ、ＡＩＲ、ＢＩＬ、ＢＩＲのいずれか）の右端から該スキャン画像の右端までの間の余白量（以下、右側の余白量とも呼ぶ）が基準以上であるか否かが所定の判定条件に基づいて判定される。余白量判定処理については、後述する。
【００７３】
Ｓ２１５では、ＣＰＵ４１０は、余白量判定処理によって２個のスキャン画像の右側の余白量は基準以上であると判定されか否かを判断する。２個のスキャン画像の右側の余白量が基準以上である場合には（Ｓ２１５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ２２０にて、第１配置位置決定処理を実行する。例えば、処理対象の２個のスキャン画像が、スキャンパターンＡを用いて生成される図５（Ｂ）のスキャン画像ＡＬ２、ＡＲ２である場合には、原稿画像ＡＩＬ、ＡＩＲの右端からスキャン画像ＡＬ２、ＡＲ２の右端までの間に、比較的大きな余白ＷＡＬ、ＷＡＲが、それぞれ含まれているので、第１配置位置決定処理が実行される。第１配置位置決定処理は、第１種の配置位置を決定するための第１の配置方法を用いて、２個の原稿画像の相対的な位置を決定する処理である。第１種の配置位置は、左側原稿画像と、右側原稿画像と、が重ならない相対的な位置である。
【００７４】
２個のスキャン画像の右側の余白量の少なくとも一方が基準未満である場合には（Ｓ２１５：ＮＯ）、ＣＰＵ４１０は、Ｓ２２５にて、第２配置位置決定処理を実行する。例えば、処理対象の２個のスキャン画像が、スキャンパターンＢを用いて生成される図７（Ｂ）のスキャン画像ＢＬ２、ＢＲ２である場合には、原稿画像ＢＩＬ、ＢＩＲの右端からスキャン画像ＢＬ２、ＢＲ２の右端までの間に、ほとんど余白が含まれていないので、第２配置位置決定処理が実行される。第２配置位置決定処理は、第２種の配置位置を決定するための第２の配置方法を用いて、２個の原稿画像の相対的な位置を決定する処理である。第２種の配置位置は、左側原稿画像の右端近傍の一部と、右側原稿画像の左端近傍の一部と、が重なる位置である。第１配置位置決定処理および第２配置位置決定処理については、後述する。
【００７５】
配置前処理が終了すると、図２のＳ４０では、ＣＰＵ４１０は、配置済画像生成処理を実行する。配置済画像生成処理では、右側スキャンデータと左側スキャンデータとを用いて、左側原稿画像（ＡＩＬまたはＢＩＬ）と、右側原稿画像（ＡＩＲまたはＢＩＲ）と、が配置された配置済画像を表す配置済画像データが生成される。配置済画像において、右側原稿画像と左側原稿画像は、第１配置位置決定処理または第２配置位置決定処理にて決定済の相対的な位置に配置される。
【００７６】
図９は、配置済画像の一例を示す図である。図９（Ａ）の配置済画像ＯＩＡは、処理対象の２個のスキャン画像が、スキャンパターンＡを用いて生成される図５（Ｂ）のスキャン画像ＡＬ２、ＡＲ２である場合に生成される。この配置済画像ＯＩＡでは、第１配置位置決定処理によって決定される上述した第１種の配置位置に、スキャン画像ＡＬ２、ＡＲ２内の原稿画像ＡＩＬ、ＡＩＲが配置されている。
【００７７】
具体的には、配置済画像ＯＩＡにおいて、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとは互いに重ならない位置に配置されている。左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な横方向の位置は、予め決定された位置である。具体的には、配置済画像ＯＩＡにおいて、２個の原稿画像ＡＩＬ、ＡＩＲの相対的な横方向の位置は、左側原稿画像ＡＩＬの右端と、右側原稿画像ＡＩＲの左端と、の間が特定の隙間ΔＩＴだけ離れる位置である。特定の隙間ΔＩＴは、後述する復元領域ＡＬ、ＡＲの幅ΔＷと等しく、例えば、３画素である。左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な縦方向の位置は、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとで、適切に原稿１０を表すことができる位置である。例えば、図９（Ａ）の配置済画像ＯＩＡの例では、左側原稿画像ＡＩＬの上端と右側原稿画像ＡＩＲの上端とが、ΔＨだけ縦方向にずれた位置である。
【００７８】
隙間ΔＩＴの画素の値は、例えば、白を示す固定値とされる。隙間ΔＩＴの幅は、比較的短い（例えば、３画素）ので、隙間ΔＩＴが白であっても、配置済画像ＯＩＡにおいて、隙間ΔＩＴは、過度には目立たない。特に、配置済画像ＯＩＡが印刷される場合には、色材のにじみが発生するので、印刷された配置済画像ＯＩＡにおいて、隙間ΔＩＴは、あまり目立たない。なお、特定の隙間ΔＩＴを挟んで２個の原稿画像ＡＩＬ、ＡＩＲが配置されるのは、スキャンパターンＡでは、原稿１０の折れ線ＶＬ上に位置するごく細い線状の画像が、２個の原稿画像ＡＩＬ、ＡＩＲのいずれにも表れず、欠損しているからである。これを考慮して、配置済画像において、欠損している線状の画像の幅に相当する隙間ΔＩＴを設けることが適切であると考えられる。
【００７９】
なお、右側原稿画像ＡＩＲは、図５（Ｂ）の右側スキャン画像ＡＲ２内の状態から、１８０度回転されて、左側原稿画像ＡＩＬと向きが揃えられた状態で配置済画像ＯＩＡに配置される。この結果、余白量が判断された２個の原稿画像ＡＩＬ、ＡＩＢの右端は、配置済画像ＯＩＡにおいて、横方向の中央部に位置するように配置される。また、図５（Ｂ）のスキャン画像ＡＬ２、ＡＲ２内の原稿画像ＡＩＬ、ＡＩＲの右端より右側の余白ＷＡＬ、ＷＡＲおよび追加領域ＡＡＬ、ＡＡＲは、配置済画像ＯＩＡには配置されない。
【００８０】
図９（Ｂ）の配置済画像ＯＩＢは、処理対象の２個のスキャン画像が、スキャンパターンＢを用いて生成される図７（Ｂ）のスキャン画像ＢＬ２、ＢＲ２である場合に生成される。この配置済画像ＯＩＢでは、第２配置位置決定処理によって決定される上述した第２種の配置位置に、スキャン画像ＢＬ２、ＢＲ２内の原稿画像ＢＩＬ、ＢＩＲが配置されている。
【００８１】
具体的には、配置済画像ＯＩＢにおいて、左側原稿画像ＢＩＬと右側原稿画像ＢＩＲとは、互いの一部が重なる位置に配置されている。より具体的には、配置済画像ＯＩＢにおいて、左側原稿画像ＢＩＬと右側原稿画像ＢＩＲとは、第２配置位置決定処理において右側原稿画像ＢＩＲ内に決定される後述の基準領域ＳＰｂと、左側原稿画像ＢＩＬ内に決定される後述の類似領域ＣＰｂと、が重なるように、配置される。
【００８２】
配置済画像ＯＩＢにおいて、左側原稿画像ＢＩＬと右側原稿画像ＢＩＲとが互いに重なり合う領域内の画素の値（すなわち、ＲＧＢ値）には、例えば、右側原稿画像ＢＩＲ（すなわち、右側スキャン画像ＢＲ２）内の画素の値が優先的に採用される。
【００８３】
なお、右側原稿画像ＢＩＲは、図７（Ｂ）の右側スキャン画像ＢＲ２内の状態から、１８０度回転されて、左側原稿画像ＢＩＬと向きが揃えられた状態で配置済画像ＯＩＢに配置される。この結果、余白量が判断された２個の原稿画像ＢＩＬ、ＢＩＲの右端は、配置済画像ＯＩＢにおいて、横方向の中央部に位置するように配置される。また、図７（Ｂ）のスキャン画像ＢＬ２、ＢＲ２内の原稿画像ＢＩＬ、ＢＩＲの右端より右側の追加領域ＡＢＬ、ＡＢＲは、配置済画像ＯＩＢには配置されない。
【００８４】
以上の説明から解るように、配置済画像生成処理によって、２個の原稿画像で、図３の原稿１０を示す１個の配置済画像を表す配置済画像データが生成される。なお、ＣＰＵ４１０は、生成された配置済画像データを所定の形式の画像ファイルに変換することによって、配置済画像を表す配置済画像ファイルを生成する。例えば、ＲＧＢ画像データである配置済画像データが、ＪＰＥＧ圧縮されることによって、ＪＰＥＧ形式の配置済画像ファイルが生成される。
【００８５】
図２のＳ４５では、ＣＰＵ４１０は、生成された配置済画像ファイルを複合機２００に対して送信する。複合機２００のＣＰＵ２１０は、配置済画像ファイルを受信すると、受信した配置済画像ファイルを不揮発性記憶装置２３０に格納するとともに、ユーザに配置済画像ファイルを受信したことを通知する。配置済画像ファイルは、ユーザの利用に供される。例えば、複合機２００は、ユーザの指示に基づいて、配置済画像ファイルを用いて、配置済画像ＯＩＡ、ＯＩＢを印刷することができる。
【００８６】
本実施例によれば、左側スキャン画像（ＡＬ１またはＢＬ１）の右側の余白量が基準以上であるか否かが判断され（図９のＳ２０５）、左側スキャン画像の右側の余白量が基準以上であるか否かに応じて、用いるべき配置方法が選択される（Ｓ２１５〜Ｓ２２５）。この結果、左側原稿画像（ＡＩＬまたはＢＩＬ）と右側原稿画像（ＡＩＲまたはＢＩＲ）とが配置された配置済画像（ＯＩＡまたはＯＩＢ）を表す画像データを生成する際に、これらの画像の配置方法を適切に選択できる。右側の余白量が基準以上であるか否かを判定する判定条件には、詳細は余白量判定処理を説明する際に後述するが、左側原稿画像（ＡＩＬまたはＢＩＬ）の右端から左側スキャン画像の右端までの間に含まれる複数個の特定色画素（具体的には、白色の画素）の個数が比較的大きいことを示す条件が用いられる。
【００８７】
さらに、本実施例によれば、右側スキャン画像（ＡＲ１またはＢＲ１）の右側の余白量が基準以上であるか否かが判断され（Ｓ２１０）、左側スキャン画像の右側の余白が基準以上であるか否かに加えて、右側スキャン画像の右側の余白が基準以上であるか否かに応じて、配置方法が選択される（Ｓ２１５〜Ｓ２２５）。
【００８８】
具体的には、左側スキャン画像の右側の余白量が基準以上であり、かつ、右側スキャン画像の右側の余白量が基準以上である場合に（Ｓ２１５：ＹＥＳ）、第１配置位置決定処理が実行される（Ｓ２２０）。この場合には、スキャンパターンＡが用いられたと考えられるからである。また、左側スキャン画像の右側の余白量が基準未満であり、かつ、右側スキャン画像の右側の余白量が基準未満である場合に（Ｓ２１５：ＮＯ）、第２配置位置決定処理が実行される（Ｓ２２５）、すなわち、第２の配置方法が選択される。この場合には、スキャンパターンＢが用いられたと考えられるからである。このようにスキャンパターンに応じて、スキャンパターンに適した配置方法を適切に選択することができる。
【００８９】
さらに、上述したように、第１の配置方法は、左側原稿画像と右側原稿画像とが重ならない第１種の配置位置を決定する方法であり、第２の配置方法は、左側原稿画像の一部と右側原稿画像の一部とが重なる配置位置を決定する方法である。本実施例では、このような２種の方法を適切に決定することができる。スキャンパターンＡが用いられた場合には、図４に示すように、原稿画像ＡＩＬ、ＡＩＲは、二つ折りにされた原稿１０の両面をそれぞれ読み取って得られる画像である。このために、図５（Ｂ）に示すように２個の原稿画像ＡＩＬ、ＡＩＲの両方に表れる原稿１０上の領域は存在しない。このために、配置済画像において、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲは、これらの画像が重ならない位置で配置されることが適切である。スキャンパターンＢが用いられた場合には、図６に示すように、原稿画像ＢＩＬ、ＢＩＲは、折り曲げられていない原稿１０を読み取って得られる画像である。このために、図７（Ｂ）に示すように、原稿画像ＢＩＬ、ＢＩＲの両方に、それぞれに、原稿１０の中央部ＣＡを表す画像ＣＩＬ、ＣＩＲが表れる。このために、配置済画像において、左側原稿画像ＢＩＬの右端近傍と、１８０度回転された右側原稿画像ＢＩＲの左端近傍と、が重なるように、配置することが適切である。
【００９０】
また、２個のスキャン画像のうち、左側スキャン画像の余白量が基準以上であり、かつ、右側スキャン画像の余白量が基準未満である場合、および、左側スキャン画像の余白量が基準未満であり、かつ、右側スキャン画像の余白量が基準以上である場合には、スキャンパターンＡ、Ｂのいずれが用いられたかを判断できない。このような場合は、レアケースであると考えられるが、本実施例では、この場合には（図９のＳ２１５：ＮＯ）、第２配置位置決定処理を実行することとしている（Ｓ２２５）。すなわち、本実施例では、後述する第２実施例や第３実施例と異なり、スキャンパターンＡ、Ｂのいずれが用いられたかを判断できない場合であっても、一つの配置方法を選択することとしている。
【００９１】
Ａ−３．余白量判定処理：
Ｓ２０５の右側スキャン画像（ＡＲ２またはＢＲ２）の余白量判定処理、および、Ｓ２１０の左側スキャン画像（ＡＬ２またはＢＬ２）の余白量判定処理について説明する。２つの処理は、処理対象のスキャン画像が異なることを除いて、同一の処理である。
【００９２】
図１０は、余白量判定処理のフローチャートである。Ｓ３００では、ＣＰＵ４１０は、処理開始位置ＳＴＰを決定する。処理開始位置ＳＴＰは、処理対象のスキャン画像の横方向の特定の位置である。処理開始位置ＳＴＰは、処理対象のスキャン画像のうち、配置済画像の横方向の中央部に配置されるべき端（中央配置端とも呼ぶ）の近傍、本実施例では、スキャン画像ＡＬ２、ＡＲ２、ＢＬ２、ＢＲ２（図５（Ｂ）、図７（Ｂ））の右端の近傍に決定される。具体的には、処理開始位置ＳＴＰは、傾き補正前のスキャン画像の右上および右下の頂点のうち、傾き補正済のスキャン画像の右端から離れている頂点の横方向の位置に決定される。処理開始位置ＳＴＰの一例は、図５（Ｂ）、図７（Ｂ）に示されている。例えば、処理対象のスキャン画像が、図５（Ｂ）の左側スキャン画像ＡＬ２である場合には、補正前の左側スキャン画像ＡＬ１の右下の頂点の横方向の位置が、処理開始位置ＳＴＰに決定される。
【００９３】
Ｓ３０５では、ＣＰＵ４１０は、スキャン画像内の複数本の縦方向の画素のラインの中から、１本の注目ラインを選択する。複数本の縦方向の画素のラインは、横方向の位置が互いに等しく、縦方向に沿って並ぶ複数個の画素をそれぞれ含む。最初の注目ラインは、処理開始位置ＳＴＰの画素のラインである。注目ラインは、処理開始位置ＳＴＰから、中央配置端である右端から離れる方向、すなわち、左方向に向かって順次に選択される。
【００９４】
Ｓ３１０では、ＣＰＵ４１０は、注目ラインに含まれる複数個の画素から、１個の注目画素を選択する。注目画素は、注目ラインの上端から下端に向かって１個ずつ順次に選択される。
【００９５】
Ｓ３１５では、ＣＰＵ４１０は、注目画素が、余白が有するべき特定色を有する特定色画素であるか否かを判断する。余白が有するべき特定色は、原稿台２５５の色であり、本実施例では、白である。ＣＰＵ４１０は、注目画素が、特定色を示す所定範囲内の画素の値（ＲＧＢ値）を有する場合には、注目画素が特定色画素であると判断し、特定色を示す範囲外の画素の値を有する場合には、注目画素が特定色とは異なる色を有する非特定色画素であると判断する。
【００９６】
注目画素が特定色画素である場合には（Ｓ３１５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３２０にて、画素カウンタＷＣに１を加算する。画素カウンタＷＣは、縦方向に連続する特定色画素の個数をカウントするためのカウンタである。Ｓ３２５では、ＣＰＵ４１０は、ノイズカウンタＮＣを初期化する、すなわち、初期値「０」にする。ノイズカウンタＮＣは、縦方向に連続する非特定色画素の個数をカウントするためのカウンタである。
【００９７】
注目画素が非特定色画素である場合には（Ｓ３１５：ＮＯ）、ＣＰＵ４１０は、Ｓ３３０にて、ノイズカウンタＮＣに１を加算する。Ｓ３３５では、ＣＰＵ４１０は、ノイズカウンタＮＣが所定の閾値ＴＨｎ以上であるか否かを判断する。閾値ＴＨｎは、例えば、２〜５個である。
【００９８】
ノイズカウンタＮＣが所定の閾値ＴＨｎ以上である場合には（Ｓ３３５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３４０にて、現在の画素カウンタＷＣが、現在の最大連続数ＷＣｍより大きいか否かを判断する。画素カウンタＷＣが、最大連続数ＷＣｍより大きい場合には（Ｓ３４０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３４５にて、最大連続数ＷＣｍの値を、画素カウンタＷＣの値に更新して、Ｓ３５０に処理を進める。画素カウンタＷＣが、最大連続数ＷＣｍ未満である場合には（Ｓ３４０：ＮＯ）、ＣＰＵ４１０は、Ｓ３４５をスキップして、Ｓ３５０に処理を進める。Ｓ３５０では、ＣＰＵ４１０は、画素カウンタＷＣの値を初期化する。
【００９９】
ノイズカウンタＮＣが所定の閾値ＴＨｎ未満である場合には（Ｓ３３５：ＮＯ）、ＣＰＵ４１０は、上述のＳ３４０〜Ｓ３５０をスキップして、Ｓ３５５に処理を進める。
【０１００】
Ｓ３５５では、注目ラインの全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ３５５：ＮＯ）、ＣＰＵ４１０は、Ｓ３１０に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ３５５：ＹＥＳ）、ＣＰＵ４１０は、上述したＳ３４０、Ｓ３４５と同様の処理を実行する。すなわち、Ｓ３６０にて、現在の画素カウンタＷＣが、現在の最大連続数ＷＣｍより大きいか否かが判断され、画素カウンタＷＣが最大連続数ＷＣｍより大きい場合には（Ｓ３６０：ＹＥＳ）、Ｓ３６５にて、最大連続数ＷＣｍの値が画素カウンタＷＣの値に更新される。そして、画素カウンタＷＣが最大連続数ＷＣｍ未満である場合には（Ｓ３６０：ＮＯ）、Ｓ３６５はスキップされる。
【０１０１】
Ｓ３７０に処理が進んだ時点での最大連続数ＷＣｍは、注目ラインにおいて、縦方向に連続する特定色画素の個数の最大値を示している。なお、上述の説明から解るように、一の特定色画素と他の特定色画素とが実際に縦方向に連続している場合だけでなく、一の特定色画素と他の特定色画素との間に、閾値ＴＨｎ未満の非特定色画素が存在する場合であっても、当該一の特定色画素と他の特定色画素とは縦方向に連続していると判断される。これは、スキャン画像の余白部分には、様々な原因、例えば、スキャナ部２５０のイメージセンサの特性や原稿台２５５の汚れなどに起因して、非特定色画素が、ノイズとして含まれ得るからである。換言すれば、本実施例では、一の特定色画素と他の特定色画素との間に閾値ＴＨｎ以上の非特定色画素が存在しないことが、注目ライン内の一の特定色画素と他の特定色画素とが縦方向に連続すると判断するための連続条件である、と言うことができる。変形例としては、連続条件は、特定色画素が実際に縦方向に連続していることであっても良い。
【０１０２】
Ｓ３７０では、ＣＰＵ４１０は、最大連続数ＷＣｍが閾値ＴＨｍ以上であるか否かを判断する。閾値ＴＨｍは、例えば、処理対象のスキャン画像の縦方向の画素数の５０％の値に設定される。最大連続数ＷＣｍが閾値ＴＨｍ以上である場合には、注目ラインは余白を構成する余白ラインであると、判断することができる。このために、最大連続数ＷＣｍが閾値ＴＨｍ以上である場合には（Ｓ３７０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３７５にて、余白ラインの本数をカウントするための余白カウンタＷＬに１を加算する。
【０１０３】
最大連続数ＷＣｍが閾値ＴＨｍ未満である場合には、注目ラインは余白を構成する余白ラインではなく、原稿画像の右端を構成するラインであると、判断することができる。このために、最大連続数ＷＣｍが閾値ＴＨｍ未満である場合には（Ｓ３７０：ＮＯ）、ＣＰＵ４１０は、Ｓ３９０にて、現在の余白カウンタＷＬの値を、処理対象のスキャン画像の余白ライン数ＷＬＮとして決定して、Ｓ３９５に処理を進める。余白ライン数ＷＬＮは、スキャン画像の右側の余白の横方向の長さを示す指標値である。
【０１０４】
Ｓ３８０では、ＣＰＵ４１０は、処理対象のスキャン画像内の全てのラインを注目ラインとして処理したか否かを判断する。通常は、注目ラインが原稿画像の右端に達した時点で、上述したＳ３９０を経由して余白量判定処理は終了される。したがって、全てのラインが処理されることは、例えば、処理対象のスキャン画像に原稿画像が含まれていない場合などのイレギュラーな場合を除いて、発生しない。スキャン画像内に未処理のラインがある場合には（Ｓ３８０：ＮＯ）、ＣＰＵ４１０は、Ｓ３８５にて、画素カウンタＷＣ、ノイズカウンタＮＣ、最大連続数ＷＣｍを初期化した後に、Ｓ３０５に戻って、現在の注目ラインの左側に隣接するラインを、次の注目ラインとして選択する。スキャン画像内の全てのラインを処理した場合には（Ｓ３８０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３９０にて、現在の余白カウンタＷＬの値を、処理対象のスキャン画像の余白ライン数ＷＬＮとして決定して、Ｓ３９５に処理を進める。
【０１０５】
Ｓ３９５では、ＣＰＵ４１０は、余白ライン数ＷＬＮが閾値ＴＨｗ以上であるか否かを判断する。余白ライン数ＷＬＮが閾値ＴＨｗ以上である場合に（Ｓ３９５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ３９７にて、処理対象のスキャン画像の余白量は基準以上であると判定して、余白量判定処理を終了する。余白ライン数ＷＬＮが閾値ＴＨｗ未満である場合に（Ｓ３９５：ＮＯ）、ＣＰＵ４１０は、Ｓ３９８にて、処理対象のスキャン画像の余白量は基準未満であると判定して、余白量判定処理を終了する。閾値ＴＨｗは、例えば、処理対象のスキャン画像の横方向の解像度が３００ｄｐｉである場合に、２０本である。
【０１０６】
以上説明した余白量判定処理によれば、ＣＰＵ４１０は、画素の値が特定の判定条件を満たす画素、具体的には、画素の値が特定色を示す所定範囲内にある画素を、特定色画素であると判定し（Ｓ３１５）、縦方向に特定色画素が連続することを示す連続条件を満たす特定色画素の個数、すなわち、最大連続数ＷＣｍを、算出する（Ｓ３２０〜Ｓ３６５）。そして、ＣＰＵ４１０は、最大連続数ＷＣｍを用いて、余白量が基準以上であるか否かを判断する（Ｓ３７０〜Ｓ３９８）。この結果、余白量が基準以上であるか否かを適切に判断できる。余白は、連続する特定色画素によって構成されると考えられるからである。
【０１０７】
さらに、連続条件は、上述したように、一の特定色画素と他の特定色画素との間に閾値ＴＨｎ以上の非特定色画素が存在しないことである。これによって、余白内に含まれるノイズを考慮して、適切な最大連続数ＷＣｍを算出ことができるので、余白量が基準以上であるか否かをさらに適切に判断できる。
【０１０８】
具体的には、ＣＰＵ４１０は、縦方向の複数個のラインのうち、最大連続数ＷＣｍが閾値ＴＨｍ以上であり、かつ、処理対象のスキャン画像内の原稿画像の右端と、該スキャン画像の右端と、の間に位置する余白ラインの本数を示す余白ライン数ＷＬＮを算出し（Ｓ３７０〜Ｓ３９０）、余白ライン数ＷＬＮを用いて、余白量が基準以上であるか否かを判断する。この結果、余白量が基準以上であるか否かをより精度良く判断できる。スキャン画像の右側の基準以上の量の余白は、原稿画像の右端と該スキャン画像の右端との間に位置する複数本のラインであって、縦方向に連続する比較的多くの特定色画素を含む複数本のラインによって構成されると考えられるからである。
【０１０９】
さらに、具体的には、ＣＰＵ４１０は、処理対象のスキャン画像の右端の近傍の特定の位置である処理開始位置ＳＴＰ（図５（Ｂ）等）から、右端の方向（すなわち、右方向）の反対方向（すなわち、左方向）に向かって、ラインごとに、余白ラインであるか否かを判定する（Ｓ３００、Ｓ３０５など）。そして、ＣＰＵ４１０は、余白ラインが横方向に連続する本数を、余白ライン数ＷＬＮとして算出する（Ｓ３７５、Ｓ３８０、Ｓ３９０）。こうすれば、余白ライン数ＷＬＮを、適切に算出することができる。スキャン画像の右側の余白を構成する複数本の余白ラインは、スキャン画像の右端の近傍から原稿画像の右端まで横方向に連続していると、考えられるからである。
【０１１０】
以上のように、本実施例の余白量判定処理では、縦方向に連続する比較的多くの特定色画素を含む余白ラインが横方向に連続する本数である余白ライン数ＷＬＮが閾値ＴＨｗ以上であるか否かを判定条件として、余白量が基準以上であることを判断している。この判定条件は、原稿画像の右端と該スキャン画像の右端との間に含まれる縦方向や横方向に連続する複数個の特定色画素であって、原稿画像に含まれず、かつ、スキャン画像に含まれる複数個の画素の個数が比較的多いことを示す条件である、と言うことができる。
【０１１１】
Ａ−４．第１配置位置決定処理：
図８のＳ２２０の第１配置位置決定処理について説明する。図１１は、第１配置位置決定処理のフローチャートである。図１２は、第１配置位置決定処理の説明図である。上述したように、第１配置位置決定処理は、スキャンパターンＡが用いられた場合に実行される処理であるので、図５（Ｂ）のスキャン画像ＡＬ１、ＡＬ２が処理対象である場合を例として説明する。
【０１１２】
Ｓ４００では、ＣＰＵ４１０は、スキャン画像ＡＬ２、ＡＲ２に対して、余白の削除と回転を実行する。具体的には、上述した余白量判定処理にて、余白ラインであると判断されたラインと、余白ラインより右側の部分（すなわち、処理開始位置ＳＴＰより右側の部分）と、をスキャン画像ＡＬ２、ＡＲ２から削除する。また、右側スキャン画像ＡＲ２内の右側原稿画像ＡＩＲの上下方向を、左側スキャン画像ＡＬ２内の左側原稿画像ＡＩＬの上下方向と同じとするために、右側スキャン画像ＡＲ２を１８０度回転させる。
【０１１３】
図１２（Ａ）には、Ｓ４００の処理後のスキャン画像ＡＬ３、ＡＲ３が図示されている。図１２（Ａ）では、左側原稿画像ＡＩＬ、ＡＩＲの内部の図示は省略し、符号付きの矢印のみを図示する。左側スキャン画像ＡＬ３では右側の余白がなく、１８０度回転された右側スキャン画像ＡＲ３では左側の余白がないことが解る。Ｓ４０１の画素復元処理では、左側スキャン画像ＡＬ３内の左側原稿画像ＡＩＬの右端と、右側スキャン画像ＡＲ３内の右側原稿画像ＡＩＲの左端と、が特定されていることが必要である。このために、Ｓ４００では、これらの端と接する余白を削除しているが、余白の削除は必ずしも必要ではなく、これらの端が特定されていれば良い。
【０１１４】
Ｓ４０１では、ＣＰＵ４１０は、スキャン画像ＡＬ３、ＡＲ３内の原稿画像ＡＩＬ、ＡＩＲにおいて欠損している画素を復元する画素復元処理を実行する。図１２（Ａ）には、スキャン画像ＡＬ３、ＡＲ３と、画素復元処理によって復元される複数個の画素が位置する復元領域ＡＬ、ＡＲが図示されている。上述したように、スキャンパターンＡが用いて生成されたスキャン画像ＡＬ３、ＡＲ３は、二つ折りにされた原稿１０を読み取ることによって生成された画像である。このために、原稿１０の折れ線ＶＬ上に位置するごく細い線状の領域の画像は、スキャン画像ＡＬ３、ＡＲ３内の原稿画像ＡＩＬ、ＡＩＲのいずれにも表れておらず、欠損している。図１２（Ａ）の復元領域ＡＬ、ＡＲは、原稿１０の折れ線ＶＬ上に位置するごく細い線状の領域に対応している。
【０１１５】
左側復元領域ＡＬは、左側原稿画像ＡＩＬの折れ線ＶＬに対応する端、図１２（Ａ）の例では、左側原稿画像ＡＩＬの右端に沿って左側原稿画像ＡＩＬの外側に位置する領域である。左側復元領域ＡＬは、原稿画像ＡＩＬの右端の全長に亘って上端から下端まで延びるごく細い線状の領域である。右側復元領域ＡＲは、右側原稿画像ＡＩＲの折れ線ＶＬに対応する端、図１２（Ａ）の例では、右側原稿画像ＡＩＲの左端に沿って右側原稿画像ＡＩＲの外側に位置する領域である。右側復元領域ＡＲは、右側原稿画像ＡＩＲの左端の全長に亘って上端から下端まで延びるごく細い線状の領域である。復元領域ＡＬ、ＡＲの折れ線ＶＬに対応する端と垂直な方向の幅、すなわち、図１２（Ａ）の横方向の幅ΔＷは、実験的に予め決められた値である。本実施例では、幅ΔＷは、原稿画像ＡＩＬ、ＡＩＲの横方向の解像度が、３００ｄｐｉである場合に、３画素である。
【０１１６】
図１３は、画素復元処理のフローチャートである。Ｓ５００では、ＣＰＵ４１０は、左側原稿画像ＡＩＬおよび右側原稿画像ＡＩＲから、注目画像を選択する。Ｓ５０５では、ＣＰＵ４１０は、注目画像に対して、上述した復元領域を設定する。例えば、左側原稿画像ＡＩＬが注目画像である場合には、左側原稿画像ＡＩＬの右端に沿って左側復元領域ＡＬが設定される。
【０１１７】
Ｓ５１０では、ＣＰＵ４１０は、復元領域内の注目ラインを選択する。例えば、本実施例では、復元領域の横方向の幅ΔＷは３画素であるので、上下方向に延びる３本の画素のラインを含んでいる。ＣＰＵ４１０は、３本の画素のラインの中から、１本の注目ラインを、注目画像に近い側から順に選択する。例えば、図１３の右側に示すように、左側復元領域ＡＬは、３本のラインＬ１〜Ｌ３を含んでいる。したがって、左側原稿画像ＡＩＬが注目画像である場合には、最初にラインＬ１が、注目ラインとして選択され、次にラインＬ２が注目ラインとして選択される。
【０１１８】
Ｓ５１５では、ＣＰＵ４１０は、注目ラインに含まれる複数個の画素から１個の注目画素を選択する。例えば、注目ラインに含まれる複数個の画素から、上側から下側に向かって順次に注目画素が選択される。
【０１１９】
Ｓ５２０では、ＣＰＵ４１０は、注目画素の複数個の近傍画素の値を用いて、注目画素の値（本実施例では、ＲＧＢ値）を決定する。左側原稿画像ＡＩＬが注目画像である場合には、注目画素の値は、注目画素より左側に位置する４個の近傍画素の値を用いて決定される。例えば、図１３の右側に示すラインＬ１の画素Ｘが注目画素である場合には、４個の近傍画素は、ラインＬ１の左側に隣接するラインＬａの３個の画素Ａ、Ｂ、Ｃと、ラインＬａの左側に隣接するラインＬｂの１個の画素Ｄである。画素Ａは、注目画素より左側に位置する画素のうち、注目画素に最も近い第１近傍画素であり、画素Ｂ、Ｃは、注目画素に２番目に近い第２近傍画素であり、画素Ｄは、注目画素に３番目に近い第３近傍画素である。画素Ｘの特定の成分値（例えば、Ｒ成分の値）Ｖｘは、画素Ａ〜Ｄの特定の成分値Ｖａ〜Ｖｄを用いて、以下の式（１）によって算出される。
【０１２０】
Ｖｘ＝Ｋａ×Ｖａ＋Ｋｂ×Ｖｂ＋Ｋｃ×Ｖｃ＋Ｋｄ×Ｖｄ  ...（１）
ここで、Ｋａ〜Ｋｄは、画素Ａ〜Ｄとのそれぞれと画素Ｘとの距離に応じて予め決定された係数である。係数Ｋａ〜Ｋｄは、Ｋａ〜Ｋｄの合計値が１であり、かつ、画素Ｘとの距離が短いほど大きな値となるように、決定されている。本実施例では、Ｋａ＝０．５、Ｋｂ＝Ｋｃ＝０．２、Ｋｄ＝０．１である。
【０１２１】
ＣＰＵ４１０は、式（１）を用いて、注目画素のＲＧＢの３個の成分の値をそれぞれ算出することによって、注目画素のＲＧＢ値を決定する。
【０１２２】
なお、図示は省略するが、右側原稿画像ＡＩＲが注目画像である場合には、注目画素の値は、注目画素より右側に位置する４個の近傍画素の値を用いて決定される。
【０１２３】
Ｓ５２５では、ＣＰＵ４１０は、注目ラインの全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ５２５：ＮＯ）、ＣＰＵ４１０は、Ｓ５１５に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ５２５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ５３０にて、注目画像について設定された復元領域の全てのラインを注目ラインとして処理したか否かを判断する。未処理のラインがある場合には（Ｓ５３０：ＮＯ）、ＣＰＵ４１０は、Ｓ５１０に戻って、未処理のラインを注目ラインとして選択する。全てのラインが処理された場合には（Ｓ５３０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ５３５に処理を進める。
【０１２４】
Ｓ５３５では、ＣＰＵ４１０は、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲの両方を処理したか否かを判断する。ＣＰＵ４１０は、両方の原稿画像を処理していない場合には（Ｓ５３５：ＮＯ）、Ｓ５００に戻って未処理の原稿画像を注目画像として選択する。ＣＰＵ４１０は、両方の原稿画像を処理済である場合には（Ｓ５３５：ＹＥＳ）、画素復元処理を終了する。
【０１２５】
以上の説明から解るように、左側復元領域ＡＬの画素のうち、左側原稿画像ＡＩＬの右端の右側に隣接するラインＬ１内の画素の値は、左側原稿画像ＡＩＬの右端に沿うラインＬａ、Ｌｂの複数個の画素の値を用いて決定される。ラインＬａ、Ｌｂの複数個の画素は、左側原稿画像ＡＩＬに含まれる複数個の画素であって、左側原稿画像ＡＩＬの右端にそって左側原稿画像ＡＩＬの内側に並ぶ複数個の画素と、言うことができる。
【０１２６】
同様に、左側復元領域ＡＬのうち、ラインＬ１の右側に隣接するラインＬ２内の画素の値は、ラインＬ１の複数個の画素と、ラインＬａの複数個の画素の値と、を用いて決定される。また、左側復元領域ＡＬのうち、ラインＬ２の右側に隣接するラインＬ３内の画素の値は、ラインＬ１、Ｌ２の複数個の画素の値を用いて決定される。このように、画素復元処理によって、左側復元領域ＡＬ内の複数個の画素が、左側原稿画像ＡＩＬの右端に沿うラインＬａ、Ｌｂの複数個の画素の値を直接または間接的に用いて、生成される。左側復元領域ＡＬ内の複数個の画素は、左側原稿画像ＡＩＬに含まれない複数個の画素であって左側原稿画像ＡＩＬの右端に沿って左側原稿画像ＡＩＬの外側に並ぶ複数個の画素（左側復元画素とも呼ぶ）と言うことができる。
【０１２７】
同様に、画素復元処理によって、右側復元領域ＡＲ内の複数個の画素が、右側原稿画像ＡＩＲの右端に沿うラインの複数個の画素の値を直接または間接的に用いて、生成される。右側復元領域ＡＲ内の複数個の画素は、右側原稿画像ＡＩＲに含まれない複数個の画素であって右側原稿画像ＡＩＲの左端に沿って右側原稿画像ＡＩＲの外側に並ぶ複数個の画素（右側復元画素とも呼ぶ）と言うことができる。
【０１２８】
左側復元領域ＡＬ内の複数個の左側復元画素によって構成される線状の画像と、右側復元領域ＡＲ内の複数個の右側復元画素によって構成される線状の画像は、ともに、原稿１０の折れ線ＶＬ上に位置する線状の画像を表す画像になる。したがって、左側復元領域ＡＬ内の画像と、右側復元領域ＡＲ内の画像とは、互いに類似する部分を含むと考えられる。
【０１２９】
なお、復元領域ＡＬ、ＡＲは、それぞれ、原稿画像ＡＩＬ、ＡＩＲに隣接する領域であるが、バッファ領域４２１内では、復元領域ＡＬ、ＡＲ内の復元画素を含む画像データは、必ずしも原稿画像ＡＩＬ、ＡＩＲを表す画像データと一体とされている必要はなく、原稿画像ＡＩＬ、ＡＩＲを表す画像データとは、別の画像データであって良い。
【０１３０】
画素復元処理が終了すると、図１１のＳ４０２では、ＣＰＵ４１０は、基準領域ＳＰａを決定する。基準領域ＳＰａは、右側復元領域ＡＲの少なくとも一部を含む領域に決定される。本実施例では、右側復元領域ＡＲの全体、すなわち、画素復元処理によって生成された複数個の右側復元画素によって構成される画像の全体が、基準領域ＳＰａとして決定される。これに代えて、右側復元領域ＡＲの一部分が基準領域ＳＰａとして決定されても良い。あるいは、右側復元領域ＡＲと右側原稿画像ＡＩＲとによって構成される画像から、右側復元領域ＡＲの全体と右側復元領域ＡＲの左端の一部を含む領域が、基準領域ＳＰａとして決定されても良い。
【０１３１】
Ｓ４０５では、ＣＰＵ４１０は、候補領域を決定するための所定の参照範囲ＲＥａに基づいて決定される複数個の候補領域の中から、１個の注目候補領域を決定する。参照範囲ＲＥａは、例えば、図１２（Ａ）に示すように、左側原稿画像ＡＩＬの右上部分に破線で示す範囲である。図１４は、図１２（Ａ）の参照範囲ＲＥａ近傍の拡大図である。参照範囲ＲＥａは、縦Ｍ１画素×横Ｎ１画素分の矩形の範囲である（Ｍ１、Ｎ１は、２以上の整数）。Ｎ１は、例えば、約１０であり、Ｍ１は、例えば、数十から数百である。参照範囲ＲＥａの右端は、左側原稿画像ＡＩＬの右側の左側復元領域ＡＬの右端と一致している。参照範囲ＲＥａの縦方向の中心は、左側原稿画像ＡＩＬの上端に位置している。
【０１３２】
ＣＰＵ４１０は、参照範囲ＲＥａ内の（Ｍ１×Ｎ１）個の画素位置から、１個の注目画素位置を選択する。ＣＰＵ４１０は、当該注目画素位置に、基準領域ＳＰａの左上の画素Ｐｃ（図１２（Ａ））が位置するように、基準領域ＳＰａを配置した場合に、基準領域ＳＰａと重なる左側原稿画像ＡＩＬまたは復元領域ＡＬ内の領域を注目候補領域として特定する。このように、参照範囲ＲＥａ内の（Ｍ１×Ｎ１）個の画素位置が、（Ｍ１×Ｎ１）個の候補領域と１対１で対応している。例えば、図１４のハッチングで示す候補領域ＮＴ１は、参照範囲ＲＥａ内の右上の画素位置Ｐｔ１が注目画素位置である場合に特定される。図１４のハッチングで示す候補領域ＮＴ２は、参照範囲ＲＥａ内の左下の画素位置Ｐｔ２が注目画素位置である場合に特定される。候補領域が設定され得る領域である探索領域ＳＡａは、図１４に示すように、参照範囲ＲＥａの左端の位置ＬＰより右側に位置する領域である。第１配置位置決定処理の探索領域ＳＡａは、左側復元領域ＡＬと、左側原稿画像ＡＩＬの右端の近傍の一部分の領域と、を含む。
【０１３３】
例えば、最初の注目候補領域は、図１４の候補領域ＮＴ１である。そして、注目候補領域ＮＴ１を特定するための参照範囲ＲＥａ内の画素位置を、候補領域ＮＴ１を特定する際の位置から縦方向や横方向に１画素刻みで移動させることで、（Ｍ１×Ｎ１）個の候補領域から１個の注目候補領域が順次に特定される。
【０１３４】
１個の注目候補領域が特定されると、Ｓ４１０では、ＣＰＵ４１０は、注目候補領域の類似率（ＳＣ／Ｎｔ）を算出する。注目候補領域の類似率（ＳＣ／Ｎｔ）は、注目候補領域と、基準領域ＳＰａとが類似している程度を示す指標値である。
【０１３５】
類似率（ＳＣ／Ｎｔ）の算出方法は、以下のとおりである。先ず、ＣＰＵ４１０は、注目候補領域内の複数個の画素を１個ずつ注目画素として選択して、注目画素が、類似画素であるか非類似画素であるかを判断する。具体的には、ＣＰＵ４１０は、注目候補領域内の注目画素の成分値と、当該注目画素に対応する基準領域ＳＰａ内の画素の成分値と、の差ΔＶＰを算出する。注目画素に対応する基準領域ＳＰａ内の画素は、注目候補領域と基準領域ＳＰａとを重ねた場合に、注目画素と重なる基準領域ＳＰａ内の画素である。差ΔＶＰを算出すべき２個の画素の成分値を、（Ｒ１、Ｇ１、Ｂ１）と（Ｒ２、Ｇ２、Ｂ２）とする。差ΔＶＰは、例えば、３種類の成分値間の差分の絶対値の和で表される。すなわち、差ΔＶＰは、（Ｒ１−Ｒ２）の絶対値と、（Ｇ１−Ｇ２）の絶対値と、（Ｂ１−Ｂ２）の絶対値と、の合計値で表される。
【０１３６】
ＣＰＵ４１０は、算出された差ΔＶＰが、所定の基準値ＴＨ１以下である場合には、注目画素が類似画素であると判断し、算出された差ΔＶＰが、所定の基準値ＴＨ１より大きい場合には、注目画素が非類似画素であると判断する。差ΔＶＰが、所定の基準値ＴＨ１以下である場合には、注目候補領域内の注目画素の色と、当該注目画素に対応する基準領域ＳＰａ内の画素の色とは、類似すると判断できるからである。
【０１３７】
ＣＰＵ４１０は、注目候補領域内の類似画素の個数ＳＣを、注目候補領域内の画素の総数Ｎｔで除することによって、注目候補領域の類似率（ＳＣ／Ｎｔ）を算出する。類似率（ＳＣ／Ｎｔ）は、注目候補領域内の画素の総数Ｎｔに対する類似画素の個数ＳＣの割合である。類似率（ＳＣ／Ｎｔ）が大きいほど、基準領域ＳＰａと、注目候補領域とは、類似している。
【０１３８】
Ｓ４１５は、ＣＰＵ４１０は、類似率（ＳＣ／Ｎｔ）が、閾値ＴＨ２以上であるか否かを判断する。即ち、ＣＰＵ４１０は、現在の注目候補領域が基準領域ＳＰａに類似しているか否かを判断する。
【０１３９】
類似率（ＳＣ／Ｎｔ）が、閾値ＴＨ２以上である場合、即ち、現在の注目候補領域が基準領域ＳＰａに類似していると判断する場合には（Ｓ４１５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ４２０にて、現在の注目候補領域を、基準領域ＳＰａに類似する類似領域として記憶して、Ｓ４２５に処理を進める。
【０１４０】
類似率（ＳＣ／Ｎｔ）が、閾値ＴＨ２未満である場合には（Ｓ４１５：ＮＯ）、ＣＰＵ４１０は、Ｓ４２０をスキップして、Ｓ４２５に処理を進める。
【０１４１】
Ｓ４２５では、ＣＰＵ４１０は、（Ｍ１×Ｎ）個の全ての候補領域を注目候補領域として処理したか否かを判断する。未処理の候補領域がある場合には（Ｓ４２５：ＮＯ）、ＣＰＵ４１０は、Ｓ４０５に戻って、未処理の候補領域を注目候補領域として特定する。全ての候補領域が処理された場合には（Ｓ４２５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ４３０に処理を進める。
【０１４２】
Ｓ４３０では、ＣＰＵ４１０は、（Ｍ１×Ｎ１）個の候補領域の中に１個以上の類似領域があるか否かを判断する。すなわち、Ｓ４２０にて類似領域として記憶された候補領域が１個以上あるか否かが判断される。ＣＰＵ４１０は、１個以上の類似領域がある場合には（Ｓ４３０：ＹＥＳ）、Ｓ４３５にて、１個以上の類似領域の中から、Ｓ４１０にて算出された類似率（ＳＣ／Ｎｔ）が最も高い１個の類似領域ＣＰａを選択する。
【０１４３】
Ｓ４４０では、ＣＰＵ４１０は、選択した１個の類似領域ＣＰａの位置に基づいて、左側原稿画像ＡＩＬと、右側原稿画像ＡＩＲと、の相対的は配置位置を決定する。本実施例では、原稿画像ＡＩＬ、ＡＩＲの折れ線ＶＬに対応する端に沿った方向、すなわち、図１４の縦方向の相対的な位置が決定される。具体的には、Ｓ４３５で選択された類似領域ＣＰａに対応する参照範囲ＲＥａ内の画素位置Ｐｓが特定される。例えば、Ｓ４３５で選択された類似領域ＣＰａが、図１４の候補領域ＮＴ１である場合には、参照範囲ＲＥａの画素位置Ｐｔ１が、類似領域ＣＰａに対応する参照範囲ＲＥａ内の画素位置Ｐｓとして特定される。そして、図１２（Ｂ）に示すように、特定された参照範囲ＲＥａ内の画素位置の縦方向の位置が、右側原稿画像ＡＩＲの上端の画素の縦方向の位置として決定される。なお、図１２（Ｂ）では、図の煩雑を避けるために、スキャン画像ＡＬ３、ＡＲ３内の余白と追加領域の図示を省略している。参照範囲ＲＥａは、左側原稿画像ＡＩＬに対して設定されているので、これによって、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な縦方向の位置が決定される。なお、本実施例の第１配置位置決定処理では、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な横方向の位置は、決定されない。左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な横方向の位置は、本処理で決定される位置ではなく、予め決定された位置である。具体的には、上述したように、左側原稿画像ＡＩＬの右端と右側原稿画像ＡＩＲの左端との間に所定の隙間ΔＩＴが確保される位置である。
【０１４４】
１個以上の類似領域がない場合には（Ｓ４３０：ＮＯ）、ＣＰＵ４１０は、Ｓ４４５にて、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な縦方向の位置をデフォルトの位置に決定する。本実施例の縦方向のデフォルトの位置は、左側原稿画像ＡＩＬの上端の縦方向の位置と、右側原稿画像ＡＩＲの上端の縦方向の位置と、が一致する位置である。
【０１４５】
Ｓ４４０およびＳ４４５のいずれかにて、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な縦方向の位置が決定されると、第１配置位置決定処理は終了される。
【０１４６】
以上説明した第１配置位置決定処理において配置位置を決定する方法では、右側原稿画像ＡＩＲの左端に沿って右側原稿画像ＡＩＲの内側に並ぶ複数個の画素の値を用いて、右側原稿画像ＡＩＲの左端に沿う復元領域ＡＲ内の複数個の右側復元画素が生成される（図１３）。そして、これらの複数個の右側復元画素を用いて、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な位置が決定される（図１１）。この結果、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとが重ならない配置位置を精度良く決定することができる。特に、スキャンパターンＡを用いて生成される２個のスキャン画像を用いて、１個の原稿１０を示す配置済画像を生成する際に、適切な配置位置を精度良く決定することができる。
【０１４７】
スキャンパターンＡが用いられる場合には、原稿１０の折れ線ＶＬ上に位置する線状の画像は、原稿画像ＡＩＬ、ＡＩＲのいずれにも表れない。このために、仮に、これらの原稿画像ＡＩＬ、ＡＩＲの縦方向の相対的な位置を、複数個の右側復元画素を生成することなく、決定すると、縦方向の相対的な位置を精度良く決定できない可能性がある。本実施例では、右側復元画素を生成し、右側復元画素を用いて、これらの原稿画像ＡＩＬ、ＡＩＲの縦方向の相対的な位置を精度良く決定することができる。
【０１４８】
さらに、第１配置位置決定処理では、左側原稿画像ＡＩＬに沿って左側原稿画像ＡＩＬの内側に並ぶ複数個の画素の値を用いて、左側原稿画像ＡＩＬの右端に沿う復元領域ＡＬ内の複数個の左側復元画素が生成される（図１３）。そして、これらの複数個の左側復元画素を用いて、左側原稿画像ＡＩＬと右側原稿画像ＡＩＲとの相対的な位置が決定される（図１１）。この結果、配置済画像データを生成する際に、原稿画像ＡＩＬと右側原稿画像ＡＩＲとの配置位置をさらに精度良く決定することができる。例えば、複数個の左側復元画素によって構成される画像と、右側復元画素によって構成される画像と、が類似する場合には、これらの２個の画像の類似性に基づいて、原稿画像ＡＩＬと右側原稿画像ＡＩＲとの配置位置を適切に決定し得る。
【０１４９】
さらに、基準領域ＳＰａは、右側復元領域ＡＲ内の複数個の右側復元画素を含み、右側原稿画像ＡＩＲ内の画素を含まない（図１２（Ａ））。原稿画像ＡＩＬ、ＡＩＲは、二つ折りにされた原稿１０の両面をそれぞれ読み取って得られる画像であることから、２個の原稿画像ＡＩＬ、ＡＩＲの両方に表れる原稿１０上の領域は存在しない。このために、基準領域ＳＰａには、複数個の右側復元画素を含めば十分であり、右側原稿画像ＡＩＲ内の画素を含める必要はないからである。これによって、２個の原稿画像ＡＩＬ、ＡＩＲの相対的な位置をさらに適切に決定することができる。
【０１５０】
Ａ−５．第２配置位置決定処理：
図８のＳ２２５の第２配置位置決定処理について説明する。図１５は、第２配置位置決定処理のフローチャートである。図１６は、第２配置位置決定処理の説明図である。上述したように、第２配置位置決定処理は、スキャンパターンＢが用いられた場合に実行される処理であるので、図７（Ｂ）のスキャン画像ＢＬ２、ＢＲ２が処理対象である場合を例として説明する。
【０１５１】
Ｓ６００では、ＣＰＵ４１０は、図１１のＳ４００と同様に、スキャン画像ＢＬ２、ＢＲ２に対して、余白の削除と回転を実行する。図１６（Ａ）には、Ｓ６００の処理後のスキャン画像ＢＬ３、ＢＲ３が図示されている。スキャン画像ＢＬ２、ＢＲ２の右端側には実質的に余白はないので、実質的には、処理開始位置ＳＴＰ（図７（Ｂ））より右側の部分だけが削除されていることが解る。また、回転により、右側スキャン画像ＢＲ３内の右側原稿画像ＢＩＲの上下方向が、左側スキャン画像ＢＬ３内の左側原稿画像ＢＩＬの上下方向と同じとされている。なお、第２配置位置決定処理では、画素復元処理は実行されない。
【０１５２】
Ｓ６０２では、ＣＰＵ４１０は、右側スキャン画像ＢＲ３内に、右側スキャン画像ＢＲ３の一部の領域である基準領域ＳＰｂを決定する。図１６（Ａ）に示すように、基準領域ＳＰｂは、右側スキャン画像ＢＲ３内の所定の位置に配置された所定のサイズの矩形領域に決定される。また、基準領域ＳＰｂは、右側スキャン画像ＢＲ３において、原稿１０の中央部ＣＡ（図３）を表す画像ＣＩＲ内に配置される。例えば、基準領域ＳＰｂは、右側スキャン画像ＢＲ３の４つの端のうち、中央部ＣＡを表す画像ＣＩＲに沿った端（本実施例では、左端）に沿って配置される。基準領域ＳＰｂの横方向の長さは、例えば、５０画素〜１５０画素であり、基準領域ＳＰｂの縦方向の長さは、右側スキャン画像ＢＲ３の縦方向の長さの１／４〜１／２である。
【０１５３】
Ｓ６０５では、ＣＰＵ４１０は、候補領域を決定するための所定の参照範囲ＲＥｂに基づいて決定される複数個の候補領域の中から、１個の注目候補領域を決定する。参照範囲ＲＥｂは、例えば、図１６（Ａ）に示すように、左側原稿画像ＢＩＬの右端の近傍部分に破線で示す範囲である。参照範囲ＲＥｂは、縦Ｍ２画素×横Ｎ２画素分の矩形の範囲である（Ｍ２、Ｎ２は、２以上の整数）。Ｎ２は、例えば、数１００であり、Ｍ２は、例えば、数十から数百である。参照範囲ＲＥｂの右端は、左側原稿画像ＢＩＬの右端と一致している。参照範囲ＲＥｂの左端は、左側原稿画像ＢＩＬ内における中央部ＣＡを表す画像ＣＩＲの左端より左側に一致している。左側スキャン画像ＢＬ３における参照範囲ＲＥｂの縦方向の中心の位置は、右側スキャン画像ＢＲ３における右側原稿画像ＢＩＲの基準領域ＳＰｂの上端と同じである。
【０１５４】
ＣＰＵ４１０は、参照範囲ＲＥｂ内の（Ｍ２×Ｎ２）個の画素位置から、１個の注目画素位置を選択する。ＣＰＵ４１０は、当該注目画素位置に、基準領域ＳＰｂの左上の画素Ｐｄ（図１６（Ａ））が位置するように、基準領域ＳＰｂを配置した場合に、基準領域ＳＰｂと重なる左側原稿画像ＢＩＬ内の領域が注目候補領域として特定される。このように、参照範囲ＲＥｂを参照して、注目候補領域を特定する手法は、図１４を参照して説明した第１配置位置決定処理の手法と同様である。候補領域が設定され得る領域である探索領域ＳＡｂは、図１６（Ｂ）に示すように、左側原稿画像ＢＩＬの右端の近傍に位置している。また、探索領域ＳＡｂは、左側原稿画像ＢＩＬ内における中央部ＣＡを表す画像ＣＩＲのうち、比較的広い部分を含む。この結果、基準領域ＳＰｂと類似する類似領域が、探索領域ＳＡｂ内において決定できる確率を高めることができる。
【０１５５】
図１５のＳ６１０〜Ｓ６３５の処理は、図１１のＳ４１０〜Ｓ４３５の処理と同一である。すなわち、Ｓ６１０〜Ｓ６３５の処理で、探索領域ＳＡｂ内に設定される（Ｍ２×Ｎ２）個の注目領域のうち、基準領域ＳＰｂとの類似率が最も高い１個の類似領域ＣＰｂが決定される。
【０１５６】
類似領域ＣＰｂが決定されると、Ｓ６４０にて、ＣＰＵ４１０は、決定された類似領域ＣＰｂと基準領域ＳＰｂとの位置に基づいて、左側原稿画像ＢＩＬと右側原稿画像ＢＩＲとの相対的は配置位置を決定して、第２配置位置決定処理を終了する。具体的には、図１６（Ｂ）に示すように、右側原稿画像ＢＩＲ内の基準領域ＳＰｂと、左側原稿画像ＢＩＬの類似領域ＣＰｂと、が重なるように、配置位置が決定される。このように、第２配置位置決定処理では、類似領域ＣＰｂと基準領域ＳＰｂとに基づいて、縦方向の相対的な位置と、横方向の相対的な位置と、の両方が決定される。
【０１５７】
類似領域ＣＰｂが決定できない場合には（Ｓ６３０：ＮＯ）、ＣＰＵ４１０は、Ｓ６４５にて、左側原稿画像ＢＩＬと右側原稿画像ＢＩＲとの相対的は配置位置をデフォルトの位置に決定して、第２配置位置決定処理を終了する。デフォルトの位置は、例えば、単純に左側スキャン画像ＢＬ３の右端と右側スキャン画像ＢＲ３の左端とが、全長において接する位置である。
【０１５８】
以上説明した第２配置位置決定処理において配置位置を決定する方法では、第１の対象画像の原稿１０の中央部ＣＡ、すなわち、２個の原稿画像ＢＩＬ、ＢＩＲの両方に現れる部分を表す画像ＣＩＲ内に、基準領域ＳＰｂが決定される（Ｓ６０２）。そして、左側原稿画像ＢＩＬ内の一部の領域である探索領域ＳＡｂから、基準領域ＳＰａ内の画像と類似する類似画像を含む類似領域ＣＰｂが特定される（Ｓ６０５〜Ｓ６３５）。基準領域ＳＰａと類似領域ＣＰｂとの位置に基づいて、２個の原稿画像ＢＩＬ、ＢＩＲの相対的な位置が決定される（Ｓ６４０）。この結果、左側原稿画像ＢＩＬの一部と右側原稿画像ＢＩＲの一部とが重なる配置位置を精度良く決定することができる。特に、スキャンパターンＢを用いて生成される２個のスキャン画像を用いて、１個の原稿１０を示す配置済画像を生成する際に、適切な配置位置を精度良く決定することができる。
【０１５９】
こうすれば、第１の対象画像の一部と第２の対象画像の一部とが重なる配置位置を精度良く決定することができる。スキャンパターンＢが用いられる場合には、原稿１０の中央部ＣＡは、２個の原稿画像ＢＩＬ、ＢＩＲの両方に現れる。このために、右側原稿画像ＢＩＲの中央部ＣＡを表す画像ＣＩＲ内に、基準領域ＳＰｂを決定するのが適切であり、第１配置位置決定処理における画素復元処理は必要ない。
【０１６０】
以上の説明から解るように、左側原稿画像ＡＩＬ、ＢＩＬは、第１の対象画像の例であり、左側スキャン画像ＡＬ１、ＢＬ１は、第１の画像の例である。右側原稿画像ＡＩＲ、ＢＩＲは、第２の対象画像の例であり、右側スキャン画像ＡＲ１、ＢＲ１は、第２の画像の例である。また、余白量判定処理において、余白が基準以上であるか否かを判断するための判定条件は、第１の条件、および、第２の条件の例である。特定色画素は、第１の画素および第２の画素の例である。
【０１６１】
Ｂ．第２実施例：
上記第１実施例では、配置済画像において、２個の原稿画像は、２個の原稿画像の予め定められた２個の端が、横方向の中央部に位置するように配置される。これは、ユーザが、予め定められた方向で、原稿台２５５に原稿を配置しているという前提があるからである。しかしながら、例えば、ユーザが間違えた方向で原稿を原稿台２５５に配置した場合には、２個の原稿画像を、配置済画像内に適切な向きで配置できない場合がある。
【０１６２】
第１実施例では、例えば、図４（Ｂ）、（Ｃ）、図６（Ａ）、（Ｂ）に示すように、これらの図における原稿台２５５の上端と原稿１０の上端とが一致するように、原稿１０が原稿台２５５に対して配置される。これに代えて、第２実施例では、例えば、スキャンパターンＡでは、図４（Ｂ）、（Ｃ）における原稿台２５５の上下方向の中央と、原稿１０の上下方向の中央と、が一致するように、原稿１０が原稿台２５５に対して配置される。この結果、図４（Ｂ）、（Ｃ）における原稿台２５５の上端側と下端側との両方に、原稿１０が配置されない領域、すなわち、スキャン画像において余白となる領域が生じる。
【０１６３】
また、スキャンパターンＢでは、図６（Ａ）、（Ｂ）における原稿台２５５の上下方向の中央と、原稿１０の左領域１０Ｌの上下方向の中央または右領域１０Ｒの上下方向の中央と、が一致するように、原稿１０が原稿台２５５に対して配置される。この結果、図６（Ａ）、（Ｂ）における原稿台２５５の上端側と下端側の一方に原稿１０が配置されない領域、すなわち、スキャン画像において余白となる領域が生じる。そして、図６（Ａ）、（Ｂ）における原稿台２５５の上端側と下端側の他方の側には、原稿１０が配置されない領域が生じない。
【０１６４】
図１７は、第２実施例の説明図である。図１７には、スキャンパターンＢで読み取られた場合に、生成され得るスキャン画像が図示されている。図１７に示すように、スキャンパターンＢにて生成され得るスキャン画像ＢＬ１ａ、ＢＬ１ｂ、ＢＲ１ａ、ＢＲ１ｂでは、図１７の左側、および、右側のうち一方の側には、余白が現れ、他方の側には、余白が現れない。一方、図示は省略するが、スキャンパターンＡでは、生成され得るスキャン画像の左側および右側の両方に余白が現れる。
【０１６５】
左側原稿画像ＢＩＬは、原稿台２５５に原稿１０が配置される方向によって、上下方向が逆になり得る。例えば、左側原稿画像ＢＩＬを含むスキャン画像には、左側原稿画像ＢＩＬの上下方向が互いに逆向きである２種類の左側スキャン画像ＢＬ１ａ、ＢＬ１ｂがある（図１７）。同様に、左側原稿画像ＢＩＬを含むスキャン画像にも、右側原稿画像ＢＩＲの上下方向が互いに逆向きである２種類の右側スキャン画像ＢＲ１ａ、ＢＲ１ｂがある。
【０１６６】
図１７（Ａ）は、図６に示すように、原稿１０を原稿台２５５に配置した場合に生成される左側スキャン画像ＢＬ１ａと右側スキャン画像ＢＲ１ａの組み合わせを示している。この場合には、左側原稿画像ＢＩＬの右端と、右側原稿画像ＢＩＲの右端と、が横方向の中央部に位置するように、２個の原稿画像が配置済画像内に配置されることが適切である。例えば、第１実施例で説明したように、右側原稿画像ＢＩＲを１８０度回転させてから配置済画像内に配置することが適切である。
【０１６７】
図１７（Ｂ）は、左側スキャン画像ＢＬ１ａと、右側スキャン画像ＢＲ１ｂの組み合わせを示している。この場合には、左側原稿画像ＢＩＬの右端と、右側原稿画像ＢＩＲの左端と、が横方向の中央部に位置するように、２個の原稿画像が配置済画像内に配置されることが適切である。
【０１６８】
図１７（Ｃ）は、左側スキャン画像ＢＬ１ｂと、右側スキャン画像ＢＲ１ａの組み合わせを示している。この場合には、左側原稿画像ＢＩＬの左端と、右側原稿画像ＢＩＲの右端と、が横方向の中央部に位置するように、２個の原稿画像が配置済画像内に配置されることが適切である。
【０１６９】
図１７（Ｄ）は、左側スキャン画像ＢＬ１ｂと、右側スキャン画像ＢＲ１ｂの組み合わせを示している。この場合には、左側原稿画像ＢＩＬの左端と、右側原稿画像ＢＩＲの左端と、が横方向の中央部に位置するように、２個の原稿画像が配置済画像内に配置されることが適切である。
【０１７０】
このように、配置済画像内の横方向の中央部に位置すべき２端の組み合わせは、４種類の組み合わせ、すなわち、（ａ）左側原稿画像ＢＩＬの右端と右側原稿画像ＢＩＲの右端、（ｂ）左側原稿画像ＢＩＬの右端と右側原稿画像ＢＩＲの左端、（ｃ）左側原稿画像ＢＩＬの左端と右側原稿画像ＢＩＲの右端、（ｄ）左側原稿画像ＢＩＬの左端と右側原稿画像ＢＩＲの左端、がある。
【０１７１】
スキャンパターンＢが用いられる場合には、配置済画像内の横方向の中央部に位置すべき一方の端側には余白がないので、当該一方の端側の余白について、第１実施例と同様の余白量判定処理を実行すると、当該一方の端側の余白量は、基準未満であると判定される。一方、配置済画像内の横方向の中央部に位置すべきでない他方の端側には余白があるので、当該他方の端側の余白量について、第１実施例と同様の余白量判定処理を実行すると、当該他方の端側の余白は、基準以上であると判定される。
【０１７２】
したがって、スキャンパターンＢが用いられる場合には、４種類の２端の組み合わせのそれぞれについて、余白量判定処理を行うことで、適切な２端の組み合わせを判断することができる。そこで、第２実施例の配置前処理では、このような判断を行う処理を含んでいる。以下、詳細に説明する。
【０１７３】
図１８は、第２実施例の配置前処理のフローチャートである。Ｓ７００では、ＣＰＵ４１０は、上述した４種類の組み合わせの中から、処理対象の２端の組み合わせを決定する。
【０１７４】
Ｓ７０５では、ＣＰＵ４１０は、２端の組み合わせを構成する左側スキャン画像の特定の端側の余白について、余白量判定処理を実行する。余白量判定処理の具体的な処理は、第１実施例のスキャン画像の右側の余白についての余白量判定処理（図１０）と同様である。この結果、左側スキャン画像の特定の端側の余白が、基準以上であるか否かが判定される。
【０１７５】
Ｓ７１０では、ＣＰＵ４１０は、２端の組み合わせを構成する右側スキャン画像の特定の端側の余白について、余白量判定処理を実行する。この結果、右側スキャン画像の特定の端側の余白が、基準以上であるか否かが判定される。
【０１７６】
Ｓ７１５では、ＣＰＵ４１０は、Ｓ７０５とＳ７１０にて、２個のスキャン画像の特定の側の余白量の両方が基準以上であると判定されたか否かを判断する。２個のスキャン画像の特定の端側の余白量の両方が基準以上である場合には（Ｓ７１５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ７２５にて、第１配置位置決定処理を実行する。すなわち、この場合には第１の配置方法が選択される。
【０１７７】
２個のスキャン画像の特定の端側の余白量のいずれかが基準未満である場合には（Ｓ７１５：ＮＯ）、ＣＰＵ４１０は、Ｓ７２０にて、２個のスキャン画像の特定の側の余白量の両方が基準未満であると判定されたか否かを判断する。２個のスキャン画像の特定の端側の余白量の両方が基準未満である場合には（Ｓ７２０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ７３０にて、第２配置位置決定処理を実行する。すなわち、この場合には第２の配置方法が選択される。
【０１７８】
なお、第１配置位置決定処理および第２配置位置決定処理の具体的な処理は、第１実施例の第１配置位置決定処理および第２配置位置決定処理と同様である。この処理によって、処理対象の組み合わせを構成する２端が、横方向の中央部に位置するように２個の原稿画像が配置される場合の２個の原稿画像の配置位置が決定される。
【０１７９】
そして、２個のスキャン画像の特定の端側の余白量の一方が基準未満であり、他方が基準以上である場合には（Ｓ７２０：ＮＯ）、いずれの配置位置決定処理も実行することなく、Ｓ７３５に処理を進める。すなわち、この場合には、配置方法が選択されない。
【０１８０】
Ｓ７３５では、ＣＰＵ４１０は、全ての２端の組み合わせについて処理したか否かを判断する。未処理の組み合わせがある場合には（Ｓ７３５：ＮＯ）、ＣＰＵ４１０は、Ｓ７００に戻って、未処理の組み合わせを、処理対象の２端の組み合わせとして選択する。
【０１８１】
全ての２端の組み合わせが処理された場合には（Ｓ７３５：ＹＥＳ）、ＣＰＵ４１０は、Ｓ７４０にて、１個以上の組み合わせについて、第１配置位置決定処理または第２配置位置決定処理が実行されて、２個の原稿画像の配置位置が決定されたか否かを判断する。１個以上の組み合わせについて、配置位置が決定された場合には（Ｓ７４０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ７４５にて、第１配置位置決定処理または第２配置位置決定処理において、最も類似率が高い類似領域が決定された２端の組み合わせを、配置済画像を生成する際の２端の組み合わせとして決定する。また、ＣＰＵ４１０は、当該２端の組み合わせについて決定された２個の原稿画像の配置位置を、配置済画像を生成する際の２個の原稿画像の配置位置として決定する。
【０１８２】
全ての組み合わせについて、配置位置が決定されない場合には（Ｓ７４０：ＮＯ）、ＣＰＵ４１０は、Ｓ７５０にて、２端の組み合わせをデフォルトの組み合わせ、例えば、上述した４種類の組み合わせ（ａ）〜（ｄ）のうち、（ａ）の左側原稿画像ＢＩＬの右端と右側原稿画像ＢＩＲの右端の組み合わせを、配置済画像を生成する際の２端の組み合わせとして決定する。また、ＣＰＵ４１０は、配置済画像を生成する際の２個の原稿画像の配置位置を、デフォルトの配置位置に決定する。デフォルトの配置位置は、例えば、第１実施例で説明した図１５のＳ６４５にて決定されるデフォルトの配置位置と同じである。
【０１８３】
第２実施例の配置前処理が終了すると、図２のＳ４０の配置済画像生成処理では、ＣＰＵ４１０は、配置前処理にて決定された組み合わせを構成する２端が、横方向の中央部に位置するように、２個の原稿画像が配置された配置済画像を表す配置済画像データを生成する。
【０１８４】
以上説明した第２実施例によれば、左側原稿画像の１個の端と右側原稿画像の１個の端との特定の組み合わせが、処理対象の２端の組み合わせとして選択される（Ｓ７００）。そして、（１）選択済の特定の組み合わせについて、左側原稿画像の余白が基準以上、かつ、右側原稿画像の余白が基準以上である場合に（Ｓ７１５：ＹＥＳ）、第１の配置方法が選択される（Ｓ７２５）。この場合には、処理対象の２端の組み合わせは、配置済画像内の横方向の中央部に位置すべき２端の組み合わせである可能性がある。そして、処理対象の２端の組み合わせは、配置済画像内の横方向の中央部に位置すべき２端の組み合わせである場合には、スキャンパターンＡを用いられた可能性が高いので、第１の配置方法を用いて、配置位置を決定すべきであるからである。
【０１８５】
さらに、本実施例では、（２）選択済の特定の組み合わせについて、左側原稿画像の余白が基準未満、かつ、右側原稿画像の余白が基準未満である場合に（Ｓ７２０：ＹＥＳ）、第２の配置方法が選択される（Ｓ７３０）。この場合には、処理対象の２端の組み合わせは、配置済画像内の横方向の中央部に位置すべき２端の組み合わせである可能性が高い。そして、処理対象の２端の組み合わせは、配置済画像内の横方向の中央部に位置すべき２端の組み合わせである場合には、スキャンパターンＢを用いられた可能性が高いので、第２の配置方法を用いて、配置位置を決定すべきであるからである。
【０１８６】
そして、（３）選択済の特定の組み合わせについて、左側原稿画像の余白が基準以上、かつ、右側原稿画像の余白量が基準未満である場合、および、左側原稿画像の余白が基準未満、かつ、右側原稿画像の余白が基準以上である場合に（Ｓ７２０：ＮＯ）、配置方法が選択されない。この場合には、処理対象の２端の組み合わせは、配置済画像内の横方向の中央部に位置すべき２端の組み合わせである可能性が低い。
【０１８７】
配置方法が選択されない場合には（Ｓ７２０：ＮＯ）、ＣＰＵ４１０は、２端の他の組み合わせを特定の組み合わせとして再度選択し（Ｓ７００）、再度選択された２端の組み合わせについて、上記（１）〜（３）の処理を再度実行する。
【０１８８】
この結果、２個の原稿画像の特定の端側の余白量が基準量以上であるか否かに応じて、配置方法を適切に選択できるとともに、配置済画像における２個の原稿画像の配置の方向、例えば、一方の原稿画像を他方の原稿画像に対して１８０度回転させるべきか否かを適切に決定することができる。
【０１８９】
さらに、本実施例では、１個の組み合わせについて、配置位置が決定された場合であっても、全ての組み合わせについて、処理が行われる（Ｓ７３５）。そして、最も類似率が高い類似領域が決定された２端の組み合わせが、最終的に、配置済画像において、横方向の中央部に位置する２端の組み合わせとして決定される。この結果、横方向の中央部に位置する２端の組み合わせを、精度良く決定することができる。
【０１９０】
Ｃ．第３実施例：
上記第３実施例では、第２実施例と同様に、横方向の中央部に位置する２端の組み合わせを決定するための配置前処理が実行される。図１９は、第３実施例の配置前処理のフローチャートである。Ｓ８００〜Ｓ８１５の処理は、図１８のＳ７００〜Ｓ７１５の処理と同じである。
【０１９１】
２個のスキャン画像の特定の端側の余白量の両方が基準以上である場合には（Ｓ８１５：ＹＥＳ）、ＣＰＵ４１０は、第２実施例と同様に、Ｓ８２０にて、第１配置位置決定処理を実行する。すなわち、この場合には第１の配置方法が選択される。そして、２個のスキャン画像の特定の端側の余白量のいずれか一方が基準未満である場合には（Ｓ８１５：ＮＯ）、ＣＰＵ４１０は、Ｓ８２５にて、第２配置位置決定処理を実行する。すなわち、この場合には第２の配置方法が選択される。すなわち、第３実施例では、第２実施例と異なり、処理対象の２端の組み合わせについて、配置方法が選択されない場合はない。
【０１９２】
Ｓ８３０では、ＣＰＵ４１０は、直前に実行された第１配置位置決定処理または第２配置位置決定処理において、類似率が閾値以上の類似領域が決定されたか否かを判断する。類似率が閾値以上の類似領域が決定された場合には（Ｓ８３０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ８３５にて、現在の２端の組み合わせを、配置済画像を生成する際の２端の組み合わせとして決定する。また、ＣＰＵ４１０は、当該２端の組み合わせについて決定された２個の原稿画像の配置位置を、配置済画像を生成する際の２個の原稿画像の配置位置として決定する。
【０１９３】
類似率が閾値以上の類似領域が決定されていない場合には（Ｓ８３０：ＮＯ）、ＣＰＵ４１０は、Ｓ８４０にて、全ての２端の組み合わせについて処理したか否かを判断する。未処理の組み合わせがある場合には（Ｓ８４０：ＮＯ）、ＣＰＵ４１０は、Ｓ８００に戻って、未処理の組み合わせを、処理対象の２端の組み合わせとして選択する。
【０１９４】
全ての２端の組み合わせが処理された場合には（Ｓ８４０：ＹＥＳ）、ＣＰＵ４１０は、Ｓ８４５にて、２端の組み合わせをデフォルトの組み合わせを、配置済画像を生成する際の２端の組み合わせとして決定する。また、ＣＰＵ４１０は、配置済画像を生成する際の２個の原稿画像の配置位置を、デフォルトの配置位置に決定する。デフォルトの組み合わせおよび配置位置は、例えば、第２実施例と同じである。
【０１９５】
以上説明した第３実施例によれば、左側原稿画像の１個の端と右側原稿画像の１個の端との特定の組み合わせが、処理対象の２端の組み合わせとして選択される（Ｓ８００）。そして、ＣＰＵ４１０は、選択済の記特定の組み合わせについて、配置方法を選択する（Ｓ８１５〜Ｓ８２５）。そして、選択された配置方法を用いた配置位置決定処理において、適切な配置位置を決定できない場合、すなわち、該配置位置決定処理において閾値以上の類似率を有する類似領域が決定できない場合には（Ｓ８３０：ＮＯ）、ＣＰＵ４１０は、他の２端の組み合わせを特定の組み合わせとして再度選択し（Ｓ８００）、再度選択された特定の組み合わせについて、配置方法を再度選択する（Ｓ８１５〜Ｓ８２５）。この結果、２個の原稿画像の特定の端側の余白量が基準量以上であるか否かに応じて選択される配置方法を用いて配置位置を決定できるか否かに基づいて、配置済画像における２個の原稿画像の配置の方向を適切に決定することができる。
【０１９６】
また、第２実際例と異なり、全ての２端の組み合わせについて、必ずしも処理を行う必要がないので、処理速度を向上できる。
【０１９７】
Ｄ．変形例：
（１）上記第２実施例では、２端の組み合わせのうち、２個のスキャン画像の一方の余白量が基準未満であり、他方の余白量が基準以上となる組み合わせについては、配置位置決定処理は実行されない。すなわち、このような組み合わせについては、配置位置が決定されない。これに代えて、このような組み合わせについても、第１配置位置決定処理または第２配置位置決定処理を実行して、配置位置を決定しても良い。そして、Ｓ７４５にて、決定された全ての配置位置の中から、１個の配置位置が決定されてもよい。
【０１９８】
（２）上記第１実施例では、左側スキャン画像と右側スキャン画像の両方について、余白量判定処理が実行されている（図９のＳ２０５、２１０）。これに代えて、左側スキャン画像と右側スキャン画像の一方についてのみ、余白量判定処理が実行されても良い。この場合には、例えば、一方のスキャン画像の右側の余白量が基準値以上である場合には、第１の配置方法が選択され、基準値未満である場合には、第２の配置方法が選択される。
【０１９９】
（３）上記第１実施例では、図４、図６に示すように、予め定められた向きで原稿１０が原稿台２５５に配置されることが前提である。しかしながら、特にスキャンパターンＡでは、原稿１０の折れ線ＶＬが原稿台２５５の手前側（すなわち、図４（Ｂ）、（Ｃ）の下側）に配置されるべきところ、原稿１０の折れ線ＶＬが原稿台２５５の奥側（すなわち、図４（Ｂ）、（Ｃ）の上側）に配置される間違いが起こりやすい。このために、第１実施例において、スキャンパターンＡが用いられた場合に実行される図１１の第１配置位置決定処理は、第２実施例において説明した原稿画像の２端の４種類の組み合わせ（ａ）〜（ｄ）について、４回繰り返されてもよい。この場合には、４回繰り返された第１配置位置決定処理のうち、Ｓ４３５にて選択された類似領域の類似率が最も高い第１配置位置決定処理で決定される相対的な配置位置が、最終的な配置位置として決定されることが好ましい。
【０２００】
（４）上記各第１実施例の図８の配置前処理では、２個のスキャン画像（図５（Ｂ）のＡＬ２とＡＲ２、または、図７（Ｂ）のＢＬ２とＢＲ２）の右端側の余白が基準以上であるか否かに基づいて、第１配置位置決定処理と第２配置位置決定処理とのいずれを実行するかが判断されている。これに代えて、２個のスキャン画像の右端側と左端側の両方について余白が基準以上であるか否かが判定され、当該判定結果に基づいて、第１配置位置決定処理と第２配置位置決定処理とのいずれを実行するかが判断されても良い。例えば、スキャンパターンＢでは、図６に示すように原稿１０が原稿台２５５に対して正しく配置される場合には、２個のスキャン画像の右端側と左端側の両方の余白がほとんどなくなる。また、スキャンパターンＢでは、図４に示すように原稿１０が原稿台２５５に対して正しく配置される場合には、２個のスキャン画像の一方の側の余白がほとんどなくなり、他方の側には余白が存在する。したがって、２個のスキャン画像の右端側と左端側の両方の余白が基準未満である場合に、第２配置位置決定処理を実行すると判断され、２個のスキャン画像の右端側と左端側の余白の少なくとも一方が基準以上である場合に、第１配置位置決定処理を実行すると判断されても良い。
【０２０１】
（５）上記第１実施例では、余白ライン数ＷＬＮが閾値ＴＨｗ以上であるか否かが、余白量が基準以上であるか否かを判定するための判定条件である。これに代えて、他の判定条件が採用されても良い。例えば、ＣＰＵ４１０は、例えば、スキャン画像において、原稿画像のエッジを検出することによって、原稿画像の範囲、すなわち、上下左右の端を特定する。そして、ＣＰＵ４１０は、特定された原稿画像の範囲に含まれない画素のうち、特定された原稿画像の右端と、スキャン画像の右端と、の間に存在する画素が、横方向に連続する個数を算出する。そして、当該横方向に連続する個数が閾値以上である場合に、余白量が基準以上であると判断されても良い。
【０２０２】
（６）上記第１実施例の図１３の画素復元処理では、左側原稿画像ＡＩＬの画素を用いて、左側復元領域ＡＬ内に左側復元画素が生成され、右側原稿画像ＡＩＲの画素を用いて、右側復元領域ＡＲ内に右側復元画素が生成される。これに代えて、左側復元画素と、右側復元画素と、のうちの一方だけが生成されても良い。例えば、右側復元画素だけが生成され、左側復元画素が生成されない場合には、基準領域ＳＰａは第１実施例と同様に右側復元画素によって構成される領域とされ、探索領域ＳＡａは、第１実施例と異なり、左側原稿画像ＡＩＬの右端の近傍領域のみを含む範囲とされる。また、左側復元画素だけが生成され、右側復元画素が生成されない場合には、基準領域ＳＰａは、第１実施例と異なり、右側原稿画像ＡＩＲの左端近傍の領域とされ、探索領域ＳＡａは、第１実施例と同様に、左側原稿画像ＡＩＬの右端の近傍領域と、左側復元画素によって構成される領域と、を含む範囲とされる。
【０２０３】
（７）スキャンパターンＡでは、折れ線ＶＬで二つ折りにされた原稿１０の両面を読み取ることによって、２個の原稿画像ＡＩＬ、ＡＩＲをそれぞれ含む画像を表す画像データが生成されている（図２のＳ１５）。これに代えて、折れ線ＶＬで切断されて物理的に２つに分離された原稿１０を、２回に分けて読み取ることによって、２個の原稿画像ＡＩＬ、ＡＩＲをそれぞれ含む画像を表す画像データが生成されてもよい。
【０２０４】
（８）上記実施例では、左側原稿画像と右側原稿画像とが横方向に並んで配置される配置済画像を表す配置済画像データが生成される。これに代えて、一の原稿画像と、他の原稿画像と、が縦方向に並んで配置される配置済画像を表す配置済画像データが生成されても良い。この場合には、例えば、一の原稿画像を含むスキャン画像の下側の余白量と、他の原稿画像を含むスキャン画像の上側の余白量と、がそれぞれ基準以上であるか否かが判断される。そして、当該判断結果に基づいて、一の原稿画像と他の原稿画像を配置済画像に配置する際の配置方法が決定されれば良い。
【０２０５】
（９）上記実施例では、サーバ４００は、Ｓ２５にて、スキャンデータを画像ファイルの形式で取得し、Ｓ４５にて、配置済画像データを画像ファイルの形式で出力（送信）している。これに代えて、例えば、上記変形例のように、複合機２００のＣＰＵ２１０がＳ２５〜Ｓ４５の処理を実行する場合には、ＣＰＵ２１０は、スキャナ部２５０を用いて生成されたスキャンデータを画像ファイルに変換することなく、そのまま取得しても良い。また、ＣＰＵ２１０は、配置済画像データを画像ファイルに変換することなく、そのまま配置済画像データを用いて用紙に印刷することによって、配置済画像データを出力しても良い。
【０２０６】
（１０）上記実施例では、２個の画像データを用いて、２個の原稿画像が配置された配置済画像を表す配置済像データが生成されている。これに限らず、任意の個数の画像データを用いて、１個の配置済画像が生成されても良い。例えば、４個の画像データを用いて、４個の原稿画像が配置された配置済画像を表す配置済画像データが生成されてもよい。
【０２０７】
（１１）上記実施例では、配置済画像データの生成に用いられる２個の画像データは、複合機２００のスキャナ部２５０によって生成される。これに限らず、光学的に読み取られた画像を表す種々の画像データを採用可能である。例えば、デジタルカメラによる撮影によって二つ折りにされた原稿１０の両面がそれぞれ光学的に読み取られることによって、２個の画像データが生成されても良い。あるいは、デジタルカメラによる撮影によって、原稿１０の左領域１０Ｌと部分領域ＣＡＲと、該原稿１０の右領域１０Ｒと部分領域ＣＡＬと、がそれぞれ光学的に読み取られることによって、２個の画像データが生成されても良い。また、これらの画像データは、読取装置（スキャナやデジタル）によって生成された画像データに限らず、描画作成や文書作成などのアプリケーションプログラムを用いて作成された画像データであっても良い。
【０２０８】
（１２）上記実施例においてサーバ４００のＣＰＵ４１０によって実行される処理（例えば、図２のＳ２５〜Ｓ４０の処理）は、例えば、複合機２００のＣＰＵ２１０によって実行されても良い。この場合には、サーバ４００は不要であり、複合機２００が単体で図２の処理を実行すればよい。また、サーバ４００のＣＰＵ４１０によって実行される処理は、複合機２００と接続されたパーソナルコンピュータ５００（図１）のＣＰＵ（図示省略）によって実行されても良い。例えば、パーソナルコンピュータ５００のＣＰＵは、パーソナルコンピュータ５００にインストールされたスキャナドライバプログラムを実行することによって、これらの処理を実行しても良い。また、サーバ４００は、本実施例のように１つの計算機で構成されても良く、互いに通信可能な複数個の計算機を含む計算システムによって構成されていても良い。
【０２０９】
（１３）上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【０２１０】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０２１１】
６０...スキャン画像、６０Ａ...第１の二値画像、６０Ｂ...第２の二値画像、６０Ｃ...配置済画像、６１〜６８...オブジェクト、１００...複合機、１１０...ＣＰＵ、１２０...揮発性記憶装置、１３０...不揮発性記憶装置、１３２...コンピュータプログラム、１４０...表示部、１５０...操作部、１６０...読取実行部、１７０...印刷実行部、１８０...通信インタフェース、３００...サーバ、３１０...ＣＰＵ、３２０...揮発性記憶装置、３３０...不揮発性記憶装置、３３２...コンピュータプログラム、３８０...通信インタフェース、５００...ネットワーク、９００...システム
【図１】
0006398812.tif 000002
【図２】
0006398812.tif 000003
【図３】
0006398812.tif 000004
【図４】
0006398812.tif 000005
【図５】
0006398812.tif 000006
【図６】
0006398812.tif 000007
【図７】
0006398812.tif 000008
【図８】
0006398812.tif 000009
【図９】
0006398812.tif 000010
【図１０】
0006398812.tif 000011
【図１１】
0006398812.tif 000012
【図１２】
0006398812.tif 000013
【図１３】
0006398812.tif 000014
【図１４】
0006398812.tif 000015
【図１５】
0006398812.tif 000016
【図１６】
0006398812.tif 000017
【図１７】
0006398812.tif 000018
【図１８】
0006398812.tif 000019
【図１９】
0006398812.tif 000020