(57)【特許請求の範囲】
【請求項１】
読取対象の原稿が載置される四角形状の原稿台であって、当該原稿台の四辺の内、一つの特定の辺が、原稿の辺を合わせるべき位置として定められた原稿台と、
前記原稿台に沿って搬送される読取ユニットと、
を備え、
前記読取ユニットに、前記原稿台に載置された原稿を読み取らせることにより、前記原稿台に載置された原稿の読取画像を表す画像データを生成する画像読取装置であって、
前記読取ユニットが読取可能な前記原稿台の領域である読取可能領域の内、前記特定の辺を構成する前記原稿台の端縁から前記原稿台の中央より手前の所定位置までの領域である一部領域において前記読取ユニットを搬送し、前記一部領域において前記読取ユニットに読取動作を実行させる一部プレスキャン手段と、
前記一部プレスキャン手段の動作により得られた前記読取ユニットの読取結果である画像データを、エッジ画像を表すエッジ画像データに変換し、当該エッジ画像データに基づき、前記原稿台に載置された原稿が四角形状であるとの仮定の下で、当該原稿が有する四つ角の内、二つの各角に対応する前記原稿台上の位置座標を推定する角推定手段と、
前記角推定手段の推定結果に基づき、前記原稿台に載置された原稿の当該原稿台における載置領域を推定する原稿推定手段と、
前記原稿推定手段により推定された前記原稿の載置領域に対応する前記原稿台上の領域を、前記読取ユニットによる読取領域に決定する読取領域決定手段と、
前記読取対象領域決定手段により決定された前記読取領域において、前記読取ユニットを搬送し、前記読取ユニットに読取動作を実行させることにより、前記原稿台に載置された原稿の読取画像を表す画像データを生成する本スキャン手段と、
を備え、
前記原稿台においては、四つ角の内、前記特定の辺の端点に該当する一つの特定の角が、原稿の角を合わせるべき位置として定められており、
前記角推定手段は、前記エッジ画像データが示すエッジ点群の中から、前記原稿台に載置された原稿の三辺に対応するエッジ点群として、前記特定の辺に該当する前記原稿台の端縁に沿って配置されるべき前記原稿の一辺、及び、この辺の両端から延びる二つの辺の夫々に対応するエッジ点群を抽出し、当該抽出した各辺に対応するエッジ点群を直線近似して得られる三本の直線が交わる二つの交点の各位置座標を、前記原稿台に載置された原稿の角に対応する位置座標であると推定し、
前記原稿推定手段は、前記原稿台に載置された原稿の前記載置領域を推定する際、前記角推定手段により推定された二つの角の各位置座標間の長さから前記原稿台に載置された原稿の一辺の長さを推定すると共に、前記原稿台に載置された原稿が定型用紙であるとの仮定の下で、前記推定した辺の長さから、この辺に直交する原稿の辺の長さを推定することにより、前記原稿台に載置された原稿のサイズを推定する
ことを特徴とする画像読取装置。
【請求項２】
前記角推定手段は、前記エッジ画像データが示すエッジ点群の中から、前記原稿台に載置された原稿の三辺に対応するエッジ点群として、前記特定の辺に該当する前記原稿台の第一辺に沿って配置されるべき前記原稿の第一辺に対応するエッジ点群、及び、前記原稿台における前記特定の角から延びる辺であって前記第一辺とは垂直な第二辺に沿って配置されるべき前記原稿の第二辺に対応するエッジ点群、及び、前記原稿の第二辺に平行な前記原稿の第三辺に対応するエッジ点群を抽出する構成にされていることを特徴とする請求項１記載の画像読取装置。
【請求項３】
前記原稿推定手段は、前記原稿台に載置された原稿の前記載置領域を推定する際、前記角推定手段の推定結果に基づき、前記原稿台に載置された原稿のサイズを推定すると共に、前記原稿の各辺に対応するエッジ点群を直線近似して得られる三本の直線の少なくとも一つの傾きに基づき、前記原稿台に載置された原稿の前記原稿台に対する傾きを推定する構成にされ、
前記本スキャン手段は、前記原稿推定手段により推定された傾きの情報に基づき、前記読取ユニットの読取結果である画像データを傾き補正して、前記原稿台に載置された原稿の読取画像を表す画像データを生成することを特徴とする請求項１又は請求項２記載の画像読取装置。
【請求項４】
前記原稿推定手段は、前記原稿台に載置された原稿の前記載置領域を推定する際、前記角推定手段により推定された二つの角の各位置座標から、原稿の傾きを推定する構成にされていることを特徴とする請求項１又は請求項２記載の画像読取装置。
【請求項５】
前記原稿台の読取可能領域全体において前記読取ユニットを搬送し、前記原稿台の前記読取可能領域全体において前記読取ユニットに読取動作を実行させる全体プレスキャン手段と、
前記全体プレスキャン手段の動作により得られた前記読取ユニットの読取結果に基づき、前記原稿台に載置された原稿の当該原稿台における載置領域を推定する副原稿推定手段と、
外部からの指令に従って、前記一部プレスキャン手段及び前記全体プレスキャン手段のいずれか一方を作動させる切替手段と、
を備え、
前記読取領域決定手段は、前記全体プレスキャン手段が作動した場合には、前記副原稿推定手段により推定された前記原稿の載置領域に対応する前記原稿台上の領域を、前記読取ユニットによる読取領域に決定すること
を特徴とする請求項１〜請求項４のいずれかに記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取ユニットに、原稿台に載置された原稿を読み取らせることにより、原稿台に載置された原稿の読取画像を表す画像データを生成する画像読取装置に関する。
【背景技術】
【０００２】
従来、画像読取装置としては、読取ガラス下に読取ユニットを備え、読取ガラス下で読取ユニットを搬送しつつ、その搬送時に読取ユニットに読取動作を実行させることにより、読取ガラス上に配置された原稿を読み取り、原稿の読取画像を表す画像データを生成する画像読取装置が知られている。
【０００３】
画像読取装置がコピー機能を有するものである場合、上記生成された画像データは、例えば、印刷処理に供される。即ち、読取画像を表す画像データが印刷処理に供されることで、記録紙には、読み取られた原稿のコピー画像が印刷される。このような、コピー機能を有する画像読取装置としては、コピー機能の他、プリンタ機能やファックス機能などを有したディジタル複合機が知られている。
【０００４】
また、画像読取装置としては、プレスキャンにより、読取ガラス上における原稿が載置された領域を把握し、本スキャン時には、読取領域を、読取ガラス下全域ではなく、原稿が載置された領域に限定し、この読取領域において、読取ユニットを搬送し、原稿を読み取るものが知られている。
【０００５】
この他、画像読取装置としては、読取ユニットによる原稿の読取結果に基づき、原稿のサイズや傾きを検出するものが知られている（特許文献１，２参照）。また、この画像読取装置としては、原稿サイズや傾きの検出結果を、本スキャン時の読取領域の自動設定動作や、コピー時の変倍率の自動設定動作・傾き補正動作に用いるものが知られている。
【０００６】
例えば、検出した原稿サイズと記録紙サイズとから、原稿サイズと記録紙サイズの比に合わせて、変倍率を設定すると共に、原稿の傾きから回転量を設定して、読取結果としての画像データを回転処理して傾き補正すると共に、設定した変倍率に合わせて拡大縮小し、読み取った原稿の画像を、記録紙に、その記録紙サイズに合わせた倍率で印刷するといった具合である。
【特許文献１】特開平１１−２５２３５１号公報
【特許文献２】特開２００７−０８２０４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の画像読取装置では、次のような問題があった。例えば、原稿全体を読み取り、その全体像から原稿のサイズ・傾き・載置領域等を求める手法では、読取動作前に、どのようなサイズの原稿がどういった状態で載置されているか不明であるため、読取ガラス下の読取可能領域全体に渡って読取ユニットを搬送し、読取動作を実行しなければならず、原稿の読取動作に時間がかかるといった問題があった。即ち、原稿の存在しない領域に対して無駄に読取動作を実行しなければならないといった問題があった。
【０００８】
また、特許文献２には、原稿の一部領域の読取結果に基づき、原稿サイズを推定する手法が開示されているが、この手法は、読取対象の原稿を搬送して、原稿通過前後の読取データの変化から原稿範囲及び原稿範囲外を決定し、原稿サイズを推定するものであり、原稿を搬送することを前提とした技術であるため、この技術を、原稿を読取ガラス上に静止させた状態で読取ユニットを搬送して読み取る画像読取装置に転用しても、上記の問題を解決することは、できなかった。
【０００９】
即ち、この技術を、原稿を読取ガラス上に静止させた状態で読取ユニットを搬送して読み取る画像読取装置に転用する場合には、読取ガラス上に原稿が載置されていない状態の画像を読み取る必要があり、原稿の存在しない領域に対して無駄に読取動作を実行しなければならないといった問題があった。
【００１０】
本発明は、こうした問題に鑑みなされたものであり、原稿台に載置された原稿を、読取ユニットを搬送して読み取る画像読取装置において、効率的且つ正確に、原稿の載置領域等を推定可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
かかる目的を達成するためになされた本発明は、読取対象の原稿が載置される原稿台と、原稿台に沿って搬送される読取ユニットと、を備え、読取ユニットに、原稿台に載置された原稿を読み取らせることにより、原稿台に載置された原稿の読取画像を表す画像データを生成する画像読取装置であって、読取ユニットが読取可能な原稿台の領域である読取可能領域の内、一部領域において読取ユニットを搬送し、当該一部領域において読取ユニットに読取動作を実行させる一部プレスキャン手段と、一部プレスキャン手段の動作により得られた読取ユニットの読取結果としての画像データを、エッジ画像を表すエッジ画像データに変換し、このエッジ画像データに基づき、原稿台に載置された原稿が四角形であるとの仮定の下で、当該原稿が有する四つ角の内、二つの各角に対応する原稿台上の位置座標を推定する角推定手段と、角推定手段の推定結果に基づき、原稿台に載置された原稿の当該原稿台における載置領域を推定する原稿推定手段と、を備えるものである。
【００１２】
本発明の画像読取装置によれば、従来のように読取可能領域全体をプレスキャンして、その読取結果である画像データに基づき、原稿の載置領域を推定するのではなく、読取可能領域の一部をプレスキャンして、その読取結果に基づき、原稿の載置領域を推定する。従って、この発明によれば、読取可能領域全体をプレスキャンする手法よりも高速にプレスキャン動作を終了することができて、効率的に原稿の載置領域を推定することができる。
【００１３】
但し、読取可能領域の全体をプレスキャンせずに、読取可能領域の一部のみをプレスキャンする場合には、原稿の全体像をプレスキャンにより読み取ることができない。このため、本発明では、原稿台に載置されている原稿が四角形状の原稿であると仮定して、原稿台に載置された原稿の二角の各位置座標を推定し、この推定結果に基づいて、原稿の載置領域を推定するようにしている。
【００１４】
読取対象の原稿は、多くの場合、四角形状で縦横比が一定の定型用紙であり、定型用紙外の原稿が読取対象となるケースは、少ない。更に、読取対象の原稿が、定型用紙外の原稿である場合でも、読取対象の原稿が、定型用紙の形状と大きく相違する場合も、まれである。
【００１５】
一方、読取対象の原稿については、原稿台に載せる過程で角が折れてしまう場合などがあるが、本発明のように読取対象の全体像を読み取ることができない状態で、読取対象の原稿が四角形状ではない場合も考慮して、原稿の状態を推定しようとすると、折れた角に惑わされて正確な原稿の大きさや傾き等を推定することができなくなる。
【００１６】
そこで、本発明では、原稿台に載置されている原稿が四角形状の原稿であると仮定して、角位置を推定し、この推定結果に基づき、原稿の載置領域を推定するようにしている。このように、原稿台に載置されている原稿が四角形状の原稿であるとの仮定の下で、原稿の角位置を推定するようにすれば、原稿台に載置されている原稿が実際に四角形状のものである限り、その角が折れている場合でも、推定した角位置の情報から、原稿の傾きや原稿の一辺の長さを導出することができ、原稿台におけるプレスキャン領域外の領域に載置された部分を含む原稿の全体像を正確に推定することができる。
【００１７】
従って、この発明によれば、原稿台に載置された原稿を、読取ユニットを搬送して読み取る画像読取装置において、効率的且つ正確に、原稿の載置領域を推定することができる。
【００１８】
具体的に、原稿推定手段は、原稿台に載置された原稿の載置領域を推定する際、角推定手段により推定された二つの角の各位置座標間の長さから原稿台に載置された原稿の一辺の長さを推定すると共に、原稿台に載置された原稿が定型用紙であるとの仮定の下で、推定した辺の長さから、この辺に直交する原稿の辺の長さを推定することにより、原稿台に載置された原稿のサイズを推定する構成にすることができる。
【００１９】
このように原稿推定手段を構成すれば、原稿台に載置されている原稿が定型用紙である限り、一部領域のプレスキャンで正確に、原稿の角位置及び原稿サイズを推定することができ、これらの情報から、原稿の載置領域についても、正確に導出することができる。
【００２０】
勿論、この発明では、原稿台に載置されている原稿が定型用紙外である場合、その原稿の載置領域の推定動作について、確度が低くなるが、一般的に読取対象の原稿は、定型用紙であるため、誤推定による影響は少ない。従って、この発明によれば、効率的且つ正確に、原稿の載置領域を推定することができる。
【００２１】
また、角推定手段は、エッジ画像データが示すエッジ点群の中から、原稿台に載置された原稿の三辺に対応するエッジ点群を抽出し、当該抽出した各辺に対応するエッジ点群を直線近似して得られる三本の直線が交わる二つの交点の各位置座標を、原稿台に載置された原稿の角に対応する位置座標であると推定する構成にすることができる。
【００２２】
このように角推定手段を構成すれば、原稿台に載置されている原稿の角が折れている場合等にも、原稿の角が折れていない場合と同様に、原稿の角位置を正確に推定することができ、その結果として、正確に、原稿のサイズや傾き等を推定することができる。
【００２３】
また、原稿台の読取可能領域の内、一部領域について読取動作を実行して得られる画像データに基づき、原稿の状態を正確に推定するためには、その一部領域において原稿の像が多く写っているのが好ましい。
【００２４】
従って、上述の画像読取装置においては、原稿台を原稿の形状に合わせて四角形状とし、原稿台の四辺の内、一つの特定の辺を、原稿の辺を合わせるべき位置として定め、この特定の辺を基準にして上記一部領域を定めるのが好ましい。例えば、原稿台の四つ角の内、上記特定の辺の端点に該当する一つの特定の角を、原稿の角を合わせるべき位置として定め、この特定の角を基準にして上記一部領域を定めるのが好ましい。
【００２５】
更に言えば、一部プレスキャン手段は、読取ユニットが読取可能な原稿台の領域である読取可能領域の内、上記特定の辺を構成する原稿台の端縁（原稿台の第一辺）から、原稿台内側に所定距離離れた位置までの領域を、上記一部領域として、当該領域において、読取ユニットを搬送し読取ユニットに読取動作を実行させる構成にされるとよい。例えば、上記一部領域は、読取ユニットが読取可能な原稿台の領域である読取可能領域の内、上記特定の辺を構成する原稿台の端縁から、原稿台の中央より手前の所定位置までの領域とすることができる。
【００２６】
また、角推定手段は、エッジ画像データが示すエッジ点群の中から、原稿台に載置された原稿の三辺に対応するエッジ点群として、原稿台の上記第一辺に沿って配置されるべき原稿の第一辺に対応するエッジ点群、及び、原稿台における上記特定の角から延びる辺であって上記第一辺とは垂直な第二辺に沿って配置されるべき原稿の第二辺に対応するエッジ点群、及び、原稿の上記第二辺に平行な原稿の第三辺に対応するエッジ点群を抽出する構成にすることができる。
【００２７】
このように構成された画像読取装置においては、原稿の二角が写るように上記一部領域を定めて、プレスキャン動作を実現することができるので、角推定手段にて正確に角を推定することができ、結果として、正確に、原稿の載置領域を推定することができる。
【００２８】
また、画像読取装置は、原稿推定手段の推定結果を用いて、次のように動作する構成にすることができる。
【００２９】
即ち、画像読取装置は、原稿推定手段により推定された原稿の載置領域に対応する原稿台上の領域を、読取ユニットによる読取領域に決定し、決定した読取領域において、読取ユニットを搬送し、当該読取領域において読取ユニットに読取動作を実行させることにより、原稿台に載置された原稿の読取画像を表す画像データを生成する構成にすることができる。
【００３０】
このように構成された画像読取装置によれば、効率的なプレスキャン動作により、迅速に本スキャンに移行することができると共に、本スキャン時には、原稿の載置領域に対応する読取領域のみについて読取動作を実行するため、迅速に原稿台に載置された原稿に対応する画像データを生成することができる。即ち、本発明によれば、高速に、原稿台に載置された原稿の読取結果を表す画像データを生成することができる。
【００３１】
また、原稿推定手段は、原稿台に載置された原稿の載置領域を推定する際、角推定手段の推定結果に基づき、原稿台に載置された原稿のサイズを推定すると共に、原稿の各辺に対応するエッジ点群を直線近似して得られる三本の直線の少なくとも一つの傾きに基づき、原稿台に載置された原稿の原稿台に対する傾きを推定する構成にすることができる。この他、当該画像読取装置は、原稿推定手段により推定された傾きの情報に基づき、読取ユニットの読取結果である画像データを傾き補正して、原稿台に載置された原稿の読取画像を表す画像データを生成する構成にすることができる。
【００３２】
このように構成された画像読取装置によれば、効率的なプレスキャン動作により、迅速に本スキャンに移行することができると共に、原稿が傾いて配置されている場合においても、本スキャン時には、読み取った画像データを傾き補正して、まっすぐで綺麗な画像データを生成することができる。
【００３３】
この他、原稿推定手段は、原稿台に載置された原稿の載置領域を推定する際、角推定手段により推定された二つの角の各位置座標から、原稿の傾きを推定する構成にされてもよい。
また、読取可能領域の一部領域のみをプレスキャンして原稿の載置領域を推定する手法では、読取可能領域の全体をプレスキャンして原稿の載置領域を推定する手法よりも、その推定動作の正確性が劣るため、上述の画像読取装置は、必要に応じて、読取可能領域全体をプレスキャンして原稿の載置領域を推定できる構成にされると一層好ましい。
【００３４】
即ち、上述の画像読取装置は、原稿台の読取可能領域全体において読取ユニットを搬送し、原稿台の読取可能領域全体において読取ユニットに読取動作を実行させる全体プレスキャン手段と、全体プレスキャン手段の動作により得られた読取ユニットの読取結果に基づき、原稿台に載置された原稿の原稿台における載置領域を推定する副原稿推定手段と、外部からの指令に従って、一部プレスキャン手段及び全体プレスキャン手段のいずれか一方を作動させる切替手段と、を備える構成にされると一層好ましい。このような構成の画像読取装置において、読取領域決定手段は、全体プレスキャン手段が作動した場合には、副原稿推定手段により推定された原稿の載置領域に対応する原稿台上の領域を、読取ユニットによる読取領域に決定する構成にすることができる。
【００３５】
このように構成された画像読取装置によれば、必要に応じて読取可能領域全体をプレスキャンして、原稿の載置領域を推定することができるので、ユーザの要求に応じて適切なモードで動作し、原稿の読取画像を表す画像データを生成することができる。
【発明を実施するための最良の形態】
【００３６】
以下に本発明の実施例について、図面と共に説明する。
図１（ａ）は、本実施例のディジタル複合機１の構成を表すブロック図である。図１（ａ）に示すように、本実施例のディジタル複合機１は、画像読取部１０、読取制御部２０、印刷部３０、印刷制御部４０、表示操作部５０、通信部６０、ＣＰＵ７０、ＲＡＭ８０及びフラッシュメモリ９０を備え、フラッシュメモリ９０に記録されたプログラムに基づきＣＰＵ７０にて各種処理を実行し、装置全体を統括制御する構成にされている。
【００３７】
具体的に、画像読取部１０は、図１（ｂ）（ｃ）に示す構成にされている。図１（ｂ）（ｃ）は、画像読取部１０の構成を示した説明図である。画像読取部１０は、読取対象の原稿Ｐが載置される透明な板状の読取ガラス１１が筐体１３に支持された構成にされており、筐体１３内の読取ガラス１１下に、読取ガラス１１に写る画像を主走査方向において光学的に読み取る読取ユニット１５と、読取ユニット１５を副走査方向に搬送する搬送機構１６と、搬送機構１６を駆動するモータ１７とを備える。
【００３８】
この画像読取部１０は、読取制御部２０から入力される制御信号に従って、モータ１７の回転力により搬送機構１６を駆動し、これにより読取ユニット１５を読取ガラス１１下で副走査方向（図１（ｂ）（ｃ）に示す点線矢印方向）に搬送すると共に、搬送時において、読取ユニット１５に読取動作を実行させる。
【００３９】
尚、読取ユニット１５は、読取制御部２０に制御されて、副走査方向への移動と共に、読取ガラス１１に写る画像をライン毎に読み取り、その読取画像を表すライン画像信号を出力するコンタクトイメージセンサ（ＣＩＳ）である。この読取ユニット１５から出力されるライン画像信号は、図示しないＡ／Ｄ変換器にてディジタルデータ（ライン画像データ）に変換され、読取制御部２０に入力される。
【００４０】
また、画像読取部１０には、周知のスキャナと同様、読取ガラス１１を被覆可能な蓋が開閉自在に設けられており（図示せず）、読取ユニット１５による読取動作の実行時には、ユーザによる手動操作により、読取ガラス１１に載置された原稿の上にかぶせられるようにして蓋が閉められる。尚、読取ガラス１１と対向する蓋の内側は、原稿の読取画像に蓋の画像が写らないよう白色部材で構成されている。
【００４１】
一方、読取制御部２０は、ＣＰＵ７０からの指令に従って読取制御処理を実行し、当該読取制御処理にて、読取ユニット１５の副走査方向への移動を制御すると共に、読取ユニット１５の読取動作を制御する。
【００４２】
この制御により、読取制御部２０は、読取ユニット１５を読取ガラス１１下で副走査方向に搬送しつつ、ＣＰＵ７０から指定された読取ガラス１１の読取領域に写る画像を、読取ユニット１５に読み取らせ、読取ガラスの読取領域に写る画像を表す画像データを、ＲＡＭ８０に記録する。このような動作により、ＲＡＭ８０には、読取ガラス１１の読取領域に載置された原稿Ｐの読取画像を表す画像データが記録される。
【００４３】
尚、読取制御部２０は、画像読取部１０から入力される各ライン画像データを、一旦内蔵のバッファに蓄積し、各ライン画像データに対してシェーディング補正等の画像処理を実行した後、各ライン画像データを、ＲＡＭ８０に記録する。
【００４４】
この他、印刷部３０は、印刷制御部４０から入力される制御信号に従い、トレイ（図示せず）に載置された記録紙を、記録位置に搬送し、インクジェット方式やレーザプリンタ方式等の周知の記録方式で、記録紙に、制御信号に対応した画像を形成するものである。
【００４５】
また、印刷制御部４０は、印刷部３０を制御して記録紙に画像を形成するものであり、ＣＰＵ７０からの指令に従って、ＣＰＵ７０から指定された印刷対象データに基づく画像を、印刷部３０を通じて、記録紙に印刷する。
【００４６】
また、通信部６０は、外部機器と通信するためのインタフェース群からなり、ＵＳＢインタフェース、ＬＡＮインタフェース、ＦＡＸモデム等から構成されている。即ち、複合機１は、通信部６０が備えるＦＡＸモデムを通じて外部のＦＡＸ装置とＦＡＸ通信可能な構成にされ、ＵＳＢインタフェース又はＬＡＮインタフェースを通じて外部のパーソナルコンピュータと通信可能な構成にされている。
【００４７】
この他、表示操作部５０は、情報表示用の液晶ディスプレイ（図示せず）と、各種操作キーとを備え、ＣＰＵ７０に制御されて、液晶ディスプレイに、ユーザ向けの情報を表示すると共に、操作キーを通じて入力されたユーザからの指令を、ＣＰＵ７０に入力する。
【００４８】
また、ＣＰＵ７０は、プログラムの実行により、操作キーを通じて入力される指令や通信部６０を通じて外部のパーソナルコンピュータ等から入力される指令に従い、コピー機能、ＦＡＸ機能、スキャナ機能、及び、プリンタ機能等を実現する。
【００４９】
例えば、ＣＰＵ７０は、表示操作部５０に設けられた操作キーを通じてユーザからコピー指令が入力されると、複写制御処理（図３参照）を実行して装置内各部を制御し、読取ガラス１１上に載置された原稿Ｐの読取画像を、記録紙に印刷する。詳細には、読取ユニット１５による読取結果に基づいて読取ガラス１１上に載置された原稿Ｐのサイズを推定し、推定した原稿サイズと記録紙サイズとから変倍率を設定して、原稿Ｐの読取画像を、記録紙サイズに適合する大きさに拡大又は縮小し、これを、印刷部３０を通じて記録紙に印刷する。
【００５０】
以下、この複写制御処理の内容について具体的に説明するが、それに先駆けては、図２を用いて本実施例の画像読取部１０の特徴について説明する。
図２は、読取ガラス１１の読取可能領域Ｒ０を示した説明図である。当該複合機１においては、一面が開口された長方体状の筐体１３の当該開口部において、長方形状のガラス板である読取ガラス１１が当該開口部を閉塞するように設けられており、読取ガラス１１の周囲が筐体１３により支持された構成にされている。
【００５１】
この読取ガラス１１は、筐体１３の上面よりも若干筐体１３の下側に設けられており、筐体１３から露出する読取ガラス１１の領域１１ａ（以下、「原稿台」と表現する。）と筐体１３との境界ＢＤには、原稿Ｐを突き当て可能に段差が形成されている（以下、筐体１３の読取ガラス１１より上方に位置する部位（上記段差を形成する部位）１３ａを「フレーム」と表現する。）
また、画像読取部１０においては、読取ユニット１５のライン幅と、原稿台１１ａの大きさとの関係から、四角形状の原稿台１１ａの全領域よりも若干狭い四角形状の領域Ｒ０が、読取ユニット１５により原稿を読取可能な読取可能領域Ｒ０に定められている。具体的に、読取可能領域Ｒ０は、図２において点線で示すように、フレーム１３ａと読取ガラス１１との境界ＢＤから微小量（本実施例では３ｍｍ）離れた位置に外周を有した領域となっている。
【００５２】
また、この画像読取部１０においては、フレーム１３ａの左下部分に、原稿Ｐの角を突き当てるように指示するマークＭＫが記されている。尚、本実施例では、マークＭＫが付された原稿台１１ａの角を、「左下角」と定義して、この左下角より、主走査方向に離れた地点に位置する原稿台１１ａの角を「右下角」と定義し、左下角より、副走査方向に離れた地点に位置する原稿台１１ａの角を「左上角」と定義する。
【００５３】
即ち、複合機１においては、原稿台１１ａの左下角（換言すれば、フレーム１３ａの内側左下角）が、原稿Ｐの角を合わせるべき位置として定められており、複合機１は、ユーザが概ね、このマークＭＫに合わせて原稿Ｐを載置しているとの仮定の下で、原稿サイズの推定等を行い、原稿のコピー動作を実現する。
【００５４】
この他、本実施例の複合機１においては、このマークＭＫが付されたフレーム１３ａの内側左下角に対応する読取可能領域Ｒ０の左下角を原点、主走査方向をＸ軸、副走査方向をＹ軸としたＸＹ座標系（図２（ｂ）参照）が導入されており、ＣＰＵ７０は、このＸＹ座標系を用いて図３に示す複写制御処理を実行する。
【００５５】
続いて、ＣＰＵ７０が実行する複写制御処理について説明する。図３は、操作キーを通じてコピー指令が入力されると、ＣＰＵ７０が実行する複写制御処理を表すフローチャートである。
【００５６】
複写制御処理を開始すると、ＣＰＵ７０は、操作キーを通じて入力されたコピー指令が「縁無し」コピー指令であるか否かを判断し（Ｓ１１０）、「縁無し」コピー指令であると判断すると（Ｓ１１０でＹｅｓ）、Ｓ１２０に移行して、図４（ａ）に示す第一複写処理を実行する。
【００５７】
詳しくは後述するが、第一複写処理では、読取可能領域Ｒ０全体に渡ってプレスキャン動作を画像読取部１０に実行させ、プレスキャン結果として、読取可能領域Ｒ０全体の読取結果である画像データを画像読取部１０から取得し、この画像データに基づいて原稿サイズや原稿の傾き角を推定して、変倍率及び傾き補正量を設定し、その後、本スキャン動作を画像読取部１０に実行させて、これにより得られる画像データを、拡大・縮小・回転処理し、印刷部３０を通じて、記録紙に「縁なし」で原稿のコピー画像を印刷する。ＣＰＵ７０は、この第一複写処理を終了すると、複写制御処理を終了する。
【００５８】
一方、操作キーを通じて入力されたコピー指令が「縁無し」コピー指令ではないと判断すると（Ｓ１１０でＮｏ）、ＣＰＵ７０は、当該コピー指令が「自動変倍／傾き補正」コピー指令であるか否かを判断し（Ｓ１３０）、入力されたコピー指令が「自動変倍／傾き補正」コピー指令であると判断すると（Ｓ１３０でＹｅｓ）、図４（ｂ）に示す第二複写処理を実行する（Ｓ１４０）。
【００５９】
詳しくは後述するが、第二複写処理では、読取可能領域Ｒ０の一部領域においてプレスキャン動作を画像読取部１０に実行させ、プレスキャン結果として、当該一部領域に載置された原稿の読取結果である画像データを画像読取部１０から取得し、この画像データに基づいて原稿サイズや原稿の傾き角を推定して、変倍率及び傾き補正量を設定し、その後、本スキャン動作を画像読取部１０に実行させ、これにより得られる画像データを、拡大・縮小・回転処理し、印刷部３０を通じて、記録紙に、傾き補正した原稿のコピー画像を、記録紙サイズに対応する大きさで印刷する。ＣＰＵ７０は、この第二複写処理を終了すると、複写制御処理を終了する。
【００６０】
また、操作キーを通じて入力されたコピー指令が「自動変倍／傾き補正」コピー指令ではないと判断すると（Ｓ１３０でＮｏ）、ＣＰＵ７０は、入力されたコピー指令が「ノーマル」コピー指令であるか否かを判断する（Ｓ１５０）。そして、「ノーマル」コピー指令であると判断すると（Ｓ１５０でＹｅｓ）、Ｓ１６０に移行し、「ノーマル」コピー指令ではないと判断すると（Ｓ１５０でＮｏ）、入力されたコピー指令に対応した処理を実行した後（Ｓ１５５）、当該複写制御処理を終了する。
【００６１】
また、Ｓ１６０に移行すると、ＣＰＵ７０は、印刷制御部４０を通じて、印刷部３０に給紙動作を実行させると共に、給紙動作の対象となった記録紙のサイズを検出する（Ｓ１６５）。尚、記録紙のサイズは、例えば、記録紙の搬送路に設けられたセンサを用いて周知の手法で検出することができる。
【００６２】
また、この処理を終えると、ＣＰＵ７０は、Ｓ１６５での検出結果に基づき、読取ガラス１１上において、記録紙サイズと同サイズの原稿が正しく規定の位置に載置されていると仮定して、原稿読取開始位置を読取可能領域Ｒ０の下端（Ｙ＝０）に設定し、原稿読取終了位置を、原稿の上端に対応する位置に設定する（Ｓ１７０）。このようにして、上記原稿読取開始位置から原稿読取終了位置までを読取領域に設定する。
【００６３】
その後、ＣＰＵ７０は、読取制御部２０を通じて画像読取部１０を制御し、画像読取部１０に、読取ユニット１５を原稿読取開始位置から原稿読取終了位置まで副走査方向に搬送させると共に、当該搬送中にはライン毎の読取動作を読取ユニット１５に実行させて、読取ガラス１１上の読取領域に写る画像を、読取ユニット１５に読み取らせ、当該読取領域の読取結果を表す画像データが、ＲＡＭ８０に記録されるようにする（Ｓ１８０）。
【００６４】
また、この処理を終えると、ＣＰＵ７０は、ＲＡＭ８０に記録された上記読取結果を表す画像データを、印刷対象データに設定して、当該印刷対象データについての印刷処理を実行する（Ｓ１９０）。即ち、印刷制御部４０を通じて、印刷部３０に印刷対象データに基づく画像を、給紙した記録紙に印刷させる。このようにして、原稿のコピー画像を、拡大・縮小や傾き補正無しで記録紙に印刷する。その後、当該複写制御処理を終了する。
【００６５】
続いて、ＣＰＵ７０が、Ｓ１２０で実行する第一複写処理について説明する。図４（ａ）は、ＣＰＵ７０が実行する第一複写処理を表すフローチャートである。
第一複写処理を開始すると、ＣＰＵ７０は、原稿読取開始位置を、読取可能領域Ｒ０の下端（Ｙ＝０）に設定し、原稿読取終了位置を、読取可能領域Ｒ０の上端（Ｙ＝ＹＭＡＸ）に設定することにより、読取可能領域Ｒ０全域を読取領域に設定し、読取制御部２０を通じて、画像読取部１０に、プレスキャン動作を実行させる（Ｓ２１０：全体プレスキャン処理）。
【００６６】
尚、画像読取部１０は、プレスキャン動作として、設定された読取領域の端から端まで、プレスキャン用の解像度に対応する速度で、読取ユニット１５を副走査方向に搬送し、その読取領域の画像を読取ユニット１５に読み取らせ、プレスキャン結果として、低解像度の画像データ（以下、「プレスキャン画像データ」という。）を、読取制御部２０を通じて、ＲＡＭ８０に記録する動作を実行する。
【００６７】
Ｓ２１０での処理を終えると、ＣＰＵ７０は、ＲＡＭ８０に記録されたプレスキャン画像データに対してエッジ検出処理を実行し、この画像データに対応するエッジ画像データを生成する（Ｓ２１５）。即ち、ＲＡＭ８０に記録されたプレスキャン画像データを、エッジ検出用の画像フィルタ（周知の微分フィルタ）に通して、この画像データに対応するエッジ画像を表すエッジ画像データを生成する。
【００６８】
また、この処理を終えると、ＣＰＵ７０は、生成したエッジ画像データを解析して、原稿台１１ａに載置された原稿のサイズ（縦幅及び横幅）、及び、原稿の傾き角θ、及び、原稿台１１ａにおける原稿の載置領域を推定する（Ｓ２２０）。但し、ここでは、Ｘ軸に対して原稿の下辺がなす角度を、原稿の傾き角θ（図９参照）とする。
【００６９】
また、Ｓ２２０での処理を終えると、ＣＰＵ７０は、印刷制御部４０を通じて、印刷部３０に給紙動作を実行させると共に（Ｓ２３０）、給紙動作の対象となった記録紙のサイズを検出する（Ｓ２３５）。更に、Ｓ２２０で推定した原稿サイズ及びＳ２３５で検出した記録紙サイズに基づき、予め定められた計算式で（具体的には、原稿のコピー画像が記録紙の縁まで最大限広がって印刷されるように）変倍率を設定する（Ｓ２４０）。
【００７０】
この他、ＣＰＵ７０は、Ｓ２２０で推定した原稿の傾き角θから、画像データの傾き補正量を設定する（Ｓ２５０）。具体的には、原稿のコピー画像が、傾きのない状態でまっすぐ、記録紙に印刷されるように、傾き補正量を設定する。但し、推定した原稿の傾き角θが微小量（本実施例では−０．５度≦θ≦０．５度）である場合には、誤差も考慮して、傾き補正量をゼロに設定する。
【００７１】
また、Ｓ２５０での処理を終えると、ＣＰＵ７０は、Ｓ２２０で推定した原稿の載置領域の情報に基づいて、原稿読取開始位置及び原稿読取終了位置を設定し、原稿読取開始位置及び原稿読取終了位置で定められる読取領域を、原稿台１１ａにおける原稿の載置領域に対応させる（Ｓ２６０）。
【００７２】
具体的には、原稿の載置領域全体を読取ユニット１５が読み取ることができるように、原稿読取開始位置を、副走査方向において最も下側に位置する原稿の端点に対応した位置に設定し、原稿読取終了位置を、副走査方向において最も上側に位置する原稿の端点に対応した位置に設定して、読取領域を原稿台１１ａにおける原稿の載置領域に対応させる。
【００７３】
また、Ｓ２６０での処理を終えると、ＣＰＵ７０は、読取制御部２０を通じて画像読取部１０を制御することで、画像読取部１０に、読取ユニット１５を原稿読取開始位置から原稿読取終了位置まで副走査方向に搬送させると共に、当該搬送中にはライン毎の読取動作を読取ユニット１５に実行させて、上記設定した読取領域の画像を、読取ユニット１５に読み取らせ、当該読取領域の読取結果を表す画像データが、ＲＡＭ８０に記録されるようにする（Ｓ２７０）。
【００７４】
また、この処理を終えると、ＣＰＵ７０は、ＲＡＭ８０に記録された上記読取結果を表す画像データを、予め設定した変倍率で拡大又は縮小処理すると共に、予め設定した傾き補正量分、回転処理して、上記読取結果を表す画像データを、印刷用の画像データに変換し、変換後の画像データを、印刷対象データに設定する（Ｓ２８０）。但し、傾き補正量がゼロに設定されている場合には、Ｓ２８０において、回転処理を、実行しないものとする。
【００７５】
そして、Ｓ２８０での処理を終えると、ＣＰＵ７０は、当該印刷対象データについての印刷処理を実行する（Ｓ２９０）。即ち、印刷制御部４０を通じて、印刷部３０に印刷対象データに基づく画像を、給紙した記録紙に印刷させる。その後、当該複写制御処理を終了する。
【００７６】
続いて、Ｓ１４０でＣＰＵ７０が実行する第二複写処理について説明する。図４（ｂ）は、ＣＰＵ７０が実行する第二複写処理を表すフローチャートである。
第二複写処理を開始すると、ＣＰＵ７０は、原稿読取開始位置を、読取可能領域Ｒ０の下端（Ｙ＝０）に設定し、原稿読取終了位置を、設計段階で予め定められた読取可能領域Ｒ０の下端から所定距離離れた位置（Ｙ＝ＹＰＲＥ）に設定することにより、読取可能領域Ｒ０の一部を読取領域に設定し、読取制御部２０を通じて、画像読取部１０に、当該読取領域に対するプレスキャン動作を実行させる（Ｓ３１０：先端部プレスキャン処理）。
【００７７】
図５は、第一複写処理で実行される全体プレスキャン処理の読取領域と、第二複写処理で実行される先端部プレスキャン処理の読取領域と、の相違を表した説明図である。図５に示すように、第二複写処理では、第一複写処理のように読取可能領域Ｒ０全体に対してプレスキャン動作を画像読取部１０に実行させるのではなく、読取可能領域Ｒ０の下端から読取可能領域Ｒ０内側へ所定距離離れた地点まで（本実施例では、読取可能領域Ｒ０の下端から３０ｍｍ離れた地点まで）に対して、プレスキャン動作を画像読取部１０に実行させる。
【００７８】
このようにして、Ｓ３１０での処理を終えると、ＣＰＵ７０は、ＲＡＭ８０に記録されたプレスキャン画像データ（プレスキャン結果）に対してエッジ検出処理を実行し、この画像データに対応するエッジ画像データを生成する（Ｓ３１５）。即ち、ＲＡＭ８０に記録されたプレスキャン画像データを、エッジ検出用の画像フィルタ（周知の微分フィルタ）に通して、エッジ画像データに変換する。
【００７９】
また、この処理を終えると、ＣＰＵ７０は、Ｓ３１５で生成したエッジ画像データを検査対象データに設定し、Ｓ３２０にて、図６に示す原稿推定処理を実行する。これにより、上記エッジ画像データを解析して、原稿台１１ａに載置された原稿のサイズ（縦幅及び横幅）、及び、原稿の傾き角θ、及び、原稿台１１ａにおける原稿の載置領域を推定する。具体的には、原稿台１１ａに載置された原稿が四角形状で縦横比が一定の定型用紙であるとの仮定の下で、原稿台１１ａに載置された原稿のエッジを検出すると共に、その検出結果から原稿の左下角位置及び右下角位置を推定し、この推定結果に基づいて、原稿台１１ａに載置された原稿のサイズ、及び、原稿の傾き角θ、及び、原稿の載置領域を推定する（詳細後述）。
【００８０】
また、Ｓ３２０での処理を終えると、ＣＰＵ７０は、Ｓ２３０〜Ｓ２９０の処理と同様に、Ｓ３３０〜Ｓ３９０の処理を実行する。
但し、Ｓ３４０では、Ｓ３２０で推定した原稿サイズ及びＳ３３５で検出した記録紙サイズに基づき、変倍率を、予め定められた計算式に従って、原稿サイズと記録紙サイズとの比（例えば、記録紙短辺長さ÷原稿短辺長さ）に対応した倍率に設定し、後続の処理で、原稿のコピー画像が、原稿サイズとの記録紙サイズの比に対応した倍率で拡大（倍率が１未満の場合には縮小）されて記録紙に印刷されるようにする。
【００８１】
また、Ｓ３５０では、Ｓ３２０で推定した原稿の傾き角θから、原稿のコピー画像が、まっすぐ記録紙に印刷されるように、読取結果である画像データの傾き補正量を設定し、Ｓ３６０では、Ｓ３２０で推定した原稿の載置領域の情報に基づいて、原稿読取開始位置及び原稿読取終了位置を設定し、原稿読取開始位置及び原稿読取終了位置で定められる読取領域を、原稿台１１ａにおける原稿の載置領域に対応させる。
【００８２】
このようにして、第二複写処理では、読取可能領域Ｒ０における一部領域のプレスキャン結果に基づき、原稿サイズ、原稿の傾き角、及び、原稿の載置領域を推定し、その結果から、本スキャン時（Ｓ３７０実行時）の読取領域を決定すると共に、変倍率及び傾き補正量を決定して、原稿のコピー画像を、記録紙サイズに対応する大きさで、記録紙に印刷する。
【００８３】
続いて、図６を用いて、ＣＰＵ７０が、Ｓ３２０で実行する原稿推定処理について説明する。図６は、ＣＰＵ７０が実行する原稿推定処理を表すフローチャートである。
この原稿推定処理を開始すると、ＣＰＵ７０は、変数Ｓを上述のプレスキャン領域上端のＹ座標であるＹＰＲＥに設定することにより（Ｓ＝ＹＰＲＥ）、Ｙ軸方向の検査範囲を、Ｙ＝０からＹ＝Ｓ＝ＹＰＲＥに設定する（Ｓ４１０）。また、この処理を終えると、Ｓ４２０に移行し、右エッジ検出処理を実行する。図７は、ＣＰＵ７０が実行する右エッジ検出処理を表すフローチャートである。
【００８４】
右エッジ検出処理を開始すると、ＣＰＵ７０は、まずＳ６１０にて、副走査方向検査位置Ｙｅを、読取可能領域Ｒ０の下端Ｙ座標に設定し（Ｙｅ＝０）、Ｓ６１５にて、主走査方向検査位置Ｘｅを、読取可能領域Ｒ０の右端Ｘ座標に設定する（Ｘｅ＝ＸＭＡＸ）。また、Ｓ６１５では、変数Ｃを値ゼロに初期化する（Ｃ＝０）。その後、副走査方向検査位置Ｙｅが検査範囲を超えているか否かを判断する（Ｓ６２０）。具体的には、Ｙｅ＞Ｓであるか否かを判断する。
【００８５】
そして、副走査方向検査位置Ｙｅが検査範囲を超えていないと判断すると（Ｓ６２０でＮｏ）、ＣＰＵ７０は、主走査方向検査位置Ｘｅ及び副走査方向検査位置Ｙｅで定まる検査位置（Ｘ，Ｙ）＝（Ｘｅ，Ｙｅ）に対応する検査対象データの画素値を参照することにより、検査位置（Ｘｅ，Ｙｅ）がエッジ点であるか否かを判断する（Ｓ６２５）。尚、図８は、エッジ画像データの構成を抜粋して示し、更に、右エッジ検出処理により追跡するエッジ点の軌跡を表した説明図である。図８に示す例では、画素値「１」の地点がエッジ点に該当する。
【００８６】
そして、検査位置（Ｘｅ，Ｙｅ）がエッジ点ではないと判断すると（Ｓ６２５でＮｏ）、ＣＰＵ７０は、Ｓ６４０に移行して、主走査方向検査位置Ｘｅを、Ｘ軸マイナス方向に１画素移動した位置に更新し（Ｘｅ←Ｘｅ−１）、更新後の主走査方向検査位置Ｘｅが読取可能領域Ｒ０の左端を、はみ出ていないかどうかを判断する。具体的には、Ｘｅ＜０であるか否かを判断する（Ｓ６４３）。
【００８７】
そして、主走査方向検査位置Ｘｅが、読取可能領域Ｒ０の左端をはみ出ていないと判断すると（Ｓ６４３でＮｏ）、ＣＰＵ７０は、Ｓ６２０に移行して、副走査方向検査位置Ｙｅが検査範囲を超えているか否か（Ｙｅ＞Ｓであるか否か）を判断し、副走査方向検査位置Ｙｅが検査範囲を超えていないと判断すると（Ｓ６２０でＮｏ）、Ｓ６２５に移行し、副走査方向検査位置Ｙｅが検査範囲を超えていると判断すると（Ｓ６２０でＹｅｓ）、Ｓ６９０に移行する。
【００８８】
一方、Ｓ６４３において、主走査方向検査位置Ｘｅが読取可能領域Ｒ０の左端をはみ出ていると判断すると（Ｘｅ＜０であると判断すると）、ＣＰＵ７０は、Ｓ６４７に移行し、主走査方向検査位置Ｘｅを、読取可能領域Ｒ０の右端（ＸＭＡＸ）に設定すると共に（Ｘｅ＝ＸＭＡＸ）、副走査方向検査位置Ｙｅを、現在値Ｙｅに８加えた値に更新する（Ｙｅ←Ｙｅ＋８）。即ち、副走査方向検査位置Ｙｅを、Ｙ軸方向に８画素進んだ位置に設定する。その後、Ｓ６２０に移行して、上述の処理を実行する。
【００８９】
また、検査位置（Ｘｅ，Ｙｅ）がエッジ点であると判断すると（Ｓ６２５でＹｅｓ）、ＣＰＵ７０は、Ｓ６３０に移行し、変数（Ｘ０，Ｙ０）に、現在の検査位置（Ｘｅ，Ｙｅ）の座標値を、設定する（Ｘ０←Ｘｅ，Ｙ０←Ｙｅ）。また、変数Ｙ１を、座標Ｙ＝Ｙ０からＹ軸方向に８画素進んだ座標値Ｙ１（＝Ｙ０＋８）に更新する（Ｓ６３３）。
【００９０】
その後、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点の少なくとも一つが、エッジ点であるか否かを判断し（Ｓ６３７）、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点のいずれもがエッジ点でない場合には（Ｓ６３７でＮｏ）、Ｓ６４０に移行して、主走査方向検査位置Ｘｅを、Ｘ軸マイナス方向に１画素移動した位置に更新する（Ｘｅ←Ｘｅ−１）。
【００９１】
一方、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点の少なくとも一つがエッジ点であると判断した場合には（Ｓ６３７でＹｅｓ）、Ｓ６５０に移行して、座標（Ｘ０，Ｙ０）の地点が連続性のあるエッジ点であると判定し、この座標（Ｘ０，Ｙ０）を、連続性のあるエッジ点の座標データとして、一時記憶する。
【００９２】
また、この処理を終えると、ＣＰＵ７０は、Ｓ６６０に移行し、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点の内、エッジ点である地点の一つを、予め定められた優先度に従って選択する。
【００９３】
具体的に、右エッジ検出処理においては、読取可能領域Ｒ０右端側に近い座標ほど高い優先度が設定されている。即ち、読取可能領域Ｒ０右端側に近い座標（Ｘ０＋１，Ｙ１）の地点が優先度「大」に設定され、座標（Ｘ０，Ｙ１）の地点が優先度「中」に設定され、座標（Ｘ０−１，Ｙ１）の地点が優先度「小」に設定されている。
【００９４】
このように優先度が設定されているのは、原稿の右端より右側においては、原稿台１１ａに何も存在せず、エッジ点は存在しないはずであり、読取可能領域Ｒ０右端側に近いエッジ点であるほど、そのエッジ点が原稿の右端に対応するエッジ点である可能性が高いためである。
【００９５】
即ち、Ｓ６６０では、上記優先度に従って、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点、及び、座標（Ｘ０＋１，Ｙ１）の地点の内、エッジ点である地点であって優先度の最も高い地点を選択する。そして、変数Ｘ０を、選択した地点のＸ座標に更新し、変数Ｙ０を、選択した地点のＹ座標に更新する。その後、変数Ｃを１加算した値に更新する（Ｓ６６３）。
【００９６】
そして、この処理を終えると、ＣＰＵ７０は、更新後の変数Ｃの値がＣ＝８であるか否かを判断し、Ｃ＝８でないと判断すると（Ｓ６６７でＮｏ）、Ｓ６３３に移行して、変数Ｙ１を、座標Ｙ＝Ｙ０からＹ軸方向に８画素進んだ地点のＹ座標に更新する（Ｙ１＝Ｙ０＋８）。その後、Ｓ６３７以降の処理を実行する。
【００９７】
ＣＰＵ７０は、このような処理を実行することにより、図８に示すように、Ｙ軸方向に８画素おきに、エッジ点がＹ軸方向に連続するものであるか否かを検査する。そして、Ｃ＝８であると判断すると（Ｓ６６７でＹｅｓ）、８回に及ぶＳ６５０の処理で連続性のあるエッジ点として判定した計８地点の各座標データを、原稿右エッジデータとしてＲＡＭ８０に記憶する（Ｓ６７０）。
【００９８】
また、この処理を終えると、ＣＰＵ７０は、Ｓ６８０に移行して、副走査方向検査位置Ｙｅが検査範囲を超えているか否か（Ｙｅ＞Ｓであるか否か）を判断し、副走査方向検査位置Ｙｅが検査範囲を超えていないと判断すると（Ｓ６８０でＮｏ）、副走査方向検査位置Ｙｅを６４画素進んだ位置に更新して（Ｓ６８５）、Ｓ６１５に移行する。
【００９９】
このようにして、ＣＰＵ７０は、連続するエッジ点を、８つを１組として、繰返し検出する。そして、副走査方向検出位置Ｙｅが検査範囲を超えると（Ｓ６２０でＹｅｓ又はＳ６８０でＹｅｓ）、Ｓ６９０に移行し、Ｓ６７０で原稿右エッジデータとして記憶された座標データ群の中から、右エッジ（原稿の右端を表すエッジ点）として確度の低い座標データ群を削除して、原稿右エッジデータを確定する。
【０１００】
具体的には、図９に示すように、原稿右エッジデータとして記憶された座標データ群の内、連続性のある座標データ群に対して原稿内側領域に大きくずれた位置にある、明白に連続性のない座標データ群を、原稿右エッジデータから除去し、原稿右エッジデータを確定する。その後、当該右エッジ検出処理を終了する。但し、Ｓ６９０の処理は原稿エッジの検出精度を高めるための処理であるので、Ｓ６９０の処理については、実行しないように、右エッジ検出処理を構成してもよい。
【０１０１】
このようにして、右エッジ検出処理を終えると、ＣＰＵ７０は、Ｓ４３０に移行し、直前の右エッジ検出処理で右エッジの検出に失敗したか否かを判断する。具体的には、直前の右エッジ検出処理で原稿右エッジデータとして登録された座標データがない場合、右エッジの検出に失敗したと判断し、原稿右エッジデータとして登録された座標データがある場合には、右エッジの検出に成功したと判断する。
【０１０２】
但し、例外的に、原稿右エッジデータとして登録された座標データが読取可能領域Ｒ０の左端（Ｙ＝０）近傍にある場合には、左エッジ（原稿の左端を表すエッジ点）の座標データが間違って原稿右エッジデータとして登録されているとみなして、原稿右エッジデータとして登録された座標データがある場合でも、右エッジの検出に失敗したと判断してもよい。
【０１０３】
尚、右エッジの検出に失敗するケースとしては、原稿サイズが原稿台１１ａのサイズより大きく、原稿の右端が原稿台１１ａからはみ出しているケースなどを挙げることができる。
【０１０４】
そして、右エッジの検出に失敗したと判断すると（Ｓ４３０でＹｅｓ）、ＣＰＵ７０は、Ｓ４３１に移行し、原稿台１１ａに載置されている原稿のサイズ（縦幅及び横幅）が、原稿台１１ａに載置可能な最大サイズ（読取可能領域Ｒ０に対応するサイズ）であると推定すると共に（Ｓ４３１）、原稿の傾き角θがゼロ（θ＝０）であると推定し（Ｓ４３３）、読取可能領域Ｒ０全体を、原稿の載置領域と推定する（Ｓ４３５）。そして、この処理を終えると、当該原稿推定処理を終了する。
【０１０５】
一方、Ｓ４３０において右エッジの検出に成功したと判断すると（Ｓ４３０でＮｏ）、ＣＰＵ７０は、Ｓ４３７に移行し、右エッジ検出処理で確定された原稿右エッジデータが示す各点を直線近似して、原稿右エッジデータが示す点群の近似直線（以下、「右エッジ近似直線」と表現する。）を算出する。
【０１０６】
また、この処理を終えると、ＣＰＵ７０は、Ｓ４４０に移行して、右エッジ近似直線がＹ軸に対し所定角度より大きく傾いているか否かを判断する。本実施例では、具体的に、右エッジ近似直線がＹ軸に対し０．５度より大きく傾いているか否かを判断する。
【０１０７】
そして、右エッジ近似直線の傾きが上記所定角度以下であると判断すると（Ｓ４４０でＮｏ）、ＣＰＵ７０は、原稿がフレーム１３ａの内側左下角に突き当てられて原稿台１１ａに正しく載置されていると見なして、図６右図に示すように、右エッジ近似直線と原稿台１１ａ下端縁（換言すると、フレーム１３ａの下辺（以下、「下フレーム」と表現する。）内側）との交点を、原稿の右下角位置であると推定する（Ｓ４４１）。
【０１０８】
また、この処理を終えると、ＣＰＵ７０は、原稿の左下角位置が原稿台１１ａの左下角（換言すると、フレーム１３ａの内側左下角）の地点であるとみなして、原稿サイズを推定する。具体的には、原稿台１１ａに載置されている原稿が、長方形状の定型用紙であると仮定の下で、上記原稿の左下角位置からＳ４４１で推定した原稿の右下角位置までの長さを、原稿の短辺長さ（横幅）と推定し、この短辺長さの√２倍を、原稿の長辺長さ（縦幅）と推定する（Ｓ４４３）。尚、ここで原稿短辺長さの√２倍を、原稿の長辺長さとして推定しているのは、定型用紙の短辺長さ：長辺長さの比が１：√２となっているためである。
【０１０９】
そして、Ｓ４４３での処理を終えると、ＣＰＵ７０は、Ｓ４４５に移行し、原稿台１１ａに載置されている原稿の傾き角θをゼロであると推定し（換言すると、原稿が傾いていないと推定し）、上記左下角位置及び推定した右下角位置、及び、原稿サイズ、及び、傾き角θの関係から、原稿の左上角及び右上角が位置する座標を導出する。これにより、これら４つの角を結んでできる四角形の辺を原稿の外縁であると推定し、その外縁で囲まれる領域を、原稿の載置領域であると推定する（Ｓ４４７）。
【０１１０】
即ち、原稿の左下角がフレーム１３ａ内側左下角に突き当てられ、この状態で上記推定したサイズの原稿の長辺がＹ軸に平行に配置され、原稿の短辺がＸ軸に平行に配置されている場合に、原稿によって読取ガラス１１が被覆される領域を、原稿の載置領域であると推定する（Ｓ４４７）。そして、この処理を終えると、当該原稿推定処理を終了する。
【０１１１】
一方、右エッジ近似直線がＹ軸に対し所定角度より大きく傾いていると判断すると（Ｓ４４０でＹｅｓ）、ＣＰＵ７０は、Ｓ４５０に移行し、図１０に示す左エッジ検出処理を実行する。図１０は、ＣＰＵ７０が実行する左エッジ検出処理を表すフローチャートである。
【０１１２】
左エッジ検出処理を開始すると、ＣＰＵ７０は、Ｓ７１０にて、副走査方向検査位置Ｙｅ＝０に設定し、Ｓ７１５にて、主走査方向検査位置Ｘｅを、読取可能領域Ｒ０の左端Ｘ座標に設定する（Ｘｅ＝０）。また、Ｓ７１５では、変数Ｃを値ゼロに初期化する（Ｃ＝０）。
【０１１３】
その後、ＣＰＵ７０は、副走査方向検査位置Ｙｅが検査範囲を超えているか否か（即ち、Ｙｅ＞Ｓであるか否か）を判断し（Ｓ７２０）、副走査方向検査位置Ｙｅが検査範囲を超えていないと判断すると（Ｓ７２０でＮｏ）、検査位置（Ｘ，Ｙ）＝（Ｘｅ，Ｙｅ）に対応する検査対象データの画素値を参照して、検査位置（Ｘｅ，Ｙｅ）がエッジ点であるか否かを判断する（Ｓ７２５）。
【０１１４】
そして、検査位置（Ｘｅ，Ｙｅ）がエッジ点ではないと判断すると（Ｓ７２５でＮｏ）、Ｓ７４０に移行し、主走査方向検査位置Ｘｅを、Ｘ軸プラス方向に１画素移動した地点に更新し（Ｘｅ←Ｘｅ＋１）、更新した主走査方向検査位置Ｘｅが、読取可能領域Ｒ０の右端を、はみ出ていないかどうかを判断する。具体的には、Ｘｅ＞ＸＭＡＸであるか否かを判断する（Ｓ７４３）。そして、主走査方向検査位置Ｘｅが、読取可能領域Ｒ０の右端をはみ出ていないと判断すると（Ｓ７４３でＮｏ）、Ｓ７２０に移行する。
【０１１５】
一方、Ｓ７４３で主走査方向検査位置Ｘｅが読取可能領域Ｒ０の右端をはみ出ていると判断すると（Ｘｅ＞ＸＭＡＸであると判断すると）、ＣＰＵ７０は、Ｓ７４７に移行し、主走査方向検査位置Ｘｅを、読取可能領域Ｒ０の左端に設定すると共に（Ｘｅ＝０）、副走査方向検査位置Ｙｅを、Ｙ軸方向に８画素進んだ位置に設定する（Ｙｅ←Ｙｅ＋８）。その後、Ｓ７２０に移行する。
【０１１６】
また、検査位置（Ｘｅ，Ｙｅ）がエッジ点であると判断すると（Ｓ７２５でＹｅｓ）、ＣＰＵ７０は、Ｓ７３０に移行して、変数（Ｘ０，Ｙ０）に、現在の検査位置（Ｘｅ，Ｙｅ）の座標値を設定する（Ｘ０←Ｘｅ，Ｙ０←Ｙｅ）と共に、変数Ｙ１を、値Ｙ１＝Ｙ０＋８に更新する（Ｓ７３３）。
【０１１７】
その後、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点の少なくとも一つが、エッジ点であるか否かを判断し（Ｓ７３７）、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点のいずれもがエッジ点でない場合には（Ｓ７３７でＮｏ）、Ｓ７４０に移行する。
【０１１８】
一方、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点の少なくとも一つがエッジ点であると判断した場合には（Ｓ７３７でＹｅｓ）、Ｓ７５０に移行して、座標（Ｘ０，Ｙ０）の地点が連続性のあるエッジ点であると判定し、この座標（Ｘ０，Ｙ０）を、連続性のあるエッジ点の座標データとして、一時記憶する。
【０１１９】
また、この処理を終えると、ＣＰＵ７０は、Ｓ７６０に移行し、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点及び座標（Ｘ０＋１，Ｙ１）の地点の内、エッジ点である地点の一つを、予め定められた優先度に従って選択する。
【０１２０】
具体的に、左エッジ検出処理においては、読取可能領域Ｒ０左端側に近い座標ほど高い優先度が設定されているものとする。即ち、読取可能領域Ｒ０左端側に近い座標（Ｘ０−１，Ｙ１）の地点が優先度「大」に設定され、座標（Ｘ０，Ｙ１）の地点が優先度「中」に設定され、座標（Ｘ０＋１，Ｙ１）の地点が優先度「小」に設定されている。このように優先度が設定されているのは、原稿の左端より左側においては、原稿台１１ａに何も存在せず、エッジ点は存在しないはずであり、読取可能領域Ｒ０左端側に近いエッジ点であるほど、そのエッジ点が原稿の左端に対応するエッジ点である可能性が高いためである。
【０１２１】
従って、Ｓ７６０では、この優先度に従って、座標（Ｘ０−１，Ｙ１）の地点、座標（Ｘ０，Ｙ１）の地点、及び、座標（Ｘ０＋１，Ｙ１）の地点の内、エッジ点である地点であって優先度の最も高い地点を選択する。そして、変数Ｘ０を、選択した地点のＸ座標に更新し、変数Ｙ０を、選択した地点のＹ座標に更新する。その後、変数Ｃを１加算した値に更新する（Ｓ７６３）。
【０１２２】
また、この処理を終えると、ＣＰＵ７０は、更新後の変数Ｃの値がＣ＝８であるか否かを判断し、Ｃ＝８でないと判断すると（Ｓ７６７でＮｏ）、Ｓ７３３に移行して、変数Ｙ１を、Ｙ１＝Ｙ０＋８に更新する。その後、Ｓ７３７以降の処理を実行する。
【０１２３】
このような処理手順により、ＣＰＵ７０は、右エッジ検出処理と同様（図８参照）、Ｙ軸方向に８画素おきに、エッジ点がＹ軸方向に連続するものであるか否かを検査する。そして、Ｃ＝８であると判断すると（Ｓ７６７でＹｅｓ）、Ｓ７５０で連続性のあるエッジ点として判定した計８地点の各座標データを、原稿左エッジデータとしてＲＡＭ８０に記憶する（Ｓ７７０）。
【０１２４】
また、この処理を終えると、ＣＰＵ７０は、Ｓ７８０に移行して、副走査方向検査位置Ｙｅが検査範囲を超えているか否か（Ｙｅ＞Ｓであるか否か）を判断し、副走査方向検査位置Ｙｅが検査範囲を超えていないと判断すると（Ｓ７８０でＮｏ）、副走査方向検査位置Ｙｅを６４画素進んだ地点に更新して（Ｓ７８５）、Ｓ７１５に移行する。
【０１２５】
このようにして、ＣＰＵ７０は、連続するエッジ点を、８つずつ、繰返し検出する。そして、副走査方向検出位置Ｙｅが検査範囲を超えると（Ｓ７２０でＹｅｓ又はＳ７８０でＹｅｓ）、Ｓ７９０に移行し、Ｓ７７０で原稿左エッジデータとして記憶された座標データ群の中から、左エッジ（原稿の左端を表すエッジ点）として確度の低い座標データ群を削除して、原稿左エッジデータを確定する。
【０１２６】
具体的には、Ｓ６９０での処理と同様、原稿左エッジデータとして記憶された座標データ群の内、連続性のある座標データ群に対して原稿内側領域に大きくずれた位置にある、明白に連続性のない座標データ群を、原稿左エッジデータから除去し、原稿左エッジデータを確定する。その後、当該左エッジ検出処理を終了する。但し、Ｓ７９０の処理については、実行しないように、左エッジ検出処理を構成してもよい。
【０１２７】
また、このようにして、左エッジ検出処理を終えると、ＣＰＵ７０は、Ｓ４５５に移行し、左エッジ検出処理で確定された原稿左エッジデータが示す各点を直線近似して、原稿左エッジデータが示す点群の近似直線（以下、「左エッジ近似直線」という。）を算出する。その後、Ｓ４６０に移行する。
【０１２８】
但し、直前の左エッジ検出処理で原稿左エッジデータとして登録された座標データがない場合には、左エッジの検出に失敗したと判断して、左エッジ近似直線を算出することなく、Ｓ４６０に移行するものとする。この他、原稿左エッジデータとして登録されている座標データの全て又は一部が原稿右エッジデータにも登録されている場合には、右エッジ（原稿の右端を表すエッジ点）の座標データが間違って原稿左エッジデータとして登録されているとみなして、原稿左エッジデータとして登録された座標データがある場合でも、左エッジの検出に失敗したと判断し、左エッジ近似直線を算出することなく、Ｓ４６０に移行するようにしてもよい。
【０１２９】
また、Ｓ４６０に移行すると、ＣＰＵ７０は、図１１に示す下エッジ検出処理を実行する。図１１は、ＣＰＵ７０が実行する下エッジ検出処理を表すフローチャートである。
下エッジ検出処理を開始すると、ＣＰＵ７０は、Ｓ８１０にて、主走査方向検査位置Ｘｅを、読取可能領域Ｒ０の左端Ｘ座標に設定し（Ｘｅ＝０）、Ｓ８１５にて、副走査方向検査位置Ｙｅを、読取可能領域Ｒ０の下端Ｙ座標に設定する（Ｙｅ＝０）。また、Ｓ８１５では、変数Ｃを値ゼロに初期化する（Ｃ＝０）。
【０１３０】
また、この処理を終えると、ＣＰＵ７０は、主走査方向検査位置Ｘｅが読取可能領域Ｒ０の右端を超えているか否か（即ち、Ｘｅ＞ＸＭＡＸであるか否か）を判断し（Ｓ８２０）、主走査方向検査位置Ｘｅが読取可能領域Ｒ０の右端を超えていないと判断すると（Ｓ８２０でＮｏ）、検査位置（Ｘ，Ｙ）＝（Ｘｅ，Ｙｅ）に対応する検査対象データの画素値を参照し、検査位置（Ｘｅ，Ｙｅ）がエッジ点であるか否かを判断する（Ｓ８２５）。
【０１３１】
そして、検査位置（Ｘｅ，Ｙｅ）がエッジ点ではないと判断すると（Ｓ８２５でＮｏ）、Ｓ８４０に移行して、副走査方向検査位置Ｙｅを、Ｙ軸プラス方向に１画素移動した位置に更新し（Ｙｅ←Ｙｅ＋１）、更新後の副走査方向検査位置Ｙｅが検査範囲を超えているか否か（Ｙｅ＞Ｓであるか否か）を判断する（Ｓ８４３）。
【０１３２】
そして、副走査方向検査位置Ｙｅが検査範囲を超えていないと判断すると（Ｓ８４３でＮｏ）、Ｓ８２０に移行する。
一方、Ｓ８４３で副走査方向検査位置Ｙｅが検査範囲を超えていると判断すると（Ｙｅ＞Ｓであると判断すると）、ＣＰＵ７０は、Ｓ８４７に移行し、副走査方向検査位置Ｙｅを、読取可能領域Ｒ０の下端に設定すると共に（Ｙｅ＝０）、主走査方向検査位置Ｘｅを、Ｘ軸方向に８画素進んだ位置に設定する（Ｘｅ←Ｘｅ＋８）。その後、Ｓ８２０に移行する。
【０１３３】
この他、ＣＰＵ７０は、Ｓ８２５において、検査位置（Ｘｅ，Ｙｅ）がエッジ点であると判断すると（Ｓ８２５でＹｅｓ）、Ｓ８３０に移行し、変数（Ｘ０，Ｙ０）に、現在の検査位置（Ｘｅ，Ｙｅ）の座標値を、設定する（Ｘ０←Ｘｅ，Ｙ０←Ｙｅ）。また、変数Ｘ１を、値Ｘ１＝Ｘ０＋８に更新する（Ｓ８３３）。
【０１３４】
その後、ＣＰＵ７０は、座標（Ｘ１，Ｙ０−１）の地点、座標（Ｘ１，Ｙ０）の地点及び座標（Ｘ１，Ｙ０＋１）の地点の少なくとも一つが、エッジ点であるか否かを判断し（Ｓ８３７）、座標（Ｘ１，Ｙ０−１）の地点、座標（Ｘ１，Ｙ０）の地点及び座標（Ｘ１，Ｙ０＋１）の地点のいずれもがエッジ点でない場合には（Ｓ８３７でＮｏ）、Ｓ８４０に移行する。
【０１３５】
一方、座標（Ｘ１，Ｙ０−１）の地点、座標（Ｘ１，Ｙ０）の地点及び座標（Ｘ１，Ｙ０＋１）の地点の少なくとも一つがエッジ点であると判断すると（Ｓ８３７でＹｅｓ）、ＣＰＵ７０は、Ｓ８５０に移行して、座標（Ｘ０，Ｙ０）の地点が連続性のあるエッジ点であると判定し、この座標（Ｘ０，Ｙ０）を、連続性のあるエッジ点の座標データとして、一時記憶する。
【０１３６】
また、この処理を終えると、ＣＰＵ７０は、Ｓ８６０に移行し、座標（Ｘ１，Ｙ０−１）の地点、座標（Ｘ１，Ｙ０）の地点及び座標（Ｘ１，Ｙ０＋１）の地点の内、エッジ点である地点の一つを、予め定められた優先度に従って選択する。
【０１３７】
具体的に、下エッジ検出処理においては、読取可能領域Ｒ０下端側に近い座標ほど高い優先度が設定されている。即ち、読取可能領域Ｒ０下端側に近い座標（Ｘ１，Ｙ０−１）の地点が優先度「大」に設定され、座標（Ｘ１，Ｙ０）の地点が優先度「中」に設定され、座標（Ｘ１，Ｙ０＋１）の地点が優先度「小」に設定されている。このように優先度が設定されているのは、原稿の下端より下側においては、原稿台１１ａに何も存在せず、エッジ点は存在しないはずであり、読取可能領域Ｒ０下端側に近いエッジ点であるほど、そのエッジ点が原稿の下端に対応するエッジ点である可能性が高いためである。
【０１３８】
従って、Ｓ８６０では、この優先度に従って、座標（Ｘ１，Ｙ０−１）の地点、座標（Ｘ１，Ｙ０）の地点及び座標（Ｘ１，Ｙ０＋１）の地点の内、エッジ点である地点であって優先度の最も高い地点を選択する。そして、変数Ｘ０を、選択した地点のＸ座標に更新し、変数Ｙ０を、選択した地点のＹ座標に更新する。その後、変数Ｃを１加算した値に更新する（Ｓ８６３）。
【０１３９】
また、この処理を終えると、ＣＰＵ７０は、更新後の変数Ｃの値がＣ＝８であるか否かを判断し（Ｓ８６７）、Ｃ＝８でないと判断すると（Ｓ８６７でＮｏ）、Ｓ８３３に移行して、変数Ｘ１を、Ｘ１＝Ｘ０＋８に更新する。その後、Ｓ８３７以降の処理を実行する。
【０１４０】
このような処理を実行することにより、ＣＰＵ７０は、Ｘ軸方向に８画素おきに、エッジ点がＸ軸方向に連続するものであるか否かを検査する。そして、Ｃ＝８であると判断すると（Ｓ８６７でＹｅｓ）、Ｓ８５０で連続性のあるエッジ点として判定した計８地点の各座標データを、原稿下エッジデータとしてＲＡＭ８０に記憶する（Ｓ８７０）。
【０１４１】
また、この処理を終えると、ＣＰＵ７０は、Ｓ８８０に移行して、主走査方向検査位置Ｘｅが読取可能領域Ｒ０右端を超えているか否か（Ｘｅ＞ＸＭＡＸであるか否か）を判断し、主走査方向検査位置Ｘｅが読取可能領域Ｒ０右端を超えていないと判断すると（Ｓ８８０でＮｏ）、主走査方向検査位置Ｘｅを６４画素進んだ地点に更新して（Ｓ８８５）、Ｓ８１５に移行する。
【０１４２】
このようにして、ＣＰＵ７０は、連続するエッジ点を、８つずつ、繰返し検出する。そして、主走査方向検出位置Ｘｅが読取可能領域Ｒ０右端を超えると（Ｓ８２０でＹｅｓ又はＳ８８０でＹｅｓ）、Ｓ８９０に移行し、Ｓ８７０で原稿下エッジデータとして記憶された座標データ群の中から、下エッジ（原稿の下端を表すエッジ点）として確度の低い座標データ群を削除して、原稿下エッジデータを確定する。
【０１４３】
具体的には、Ｓ６９０での処理と同様、原稿下エッジデータとして記憶された座標データ群の内、連続性のある座標データ群に対して原稿内側領域に大きくずれた位置にある、明白に連続性のない座標データ群を、原稿下エッジデータから除去し、原稿下エッジデータを確定する。その後、当該下エッジ検出処理を終了する。但し、Ｓ８９０の処理については、実行しないように、下エッジ検出処理を構成してもよい。
【０１４４】
また、このようにして、下エッジ検出処理を終えると、ＣＰＵ７０は、Ｓ４６５に移行し、下エッジ検出処理で確定された原稿下エッジデータが示す各点を直線近似して、原稿下エッジデータが示す点群の近似直線（以下、「下エッジ近似直線」という。）を算出する。その後、Ｓ４７０に移行する。但し、直前の下エッジ検出処理で原稿下エッジデータとして登録された座標データがない場合には、下エッジの検出に失敗したと判断して、下エッジ近似直線を算出することなく、Ｓ４７０に移行するものとする。
【０１４５】
また、Ｓ４７０に移行すると、ＣＰＵ７０は、右エッジ近似直線Ｙ＝Ａ・Ｘ＋Ｂの傾きＡが負（Ａ＜０）であるか否かを判断する。そして、右エッジ近似直線の傾きＡが負であると判断すると（Ｓ４７０でＹｅｓ）、図１２に示す第一角位置推定処理を実行し（Ｓ４８０）、右エッジ近似直線の傾きＡが負ではないと判断すると（Ｓ４７０でＮｏ）、図１５に示す第二角位置推定処理を実行する（Ｓ４８５）。
【０１４６】
図１２は、ＣＰＵ７０が実行する第一角位置推定処理を表すフローチャートである。Ｓ４８０において、第一角位置推定処理を開始すると、ＣＰＵ７０は、Ｓ４２０、Ｓ４５０及びＳ４６０において右エッジ、左エッジ及び下エッジの全てが正常に検出されたか否かを判断する（Ｓ９１０）。
【０１４７】
具体的に、Ｓ９１０では、右エッジ、左エッジ及び下エッジのいずれか一つでも、その検出に失敗している場合、Ｎｏと判断する。また、右エッジ、左エッジ及び下エッジの全てについて検出に成功している場合でも、直交関係にあるはずの右エッジ近似直線と下エッジ近似直線とが直交関係にない場合には、右エッジ、左エッジ及び下エッジの全てが正常に検出されていないと判断する。
【０１４８】
同様に、平行関係にあるはずの右エッジ近似直線と左エッジ近似直線とが平行関係にない場合にも、右エッジ、左エッジ及び下エッジの全てが正常に検出されていないと判断する。そして、上記以外の場合には、Ｓ９１０でＹｅｓと判断する。
【０１４９】
このような判断手法にてＳ９１０の処理を実行し、Ｓ９１０にて、右エッジ、左エッジ及び下エッジの全てが正常に検出されていると判断すると（Ｓ９１０でＹｅｓ）、ＣＰＵ７０は、原稿の左下角位置を、左エッジ近似直線と下エッジ近似直線との交点であると推定して、その座標値を算出し（Ｓ９２０）、更に、原稿の右下角位置を、右エッジ近似直線と下エッジ近似直線との交点であると推定して、その座標値を算出する（Ｓ９３０）。その後、当該第一角位置推定処理を終了する。尚、図１３は、Ｓ９１０でＹｅｓと判断したときの原稿左下角位置Ｋａ及び原稿右下角位置Ｋｂの推定方法を示した説明図である。図中、白丸がエッジ点を表し、黒丸が角位置Ｋａ，Ｋｂを表す。
【０１５０】
一方、Ｓ９１０にて、右エッジ、左エッジ及び下エッジの全てが正常に検出されていないと判断すると（Ｓ９１０でＮｏ）、ＣＰＵ７０は、Ｓ９４０に移行して、右エッジ及び左エッジの全てが正常に検出されているか否かを判断する。
【０１５１】
具体的に、Ｓ９４０では、右エッジ又は左エッジの検出に失敗している場合、Ｎｏと判断する。また、右エッジ及び左エッジの検出に成功している場合でも、平行関係にあるはずの右エッジ近似直線と左エッジ近似直線とが平行関係にない場合には、右エッジ及び左エッジの全てが正常に検出されていないと判断する。そして、上記以外の場合には、Ｓ９４０でＹｅｓと判断する。
【０１５２】
このような判断手法にてＳ９４０の処理を実行し、Ｓ９４０にて、右エッジ及び左エッジの全てが正常に検出されていると判断すると（Ｓ９４０でＹｅｓ）、ＣＰＵ７０は、Ｓ９５０に移行して、原稿の左下角位置を、左エッジ近似直線と原稿台１１ａの下端縁（即ち、下フレーム内側）との交点であると推定して、その座標値を算出すると共に、原稿の右下角位置を、右エッジ近似直線に垂直な直線であって推定した左下角位置を通る直線と、右エッジ近似直線との交点であると推定して、その座標値を算出する（Ｓ９６０）。
【０１５３】
尚、図１４（ａ）は、Ｓ９４０でＹｅｓと判断したときの原稿左下角位置Ｋａ及び原稿右下角位置Ｋｂの推定方法を示した説明図である。Ｓ９６０で、原稿の左下角位置を、左エッジ近似直線と原稿台１１ａの下端縁（即ち、下フレーム内側）との交点であると推定するのは、原稿が左側に傾いている場合には、原稿の左下角が、原稿台１１ａの下端縁と下フレームの内側との境界にある段差に、突き当たっている可能性が高いためである。このような理由から、本実施例では、下エッジを正常検出することができなかったとき、原稿の左下角が、原稿台１１ａの下端縁と下フレームの内側との境界にある段差に、突き当たっていると仮定して、原稿の左下角位置を推定する。
【０１５４】
また、このようにしてＳ９６０での処理を終えると、ＣＰＵ７０は、当該第一角位置推定処理を終了する。
一方、Ｓ９４０にて、右エッジ及び左エッジの全てが正常に検出されていないと判断すると（Ｓ９４０でＮｏ）、ＣＰＵ７０は、Ｓ９７０に移行して、原稿右エッジデータが示すエッジ点群の内、原稿台１１ａ上で最も右下寄りのエッジ点に対応する右エッジ近似直線上の点を、原稿の右下角位置であると推定し、その座標値を算出する。尚、Ｓ９７０では、原稿右エッジデータが示すエッジ点であってエッジ点から右エッジ近似直線へ伸ばした右エッジ近似直線に直交する直線が右エッジ近似直線と交わる交点が、右エッジ近似直線上において最も右側にあるエッジ点の当該交点を、「最も右下寄りのエッジ点に対応する右エッジ近似直線上の点」と取り扱えばよい。
【０１５５】
また、Ｓ９７０での処理を終えると、ＣＰＵ７０は、原稿の左下角位置を、上記推定した右下角位置を通る直線であって右エッジ近似直線に垂直な直線と、原稿台１１ａ端縁（フレーム内側）との交点であると推定して、その座標値を算出する。その後、当該第一角位置推定処理を終了する。
【０１５６】
尚、図１４（ｂ）は、Ｓ９４０でＮｏと判断したときの原稿左下角位置Ｋａ及び原稿右下角位置Ｋｂの推定方法を示した説明図である。Ｓ９７０，Ｓ９８０で、原稿右エッジデータを用いて原稿の左下角位置及び右下角位置を推定するのは、原稿の突き当て位置が、フレーム１３ａの内側左下角に設定され、原稿台１１ａの端縁近傍では読取不可能な領域がある関係上、右エッジ、左エッジ及び下エッジの中では、右エッジを一番正しく検出することができ、原稿右エッジデータ、原稿左エッジデータ、原稿下エッジデータの中で一番信用できる確度の高いデータが、原稿右エッジデータであるためである。本実施例では、このような理由から、原稿右エッジデータを一番信用して、この原稿右エッジデータ及び右エッジ近似直線を拠所に、原稿サイズ及び原稿の傾き角θを推定する。
【０１５７】
続いて、ＣＰＵ７０が、Ｓ４８５で実行する第二角位置推定処理について説明する。図１５は、ＣＰＵ７０が実行する第二角位置推定処理を表すフローチャートである。第二角位置推定処理を開始すると、ＣＰＵ７０は、まず、Ｓ４２０及びＳ４６０において右エッジ及び下エッジの全てが正常に検出されたか否かを判断する（Ｓ１０１０）。
【０１５８】
具体的に、Ｓ１０１０では、右エッジ又は下エッジの検出に失敗している場合、Ｎｏと判断する。また、右エッジ及び下エッジの全てについて検出に成功している場合でも、直交関係にあるはずの右エッジ近似直線と下エッジ近似直線が直交関係にない場合には、右エッジ及び下エッジの全てが正常に検出されていないと判断する。そして、上記以外の場合には、Ｓ１０１０でＹｅｓと判断する。
【０１５９】
尚、第二角位置推定処理では、左エッジの検出結果を使用せずに、原稿の左下角位置及び右下角位置を推定するが、このような手法で原稿の角位置を推定する理由は、原稿が右側に傾いている場合には、図１６（ａ）に示すように原稿右端がプレスキャン領域に十分な長さ納まっている可能性が高く、原稿右エッジデータの確度が非常に高い一方で、原稿左端についてはプレスキャン領域に十分な長さ納まっていない可能性が高く、原稿左エッジデータの確度が、原稿右エッジデータや原稿下エッジデータと比較して低いためである。
【０１６０】
このような判断手法にてＳ１０１０の処理を実行し、Ｓ１０１０にて、右エッジ及び下エッジの全てが正常に検出されていると判断すると（Ｓ１０１０でＹｅｓ）、ＣＰＵ７０は、原稿の左下角位置を、下エッジ近似直線と原稿台１１ａの左端縁（左フレーム内側）との交点であると推定して、その座標値を算出し（Ｓ１０２０）、更に、原稿の右下角位置を、右エッジ近似直線と下エッジ近似直線との交点であると推定して、その座標値を算出する（Ｓ１０３０）。その後、当該第二角位置推定処理を終了する。尚、図１６（ａ）は、Ｓ１０１０でＹｅｓと判断したときの原稿左下角位置Ｋａ及び原稿右下角位置Ｋｂの推定方法を示した説明図である。
【０１６１】
一方、Ｓ１０１０にて、右エッジ及び下エッジの全てが正常に検出されていないと判断すると（Ｓ１０１０でＮｏ）、ＣＰＵ７０は、Ｓ１０４０に移行して、原稿の右下角位置を、右エッジ近似直線と原稿台１１ａの下端縁（下フレーム内側）との交点であると推定し、その座標値を算出すると共に、原稿の左下角位置を、上記推定した右下角位置を通る直線であって右エッジ近似直線に垂直な直線と原稿台１１ａ端縁（フレーム内側）との交点であると推定し、その座標値を算出する（Ｓ１０５０）。その後、当該第二角位置推定処理を終了する。
【０１６２】
尚、図１６（ｂ）は、Ｓ１０１０でＮｏと判断したときの原稿左下角位置Ｋａ及び原稿右下角位置Ｋｂの推定方法を示した説明図である。原稿が右側に傾いている場合には、原稿の右下角が、原稿台１１ａの下端縁と下フレームの内側との境界ＢＤにある段差に、突き当たっている可能性が高いため、本実施例では、下エッジを正常検出することができなかったとき、原稿の右下角が、原稿台１１ａの下端縁と下フレームの内側との境界ＢＤにある段差に、突き当たっていると仮定して、原稿の右下角位置を推定する。
【０１６３】
また、このようにして第一又は第二角位置推定処理（Ｓ４８０，Ｓ４８５）を終了すると、ＣＰＵ７０は、Ｓ４９０に移行して、Ｓ４８０又はＳ４８５で推定した角位置の情報に基づき、原稿サイズを推定する。即ち、原稿台１１ａに載置されている原稿が、長方形状の定型用紙であると仮定の下で、上記推定した原稿の左下角位置から原稿の右下角位置までの長さを、原稿の短辺長さ（横幅）と推定し、この短辺長さの√２倍を、原稿の長辺長さ（縦幅）と推定する。
【０１６４】
また、この処理を終えると、右エッジ近似直線を基準にして、原稿の傾き角θを推定する。即ち、Ｙ軸に対して右エッジ近似直線がなす角度を、原稿の傾き角θと推定する（Ｓ４９３）。
【０１６５】
その後、ＣＰＵ７０は、Ｓ４９７に移行し、上記推定した角位置、原稿サイズ、原稿の傾き角θの情報に基づき、原稿の載置領域を推定する。具体的には、上記推定した左下角位置、右下角位置、原稿の傾き角θ、及び、原稿サイズの情報から、原稿の左上角位置、原稿の右上角位置を導出することにより、原稿の外縁を推定し、この原稿の外縁により囲まれる領域を、原稿の載置領域であると推定する。そして、この処理を終えると、当該原稿推定処理を終了して、Ｓ３３０以降の処理を実行する。
【０１６６】
即ち、推定した原稿サイズ及び原稿の傾き角θの情報に基づき、変倍率及び傾き補正量を設定すると共に（Ｓ３４０，Ｓ３５０）、推定した原稿載置領域の情報に基づき、原稿読取開始位置及び原稿読取終了位置を設定することで、原稿の載置領域に対応する読取領域を設定し（Ｓ３６０）、この読取領域内で、読取ユニットを搬送して、読取ユニットに読取領域に写る画像を読み取らせ、その読取結果としてＲＡＭ８０に記録された画像データを、予め設定した変倍率及び傾き補正量に合わせて、拡大／縮小及び回転処理することにより印刷用の画像データを生成し（Ｓ３８０）、この画像データを、印刷対象データとして、当該印刷対象データについての印刷処理を実行することで（Ｓ３９０）、原稿のコピー画像を記録紙に印刷する。その後、第二複写処理及び複写制御処理を終えて、外部から入力されたコピー指令に対応する処理を完了する。
【０１６７】
以上、本実施例の複合機１の構成について説明したが、この複合機１によれば、「自動変倍／傾き補正」コピー指令が入力された場合、読取可能領域Ｒ０の一部をプレスキャンして、その読取結果に基づき、原稿の状態（原稿サイズ・原稿の傾き・原稿の載置領域）を推定する。
【０１６８】
従って、本実施例によれば、「自動変倍／傾き補正」コピー指令が入力された場合、「縁無し」コピーのように、読取可能領域Ｒ０全体をプレスキャンする手法よりも高速にプレスキャン動作を終了することができて、効率的に原稿の状態を推定することができる。
【０１６９】
尚、本実施例においては、「縁無し」コピー指令が入力された場合、読取可能領域Ｒ０全体をプレスキャンして、その結果に基づき、原稿の状態を推定するようにしているが、このようにしているのは、コピー指令の目的から、処理の高速性よりも「縁無し」コピーを適切に実現するために、原稿の状態を可能な限り正確に推定するのが好ましいためである。
【０１７０】
即ち、本実施例においては、ユーザの要求に応じて動作モードを切り替え、正確な状態推定が必要な場合には、全体プレスキャン処理を実行して原稿の状態推定を行い、そうでない場合には、先端部プレスキャン処理を実行して原稿の状態推定を行うことで、処理の正確性と迅速性の調和を図るようにした。従って、このディジタル複合機１によれば、ユーザの利便性を、従来よりも高めることができる。
【０１７１】
また、本実施例では、原稿推定処理にて原稿の状態を推定する際、原稿台１１ａに載置された原稿Ｐが定型用紙であると仮定して、原稿台１１ａに載置された原稿の状態を推定するようにした。従って、定型用紙が原稿台１１ａに載置されている場合には、読取可能領域Ｒ０の一部をプレスキャンをする程度でも、正確に原稿サイズや原稿の傾き、原稿の載置領域を推定することができ、この推定結果に基づき、適切に読取領域や変倍率、傾き補正量を設定して、記録紙に、適切なコピー画像を印刷することができる。
【０１７２】
特に、本実施例では、先端部プレスキャン処理により得られたプレスキャン画像データを、エッジ画像データに変換して、このエッジ画像データから、右エッジ、左エッジ及び下エッジに対応するエッジ点を抽出し、これらの近似直線から原稿の角位置を推定するようにした。
【０１７３】
具体的に、本実施例では、右エッジ近似直線が傾いており原稿が正確に載置されていないと考えられるときであって、右エッジ近似直線、左エッジ近似直線、下エッジ近似直線の確度が高いと考えられるとき、右エッジ近似直線と下エッジ近似直線との交点を右下角位置と推定し、左エッジ近似直線と下エッジ近似直線との交点を左下角位置と推定するようにした。
【０１７４】
従って、本実施例によれば、プレスキャン画像データに原稿の全体像が現れていない場合もさることながら、原稿が正確に載置されておらず、原稿の角が折れていたり、原稿の角が読取可能領域外にある場合等のように原稿の角がプレスキャン結果には現れていない場合にも、適切に原稿の角位置を推定して、原稿の状態（サイズ等）を推定することができる。
【０１７５】
尚、本実施例では、原稿台１１ａの端部が読取可能領域外となっているため、フレーム１３ａの内側左下角に原稿Ｐの左下角が正確に突き当てられると、原稿の左エッジ及び下エッジを検出することができない。従って、本実施例では、原稿の傾きが微小量である場合には、右エッジ近似直線のみで、原稿のサイズ等を推定しているが、原稿の傾きがある程度の大きさある場合でも、左エッジや下エッジを正確に検出することができない場合がある。
【０１７６】
一方、本実施例では、マークＭＫで原稿の突き当てを指示しているので、原稿が傾いているとしても、原稿の載置状態が、正しい原稿の載置状態から大きくずれていることは考えにくく、原稿が左側に傾いている場合には、原稿の左下角が原稿台１１ａとフレーム１３ａとの境界ＢＤの段差に突き当たっている可能性が高く、原稿が右側に傾いている場合には、原稿の右下角が上記段差に突き当たっている可能性が高い。
【０１７７】
このため、本実施例では、原稿が傾いているときであって、右エッジ、左エッジ及び下エッジを正確に検出することができなかったとき、右エッジの検出結果が一番正しいと取り扱うと共に、原稿が左側に傾いている場合には、原稿の左下角が原稿台１１ａとフレーム１３ａとの境界の段差に突き当たっているとして、原稿が右側に傾いている場合には、原稿の右下角が上記段差に突き当たっているとして、原稿の左下角位置及び右下角位置を推定するようにした。
【０１７８】
従って、本実施例によれば、右エッジ、左エッジ及び下エッジを正確に検出することができない場合においても、概ね正しく原稿のサイズや傾き・原稿の載置領域を推定することができる。
【０１７９】
尚、本発明の一部プレスキャン手段は、ＣＰＵ７０が実行するＳ３１０の処理及び読取制御部２０の処理により実現され、角推定手段は、ＣＰＵ７０が実行するＳ３１５の処理及び原稿推定処理（Ｓ３２０）におけるＳ４１０〜Ｓ４８５の処理により実現されている。この他、原稿推定手段は、Ｓ４９０〜Ｓ４９７の処理により実現され、読取領域決定手段は、ＣＰＵ７０が実行するＳ３６０の処理により実現されている。
【０１８０】
また、本発明の全体プレスキャン手段は、ＣＰＵ７０が実行するＳ２１０の処理及び読取制御部２０の処理により実現され、副原稿推定手段は、Ｓ２１５，Ｓ２２０の処理により実現され、切替手段は、Ｓ１１０，Ｓ１３０の処理により実現されている。
【０１８１】
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、コンタクトイメージセンサを読取ユニットとして備えるディジタル複合機１に、本発明を適用した例を説明したが、本発明は、コンタクトイメージセンサを読取ユニットとして備える画像読取装置に限定されるものではないことは言うまでもない。
【０１８２】
この他、上記実施例では、右エッジ近似直線から、原稿の傾き角θを求めるようにしたが（Ｓ４９３）、Ｓ４９３では、第一又は第二角位置推定処理にて推定した原稿の左下角と右下角の位置座標に基づき、当該左下角と右下角を結ぶ線分がＸ軸となす角度を、原稿の傾き角θとして求めても良い。
【図面の簡単な説明】
【０１８３】
【図１】ディジタル複合機１の構成を表す説明図である。
【図２】読取ガラス１１の読取可能領域Ｒ０を示した説明図である。
【図３】ＣＰＵ７０が実行する複写制御処理を表すフローチャートである。
【図４】ＣＰＵ７０が実行する第一複写処理を表すフローチャート（ａ）及び第二複写処理を表すフローチャート（ｂ）である。
【図５】全体プレスキャン処理の読取領域及び先端部プレスキャン処理の読取領域を表した説明図である。
【図６】ＣＰＵ７０が実行する原稿推定処理を表すフローチャートである。
【図７】ＣＰＵ７０が実行する右エッジ検出処理を表すフローチャートである。
【図８】エッジ画像データの構成を示した説明図である。
【図９】原稿右エッジデータの確定手法を説明した説明図である。
【図１０】ＣＰＵ７０が実行する左エッジ検出処理を表すフローチャートである。
【図１１】ＣＰＵ７０が実行する下エッジ検出処理を表すフローチャートである。
【図１２】ＣＰＵ７０が実行する第一角位置推定処理を表すフローチャートである。
【図１３】原稿左下角位置及び原稿右下角位置の推定方法を示した説明図である。
【図１４】原稿左下角位置及び原稿右下角位置の推定方法を示した説明図である。
【図１５】ＣＰＵ７０が実行する第二角位置推定処理を表すフローチャートである。
【図１６】原稿左下角位置及び原稿右下角位置の推定方法を示した説明図である。
【符号の説明】
【０１８４】
１…ディジタル複合機、１０…画像読取部、１１…読取ガラス、１１ａ…原稿台、１３…筐体、１３ａ…フレーム、１５…読取ユニット、１６…搬送機構、１７…モータ、２０…読取制御部、３０…印刷部、４０…印刷制御部、５０…表示操作部、６０…通信部、７０…ＣＰＵ、８０…ＲＡＭ、９０…フラッシュメモリ、ＭＫ…マーク、Ｐ…原稿、Ｒ０…読取可能領域
【図１】
0005205963.tif 000002
【図２】
0005205963.tif 000003
【図３】
0005205963.tif 000004
【図４】
0005205963.tif 000005
【図５】
0005205963.tif 000006
【図６】
0005205963.tif 000007
【図７】
0005205963.tif 000008
【図８】
0005205963.tif 000009
【図９】
0005205963.tif 000010
【図１０】
0005205963.tif 000011
【図１１】
0005205963.tif 000012
【図１２】
0005205963.tif 000013
【図１３】
0005205963.tif 000014
【図１４】
0005205963.tif 000015
【図１５】
0005205963.tif 000016
【図１６】
0005205963.tif 000017