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