A.第1実施例:
A−1:画像処理システム1000の構成
図1は、画像処理システムの構成を示すブロック図である。画像処理システム1000は、画像処理装置としてのサーバ400と、複合機200と、を備えている。サーバ400は、インターネット70に接続されており、複合機200は、LAN(Local Area Networkの略称)80を介して、インターネット70に接続されている。この結果、サーバ400と複合機200は、LAN80とインターネット70とを介して、通信可能である。また、LAN80には、ユーザの端末装置であるパーソナルコンピュータ500が接続されていても良い。
サーバ400は、サーバ400のコントローラの一例としてのCPU410と、DRAMなどの揮発性記憶装置420と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置430と、インターネット70などのネットワークに接続するためのインタフェースを含む通信部480と、を備えている。揮発性記憶装置420には、CPU410が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域421が設けられている。不揮発性記憶装置430には、コンピュータプログラム431と、UIデータ群433と、が格納されている。
コンピュータプログラム431、および、UIデータ群433は、例えば、サーバ400の管理者によって、インターネット70を介してサーバ400にアップロードされることにより、サーバ400にインストールされる。または、コンピュータプログラム431、および、UIデータ群433は、例えば、DVD−ROMなどに格納された形態で提供され、サーバ400の管理者によって、サーバ400にインストールされても良い。CPU410は、コンピュータプログラム431を実行することにより、後述する画像処理を実現する。
複合機200は、複合機200のコントローラの一例としてのCPU210と、DRAMなどの揮発性記憶装置220と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置230と、プリンタ部240と、スキャナ部250と、タッチパネルやボタンなどの操作部260と、液晶ディスプレイなどの表示部270と、外部機器と通信を行う通信部280と、を備えている。例えば、通信部280は、LAN80などのネットワークに接続するためのインタフェースや、USBメモリなどの外部記憶装置と接続するためのインタフェースを含んでいる。
揮発性記憶装置220には、CPU210が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域221が設けられている。不揮発性記憶装置230には、制御プログラム231が格納されている。制御プログラム231は、複合機200の製造時に不揮発性記憶装置230に予め格納されて提供され得る。これに代えて、制御プログラム231は、例えば、インターネットを介して接続されたサーバからダウンロードされる形態、あるいは、CD−ROMなどに記録された形態で提供され得る。
プリンタ部240は、インクジェット方式やレーザー方式などの印刷方式を用いて印刷を実行する。スキャナ部250は、CCDやCMOSなどの光電変換素子を用いて光学的に原稿を読み取ることによってカラー画像やグレー画像を表すスキャンデータを生成する。スキャナ部250は、いわゆるフラットベッド式の後述する原稿台255を備えている。
CPU210は、制御プログラム231を実行することにより、複合機200の制御を実行する。例えば、CPU210は、プリンタ部240やスキャナ部250を制御して、コピー処理、印刷処理、スキャン処理などを実行する。さらに、CPU210は、サーバ400にアクセスして、サーバ400が提供するサービスを利用することができる。
A−2:画像処理システム1000の動作
図2は、画像処理システム1000の動作を示すシーケンス図である。このシーケンス図の処理は、複合機200が、サーバ400が提供する画像生成サービスの利用指示を、ユーザから受け付けた場合に開始される。この画像生成サービスは、詳細は後述するが、複数個のスキャンデータによって表される複数個の画像が配置され、複数個の画像で1個の対象物(具体的には、後述する原稿10)を示す配置済画像を表す配置済画像データを生成するサービスである。複数個のスキャンデータは、詳細は後述するが、例えば、1回で読み取り可能なサイズより大きなサイズの原稿を、複数回に分けて読み取ることによって生成される。
処理が開始されると、S5では、複合機200のCPU210は、サービス開始要求を、サーバ400に対して送信する。サーバ400のCPU410は、サービス開始要求を受信すると、図1に示されるUIデータ群433から画像生成サービスの提供に必要なUIデータを選択し、S10にて、該UIデータを複合機200に対して送信する。UIデータは、具体的には、ユーザインタフェース画面(以下、UI画面とも呼ぶ)を表す画面データと、制御データと、を含む。この制御データは、例えば、UI画面を利用して複合機200が後述するS15のスキャン処理などの所定の処理を行うために必要な各種のデータを含む。例えば、制御データは、複合機200が実行すべき処理を行うために必要な情報、例えば、画像ファイルの送信先アドレスなどを含む。複合機200が実行すべき処理は、例えば、後述するS20にて画像ファイルをサーバ400へ送信する処理を含む。
S15では、CPU210は、受信したUIデータに基づいて、複数個のスキャンデータを生成するスキャン処理を実行する。スキャン処理では、CPU210は、ユーザが用意した原稿を2回に分けて読み取ることによって、2個のスキャンデータを生成する。本実施例のスキャンデータは、例えば、0〜255の256階調の値で表されるRGBの各成分の成分値を画素ごとに含むRGB画像データである。
図3は、原稿の一例を示す図である。この原稿10のサイズは、本実施例では、A3サイズである。線CLは、A3サイズの原稿10の長手方向の中央部に位置し、原稿10の短辺と平行な線である。左領域10Lは、原稿10の左側の半分の領域、すなわち、線CLより左側の領域である。右領域10Rは、原稿10の右側の半分の領域、すなわち、原稿10の線CLより右側の領域である。左領域10Lのサイズ、および、右領域10Rのサイズは、A4サイズである。なお、A3サイズ、および、A4サイズは、ISO(International Organization for Standardizationの略)216で定められている紙の寸法である。
図3の符号10L、10Rが付された矢印は、領域10L、10Rの位置と向きを示す。すなわち、これらの矢印が配置された位置、および、これらの矢印が示す向きに、これらの領域10L、10Rが配置されていることを意味している。後述する図(例えば、図4)では、領域10L、10R内の画像の図示を省略して、符号付きの矢印のみで、これらの領域10L、10Rの位置および向きを図示する場合がある。
図4、図5は、スキャンパターンAの説明図である。スキャナ部250の原稿台255(図4(A)、図4(B))の長手方向の長さは、A4サイズの長手方向の長さである297mmより少しだけ(例えば、数センチ)長い。そして、原稿台の短手方向の長さは、ANSI/ASME(American National Standards Institute/American Society of Mechanical Engineersの略)Y14.1で定められている紙の寸法であるレターサイズの短手方向の長さである215.9mmより少しだけ(例えば、数センチ)長い。すなわち、本実施例では、1回で読み取ることができる原稿の最大サイズは、A4サイズより大きくA3サイズより小さいサイズである。このために、本実施例では、2回に分けてA3サイズの原稿10を読み取る。
第1実施例のスキャン処理は、図4、図5のスキャンパターンAの方法で、2回の読み取りが実行されて、2個のスキャンデータが生成される。
(スキャンパターンA)
スキャンパターンAでは、原稿10は、折り曲げられることなく、原稿台255に配置される。スキャンパターンAの2回の読み取りの一方では、図4に示すように、左領域10Lと、右領域10Rのうちの左領域10Lと接する部分領域CARと、を含む領域内の画像(以下、左側原稿画像AILとも呼ぶ)が読み取られて、左側原稿画像AILを示す左側スキャンデータが生成される。スキャンパターンAの2回の読み取りの他方では、図5に示すように、右領域10Rと、左領域10Lのうちの右領域10Rと接する部分領域CALと、を含む領域内の画像(以下、右側原稿画像AIRとも呼ぶ)が読み取られて、右側原稿画像AIRを示す右側スキャンデータが生成される。左側原稿画像AILと、右側原稿画像AIRと、のうちのいずれが先に読み取られるかは、ユーザ次第であり、複合機200やサーバ400は、いずれが先に読み取られたかを認識できない。
左側原稿画像AILの読み取りには、図4(A)、(B)に示す2種類の態様がある。いずれの態様が用いられるかは、ユーザ次第であり、複合機200やサーバ400は、用いられた態様を認識できない。態様1では、ユーザは、図4(A)に示すように、原稿10の画像が配置された原稿面が原稿台255側を向き、かつ、原稿面の左領域10Lが奥側(図4(A)の上側)に、原稿面の右領域10Rが手前側(図4(A)の下側)に位置するように、原稿10を原稿台255上に配置する。このとき、原稿台255上に、左領域10Lの全体が、原稿台255上に位置するように、原稿10が配置されるので、右領域10Rの少なくとも一部は、原稿台255より手前側にはみ出す。
態様2では、ユーザは、図4(B)に示すように、原稿10の画像が配置された原稿面が原稿台255側を向き、かつ、原稿面の左領域10Lが手前側(図4(B)の下側)に、原稿面の右領域10Rが奥側(図4(B)の上側)に位置するように、原稿10を原稿台255上に配置する。このとき、原稿台255上に、左領域10Lの全体が、原稿台255上に位置するように、原稿10が配置されるので、右領域10Rの少なくとも一部は、原稿台255より奥側にはみ出す。
図4(C)〜(F)には、左側原稿画像AILの読み取りの態様1、2で生成される左側スキャンデータによって表される左側スキャン画像の一例が示されている。これらの左側スキャン画像ALa〜ALdや、後述する右側スキャン画像ARa〜ARbは、原稿台255の形状に対応する矩形を有している。これらのスキャン画像は、原稿台255の長辺に沿った方向を縦方向とし、原稿台255の図4(A)、(B)における左方向を上方向として、原稿台255上に配置された画像を表す。態様1における原稿台255に対する原稿10の上方向(図4(A)の矢印の方向)と、態様2における原稿台255に対する原稿10の上方向(図4(B)の矢印の方向)とは、逆向きになる。このために、態様1で生成される左側スキャン画像ALa、ALb(図4(C)、(D))内の左側原稿画像AILと、態様2で生成される左側スキャン画像ALc、ALd(図4(E)、(F))内の左側原稿画像AILとは、上下方向が逆になっている。
これらの左側スキャン画像ALa〜ALdでは、左右の端のうち、少なくとも原稿10の中央近傍の部分領域CARに対応する端に、余白MGが現れない。これは、図4(A)、(B)を参照して説明したように、読み取りの際に、原稿10の右領域10Rは、原稿台255の片側にはみ出すからである。
左側スキャン画像ALa〜ALdでは、左右の端のうち、原稿10の左端に対応する端に、余白MGが現れる場合と、余白MGが現れない場合と、がある。例えば、態様1(図4(A))では、原稿10の左端(図4(A)の上端)と、原稿台255の対応する端(図4(A)の上端)と、の間に、隙間がない場合には、図4(C)の左側スキャン画像ALaのように、原稿10の左端に対応する端に余白MGが現れない。一方、当該隙間がある場合には、図4(D)の左側スキャン画像ALbのように、原稿10の左端に対応する端に余白MGが現れる。態様2(図4(B))でも、図4(E)、(F)に示すように、同様である。
右側原稿画像AIRの読み取りには、左側原稿画像AILと同様に、図5(A)、(B)に示す2種類の態様がある。いずれの態様が用いられるかは、ユーザ次第であり、複合機200やサーバ400は、用いられた態様を認識できない。右側原稿画像AIRの態様1では、図5(A)に示すように、左側原稿画像AILの態様1(図4(A))と同様の向きで、原稿10が原稿台255上に配置される。このとき、原稿台255上に、右領域10Rの全体が、原稿台255上に位置するように、原稿10が配置されるので、左領域10Lの少なくとも一部は、原稿台255より奥側にはみ出す。
右側原稿画像AIRの態様2では、右側原稿画像AIRの態様2では、図5(B)に示すように、左側原稿画像AILの態様2(図4(B))と同様の向きで、原稿10が原稿台255上に配置される。このとき、原稿台255上に、右領域10Rの全体が、原稿台255上に位置するように、原稿10が配置されるので、左領域10Lの少なくとも一部は、原稿台255より手前側にはみ出す。
図5(C)〜(F)には、右側原稿画像AIRの読み取りの態様1、2で生成される右側スキャンデータによって表される右側スキャン画像の一例が示されている。上述した左側スキャン画像ALa〜ALdと同様に、態様1で生成される右側スキャン画像ARa、ARb(図5(C)、(D))内の右側原稿画像AIRと、態様2で生成される右側スキャン画像ARc、ARd(図5(E)、(F))内の右側原稿画像AIRとは、上下方向が逆になっている。また、上述した左側スキャン画像ALa〜ALdと同様に、右側スキャン画像ARa〜ARdでは、左右の端のうち、少なくとも原稿10の中央近傍の部分領域CALに対応する端に、余白MGが現れず、原稿10の右端に対応する端に、余白MGが現れる場合と、余白MGが現れない場合と、がある。
以上の説明から解るように、スキャンパターンAで生成されるスキャン画像(左側スキャン画像AL、または、右側スキャン画像AR)は、左右の両端に余白がない両側余白無画像(例えば、図4(C)、(E)の画像ALa、ALc、および、図5(C)、(E)の画像ARa、ARc)と、左右の端のうちの一方の端に余白MGがなく、他方の端に余白MGがある片側余白有画像(例えば、図4(D)、(F)の画像ALb、ALd、および、図5(D)、(F)の画像ARb、ARd)と、のいずれかである。
図2のS15で1回目の読み取りで生成されるスキャンデータを第1スキャンデータと呼び、2回目の読み取りで生成されるスキャンデータを第2スキャンデータである。上記説明から解るように、第1スキャンデータは、左側スキャンデータと右側スキャンデータとのうちの一方であり、第2スキャンデータは、左側スキャンデータと右側スキャンデータとのうちの他方である。S15のスキャン処理において、第1スキャンデータ、および、第2スキャンデータは、それぞれ、所定のフォーマットのファイル、例えば、JPEG(Joint Photographic Experts Groupの略)フォーマットの画像ファイルに変換される。
図2のS20では、CPU210は、第1スキャンデータの画像ファイル(第1画像ファイルとも呼ぶ)と、第2スキャンデータの画像ファイル(第2画像ファイルとも呼ぶ)と、をサーバ400に対して送信する。この結果、S25にて、サーバ400のCPU410は、これらの2個の画像ファイルを取得する。CPU410は、これらの画像ファイルから第1スキャンデータおよび第2スキャンデータ取得して、バッファ領域421に格納する。例えば、JPEG形式の画像ファイルが用いられる場合には、画像ファイルから、所定の変換処理によって、RGB画像データに変換されたスキャンデータが取得されて、バッファ領域421に格納される。
図6は、取得される第1、第2スキャンデータによって表される第1、第2スキャン画像の一例を示す図である。この例では、図6(A)の第1スキャン画像I11は、図4(A)の態様1によって生成された左側スキャン画像であり、図6(B)の第2スキャン画像I21は、図5(B)の態様2によって生成された右側スキャン画像である。したがって、第1スキャン画像I11は、左側原稿画像AILと、左側原稿画像AILより外側の余白MGと、を含む。第2スキャン画像I21は、右側原稿画像AIRと、右側原稿画像AIRより外側の余白MGと、を含む。余白MGは、原稿台255を読み取った領域であるので、原稿台255の色を示す値(RGB値)有している。余白MGの色は、本実施例では、白色であるが、黒色であっても良いし、グレーであっても良い。スキャン画像I11、I21において、原稿画像AIL、AIRが傾いているのは、スキャンデータの生成時に、原稿台255に配置された原稿10が傾いていたためである。
S30では、CPU410は、第1スキャンデータと第2スキャンデータとに対して、それぞれ、傾き補正処理を実行する。具体的には、CPU410は、処理対象のスキャンデータに対してハフ変換やエッジ検出処理などの公知の処理を実行して、スキャン画像(I11またはI21)内の原稿画像(AILまたはAIR)の上端を検出する。CPU410は、原稿画像(AILまたはAIR)の上端と、スキャン画像(I11またはI21)の上端と、が、平行になるように、スキャン画像(I11またはI21)を回転して、補正済のスキャン画像を表す補正済のスキャンデータを生成する。ここで、検出すべき原稿画像の端は、上端に代えて、下端でも良いが、右端や左端でないことが好ましい。これは、スキャン画像(I11またはI12)内の原稿画像(AILまたはAIR)の左右の端の一方は、原稿10の端を表していないからである。
後述する余白量判定処理では、縦方向のラインごとに余白ラインを判断するので、このように予め傾き補正を実行することによって、処理対象のスキャン画像内で原稿画像が傾いている場合であっても、後の余白量判定処理によって、余白量が基準量以上であるか否かを精度良く判断することができる。
図6(B)には、補正済の第1スキャン画像I12および第2スキャン画像I22が示されている。補正済のスキャン画像I12、I22には、原稿画像(AILまたはAIR)および余白MGの外側に、追加画素によって構成される追加領域AAが追加されている。これは、処理の便宜上、補正済のスキャン画像I12、I22を、上下の端が横方向と平行で、かつ、左右の端が上下方向と平行な矩形の画像として扱うためである。CPU410は、追加領域AAを、他の領域と区別して特定できるように、追加領域AA内の画素と、他の領域内の画素と、を二値化したマスク画像(図示省略)を生成して、バッファ領域421に保存する。以下では、傾き補正処理済の第1、第2スキャンデータを、単に、第1スキャンデータ、第2スキャンデータとも呼ぶ。
図2のS35では、CPU410は、第1スキャン画像I12の右端の余白量判定処理を実行する。S40では、CPU410は、第1スキャン画像I12の左端の余白量判定処理を実行する。S45では、CPU410は、第2スキャン画像I22の右端の余白量判定処理を実行する。S50では、CPU410は、第2スキャン画像I22の左端の余白量判定処理を実行する。これらの余白量判定処理は、処理対象のスキャン画像の処理対象の端の余白量(右端または左端の余白量)が基準以上であるか否かを判定する処理である。具体的には、図6(B)のスキャン画像I12、I22のうちの処理対象のスキャン画像内の原稿画像(AILまたはAIR)の処理対象の端(右端または左端)から該スキャン画像の処理対象の端までの間の余白量が基準以上であるか否かが所定の判定条件に基づいて判定される。余白量判定処理については、後述する。
図2のS55では、CPU210は、処理対象決定処理を実行する。処理対象決定処理は、第1スキャン画像I12の内の原稿画像の左端LT1と右端RT1とから選択される第1端と、第2スキャン画像I22内の原稿画像の左端LT2と右端RT2とから選択される第2端と、の複数個の組み合わせのうち、続くS65の配置位置決定処理において配置位置を決定するための探索処理(後述)の処理対象とすべき2端の組み合わせを、決定する処理である。図6(B)のスキャン画像I12、I22の例では、第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の左端LT2と、を接合することで、原稿10を再現できることは明らかである。しかしながら、実際には、第1スキャン画像I12と第2スキャン画像I22との一方は、図4(C)〜(F)の左側スキャン画像ALa〜ALdのいずれかである可能性があり、他方は、図5(C)〜(F)の右側スキャン画像ARa〜ARdのいずれかである可能性がある。したがって、第1スキャン画像I12内の原稿画像の左端LT1と右端RT1とのうちのいずれの端と、第2スキャン画像I22内の原稿画像の左端LT2と右端RT2とのうちのいずれの端と、の組み合わせで、端部を接合することが、原稿10を再現するために適切であるかを、CPU410は、この段階では、認識できない。処理対象決定処理では、S35〜S50の余白量判定処理の結果を用いて、処理対象とすべき2端の組み合わせを、決定する。処理対象決定処理については、後述する。
S65では、CPU410は、配置位置決定処理を実行する。配置位置決定処理は、第1種の配置位置を決定するための第1の探索処理(後述)を実行して、原稿10を適切に表すことができる2個の原稿画像AIL、AIRの相対的な位置を決定する処理である。第1種の配置位置は、左側原稿画像AILの一部と、右側原稿画像BIRの一部と、が重なる相対的な位置である。配置位置決定処理は、処理対象決定処理の結果を用いて実行される。配置位置決定処理については、後述する。
S70では、CPU410は、配置済画像生成処理を実行する。配置済画像生成処理では、第1スキャンデータと第2スキャンデータとを用いて、左側原稿画像AILと、右側原稿画像AIRと、が配置された配置済画像を表す配置済画像データが生成される。配置済画像において、右側原稿画像AIRと左側原稿画像AILは、配置位置決定処理にて決定済の相対的な位置に配置される。この結果、2個の原稿画像AIL、AIRで、図3の原稿10を示す1個の配置済画像を表す配置済画像データが生成される。
図7は、配置済画像の一例を示す図である。図7の配置済画像OIAでは、配置位置決定処理によって決定される上述した第1種の配置位置に、スキャン画像I12、I22内の原稿画像AIL、AIRが配置される。
配置済画像OIAにおいて、左側原稿画像AILと右側原稿画像AIRとが互いに重なり合う領域内の画素の値(すなわち、RGB値)には、一方の原稿画像、例えば、右側原稿画像AIR内の画素の値が優先的に採用される。配置済画像OIAにおいて原稿10を表す領域内に、スキャン画像I12、I22の追加領域AA内の追加画素が配置されないように、追加画素は、配置済画像生成処理において適宜に削除される。
なお、CPU410は、生成された配置済画像データを所定の形式の画像ファイルに変換することによって、配置済画像を表す配置済画像ファイルを生成する。例えば、RGB画像データである配置済画像データが、JPEG圧縮されることによって、JPEG形式の配置済画像ファイルが生成される。なお、変形例では、配置済画像データから、PDF形式の配置済画像ファイルが生成されてもよい。
図2のS75では、CPU410は、生成された配置済画像ファイルを複合機200に対して送信する。複合機200のCPU210は、配置済画像ファイルを受信すると、受信した配置済画像ファイルを不揮発性記憶装置230に格納するとともに、ユーザに配置済画像ファイルを受信したことを通知する。配置済画像ファイルは、ユーザの利用に供される。例えば、複合機200は、ユーザの指示に基づいて、配置済画像ファイルを用いて、配置済画像OIAを印刷することができる。
なお、図2に破線で示すS60の処理順序決定処理は、第1実施例では、実行されない。理順序決定処理は、第3、第4実施例にて実行されるので、第3、第4実施例にて説明する。
A−3.余白量判定処理:
S35〜S50の4個の余白量判定処理について説明する。4個の余白量判定処理は、処理対象のスキャン画像と、処理対象の端と、が異なることを除いて、同一の処理である。
図8は、余白量判定処理のフローチャートである。S100では、CPU410は、処理開始位置STPを決定する。処理開始位置STPは、処理対象のスキャン画像の横方向の特定の位置である。処理開始位置STPは、処理対象のスキャン画像の処理対象の端の近傍、本実施例では、図6(B)のスキャン画像I12、I22の右端や左端の近傍に決定される。具体的には、処理対象のスキャン画像が第1スキャン画像I12であり、処理対象の端が右端である場合には、処理開始位置STPは、図6(B)に示すように、傾き補正前のスキャン画像I11の右上および右下の頂点のうち、傾き補正済の第1スキャン画像I12の右端から離れている頂点の横方向の位置に決定される。また、処理対象のスキャン画像が第2スキャン画像I22であり、処理対象の端が左端である場合には、処理開始位置STPは、図6(B)に示すように、傾き補正前のスキャン画像I21の左上および左下の頂点のうち、傾き補正済の第2スキャン画像I22の左端から離れている頂点の横方向の位置に決定される。
S105では、CPU410は、スキャン画像内の複数本の縦方向の画素のラインの中から、1本の注目ラインを選択する。複数本の縦方向の画素のラインは、横方向の位置が互いに等しく、縦方向に沿って並ぶ複数個の画素をそれぞれ含む。最初の注目ラインは、処理開始位置STPの画素のラインである。注目ラインは、処理開始位置STPから、スキャン画像の処理対象の端から離れる方向、すなわち、処理対象の端が右端である場合には左方向に向かって、処理対象の端が左端である場合には右方向に向かって順次に選択される。
S110では、CPU410は、注目ラインに含まれる複数個の画素から、1個の注目画素を選択する。注目画素は、注目ラインの上端から下端に向かって1個ずつ順次に選択される。
S115では、CPU410は、注目画素が、余白が有するべき特定色を有する特定色画素であるか否かを判断する。余白が有するべき特定色は、原稿台255の色であり、本実施例では、白である。CPU410は、注目画素が、特定色を示す所定範囲内の画素の値(RGB値)を有する場合には、注目画素が特定色画素であると判断し、特定色を示す範囲外の画素の値を有する場合には、注目画素が特定色とは異なる色を有する非特定色画素であると判断する。
注目画素が特定色画素である場合には(S115:YES)、CPU410は、S120にて、画素カウンタWCに1を加算する。画素カウンタWCは、縦方向に連続する特定色画素の個数をカウントするためのカウンタである。S125では、CPU410は、ノイズカウンタNCを初期化する、すなわち、初期値「0」にする。ノイズカウンタNCは、縦方向に連続する非特定色画素の個数をカウントするためのカウンタである。
注目画素が非特定色画素である場合には(S115:NO)、CPU410は、S130にて、ノイズカウンタNCに1を加算する。S135では、CPU410は、ノイズカウンタNCが所定の閾値THn以上であるか否かを判断する。閾値THnは、例えば、2〜5個である。
ノイズカウンタNCが所定の閾値THn以上である場合には(S135:YES)、CPU410は、S140にて、現在の画素カウンタWCが、現在の最大連続数WCmより大きいか否かを判断する。画素カウンタWCが、最大連続数WCmより大きい場合には(S140:YES)、CPU410は、S145にて、最大連続数WCmの値を、画素カウンタWCの値に更新して、S150に処理を進める。画素カウンタWCが、最大連続数WCm未満である場合には(S140:NO)、CPU410は、S145をスキップして、S150に処理を進める。S150では、CPU410は、画素カウンタWCの値を初期化する。
ノイズカウンタNCが所定の閾値THn未満である場合には(S135:NO)、CPU410は、上述のS140〜S150をスキップして、S155に処理を進める。
S155では、注目ラインの全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には(S155:NO)、CPU410は、S110に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には(S155:YES)、CPU410は、上述したS140、S145と同様の処理を実行する。すなわち、S160にて、現在の画素カウンタWCが、現在の最大連続数WCmより大きいか否かが判断され、画素カウンタWCが最大連続数WCmより大きい場合には(S160:YES)、S165にて、最大連続数WCmの値が画素カウンタWCの値に更新される。そして、画素カウンタWCが最大連続数WCm未満である場合には(S160:NO)、S165はスキップされる。
S170に処理が進んだ時点での最大連続数WCmは、注目ラインにおいて、縦方向に連続する特定色画素の個数の最大値を示している。なお、上述の説明から解るように、一の特定色画素と他の特定色画素とが実際に縦方向に連続している場合だけでなく、一の特定色画素と他の特定色画素との間に、閾値THn未満の非特定色画素が存在する場合であっても、当該一の特定色画素と他の特定色画素とは縦方向に連続していると判断される。これは、スキャン画像の余白部分には、様々な原因、例えば、スキャナ部250のイメージセンサの特性や原稿台255の汚れなどに起因して、非特定色画素が、ノイズとして含まれ得るからである。換言すれば、本実施例では、一の特定色画素と他の特定色画素との間に閾値THn以上の非特定色画素が存在しないことが、注目ライン内の一の特定色画素と他の特定色画素とが縦方向に連続すると判断するための連続条件である、と言うことができる。変形例としては、連続条件は、特定色画素が実際に縦方向に連続していることであっても良い。
S170では、CPU410は、最大連続数WCmが閾値THm以上であるか否かを判断する。閾値THmは、例えば、処理対象のスキャン画像の縦方向の画素数の50%の値に設定される。最大連続数WCmが閾値THm以上である場合には、注目ラインは余白を構成する余白ラインであると、判断することができる。このために、最大連続数WCmが閾値THm以上である場合には(S170:YES)、CPU410は、S175にて、余白ラインの本数をカウントするための余白カウンタWLに1を加算する。
最大連続数WCmが閾値THm未満である場合には、注目ラインは余白を構成する余白ラインではなく、原稿画像の右端を構成するラインであると、判断することができる。このために、最大連続数WCmが閾値THm未満である場合には(S170:NO)、CPU410は、S190にて、現在の余白カウンタWLの値を、処理対象のスキャン画像の余白ライン数WLNとして決定して、S195に処理を進める。余白ライン数WLNは、スキャン画像の右側の余白の横方向の長さを示す指標値である。
S180では、CPU410は、処理対象のスキャン画像内の全てのラインを注目ラインとして処理したか否かを判断する。通常は、注目ラインが原稿画像の右端に達した時点で、上述したS190を経由して余白量判定処理は終了される。したがって、全てのラインが処理されることは、例えば、処理対象のスキャン画像に原稿画像が含まれていない場合などのイレギュラーな場合を除いて、発生しない。スキャン画像内に未処理のラインがある場合には(S180:NO)、CPU410は、S185にて、画素カウンタWC、ノイズカウンタNC、最大連続数WCmを初期化した後に、S105に戻って、現在の注目ラインの次の注目ラインを選択する。次の注目ラインは、処理対象の端が右端である場合には、現在の注目ラインの左側に隣接するラインであり、処理対象の端が左端である場合には、現在の注目ラインの右側に隣接するラインである。スキャン画像内の全てのラインを処理した場合には(S180:YES)、CPU410は、S190にて、現在の余白カウンタWLの値を、処理対象のスキャン画像の余白ライン数WLNとして決定して、S195に処理を進める。
S195では、CPU410は、余白ライン数WLNが閾値THw以上であるか否かを判断する。余白ライン数WLNが閾値THw以上である場合に(S195:YES)、CPU410は、S197にて、処理対象のスキャン画像の余白量は基準以上であると判定して、余白量判定処理を終了する。余白ライン数WLNが閾値THw未満である場合に(S195:NO)、CPU410は、S198にて、処理対象のスキャン画像の余白量は基準未満であると判定して、余白量判定処理を終了する。閾値THwは、例えば、処理対象のスキャン画像の横方向の解像度が300dpiである場合に、20本である。
以上説明した余白量判定処理によれば、CPU410は、画素の値が特定の判定条件を満たす画素、具体的には、画素の値が特定色を示す所定範囲内にある画素を、特定色画素であると判定し(S115)、縦方向に特定色画素が連続することを示す連続条件を満たす特定色画素の個数、すなわち、最大連続数WCmを、算出する(S120〜S165)。そして、CPU410は、最大連続数WCmを用いて、余白量が基準以上であるか否かを判断する(S170〜S198)。この結果、余白量が基準以上であるか否かを適切に判断できる。余白は、連続する特定色画素によって構成されると考えられるからである。
具体的には、CPU410は、縦方向の複数個のラインのうち、最大連続数WCmが閾値THm以上であり、かつ、処理対象のスキャン画像内の原稿画像の処理対象の端(右端または左端)と、該スキャン画像の処理対象の端と、の間に位置する余白ラインの本数を示す余白ライン数WLNを算出し(S170〜S190)、余白ライン数WLNを用いて、余白量が基準以上であるか否かを判断する。
以上のように、本実施例の余白量判定処理では、縦方向に連続する比較的多くの特定色画素を含む余白ラインが横方向に連続する本数である余白ライン数WLNが閾値THw以上であるか否かを判定条件として、余白量が基準以上であることを判断している。この判定条件は、原稿画像の右端と該スキャン画像の右端との間に含まれる縦方向や横方向に連続する複数個の特定色画素の個数が基準以上であることを示す条件である、と言うことができる。
処理対象のスキャン画像が、両側余白無画像(例えば、図4(C)、(E)の画像ALa、ALc、および、図5(C)、(E)の画像ARa、ARc)である場合には、該スキャン画像の左端の余白量と右端の余白量とは、いずれも基準未満であると判断される。処理対象のスキャン画像が、片側余白無画像(例えば、図4(D)、(F)の画像ALb、ALd、および、図5(D)、(F)の画像ARb、ARd)である場合には、該スキャン画像の左右の端のうち一端は、余白量が基準未満であると判断され、他端は、余白量が基準以上であると判断される。
A−4.処理対象決定処理:
図2のS55の処理対象決定処理について説明する。図9は、第1実施例の処理対象決定処理のフローチャートである。S205では、CPU410は、以下の(1)〜(4)の4個の2端の組み合わせの中から、注目する2端の組み合わせを選択する。
(1)第1スキャン画像I12内の原稿画像の左端LT1と、第2スキャン画像I22内の原稿画像の左端LT2
(2)第1スキャン画像I12内の原稿画像の左端LT1と、第2スキャン画像I22内の原稿画像の右端RT2
(3)第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の左端LT2
(4)第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の右端RT2
これらの2端の組み合わせのいずれ1個を構成する2端で、2個のスキャン画像I12、I22を接合することで、原稿10を適切に再現することができる。
S210では、CPU410は、注目する2端の組み合わせを構成する2端の余白量は、両方とも基準未満であるか否かを判断する。2端の余白量が基準以上であるか、基準未満であるかは、図2のS35〜S50の余白量判定処理にて決定済である。
2端の余白量が両方とも基準未満である場合には(S210:YES)、S215にて、CPU410は、注目する2端の組み合わせは、第1の探索処理の処理対象であると決定する。第1の探索処理については、後述するが、処理対象の2端の組み合わせを構成する第1スキャン画像I12の一端に沿う端部画像と、処理対象の2端の組み合わせを構成する第2スキャン画像I22の一端に沿う端部画像と、が重なる第1種の配置位置を探索する処理である。原稿10を適切に再現するために接合すべき端は、図3の原稿10の中央部CA、すなわち、部分領域CALまたは部分領域CARに対応する端であるので、スキャン画像I12、I22において余白がほとんどない端であるからである。
2端の余白量のうち、少なくとも一方が基準以上である場合には(S210:NO)、S220にて、CPU410は、注目する2端の組み合わせは、第1の探索処理の処理対象でないと、決定する。スキャン画像I12、I22においてある程度の余白が存在する端は、原稿10を適切に再現するために接合すべき端ではないからである。
S225では、全ての2端の組み合わせを注目する2端の組み合わせとして選択したか否かを判断する。未選択の2端の組み合わせがある場合には(S225:NO)、CPU410は、S205に戻って、当該2端の組み合わせを、注目する2端の組み合わせとして選択する。全ての2端の組み合わせが選択済である場合には(S225:YES)、処理対象決定処理を終了する。
以上説明した処理対象決定処理では、第1スキャン画像I12と第2スキャン画像I22との両方が、両側余白無画像である場合には、上述した(1)〜(4)の全ての2端の組み合わせが第1の探索処理の処理対象であると決定される。
第1スキャン画像I12と第2スキャン画像I22とのうちの一方が、片側余白無画像であり、他方が両側余白無画像である場合には、片側余白無画像の左右の端のうち、余白量が基準未満である端を含む2端の組み合わせが、第1の探索処理の処理対象であると決定され、余白量が基準以上である端を含む2端の組み合わせが、第1の探索処理の処理対象でないと決定される。例えば、第1スキャン画像I12が、図4(F)の片側余白無画像ALdであり、第2スキャン画像I22が、図5(C)の両側余白無画像ARaである場合には、上述した(1)、(2)の2端の組み合わせが、第1の探索処理の処理対象であると決定され、(2)、(4)の2端の組み合わせが、第1の探索処理の処理対象でないと決定される。
第1スキャン画像I12と第2スキャン画像I22との両方が、片側余白無画像である場合には、一方の片側余白無画像の余白量が基準未満である端と、他方の片側余白無画像の余白量が基準未満である端と、から構成される2端の組み合わせが、第1の探索処理の処理対象であると決定され、それ以外の2端の組み合わせが、第1の探索処理の処理対象でないと決定される。例えば、第1スキャン画像I12が、図4(F)の片側余白無画像ALdであり、第2スキャン画像I22が、図5(D)の片側余白無画像ARbである場合には、上述した(1)の2端の組み合わせが、第1の探索処理の処理対象であると決定され、(2)〜(4)の2端の組み合わせが、第1の探索処理の処理対象でないと決定される。
A−5.配置位置決定処理:
図2のS65の配置位置決定処理について説明する。図10は、第1実施例の配置位置決定処理のフローチャートである。S230では、CPU410は、上述した(1)〜(4)の2端の組み合わせのうち、処理対象決定処理にて第1の探索処理の処理対象であると決定された1個以上の2端の組み合わせの中から、1個の組み合わせを選択する。S235では、CPU410は、選択された2端の組み合わせについて第1の探索処理を実行する。
図11は、第1の探索処理のフローチャートである。図12は、第1の探索処理の説明図である。図12では、図6(B)の第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の右端RT2と、の組み合わせが、処理対象の2端の組み合わせである場合を例として図示されている。以下、処理対象の2端の組み合わせを構成する端(例えば、図12の第1スキャン画像I12内の原稿画像の右端RT1や、第2スキャン画像I22内の原稿画像の右端RT2)を各スキャン画像の処理対象の端とも呼ぶ。
S300では、CPU410は、スキャン画像I12、I22に対して、余白の削除と回転を実行する。具体的には、各スキャン画像の処理対象の端の余白が除去される。具体的には、処理対象の端の余白量判定処理にて、余白ラインであると判断されたラインと、余白ラインより外側の部分(すなわち、処理開始位置STPより外側の部分)と、をスキャン画像I12、I22から削除する。また、第1スキャン画像I12と第2スキャン画像I22とを左右に並べた場合に、第1スキャン画像I12の処理対象の端と、第2スキャン画像I22の処理対象の端と、が互いに対向するように、スキャン画像を回転させる。例えば、図12の例では、第1スキャン画像I12内の右端と、第2スキャン画像I22内の右端と、の余白が削除され、これらの2端が対向するように、第2スキャン画像I22が180度回転されている。処理対象の端の余白量は、基準以下であり、実質的に余白はないので、実質的には、処理開始位置STP(図6(B))より右側の僅かな部分だけが削除されるだけである。図12では、原稿画像AIL、AIRの内部の図示は省略し、符号付きの矢印のみを図示する。
S302では、CPU410は、第2スキャン画像I22内に、第2スキャン画像I22の一部の領域である基準領域SPaを決定する。図12に示すように、基準領域SPaは、第2スキャン画像I22内の所定の位置に配置された所定のサイズの矩形領域に決定される。また、基準領域SPaは、第2スキャン画像I22の処理対象の端の近傍に、当該処理対象の端に沿って配置される。例えば、基準領域SPaの横方向の長さは、例えば、50画素〜150画素であり、基準領域SPaの縦方向の長さは、第2スキャン画像I22の縦方向の長さの1/4〜1/2である。
S305では、CPU410は、候補領域を決定するための所定の参照範囲REaに基づいて決定される複数個の候補領域の中から、1個の注目候補領域を決定する。参照範囲REaは、例えば、図12に示すように、第1スキャン画像I12の処理対象の端の近傍部分に破線で示す範囲である。参照範囲REaは、縦M1画素×横N1画素分の矩形の範囲である(M1、N1は、2以上の整数)。N1は、例えば、数100であり、M1は、例えば、数十から数百である。参照範囲REaの右端は、例えば、第1スキャン画像I12の右端と一致している。参照範囲REaの横方向の幅は、例えば、原稿10における中央部CAの幅に相当する長さを有している。第1スキャン画像I12における参照範囲REaの縦方向の中心の位置は、第2スキャン画像I22における基準領域SPaの上端と同じである。
CPU410は、参照範囲REa内の(M1×N1)個の画素位置から、1個の注目画素位置を選択する。CPU410は、当該注目画素位置に、基準領域SPaの左上の画素Pd(図12)が位置するように、基準領域SPaを配置した場合に、基準領域SPaと重なる第1スキャン画像I12内の領域が注目候補領域として特定される。候補領域が設定され得る領域である探索領域SAaは、図12に示すように、第1スキャン画像I12の処理対象の端に沿う領域である。
1個の注目候補領域が特定されると、S310では、CPU410は、注目候補領域の類似率(SC/Nt)を算出する。注目候補領域の類似率(SC/Nt)は、注目候補領域と、基準領域SPaとが類似している程度を示す指標値である。
類似率(SC/Nt)の算出方法は、以下のとおりである。先ず、CPU410は、注目候補領域内の複数個の画素を1個ずつ注目画素として選択して、注目画素が、類似画素であるか非類似画素であるかを判断する。具体的には、CPU410は、注目候補領域内の注目画素の成分値と、当該注目画素に対応する基準領域SPa内の画素の成分値と、の差ΔVPを算出する。注目画素に対応する基準領域SPa内の画素は、注目候補領域と基準領域SPaとを重ねた場合に、注目画素と重なる基準領域SPa内の画素である。差ΔVPを算出すべき2個の画素の成分値を、(R1、G1、B1)と(R2、G2、B2)とする。差ΔVPは、例えば、3種類の成分値間の差分の絶対値の和で表される。すなわち、差ΔVPは、(R1−R2)の絶対値と、(G1−G2)の絶対値と、(B1−B2)の絶対値と、の合計値で表される。
CPU410は、算出された差ΔVPが、所定の基準値TH1以下である場合には、注目画素が類似画素であると判断し、算出された差ΔVPが、所定の基準値TH1より大きい場合には、注目画素が非類似画素であると判断する。差ΔVPが、所定の基準値TH1以下である場合には、注目候補領域内の注目画素の色と、当該注目画素に対応する基準領域SPa内の画素の色とは、類似すると判断できるからである。
CPU410は、注目候補領域内の類似画素の個数SCを、注目候補領域内の画素の総数Ntで除することによって、注目候補領域の類似率(SC/Nt)を算出する。類似率(SC/Nt)は、注目候補領域内の画素の総数Ntに対する類似画素の個数SCの割合である。類似率(SC/Nt)が大きいほど、基準領域SPaと、注目候補領域とは、類似している。
S315は、CPU410は、類似率(SC/Nt)が、閾値TH2以上であるか否かを判断する。即ち、CPU410は、現在の注目候補領域が基準領域SPaに類似しているか否かを判断する。
類似率(SC/Nt)が、閾値TH2以上である場合、即ち、現在の注目候補領域が基準領域SPaに類似していると判断する場合には(S315:YES)、CPU410は、S320にて、現在の注目候補領域を、基準領域SPaに類似する類似領域として記憶して、S325に処理を進める。
類似率(SC/Nt)が、閾値TH2未満である場合には(S315:NO)、CPU410は、S320をスキップして、S325に処理を進める。
S325では、CPU410は、参照範囲REa内の(M1×N1)個の画素位置に対応する(M1×N1)個の候補領域の全てを注目候補領域として処理したか否かを判断する。未処理の候補領域がある場合には(S325:NO)、CPU410は、S305に戻って、未処理の候補領域を注目候補領域として特定する。全ての候補領域が処理された場合には(S325:YES)、CPU410は、S330に処理を進める。
S330では、CPU410は、(M1×N1)個の候補領域の中に1個以上の類似領域があるか否かを判断する。すなわち、S320にて類似領域として記憶された候補領域が1個以上あるか否かが判断される。1個以上の類似領域がある場合には(S330:YES)、S335にて、CPU410は、1個以上の類似領域の中から、S310にて算出された類似率(SC/Nt)が最も高い1個の類似領域CPaを、現在の処理対象の2端の組み合わせにおける最終的な1個の類似領域CPaとして決定する。1個の類似領域CPaが決定されると、第1の探索処理は、終了される。
1個以上の類似領域がない場合には(S330:NO)、CPU410は、S335をスキップして、第1の探索処理を終了する。したがって、この場合には、類似領域CPaは決定されない。
第1の探索処理が終了すると、図10のS240では、第1の探索処理の処理対象であると決定された2端の組み合わせを全て選択したか否かを判断する。未選択の2端の組み合わせがある場合には(S240:NO)、CPU410は、S230に戻って、当該2端の組み合わせを選択する。全ての処理対象の2端の組み合わせが選択済である場合には(S240:YES)、CPU410は、S245に処理を進める。
S245では、CPU410は、処理対象の2端の組み合わせの中に、図11の第1の探索処理のS335にて、類似領域CPaが決定された2端の組み合わせがあるか否かを判断する。通常は、互いを接合することで原稿10を正しく再現できる2端の組み合わせが処理対象である場合には、第1の探索処理にて類似領域CPaが決定される可能性が高く、原稿10を正しく再現できる2端の組み合わせが処理対象でない場合には、第1の探索処理にて類似領域CPaが決定されない可能性が高い。
類似領域CPaが決定された2端の組み合わせが1個以上ある場合には(S245:YES)、S250にて、CPU410は、当該1個以上の2端の組み合わせのうち、類似率(SC/Nt)が最も高い類似領域CPaが決定された2端の組み合わせにて、第1種の配置位置を決定する。すなわち、その2端の組み合わせについての第1の探索処理で用いられた基準領域SPaと、決定された類似領域CPaと、が重なるように、第1スキャン画像I11と第1スキャン画像I12との相対的な配置位置(すなわち、左側原稿画像AILと右側原稿画像AIRとの相対的な配置位置)が、決定される。例えば、上述した図7の配置済画像OIAの例では、図6(B)の第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の右端RT2と、の組み合わせが、配置位置を決定すべき2端の組み合わせである。この配置済画像OIAでは、第1スキャン画像I12内の原稿画像の右端RT1に沿う類似領域CPaと、第2スキャン画像I22内の原稿画像の右端RT2に沿う基準領域SPbと、が重なるように、配置位置が決定される。
類似領域CPaが決定された2端の組み合わせがない場合には(S245:NO)、S255にて、CPU410は、2個のスキャン画像I12、I22(2個の原稿画像AIL、AIR)の相対的な配置位置をデフォルトの位置に決定する。デフォルトの位置は、例えば、単純に第1スキャン画像I12の右端と第2スキャン画像I22の左端とが、全長において接する位置である。
以上説明した第1実施例によれば、原稿画像(AILまたはAIR)を含む第1スキャン画像I12を表す第1のスキャンデータと、原稿画像(AILまたはAIR)を含む第2スキャン画像I22を表す第2の画像データと、が取得される(図2のS25、S30)。そして、第1スキャン画像I12の左右の両端の余白量が基準以上であるか否かがそれぞれ判断される(図2のS35、40)。そして、第1スキャン画像I12の左右の両端の余白量が基準以上であるか否かを用いて、図9に示すように、処理対象の2端の組み合わせが決定され、図10に示すように、処理対象に決定された2端の組み合わせについて第1の探索処理が実行されることによって、2個の原稿画像AIL、AIRの第1種の配置位置が決定される。
例えば、第1スキャン画像I12の右端の余白量が基準未満である場合には、図9の処理対象決定処理では、第1スキャン画像I12内の原稿画像の右端RT1と第2スキャン画像I22内の原稿画像の右端RT2との組み合わせと、第1スキャン画像I12内の原稿画像の右端RT1と第2スキャン画像I22内の原稿画像の左端LT2との組み合わせと、の少なくとも一方が、処理対象の2端の組み合わせとして決定される。したがって、この場合には、図10の配置位置決定処理では、右端RT1に沿う端部画像と、右端RT2に沿う端部画像と左端LT2に沿う端部画像とのうちの少なくとも一方を用いて、第1の探索処理(図10のS235)が実行される。
逆に、第1スキャン画像I12の右端の余白量が基準以上である場合には、図9の処理対象決定処理では、第1スキャン画像I12内の原稿画像の右端RT1を含む2端の組み合わせは、処理対象の2端の組み合わせに決定されない。したがって、この場合には、図10の配置位置決定処理では、右端RT1に沿う端部画像を用いずに、第1の探索処理(図10のS235)が実行される。
そして、例えば、第1スキャン画像I12の左端の余白量が基準未満である場合には、図9の処理対象決定処理では、第1スキャン画像I12内の原稿画像の左端LT1と第2スキャン画像I22内の原稿画像の右端RT2との組み合わせと、第1スキャン画像I12内の原稿画像の左端LT1と第2スキャン画像I22内の原稿画像の左端LT2との組み合わせと、の少なくとも一方が、処理対象の2端の組み合わせとして決定される。したがって、この場合には、図10の配置位置決定処理では、左端LT1に沿う端部画像と、右端RT2に沿う端部画像と左端LT2に沿う端部画像とのうちの少なくとも一方を用いて、第1の探索処理(図10のS235)が実行される。
逆に、第1スキャン画像I12の左端の余白量が基準以上である場合には、図9の処理対象決定処理では、第1スキャン画像I12内の原稿画像の左端LT1を含む2端の組み合わせは、処理対象の2端の組み合わせに決定されない。したがって、この場合には、図10の配置位置決定処理では、左端LT1に沿う端部画像を用いずに、第1の探索処理(図10のS235)が実行される。
この結果、第1スキャン画像I12内の原稿画像のうち、余白量が基準以上である端に沿う端部画像を用いずに第1の探索処理が実行されるので、適切な配置位置の決定に寄与しない第1の探索処理が実行されることを抑制できる。この結果、第1の探索処理の処理時間を低減できる。したがって、配置済画像を表す画像データを生成する際の処理時間を低減できる。
さらに、第1実施例では、第2スキャン画像I22の左右の両端の余白量が基準以上であるか否かがそれぞれ判断される(図2のS45、40)。そして、第2スキャン画像I22の左右の両端の余白量が基準以上であるか否かを用いて、図9に示すように、処理対象の2端の組み合わせが決定され、図10に示すように、処理対象に決定された2端の組み合わせについて第1の探索処理が実行されることによって、2個の原稿画像AIL、AIRの第1種の配置位置が決定される。
例えば、第2スキャン画像I22の右端の余白量が基準未満である場合には、図9の処理対象決定処理では、第2スキャン画像I22内の原稿画像の右端RT2と第1スキャン画像I12内の原稿画像の右端RT1との組み合わせと、第2スキャン画像I22内の原稿画像の右端RT2と第1スキャン画像I12内の原稿画像の左端LT1との組み合わせと、の少なくとも一方が、処理対象の2端の組み合わせとして決定される。したがって、この場合には、図10の配置位置決定処理では、右端RT2に沿う端部画像と、右端RT1に沿う端部画像と左端LT1に沿う端部画像とのうちの少なくとも一方を用いて、第1の探索処理(図10のS235)が実行される。
逆に、第2スキャン画像I22の右端の余白量が基準以上である場合には、図9の処理対象決定処理では、第2スキャン画像I22内の原稿画像の右端RT2を含む2端の組み合わせは、処理対象の2端の組み合わせに決定されない。したがって、この場合には、図10の配置位置決定処理では、右端RT2に沿う端部画像を用いずに、第1の探索処理(図10のS235)が実行される。
そして、例えば、第2スキャン画像I22の左端の余白量が基準未満である場合には、図9の処理対象決定処理では、第2スキャン画像I22内の原稿画像の左端LT2と第1スキャン画像I12内の原稿画像の右端RT1との組み合わせと、第2スキャン画像I22内の原稿画像の左端LT2と第1スキャン画像I12内の原稿画像の左端LT1との組み合わせと、の少なくとも一方が、処理対象の2端の組み合わせとして決定される。したがって、この場合には、図10の配置位置決定処理では、左端LT2に沿う端部画像と、右端RT1に沿う端部画像と左端LT1に沿う端部画像とのうちの少なくとも一方を用いて、第1の探索処理(図10のS235)が実行される。
逆に、第2スキャン画像I22の左端の余白量が基準以上である場合には、図9の処理対象決定処理では、第2スキャン画像I22内の原稿画像の左端LT2を含む2端の組み合わせは、処理対象の2端の組み合わせに決定されない。したがって、この場合には、図10の配置位置決定処理では、左端LT2に沿う端部画像を用いずに、第1の探索処理(図10のS235)が実行される。
この結果、第2スキャン画像I22内の原稿画像のうち、余白量が基準以上である端に沿う端部画像を用いずに第1の探索処理が実行されるので、適切な配置位置の決定に寄与しない第1の探索処理が実行されることをさらに抑制できる。この結果、第1の探索処理の処理時間をさらに低減できる。したがって、配置済画像を表す画像データを生成する際の処理時間をさらに低減できる。
より具体的には、第1スキャン画像I12の右端の余白量が基準未満であり、かつ、第1スキャン画像I12の左端の余白量が基準以上であり、かつ、第2スキャン画像I22の右端の余白量が基準未満であり、かつ、第2スキャン画像I22の左端の余白量が基準以上である場合には、第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の右端RT2と、の組み合わせが、処理対象の2端の組み合わせに決定され、それ以外の2端の組み合わせは処理対象の2端の組み合わせに決定されない。したがって、この場合には、第1スキャン画像I12内の原稿画像の左端LT1に沿う端部画像と、第2スキャン画像I22内の原稿画像の左端LT2に沿う端部画像と、を用いずに、第1スキャン画像I12内の原稿画像の右端RT1に沿う端部画像と、第2スキャン画像I22内の原稿画像の右端RT2に沿う端部画像と、を用いて、第1の探索処理が実行される。したがって、余白量が基準以上であるかに基づいて、必要な端部画像のみを用いて第1の探索処理が実行されるので、配置済画像を表す画像データを生成する際の処理時間をさらに低減できる
以上の説明から解るように、第1スキャン画像I12内の原稿画像が、第1の対象画像の例であり、第2スキャン画像I22内の原稿画像が、第2の対象画像の例である。また、右端は、第1方向の端の例であり、左端は、第2方向の端の例である。また、特定色画素は、第1〜第4の画素の例である。
B.第2実施例:
B−1.スキャンパターンB
第2実施例では、図4、図5のスキャンパターンAの方法に加えて、以下に説明するスキャンパターンBの方法で、2回の読み取りが実行されて、2個のスキャンデータが生成される可能性がある。
図13は、スキャンパターンBの説明図である。スキャンパターンBでは、図13(A)に示すように、原稿10は、折れ線VLで二つ折りにされた状態で、スキャナ部250によって読み取られる。折れ線VLは、図3の線CLと同じ位置の線である。従って、二つ折りにされた状態の原稿10のサイズは、A4サイズである。二つ折りにされた状態の原稿10の一方の面には右領域10Rが位置し、他方の面には、左領域10Lが位置する。
スキャンパターンBの2回の読み取りの一方では、図13(B)、(C)に示すように、左領域10Lを含み、右領域10Rを含まない画像(以下、左側原稿画像BILとも呼ぶ)が読み取られて、左側原稿画像BILを示す左側スキャンデータが生成される。スキャンパターンBの2回の読み取りの他方では、図13(D)、(E)に示すように、右領域10Rを含み、左領域10Lを含まない画像(以下、右側原稿画像BIRとも呼ぶ)が読み取られて、右側原稿画像BIRを示す右側スキャンデータが生成される。左側原稿画像BILと、右側原稿画像BIRと、のうちのいずれが先に読み取られるかは、ユーザ次第であり、複合機200やサーバ400は、いずれが先に読み取られたかを認識できない。
左側原稿画像BILの読み取りには、図13(B)、(C)に示す2種類の態様がある。態様1、2ではともに、図13(B)、(C)に示すように、左領域10Lが原稿台255側を向き、右領域10Rが原稿台255の反対側を向いている。態様1では、図13(B)に示すように、原稿10の折れ線VLを原稿台255の手前側(図13(B)の下側)に向けて、原稿10が原稿台255上に配置される。態様2では、図13(C)に示すように、原稿10の折れ線VLを原稿台255の奥側(図13(C)の上側)に向けて、原稿10が原稿台255上に配置される。
右側原稿画像BIRの読み取りには、図13(D)、(E)に示す2種類の態様がある。態様1、2ではともに、図13(D)、(E)に示すように、右領域10Rが原稿台255側を向き、左領域10Lが原稿台255の反対側を向いている。態様1では、図13(D)に示すように、原稿10の折れ線VLを原稿台255の手前側(図13(D)の下側)に向けて、原稿10が原稿台255上に配置される。態様2では、図13(E)に示すように、原稿10の折れ線VLを原稿台255の奥側(図13(E)の上側)に向けて、原稿10が原稿台255上に配置される。
いずれの原稿画像BIL、BIRの読み取りにおいても、いずれの態様が用いられるかは、ユーザ次第であり、複合機200やサーバ400は、用いられた態様を認識できない。
図14は、スキャンパターンBで生成されるスキャンデータによって表されるスキャン画像の一例を示す図である。図14(A)、(B)の左側スキャン画像BLa、BLbは、左側原稿画像BILの読み取りの態様1、2で生成される左側スキャン画像の一例である。図14(C)、(D)の右側スキャン画像BRa、BRbは、右側原稿画像BIRの読み取りの態様1、2で生成される右側スキャン画像の一例である。2つ折りにされた状態の原稿10の短手方向の長さWB(図13(A))は、原稿台255の短手方向の長さWT(図13(B))より短い。このために、スキャンパターンBが用いられる場合には、左側スキャン画像および右側スキャン画像において、左右の端の少なくとも一方には、ある程度の余白ができ、他方には、余白ができる場合とできない場合とがある(図14(A)〜(D))。
以上の説明から解るように、スキャンパターンBで生成されるスキャン画像(左側スキャン画像BL、または、右側スキャン画像BR)は、左右の両端に余白がある両側余白有画像(例えば、図14(B)、(D)の画像BLb、BRb)と、左右の端のうちの一方の端に余白MGがなく、他方の端に余白MGがある片側余白有画像(例えば、図14(A)、(C)の画像BLa、BRa)と、のいずれかである。
第2実施例では、図2のS55の処理対象決定処理と、S65の配置位置決定処理とが、第1実施例と異なっている。他の処理は、第1実施例と同じである。
B−2.第2の探索処理:
第2実施例の後述する配置位置決定処理では、第1実施例で説明した図11の第1の探索処理とともに、第2の探索処理が併用される。第2の探索処理は、スキャン画像I12、I22が、スキャンパターンBを用いて生成される場合に適した探索処理である。第2の探索処理は、第1スキャン画像I12内の原稿画像と、第2スキャン画像I22内の原稿画像と、の相対的な配置位置として、2個の原稿画像が重ならない第2種の配置位置を決定する処理である。説明の便宜上、第2の探索処理について、先に説明する。
図15は、第2の探索処理のフローチャートである。図16は、第2の探索処理の説明図である。第1の探索処理と同様に、処理対象の2端の組み合わせを構成する第1スキャン画像I12の一端に沿う端部画像と、処理対象の2端の組み合わせを構成する第2スキャン画像I22の一端に沿う端部画像と、を用いて実行される。ここでは、スキャンパターンBを用いて生成される2個のスキャンデータによって表される図16(A)に示す2個のスキャン画像I12b、I22bを例として、第2の探索処理を説明する。図16(A)の第1スキャン画像I12bは、左側原稿画像BILを含み、第2スキャン画像I22bは、右側原稿画像BIRを含む。ここでは、第1スキャン画像I12b内の原稿画像BILの右端RT1bと、第2スキャン画像I22b内の原稿画像BIRの左端LT2bと、の組み合わせが、処理対象の2端の組み合わせである場合を例として説明する。
S400では、CPU410は、図11のS300と同様に、スキャン画像I12b、I22bに対して、余白の削除と回転を実行する。図16(A)のスキャン画像I12b、I22bは、S400の処理後の画像であるので、第1スキャン画像I12bの右端に余白はなく、第2スキャン画像I22bの左端に余白はない。
S401では、CPU410は、スキャン画像I12b、I22内の原稿画像BIL、BIRにおいて欠損している画素を復元する画素復元処理を実行する。図16(A)には、画素復元処理によって復元される複数個の画素が位置する復元領域AD1、AD2が図示されている。上述したように、スキャンパターンBでは、二つ折りにされた原稿10が読み取られる。このために、原稿10の折れ線VL上に位置するごく細い線状の領域の画像は、スキャンパターンBを用いて生成されるスキャン画像I12b、I22b内の原稿画像BIL、BIRのいずれにも表れておらず、欠損している。図16(A)の復元領域AD1、AD2は、原稿10の折れ線VL上に位置するごく細い線状の領域に対応している。
第2の探索処理では、第1スキャン画像I12、I22内の原稿画像の処理対象の端を、原稿の折れ線VLに対応する端であると想定する。このために、第1復元領域AD1は、スキャン画像I12内の原稿画像の処理対象の端の外側に隣接して設けられ、第2復元領域AD2は、第2スキャン画像I22内の原稿画像の処理対象の端の外側に隣接して設けられる。図16(A)の例では、第1復元領域AD1は、第1スキャン画像I12b内の左側原稿画像BILの右端RT1bの外側に隣接し、第2復元領域AD2は、第2スキャン画像I22b内の右側原稿画像BIRの左端LT2bの外側に隣接している。復元領域AD1、AD2は、隣接する原稿画像の縦方向の全長に亘って上端から下端まで延びるごく細い線状の領域である。復元領域AD1、AD2の隣接する端と垂直な方向の幅、すなわち、図16(A)の横方向の幅ΔWは、実験的に予め決められた値である。本実施例では、幅ΔWは、スキャン画像I12b、I22bの横方向の解像度が、300dpiである場合に、3画素である。
図17は、画素復元処理のフローチャートである。S500では、CPU410は、スキャン画像I12b、I22bから、注目画像を選択する。S505では、CPU410は、注目画像内の原稿画像の処理対象の端に沿って、上述した復元領域を設定する。例えば、第1スキャン画像I12bが注目画像である場合には、第1スキャン画像I12b内の左側原稿画像BILの右端RT1bに沿って第1復元領域AD1が設定される。
S510では、CPU410は、復元領域内の注目ラインを選択する。例えば、本実施例では、復元領域の横方向の幅ΔWは3画素であるので、上下方向に延びる3本の画素のラインを含んでいる。CPU410は、3本の画素のラインの中から、1本の注目ラインを、注目画像に近い側から順に選択する。例えば、図17の右側に示すように、第1復元領域AD1は、3本のラインL1〜L3を含んでいる。したがって、第1スキャン画像I12bが注目画像である場合には、最初にラインL1が、注目ラインとして選択され、次にラインL2が注目ラインとして選択される。
S515では、CPU410は、注目ラインに含まれる複数個の画素から1個の注目画素を選択する。例えば、注目ラインに含まれる複数個の画素から、上側から下側に向かって順次に注目画素が選択される。
S520では、CPU410は、注目画素の複数個の近傍画素の値を用いて、注目画素の値(本実施例では、RGB値)を決定する。例えば、図16(A)のスキャン画像I12bが注目画像である場合には、注目画素の値は、注目画素より左側に位置する4個の近傍画素の値を用いて決定される。例えば、図16の右側に示すラインL1の画素Xが注目画素である場合には、4個の近傍画素は、ラインL1の左側に隣接するラインLaの3個の画素A、B、Cと、ラインLaの左側に隣接するラインLbの1個の画素Dである。画素Aは、注目画素より左側に位置する画素のうち、注目画素に最も近い第1近傍画素であり、画素B、Cは、注目画素に2番目に近い第2近傍画素であり、画素Dは、注目画素に3番目に近い第3近傍画素である。画素Xの特定の成分値(例えば、R成分の値)Vxは、画素A〜Dの特定の成分値Va〜Vdを用いて、以下の式(a)によって算出される。
Vx=Ka×Va+Kb×Vb+Kc×Vc+Kd×Vd ...(a)
ここで、Ka〜Kdは、画素A〜Dとのそれぞれと画素Xとの距離に応じて予め決定された係数である。係数Ka〜Kdは、Ka〜Kdの合計値が1であり、かつ、画素Xとの距離が短いほど大きな値となるように、決定されている。本実施例では、Ka=0.5、Kb=Kc=0.2、Kd=0.1である。
CPU410は、式(a)を用いて、注目画素のRGBの3個の成分の値をそれぞれ算出することによって、注目画素のRGB値を決定する。
なお、図示は省略するが、図16(A)の第2スキャン画像I22bが注目画像である場合には、注目画素の値は、注目画素より右側に位置する4個の近傍画素の値を用いて決定される。
S525では、CPU410は、注目ラインの全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には(S525:NO)、CPU410は、S515に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には(S525:YES)、CPU410は、S530にて、注目画像について設定された復元領域の全てのラインを注目ラインとして処理したか否かを判断する。未処理のラインがある場合には(S530:NO)、CPU410は、S510に戻って、未処理のラインを注目ラインとして選択する。全てのラインが処理された場合には(S530:YES)、CPU410は、S535に処理を進める。
S535では、CPU410は、スキャン画像I12、I22の両方を処理したか否かを判断する。CPU410は、両方のスキャン画像を処理していない場合には(S535:NO)、S500に戻って未処理のスキャン画像を注目画像として選択する。CPU410は、両方のスキャン画像を処理済である場合には(S535:YES)、画素復元処理を終了する。
処理対象の2端の組み合わせが、原稿10を正しく再現できる組み合わせである場合には、第1復元領域AD1内の複数個の第1復元画素によって構成される線状の画像と、第2復元領域AD2内の複数個の右側復元画素によって構成される線状の画像は、ともに、原稿10の折れ線VL上に位置する線状の画像を表す画像になる。したがって、この場合には、第1復元領域AD1内の画像と、第2復元領域AD2内の画像とは、互いに類似する部分を含むと考えられる。
画素復元処理が終了すると、図15のS402では、CPU410は、基準領域SPbを決定する。本実施例では、第2復元領域AD2の全体が、基準領域SPbとして決定される。これに代えて、第2復元領域AD2の一部分や、第2復元領域AD2と、第2復元領域AD2と隣接する原稿画像の一部によって構成される領域が、基準領域SPbとして決定されても良い。
S405では、CPU410は、候補領域を決定するための所定の参照範囲REbに基づいて決定される複数個の候補領域の中から、1個の注目候補領域を決定する。参照範囲REbは、例えば、図16(A)に示すように、第1スキャン画像I12bの右上部分に破線で示す範囲である。
図18は、図16(A)の参照範囲REb近傍の拡大図である。参照範囲REbは、縦M2画素×横N2画素分の矩形の範囲である(M2、N2は、2以上の整数)。N2は、例えば、約10であり、M2は、例えば、数十から数百である。参照範囲REbの右端は、第1スキャン画像I12bの右側の第1復元領域AD1の右端と一致している。参照範囲REbの縦方向の中心は、第1スキャン画像I12bの上端に位置している。
CPU410は、参照範囲REb内の(M2×N2)個の画素位置から、1個の注目画素位置を選択する。CPU410は、当該注目画素位置に、基準領域SPbの左上の画素Pc(図16(A))が位置するように、基準領域SPbを配置した場合に、基準領域SPbと重なる第1スキャン画像I12bまたは復元領域AD1内の領域を注目候補領域として特定する。このように、参照範囲REb内の(M2×N2)個の画素位置が、(M2×N2)個の候補領域と1対1で対応している。例えば、図18のハッチングで示す候補領域NT1は、参照範囲REb内の右上の画素位置Pt1が注目画素位置である場合に特定される。図18のハッチングで示す候補領域NT2は、参照範囲REb内の左下の画素位置Pt2が注目画素位置である場合に特定される。候補領域が設定され得る領域である探索領域SAbは、図18に示すように、参照範囲REbの左端の位置LPより右側に位置する領域である。第1配置位置決定処理の探索領域SAbは、第1復元領域AD1と、第1スキャン画像I12bの一部分の領域と、を含む。
例えば、最初の注目候補領域は、図14の候補領域NT1である。そして、注目候補領域NT1を特定するための参照範囲REb内の画素位置を、候補領域NT1を特定する際の位置から縦方向や横方向に1画素刻みで移動させることで、(M2×N2)個の候補領域から1個の注目候補領域が順次に特定される。
S410〜S435の処理は、図11のS310〜S335の処理と同一である。すなわち、すなわち、S410〜S435の処理で、探索領域SAb内に設定される(M2×N2)個の注目領域の中に、1個以上の類似領域CPbが存在する場合には、基準領域SPbとの類似率が最も高い1個の類似領域CPbが、処理対象の2端の組み合わせにおける類似領域CPbとして決定されて、第2の探索処理が終了される。(M2×N2)個の注目領域の中に、1個も類似領域CPbが存在しない場合には、類似領域CPbが決定されることなく、第2の探索処理が終了される。
B−3.処理対象決定処理:
次に、第2実施例の処理対象決定処理について説明する。第2実施例の処理対象決定処理では、第1の探索処理の処理対象である2端の組み合わせに加えて、第2の探索処理の処理対象である2端の組み合わせが決定される。
図19は、第2実施例の処理対象決定処理のフローチャートである。S605では、CPU410は、第1スキャン画像I12の左右の両端の余白量が、基準値未満であるか否かを判断する。第1スキャン画像I12の両端の余白量が基準値未満である場合には(S605:YES)、S610にて、CPU410は、第1スキャン画像I12を、両側余白無画像として決定する。第1スキャン画像I12の左右の少なくとも一方の端の余白量が基準値以上である場合には(S605:NO)、S615にて、CPU410は、第1スキャン画像I12を、余白有画像として決定する。余白有画像は、上述した片側余白有画像と、両側余白有画像と、を含む概念である。
S620では、CPU410は、第2スキャン画像I22の左右の両端の余白量が、基準値未満であるか否かを判断する。第2スキャン画像I22の両端の余白量が基準値未満である場合には(S620:YES)、S625にて、CPU410は、第2スキャン画像I22を、両側余白無画像として決定する。第2スキャン画像I22の左右の少なくとも一方の端の余白量が基準値以上である場合には(S620:NO)、S630にて、CPU410は、第2スキャン画像I22を、余白有画像として決定する。
S635では、CPU410は、スキャン画像I12、I22の両方が両側余白無画像であるか否かを判断する。スキャン画像I12、I22の両方が両側余白無画像である場合には(S635:YES)、S645に処理を進める。スキャン画像I12、I22の少なくとも一方が余白有画像である場合には(S635:NO)、S640にて、CPU410は、スキャン画像I12、I22の一方が両側余白無画像であるか否かを判断する。スキャン画像I12、I22の一方が両側余白無画像である場合には(S640:YES)、スキャン画像I12、I22の一方が両側余白無画像であり、他方が余白有画像である。この場合には、CPU410は、S655に処理を進める。スキャン画像I12、I22の一方が両側余白無画像でない場合には(S640:NO)、スキャン画像I12、I22の両方が余白有画像である。この場合には、CPU410は、S665に処理を進める。
スキャン画像I12、I22の両方が両側余白無画像である場合には、先ず、S645では、CPU410は、全ての2端の組み合わせ、すなわち、上述した(1)〜(4)の2端の組み合わせを、第1の探索処理の処理対象であると決定する。この場合には、スキャンパターンAが用いられたと考えられ、(1)〜(4)の2端の組み合わせの全てについて、原稿10を正しく再現できる組み合わせである可能性があるからである。
そして、S650では、CPU410は、全ての2端の組み合わせを、第2の探索処理の処理対象でないと決定する。すなわち、この場合には、後述する配置位置決定処理において、第2の探索処理は実行されない。スキャンパターンBでは、両側余白無画像がスキャン画像として生成されることはないので、少なくとも一方のスキャン画像が、両側余白無画像である場合には、スキャンパターンAが用いられたと考えられるからである。この結果、不要な第2の探索処理が実行されることを抑制して、配置位置決定処理の処理時間を低減することができる。
スキャン画像I12、I22の一方が両側余白無画像であり、他方が余白有画像である場合には、先ず、S655では、CPU410は、図9のS205〜S225を実行して、第1の探索処理の処理対象とする2端の組み合わせと、第1の探索処理の処理対象としない2端の組み合わせと、を決定する。この結果、第1実施例と同様に、原稿10を正しく再現できる可能性がある2端の組み合わせのみが、第1の探索処理の処理対象とされるので、配置位置決定処理の処理時間を低減することができる。なお、この場合には、スキャン画像I12、I22の一方が両側余白無画像である時点で、スキャンパターンAが用いられたと考えられる。上述したように、スキャンパターンBでは、両側余白無画像がスキャン画像として生成されることはないからである。したがって、この場合には、スキャン画像I12、I22の他方の余白有画像は、片側余白有画像である、と考えられる。両側余白有画像は、スキャンパターンBでは生成され得るが、スキャンパターンAでは生成され得ないからである。
そして、S660では、S650と同様に、CPU410は、全ての2端の組み合わせを、第2の探索処理の処理対象でないと決定する。上述したように、スキャンパターンBでは、両側余白無画像がスキャン画像として生成されることはないからである。この結果、不要な第2の探索処理が実行されることを抑制して、配置位置決定処理の処理時間を低減することができる。
スキャン画像I12、I22の両方が余白有画像である場合には、先ず、S665では、S655と同様に、CPU410は、図9のS205〜S225を実行して、第1の探索処理の処理対象とする2端の組み合わせと、第1の探索処理の処理対象としない2端の組み合わせと、を決定する。この処理により、スキャン画像I12、I22の両方が片側余白有画像である場合には、第1スキャン画像I12の余白量が基準未満である端と、第2スキャン画像I22の余白量が基準未満である端と、の組み合わせが、第1の探索処理の処理対象であると決定される。そして、他の3個の2端の組み合わせが、第1の探索処理の処理対象でないと決定される。また、スキャン画像I12、I22の少なくとも一方が両側余白有画像である場合には、全ての2端の組み合わせが、第1の探索処理の処理対象でないと決定される。スキャンパターンAが用いられる場合には、両側余白有画像がスキャン画像として生成されることはないからである。この結果、スキャンパターンAが用いられた可能性がある場合に、原稿10を正しく再現できる可能性がある2端の組み合わせのみが、第1の探索処理の処理対象であるとされ、スキャンパターンAが用いられた可能性がない場合には、全ての2端の組み合わせが第1の探索処理の処理対象でないとされる。したがって、配置位置決定処理の処理時間を低減することができる。
そして、S670では、CPU410は、4個の2端の組み合わせの全てを、第2の探索処理の処理対象であると決定する。この場合には、スキャンパターンBが用いられた可能性があり、スキャンパターンBが用いられた場合には、(1)〜(4)の2端の組み合わせの全てについて、原稿10を正しく再現できる組み合わせである可能性があるからである。
このように、第1の探索処理と第2の探索処理のそれぞれについて、処理対象とする2端の組み合わせと、処理対処としない2端の組み合わせと、が決定されると、処理対象決定処理は、終了される。
以上説明した処理対象決定処理によれば、スキャン画像I12、I22の左右の端の余白量が基準以上であるか否かに基づいて、第1の探索処理と第2の探索処理のそれぞれについて、処理対象とする2端の組み合わせと、処理対処としない2端の組み合わせと、を適切に決定できる。この結果、不要な第1の探索処理や、第2の探索処理が実行されることを抑制して、配置位置決定処理の処理時間を低減することができる。
B−4:配置位置決定処理:
次に、第2実施例の配置位置決定処理について説明する。図20は、第2実施例の配置位置決定処理のフローチャートである。S705では、CPU410は、上述した配置位処理対象決定処理にて、第1の探索処理の処理対象であると決定された1個以上の2端の組み合わせがあるか否かを判断する。
第1の探索処理の処理対象であると決定された1個以上の2端の組み合わせがある場合には(S705:YES)、S710にて、CPU410は、該1個以上の2端の組み合わせから、1個の処理対象の2端の組み合わせを選択する。S715では、選択済の処理対象の2端の組み合わせについて、第1の探索処理を実行する。S720では、CPU410は、第1の探索処理の処理対象であると決定された上述の1個以上の2端の組み合わせの全てについて、処理したか否かを判断する。未処理の2端の組み合わせがある場合には(S720:NO)、S710に戻って、該2端の組み合わせを選択する。上述の1個以上の2端の組み合わせの全てについて、処理した場合には(S720:YES)、CPU410は、S725に処理を進める。
第1の探索処理の処理対象であると決定された2端の組み合わせがない場合には(S705:NO)、CPU410は、S710〜S720をスキップして、S725に処理を進める。
S725では、CPU410は、上述した配置位処理対象決定処理にて、第2の探索処理の処理対象であると決定された1個以上の2端の組み合わせがあるか否かを判断する。
第2の探索処理の処理対象であると決定された1個以上の2端の組み合わせがある場合には(S725:YES)、S730にて、CPU410は、該1個以上の2端の組み合わせから、1個の処理対象の2端の組み合わせを選択する。S735では、選択済の処理対象の2端の組み合わせについて、第2の探索処理を実行する。S740では、CPU410は、第2の探索処理の処理対象であると決定された上述の1個以上の2端の組み合わせの全てについて、処理したか否かを判断する。未処理の2端の組み合わせがある場合には(S740:NO)、S730に戻って、該2端の組み合わせを選択する。上述の1個以上の2端の組み合わせの全てについて、処理した場合には(S740:YES)、CPU410は、S745に処理を進める。
第2の探索処理の処理対象であると決定された2端の組み合わせがない場合には(S725:NO)、CPU410は、S730〜S740をスキップして、S745に処理を進める。
S745では、CPU410は、処理対象の2端の組み合わせの中に、S715の第1の探索処理またはS735の第2の探索処理にて、類似領域が決定された2端の組み合わせがあるか否かを判断する。通常は、スキャンパターンAが用いられた場合には、互いを接合することで原稿10を正しく再現できる2端の組み合わせについての第1の探索処理にて類似領域CPaが決定される可能性が高い。また、スキャンパターンBが用いられた場合には、互いを接合することで原稿10を正しく再現できる2端の組み合わせについての第2の探索処理にて類似領域CPbが決定される可能性が高い。
類似領域が決定された2端の組み合わせが1個以上ある場合には(S745:YES)、S755にて、CPU410は、当該1個以上の2端の組み合わせのうち、類似率が最も高い類似領域が決定された2端の組み合わせにて、配置位置を決定する。
類似率が最も高い類似領域が、S715の第1の探索処理にて決定された場合には、第1実施例と同様に、その2端の組み合わせについての第1の探索処理で用いられた基準領域SPaと、決定された類似領域CPaと、が重なるように、2個のスキャン画像I11、I12の第1種の配置位置(すなわち、2個の原稿画像の第1種の配置位置)が、決定される(図7参照)。
一方、類似率が最も高い類似領域が、S735の第2の探索処理にて決定された場合には、第2の探索処理にて決定された類似率が最も高い類似領域CPbの位置に基づいて、2個のスキャン画像I11、I12の第2種の配置位置(すなわち、2個の原稿画像の第2種の配置位置)が、決定される。図16(B)の例を参照して説明する。図16(B)の例では、類似率が最も高い類似領域CPbが決定された2端の組み合わせは、第1スキャン画像I12b内の原稿画像の右端RT1bと、第2スキャン画像I22b内の原稿画像の左端LT2bと、の組み合わせである。この例に示すように、類似率が最も高い類似領域CPbが決定された2端の組み合わせを構成する2端が、所定の隙間ΔITを開けて対向するように、横方向の相対的な配置位置が決定される。そして、類似率が最も高い類似領域CPbに対応する参照範囲REb内の画素位置Psが特定される。例えば、類似率が最も高い類似領域CPbが、図18の候補領域NT1である場合には、参照範囲REbの画素位置Pt1が、該類似領域CPbに対応する参照範囲REb内の画素位置Psである。そして、図16(B)に示すように、特定された参照範囲REb内の画素位置Psの縦方向の位置が、第2スキャン画像I22の上端の縦方向の位置として決定される。なお、図16(B)では、図の煩雑を避けるために、スキャン画像I12b、I22b内の余白と追加領域の図示を省略している。参照範囲REbは、第1スキャン画像I12bに対して設定されているので、これによって、スキャン画像I12b、I22bの相対的な縦方向の位置が決定される。
類似領域が決定された2端の組み合わせがない場合には(S745:NO)、S750にて、CPU410は、2個のスキャン画像I12、I22(2個の原稿画像AIL、AIR)の相対的な配置位置をデフォルトの位置に決定する。デフォルトの位置は、例えば、第1実施例のデフォルトの位置と同じである。
以上説明した第2実施例によれば、第1スキャン画像I12の右端の余白量が基準以上である場合には、図19の処理対象決定処理にて、第1スキャン画像I12内の原稿画像の右端を含む2端の組み合わせは、第1の探索処理の処理対象に決定されない。したがって、この場合には、第1スキャン画像I12内の原稿画像の右端に沿う端部画像を用いて、第1の探索処理が実行されない。また、この場合には、図19の処理対象決定処理にて、第1スキャン画像I12内の原稿画像の右端を含む2端の組み合わせは、第2の探索処理の処理対象に決定され得る。したがって、この場合には、この結果、第1スキャン画像I12内の原稿画像の右端に沿う端部画像を用いて、第2の探索処理が実行される。
以上のように、第1スキャン画像I12の右端の余白量が基準以上である場合に、第1スキャン画像I12内の原稿画像の右端に沿う端部画像を用いて実行されるべき第2の探索処理が実行され、実行される必要がない第1の探索処理が実行されない。この結果、探索処理に要する処理時間を低減することができる。また、誤った種類の探索処理が用いられることによって、誤った配置位置が決定される可能性を低減することができる。
さらに、第1スキャン画像I12が両側余白有画像である場合、すなわち、第1スキャン画像I12の右端の余白量が基準以上であり、かつ、第1スキャン画像I12の左端の余白量が基準以上である場合には、スキャンパターンAが用いられた可能性が低く、スキャンパターンBが用いられたと考えられる。この場合には、図19の処理対象決定処理のS665にて、全ての2端の組み合わせは、第1の探索処理の処理対象に決定されない(図9のS205〜S225参照)。そして、この場合には、全ての2端の組み合わせが、第2の探索処理の処理対象に決定される(図19のS670)。このように、この場合には、CPU410は、第1の探索処理を実行せず、第2の探索処理を実行する。したがって、不要な第1の探索処理を実行することなく、第2の探索処理だけが実行されるので、適切な配置位置を決定することができるとともに、処理時間を低減することができる。
さらに、第1スキャン画像I12が両側余白無画像である場合、すなわち、第1スキャン画像I12の右端の余白量が基準未満であり、かつ、第1スキャン画像I12の左端の余白量が基準未満である場合には、スキャンパターンBが用いられた可能性が低く、スキャンパターンAが用いられたと考えられる。この場合には、図19の処理対象決定処理のS645またはS655にて、少なくとも1個の2端の組み合わせが、第1の探索処理の処理対象に決定される。そして、この場合には、全ての2端の組み合わせは、第2の探索処理の処理対象に決定されない(図19のS650またはS660)。このように、この場合には、CPU410は、第1の探索処理を実行し、第2の探索処理を実行しない。したがって、不要な第2の探索処理を実行することなく、第1の探索処理だけが実行されるので、適切な配置位置を決定することができるとともに、処理時間を低減することができる。
さらに、2個のスキャン画像I12、I22の両方が、余白有画像(両側余白有画像または片側余白有画像)である場合、すなわち、第1スキャン画像I12の左右のうちの一方の端の余白量が基準以上であり、かつ、第2スキャン画像I22の左右のうちの少なくとも一方の端の余白量が基準以上である場合には、図19のS670が実行されて、全ての2端の組み合わせが、第2の探索処理の処理対象であると決定される。したがって、この場合には、CPU410は、第1スキャン画像I12の左右のうちの他方の端の余白量、および、第2スキャン画像I22の左右のうちの他方の端の余白量に拘わらずに、全ての2端の組み合わせについて、第2の探索処理を実行する。
スキャンパターンBが用いられる場合には、各スキャン画像の左右の少なくとも一方の端に余白ができる(図14)。そして、この場合には、余白量だけでは、第2の探索処理の処理対象とすべき2端の組み合わせと、第2の探索処理の処理対象とすべきでない2端の組み合わせと、を分離できない。本実施例では、このような場合に、全ての2端の組み合わせについての第2の探索処理が実行されるので、適切な配置位置を決定することができる。
ところで、スキャンパターンAが用いられる場合には、図3の原稿10の中央部CAは、図6(A)に示すように、第1スキャン画像I12内の原稿画像と、第2スキャン画像I22内の原稿画像と、の両方に現れる。このために、このために、これらの2個の原稿画像が重なる第1種の配置位置を決定することが適切である。一方、スキャンパターンBが用いられる場合には、原稿10の折れ線VL上に位置する線状の画像は、第1スキャン画像I12内の原稿画像と、第2スキャン画像I22内の原稿画像と、のいずれにも表れない。また、これらの2個の原稿画像の両方に表れる原稿10上の領域は存在しない。このために、これらの2個の原稿画像が重ならない第2種の配置位置を決定することが適切である。本実施例によれば、用いられたスキャンパターンに応じた適切な探索処理を実行することによって、適切な配置位置が決定される。この結果、原稿10を適切に再現できる処理済画像を表す処理済画像データを生成するこができる。
C.第3実施例:
第3実施例では、図2のS65の配置位置決定処理が、第1実施例と異なっている。また、第3実施例では、図2のS55の処理対象決定処理と、S65の配置位置決定処理と、の間に、図2に破線で示す処理順序決定処理が行われる。第3実施例のその他の処理は、第1実施例と同じである。また、第3実施例では、第1実施例と同様に、スキャンパターンAが用いられることが想定されており、スキャンパターンBが用いられることは、想定されていない。
C−1.配置位置決定処理:
図21は、第3実施例の配置位置決定処理のフローチャートである。S260では、図10のS230と同様に、CPU410は、処理対象決定処理にて第1の探索処理の処理対象であると決定された1個以上の2端の組み合わせの中から、1個の組み合わせを選択する。S265では、図10のS235と同様に、CPU410は、選択された2端の組み合わせについて第1の探索処理を実行する。
S270では、CPU410は、S265の第1の探索処理にて、選択された2端の組み合わせについて、類似領域CPaが決定されたか否かを判断する。類似領域CPaが決定された場合には(S270:YES)、S275にて、CPU410は、現在の処理対象の2端の組み合わせにて、第1種の配置位置を決定して、配置位置決定処理を終了する。すなわち、現在の処理対象の2端の組み合わせについての第1の探索処理で用いられた基準領域SPaと、決定された類似領域CPaと、が重なるように、第1スキャン画像I11と第2スキャン画像I22との相対的な配置位置が、決定される。
類似領域CPaが決定されなかった場合には(S270:NO)、S280にて、CPU410は、第1の探索処理の処理対象であると決定された2端の組み合わせを全て選択したか否かを判断する。未選択の2端の組み合わせがある場合には(S280:NO)、CPU410は、S260に戻って、当該2端の組み合わせを選択する。全ての処理対象の2端の組み合わせが選択済である場合には(S280:YES)、S285にて、CPU410は、2個のスキャン画像I12、I22の相対的な配置位置をデフォルトの位置に決定して、配置位置決定処理を終了する。
以上の説明から解るように、第3実施例では、第1の探索処理の処理対象であると決定された2端の組み合わせが複数ある場合において、第1の組み合わせについての第1の探索処理にて、類似領域CPaが決定された場合には、第1の組み合わせより処理順序が後の第2の組み合わせについて、第1の探索処理は、実行されない。この点が、処理対象決定処理にて処理対象であると決定された2端の組み合わせの全てについて、必ず第1の探索処理が実行される第1実施例と異なる。
このために、第3実施例では、第1の探索処理の処理対象であると決定された2端の組み合わせが複数ある場合には、これらの2端の組み合わせについて、第1の探索処理を行う処理順序を、原稿10を正しく再現できる可能性が高い順から先に処理されるように決定することで、全体の処理時間を低減することができる。そこで、本実施例では、図2のS60の処理順序決定処理が追加されている。
C−2.処理順序決定処理:
図22は、第3実施例の処理順序決定処理のフローチャートである。S800では、CPU410は、処理対象決定処理にて第1の探索処理の処理対象であると決定された2端の組み合わせが複数個あるか否かを判断する。第1の探索処理の処理対象であると決定された2端の組み合わせが1個である場合には(S800:NO)、処理順序を決める必要がないので、CPU410は、処理を終了する。
第1の探索処理の処理対象であると決定された2端の組み合わせが複数個ある場合には(S800:YES)、S805にて、CPU410は、該複数個の2端の組み合わせの中から、1個の組み合わせを選択する。S810では、CPU410は、選択された2端の組み合わせを構成する第1スキャン画像I12内の原稿画像の端に沿う第1の端部画像TI1と、選択された2端の組み合わせを構成する第2スキャン画像I22内の原稿画像の端に沿う第2の端部画像TI2と、のヒストグラムをそれぞれ生成する。
具体例として、図6(B)には、選択された2端の組み合わせを構成する2端が、第1スキャン画像I12内の原稿画像の右端RT1と、第2スキャン画像I22内の原稿画像の右端RT2と、である場合の、第1の端部画像TI1および第2の端部画像TI2が図示されている。この例に示すように、端部画像TI1、TI2は、スキャン画像I12、I22の処理対象の端(図6(B)ではいずれも右端)に沿って、当該処理対象の端の全長に亘って延びる部分画像である。端部画像TI1、TI2の横方向の幅Wpは、例えば、原稿10の中央部CA(図3)の幅Wca、すなわち、2個のスキャン画像I12、I22の両方に表現され得る領域の幅Wcaに基づいて、予め定められた値である。幅Wcaの最大値は、例えば、想定される原稿10の特定方向の幅WS(図3の例では、A3の長手方向の幅)と、該原稿10の読み取り時に原稿10の特定方向に対応する原稿台255の方向の幅WT(図4の例では、原稿台255の短手方向の幅)と、に基づいて定まる値(2×WT−WS)である。幅Wpは、例えば、幅Wcaの最大値の70%〜100%の値に設定される。
CPU410は、第1の端部画像TI1のRGBの各成分値のヒストグラムと、第2の端部画像TI2のRGBの各成分のヒストグラムと、をそれぞれ生成する。例えば、R成分のヒストグラムは、対象の端部画像内の各画素を、各画素が有するR成分値に応じて、複数のクラスに分類することによって生成される。本実施例では、R成分値が取り得る256階調の階調値のそれぞれを、1個のクラスとして、ヒストグラムデータが生成される。他の成分値のヒストグラムについても同様である。
なお、ヒストグラムは、端部画像TI1、TI2内の全ての画素について生成されなくても良く、端部画像TI1、TI2内の一部の画素について生成されても良い。例えば、端部画像TI1、TI2内に均一に分散するように選択された一部の画素、例えば、数画素おきに選択された一部の画素について、ヒストグラムが生成されても良い。また、ヒストグラムは、RGBの各成分のヒストグラムに限らず、例えば、輝度、彩度、色相のうちの全部または一部のヒストグラムであっても良い。
図23は、端部画像TI1、TI2のR成分のヒストグラムの一例を示す図である。破線は、第1の端部画像TI1のヒストグラムであり、実線は、第2の端部画像TI2のヒストグラムである。
S815では、CPU410は、第1の端部画像TI1のヒストグラムと、第2の端部画像TI2のヒストグラムと、の重複面積Sovを算出する。図23には、R成分の重複面積が、ハッチングで図示されている。例えば、CPU410は、R成分のヒストグラムの256個のクラスのそれぞれについて、第1の端部画像TI1のヒストグラムの画素数(度数)と、第2の端部画像TI2のヒストグラムの画素数(度数)と、のうちの小さい方の値を特定する。そして、CPU410は、256個のクラスのそれぞれについて特定された該小さい方の値の合計値を、R成分の重複面積として算出する。CPU410は、G成分、B成分についても同様に重複面積を算出し、RGBの3個の成分の重複面積の合計値を、重複面積Sovとして算出する。重複面積Sovは、2個の端部画像TI1、TI2のヒストグラムの類似度を示す特徴値である。重複面積Sovが大きいほど、2個の端部画像TI1、TI2のヒストグラムが類似していることを示す。変形例では、RGBの3個の成分のいずれか一つの重複面積を重複面積Sovとして算出してもよい。また、特に、ヒストグラムとして、輝度を生成する場合は、輝度のみを用いて重複面積Sovを算出してもよい。
S820では、処理対象であると決定された2端の組み合わせを全て選択したか否かを判断する。未選択の2端の組み合わせがある場合には(S820:NO)、CPU410は、S805に戻って、当該2端の組み合わせを選択する。全ての処理対象の2端の組み合わせが選択済である場合には(S820:YES)、CPU410は、S825に処理を進める。S825に処理が進んだ時点では、処理対象であると決定された2端の組み合わせの全てについて、重複面積Sovが算出されている。
S825では、CPU410は、重複面積Sovが大きい順に、処理対象であると決定された複数個の2端の組み合わせの処理順序を決定して、処理順序決定処理を終了する。
以上説明した第3実施例によれば、複数個の2端の組み合わせのそれぞれについて第1の探索処理を実行する場合に、複数個の2端の組み合わせのそれぞれについて、組み合わせを構成する2個の端に沿う2個の端部画像TI1、TI2のヒストグラムを生成される(S810)。そして、該ヒストグラムを用いて、2個の端部画像TI1、TI2のヒストグラムの類似度が比較的高い組み合わせに対する第1の探索処理の順序が、2個の端部画像TI1、TI2のヒストグラムの類似度が比較的低い組み合わせに対する第1の探索処理の順序より先になるように、複数個の2端の組み合わせの処理順序が決定される(S815、S825)。この結果、2個の端部画像TI1、TI2のヒストグラムの類似度が高い組み合わせに対する第1の探索処理の順序が先になるように決定された処理順序に従って、第1の探索処理が実行され、特定の組み合わせについて配置位置が決定された場合に、複数個の組み合わせのうち、特定の組み合わせより決定済の順序が後の組み合わせについて、第1の探索処理が実行されないので、第1の探索処理の処理時間をより低減できる。原稿10を再現できる組み合わせを構成する2端の端部画像TI1、TI2は、他の組み合わせを構成する2端の端部画像TI1、TI2より類似した画像であると考えられるからである。そして、第1の探索処理と比較して、ヒストグラムの生成処理に要する処理時間は、大幅に短いので、処理順序決定処理を追加することによる処理時間の増加よりも、第1の探索処理の処理時間をより低減できる期待値の方が大きい。
D.第4実施例:
第4実施例は、配置順序決定処理が、第3実施例と異なる。第4実施例の他の処理は、第3実施例と同じである。図24は、第4実施例の配置順序決定処理のフローチャートである。図24のS900〜S915の処理は、図22のS800〜S815の処理と同じである。
S920では、CPU410は、選択された2端の組み合わせについて算出された重複面積Sovは、閾値THs以上であるか否かを判断する。閾値THsは、2個の端部画像TI1、TI2が、ある程度類似していることを示す重複面積Sovの値に実験的に予め決定される値である。例えば、閾値THsは、第1の端部画像TI1のヒストグラムの面積の30〜60%の値である。
重複面積Sovが閾値THs以上である場合には(S920:YES)、CPU410は、S930にて、選択された2端の組み合わせを優先対象に決定する。重複面積Sovが閾値THs未満である場合には(S920:NO)、CPU410は、S935にて、選択された2端の組み合わせを非優先対象に決定する。
S940では、CPU410は、2個の端部画像TI1、TI2のヒストグラムのダイナミックレンジDRを算出する。例えば、第1の端部画像TI1のR成分のヒストグラムの画素数(度数)が、最小値(0)のクラスから最小値より大きな成分値のクラスに向かって順次に加算される。そして、当該加算値が第1の端部画像TI1の画素数の所定割合(本実施例では5%)を超えた時点におけるクラスのR成分値が、下限値R1に決定される。さらに、第1の端部画像TI1のR成分のヒストグラムの画素数(度数)が、最大値(255)のクラスからから最大値より小さな成分値のクラスに向かって順次に加算される。そして、当該加算値が、上記所定割合(本実施例では5%)を超えた時点におけるクラスのR成分値が、上限値R2に決定される。第1の端部画像TI1のR成分値のダイナミックレンジDR1_Rは、(R2−R1)に決定される。同様にして、第2の端部画像TI2のR成分値のダイナミックレンジDR2_Rが決定され、2個の端部画像TI1、TI2のR成分値のダイナミックレンジの和(DR1_R+DR2_R)が、R成分のダイナミックレンジDR_Rとして算出される。同様にして、G成分、および、B成分のダイナミックレンジDR_G、DR_Bが算出され、3個の成分のダイナミックレンジの和が、算出すべきダイナミックレンジDRとして算出される(DR=DR_R+DR_G+DR_B)。
ダイナミックレンジDRは、2個の端部画像TI1、TI2の複雑さを示す特徴値である。例えば、2個の端部画像TI1、TI2が、原稿10の背景などのベタ領域などの比較的単純な画像を表す場合には、該2個の端部画像TI1、TI2のダイナミックレンジDRは、比較的小さくなる。2個の端部画像TI1、TI2が、原稿10内のオブジェクトなどの比較的複雑な画像を表す場合には、該2個の端部画像TI1、TI2のダイナミックレンジDRは、比較的大きくなる。
S945では、処理対象であると決定された2端の組み合わせを全て選択したか否かを判断する。未選択の2端の組み合わせがある場合には(S945:NO)、CPU410は、S905に戻って、当該2端の組み合わせを選択する。全ての処理対象の2端の組み合わせが選択済である場合には(S945:YES)、CPU410は、S950に処理を進める。S950に処理が進んだ時点では、処理対象であると決定された2端の組み合わせの全てについて、2個の端部画像TI1、TI2のダイナミックレンジDRが算出されるとともに、当該2端の組み合わせの全てが、優先対象か非優先対象のいずれかに決定されている。
S950では、CPU410は、優先対象に決定された1個以上の2端の組み合わせについて、ダイナミックレンジDRが大きい順に、処理順序を決定する。
S955では、CPU410は、非優先対象に決定された1個以上の2端の組み合わせについて、ダイナミックレンジDRが大きい順に、処理順序を決定する。ただし、非優先対象に決定された1個以上の2端の組み合わせの処理順序は、優先対象に決定された1個以上の2端の組み合わせより後の順序に決定される。
以上説明した第4実施例によれば、複数個の2端の組み合わせのそれぞれについて第1の探索処理を実行する場合に、複数個の2端の組み合わせのそれぞれについて、2個の端部画像TI1、TI2の複雑さを示す特徴値(具体的には、ダイナミックレンジDR)が算出される(S940)。そして、2個の端部画像TI1、TI2の複雑さが比較的高い2端の組み合わせの処理順序が、2個の端部画像TI1、TI2の複雑さが比較的低い2端の組み合わせの処理順序より先になるように、複数個の2端の組み合わせの処理順序が決定される。
原稿10を正しく再現できる組み合わせを構成する2端の端部画像TI1、TI2は、原稿10の中央部CAを示す画像であるので、原稿10の主要なオブジェクトを含む可能性が高い。このために、原稿10を正しく再現できる組み合わせを構成する2端の端部画像TI1、TI2は、比較的複雑な画像である可能性が高い。一方、その他の組み合わせを構成する2端の端部画像TI1、TI2は、原稿10の端部の領域を示す画像を含む。例えば、原稿10の端部の領域は、背景などの単純な画像を含む場合があるので、中央部CAと比較して単純な画像である場合がある。このために、上述のように、2個の端部画像TI1、TI2が複雑である2端の組み合わせを優先するように決定された処理順序に従って、第1の探索処理が実行することで、第1の探索処理の処理時間をより低減できる。さらに、原稿10を正しく再現できない2端の組み合わせで、誤って配置位置が決定される可能性を低減することができる。
D.変形例:
(1)上記第3、第4実施例のように図2のS60の処理順序決定処理が実行される場合には、図2のS55の処理対象決定処理は、省略されても良い。この場合には、図2のS60にて、全ての2端の組み合わせについて、処理順序を決定すれば良い。この場合において、例えば、スキャンパターンBのみが用いられることが想定される場合には、第1の探索処理に代えて、第2の探索処理が行われても良い。すなわち、第3、第4実施例で決定される配置位置は、2個の対象画像が重なる配置位置であっても重ならない配置位置であっても良く、一般的には、一方の対象画像のいずれかの端に沿う端部画像と他方の対象画像のいずれかの端に沿う端部画像とを対応付ける配置位置であれば良い。
(2)第2実施例において、図2のS35およびS40にて、第1スキャン画像I12の両端の余白量が基準未満であると判断された場合には、スキャンパターンAが用いられ、スキャンパターンBが用いられていない、と考えられる。この場合には、CPU410は、図2のS45、S50の第2スキャン画像I22の余白量判定処理を省略しても良い。そして、S55の処理対象決定処理では、CPU410は、全ての2端の組み合わせを第1の探索処理の処理対象であると決定し、全ての2端の組み合わせを第2の探索処理の処理対象でないと決定しても良い。
(3)第2実施例において、図2のS35およびS40にて、第1スキャン画像I12の両端の余白量が基準以上であると判断された場合には、スキャンパターンBが用いられ、スキャンパターンAが用いられていない、と考えられる。この場合には、CPU410は、図2のS45、S50の第2スキャン画像I22の余白量判定処理を省略しても良い。そして、S55の処理対象決定処理では、CPU410は、全ての2端の組み合わせを第2の探索処理の処理対象であると決定し、全ての2端の組み合わせを第1の探索処理の処理対象でないと決定しても良い。
(4)第3実施例にて算出される2個のヒストグラムの重複面積Sovは、2個のヒストグラムの類似度を示す特徴値の一例であり、これに限られない。2個のヒストグラムの類似度を示す特徴値は、例えば、2個のヒストグラムの複数個のピーク位置の一致度などの他の特徴であっても良い。また、第3実施例に算出される2個のヒストグラムのダイナミックレンジは、2個の端部画像TI1、TI2の複雑さを示す特徴値の一例であり、これに限られない。2個の端部画像TI1、TI2の複雑さを示す特徴値は、例えば、2個のヒストグラムの分散値や、2個の端部画像TI1、TI2のエッジ量などの他の特徴値であっても良い。
(5)第1実施例において、図2のS45、S50の処理は、省略されても良い。すなわち、第1スキャン画像I12の両端の余白量判定処理が実行され、第2スキャン画像I22の余白量推定処理が省略されても良い。この場合には、例えば、第1スキャン画像I12の左右の端のうちの一方の余白量のみが基準値未満である場合には、第1スキャン画像I12の左右の端のうちの余白量のみが基準値未満である端を含む2個の組み合わせを、第1の探索処理の処理対象であると決定し、残りの2個の組み合わせを、第1の探索処理の処理対象でないと決定すれば良い。また、第1スキャン画像I12の左右の両端の余白量が基準値未満である場合には、全ての組み合わせを、第1の探索処理の処理対象であると決定すれば良い。
(6)スキャンパターンBでは、折れ線VLで二つ折りにされた原稿10の両面を読み取ることによって、2個の原稿画像BIL、BIRをそれぞれ含む画像を表すスキャンデータが生成されている(図2のS15)。これに代えて、折れ線VLで切断されて物理的に2つに分離された原稿10を、2回に分けて読み取ることによって、2個の原稿画像BIL、BIRをそれぞれ含む画像を表すスキャンデータが生成されてもよい。
(7)上記実施例の余白量判定処理では、基本的には、スキャン画像の端と、原稿画像の端と、の間の領域が余白とされるが、原稿の端部(背景)が白であり、かつ、原稿台の色が白である場合には、原稿画像の端が判断できずに、スキャン画像の端と、原稿画像のオブジェクトの端と、の間が余白とされる可能性がある。この場合であっても、問題なく適切に配置済画像が生成される。具体的には、原稿の中央部(接続されるべき端)には、オブジェクトがあると想定されるので、スキャン画像の原稿の中央部に対応する端では、余白が正しく判断される。したがって、第1、第3実施例では、スキャン画像の両端のうち、原稿の中央部に対応する端では余白量が基準値未満となり、原稿の端部に対応する端では余白量が基準値以上となる。このために、結果的に原稿の中央部に対応する端が、配置済画像の中央部に位置するように、配置済画像が生成されることになる。また、第2および第4実施例では、必ず、原稿の中央部に対応する端を含む2端の組み合わせも、原稿の端部に対応する端を含む2端の組み合わせも探索処理の対象とされることになる。したがって、第1〜第4実施例のいずれでも、問題なく適切に配置済画像が生成される。
(8)上記実施例では、2個のスキャン画像I12、I22内の2個の原稿画像が横方向に並んで配置される配置済画像を表す配置済画像データが生成される。これに代えて、一の原稿画像と、他の原稿画像と、が縦方向に並んで配置される配置済画像を表す配置済画像データが生成されても良い。この場合には、例えば、一の原稿画像を含むスキャン画像の下端の余白量と、他の原稿画像を含むスキャン画像の上端の余白量と、がそれぞれ基準以上であるか否かが判断される。そして、図2のS55の処理対象決定処理では、当該判断結果に基づいて、2個の原稿画像の下端と上端との組み合わせについて、探索処理の処理対象とするか否かが決定されれば良い。また、図2のS60の配置順序決定処理では、2個の原稿画像の下端と上端との組み合わせについて、処理順序が決定されれば良い。
(9)上記実施例においてサーバ400のCPU410によって実行される処理(例えば、図2のS25〜S70の処理)は、例えば、複合機200のCPU210によって実行されても良い。この場合には、サーバ400は不要であり、複合機200が単体で図2の処理を実行すればよい。また、サーバ400のCPU410によって実行される処理は、複合機200と接続されたパーソナルコンピュータ500(図1)のCPU(図示省略)によって実行されても良い。例えば、パーソナルコンピュータ500のCPUは、パーソナルコンピュータ500にインストールされたスキャナドライバプログラムを実行することによって、これらの処理を実行しても良い。また、サーバ400は、本実施例のように1つの計算機で構成されても良く、互いに通信可能な複数個の計算機を含む計算システムによって構成されていても良い。
(10)上記実施例では、サーバ400は、図2のS25にて、スキャンデータを画像ファイルの形式で取得し、図2のS75にて、配置済画像データを画像ファイルの形式で出力(送信)している。これに代えて、例えば、上記変形例のように、複合機200のCPU210がS25〜S45の処理を実行する場合には、CPU210は、スキャナ部250を用いて生成されたスキャンデータを画像ファイルに変換することなく、そのまま取得しても良い。また、CPU210は、配置済画像データを画像ファイルに変換することなく、そのまま配置済画像データを用いて用紙に印刷することによって、配置済画像データを出力しても良い。
(11)上記実施例では、2個の画像データを用いて、2個の原稿画像が配置された配置済画像を表す配置済像データが生成されている。これに限らず、任意の個数の画像データを用いて、1個の配置済画像が生成されても良い。例えば、4個の画像データを用いて、4個の原稿画像が配置された配置済画像を表す配置済画像データが生成されてもよい。
(12)上記実施例では、配置済画像データの生成に用いられる2個の画像データは、複合機200のスキャナ部250によって生成される。これに限らず、光学的に読み取られた画像を表す種々の画像データを採用可能である。例えば、デジタルカメラによる撮影によって二つ折りにされた原稿10の両面がそれぞれ光学的に読み取られることによって、2個の画像データが生成されても良い。あるいは、デジタルカメラによる撮影によって、原稿10の左領域10Lと部分領域CARと、該原稿10の右領域10Rと部分領域CALと、がそれぞれ光学的に読み取られることによって、2個の画像データが生成されても良い。また、これらの画像データは、読取装置(スキャナやデジタル)によって生成された画像データに限らず、描画作成や文書作成などのアプリケーションプログラムを用いて作成された画像データであっても良い。
(13)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。