(57)【特許請求の範囲】
【請求項１】
原稿を搬送する搬送部と，
原稿の搬送方向の上流側から下流側へ向かう向きに光を照射する第１の光源と，第１の受光素子とを備え，前記搬送部によって搬送される原稿の第１の面を読み取る第１読取部と，
原稿の搬送方向の下流側から上流側へ向かう向きに光を照射する第２の光源と，第２の受光素子とを備え，前記搬送部によって搬送される原稿の前記第１の面と反対側の第２の面を読み取る第２読取部と，
前記第１読取部および前記第２読取部よりも搬送方向の上流に位置し，原稿の有無に応じた信号を出力するセンサと，
制御部と，
を備え，
前記制御部は，
前記センサの出力が原稿の無から有に変化したことに基づいて，前記第１読取部に読み取りを開始させ，前記第１読取部の読取結果に基づいて，原稿の先端の位置を検出する先端検出処理と，
前記センサの出力が原稿の無から有に変化したことに基づいて，前記第２読取部に読み取りを開始させ，前記第２読取部の読取結果に基づいて，原稿の後端の位置を検出する後端検出処理と，
前記センサの出力信号に基づいて，原稿の搬送方向の長さを算出する算出処理と，
を実行し，
前記先端検出処理にて先端の位置の検出に失敗した場合，前記後端検出処理にて検出される後端の位置と，前記算出処理にて算出される長さとに基づいて，前記先端の位置を取得し，
前記後端検出処理にて後端の位置の検出に失敗した場合，前記先端検出処理にて検出される先端の位置と，前記算出処理にて算出される長さとに基づいて，前記後端の位置を取得することを特徴とする読取装置。
【請求項２】
請求項１に記載する読取装置において，
前記制御部は，
前記第１読取部と前記第２読取部との両方を用いて原稿の位置を検出する特定条件を満たした場合に，前記先端検出処理と前記後端検出処理との両方を実行することを特徴とする読取装置。
【請求項３】
請求項２に記載する読取装置において，
前記特定条件には，紙間の距離が紙間閾値よりも大きいことが含まれることを特徴とする読取装置。
【請求項４】
請求項２または請求項３に記載する読取装置において，
前記特定条件には，少なくとも原稿が読取開始位置に到達した時点で，先行の原稿の位置の検出が完了していることが含まれることを特徴とする読取装置。
【請求項５】
請求項２から請求項４のいずれか１つに記載する読取装置において，
前記特定条件には，前記第１読取部および前記第２読取部が用いる記憶部の空き容量が容量閾値よりも多いことが含まれることを特徴とする読取装置。
【請求項６】
請求項２から請求項５のいずれか１つに記載する読取装置において，
前記特定条件には，原稿の地色が，原稿が無い状態を読み取った際の色と異なることが含まれることを特徴とする読取装置。
【請求項７】
請求項２から請求項６のいずれか１つに記載する読取装置において，
前記特定条件には，エッジを補修する処理である補修処理の設定が有効であることが含まれることを特徴とする読取装置。
【請求項８】
請求項６または請求項７に記載する読取装置において，
制御部は，
先端検出処理と後端検出処理との少なくとも一方の実行中に，前記センサの出力に基づいて後続の原稿が有ると判断した場合，原稿の搬送を停止させる停止処理と，
先端検出処理および後端検出処理が完了したことを契機に，前記停止処理にて停止させた原稿の搬送を再開させる再開処理と，
を実行することを特徴とする読取装置。
【請求項９】
請求項２から請求項８のいずれか１つに記載する読取装置において，
前記特定条件には，両面読み取りの設定が有効であることが含まれることを特徴とする読取装置。
【請求項１０】
請求項１から請求項９のいずれか１つに記載する読取装置において，
前記制御部は，
前記先端検出処理にて検出された先端の位置を用いて，前記第２読取部に読み取られた画像の先端の位置を取得し，前記後端検出処理にて検出された後端の位置を用いて，前記第１読取部に読み取られた画像の後端の位置を取得することを特徴とする読取装置。
【請求項１１】
請求項１から請求項１０のいずれか１つに記載する読取装置において，
前記第１読取部は，前記第２読取部よりも搬送方向の上流側に位置することを特徴とする読取装置。
【請求項１２】
原稿を搬送させながら原稿の画像を読み取る読取装置の読取結果から，原稿の位置を検出する位置検出方法において，
前記読取装置は、
原稿の搬送方向の上流側から下流側へ向かう向きに光を照射して，原稿の第１の面を読み取る第１読取部と，
原稿の搬送方向の下流側から上流側へ向かう向きに光を照射して，原稿の前記第１の面と反対側の第２の面を読み取る第２読取部と，
前記第１読取部および前記第２読取部よりも搬送方向の上流に位置し，原稿の有無に応じた信号を出力するセンサと，
を備え，
前記位置検出方法は，
前記第１読取部の読取結果を取得する第１取得ステップと，
前記第１取得ステップにて取得した読取結果に基づいて，原稿の先端の位置を検出する先端検出ステップと，
前記第２読取部の読取結果を取得する第２取得ステップと，
前記第２取得ステップにて取得した読取結果に基づいて，原稿の後端の位置を検出する後端検出ステップと，
前記センサの出力信号に基づいて，原稿の搬送方向の長さを算出する算出ステップと，
を含み，
前記先端検出ステップにて先端の位置の検出に失敗した場合，前記後端検出ステップにて検出される後端の位置と，前記算出ステップにて算出される長さとに基づいて，前記先端の位置を取得し，
前記後端検出ステップにて後端の位置の検出に失敗した場合，前記先端検出ステップにて検出される先端の位置と，前記算出ステップにて算出される長さとに基づいて，前記後端の位置を取得することを特徴とする位置検出方法。
【請求項１３】
情報処理装置に，
原稿を搬送させながら原稿の画像を読み取る読取装置であって，
原稿の搬送方向の上流側から下流側へ向かう向きに光を照射して，原稿の第１の面を読み取る第１読取部と，
原稿の搬送方向の下流側から上流側へ向かう向きに光を照射して，原稿の前記第１の面と反対側の第２の面を読み取る第２読取部と，
前記第１読取部および前記第２読取部よりも搬送方向の上流に位置し，原稿の有無に応じた信号を出力するセンサと，
を備える前記読取装置から，前記第１読取部の読取結果を取得する第１取得処理と，
前記第１取得処理にて取得した読取結果に基づいて，原稿の先端の位置を検出する先端検出処理と，
前記読取装置から，前記第２読取部の読取結果を取得する第２取得処理と，
前記第２取得処理にて取得した読取結果に基づいて，原稿の後端の位置を検出する後端検出処理と，
前記読取装置の前記センサの出力信号に基づいて，原稿の搬送方向の長さを算出する算出処理と，
を実行させ，
前記先端検出処理にて先端の位置の検出に失敗した場合，前記後端検出処理にて検出される後端の位置と，前記算出処理にて算出される長さとに基づいて，前記先端の位置を取得させ，
前記後端検出処理にて後端の位置の検出に失敗した場合，前記先端検出処理にて検出される先端の位置と，前記算出処理にて算出される長さとに基づいて，前記後端の位置を取得させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，原稿の画像を読み取る読取装置，位置検出方法，およびプログラムに関する。さらに詳細には，原稿を搬送させながら原稿の画像を読み取る読取装置において，原稿のエッジを検出する技術に関するものである。
【背景技術】
【０００２】
従来から，原稿を搬送させながら画像を読み取る読取装置では，原稿のエッジを検出し，そのエッジに基づいて原稿の外形や傾きを判断する技術が知られている。また，この技術において，原稿の先端と後端の位置を取得するために画像に含まれる原稿の影を用いる場合がある。ただし，読取装置の光源が１つの場合，先端と後端とのいずれか一方では，影が出難い。これに対し，例えば特許文献１では，画像読取手段の両側に光源を備えるエッジ検出装置であって，両光源について，シートの影が積極的に発生するように片側の光源のみ点灯させる構成，より具体的には用紙の先端か後端かによって，点灯させる光源を切り換える構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１７０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら，前記した従来の技術には，次のような問題があった。すなわち，１つの読取部に対して２つの光源を有する特別な構成が必要となる。あるいは，読取部の部品点数の増加を招く。一方で，光源を１つにすると，原稿の先端と後端とのいずれか一方の影が出難くなり，検出精度の低下を招く。
【０００５】
本発明は，前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは，読取部の部品点数の増加を抑えつつ，原稿のエッジの検知精度を向上させる技術を提供することにある。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされた読取装置は，原稿を搬送する搬送部と，原稿の搬送方向の上流側から下流側へ向かう向きに光を照射する第１の光源と，第１の受光素子とを備え，前記搬送部によって搬送される原稿の第１の面を読み取る第１読取部と，原稿の搬送方向の下流側から上流側へ向かう向きに光を照射する第２の光源と，第２の受光素子とを備え，前記搬送部によって搬送される原稿の前記第１の面と反対側の第２の面を読み取る第２読取部と，前記第１読取部および前記第２読取部よりも搬送方向の上流に位置し，原稿の有無に応じた信号を出力するセンサと，制御部とを備え，前記制御部は，前記センサの出力が原稿の無から有に変化したことに基づいて，前記第１読取部に読み取りを開始させ，前記第１読取部の読取結果に基づいて，原稿の先端の位置を検出する先端検出処理と，前記センサの出力が原稿の無から有に変化したことに基づいて，前記第２読取部に読み取りを開始させ，前記第２読取部の読取結果に基づいて，原稿の後端の位置を検出する後端検出処理とを実行することを特徴としている。
【０００７】
本明細書に開示される読取装置は，原稿の搬送方向の上流側から下流側へ向かう向きに光を照射して第１の面を読み取る第１読取部と，原稿の搬送方向の下流側から上流側へ向かう向きに光を照射して第２の面を読み取る第２読取部と，第１読取部および第２読取部よりも搬送方向の上流に位置するセンサとを備える。そして，読取装置は，第１読取部の読取結果に基づいて，原稿の先端の位置を検出する先端検出処理と，第２読取部の読取結果に基づいて，原稿の後端の位置を検出する後端検出処理とを実行する。
【０００８】
本明細書に開示される読取装置は，第１の面を読み取る第１読取部と，第２の面を読み取る第２読取部とで，光源から照射される光の向きが互いに逆向きとなっているので，原稿の異なる側の端部にて影画像が発生する。この影画像に基づいて，一方では原稿の先端の位置を高精度に読み取ることができ，他方では原稿の後端の位置を高精度に読み取ることができる。結果として，両端の位置を両読取部によって高精度に検出できる。また，個々の読取部の光源は１つでよく，２つの読取部を用いて両面読み取りが可能な読取装置において，部品点数の増加が抑えられる。
【０００９】
また，前記制御部は，前記第１読取部と前記第２読取部との両方を用いて原稿の位置を検出する特定条件を満たした場合に，前記先端検出処理と前記後端検出処理との両方を実行するとよい。読取結果に基づく先端および後端の位置の検出は，時間がかかる上にメモリの使用量も多い。すなわち，他処理への影響が大きい。そのため，特定条件を満たした場合に，両方の読取部を用いた検出処理を実行する方が好ましい。
【００１０】
また，前記制御部は，前記特定条件を満たしていない場合に，前記センサの出力信号に基づいて，原稿の搬送方向の長さを算出する算出処理を実行し，原稿の先端と後端とのいずれか一方の位置を，前記先端検出処理と前記後端検出処理とのいずれか一方を実行して検出し，原稿の先端と後端との他方の位置を，検出した前記一方の位置と前記算出処理にて算出される長さとを用いて取得するとよい。特定条件を満たさない場合は，先端と後端とのいずれか一方の位置の検出のみに読取部を用い，他方の位置を当該一方の位置とセンサとを用いて取得する。これにより，位置検出の時間短縮やメモリ使用量の削減を図ることができる。
【００１１】
また，前記特定条件には，紙間の距離が紙間閾値よりも大きいことが含まれるとよい。紙間の距離が小さいと，連続する原稿のうち，先行の原稿の位置の検出が完了しない間に後続の原稿が読取開始位置まで到達してしまうことがある。そのため，紙間の距離が大きい場合に，両方の読取部を用いる方が好ましい。
【００１２】
また，前記特定条件には，少なくとも原稿が読取開始位置に到達した時点で，先行の原稿の位置の検出が完了していることが含まれるとよい。先行の原稿の位置の検出が完了していれば，読取開始位置に到達した原稿の処理を即座に開始できる。なお，先行の原稿の位置の検出を完了する前に，後続の原稿が読取開始位置に到達した場合には，例えば，搬送を停止して先行の原稿の位置の検出を継続し，検出完了後に搬送を再開するとしてもよいし，エラーとしてジョブを終了させてもよい。
【００１３】
また，前記特定条件には，前記第１読取部および前記第２読取部が用いる記憶部の空き容量が容量閾値よりも多いことが含まれるとよい。記憶部の空き容量が少ない場合は，前記先端検出処理と前記後端検出処理とを同時に実行できない可能性がある。そのため，空き容量が十分な場合に，両方の読取部を用いる方が好ましい。
【００１４】
また，前記特定条件には，原稿の地色が，原稿が無い状態を読み取った際の色と異なることが含まれるとよい。原稿を読み取った画像では，原稿の画像の周囲に，原稿が無い状態を読み取った際の色である背景色の画像が含まれる。背景色と原稿の地色とが異なる場合，原稿の先端と後端の位置を高精度に取得すれば，背景色の画像部分をトリミング等によって高精度に削除できる。背景色と原稿の地色とが一致している場合には，背景色の部分が残っても目立たないので，高精度に削除する要求は小さい。
【００１５】
また，前記特定条件には，エッジを補修する処理である補修処理の設定が有効であることが含まれるとよい。補修処理では，高精度の位置の検出が要求される。そのため，補修処理の設定が有効であれば，両方の読取部を用いる方が好ましい。なお，補修処理とは，耳折れや原稿の破損によって，本来あるべき箇所に原稿の画像が無い場合に，原稿の地色の画像を補填し，エッジを含めた原稿の画像の端部を補修する加工を行う処理のことである。
【００１６】
また，制御部は，先端検出処理と後端検出処理との少なくとも一方の実行中に，前記センサの出力に基づいて後続の原稿が有ると判断した場合，原稿の搬送を停止させる停止処理と，先端検出処理および後端検出処理が完了したことを契機に，前記停止処理にて停止させた原稿の搬送を再開させる再開処理とを実行するとよい。先端検出処理や後端検出処理を，後続の原稿の読み取りと並行して行うと，制御部の負荷が大きい。先端検出処理および後端検出処理が完了するまで搬送を停止させることで，読み取りへの影響を抑制できる。
【００１７】
また，前記特定条件には，両面読み取りの設定が有効であることが含まれるとよい。両面読み取りでは，両方の読取部を用いることから，一方の読取部を位置の検出のためだけに用いることがない。そのため，両面読み取りの場合に，両方の読取部を用いることが好ましい。
【００１８】
また，前記制御部は，前記センサの出力信号に基づいて，原稿の搬送方向の長さを算出する算出処理を実行し，前記先端検出処理にて先端の位置の検出に失敗した場合，前記後端検出処理にて検出される後端の位置と，前記算出処理にて算出される長さとに基づいて，前記先端の位置を取得し，前記後端検出処理にて後端の位置の検出に失敗した場合，前記先端検出処理にて検出される先端の位置と，前記算出処理にて算出される長さとに基づいて，前記後端の位置を取得するとよい。先端検出処理での先端の位置の検出，または，後端検出処理での後端の位置の検出が失敗した場合であっても，他端の位置が検出できた場合には，その他端の位置とセンサから得られる長さとに基づいて，失敗した側の位置を取得できる。そのため，先端または後端の位置の検出が失敗した場合であっても，その後の画像処理を確実に実行できる。
【００１９】
また，前記制御部は，前記先端検出処理にて検出された先端の位置を用いて，前記第２読取部に読み取られた画像の先端の位置を取得し，前記後端検出処理にて検出された後端の位置を用いて，前記第１読取部に読み取られた画像の後端の位置を取得するとよい。一方の読取部で読み取られた画像から検出された端部の位置を用いて，他方の読取部で読み取られた画像の端部の位置を取得する。すなわち，位置検出結果を他面の画像の位置検出に互いに利用することで，両読取部で読み取られた画像の位置を高精度に検出できる。
【００２０】
また，前記第１読取部は，前記第２読取部よりも搬送方向の上流側に位置するとよい。先端の位置の検出に用いる第１読取部を上流に配置することで，位置の検出処理をより早期に開始することができる。
【００２１】
上記読取装置にて読み取った読取結果を用いて原稿の先端および後端の位置を検出する位置検出方法，コンピュータプログラム，および当該コンピュータプログラムを格納するコンピュータ読取可能な記憶媒体も，新規で有用である。また，上記読取装置に接続されたＰＣにて実行されるコンピュータプログラムも，新規で有用である。
【発明の効果】
【００２２】
本発明によれば，読取部の部品点数の増加を抑えつつ，原稿のエッジの検知精度を向上させる技術が実現される。
【図面の簡単な説明】
【００２３】
【図１】実施の形態にかかるスキャナの概略構成を示す断面図である。
【図２】スキャナの読取ヘッド周辺を拡大して示す断面図である。
【図３】スキャナの電気的構成を示すブロック図である。
【図４】読取処理の手順を示すフローチャートである。
【図５】両端検出処理の手順を示すフローチャートである。
【図６】後端検出処理の手順を示すフローチャートである。
【図７】片面読取処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下，本発明にかかる読取装置を具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。本形態は，画像読取機能を備えたスキャナに本発明を適用したものである。
【００２５】
本形態のスキャナ１００は，図１に示すように，本体の内部に，読取ヘッド２１と，読取ヘッド２２とを備え，本体の外部に，読み取る原稿Ｇがセットされる原稿載置トレイ９１と，読取の終了した原稿が排出される原稿排出トレイ９２とを備えている。スキャナ１００の内部には，図１に一点鎖線で示すように，原稿載置トレイ９１から原稿排出トレイ９２へ至る原稿の搬送路６１が形成されている。
【００２６】
そして，スキャナ１００は，図１に示すように，搬送路６１に沿って原稿を搬送するための各種の構成として，原稿の搬送方向について上流側から順に，例えば，給紙ローラ６２，搬送ローラ対６３，搬送ローラ対６４を備えている。搬送ローラ対６３は，原稿の搬送方向について，読取ヘッド２１，２２のいずれよりも上流側に配置されている。搬送ローラ対６４は，原稿の搬送方向について，読取ヘッド２１，２２のいずれよりも下流側に配置されている。
【００２７】
給紙ローラ６２は，原稿の搬送方向について，搬送ローラ対６３よりも上流側に配置され，原稿載置トレイ９１から搬送路６１へ原稿を引き出す。搬送ローラ対６３，６４は，各ローラ対に原稿を挟んで回転することにより，搬送路６１に沿って原稿を搬送する。搬送ローラ対６３，６４は，搬送部の一例である。
【００２８】
本形態のスキャナ１００は，原稿載置トレイ９１に複数枚の原稿が載置され，読取開始の指示を受け付けると，原稿を１枚ずつ順に連続して搬送する。搬送路６１中の原稿の搬送は並行して実行されており，例えば，搬送ローラ対６３，６４の駆動を停止すると，搬送路６１中の全ての原稿の搬送が停止される。なお，搬送される原稿と原稿との間には，適切な紙間が設けられる。紙間は，複数枚の原稿を１枚ずつ連続して搬送する場合における，先行の原稿の後端と後続の原稿の先端との間の距離である。
【００２９】
次に，スキャナ１００の内部を拡大して図２に示す。読取ヘッド２１と読取ヘッド２２とは，原稿の搬送路６１を挟んで互いに対向するとともに，原稿の搬送方向について互いにずれた位置に配置されている。読取ヘッド２１，２２は，搬送路６１を搬送される原稿のうち，それぞれの設置されている側を向く面に光を照射し，受光量に基づく信号をそれぞれ出力する。この出力信号に基づいて，スキャナ１００は，原稿の両面の画像を読み取って画像データを取得することができる。
【００３０】
以下では，図２に示すように，搬送路６１に対して，読取ヘッド２１の配置されている側を「下」，読取ヘッド２２の配置されている側を「上」とする。そして，搬送路６１を搬送される原稿のうち，下側の面を下面，上側の面を上面とする。つまり，スキャナ１００は，読取ヘッド２１にて原稿の下面を読み取り，読取ヘッド２２にて原稿の上面を読み取る。なお，本形態のスキャナ１００の読取方式は，ＣＩＳ方式でもよいし，ＣＣＤ方式でもよい。
【００３１】
また，図２に示すように，読取ヘッド２１は，読取ヘッド２２よりも，原稿の搬送方向について上流側に配置されている。そのため，読取ヘッド２１の方が，読取ヘッド２２よりも上流側の位置で原稿を読み取る。読取ヘッド２１は，図２に示すように，原稿の搬送方向について，上流側から順に発光素子５１と受光素子５２と原稿抑え５３とを有している。読取ヘッド２２は，原稿の搬送方向について，下流側から順に発光素子５５と受光素子５６と原稿抑え５７とを有している。なお，発光素子５１，５５，受光素子５２，５６は，いずれも，図２中で紙面に直交する方向に並んだ複数の光学素子を有している。あるいは，ＬＥＤ等の１つの発光素子を備え，導光板によって光を導くことで，紙面に直交する方向の所定の範囲に光を照射する構成であってもよい。
【００３２】
図２に示すように，読取ヘッド２１の発光素子５１は，原稿の搬送方向について上流側から下流側へ向かう斜め向きに光を照射する。読取ヘッド２１は，発光素子５１による光の反射光を受光素子５２にて受光し，その受光量に応じた信号を出力する。一方，読取ヘッド２２の発光素子５５は，原稿の搬送方向について下流側から上流側へ向かう斜め向きに光を照射する。読取ヘッド２２は，発光素子５５による光の反射光を受光素子５６にて受光し，その受光量に応じた信号を出力する。また，搬送路６１を挟んで受光素子５２に対向する位置には，読取ヘッド２２の原稿抑え５７が配置されている。また，搬送路６１を挟んで受光素子５６に対向する位置には，読取ヘッド２１の原稿抑え５３が配置されている。
【００３３】
発光素子５１は，第１の光源の一例であり，発光素子５５は，第２の光源の一例である。受光素子５２は，第１の受光素子の一例であり，受光素子５６は，第２の受光素子の一例である。読取ヘッド２１は，第１読取部の一例であり，読取ヘッド２２は，第２読取部の一例である。原稿の下面は，第１の面の一例であり，上面は，第２の面の一例である。
【００３４】
さらに，スキャナ１００は，図２に示すように，原稿の搬送方向について，上流側の搬送ローラ対６３より下流側で，読取ヘッド２１，２２のいずれよりも上流側の位置に，センサ２７を備える。センサ２７は，その検出位置における原稿の有無に応じた信号を出力する。以下では，センサ２７の位置に原稿が有る場合のセンサ２７の出力信号をＯＮとし，センサ２７の位置に原稿が無い場合のセンサ２７の出力信号をＯＦＦとする。センサ２７は，センサの一例である。
【００３５】
スキャナ１００は，センサ２７の出力信号と原稿の搬送速度とに基づいて，原稿の位置や原稿の搬送方向の長さを取得できる。例えば，スキャナ１００は，センサ２７の出力がＯＮとなっている時間と，原稿の搬送速度とから，センサ２７を通過する原稿の搬送方向の長さを算出できる。また，スキャナ１００は，センサ２７の出力信号と原稿の搬送速度とに基づいて，読取ヘッド２１，２２にて原稿の読み取りを開始するタイミングを決定する。例えば，スキャナ１００は，センサ２７の出力信号に基づいて，原稿の先端が読取ヘッド２１，２２の読取位置に到達するより前に，読取ヘッド２１，２２による読み取りを開始する。
【００３６】
そして，スキャナ１００は，原稿が読取位置に無い状態で画像の読み取りを開始すると，読取ヘッド２１，２２に対向する位置の原稿抑え５３，５７を読み取る。以下では，原稿が無い状態で読み取りを行い，原稿抑え５３，５７を読み取った際の画像の色を背景色とする。スキャナ１００では，原稿抑え５３，５７のうち，原稿の搬送路６１に対向する側の面の色は，例えば，グレー色である。つまり，背景色は，グレー色である。
【００３７】
スキャナ１００では，原稿端部のエッジを検出するために原稿が読取ヘッド２１，２２の位置に到達する前に読取を開始するので，取得される画像データの画像には，少なくとも先端側に背景色の画像が含まれる。さらに，スキャナ１００は，センサ２７の出力信号に基づく原稿の後端が，読取ヘッド２１，２２の読取位置を通過した後も，所定期間読み取りを継続する。そのため，取得される画像データの画像には，原稿の後端側にも背景色の画像が含まれる。なお，原稿の先端は，原稿のうち，搬送方向について最も下流側の箇所であり，読取ヘッド２１，２２にて最初に読み取られる箇所である。そして，原稿の後端は，原稿のうち搬送方向について最も上流側の箇所である。
【００３８】
続いて，スキャナ１００の電気的構成について説明する。スキャナ１００は，図３に示すように，ＣＰＵ３１と，ＲＯＭ３２と，ＲＡＭ３３と，ＮＶＲＡＭ（不揮発性ＲＡＭ）３４とを含むコントローラ３０を備えている。また，スキャナ１００は，読取ヘッド２１と，読取ヘッド２２と，搬送モータ２４と，センサ２７と，通信ＩＦ３８と，操作パネル４０とを備え，これらがコントローラ３０に電気的に接続されている。
【００３９】
搬送モータ２４は，原稿を搬送するための各種のローラを回転駆動するモータである。搬送モータ２４は，例えば，図１に示した給紙ローラ６２，搬送ローラ対６３，搬送ローラ対６４を駆動する。
【００４０】
ＲＯＭ３２には，スキャナ１００を制御するための各種制御プログラムや各種設定，初期値等が記憶されている。ＲＡＭ３３は，各種制御プログラムが読み出される作業領域として，あるいは，データを一時的に記憶する記憶領域として利用される。ＣＰＵ３１は，ＲＯＭ３２から読み出した制御プログラムに従って，その処理結果をＲＡＭ３３またはＮＶＲＡＭ３４に記憶させながら，スキャナ１００の各構成要素を制御する。
【００４１】
ＣＰＵ３１は，制御部の一例である。なお，コントローラ３０が制御部であってもよい。なお，図３中のコントローラ３０は，ＣＰＵ３１等，スキャナ１００の制御に利用されるハードウェアを纏めた総称であって，実際にスキャナ１００に存在する単一のハードウェアを表すとは限らない。例えば，コントローラ３０はＡＳＩＣの一部であってもよいし，コントローラ３０がＡＳＩＣを含んでいてもよい。
【００４２】
通信ＩＦ３８は，ケーブル等を用いて接続された装置と通信を行うためのハードウェアである。通信ＩＦ３８は，例えば，無線ＬＡＮ，有線ＬＡＮ，ＵＳＢ等の各種インターフェースが該当する。操作パネル４０は，ディスプレイと入力ボタン等を有し，ユーザへの告知を表示し，ユーザによる入力操作を受け付ける。
【００４３】
続いて，本形態のスキャナ１００における原稿の読取動作について説明する。本形態のスキャナ１００は，原稿の読取動作として，原稿を搬送してその画像を読み取ることにより画像データを取得する。具体的に，本形態のスキャナ１００は，原稿の読み取り指示を受け付けると，まず，原稿の搬送を開始する。指示された読み取りの設定が両面読み取りであれば，スキャナ１００は，読取ヘッド２１と２２とをともに稼働させる。一方，片面読み取りであれば，スキャナ１００は，読取ヘッド２１と２２とのいずれか一方のみを稼働させる。
【００４４】
そして，スキャナ１００は，取得した画像データに基づいて，原稿の先端のエッジと後端のエッジとを検出する動作を実行する。スキャナ１００では，図２に示したように，原稿に光を照射して読み取ることから，画像データの画像のうち原稿の範囲の外側には，原稿の端部の影による低輝度の影画像が現れる。スキャナ１００は，取得した画像データの画像に表れる影画像を使用して，原稿のエッジを検出する。
【００４５】
なお，原稿のエッジとは，画像データ中の原稿の先端または後端の位置を示す情報である。スキャナ１００にて検出される原稿のエッジは，原稿の搬送方向に直交する方向である幅方向についての両端の情報を含むことが好ましい。なお，エッジは，原稿の幅方向に連続する線状の位置情報でもよいし，複数の点位置の情報の集合であってもよいし，単に１点の情報でもよい。スキャナ１００は，取得した原稿のエッジを使用して，例えば，画像データの画像の傾き補正，トリミング等の画像の加工処理を実行する。
【００４６】
エッジは，例えば，画像データの輝度値，ＲＧＢのいずれかの値等の各点の値が所定の閾値を超える位置である。読取ヘッド２１，２２の発光素子５１，５５によって原稿の中央側から原稿の端部側へ向けて発光した場合，逆向きに光を照射した場合と比較して，原稿の端部の外側にはっきりした影画像ができやすい。原稿と影画像との境界が明確であれば，輝度値が閾値を超える位置を明確に取得できるので，スキャナ１００は，高精度にエッジを検出できる。
【００４７】
スキャナ１００では，読取ヘッド２１の発光素子５１と読取ヘッド２２の発光素子５５とで光の照射方向が異なるため，読取ヘッド２１と２２とで高精度にエッジを検出できる側が異なる。具体的には，スキャナ１００は，図２の構成を有していることから，読取ヘッド２１の発光素子５１によって原稿の先端側にはっきりした影画像が生じるので，スキャナ１００は，読取ヘッド２１の画像データから高精度に原稿の先端を検出できる。一方，読取ヘッド２２の発光素子５５によって原稿の後端側にはっきりした影画像が生じるので，スキャナ１００は，読取ヘッド２２の画像データから高精度に原稿の後端を検出できる。そこで，スキャナ１００は，読取ヘッド２１の読取結果に基づいて原稿の先端のエッジを検出し，読取ヘッド２２の読取結果に基づいて原稿の後端のエッジを検出する。
【００４８】
続いて，前述した読取動作を本形態のスキャナ１００において実現される，原稿の読み取り時に実行される読取処理について，図４のフローチャートを参照して説明する。この読取処理は，読取指示の受け付けを契機に，ＣＰＵ３１にて実行される。なお，読取指示は，操作パネル４０を介してスキャナ１００に入力されたものでも，通信ＩＦ３８を介して外部装置から受信したものであってもよい。
【００４９】
読取処理では，スキャナ１００は，まず，原稿の搬送を開始する（Ｓ１０１）。そして，スキャナ１００は，センサ２７がＯＮとなったか否かを判断する（Ｓ１０２）。センサ２７がＯＮとなっていなければ（Ｓ１０２：ＮＯ），スキャナ１００は，さらに原稿を搬送する。
【００５０】
そして，センサ２７がＯＮとなったら（Ｓ１０２：ＹＥＳ），スキャナ１００は，原稿の搬送方向の長さの取得を開始する（Ｓ１０３）。つまり，スキャナ１００は，センサ２７がＯＮとなっている継続時間と原稿の搬送速度とに基づいて，原稿の搬送方向の長さを算出する。Ｓ１０３は，算出処理の一例である。なお，原稿の搬送方向の長さは，後述するように，原稿がセンサ２７の位置を通過して，センサ２７がＯＦＦとなった後に取得される。
【００５１】
次に，スキャナ１００は，対象原稿の読取設定にて両面読取の設定が有効となっているか否かを判断する（Ｓ１０９）。そして，両面読取の設定が有効であると判断した場合には，（Ｓ１０９：ＹＥＳ），スキャナ１００は，読取ヘッド２１，２２の両方にて読み取りを開始する（Ｓ１１１）。両面読取の設定は，特定条件の一例である。
【００５２】
そして，スキャナ１００は，読取ヘッド２１の読取結果である下面の画像データに基づいて，原稿の先端のエッジを検出する（Ｓ１１２）。スキャナ１００は，原稿の先端から所定の長さ以上の読み取りが終了したら，読取動作と並行して先端のエッジ検出動作を開始する。具体的には，読み取り途中の画像データに含まれる原稿の先端側の影画像に基づいて，画像データ中の原稿の先端の位置を検出する。Ｓ１１２は，先端検出処理の一例である。前述したように，原稿の先端のエッジは，読取ヘッド２１の画像データに基づいて高精度に検出できる。
【００５３】
さらに，スキャナ１００は，先端のエッジの検出に成功したか否かを判断する（Ｓ１１３）。エッジの検出に成功したとは，エッジの位置の検出処理が完了し，その結果，適切なエッジが取得された場合が該当する。また，エッジの検出に成功しなかった場合としては，エッジの検出が完了しなかった場合と，検出したエッジが適切な結果とならなかった場合とがある。エッジの検出が完了しなかった場合とは，例えば，エッジにおける画像データの輝度差が小さく，エッジと判断できる位置がなかった場合が該当する。また，適切な結果とならなかった場合とは，例えば，原稿の先端に欠損等があって，得られたエッジの直線性が低い場合が該当する。
【００５４】
スキャナ１００は，先端のエッジの検出に成功したと判断した場合（Ｓ１１３：ＹＥＳ）には，さらに可能であれば後端のエッジをも検出する両端検出処理を実行する（Ｓ１１５）。
【００５５】
次に，先端のエッジの検出に成功しており，さらに後端のエッジも検出するＳ１１５の両端検出処理について，図５のフローチャートを参照して説明する。両端検出処理では，まず，スキャナ１００は，実行条件を満たしているか否かを判断する（Ｓ２０１）。実行条件は，後端のエッジ検出を実行することが望ましいと判断できる条件であり，例えば，後に詳述するように，メモリ残量大，紙間大，先端から定型サイズとは推定不能，が該当する。実行条件は，特定条件の一例である。本形態のスキャナ１００では，例えば，実行条件を全て満たしている場合に，Ｓ２０１にてＹＥＳと判断し，実行条件のうちに満たさない条件がある場合には，Ｓ２０１にてＮＯと判断する。
【００５６】
両端検出処理では，スキャナ１００は，先端のエッジ検出が成功した画像データについて，後端のエッジ検出を行う。先端のエッジを取得できており，センサ２７の出力信号に基づいて原稿の搬送方向の長さを取得することができることから，スキャナ１００は，後端のエッジ検出に失敗しても，後端の位置を推定できる。そこで，スキャナ１００では，実行条件を満たしている場合には後端のエッジ検出を実行し，実行条件を満たしていない場合には後端のエッジ検出を実行しないとすることにより，他処理への影響の可能性を抑制する。
【００５７】
例えば，メモリ残量が少ない場合，後端のエッジ検出のためにメモリを確保すると，他の処理の遅延等が生じる可能性がある。そこで，スキャナ１００は，メモリ残量が少ない場合には実行条件を満たさないと判断する。メモリ残量は，例えば，ＲＡＭ３３の空き容量であり，スキャナ１００にてエッジ検出や読み取りのために使用できる記憶容量である。スキャナ１００は，ＲＡＭ３３の空き容量が所定の容量閾値以下である場合，メモリ残量が少ないと判断する。この場合，ＲＡＭ３３は，記億部の一例である。
【００５８】
また，例えば，紙間が小さい場合，後端のエッジ検出を実行中に後続の原稿が読取位置に到達する可能性が高い。後続の原稿が読取位置に到達した場合には，前述したように，搬送を停止させることになり，処理の遅延の原因となる。スキャナ１００は，紙間の距離が所定の紙間閾値以下である場合，紙間が小さいと判断する。そして，スキャナ１００は，紙間が小さい場合には，実行条件を満たさないと判断する。
【００５９】
また，例えば，スキャナ１００は，検出済みの先端のエッジから，原稿の大きさが定型サイズであると推定した場合には，高精度に後端のエッジを検出する必要性は小さいと判断する。スキャナ１００は，例えば，先端のエッジに基づき，原稿の主走査方向，つまり，搬送方向に直交する方向のサイズを取得し，取得したサイズが，予め記憶している複数の定型サイズのいずれかに合致する場合には，原稿のサイズがその合致した定型サイズであると推定する。そして，スキャナ１００は，原稿が定型サイズであると推定される場合には，実行条件を満たさないと判断する。
【００６０】
一方，原稿の端部の反りや歪み，原稿の紙種の違い等によって，センサ２７の反応精度にはばらつきがあり，センサ２７の信号に基づいて原稿の長さを取得した場合の精度は高くない。そこで，スキャナ１００は，実行条件を満たすと判断した場合には，上面の画像データに基づいて，原稿の後端のエッジを検出する。これにより，スキャナ１００は，上面の影画像に基づいて後端のエッジを検出するので，原稿の幅方向の全体のエッジを高精度に検出でき，高精度に原稿の形状を取得できる。
【００６１】
そして，実行条件を満たすと判断した場合（Ｓ２０１：ＹＥＳ），スキャナ１００は，上面の読取データから後端のエッジ検出を開始する（Ｓ２０２）。Ｓ２０２は，後端検出処理の一例である。実行条件を満たしていれば，後端のエッジ検出を実行しても他処理への影響は小さいと推測でき，スキャナ１００は，後端のエッジも高精度に検出することが好ましいと判断して，後端のエッジ検出を実行する。そして，後端のエッジ検出が完了したか否かを判断する（Ｓ２０３）。
【００６２】
上面の後端のエッジ検出が完了していないと判断した場合（Ｓ２０３：ＮＯ），スキャナ１００は，後続の原稿が読取開始位置に到達したか否かを判断する（Ｓ２０４）。なお，後続の原稿とは，本処理にて読取の対象である対象原稿の次に搬送されている原稿である。スキャナ１００は，複数枚の原稿を読み取るジョブでは，対象原稿の排出が完了する前に，後続の原稿の搬送を開始する。そのため，対象原稿の後端のエッジの検出が完了する前に，後続の原稿が読取開始位置に到達してしまう場合がある。そして，後続の原稿が読取開始位置に到達していないと判断した場合（Ｓ２０４：ＮＯ），スキャナ１００は，後端のエッジ検出が完了するか，後続の原稿が読取開始位置に到達するかのいずれかとなるまで，後端のエッジ検出と搬送とを継続して実行する。
【００６３】
そして，後端のエッジ検出が完了する前に，後続の原稿が読取開始位置に到達したと判断したら（Ｓ２０４：ＹＥＳ），スキャナ１００は，推奨条件を満たすか否かを判断する（Ｓ２０６）。推奨条件は，後端のエッジ検出を完了させることが望ましい条件であり，例えば，補修モードの設定が有効，原稿の地色と背景色とが異なること，が該当する。推奨条件は，特定条件の一例である。なお，Ｓ２０４では，読取開始位置に代えて，後続の原稿がセンサ位置に到達したか否かに基づいて判断してもよい。センサ位置は，センサ２７の出力信号が，ＯＦＦからＯＮ に変化する原稿の位置である。
【００６４】
補修モードは，例えば，原稿の耳折れや破れによって原稿の外形が四角形でない場合，欠けていると推定される部分の画像を追加して，四角形の画像となるように補正するモードである。補修モードの設定が有効にされている場合には，高精度にエッジを検出することが望まれる。補修モードの設定は，ユーザによって指定され，ＮＶＲＡＭ３４に記憶される。
【００６５】
また，前述したように画像データには，原稿の画像の少なくとも前後に背景色の画像が含まれる。スキャナ１００は，画像データから原稿の範囲を推定し，トリミングすることによりその範囲内の画像データを出力する場合には，検出した原稿の先端と後端とのエッジに基づいて，エッジの範囲内を原稿の範囲と推定する。原稿の地色と背景色とが異なる場合には，出力するデータに背景色の画像が含まれると目立ち易いため好ましくない。そのため，原稿の地色と背景色とが異なる場合には，エッジの検出精度を高めることが要求される。なお，原稿の地色は，既に読取の終了した部分の画像データから取得できる。また，地色と背景色との比較は，例えば，輝度の比較のみによってもよいし，より多くの色情報を用いて行ってもよい。
【００６６】
スキャナ１００は，推奨条件を満たすと判断した場合（Ｓ２０６：ＹＥＳ），搬送を一旦停止する（Ｓ２０７）。Ｓ２０７は，停止処理の一例である。後端のエッジを検出する処理は，原稿の後端までの読み取りが終了してから開始され，ある程度の時間が掛かるとともに一定量以上のメモリを占有する。そのため，後端のエッジ検出が完了する前に，後続の原稿の読み取りを開始すると，処理の遅延や読み取りエラーの原因となる可能性がある。スキャナ１００は，搬送を停止することにより，対象原稿の処理の完了を待って，後続の原稿の読み取りを開始する。つまり，スキャナ１００は，搬送を一旦停止して，Ｓ２０３に戻り，対象原稿の後端のエッジ検出を継続する。なお，後続の原稿が到達して，Ｓ２０７にて搬送を一旦停止した後は，Ｓ２０４やＳ２０６の判断を行わず，Ｓ２０３にて検出を完了したか否かの判断のみを繰り返す。
【００６７】
そして，上面の後端のエッジ検出が完了したと判断したら（Ｓ２０３：ＹＥＳ），スキャナ１００は，原稿を搬送して原稿の長さを取得する（Ｓ２０９）。なお，スキャナ１００は，Ｓ２０７にて一旦搬送を停止した場合はＳ２０９にて搬送を再開する。この場合，Ｓ２０９は，再開処理の一例である。また，搬送を停止していなければ継続して搬送する。そして，Ｓ２０９では，スキャナ１００は，原稿を搬送しつつセンサ２７の出力信号を受信して，センサ２７がＯＦＦとなった時刻を取得する。そして，図４の読取処理のＳ１０３からの経過時間と搬送速度とに基づいて，原稿の長さを取得する。なお，搬送の途中で搬送を停止した場合は，スキャナ１００は，停止時間を経過時間から除く。
【００６８】
さらに，スキャナ１００は，図４のＳ１１３にて完了した下面の先端のエッジと，Ｓ２０３にて完了した上面の後端のエッジと，読取ヘッド２１と２２との読取位置の間隔とを使用して，画像データ中の原稿の画像の位置を取得する。具体的に，下面の先端のエッジとヘッド間隔とから上面の先端の位置を取得する（Ｓ２１０）。また，上面の後端のエッジとヘッド間隔とから下面の後端の位置を取得する（Ｓ２１１）。
【００６９】
さらに，スキャナ１００は，上下面のそれぞれの画像データに対して，トリミングおよび補修処理を実行する（Ｓ２１３）。つまり，スキャナ１００は，各画像データを，その面の先端のエッジと後端のエッジとを利用してトリミングする。また，この原稿の読取設定として補修モードの設定が有効とされている場合には，補修処理を実行する。なお，スキャナ１００では，補修処理として傾き補正も実行する。補修処理では，スキャナ１００は，先端のエッジの形状を下面の先端のエッジから，後端のエッジの形状を上面の後端のエッジからそれぞれ取得して使用する。
【００７０】
下面の画像データから検出された先端のエッジ，および，上面の画像データから検出された後端のエッジはいずれも信頼性が高く，これらのエッジに基づいて，スキャナ１００は，高精度に原稿の位置を推定できる。そして，高精度のエッジを使用して，トリミングや補修処理を実行することにより，ユーザの希望に合った画像データが得られる可能性が高い。スキャナ１００は，トリミングや補修処理の終了した画像データである補修済データを，読取設定にて指定されている出力先に出力して（Ｓ２１４），両面検出処理を終了する。
【００７１】
一方，Ｓ２０１にて実行条件を満たさないと判断した場合（Ｓ２０１：ＮＯ），または，Ｓ２０６にて推奨条件を満たさないと判断した場合（Ｓ２０６：ＮＯ）には，スキャナ１００は，上面の後端のエッジの検出を行わない。つまり，後端のエッジの必要性が低いと判断した場合は，上面の後端のエッジの検出を開始しない。また，後続の原稿の処理を優先すると判断した場合は，上面の後端のエッジの検出を中止する。そして，スキャナ１００は，図４の読取処理にて検出した下面の先端のエッジと，センサ２７の出力信号に基づく原稿の搬送方向の長さとを用いて，他の各エッジを取得する。
【００７２】
そのために，スキャナ１００は，原稿を搬送して原稿の長さを取得する（Ｓ２０８）。さらに，スキャナ１００は，原稿の搬送方向の長さと下面の先端のエッジとから，下面の後端の位置を取得する（Ｓ２１８）。また，スキャナ１００は，下面の先端と下面の後端とから，上面の先端と上面の後端とを取得する（Ｓ２１９）。スキャナ１００は，例えば，下面の位置を反転したものを上面の位置とする。これで，上下面ともに先端と後端とを取得したので，スキャナ１００は，トリミングや補修処理を実行し（Ｓ２１３），補修済データを出力する（Ｓ２１４）。補修済みデータの出力後，スキャナ１００は，両端検出処理を終了する。
【００７３】
図４の読取処理に戻り，スキャナ１００は，Ｓ１１５の両端検出処理の後，後続の原稿が有るか否かを判断する（Ｓ１１７）。例えば，既にセンサ２７がＯＮとなっており，後続の原稿が搬送されている場合には，スキャナ１００は，Ｓ１１７にてＹＥＳと判断する。あるいは，センサ２７とは別に，原稿の搬送方向についてより上流側にセンサを備えていれば，スキャナ１００は，そのセンサの出力信号に基づいて，後続の原稿の有無を判断してもよい。そして，後続の原稿が有ると判断した場合（Ｓ１１７：ＹＥＳ），スキャナ１００は，Ｓ１０２に戻って，後続の原稿を対象原稿として読取処理を継続する。一方，後続の原稿が無いと判断した場合（Ｓ１１７：ＮＯ），スキャナ１００は，読取処理を終了する。
【００７４】
一方，図４の読取処理にて，下面の画像データに基づく先端のエッジの検出に成功しなかったと判断した場合には（Ｓ１１３：ＮＯ），スキャナ１００は，上面の画像データから後端のエッジを検出する後端検出処理を実行する（Ｓ１２０）。
【００７５】
次に，図４のＳ１２０の後端検出処理の手順について，図６のフローチャートを参照して説明する。この後端検出処理は，下面の先端のエッジを検出できていない場合の処理であり，図５の両端検出処理よりも，後端のエッジの検出に対する必要性が高い。そこで，後端検出処理では，図５の両端検出処理とは異なり，実行条件や推奨条件の判断を行わない。なお，図６の後端検出処理の説明では，図５の両端検出処理と同じ処理については同じ符号を付し，説明を省略する
【００７６】
後端検出処理では，スキャナ１００は，まず，上面の画像データに基づく後端のエッジの検出を開始する（Ｓ２０２）。そして，スキャナ１００は，検出が完了したか否かを判断する（Ｓ２０３）。検出が完了したと判断した場合には（Ｓ２０３：ＹＥＳ），スキャナ１００は，両端検出処理と同様に，原稿を搬送して長さを取得し（Ｓ２０９），原稿の搬送方向の長さと上面の後端のエッジとから，上面の先端の位置を取得する（Ｓ２１１）。
【００７７】
後端検出処理では，スキャナ１００は，下面の先端のエッジは検出できていない。そこで，両面検出処理とは異なり，スキャナ１００は，上面の先端と上面の後端とから，上面の位置を反転したものを下面の位置とすることにより，下面の先端と下面の後端とを取得する（Ｓ３０２）。そして，スキャナ１００は，両端検出処理と同様に，トリミングおよび補修処理を実行し（Ｓ２１３），補修済データを出力して（Ｓ２１４），後端検出処理を終了する。
【００７８】
一方，後端のエッジの検出が完了していないと判断した場合（Ｓ２０３：ＮＯ），スキャナ１００は，後端のエッジの検出に失敗したか否かを判断する（Ｓ３０３）。失敗していないと判断した場合（Ｓ３０３：ＮＯ），スキャナ１００は，後続の原稿が到達したか否かを判断する（Ｓ２０４）。到達したと判断したら（Ｓ２０４：ＹＥＳ），スキャナ１００は，搬送を停止して（Ｓ２０７），Ｓ２０３に戻る。到達していないと判断したら（Ｓ２０４：ＮＯ），スキャナ１００は，搬送を継続してＳ２０３に戻る。
【００７９】
そして，後端のエッジの検出に失敗したと判断した場合（Ｓ３０３：ＹＥＳ），スキャナ１００は，原稿を搬送して長さを取得する（Ｓ３０５）。Ｓ３０５は，Ｓ２０９と同様の処理であり，読み取りも継続する。この場合，先端と後端とのいずれのエッジも検出できなかったことから，スキャナ１００は，画像データをトリミングできない。そこで，スキャナ１００は，読み取った画像データのままで全面データを出力して（Ｓ３０６），後端検出処理を終了する。なお，スキャナ１００は，Ｓ３０６にて全面データを出力する代わりに，読み取りエラーを報知してもよい。
【００８０】
図４の読取処理に戻り，スキャナ１００は，Ｓ１２０の後端検出処理の後，後続の原稿が有るか否かを判断する（Ｓ１１７）。後続の原稿が有ると判断した場合（Ｓ１１７：ＹＥＳ），スキャナ１００は，Ｓ１０２に戻って，後続の原稿を対象原稿として読取処理を継続する。一方，後続の原稿が無いと判断した場合（Ｓ１１７：ＮＯ），スキャナ１００は，読取処理を終了する。
【００８１】
一方，図４の読取処理にて，両面読取の設定が有効となっていないと判断した場合には（Ｓ１０９：ＮＯ），片面読み取りが設定されていると判断できることから，スキャナ１００は，片面読取処理を実行する（Ｓ１２２）。
【００８２】
次に，図４のＳ１２２の片面読取処理の手順について，図７のフローチャートを参照して説明する。片面読取処理では，スキャナ１００は，まず，下側の読取ヘッド２１にて読み取りを開始する（Ｓ４０１）。つまり，スキャナ１００は，原稿の下面のみを読み取る。読取ヘッド２１の方が，読取ヘッド２２よりも原稿の搬送方向について上流側に配置されているので，読取ヘッド２１を使用することで，読取ヘッド２２を使用する場合よりも早期に読取処理が終了する。
【００８３】
そして，スキャナ１００は，下面の画像データに基づいて，原稿の先端のエッジを検出する（Ｓ４０２）。Ｓ４０２は，図４のＳ１１２と同様の処理である。そして，スキャナ１００は，原稿の搬送や読み取りとともにセンサ２７の出力に基づいて，原稿の長さを取得する（Ｓ４０３）。さらに，スキャナ１００は，先端のエッジの検出に成功したか否かを判断する（Ｓ４０４）。
【００８４】
先端のエッジの検出に成功したと判断した場合（Ｓ４０４：ＹＥＳ），スキャナ１００は，センサ２７の出力信号に基づいて取得される原稿の長さと，Ｓ４０２にて取得した先端のエッジとに基づいて後端の位置を取得する（Ｓ４０５）。さらに，先端のエッジと，Ｓ４０５にて取得した後端の位置とから，スキャナ１００は，画像データのトリミングおよび補修処理を実行する（Ｓ４０６）。そして，スキャナ１００は，補修済みデータを出力して（Ｓ４０７），片面読取処理を終了する。
【００８５】
一方，先端のエッジの検出に成功しなかったと判断した場合（Ｓ４０４：ＮＯ），スキャナ１００は，全面データを出力し（Ｓ４０９），片面読取処理を終了する。なお，スキャナ１００は，Ｓ４０９にて全面データを出力する代わりに，読み取りエラーを報知してもよい。
【００８６】
図４の読取処理に戻り，スキャナ１００は，Ｓ１２２の片面読取処理の後，後続の原稿が有るか否かを判断する（Ｓ１１７）。後続の原稿が有ると判断した場合（Ｓ１１７：ＹＥＳ），スキャナ１００は，Ｓ１０２に戻って，後続の原稿を対象原稿として読取処理を継続する。一方，後続の原稿が無いと判断した場合（Ｓ１１７：ＮＯ），スキャナ１００は，読取処理を終了する。
【００８７】
以上，詳細に説明したように，本形態のスキャナ１００は，２つの読取ヘッド２１，２２を有し，原稿を搬送してその画像を読み取る。読取ヘッド２１の発光素子５１は，原稿の搬送方向について上流側から下流側へ向かって光を照射し，読取ヘッド２２の発光素子５５は，原稿の搬送方向について下流側から上流側へ向かって光を照射する。そして，スキャナ１００は，読取ヘッド２１による下面の画像データに基づいて，原稿の先端のエッジを検出し，読取ヘッド２２による上面の画像データに基づいて，原稿の後端のエッジを検出する。つまり，各読取ヘッドの画像データはそれぞれ別の端部のエッジの検出に適しており，スキャナ１００は，該当するエッジの検出に適した画像データを使用して，エッジの検出を実行する。そのため，スキャナ１００は，両側のエッジを高精度に検出できる可能性が高い。従って，読取部の部品点数の増加を抑えつつ，原稿のエッジの検知精度を向上させることが期待できる。
【００８８】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，スキャナに限らず，複写機，複合機，ＦＡＸ装置等，原稿を搬送しつつ読み取る画像読取機能を備えるものであれば適用可能である。
【００８９】
また，例えば，読取ヘッド２１と読取ヘッド２２とは，いずれが上流であってもよいし，上面と下面との配置が逆でもよい。ただし，先端のエッジの検出に適した読取ヘッド２１を上流側に配置すれば，より早期に先端のエッジの検出を開始できるので好ましい。また，スキャナ１００は，読取ヘッド２２を使用して片面読み取りを実行してもよい。その場合には，スキャナ１００は，画像データに基づいて後端のエッジを検出し，後端のエッジと原稿の長さとに基づいて，先端の位置を取得すればよい。ただし，先端のエッジの検出に適した読取ヘッド２１にて片面読み取りを実行すれば，より早期にエッジの検出を開始できるので好ましい。
【００９０】
また，特定条件としては，１以上の条件を備えていればよく，本形態に例示した各種の条件に限らない。本形態では，特定条件として，両面読取設定が有効，補修モードの設定が有効，原稿の地色と背景色とが異なること，メモリ残量大，紙間大，先端から定型サイズとは推定不能を例示したが，例えば，これらのうちの１以上を備えていればよく，これら以外にも特定条件があってもよい。例えば，片面読取の設定であっても両方の読取ヘッドにて読み取りを実行し，先端のエッジ検出と後端のエッジ検出とを両方とも実行してもよい。一方，特定条件を満たさない場合には，センサ２７の出力信号に基づく原稿の長さを用いることで，スキャナ１００は，処理の所要時間を短縮できる。
【００９１】
また，本形態では，対象原稿の処理が終了していないうちに，後続原稿が読取開始位置に到達したら，Ｓ２０７にて搬送を停止するとしたが，停止させなくてもよい。例えば，対象原稿の処理を優先して，後続原稿の先端のエッジの検出を実行しないとしてもよい。あるいは，後続原稿の先端のエッジの検出を優先して，対象原稿の後端のエッジの検出を中止するとしてもよい。
【００９２】
また，スキャナ１００は，Ｓ２１０とＳ２１１にて原稿の長さを用いて他端の位置を取得するとしたが，例えば，読取ヘッド２１と読取ヘッド２２との間隔を用いて取得してもよい。スキャナ１００は，例えば，Ｓ２１０では，上面の後端のエッジとヘッドの間隔とから下面の後端を取得してもよい。また，スキャナ１００は，例えば，Ｓ２１１では，下面の先端のエッジとヘッドの間隔とから上面の先端を取得してもよい。
【００９３】
また，例えば，原稿抑え５３，５７の色は，グレー色に限らず，白色でもよいし，他の色でもよい。また，原稿抑え５３と５７とで異なる色であってもよい。
【００９４】
また，実施の形態では，スキャナ１００にてエッジ検出を実行しているが，スキャナと接続するＰＣ等で実行してもよい。この場合，例えば，ＰＣは，スキャナに対して，画像の読み取りと読み取った画像データの送信とを指示し，スキャナから画像データを取得する。そして，ＰＣは，画像データの取得を契機に，取得した画像データに基づいて，エッジの抽出，トリミング，補修処理を実行する。このとき，スキャナからは，いずれの側の読取ヘッドで読み取った画像データであるかを示す情報を付加して，ＰＣに画像データを送信する。具体的には，ＰＣにて，Ｓ１１２の先端検出，Ｓ２０２の後端検出，Ｓ２１３のトリミングおよび補修を実行させる。あるいは，Ｓ１１２の先端検出とＳ２０２の後端検出とをＰＣにて行い，その結果をスキャナに送信して，スキャナにてＳ２１３のトリミングおよび補修を行わせてもよい。また，片面読取の場合は，ＰＣにて，Ｓ４０２の先端検出とＳ４０６のトリミングおよび補修を実行させる。なお，原稿の長さも，ＰＣにて，画像データに基づいて取得してもよい。
【００９５】
また，実施の形態に開示されている処理は，単一のＣＰＵ，複数のＣＰＵ，ＡＳＩＣなどのハードウェア，またはそれらの組み合わせで実行されてもよい。また，実施の形態に開示されている処理は，その処理を実行するためのプログラムを記録した記録媒体，または方法等の種々の態様で実現することができる。
【符号の説明】
【００９６】
２１，２２  読取ヘッド
２７  センサ
３１  ＣＰＵ
３３  ＲＡＭ
５１，５５  発光素子
５２，５６  受光素子
６３，６４  搬送ローラ対
１００  スキャナ
【図１】
0006394237.tif 000002
【図２】
0006394237.tif 000003
【図３】
0006394237.tif 000004
【図４】
0006394237.tif 000005
【図５】
0006394237.tif 000006
【図６】
0006394237.tif 000007
【図７】
0006394237.tif 000008