以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1(a)は、本発明の画像読取装置の一実施形態であるスキャナ10の電気的構成を示すブロック図である。詳細は後述するが、本実施形態のスキャナ10は、ADF19により搬送される原稿をCIS17により読み取る場合に、当該原稿が異常画像を生じさせる位置にて読み取られる状況が生じるか否かに応じた制御を行うよう構成される。
スキャナ10には、CPU11、ROM12、RAM13、EEPROM14、操作部15、LCD16、CIS17、読取位置移動部18、ADF19、リアセンサ20、USBインターフェイス(USB_I/F)21、ネットワークインターフェイス(ネットワークI/F)22が主に設けられる。これらの各部11〜22は、バスライン23を介して互いに接続される。
CPU11は、ROM12に記憶される固定値やプログラム、RAM13に記憶されているデータに従って、スキャナ10の各部を制御する。ROM12は、読み出し専用のメモリである。
ROM12には、スキャナ10の動作を制御する制御プログラム12aや、制御プログラム12aを実行する際に参照する定数やテーブルなどが格納される。後述する図3から図7のフローチャートに示す各処理は、CPU11が制御プログラム12aに従い実行する処理である。
RAM13は、CPU11の処理に必要な情報を一時的に記憶する書換可能な揮発性のメモリである。EEPROM14は、書換可能であるとともに、電源遮断後も内容を保持可能な不揮発性のメモリである。EEPROM14には、図1(b)を参照して後述する定型原稿テーブル14aが設けられる。
操作部15は、スキャナに設定値や指示など入力するためのものである。操作部15としては、LCD16に重ねて設けられるタッチパネルや、メカニカルキーなどが例示される。LCD16は、各種画面を表示する液晶表示装置である。
CIS17は、コンタクトイメージセンサ(Contact Image Sensor)で原稿を読み取る読取部である。CIS17は、主走査方向に直線状に配列された複数の受光素子を有するリニアイメージセンサ、RGB3色の発光ダイオードを有する光源、原稿で反射された反射光をイメージセンサの各受光素子に結像させるロッドレンズアレイなどを有する。
主走査方向とは、プラテンガラス44,45(図2参照)の面に平行な方向であり、かつ、読取位置移動部18によるCIS17の移動方向に直交する方向である。主走査方向は、ADF19によりプラテンガラス44,45上を搬送される原稿の搬送方向に直交する向きでもある。
読取位置移動部18は、CIS17を副走査方向に移動させるためのものである。読取位置移動部18は、ステッピングモータであるモータ、当該モータをステップ駆動するための駆動信号を生成するモータ駆動部などを含む。副走査方向とは、ADF19によりプラテンガラス44,45上を搬送される原稿の搬送方向に沿った方向であり、矢印F方向または矢印B方向(図2参照)である。
ADF19は、原稿トレイ58(図2参照)にセットされた原稿を、搬送経路57(図2参照)に沿ってCIS17による読取位置まで搬送させるとともに、CIS17による読み取り後の原稿を排紙トレイ59(図2参照)まで搬送させる。
リアセンサ20は、ADF19により搬送される原稿を検出するためのセンサである。リアセンサ20は、フォトセンサ等から構成される。リアセンサ20は、リアセンサ20が原稿を検出するか否かに応じて、出力レベルの異なる信号を出力する。本実施形態において、リアセンサ20は、当該リアセンサ20が原稿を検出しない場合にオフ信号を出力し、原稿を検出した場合にオン信号を出力する。スキャナ10は、リアセンサ20から出力される信号に基づいて、リアセンサ20の位置における原稿の有無を検知できる。
USB_I/F21は、USBプラグを介して、例えば、USBメモリなどの記憶媒体や、パーソナルコンピュータやハードディスクなどの他の装置を通信可能に接続するための装置であり、周知の装置で構成される。ネットワークI/F22は、スキャナ10を、LANやインターネットなどのネットワーク(図示せず)に接続するためのインターフェイスである。
図1(b)は、EEPROM14に設けられる定型原稿テーブル14aを説明するための模式図である。定型原稿テーブル14aは、スキャナ10が利用可能な定型サイズの原稿(以下「定型原稿」と称す)について、原稿の主走査方向および副走査方向の長さを各々格納したテーブルである。なお、「定型サイズ」とは、JIS規格などの各種規格により標準化された用紙のサイズである。
定型原稿テーブル14aには、原稿サイズ14a1に対し、主走査長14a2と、副走査長14a3とが関連付けられている。スキャナ10が利用可能な定型サイズの各々が、原稿サイズ14a1の値として格納される。原稿サイズ14a1は、規格サイズが同じであっても、原稿トレイ58にセットされる原稿の置き方に応じて区別される。つまり、同じA4サイズであっても、原稿の置き方が「縦置き」であるか「横置き」であるかに応じて異なる原稿サイズ14a1として区別される。なお、「縦置き」は、原稿の長辺をADF19による搬送方向にする原稿の置き方である。「横置き」は、原稿の短辺をADF19による搬送方向にする原稿の置き方である。
主走査長14a2には、斜行することなく搬送される原稿の主走査長、すなわち、主走査方向の長さが格納される。副走査長14a3には、斜行することなく搬送される原稿の副走査長、すなわち、副走査方向の長さが格納される。原稿が「縦置き」である場合、主走査長14a2には、原稿の短辺の長さが格納され、副走査長14a3には、原稿の長辺の長さが格納される。一方、原稿が「横置き」である場合、主走査長14a2には、原稿の長辺の長さが格納され、副走査長14a3には、原稿の短辺の長さが格納される。
原稿が縦置きであるか横置きであるかに応じて、主走査長14a2の値が同じである2種類の原稿サイズ14a1が存在する場合がある。例えば、図1(b)に示すように、定型原稿テーブル14aには、主走査長14a2が210mmである原稿サイズ14a1として、縦置きのA4サイズと、横置きのA5サイズとが存在する。
図2は、スキャナ10の一部を簡略化して示す模式図である。スキャナ10の筐体43は、概ね箱型に形成されており、上部に第1プラテンガラス44と、第2プラテンガラス45とが並設されている。
原稿カバー46は、各プラテンガラス44,45を覆う閉姿勢と、各プラテンガラス44,45を開放する開姿勢とに回動可能に筐体43に連結されている。原稿カバー46には、ADF19、原稿トレイ58、排紙トレイ59などが設けられている。
ADF19の内部には、分離ローラ50、分離ローラ50を軸支する軸に基端側を軸支されたアーム51の先端部に回転自在に設けられている吸入ローラ52、複数の搬送ローラ53,54、排紙ローラ55、これらに圧接する複数の従動ローラ56が設けられている。原稿はこれらのローラに搬送されて搬送経路57を搬送され、CIS17によって読み取られる位置を通過して、排紙トレイ59に排紙される。
CIS17は、スキャナ10の筐体43の内部に収容されている。CIS17は、ADF19により搬送される原稿を読み取る場合、第2プラテンガラス45の直下にて停止し、その位置を読取位置として、光源の色を順次切り替えながら、第2プラテンガラス45を介して原稿を読み取る。一方、CIS17は、第1プラテンガラス44上に載置される原稿を読み取る場合、読取位置移動部18を用いて、CIS17を副走査方向(矢印F方向または矢印B方向)に一定速度で移動させつつ、光源の色を順次切り替えながら原稿を読み取る。
第2プラテンガラス45を介してCIS17に対向する側には、CIS17が第2プラテンガラス45を介して読み取ることのできる白色の基準板60が設けられている。本実施形態では、ADF19を用いた原稿の読み取りを行う場合、原稿の搬送開始に先立ち、CIS17が基準板60を読み取ることにより、第2プラテンガラス45上またはCIS17を構成する受光素子上のゴミや傷など、異常画像を発生させる可能性の検出を行う。
リアセンサ20は、CIS17による原稿の読み取り開始タイミングを計るためのセンサとして機能する。具体的に、スキャナ10は、リアセンサ20が原稿を検出したタイミングから、所定の搬送量だけ原稿が搬送されたタイミングで、CIS17による原稿の読み取りを開始する。また、リアセンサ20は、CIS17による原稿の読み取り終了タイミングを計るためのセンサとして機能する。具体的に、スキャナ10は、リアセンサ20が原稿を検出しなくなったタイミングから、所定の搬送量だけ原稿が搬送されたタイミングで、CIS17による原稿の読み取りを終了する。
ところで、ADF19を用いた原稿の読み取りを行う場合、ADF19による原稿の搬送ずれなどが原因となって、原稿が斜行して搬送されることがある。原稿の斜行を考慮に入れた場合、同じゴミの位置であっても、ある斜行角度では、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じないが、別の斜行角度では、上記状況が生じることがある。これに対し、本実施形態のスキャナ10は、ADF19を用いた原稿の読み取りを行う場合に、原稿の斜行角度を考慮して、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じるか否かを判断し、その判断結果に応じた制御を行う。
図3から図7を参照して、上記構成のスキャナ10のCPU11が制御プログラム12aに従って実行する各処理について説明する。なお、図3から図7に示す各フローチャートを説明する上で、必要に応じて、図8または図9を参照する。
図3は、ADF読取処理を示すフローチャートである。本処理は、ADF19を用いて原稿を搬送しながら、当該原稿を読み取る処理である。本処理は、ADF19を用いた原稿の読取指示をCPU11が受け付けたことに応じて開始する。
CPU11は、準備処理を実行する(S301)。具体的に、CPU11は、読取位置移動部18を用いて、CIS17を、副走査方向に移動させ、所定の読取位置に配置する。また、CPU11は、光量の調整やシェーディング補正用データの取得などを行う。CPU11は、ゴミ位置座標記憶処理を実行する(S302)。詳細は図4(a)を参照して後述するが、ゴミ位置座標記憶処理(S302)は、第2プラテンガラス45上のゴミや傷など、異常画像を発生させる可能性が検出された場合に、その位置の座標(Xg,Yg)をRAM13に記憶する処理である。以下、「異常画像を発生させる可能性が検出された位置」を「ゴミ位置」と称する。また、本実施形態では、「異常画像を発生させる可能性」が、第2プラテンガラス45上のゴミであるとする。
CPU11は、原稿トレイ58にセットされている原稿の、ADF19による搬送を開始する(S303)。CPU11は、リアセンサ20からオン信号が入力された後、原稿における搬送方向の先端(以下、単に「先端」と称す)がCIS17の読取位置まで搬送されたかを判断する(S304)。つまり、CPU11は、リアセンサ20が原稿の先端を検出してから、その先端がCIS17の読取位置まで搬送されたかを判断する。当該判断は、所定のカウンタ(以下「搬送カウンタ」と称す)によりカウントされる、搬送ローラ53,54を駆動するモータ(図示せず)のステップ数に基づいて行われる。
具体的に、リアセンサ20からオン信号が入力されてからのステップ数が、リアセンサ20の検出位置からCIS17の読取位置までの搬送距離に相当するステップ数に達した場合、CPU11は、S304の判断を肯定する。CPU11は、その判断が肯定されるまで、S304の判断を実行する(S304:No)。CPU11がS304の判断を肯定した場合(S304:Yes)、CPU11は、CIS17による原稿の読み取りを開始する(S305)。
CPU11は、原稿先端解析処理を実行する(S306)。詳細は図4(b)を参照して後述するが、原稿先端解析処理(S306)は、原稿の先端側におけるエッジ画像に基づいて、当該原稿の主走査長Xsizeを算出する処理である。CPU11は、定型原稿テーブル14aを参照して、主走査長14a2が主走査長Xsizeに一致する原稿サイズ14a1があるかを判断する(S307)。
定型原稿テーブル14aに該当する原稿サイズ14a1がないと判断した場合(S307:No)、CPU11は、搬送中の原稿が定型原稿でない、すなわち、非定型原稿であるとして、非定型原稿処理を実行し(S320)、本処理を終了する。非定型原稿処理(S320)の詳細については、図6を参照して後述する。
一方、定型原稿テーブル14aに該当する原稿サイズ14a1があると判断した場合(S307:Yes)、CPU11は、搬送中の原稿が定型原稿であるとして、定型原稿後端推定処理を実行する(S308)。詳細は図5(a)を参照して後述するが、定型原稿後端推定処理(S308)は、主走査長が主走査長Xsizeである定型原稿について、その後端座標を推定する処理である。主走査長14a2が主走査長Xsizeに一致する原稿サイズ14a1が2つある場合、CPU11は、それら2つの原稿サイズについて、原稿の後端座標を推定する。
主走査長14a2が主走査長Xsizeに一致するとされた原稿サイズ14a1が縦置きのものだけである場合(S309:Yes)、CPU11は、処理をS314に移行する。一方、主走査長14a2が主走査長Xsizeに一致するとされた原稿サイズ14a1が縦置きに限らない場合(S309:No)、CPU11は、ゴミ影響判定処理/定型横置きを実行する(S310)。詳細は図5(b)を参照して後述するが、ゴミ影響判定処理/定型横置き(S310)は、横置きであると判定された搬送中の原稿が、RAM13に記憶される座標(Xg,Yg)に位置するゴミの影響を受けるか否かを判定する処理である。
ゴミ影響判定処理/定型横置き(S310)において、搬送中の原稿がゴミの影響を受けると判定された場合(S311:Yes)、CPU11は、LCD16などを利用してエラーを報知し(S321)、CPU11は、CIS17による原稿の読み取りを終了する(S317)。S317の処理後、CPU11は、原稿が排紙トレイ59に排紙されるのを待機する(S318:No)。CPU11は、原稿の排紙が完了すると(S318:Yes)、ADF19による搬送を終了し(S319)、本処理を終了する。よって、搬送中の原稿がゴミの影響を受けると判定された場合には、原稿の読み取りは中止され、以降の原稿の読み取りは行われない。なお、原稿の読み取りが中止された場合、それまでの読み取りによって得られた画像データは破棄される。
一方、搬送中の原稿がゴミの影響を受けないと判定された場合(S311:No)、CPU11は、リアセンサ20からオフ信号が入力された後、原稿における搬送方向の後端(以下、単に「後端」と称す)がCIS17の読取位置まで搬送されたかを判断する(S312)。つまり、CPU11は、リアセンサ20が原稿を検出しなくなってから、原稿の後端がCIS17の読取位置まで搬送されたかを判断する。当該判断もまた、S307と同様、搬送カウンタによりカウントされるモータ(図示せず)のステップ数に基づいて行われる。具体的に、リアセンサ20からオフ信号が入力されてからのステップ数が、リアセンサ20の検出位置からCIS17の読取位置までの搬送距離に相当するステップ数に達した場合、CPU11は、S312の判断を肯定する。
CPU11がS312の判断を肯定した場合(S312:Yes)、搬送中の原稿の読み取りを終了すべきタイミングであることを示す。よって、かかる場合、CPU11は、CIS17による原稿の読み取りを終了する(S317)。一方、CPU11がS312の判断を肯定しない場合(S312:No)、CPU11は、横置きの原稿分の搬送が完了したかを判断する(S313)。当該判断もまた、S307およびS312と同様、搬送カウンタによりカウントされるモータのステップ数に基づいて行われる。具体的に、リアセンサ20からオン信号が入力されてからのステップ数が、主走査長14a2が主走査長Xsizeに一致するとされた横置きの原稿サイズ14a1の副走査長14a3に相当するステップ数に達したことを条件として、CPU11は、S313の判断を肯定する。CPU11がS313の判断を肯定しない場合(S313:No)、CPU11は、S312の判断を実行する。
CPU11がS313の判断を肯定した場合(S313:Yes)、搬送中の原稿が、主走査長14a2が主走査長Xsizeに一致するとされた縦置きの原稿サイズ14a1であることを示す。よって、かかる場合、CPU11は、ゴミ影響判定処理/定型縦置きを実行する(S314)。詳細は図5(c)を参照して後述するが、ゴミ影響判定処理/定型縦置き(S314)は、縦置きであると判定された搬送中の原稿が、RAM13に記憶される座標(Xg,Yg)に位置するゴミの影響を受けるか否かを判定する処理である。
ゴミ影響判定処理/定型縦置き(S314)において、搬送中の原稿がゴミの影響を受けると判定された場合(S315:Yes)、CPU11は、S321と同様にエラーを報知し(S322)、CPU11は、CIS17による原稿の読み取りを終了する(S317)。よって、縦置きと判定された原稿についても、当該原稿がゴミの影響を受けると判定された場合には、原稿の読み取りは中止され、以降の原稿の読み取りは行われない。
一方、搬送中の原稿がゴミの影響を受けないと判定された場合(S315:No)、CPU11は、リアセンサ20からオフ信号が入力された後、原稿の後端がCIS17の読取位置まで搬送されたかを判断する(S316)。CPU11は、当該判断をS312と同様に行う。CPU11は、その判断が肯定されるまで、S316の判断を実行する(S316:No)。CPU11がS316の判断を肯定した場合(S316:Yes)、CPU11は、CIS17による原稿の読み取りを終了する(S317)。
上記ADF読取処理において、搬送中の原稿が定型原稿であると判断された場合に実行されるS308〜S316の処理によれば、ゴミ影響判定処理/定型横置き(S310)にて、搬送中の原稿がゴミの影響を受けると判定された場合、搬送中の原稿が縦置きの原稿であったとしても、エラー処理(S322)が実行される。その理由としては、主走査長Xsizeが同じである場合、縦置きの原稿の副走査長は、横置きの原稿の副走査長に比べて長いので、S310にて、横置きの原稿がゴミの影響を受けると判定された場合、縦置きの原稿であっても同様の判定結果が得られるからである。
このように、ゴミ影響判定処理/定型横置き(S310)が、ゴミ影響判定処理/定型縦置き(S314)に先立って実行されるので、搬送中の原稿が縦置きであるか否かが(S312,S313)にて判断される前であっても、原稿がゴミの影響を受けるかを早期に判定できる。また、搬送中の原稿が縦置きであっても、ゴミ影響判定処理/定型横置き(S310)の実行機会が限られることになるので、その分、制御負荷も軽減できる。
図4(a)は、上述したゴミ位置座標記憶処理(S302)を示すフローチャートである。CPU11は、ゴミ検知フラグに0を設定する(S401)。「ゴミ検知フラグ」は、異常画像を発生させる可能性が検出されたか否かを特定するフラグであり、RAM13に設けられる。ゴミ検知フラグに1が設定されている場合、異常画像を発生させる可能性(本実施形態では、第2プラテンガラス45上のゴミ)が検出されたことを示す。一方、ゴミ検知フラグに0が設定されている場合、異常画像を発生させる可能性が検出されていないことを示す。
CPU11は、CIS17に、読取位置で、第2プラテンガラス45を介してCIS17に対向する位置に設けられている白色の基準板60を1ライン分読み取らせる(S402)。なお、基準板60は、白色の基準板に限らず、灰色の基準板などであってもよい。CPU11は、S402の読み取りによって得られた画像データにおける先頭の画素を対象画素に設定する(S403)。
CPU11は、対象画素の画素値が閾値を超えるかを判断する(S404)。対象画素の画素値が閾値を超えないと、CPU11が判断した場合(S404:No)、CPU11は、基準板60を読み取った画像データに異常がある、すなわち、ゴミが検出されたとして、ゴミ検知フラグに1を設定し(S405)、処理をS406に移行する。一方、対象画素の画素値が閾値を越えると、CPU11が判断した場合(S404:Yes)、CPU11は、S405の処理をスキップして、処理をS406に移行する。
S406において、CPU11は、S402の読み取りによって得られた画像データを構成する全画素についてS404の判断を行ったかを判断する。CPU11がS406の判断を否定した場合(S406:No)、CPU11は、対象画素を次の画素に移動し(S409)、処理をS404に移行する。CPU11がS406の判断を肯定した場合(S406:Yes)、CPU11は、ゴミ検知フラグに1が設定されているかを判断する(S407)。ゴミ検知フラグに1が設定されていないと、CPU11が判断した場合(S407:No)、CPU11は、本処理を終了する。
一方、ゴミ検知フラグに1が設定されていると、CPU11が判断した場合(S407:Yes)、CPU11は、画素値が閾値を超えない画素の位置、すなわち、ゴミ位置の座標(Xg,Yg)をRAM13に記憶する(S406)。本明細書において、座標(X、Y)のXは、主走査方向の位置(以下「主走査位置」と称す)を示し、Yは、副走査方向の位置(以下「副走査位置」と称す)を示す。なお、複数のゴミ位置が存在する場合、複数のゴミ位置について各々の座標(Xg,Yg)がRAM13に記憶される。
図4(b)は、上述した原稿先端解析処理(S306)を示すフローチャートである。CPU11は、原稿の先端から所定長さ分(本実施形態では、3cm分)の読み取りにより得られた画像データに基づき、原稿のエッジ画像を取得する(S421)。CPU11は、エッジ画像から、原稿における搬送方向の先端側となる辺(以下「上辺」と称す)を示す直線L1(図8,図9参照)の直線式を算出する(S422)。CPU11は、直線L1の傾きを斜行角度Aとする。
なお、図8は、定型原稿に対する本発明の適用例を示す図であり、図9は、非定型原稿に対する本発明の適用例を示す図である。より詳細には、図8は、エッジ画像の読取分、すなわち、原稿の先端から所定長さ分の読み取りが行われた状態における、第2プラテンガラス45に対する定型原稿P1の位置を示す模式図である。一方、図9は、エッジ画像の読取分の読み取りが行われた状態における、第2プラテンガラス45に対する非定型原稿P2の位置を示す模式図である。
CPU11は、エッジ画像から、原稿の左辺および右辺をそれぞれ示す直線L2,L3(図8,図9参照)について、直線式をそれぞれ算出する(S423)。なお、「左辺」は、上辺に隣接する2辺のうち、第2プラテンガラス45を臨む方向から見た場合に向かって上辺に対して左側に位置する辺である。一方、「右辺」は、上記左辺の対辺である。
CPU11は、図8,図9に示すように、直線L1と直線L2との交点、および、直線L1と直線L3との交点を、それぞれ、左上角座標(Xul,Yul)および右上角座標(Xur,Yur)として算出する(S424)。 CPU11は、左上角座標(Xul,Yul)および右上角座標(Xur,Yur)と、斜行角度Aとから、三平方の定理や三角関数などを用いて、原稿の主走査長Xsizeを算出し(S425)、本処理を終了する。
図5(a)は、上述した定型原稿後端推定処理(S308)を示すフローチャートである。CPU11は、定型原稿テーブル14aから、主走査長14a2がS425にて算出された主走査長Xsizeに一致する原稿サイズ14a1を取得する(S501)。主走査長14a2が主走査長Xsizeに一致する原稿サイズ14a1が、縦置きと横置きとで2つ存在する場合、CPU11は、それら2つの原稿サイズ14a1を取得する。
CPU11は、直線L1の直線式と、S501にて取得した原稿サイズ14a1に対応する副走査長14a4の値とから、原稿における上辺に対向する辺(以下「下辺」と称す)を示す直線の直線式を算出する(S502)。より詳細には、図8に示すように、縦置きの原稿サイズ14a1の下辺を示す直線を直線L4とし、横置きの原稿サイズ14a1の下辺を示す直線を直線L5とする場合、CPU11は、直線L4および/または直線L5の直線式を算出する。
S501にて縦置きの原稿サイズ14a1が取得された場合(S503:Yes)、CPU11は、図8に示すように、直線L4と直線L2との交点、および、直線L4と直線L3との交点を、それぞれ、左下角座標(Xllp,Yllp)および右下角座標(Xlrp,Ylrp)として算出する(S504)。一方、S501にて縦置きの原稿サイズ14a1が取得されていない場合(S503:No)、CPU11は、S504の処理をスキップする。
S501にて横置きの原稿サイズ14a1が取得された場合(S505:Yes)、CPU11は、図8に示すように、直線L5と直線L2との交点、および、直線L5と直線L3との交点を、それぞれ、左下角座標(Xllh,Yllh)および右下角座標(Xlrh,Ylrh)として算出し(S506)、本処理を終了する。一方、S501にて横置きの原稿サイズ14a1が取得されていない場合(S505:No)、CPU11は、S506の処理をスキップする。
図5(b)は、上述したゴミ影響判定処理/定型横置き(S310)を示すフローチャートである。CPU11は、斜行角度A、すなわち、S422にて算出した直線L1の傾きが0以上であるかを判断する(S521)。
CPU11が斜行角度A≧0°であると判断した場合(S521:Yes)、CPU11は、RAM13に記憶されるゴミ位置の座標(Xg,Yg)のうち、主走査位置Xgが、Xul≦Xg≦Xlrhを満たすかを判断する(S522)。つまり、S522では、ゴミの主走査位置Xgが、図8の上段に示す主操作方向の範囲Whaの範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS522の判断を実行する。
CPU11がS522の判断を肯定する場合、すなわち、Xul≦Xg≦Xlrhが満たされる場合(S522:Yes)、ゴミの主走査位置Xgが範囲Whaの範囲内に位置することを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じる。つまり、CIS17が第2プラテンガラス45上のゴミを原稿に重ねて読み取る状況が生じるので、CPU11は、搬送中の原稿がゴミの影響を受けると判定し(S523)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、少なくも1つのゴミ位置について、Xul≦Xg≦Xlrhが満たされる場合に、CPU11は、S522の判断を肯定する。
一方、CPU11がS522の判断を否定する場合、すなわち、Xul≦Xg≦Xlrhが満たされない場合(S522:No)、ゴミの主走査位置Xgが範囲Whaの範囲内に位置しないことを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況、すなわち、CIS17が第2プラテンガラス45上のゴミを原稿に重ねて読み取る状況が生じないので、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S526)、本処理を終了する。
S521において、CPU11が斜行角度A≧0°でないと判断した場合(S521:No)、すなわち、斜行角度A<0°である場合、CPU11は、RAM13に記憶されるゴミ位置の座標(Xg,Yg)のうち、主走査位置Xgが、Xllh≦Xg≦Xurを満たすかを判断する(S524)。つまり、S524では、ゴミの主走査位置Xgが、図8の下段に示す主操作方向の範囲Whbの範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS524の判断を実行する。
CPU11がS524の判断を肯定する場合、すなわち、Xllh≦Xg≦Xurが満たされる場合(S524:Yes)、ゴミの主走査位置Xgが範囲Whbの範囲内に位置することを示す。かかる場合、CPU11は、搬送中の原稿がゴミの影響を受けると判定し(S525)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、少なくも1つのゴミ位置について、Xllh≦Xg≦Xurが満たされる場合に、CPU11は、S524の判断を肯定する。
一方、CPU11がS524の判断を否定する場合、すなわち、Xllh≦Xg≦Xurが満たされない場合(S524:No)、ゴミの主走査位置Xgが範囲Whbの範囲内に位置しないことを示す。かかる場合、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S526)、本処理を終了する。
図5(c)は、上述したゴミ影響判定処理/定型縦置き(S314)を示すフローチャートである。CPU11は、斜行角度Aが0以上であるかを判断する(S541)。CPU11が斜行角度A≧0°であると判断した場合(S541:Yes)、CPU11は、RAM13に記憶されるゴミ位置の座標(Xg,Yg)のうち、主走査位置Xgが、Xul≦Xg≦Xlrpを満たすかを判断する(S542)。つまり、S542では、ゴミの主走査位置Xgが、図8の上段に示す主操作方向の範囲Wpaの範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS542の判断を実行する。
CPU11がS542の判断を肯定する場合、すなわち、Xul≦Xg≦Xlrpが満たされる場合(S542:Yes)、ゴミの主走査位置Xgが範囲Wpaの範囲内に位置することを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じる。つまり、CIS17が第2プラテンガラス45上のゴミを原稿に重ねて読み取る状況が生じるので、CPU11は、搬送中の原稿がゴミの影響を受けると判定し(S543)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、少なくも1つのゴミ位置について、Xul≦Xg≦Xlrhが満たされる場合に、CPU11は、S542の判断を肯定する。
一方、CPU11がS542の判断を否定する場合、すなわち、Xul≦Xg≦Xlrpが満たされない場合(S542:No)、ゴミの主走査位置Xgが範囲Wpaの範囲内に位置しないことを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じないので、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S546)、本処理を終了する。
S541において、CPU11が斜行角度A≧0°でない判断した場合(S541:No)、すなわち、斜行角度A<0°である場合、CPU11は、RAM13に記憶されるゴミ位置の座標(Xg,Yg)のうち、主走査位置Xgが、Xllp≦Xg≦Xurを満たすかを判断する(S544)。つまり、S544では、ゴミの主走査位置Xgが、図8の下段に示す主操作方向の範囲Wpbの範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS544の判断を実行する。
CPU11がS544の判断を肯定する場合、すなわち、Xllh≦Xg≦Xurが満たされる場合(S544:Yes)、ゴミの主走査位置Xgが範囲Wpbの範囲内に位置することを示す。かかる場合、CPU11は、搬送中の原稿がゴミの影響を受けると判定し(S545)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、少なくも1つのゴミ位置について、Xllh≦Xg≦Xurが満たされる場合に、CPU11は、S544の判断を肯定する。
一方、CPU11がS544の判断を否定する場合、すなわち、Xllh≦Xg≦Xurが満たされない場合(S544:No)、ゴミの主走査位置Xgが範囲Wpbの範囲内に位置しないことを示す。かかる場合、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S546)、本処理を終了する。
図6は、上述した非定型原稿処理(S320)を示すフローチャートである。CPU11は、ゴミ影響判定処理/非定型を実行する(S601)。詳細は図7を参照して後述するが、ゴミ影響判定処理/非定型(S601)は、原稿の先端から所定長さ分のエッジ画像に基づいて、非定型原稿であると判定された搬送中の原稿が、RAM13に記憶される座標(Xg,Yg)に位置するゴミの影響を受けるか、受けないか、その可能性があるかを判定する処理である。
ゴミ影響判定処理/非定型(S601)において、搬送中の原稿がゴミの影響を受けると判定された場合(S602:ゴミ影響あり)、CPU11は、S321やS322と同様にエラーを報知し(S609)、CPU11は、CIS17による原稿の読み取りを終了する(S605)。S605の処理後、CPU11は、S318およびS319と同様、原稿の排紙後にADF19による搬送を終了し(S606,S607)、本処理を終了する。よって、非定型原稿であると判定された原稿であっても、当該原稿がゴミの影響を受けると判定された場合、原稿の読み取りは中止され、以降の原稿の読み取りは行われない。
ゴミ影響判定処理/非定型(S601)において、搬送中の原稿がゴミの影響を受けないと判定された場合(S602:ゴミ影響なし)、CPU11は、リアセンサ20からオフ信号が入力された後、原稿の後端がCIS17の読取位置まで搬送されたかを判断する(S608)。CPU11は、当該判断をS312やS316と同様に行う。CPU11は、その判断が肯定されるまで、S608の判断を実行する(S608:No)。CPU11がS608の判断を肯定した場合(S608:Yes)、CPU11は、CIS17による原稿の読み取りを終了する(S605)。よって、原稿がゴミの影響を受けないと判定された場合には、原稿の後端まで通常通りに原稿の読み取りが行われる。
一方、ゴミ影響判定処理/非定型(S601)において、搬送中の原稿がゴミの影響を受ける可能性があると判定された場合(S302:ゴミ影響可能性あり)、CPU11は、ゴミ影響距離Dから、現在までに原稿が搬送された距離を差し引いた距離が、リアセンサ20の検出位置からCIS17の読取位置までの距離以下であるかを判断する(S603)。なお、現在までに原稿が搬送された距離は、リアセンサ20からオン信号が入力された後に、搬送カウンタによりカウントされたステップ数から算出される。
ゴミ影響距離Dは、後述するゴミ影響判定処理/非定型(S601)の中で算出される距離であり、図9に示すように、ゴミの主走査位置Xgと、X=Xgと直線L3との交点Q1、または、X=Xgと直線L2との交点Q2との距離である。つまり、ゴミ影響距離Dから、現在までに原稿が搬送された距離を差し引いた距離は、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じるまでに要する距離(以下「残り距離」と称す)である。
残り距離が、リアセンサ20の検出位置からCIS17の読取位置までの距離以下であることは、原稿の後端の読み取りが終了する前に、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じることを示す。つまり、S603の判断は、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況の発生、つまり、原稿がゴミの影響を受けることが確定したかを判断するものである。
ゴミ影響距離Dから、現在までに原稿が搬送された距離を差し引いた距離、すなわち、残り距離が、リアセンサ20の検出位置からCIS17の読取位置までの距離以下であると、CPU11が判断した場合(S603:Yes)、原稿がゴミの影響を受けることが確定したことを示す。よって、かかる場合、CPU11は、エラーを報知し(S609)、CPU11は、CIS17による原稿の読み取りを終了する(S605)。
残り距離が、リアセンサ20の検出位置からCIS17の読取位置までの距離以下でないと、CPU11が判断した場合(S603:No)、CPU11は、CPU11は、リアセンサ20からオフ信号が入力された後、原稿の後端がCIS17の読取位置まで搬送されたかを判断する(S604)。CPU11は、当該判断をS608と同様に行う。CPU11がS604の判断を肯定しない場合(S604:No)、CPU11は、S604の判断を実行する。一方、CPU11がS604の判断を肯定した場合(S604:Yes)、搬送中の原稿の読み取りが終了したことを示す。よって、かかる場合、CPU11は、CIS17による原稿の読み取りを終了する(S605)。
S602〜S604の処理によれば、ゴミ影響判定処理/非定型(S601)において、搬送中の原稿がゴミの影響を受ける可能性があると判定された場合、原稿の搬送を継続しながら、原稿がゴミの影響を受けることが確定したことを条件として、読み取りを中止する。一方、原稿がゴミの影響を受けることが確定されなければ、最後まで原稿の読み取りが実行される。
上記非定型原稿処理によれば、ゴミ影響距離Dを用いて、原稿を搬送しながら随時実行されるS603の判断は、原稿の先端から所定長さ分のエッジ画像を基づいて行われる、ゴミ影響判定処理/非定型(S601)において、搬送中の原稿がゴミの影響を受ける可能性があると判定された場合に限って実行される。よって、S603の処理に先立ち、ゴミ影響判定処理/非定型(S601)を行うことにより、搬送中の非定型原稿とゴミ位置(Xg,Yg)との位置関係によっては、S603の処理を省くことができるので、その分、処理負荷を軽減できる。
図7は、上述したゴミ影響判定処理/非定型(S601)を示すフローチャートである。CPU11は、RAM13に記憶されるゴミ位置の座標(Xg,Yg)のうち、主走査位置Xgが、Xul≦Xg≦Xurを満たすかを判断する(S701)。つまり、S701では、ゴミの主走査位置Xgが、図9に示す主操作方向の範囲W1の範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS701の判断を実行する。
CPU11がS701の判断を肯定する場合、すなわち、Xul≦Xg≦Xurが満たされる場合(S701:Yes)、ゴミの主走査位置Xgが範囲W1の範囲内に位置することを示す。かかる場合、どのような斜行角度Aの原稿であっても、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じるので、CPU11は、搬送中の原稿がゴミの影響を受けると判定し(S702)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、少なくも1つのゴミ位置について、Xul≦Xg≦Xurが満たされる場合に、CPU11は、S701の判断を肯定する。
一方、CPU11がS701の判断を否定する場合、すなわち、Xul≦Xg≦Xlrhが満たされない場合(S702:No)、CPU11は、斜行角度Aが0°であるかを判断する(S703)。CPU11が斜行角度A=0°であると判断した場合(S703:Yes)、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じないことを示す。よって、かかる場合、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S706)、本処理を終了する。
CPU11が、斜行角度Aが0°でないと判断した場合(S703:No)、斜行角度Aが0より大きいかを判断する(S704)。CPU11が斜行角度A>0°であると判断した場合(S704:Yes)、CPU11は、主走査位置Xgが、Xg<Xulを満たすかを判断する(S705)。つまり、S703では、ゴミの主走査位置Xgが、図9の上段に示す主操作方向の範囲W2aの範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS705の判断を実行する。
CPU11がS705の判断を肯定する場合、すなわち、Xg<Xulが満たされる場合(S705:Yes)、ゴミの主走査位置Xgが範囲W2aの範囲内に位置することを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じないので、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S706)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、全てのゴミ位置について、Xg<Xlrhが満たされる場合に、CPU11は、S705の判断を肯定する。
一方、CPU11がS705の判断を否定する場合、すなわち、Xg<Xulが満たされない場合(S705:No)、ゴミの主走査位置Xgが、図9の上段に示す主操作方向の範囲W3aの範囲内に位置することを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する可能性があるので、CPU11は、図9の上段に示すように、原稿における右辺の直線式L3と、X=Xgとの交点Q1の座標を算出する(S708)。
CPU11は、ゴミ影響距離Dを算出する(S708)。ゴミ影響距離Dは、図9に示すように、ゴミ位置と交点Q1との距離である。CPU11は、ゴミ影響距離Dを、ゴミ位置の座標(Xg,Yg)と、S708にて算出した交点Q1の座標とから算出する。CPU11は、搬送中の原稿がゴミの影響を受ける可能性があると判定し(S709)、本処理を終了する。
S704において、CPU11が斜行角度A>0°でないと判断した場合(S704:No)、すなわち、斜行角度A<0°である場合、CPU11は、主走査位置Xgが、Xur<Xgを満たすかを判断する(S711)。つまり、S711では、ゴミの主走査位置Xgが、図9の下段に示す主操作方向の範囲W2bの範囲内に位置するかの判断が行われる。なお、RAM13に複数のゴミ位置の座標が記憶されている場合、CPU11は、各ゴミ位置の主走査位置XgについてS711の判断を実行する。
CPU11がS711の判断を肯定する場合、すなわち、Xur<Xgが満たされる場合(S711:Yes)、ゴミの主走査位置Xgが範囲W2bの範囲内に位置することを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況が生じないので、CPU11は、搬送中の原稿がゴミの影響を受けないと判定し(S712)、本処理を終了する。RAM13に複数のゴミ位置の座標が記憶されている場合、全てのゴミ位置について、Xur<Xgが満たされる場合に、CPU11は、S712の判断を肯定する。
一方、CPU11がS711の判断を否定する場合、すなわち、Xur<Xgが満たされない場合(S711:No)、ゴミの主走査位置Xgが、図9の下段に示す主操作方向の範囲W3bの範囲内に位置することを示す。かかる場合、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する可能性があるので、CPU11は、図9の下段に示すように、原稿における右辺の直線式L2と、X=Xgとの交点Q2の座標を算出する(S713)。
CPU11は、ゴミ影響距離Dを算出する(S714)。ゴミ影響距離Dは、図9に示すように、ゴミ位置と交点Q2との距離である。CPU11は、ゴミ影響距離Dを、ゴミ位置の座標(Xg,Yg)と、S713にて算出した交点Q2の座標とから算出する。CPU11は、搬送中の原稿がゴミの影響を受ける可能性があると判定し(S715)、本処理を終了する。
本実施形態によれば、原稿の読み取りに先立って行った基準板60の読み取りによりゴミ位置の座標(Xg,Yg)を取得し、原稿のエッジ画像に基づいて、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過するか否かが判断される。そして、搬送される原稿がゴミの上を通過するか否かに応じて、原稿の読み取りが制御される。具体的に、搬送される原稿がゴミの上を通過すると判断された場合、原稿の読み取りが中止されるので、ゴミの読み取りによる異常画像を含む画像、つまり、筋状に延びる黒筋を含む画像の出力を抑制できる。また、原稿がゴミの影響を受けると判断された場合には、エラーが報知されるので、ユーザに、第2プラテンガラス45上のゴミや傷など、異常画像を発生させる可能性の存在を報せることができる。これにより、ユーザは、第2プラテンガラス45の清掃など、上記可能性を解消するために必要な適宜の対応を取ることができる。
特に、本実施形態では、原稿サイズや原稿の斜行角度を考慮して、搬送される原稿がゴミの上を通過するか否かが判断されるので、どのような原稿であっても、どのように搬送される場合であっても、原稿の読み取りを適切に制御できる。
本実施形態によれば、スキャナ10が利用可能な定型原稿のサイズに関する情報が、定型サイズテーブル14aに準備されているので、原稿の先端から所定長さ分のエッジ画像から、読み取り対象の原稿が定型原稿であるか非定型原稿であるかを判断できる。よって、読み取り対象の原稿が定型原稿であるか否かに応じた方法で、搬送される原稿がゴミの上を通過するか否かの判断を行うことができる。定型原稿であると判断された場合には、原稿サイズに応じて取得された原稿の後端左右角の座標に基づいて、搬送される原稿がゴミの上を通過するか否かの判断を行うことができるので、当該判断を、非定型原稿の場合より早期に行うことができる。また、非定型原稿のように原稿の読み取りを行いながらの判断を行う必要もないので、当該判断に係る処理負荷も非定型原稿より低く抑えることができる。
読み取り対象の原稿が定型原稿である場合、主走査長Xsizeの長さが一致するが、原稿が縦置きであるか横置きであるかで異なる2種類の原稿サイズを各々考慮して、搬送される原稿がゴミの上を通過するか否かの判断を行うので、搬送される原稿がゴミの上を通過するか否かの判断を、原稿の置き方に応じて適切に判断できる。
上記実施形態において、スキャナ10が、画像読取装置の一例である。制御プログラム12aが、画像読取プログラムの一例である。CPU11が、制御部の一例である。CIS17が、読取部の一例である。RAM13,EEPROM14が、記憶部の一例である。ADF19が、原稿搬送部の一例である。読取位置移動部18が、移動部の一例である。リアセンサ20が、検出部の一例である。主走査長14a2,副走査長14a3が、原稿サイズ情報の一例である。
S404の処理を実行するCPU11が、検出手段の一例である。S408の処理を実行するCPU11が、位置記憶手段の一例である。S303の処理を実行するCPU11が、移動開始手段の一例である。S305の処理を実行するCPU11が、原稿読取手段の一例である。S522,S524,S542,S544,S603,S701の処理を実行するCPU11が、第1判断手段の一例である。S311,S315,S602,S603の処理を実行するCPU11が、制御手段の一例である。原稿先端解析処理(S306)を実行するCPU11が、先端情報取得手段の一例である。S501の処理を実行するCPU11が、サイズ情報取得手段の一例である。S312,S313の処理を実行するCPU11が、第2判断手段の一例である。S522,S524の処理を実行するCPU11が、横置き判断手段の一例である。S542,S544の処理を実行するCPU11が、縦置き判断手段の一例である。S707,S708,S713,S714の処理を実行するCPU11が、算出手段の一例である。S705,S711の処理を実行するCPU11が、第3判断手段の一例である。S307の処理を実行するCPU11が、第4判断手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、CIS17を移動させながら第1プラテンガラス44上に固定的に載置される原稿を読み取る場合についても、CIS17を構成する受光素子に付いたゴミや傷がある場合に、原稿の斜行角度に応じて、ゴミや傷のある受光素子を用いて原稿を読み取る状況、すなわち、CIS17が第2プラテンガラス45上のゴミを原稿に重ねて読み取る状況が生じることがある。よって、上記実施形態では、ADF19により搬送される原稿を副走査位置が固定されたCIS17により読み取る場合に、本発明を適用したが、CIS17を移動させながら第1プラテンガラス44上に固定的に載置される原稿を読み取る場合であっても本発明を適用できる。後者の場合、CIS17を構成する受光素子に付いたゴミや傷が「異常画像を発生させる可能性」となる。
よって、本発明の画像読取装置として、ADF19を有するスキャナ10を例示したが、ADFを有さないフラットベッドスキャナであっても、本発明の画像処理装置として採用できる。また、原稿の読み取りを実行可能な装置であれば、スキャナ10に限らず、多機能周辺装置など種々の装置を採用できる。
上記実施形態では、原稿がゴミの影響を受けると判断された場合、エラーを報知するともに、原稿の読み取りを中止する構成を、特許請求の範囲に記載される「エラー処理」の一例として例示したが、当該エラー処理は、エラーの報知または読み取り中止のいずれか一方であってもよい。
あるいは、原稿がゴミの影響を受けると判断された後も読み取りを通常通りに最後まで完了させ、当該読み取りにより得られた画像を、RAM13に記憶されるゴミ位置の座標(Xg,Yg)における主走査位置Xgに応じて補正を施す処理を、エラー処理とする構成であってもよい。これにより、異常画像を含む画像データが得られたとしても、当該異常画像部分が補正された画像データを得ることができる。
あるいは、原稿がゴミの影響を受けると判断された場合、原稿の読み取りを停止した後、読取位置移動部18を用いて、CIS17の読取位置を、RAM13に記憶されるゴミ位置の座標(Xg,Yg)における副走査位置Ygの位置を避けた副走査位置に移動させる処理を、エラー処理とする構成であってもよい。これにより、搬送される原稿が第2プラテンガラス45に付着したゴミの上を通過する状況を回避できる。なお、上記「原稿の読み取りを停止する」は、上記実施形態のように、原稿がゴミの影響を受けると判断されたことに応じて読み取りを中止する場合と、原稿がゴミの影響を受けると判断された後も読み取りを通常通りに最後まで完了させて終了する場合との両方を含む。
上記実施形態では、S408にて、ゴミ位置の座標(Xg,Yg)がRAM13に記憶される構成としたが、主走査位置Xgのみを記憶する構成としてもよい。また、ゴミ位置の座標(Xg,Yg)の記憶先をEEROM14としてもよい。本変形例では、基準板60の読み取りに基づくゴミ位置の座標(Xg,Yg)の記憶を、読み取りの開始時に限らず、読み取りの終了後や、定期的に行うこともできる。EEROM14にゴミ位置の座標(Xg,Yg)が記憶される場合、第2プラテンガラス45を清掃した後など、異常画像を発生させる可能性が解消されたタイミングで、適宜消去する構成としてもよい。
上記実施形態では、定型原稿テーブル14aにおいて、原稿サイズ14a1を、規格サイズが同じであっても、原稿が縦置きか横置きかに応じて区別する構成としたが、原稿の置き方を区別しない構成としてもよい。つまり、1の規格サイズに対する1の原稿サイズ14a1に対し、当該1の規格サイズの長辺と短辺とを関連付けて記憶する構成としてもよい。本変形例では、S425にて取得された主走査長Xsizeを長辺または短辺とする原稿サイズ14a1を特定し、主走査長Xsizeに相当する辺が長辺または短辺のいずれであるかに応じて、縦置きまたは横置きを特定する。具体的に、主走査長Xsizeに相当する辺が長辺であれば、横置きと特定できる。一方、主走査長Xsizeに相当する辺が短辺であれば、縦置きと特定できる。あるいは、ユーザが原稿を縦置きまたは横置きのいずれを利用するかの指定を入力したことに応じて、縦置きまたは横置きを特定する構成としてもよい。
上記実施形態では、原稿のエッジ画像から、原稿の上辺、右辺、および左辺の直線式を算出し、上辺の直線式と右辺または左辺の直線式との交点を、左上角座標および右上角座標として算出した。これに代えて、エッジ画像から左上角および右上角の位置を特定し、その位置の座標を左上角座標および右上角座標として取得してもよい。
上記実施形態では、S521およびS541にて、CPU11が、斜行角度A≧0°であるかの判断を行う構成としたが、斜行角度A≦0°の判断を行う構成としてもよい。つまり、斜行角度A=0°の場合、S522またはS524のいずれか、あるいは、S542またはS544のいずれかにより、原稿がゴミの影響を受けるか否かを判断できる。
上記実施形態では、定型原稿テーブル14aに、主走査長14a2が主走査長Xsizeに一致する原稿サイズ14a1がある場合には、定型原稿に対する処理として、S308〜S322の処理を行い、該当する原稿サイズ14a1がない場合には、非定型原稿に対する処理として、非定型原稿処理(S320)を実行する構成とした。非定型原稿処理(S320)は、定型原稿に対しても利用できる。よって、S306の処理後、S307〜S322を行うことなく、非定型原稿処理(S320)を実行する構成としてもよい。
上記実施形態では、CPU11が、図3〜図7に記載される各処理を実行する構成として説明したが、これら各図に記載される各処理を、複数のCPUが協同的に実行する構成としてもよい。また、ASICなどのICが、単独で、または、複数によって協働的に、上記各図に記載される各処理を実行する構成してもよい。また、CPU11とASICなどのICとが協同して、上記各図に記載される各処理を実行する構成してもよい。また、図3〜図7に示す各処理のうち、一部の処理を、特許請求の範囲における独立請求項から逸脱しない範囲で、省略または変更してもよい。また、上記実施形態により説明した各特徴や、上述した各変形例を適宜組み合わせて実施する構成としてもよい。