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