(57)【要約】【課題】  原稿台に原稿が載置されていないにも係わらず、原稿の取り忘れをユーザに報知してしまうことを抑制しつつ、原稿の取り忘れをユーザに報知することができる読み取り装置、制御方法及びプログラムを提供することを目的とする。【解決手段】  第１判定処理の判定結果が原稿台に原稿が載置されていないことに対応している場合、又は、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応し、且つ第２判定処理の判定結果が前記原稿台カバーが閉じ位置から移動したことに対応している場合、報知処理を実行しないことを特徴とする読み取り装置を提供することによって課題を解決する。【選択図】  図７
2018019351.tif 000002
【特許請求の範囲】
【請求項１】
原稿台上に位置する被読み取り物を読み取り部に読み取らせて画像データを生成する読み取り手段と、
前記読み取り部による前記被読み取り物の読み取りが開始された後、前記原稿台に原稿が載置されているか否かを判定するための第１判定処理を実行する第１判定手段と、
前記第１判定処理が実行された後、原稿台カバーが前記原稿台を覆う閉じ位置から移動したか否かを判定するための第２判定処理を実行する第２判定手段と、
前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応しており且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動していないことに対応している場合、ユーザに前記原稿の取り忘れを報知する報知処理を実行し、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていないことに対応している場合、又は、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応し、且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動したことに対応している場合、前記報知処理を実行しない報知手段とを有することを特徴とする読み取り装置。
【請求項２】
前記第１判定手段は、前記読み取り手段によって得られる前記画像データの補正に用いられる補正データを取得するための白基準部材を前記読み取り部によって読み取ることで得られる第１出力値と、白色シートを備える前記原稿台カバーが、前記閉じ位置に位置し、且つ前記原稿台カバーに備えられている白色シートが前記原稿台に対向している状態で、前記原稿台上に位置する前記被読み取り物を前記読み取り部によって読み取ることで得られる第２出力値と、を比較することで、前記第１判定処理を実行することを特徴とする請求項１に記載の読み取り装置。
【請求項３】
前記第１判定手段は、前記第１出力値と前記第２出力値との差が所定の閾値以下の場合に、前記原稿台に原稿が載置されていないと判定し、前記第１出力値と前記第２出力値との差が所定の閾値より大きい場合に、前記原稿台に原稿が載置されていると判定する請求項２に記載の読み取り装置。
【請求項４】
前記第１出力値及び前記第２出力値は複数の値を有し、
前記第１判定手段は、前記第１出力値のうちの第１の値と前記第２出力値のうちの第２の値との差が所定の閾値以下の場合又は、前記第１出力値のうちの前記第１の値と異なる第３の値と前記第２出力値のうちの前記第２の値と異なる第４の値との差が所定の閾値以下の場合に、前記原稿台に原稿が載置されていないと判定し、前記第１の値と前記第２の値との差が所定の閾値より大きい場合又は、前記第３の値と前記第４の値との差が所定の閾値より大きい場合に、前記原稿台に原稿が載置されていると判定することを特徴とする請求項２に記載の読み取り装置。
【請求項５】
前記第１の値は、前記第１出力値のうちの最大値であり、
前記第２の値は、前記第２出力値のうちの最大値であり、
前記第３の値は、前記第１出力値のうちの最小値であり、
前記第４の値は、前記第２出力値のうちの最小値であることを特徴とする請求項４に記載の読み取り装置。
【請求項６】
前記読み取り部が走査されながら、前記原稿台上に位置する前記被読み取り物における複数ラインが読み取られることで、複数の前記第２出力値が得られ、
前記第１判定手段は、前記第１出力値との差が所定の閾値以下である第２出力値が所定の数のライン分続かない場合に、前記原稿台に原稿が載置されていないと判定し、前記第１出力値との差が所定の閾値以下である第２出力値が所定の数のライン分続いた場合に、前記原稿台に原稿が載置されていると判定する請求項２に記載の読み取り装置。
【請求項７】
前記第１出力値に基づいて、前記読み取り部によって得られる前記画像データをシェーディング補正するためのシェーディング補正データを取得する取得手段をさらに有することを特徴とする請求項２〜６のいずれか１項に記載の読み取り装置。
【請求項８】
前記第１出力値は、前記読み取り部が走査されながら、前記白基準部材における複数のラインが読み取られることで得られた出力値の平均であることを特徴とする請求項２〜７のいずれか１項に記載の読み取り装置。
【請求項９】
前記第２判定手段は、前記原稿台に原稿が載置されていると前記第１判定手段によって判定された場合に、前記第２判定処理を実行し、前記原稿台に原稿が載置されていると前記第１判定手段によって判定されていない場合に、前記第２判定処理を実行しないことを特徴とする請求項１〜８のいずれか１項に記載の読み取り装置。
【請求項１０】
前記原稿台上に位置する前記被読み取り物が読み取られた後、所定時間が経過する毎に、前記第２判定処理を実行することを特徴とする請求項１〜９のいずれか１項に記載の読み取り装置。
【請求項１１】
前記第２判定手段は、前記読み取り部が所定の位置において第１のタイミングで取得した第３出力値と、前記読み取り部が前記所定の位置において前記第１のタイミングより後の第２のタイミングで取得した第４出力値と、を比較することで、前記第２判定処理を実行することを特徴とする請求項１〜１０のいずれか１項に記載の読み取り装置。
【請求項１２】
前記第２判定手段は、前記第３出力値と前記第４出力値との差が所定の閾値以下の場合に、前記原稿台カバーが前記閉じ位置から移動していないと判定し、前記第３出力値と前記第４出力値との差が所定の閾値より大きい場合に、前記原稿台カバーが前記閉じ位置から移動したと判定する請求項１１に記載の読み取り装置。
【請求項１３】
前記第３出力値及び前記第４出力値は複数の値を有し、
前記第２判定手段は、前記第３出力値のうちの第５の値と前記第４出力値のうちの第６の値との差が所定の閾値以下の場合又は、前記第３出力値のうちの前記第５の値と異なる第７の値と前記第４出力値のうちの前記第６の値と異なる第８の値との差が所定の閾値以下の場合に、前記原稿台カバーが前記閉じ位置から移動していないと判定し、前記第５の値と前記第６の値との差が所定の閾値より大きい場合又は、前記第７の値と前記第８の値との差が所定の閾値より大きい場合に、前記原稿台カバーが前記閉じ位置から移動したと判定することを特徴とする請求項１１に記載の読み取り装置。
【請求項１４】
前記第５の値は、前記第３出力値のうちの最大値であり、
前記第６の値は、前記第４出力値のうちの最大値であり、
前記第７の値は、前記第３出力値のうちの最小値であり、
前記第８の値は、前記第４出力値のうちの最小値であることを特徴とする請求項１３に記載の読み取り装置。
【請求項１５】
前記報知手段は、スキャンされた原稿を取り忘れている旨を報知するための画面を表示部に表示することを特徴とする請求項１〜１４のいずれか１項に記載の読み取り装置。
【請求項１６】
前記読み取り手段によって生成された前記画像データに基づく印刷を、印刷部に実行させる印刷手段をさらに有することを特徴とする請求項１〜１５のいずれか１項に記載の読み取り装置。
【請求項１７】
前記原稿台上に位置する前記被読み取り物を前記読み取り部に読み取らせるためのスキャンジョブを外部装置から受信する受信手段と、
前記受信手段によって受信された前記スキャンジョブを送信した外部装置に、前記スキャンジョブに基づいて生成された前記画像データを送信する送信手段と、を更に有することを特徴とする請求項１〜１６のいずれか１項に記載の読み取り装置。
【請求項１８】
前記読み取り部は、コンタクトイメージセンサを含むことを特徴とする請求項１〜１７のいずれか１項に記載の読み取り装置。
【請求項１９】
読み取り装置の制御手段であって、
原稿台上に位置する被読み取り物を読み取り部に読み取らせて画像データを生成する読み取りステップと、
前記読み取り部による前記被読み取り物の読み取りが開始された後、前記原稿台に原稿が載置されているか否かを判定するための第１判定処理を実行する第１判定ステップと、
前記第１判定処理が実行された後、原稿台カバーが前記原稿台を覆う閉じ位置から移動したか否かを判定するための第２判定処理を実行する第２判定ステップと、
前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応しており且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動していないことに対応している場合、ユーザに前記原稿の取り忘れを報知する報知処理を実行し、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていないことに対応している場合、又は、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応し、且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動したことに対応している場合、前記報知処理を実行しない報知ステップと、を有することを特徴とする制御手段。
【請求項２０】
読み取り装置に、
原稿台上に位置する被読み取り物を読み取り部に読み取らせて画像データを生成する読み取りステップと、
前記読み取り部による前記被読み取り物の読み取りが開始された後、前記原稿台に原稿が載置されているか否かを判定するための第１判定処理を実行する第１判定ステップと、
前記第１判定処理が実行された後、原稿台カバーが前記原稿台を覆う閉じ位置から移動したか否かを判定するための第２判定処理を実行する第２判定ステップと、
前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応しており且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動していないことに対応している場合、ユーザに前記原稿の取り忘れを報知する報知処理を実行し、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていないことに対応している場合、又は、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応し、且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動したことに対応している場合、前記報知処理を実行しない報知ステップと、を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読み取り装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
原稿台に載置された原稿を読み取って（スキャンして）、画像データを生成する読み取り装置が知られている。このような読み取り装置の利用において、ユーザは、読み取り装置に原稿の読み取りを行わせた後、原稿台に載置された原稿を取り忘れてしまうことがある。そこで、特許文献１では、原稿を読み取ってから所定時間経過後に再度原稿を読み取り、得られた２つのデータが等しい場合には、タッチパネルに原稿を取り除く旨の表示を行うことで、原稿の置き忘れを防止する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−４６６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、例えば、読み取り装置が、原稿台に原稿が載置されていないにもかかわらずスキャン動作を実行してしまった場合の制御について考慮されていない。そのため、特許文献１では、例えば、原稿台に原稿が載置されていないにも係わらず、原稿の取り忘れをユーザに報知してしまうおそれがあった。
【０００５】
そこで、本発明は、原稿台に原稿が載置されていないにも係わらず、原稿の取り忘れをユーザに報知してしまうことを抑制しつつ、原稿の取り忘れをユーザに報知可能な読み取り装置、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述のような課題を解決するための本発明の読み取り装置は、原稿台上に位置する被読み取り物を読み取り部に読み取らせて画像データを生成する読み取り手段と、
前記読み取り部による前記被読み取り物の読み取りが開始された後、前記原稿台に原稿が載置されているか否かを判定するための第１判定処理を実行する第１判定手段と、
前記第１判定処理が実行された後、原稿台カバーが前記原稿台を覆う閉じ位置から移動したか否かを判定するための第２判定処理を実行する第２判定手段と、
前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応しており且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動していないことに対応している場合、ユーザに前記原稿の取り忘れを報知する報知処理を実行し、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていないことに対応している場合、又は、前記第１判定処理の判定結果が前記原稿台に前記原稿が載置されていることに対応し、且つ前記第２判定処理の判定結果が前記原稿台カバーが前記閉じ位置から移動したことに対応している場合、前記報知処理を実行しない報知手段とを有することを特徴とする。
【発明の効果】
【０００７】
原稿台に原稿が載置されていないにも係わらず、原稿の取り忘れをユーザに報知してしまうことを抑制しつつ、原稿の取り忘れをユーザに報知することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態の読み取り装置の外観図と、本実施形態の読み取り装置が備えるスキャナ部の断面図及び俯瞰図である。
【図２】本実施形態の読み取り装置のブロック構成図である。
【図３】スキャンされた原稿を取り忘れている旨を報知するための画面の一例である。
【図４】本実施形態の読み取り装置が備えるソフトウェアの構成図である。
【図５】本実施形態の読み取り装置に実行させる処理を設定するための設定画面の一例である。
【図６】本実施形態の読み取り装置が実行するシェーディング補正制御のフローチャートである。
【図７】本実施形態の読み取り装置が実行する原稿取り忘れ検知処理のフローチャートである。
【図８】スキャン動作中に得られる出力と、シェーディング補正用データ取得中に得られる出力とを示すグラフである。
【図９】スキャン動作中に得られる出力と、シェーディング補正用データ取得中に得られる出力とを示すグラフである。
【図１０】スキャン動作中に得られる出力と、シェーディング補正用データ取得中に得られる出力とを示すグラフである。
【図１１】本実施形態の読み取り装置が備えるスキャナ部の俯瞰図である。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
【００１０】
（第１実施形態）
本発明を適用した読み取り装置について説明する。本実施形態において、読み取り装置として、インクジェット記録方式の複合機（ＭＦＰ）を例示しているが、ＭＦＰではなく、単機能の装置（ＳＦＰ）であっても良い。また、本発明の読み取り装置は、印刷機能を備えていなくても良く、少なくとも、原稿を読み取って画像データを生成する読み取り機能（スキャン機能）を有していれば良い。
【００１１】
図１（Ａ）は、本実施形態の読み取り装置であるＭＦＰ１００の外観を示す図である。原稿台１０１は、スキャン対象の原稿が載置される場所である。挿入口１０３は、印刷対象の記録媒体（紙等）が挿入されるためのユニットである。ユーザが挿入口１０３に記録媒体を載置した後、ＭＦＰ１００が印刷動作命令を受け付けると、ＭＦＰ１００によって印刷が実行され、記録剤によって印刷が施された記録媒体（印刷結果物）が排出口１０４から排出される。なお、ユーザが原稿台１０１に原稿を載置し、挿入口１０３に記録媒体を載置した後、ＭＦＰ１００がコピー動作命令を受け付けると、ＭＦＰ１００によって、原稿台１０１に置かれた原稿がスキャンされ、その結果得られた画像が記録媒体に形成される。
【００１２】
図２は、ＭＦＰ１００のハードウェア構成を示すブロック図である。ＣＰＵ２０３を含む制御部２０２は、ＭＦＰ１００全体の動作を制御する。
【００１３】
ＣＰＵ２０３は、ＲＯＭ２０５に記憶された制御プログラムをＲＡＭ２０４に展開し、必要な時に読み出して読取制御や印刷制御などの各種制御を行う。ＲＡＭ２０４は、ＣＰＵ２０３の主記憶メモリであり、ワークエリアやＲＯＭ２０５に記憶された各種プログラムを展開する為の一時記憶領域として用いられる。
【００１４】
ＲＯＭ２０５は、ＣＰＵ２０３が実行する制御プログラムや組込オペレーティングシステム（以下、ＯＳ）プログラム等の各種プログラムを格納する。本実施形態では、ＲＯＭ２０５に格納されている制御プログラムは、ＲＯＭ２０５に格納されている組込ＯＳの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。また、本実施形態では、ＲＯＭ２０５は、画像データ、各種プログラム及び各種設定情報も格納する。本実施形態では、ＲＯＭ２０５としてフラッシュストレージ等を想定しているが、ハードディスク等の補助記憶装置であってもよい。
【００１５】
プリンタＩ／Ｆ２０７は、プリンタ部２１３と制御部２０２とを接続させるためのインタフェースである。画像データはプリンタＩ／Ｆ２０７を介して制御部２０２からプリンタ部２１３に転送される。画像データを受信したプリンタ部２１３は、印刷部として動作し、インク等の記録剤を用いて、紙等の記録媒体上に、受信した画像データに応じた画像を印刷する。
【００１６】
スキャナＩ／Ｆ２０８は、スキャナ部２１４と制御部２０２とを接続させるためのインタフェースである。スキャナ部２１４は、原稿台１０１に載置された原稿を読み取ってデジタル画像データを生成し、生成した画像データを、スキャナＩ／Ｆ２０８を介してＲＡＭ２０４に転送する。
【００１７】
操作部Ｉ／Ｆ２０９は、ＵＩ部２１５と制御部２０２を接続する。ＵＩ部２１５には、タッチパネル機能を有する液晶表示部や操作キーなどが備えられている。すなわちＵＩ部２１５は、ユーザから各種操作を受け付ける操作部や、ユーザに情報を表示する表示部として機能する。なお、本実施形態では、ＵＩ部２１５をタッチパネルで構成することで、操作部と表示部とを同一のユニットとしているが、例えば、操作部を物理キー等で構成することで、操作部と表示部とを別々のユニットとして構成しても良い。また、ＭＦＰ１００は、ＵＩ部２１５に対するユーザからの操作を受け付けることで、ユーザから印刷動作命令やコピー動作命令、スキャン動作命令を受け付けることが可能である。なお、ＭＦＰ１００は、ＵＩ部２１５を介してユーザから印刷動作命令を受け付ける場合には、例えばＳＤカード等の記録媒体に格納された画像データに基づいて印刷を行う。
【００１８】
ＵＳＢ  Ｉ／Ｆ２１０及びネットワークＩ／Ｆ２１１は、ＭＦＰ１００と外部装置とを接続させ、ＭＦＰ１００と外部装置との通信を制御するためのインタフェースである。例えば、ＵＳＢ  Ｉ／Ｆ２１０は、ＵＳＢケーブル経由で外部装置からスキャン動作命令（スキャンジョブ）を受け付けた場合、当該命令に対応する信号をＲＡＭ２０４に保存する。ＣＰＵ２０３はこれを読み取ることでスキャナ部２１４にスキャン動作を実行させ、スキャン動作によって取得された画像データを一時的にＲＡＭ２０４に保存する。ＲＡＭ２０４に保存された画像データは、ＵＳＢ  Ｉ／Ｆ２１０を介して外部装置に転送される。ＣＰＵ２０３は、画像データが外部装置に転送されたことを確認すると、ＲＡＭ２０４に保存されている、外部装置へ転送済みの画像データを削除する。全ての画像データの転送と削除が終了することで、外部装置から指示されたスキャン動作も終了する。
【００１９】
ＵＳＢケーブル経由でなく、ネットワーク経由で、外部装置からスキャン動作命令が行われる場合は、同様の動作がネットワークＩ／Ｆ２１１を介して実施される。なお、ＭＦＰ１００は、スキャンジョブを外部装置から受信するだけでなく、例えば、操作部Ｉ／Ｆ２０９を介したユーザ操作等からも、スキャンジョブを受け付けることができる。
【００２０】
画像処理部２１６は、スキャン動作によって得られた画像データに画像処理や補正が必要な場合や、外部装置から印刷動作命令（印刷ジョブ）とともに受信した画像データに画像処理が必要な場合に使用される。また、主に、画像処理部２１６は、ＲＡＭ２０４に展開された制御プログラムによる画像処理や補正では時間がかかってしまうような処理を、ハード機能で処理する場合に用いられる。なお、外部装置とは、読み取り装置と通信可能な装置あり、例えば、携帯端末、パーソナルコンピュータ（ＰＣ）、タブレット端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルカメラ等の装置である。以上が、ハードウェア構成図の説明となる。
【００２１】
続いて、ＭＦＰ１００のソフトウェア構成図について説明する。図４は、ＲＡＭ２０４に展開された、各ハードモジュールを制御するための制御プログラムのソフトウェア構成図である。なお、制御プログラムは、アプリケーション４１０、ミドルウェア４２０、オペレーションシステム４３０の３つのブロックに大別される。なお、各ソフトウェアによって実現される処理は、ＲＯＭ２０５等のメモリに格納された各ソフトウェアに対応する各種プログラムを、ＣＰＵ２０３がＲＡＭ２０４に読み出して実行することにより実現される。
【００２２】
オペレーションシステム４３０は、制御部２０２で制御プログラムに基づく処理を実行するための基礎的な機能を提供するソフトウェアである。ミドルウェア４２０は、プリンタ部２１３やスキャナ部２１４などの各物理的なデバイスとのインタフェース（Ｉ／Ｆ）を制御するソフトウェア群で構成される。本実施形態では、ミドルウェア４２０として、プリンタＩ／Ｆ２０７を制御するモジュールであるプリンタ制御モジュール４２１や、スキャナＩ／Ｆ２０８を制御するモジュールであるスキャナ制御モジュール４２２が存在する。さらに、ミドルウェア４２０として、ＵＳＢ  Ｉ／Ｆ２１０及びネットワークＩ／Ｆ２１１を制御するＩ／Ｆ制御部４２４や、操作部Ｉ／Ｆ２０９を制御するＵＩ制御モジュール４２５が存在する。アプリケーション４１０は、各ミドルウェアを介して各デバイスを動作させて、ＭＦＰ１００がユーザに提供する機能（印刷機能、コピー機能、スキャン機能等）を実現するためのソフトウェア群で構成される。
【００２３】
例えば、ＵＩ部２１５や操作部Ｉ／Ｆ２０９を介してユーザがコピー動作命令を入力したことをＵＩ制御モジュールが検知すると、アプリケーション４１０にそのことが報知される。アプリケーション４１０は、報知を受けて、コピーを実行するための機能管理アプリケーション（以下機能管理ＡＰＬ）４１１を実行する。機能管理ＡＰＬ４１１はコピーを実行するに当たり、スキャンジョブとプリントジョブを発行し、ジョブ管理アプリケーション（以下ジョブ管理ＡＰＬ）４１２によってそれらのジョブを実行させる。まず、ジョブ管理ＡＰＬ４１２は、スキャンジョブを実行する。具体的には、ジョブ管理ＡＰＬ４１２は、ミドルウェア４２０のスキャナ制御モジュール４２２を用いて、スキャナ部２１４にスキャン動作を実行させ、その結果取得された画像データをＲＡＭ２０４に保存する。なお、ジョブ管理ＡＰＬ４１２がＲＡＭ２０４に画像データを保存する際、当該画像データに画像処理や補正を必要とする場合がある。その場合は、スキャナ制御モジュール４２２は、画像処理部２１６を用いて、画像データに、必要な画像処理や補正を施す。このようにしてコピーに使用される画像データがＲＡＭ２０４に保存されると、ジョブ管理ＡＰＬ４１２は、印刷ジョブを実行する。具体的には、ジョブ管理ＡＰＬ４１２は、ミドルウェア４２０のプリンタ制御モジュール４２１を用いて、プリンタ部２１３に、ＲＡＭ２０４に保存された画像データに基づく印刷を実行させる。このとき、プリンタ制御モジュール４２１は、ＲＡＭ２０４に保存されている画像データを、プリンタＩ／Ｆ２０７に送信する。この際、プリンタ制御モジュール４２１は、必要であれば画像処理部２１６を用いて、送信する画像データに対し画像処理や補正を施す。このように各モジュールが連動することで、ＭＦＰ１００が提供する各機能が実現される。以上が、ソフトウェア構成図の説明となる。
【００２４】
図１（Ｂ）は、スキャナ部２１４の断面図である。原稿台はスキャナセンサと原稿間の距離を一定に保つためのコンタクトガラス１１５と、それを保持する部品で構成されている。ユーザは原稿台１０１に載置されたヒンジ１１６を支点として原稿台カバー１０２を持ち上げる（コンタクトガラス１１５に対して垂直方向上方に回動させる）ことができる。原稿台カバー１０２は、コンタクトガラス１１５を覆う閉じ位置と、コンタクトガラス１１５を開放する開放位置との間で回動可能なカバーである。原稿台カバー１０２が持ち上げられ、原稿台１０１が開放されると、ユーザは原稿台１０１に原稿を載置することができる。なお、原稿台カバー１０２は閉じ位置に位置することで、コンタクトガラス１１５上（原稿台１０１上）に載置された原稿を押さえる圧板としても機能する。このとき、原稿台カバー１０２における、コンタクトガラス１１５上に載置された原稿に接する面には、スキャン画像を損なわないための白色のシートが貼り付けられている。これが白色シート１０５である。なお、コンタクトガラス１１５上に載置された原稿に接する面とは、言い換えれば、原稿台カバー１０２は閉じ位置に位置する状態で原稿台１０１に対向する面である。スキャナ部２１４は、原稿台カバー１０２と原稿台１０１の間に載置された被読み取り物（原稿等）を読み取って、画像データを生成する。なお、例えば、原稿台１０１に原稿が載置されていない状態でスキャンが行われる場合は、原稿台上には原稿台カバー１０２に張り付けられた白色シート１０５が位置することになるため、スキャナ部２１４は、白色シート１０５を読み取ることになる。なお、スキャナ部２１４が被読み取り物の読み取りに用いる構成として、本実施形態では、スキャナ部２１４は、コンタクトイメージセンサ（以下ＣＩＳ）によって読み取りを行うものとする。スキャナ部２１４は、ＣＩＳ１２０と、ＣＩＳ１２０をコンタクトガラス１１５と略水平の方向に駆動させる移動装置から構成されている。なお、スキャナ部２１４の構成は上述の形態に限定されない。例えば、スキャナ部２１４には、ＣＣＤイメージセンサ等、公知の構成が適用可能である。
【００２５】
スキャナ部２１４は、スキャナＩ／Ｆ２０８を介してスキャナ制御モジュール４２２から読取命令を受け取ると、まず白基準シート１１４の下に移動し、センサアレイ１１３によって各画素の出力補正データを作成する。なお、白基準シート１１４とは、後述するシェーディング補正処理において基準となる出力値を得るために使用されるシートである。なお、白基準シート１１４は、上記の目的に使用される部材（すなわち、白基準部材）であれば、その形状や材質は限定されない。出力補正データの作成方法と、補正方法についての詳細は＜シェーディング補正について＞のセクションで述べる。作成された補正データは、スキャナ制御モジュール４２２によって、ＲＡＭ２０４へと送信される。補正データの作成が終わると、スキャナ制御モジュール４２２はＬＥＤ１１１を点灯し、ＣＩＳ１２０を移動させながらコンタクトガラス１１５上に載置された原稿を読み取る。
【００２６】
なお、本実施形態のＣＩＳ１２０は、画像をデジタル化して出力を得るためのイメージセンサの集合であるセンサアレイ１１３を含む。ＣＩＳ１２０の移動中、ＬＥＤ１１１から発せられた光は原稿から反射するが、この反射光はレンズアレイ１１２を介してセンサアレイ１１３へ導かれる。原稿からの反射光がセンサアレイ１１３に入射することで、各色の出力が得られるので、スキャナ制御モジュール４２２はこれをＲＡＭ２０４に保存する。具体的には、スキャナ制御モジュール４２２は、反射光を撮像素子で電気信号に変換した後、その電気信号をＡ／Ｄ変換することで、デジタルデータを出力する。なお、スキャナ制御モジュール４２２は、ＬＥＤ１１１が発する光をＲ（Ｒｅｄ），Ｇ（Ｇｒｅｅｎ），Ｂ（Ｂｌｕｅ）と変化させてセンサアレイ１１３への入射光を制御することで、各色の出力を取得し、合成する。そして、スキャナ制御モジュール４２２は、各色の出力と、ＲＡＭ２０４に保存してある出力補正用データと画像処理部２１６を用いて画像データを生成する。なお、本実施形態において、センサによってある領域に対応する出力を得ることは、センサによって当該領域の原稿を読み取り、当該領域に対応する画像データを生成することに対応する。コンタクトガラス１１５上に載置された原稿の読み取りが完了し、原稿のデジタル画像データの生成が終了すると、スキャナ制御モジュール４２２は、次の原稿の読み取りに向けてＣＩＳ１２０を待機位置１１０６に移動させる。待機位置１１０６とは、ＣＩＳ１２０がスキャン前に待機している位置である。待機位置１１０６の一例を図１１に示す。本実施形態では、待機位置１１０６は、白基準シート１１４の下の位置であるものとするが、この形態に限定されず、任意の位置であって良い。ＭＦＰ１００は、このようにしてスキャナ部２１４で生成された画像データをプリンタ部２１３に転送することで、当該画像データに基づく画像を印刷することができる。また、スキャナ部２１４で生成された画像データを、各種送信プロトコルを用いて外部装置に送信することもできる。更に、スキャナ部２１４で生成された画像データをＭＦＰ１００が読み書き可能な保存領域に保存することもできる。
【００２７】
ユーザがＭＦＰ１００の電源をオンすると、ＭＦＰ１００に実行させる処理を設定するための設定画面が、ＵＩ部２１５に表示される。図５は、ＵＩ部２１５に表示される設定画面の一例を示す図である。ユーザは、図５の画面において操作キー５０１〜５０３を操作することにより、ＭＦＰ１００に実行させる処理を指定する事ができる。操作キー５０１は、ＭＦＰ１００にコピーを実行させるためのキーである。操作キー５０２は、ＭＦＰ１００にスキャンを実行させ、さらに、スキャンによって取得された画像データを外部装置に送信させるためのキーである。操作キー５０３は、ＭＦＰ１００にスキャンを実行させ、さらに、スキャンによって取得された画像データをＭＦＰ１００が備える記憶領域に保存させるためのキーである。なお、設定画面において、ＭＦＰ１００に他の処理を実行させるためのキーが備わっていても良い。例えば、ＭＦＰ１００の設定（ネットワーク設定や印刷設定等）を変更させるためのキーが備わっていても良い。また、図５では、機能として「コピー」、「スキャンして送信」及び「スキャンして保存」を例示しているが、ＭＦＰ１００がこれら以外の機能を備えていてもよい。なお、本実施形態で開示する原稿取り忘れ検知処理は、上述した各機能が実行された場合や、外部装置からスキャンジョブやコピージョブを受け付けた場合等に実行される。
【００２８】
以下に、本実施形態で開示する原稿取り忘れ検知処理について説明する。本実施形態では、原稿取り忘れ検知処理は、スキャン中に原稿台１０１上に原稿があるか否かを判定する原稿検知処理、スキャン後の原稿台カバー１０２の開閉を検知する開閉検知処理及びユーザに原稿の取り忘れを報知する報知処理を含む。本実施形態では、原稿検知処理の結果に応じて開閉検知処理及び報知処理を行うか否かを決定することで、原稿が無いにも関わらず、報知処理が行われてしまうことを抑制できる。また、本実施形態では、シェーディング補正データの取得中に得た出力値と、スキャン中に得た出力値との比較によって原稿検知処理を行うことで、スキャンを複数回繰り返すことなく、原稿台１０１上に原稿があるか否かを判定することができる。各処理の詳細は後述する。
【００２９】
＜シェーディング補正について＞
図１（Ｃ）は、スキャナ部２１４の上方からの俯瞰図である。なお、図１（Ｃ）は、スキャナ部２１４がスキャン動作を実行中のある一瞬を切り取った場面における模式図であるため、ＣＩＳ１２０は待機位置ではなく、スキャン経路上の位置にある。本実施形態では、ＬＥＤ１１１から発せられ、原稿から反射された光を受け付け、その光に対して光電変換を行い、電流として出力できるセンサが、センサアレイ１１３に一次元に並んだ構成となっている。本実施形態では、「センサの主走査方向」とは、センサが並んでいる方向である。また、言いかえれば、「センサの主走査方向」とは、スキャン動作中にＣＩＳ１２０が移動する方向と略垂直な方向である。
【００３０】
また、本実施形態では、センサアレイ１１３を構成しているセンサひとつひとつからセンサの位置順に得られた出力がＡ／Ｄ変換された結果を、「主走査方向１ラインの出力」と呼ぶ。図１（Ｃ）に、主走査方向１ラインの出力範囲を図示する。なお、各センサから得られる出力は、ジョブ管理ＡＰＬ４１２によって指定された解像度が３００ｄｐｉであるならば、最大値６５５３５、最小値０となる。例えば、センサアレイ１１３が２５９２個のセンサで構成され、それぞれの出力が１６ｂｉｔでＡ／Ｄ変換される場合、「主走査方向１ラインの出力」は、各センサから得られる２５９２個の出力（デジタルデータ）となる。ただし、「主走査方向１ラインの出力」における出力の個数は、ジョブ管理ＡＰＬ４１２によって指定された解像度や、センサアレイ１１３に含まれるセンサの個数によって変化する。例えばジョブ管理ＡＰＬ４１２によって指定された解像度が１５０ｄｐｉである場合、スキャナ制御モジュール４２２は、隣り合うセンサの出力の平均を取るなどして、１２９６個のデジタルデータを得る。
【００３１】
続いて、「コンタクトガラス１１５の開口部における主走査方向出力範囲」について説明する。図１（Ｃ）に、この範囲を図示する。多くの場合、センサアレイ１１３の主走査方向の長さは、コンタクトガラス１１５の主走査方向の長さに対して長い。そのため、センサアレイ１１３の端部は、コンタクトガラス１１５の開口部には対向せず、コンタクトガラス１１５の外側にある、光を透過しない部材に対向することになる。センサアレイ１１３に配置されたセンサのうち、光を透過しない部材に対向する部分に配置されるセンサの出力は、原稿台に載置された原稿の状態や、原稿台カバーの状態にあまり影響されない。これは、ＬＥＤ１１１から発せられた光が、光を透過しない部材に吸収されるため、センサに反射光が入射しないためである。そのため、光を透過しない部材に対向する部分に配置されるセンサの出力からは、原稿台に載置された原稿の状態や、原稿台カバーの状態を検知することができない。よって、本実施形態では、光を透過しない部材に対向する部分以外の範囲である「コンタクトガラス１１５の開口部における主走査方向出力範囲」のセンサ出力を様々な判定に用いるものとする。
【００３２】
最後に、「スキャン動作の主走査方向出力範囲」について説明する。図１（Ｃ）に、この範囲を図示している。ＭＦＰ１００がスキャンジョブを実行する場合、スキャナ制御モジュール４２２は、ジョブ管理ＡＰＬ４１２からスキャン動作対象範囲１１７の指定を受け付ける。例えば、スキャンジョブには、スキャン動作対象範囲１１７に関する設定情報が含まれており、当該設定情報が、Ａ４を示すものである場合、スキャン動作対象範囲１１７は、Ａ４の大きさに対応する範囲となる。
【００３３】
その後、スキャナ制御モジュール４２２は、スキャンジョブに含まれる設定情報に基づいて、センサアレイ１１３に配置されているセンサのうち、いずれのセンサを用いるかを決定する。具体的には、スキャナ制御モジュール４２２は、センサアレイ１１３に配置されたセンサのうち、スキャン動作対象範囲１１７の主走査方向の長さ及び位置に対応する部分に配置されているセンサを用いることを決定する。これにより、スキャナ制御モジュール４２２は、スキャン動作対象範囲１１７における出力を得られるようにする。なおこのとき、決定されたセンサ以外のセンサは駆動しないように制御されても良いし、全センサを駆動して出力を得た後、決定されたセンサから得られる出力のみ利用するよう制御されても良い。その後、スキャナ制御モジュール４２２は、スキャンジョブに含まれる設定情報に基づいて、スキャン中にＣＩＳ１２０を副走査方向に移動させる範囲（スキャンする範囲）を指定する。具体的には、スキャナ制御モジュール４２２は、少なくとも、スキャン動作対象範囲１１７の副走査方向の長さに対応する距離、ＣＩＳ１２０を移動させることを決定し、スキャン動作対象範囲１１７における出力を得られるようにする。
【００３４】
続いて、スキャン中（センサアレイ１１３による出力結果取得中）に、原稿取り忘れ検知処理で使用するパラメータをどのように取得するかについて解説する。
【００３５】
図６はスキャナ制御モジュール４２２が行う、白基準シートを用いたシェーディング補正制御のフローチャートである。センサから得られる本来の出力と、センサから実際に得られる出力との差は、一般にシェーディングと呼ばれる。そして、各センサのシェーディングを補正する処理は、シェーディング補正と呼ばれる。以下、シェーディング補正のために用いられるデータを「シェーディング補正用データ」という。
【００３６】
図６（Ａ）は、ＭＦＰ１００が実行するシェーディング補正処理を示すフローチャートである。なお、図６（Ａ）に示すフローチャートは、例えば、ＣＰＵ２０３がＲＯＭ２０５等に格納されたプログラムをＲＡＭ２０４に読み出して実行することにより実現される。また、シェーディング補正処理が実行されるタイミングは特に限定されず、例えば、スキャン前に必ず実行される形態としても良いし、前回のシェーディング補正処理から所定の時間が経過したタイミングで実行される形態としても良い。また、例えば、ＭＦＰ１００の電源が入ったタイミングや、センサから得られる出力に有意な誤差が生じたタイミングで実施されても良い。なお、センサから得られる出力に有意な誤差が生じたか否かは、同条件における出力を定期的にセンサから取得し、取得された出力に有意な差が生じたタイミングを検知することで判定することができる。
【００３７】
Ｓ６１１で、ＣＰＵ２０３は、図示しないモータ制御部にモータを駆動させることで、白基準シート１１４の下にＣＩＳ１２０を移動させる。以後、ＣＩＳ１２０の移動は全て、モータ制御部によってモータが駆動することで実現されるものとする。
【００３８】
次に、ＣＰＵ２０３は、ＬＥＤ１１１をコントロールし、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）の各波長帯の光の、スキャン動作時における点灯時間を決定する（Ｓ６１２）。この処理を調光処理と呼ぶ。
【００３９】
図６（Ｂ）は、ＭＦＰ１００が実行する調光処理を示すフローチャートである。なお、図６（Ｂ）に示すフローチャートは、例えば、ＣＰＵ２０３がＲＯＭ２０５等に格納されたプログラムをＲＡＭ２０４に読み出して実行することにより実現される。また、図６（Ｂ）に示すフローチャートは、Ｓ６１２の処理に対応する。
【００４０】
Ｓ６２１において、ＣＰＵ２０３は、ＬＥＤ１１１の点灯色であるＲ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）全ての点灯色の調光が完了したか否かを判定する。ＣＰＵ２０３は、全ての点灯色の調光が完了したと判定した場合、調光処理を終了し、Ｓ６１２の処理を実行する。一方、ＣＰＵ２０３は、全ての点灯色の調光が完了していないと判定した場合、Ｓ６２２の処理を実行する。
【００４１】
Ｓ６２２において、ＣＰＵ２０３は、ＬＥＤ１１１の点灯色であるＲ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）のうち、いずれかを選択し、選択した点灯色の調光を開始する。本実施形態では、Ｒから調光を開始するとする。
【００４２】
Ｓ６２３において、ＣＰＵ２０３は、Ｓ６２２で選択した調光対象の点灯色の点灯時間Ｔを最大値Ｔｍａｘに設定する。
【００４３】
その後、Ｓ６２４において、ＣＰＵ２０３は、点灯時間Ｔだけ、Ｓ６２２で選択した調光対象の点灯色の光をＬＥＤ１１１から発するよう制御する。このとき、白基準シートで反射した、調光対象の点灯色の光は、センサアレイ１１３に入射し、センサアレイ１１３に含まれる各センサから電気信号としてアナログ出力される。この出力結果はＡ／Ｄ変換回路に入力され、デジタルデータに変換される。Ｓ６２５において、ＣＰＵ２０３は、白基準シートで反射した、調光対象の点灯色の光がセンサアレイ１１３を介してデジタルデータに変換された後の値である出力Ｏを取得する。
【００４４】
なお、ＬＥＤ１１１の点灯時間Ｔがセンサアレイ１１３の感度に対し長すぎる場合は、センサアレイ１１３の出力Ｏは飽和してしまう。すなわち、出力Ｏが、最大値（解像度が３００ｄｐｉであるならば、６５５３５）に達してしまう。そこで、Ｓ６２６において、ＣＰＵ２０３は、出力Ｏが予め定められた閾値Ｏｓａｔ（Ｏｓａｔ＜出力最大値）より大きいか否かを判定することによって、出力Ｏが飽和しているか否かを判定する。出力Ｏが飽和していた場合、点灯時間Ｔがセンサアレイ１１３の感度に対し長すぎるので、ＣＰＵ２０３は、Ｓ６２７に進み、点灯時間Ｔを、現在設定されている値からＴｓだけ小さい値に設定する。その後、ＣＰＵ２０３は、再度Ｓ６２４に進み、新たに設定された時間だけＬＥＤ１１１を点灯し、新たに出力Ｏを得た後、出力Ｏが飽和しているか否かを判定する。ＣＰＵ２０３は、これらの処理を繰り返し、点灯時間Ｔに、出力Ｏが飽和しない値を設定する。この処理を、点灯各色（ＲＧＢ）に対して行い、各色の点灯時間Ｔｏ＿Ｒ、Ｔｏ＿Ｇ、Ｔｏ＿Ｂを取得する。なお、本実施形態では、Ｓ６２５で取得される出力Ｏは、主走査方向１ラインにおいて各センサから得られる出力のうち、最大値とする。この最大値は、スキャナＩ／Ｆ２０８に含まれる最大最小値算出回路によって求められるものとする。本実施形態では、処理高速化と処理負担軽減のために専用回路を用いて最大値を求めているが、主走査方向１ラインにおいて各センサから得られる出力を一時的にバッファに保存し、保存した値から最大値を検索することで最大値を求めても良い。
【００４５】
以上が調光処理の説明となる。調光処理によって決定された各色の点灯時間は、スキャン動作時他、シェーディング補正用データ取得時、さらに本実施形態で開示される開閉検知処理時等に使用される。このようにすることで、ＬＥＤ点灯時間がセンサの感度に対して適切でないことによる誤動作が生じることを抑制する。
【００４６】
ＣＰＵ２０３は、上述した調光処理が終了した場合、Ｓ６１３において、シェーディング補正用データ作成処理を行う。
【００４７】
図６（Ｃ）は、ＭＦＰ１００が実行するシェーディング補正用データ作成処理を示すフローチャートである。なお、図６（Ｃ）に示すフローチャートは、例えば、ＣＰＵ２０３がＲＯＭ２０５等に格納されたプログラムをＲＡＭ２０４に読み出して実行することにより実現される。また、図６（Ｃ）に示すフローチャートは、Ｓ６１３の処理に対応する。
【００４８】
Ｓ６３１にて、ＣＰＵ２０３は、図示しないスキャナ制御回路を介してＬＥＤ１１１をコントロールし、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）の波長帯の光を順次点灯する。このときの各色の点灯時間の値は、調光処理で求められた値であるＴｏ＿Ｒ、Ｔｏ＿Ｇ、Ｔｏ＿Ｂである。それぞれの光は、白基準シート１１４上で反射した後、順々にセンサアレイ１１３に入射する。その後、センサアレイ１１３に含まれるセンサからそれぞれの光に対するアナログ出力（電気信号）得られ、得られた電気信号がＡ／Ｄ変換回路を介してデジタルデータに変換される。これにより、ＣＰＵ２０３は、ＬＥＤ１１１を点灯させた状態で、出力値（Ｏｓｈ＿ｏｎ）を得る。
【００４９】
Ｓ６３２にて、ＣＰＵ２０３は、センサアレイ１１３に含まれるセンサから得られた出力値（Ｏｓｈ＿ｏｎ）を取得し、ＲＡＭ２０４におけるシェーディング補正用データ保管領域に、一時的に保存する。なお、Ｏｓｈ＿ｏｎは、複数のセンサから得られた複数の出力値の集合を示す。本実施形態では、保存されるデータは主走査方向１ライン分の出力に対応するデータのみとし、各データの値は、点灯色毎にそれぞれＯｓｈ＿ｏｎ＿Ｒ，Ｏｓｈ＿ｏｎ＿Ｇ，Ｏｓｈ＿ｏｎ＿Ｂ，とする。主走査方向１ライン分の出力に対応するデータは、主走査方向１ライン分の出力に対応するデータそのものであってもよいし、複数ライン分の出力に対応するデータの平均値であっても良い。また、ＣＰＵ２０３は、白基準シート下でＣＩＳ１２０を副走査方向に移動（走査）させ、それぞれ異なるラインにおける出力をセンサに取得させることで、複数ライン分の出力に対応するデータを取得してもよい。ＣＰＵ２０３は、ＣＩＳ１２０を副走査方向に移動させて出力を取得させた場合は、主走査方向のセンサ毎の出力のソートを行い、上位／下位のいくつかの出力を除外してから平均値を求めてもよい。これにより、白基準シート上のゴミや特異点の影響を抑えることができる。
【００５０】
続いてＳ６３３では、出力値（Ｏｓｈ＿ｏｎ）のうち、最大値（Ｏｓｈ＿ｍａｘ）と最小値（Ｏｓｈ＿ｍｉｎ）を取得し、シェーディング補正用データ保管領域に保存する。具体的には、ＣＰＵ２０３は、Ｏｓｈ＿ｏｎ＿Ｒ，Ｏｓｈ＿ｏｎ＿Ｇ，Ｏｓｈ＿ｏｎ＿Ｂのうち、それぞれの最大最小値であるＯｓｈ＿Ｒｍａｘ／Ｏｓｈ＿Ｒｍｉｎ，Ｏｓｈ＿Ｇｍａｘ／Ｏｓｈ＿Ｇｍｉｎ，Ｏｓｈ＿Ｂｍａｘ／Ｏｓｈ＿Ｂｍｉｎを取得する。なおこのとき、ＣＰＵ２０３は、Ｏｓｈ＿ｏｎ＿Ｒ，Ｏｓｈ＿ｏｎ＿Ｇ，Ｏｓｈ＿ｏｎ＿Ｂのうち、全ての値から最大最小値を求めることはしない。具体的には、ＣＰＵ２０３は、Ｏｓｈ＿ｏｎ＿Ｒ，Ｏｓｈ＿ｏｎ＿Ｇ，Ｏｓｈ＿ｏｎ＿Ｂのうち、コンタクトガラス１１５の開口部分に対向するセンサからの出力から、最大最小値を求める。コンタクトガラス１１５に対してセンサアレイ１１３が長い場合、センサアレイ１１３上のセンサのうち、コンタクトガラス１１５の開口部ではない部分に対向するセンサから得られる出力は常に小さい。そのため、Ｏｓｈ＿ｏｎ＿Ｒ，Ｏｓｈ＿ｏｎ＿Ｇ，Ｏｓｈ＿ｏｎ＿Ｂのうち、全ての値から最小値を求める場合、最小値が、コンタクトガラス１１５の開口部ではない部分に対向するセンサから得られる出力に常になってしまう。これを抑制するために、ＣＰＵ２０３は、少なくとも、原稿が置かれたことや原稿台カバーが開閉されたことにより出力が変化する範囲のデータから、最大最小値を取得する。なお、ここで取得された値は、後述の原稿検知処理判定において利用される。
【００５１】
Ｓ６３４では、ＣＰＵ２０３は、ＬＥＤ１１１を消灯させる。
【００５２】
Ｓ６３５では、ＣＰＵ２０３は、ＬＥＤ１１１を消灯させた状態で、センサアレイ１１３に含まれるセンサから、出力値（Ｏｓｈ＿ｏｆｆ）を取得し、シェーディング補正用データ保管領域に、一時的に保存する。このとき保存されるデータの取得方法は、Ｓ６３２におけるデータの取得方法と同様である。これにより、ＣＰＵ２０３は、ＬＥＤ１１１を消灯させた状態における出力を得る。
【００５３】
Ｓ６３６では、ＣＰＵ２０３は、Ｓ６３２及びＳ６３５において得られた出力値（Ｏｓｈ＿ｏｎとＯｓｈ＿ｏｆｆ）から、シェーディング補正用データを作成する。具体的には、Ｓ６３２及びＳ６３５において得られた出力値（Ｏｓｈ＿ｏｎとＯｓｈ＿ｏｆｆ）と、予め定められた基準の出力値との差に基づいて、センサの出力値の誤差を補正するためのシェーディング補正用データを作成する。作成されたシェーディング補正用データは、シェーディング補正用データ保管領域に保存される。なお、シェーディング補正用データが作成された後、一時的に保存されたＯｓｈ＿ｏｎとＯｓｈ＿ｏｆｆがシェーディング補正用データ保管領域から削除される。
【００５４】
画像処理部２１６に含まれるシェーディング補正処理部３２１には、スキャンによって取得された画像データに対し、シェーディング補正用データによる補正（シェーディング補正）が行われた後のデータを算出する回路が設けられている。スキャン動作実行時に、シェーディング補正処理部３２１に、スキャンによって取得された画像データとシェーディング補正用データが入力されることで、シェーディング補正が施されたデジタル画像データが作成される。なお、本実施形態では、シェーディング補正として、公知の種々の方法が用いられて良く、その詳細は特に限定されない。
【００５５】
なお、本実施形態では、スキャン画像が、ＲＧＢ点灯から得られるカラー画像である場合について解説したが、例えば、Ｇ点灯から得られる画像のみを取得する形態や、点灯は３色だがセンサからの出力は１色とする形態などにも応用が可能である。また、ＣＣＤイメージセンサによって画像の読み取りが行われる形態の場合、ＲＧＢの各色に対応する出力を取得する三本のセンサでスキャナ部２１４が構成される。この場合は、Ｏｓｈ＿Ｒｍａｘ／Ｏｓｈ＿Ｒｍｉｎ，Ｏｓｈ＿Ｇｍａｘ／Ｏｓｈ＿Ｇｍｉｎ，Ｏｓｈ＿Ｂｍａｘ／Ｏｓｈ＿Ｂｍｉｎの各値は、それぞれのセンサの主走査方向１ライン分の出力に対応するデータのうちの最大最小値として取得される。このようにしてシェーディング補正が終了した後、ＣＰＵ２０３は、Ｓ６１４で、ＣＩＳ１２０を待機位置に移動させる。
【００５６】
以上が、本実施形態におけるシェーディング補正用データ取得フローである。このフロー中に取得した各色の調光結果及びシェーディング補正中に取得した各色の最大最小値が、後述する原稿取り忘れ防止制御フローで使用される。なお、シェーディング補正用データ取得フローは、スキャン動作直前に毎回実施されてもよいし、ＭＦＰ１００の電源が入ったタイミングや、センサから得られる出力に有意な誤差が生じたタイミングで実施されても良い。なお、センサから得られる出力に有意な誤差が生じたか否かは、同条件における出力を定期的にセンサから取得し、取得された出力に有意な差が生じたタイミングを検知することで判定することができる。
【００５７】
＜原稿取り忘れ検知処理について＞
本実施形態においてＭＦＰ１００が実行する原稿取り忘れ検知処理について説明する。上述したように、本実施形態では、原稿取り忘れ検知処理は、原稿検知処理と開閉検知処理を含む。
【００５８】
図７（Ａ）は、ＭＦＰ１００が実行する原稿取り忘れ検知処理のフローチャートを示す。本実施形態では、スキャン動作中に原稿の有無を検知する形態について説明する。なお、図７（Ａ）に示すフローチャートは、例えば、ＣＰＵ２０３がＲＯＭ２０５等に格納されたプログラムをＲＡＭ２０４に読み出して実行することにより実現される。また、本フローチャートは、ＭＦＰ１００がスキャンジョブを受け付ける等し、ＭＦＰ１００スキャンを実行する場合に開始される。
【００５９】
Ｓ７００１では、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔ及びＤｏｃ＿ｏｎ＿ｆｌｇを初期化する。具体的には、Ｌｉｎｅ＿ｃｎｔを０、Ｄｏｃ＿ｏｎ＿ｆｌｇをｏｆｆに設定する。Ｌｉｎｅ＿ｃｎｔは、後述する原稿検知処理で「原稿有り」と判定されたラインが、副走査方向に何ライン続くかを示す変数である。また、Ｄｏｃ＿ｏｎ＿ｆｌｇは、原稿台に原稿があるか否かの最終的な判定結果を示す変数（フラグ）である。Ｄｏｃ＿ｏｎ＿ｆｌｇ  がｏｎである場合は、原稿台に原稿があると判定されたことが示され、ｏｆｆである場合は原稿台に原稿がないと判定されたことが示される。初期化後、ＣＰＵ２０３は、読取開始位置までＣＩＳ１２０を移動させ、スキャン動作を開始する。すなわち、ＣＰＵ２０３は、ＣＩＳ１２０に、ジョブ管理ＡＰＬ４１２から指示される範囲のスキャンの実行を開始させる。
【００６０】
Ｓ７００２では、ＣＰＵ２０３は、スキャン動作を終了するか否かを判定する。具体的には、ＣＰＵ２０３は、ジョブ管理ＡＰＬ４１２から指示された範囲のスキャンが完了するように、副走査方向にＣＩＳ１２０が移動したか判定する。さらに具体的には、ＣＰＵ２０３は、ＣＩＳ１２０が、スキャン動作終了位置まで移動したか否かを判定する。ＣＰＵ２０３は、スキャン動作を終了しないと判定した場合、Ｓ７００３に進み、スキャン動作を終了すると判定した場合、Ｓ７０１１に進む。
【００６１】
Ｓ７００３では、ＣＰＵ２０３は、ＬＥＤ１１１を点灯させ、現在ＣＩＳ１２０がいる位置における主走査方向１ライン分の出力をセンサから取得する。そして、ＣＰＵ２０３は、取得した出力のうち、ジョブ管理ＡＰＬ４１２から指示されたスキャン範囲に対応する出力（Ｏｒｄ＿ｏｎ）をスキャン画像データ保管領域３３２に保存する。
【００６２】
Ｓ７００４では、ＣＰＵ２０３は、Ｓ７００３で得られた出力に基づいて、「原稿検知処理」を実施する。「原稿検知処理」の詳細については後述する。
【００６３】
Ｓ７００５では、ＣＰＵ２０３は、Ｓ７００４における「原稿検知処理」の結果に基づいて、現在ＣＩＳ１２０がいる位置において原稿があるかないかを判定する。ＣＰＵ２０３は、「原稿検知処理」にて「原稿有り」と判定された場合は、Ｓ７００６に進み、「原稿検知処理」にて「原稿無し」と判定された場合は、Ｓ７００９に進む。
【００６４】
Ｓ７００６では、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔをインクリメントする。
【００６５】
Ｓ７００７では、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔが所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）より大きいか否かを判定する。コンタクトガラス１１５上に原稿がある場合は、「原稿有り」と判定されるラインが一定値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）以上続くこととなる。すなわち、「原稿有り」と判定されるラインが所定の数以上続くこととなる。そのため、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔが所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）より大きいと判定した場合、Ｓ７００８に進み、Ｄｏｃ＿ｏｎ＿ｆｌｇをｏｎに設定する。すなわち、ＣＰＵ２０３は、最終的な判定として、コンタクトガラス１１５上に原稿があると判定する。その後、ＣＰＵ２０３は、Ｓ７０１０に進む。一方、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔが所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）より小さいと判定した場合、Ｄｏｃ＿ｏｎ＿ｆｌｇを書き換えることなく、Ｓ７０１０に進む。
【００６６】
このように、本実施形態では、主走査方向１ライン分のデータにおける判定結果のみで、原稿の有無に関する最終的な判定をせず、「原稿有り」と判定されるラインが続いた場合に、最終的な判定として、コンタクトガラス１１５上に原稿があると判定する。すなわち、本実施形態では、所定の閾値（ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨ）以上のＡｂｓ（１−Ｏｒｄ＿ｍｉｎ／Ｏｓｈ＿ｍｉｎ）の値が、所定の数のライン分続いた場合に、最終的な判定として、コンタクトガラス１１５上に原稿があると判定する。これは、例えば、白色シート１０５やコンタクトガラス１１５上に、ゴミやほこり等が混入していた場合、ＣＰＵ２０３が、ゴミやほこり等があったラインに原稿があるものと誤判定してしまう場合があるためである。なお、Ｌｉｎｅ＿ｃｎｔ＿ｏｎの値は、上述のようなケースを考慮して、任意の値が設定されて良い。Ｌｉｎｅ＿ｃｎｔ＿ｏｎの値が適切に設定されることで、最終的な判定結果として、原稿の有無を誤判定してしまうことを抑制できる。なお、本実施形態では、所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）を、幅２ｍｍに対応する値とし、「原稿有り」と判定されたラインが、幅２ｍｍ以上の範囲で続いた場合に、最終的な判定として、コンタクトガラス１１５上に原稿があると判定する。
【００６７】
Ｓ７００９では、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔを初期化する。具体的には、ＣＰＵ２０３は、Ｌｉｎｅ＿ｃｎｔを０に設定する。
【００６８】
Ｓ７０１０では、ＣＰＵ２０３は、ＣＩＳ１２０を次の読み取り位置に移動させた後、Ｓ７００２の処理を再び実行する。すなわち、ＣＰＵ２０３は、スキャン動作が終了するまで、原稿の読み取り及び原稿検知処理を繰り返す。なお、ＣＰＵ２０３は、Ｓ７００８にて、Ｄｏｃ＿ｏｎ＿ｆｌｇをｏｎに書き換えた場合は、以降の繰り返し処理において、Ｓ７００４〜Ｓ７００９の処理を実行しなくても良い。すなわち、ＣＰＵ２０３は、コンタクトガラス１１５上に原稿があると判定した場合は、以降の繰り返し処理において、原稿検知処理を実行せず、スキャンを終了するか否かの判定（Ｓ７００２）及び原稿の読み取り（Ｓ７００３）のみ実行すれば良い。
【００６９】
図７（Ａ）に示す形態とすることで、ＭＦＰ１００は、原稿のスキャン動作と原稿検知処理を並行して行うことができる。
【００７０】
受け付けたスキャンジョブに基づくスキャン動作が終了した後、ＣＰＵ２０３は、Ｓ７０１１にて、Ｄｏｃ＿ｏｎ＿ｆｌｇの状態を確認する。上述したように、コンタクトガラス１１５上に原稿があると判定された場合、Ｓ７００８にてＤｏｃ＿ｏｎ＿ｆｌｇがｏｎに書き換えられる。コンタクトガラス１１５上に原稿がある場合は、当該原稿は、スキャン動作が終了した後に速やかにユーザによって原稿台１０１から取り除かれることが望ましい。また、原稿が原稿台１０１から取り除かれるためには、原稿台カバー１０２が開閉される必要があるため、原稿台カバー１０２が開閉されたか否かを検知することによって、原稿が原稿台１０１から取り除かれたか否かを検知することができる。そのため、ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｎである場合は、Ｓ７０１２に進み、開閉検知処理を実行する。開閉検知処理とは、原稿台カバー１０２が開閉されたか否かを判定する処理であり、この処理により、ＣＰＵ２０３は、スキャンされた原稿をユーザが取り忘れているか否かを判定することができる。詳細は後述するが、ＣＰＵ２０３は、スキャンが終了してから一定時間以上、原稿台カバー１０２が開閉されていないと判定した場合は、スキャンされた原稿をユーザが取り忘れていると判定し、スキャンされた原稿を取り忘れている旨をユーザに報知する。具体的には、例えばＣＰＵ２０３は、スキャンされた原稿を取り忘れている旨を報知するための画面（例えば、図３に示す画面）をＵＩ部２１５に表示させたり、スキャンされた原稿を取り忘れている旨を報知するための報知音を発生させたりする。また、例えば、ＣＰＵ２０３は、スキャンされた原稿を取り忘れている旨を報知するための画面を、スキャンジョブを送信した外部装置に表示させるための情報を、当該外部装置に送信したりする。開閉検知処理の詳細については後述する。
【００７１】
一方、コンタクトガラス１１５上に原稿がない場合は、Ｌｉｎｅ＿ｃｎｔが所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）より大きくなることはなく、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｆｆのままとなる。そのため、ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｆｆである場合は、Ｓ７０１３に進み、ＣＩＳ１２０を待機位置に移動させ、開閉検知処理を実行することなく処理を終了する。すなわち、スキャンされた原稿を取り忘れている旨をユーザに報知する処理を実行せずに、処理を終了する。
【００７２】
このように、本実施形態は、コンタクトガラス１１５上に原稿が有る場合に、開閉検知処理を実行し、コンタクトガラス１１５上に原稿がない場合に、開閉検知処理を実行しない。これにより、本実施形態は、コンタクトガラス１１５上に原稿がなく、開閉検知処理を実行する必要がない場合には、開閉検知処理より生じる処理負荷を軽減することができ、次に実行すべき動作を速やかに実行することができる。さらに、コンタクトガラス１１５上に原稿がないにも関わらず、スキャンされた原稿を取り忘れている旨をユーザに報知してしまうことを抑制できる。
【００７３】
また、通常、ＣＰＵ２０３は、外部装置から送信されたスキャンジョブに基づいてスキャン動作を実行した場合、スキャン動作終了後、読み取った画像データを外部装置に送信する。このとき、読み取られた画像データの容量や、外部装置との通信速度によっては、外部装置への画像データの送信が完了するまでに時間がかかる場合がある。これは、原稿がコンタクトガラス１１５上に無い状態で読み取られた画像データについても同様である。そのため、コンタクトガラス１１５上に原稿が無い状態でスキャンジョブが送信された場合は、ユーザが所望の画像データを得られないにもかかわらず、長時間のデータ通信が行われてしまうおそれがある。そこで、本実施形態では、ＣＰＵ２０３は、原稿検知処理によって「原稿無し」と判定された場合は、外部装置にスキャン動作によって得られた画像データを送信しない。このような形態とすることで、原稿がコンタクトガラス１１５上に無い状態で取得された画像データが、外部装置に送信されてしまうことを抑制できる。
【００７４】
なお、ＣＰＵ２０３は、原稿検知処理の結果が「原稿無し」である場合は、原稿がコンタクトガラス１１５上に無い状態で画像データを得たことを外部装置を介してユーザに報知しても良い。ＣＰＵ２０３は、原稿がコンタクトガラス１１５上に無い状態で画像データを得たことを報知する場合、外部装置に、当該報知のための画面を表示させるための情報を送信する。それにより、外部装置が備える表示部に、当該報知のための画面が表示される。なお、ユーザは、この画面を介して、原稿がコンタクトガラス１１５上に無い状態で取得された画像データの送信をキャンセルするための指示や、当該画像データを送信させるための指示を入力することができる。すわなち、ユーザは、上記報知を確認することで、上記指示のいずれを入力するかを選択することができる。
【００７５】
なお、本実施形態では、ＣＩＳ１２０による主走査方向１ライン分の読み取りとＣＩＳ１２０の主走査方向１ライン分の移動が交互に繰り返されるものとしたが、この形態に限定されない。例えば、ＣＩＳ１２０による主走査方向１ライン分の読み取りにかかる時間を、ＣＩＳ１２０の移動速度に対して充分短くし、ＣＩＳ１２０を一定速度で移動させながらＣＩＳ１２０の主走査方向１ライン分の出力を取得しても良い。
【００７６】
＜原稿検知処理について＞
次に、Ｓ７００４における原稿検知処理の詳細について、図７（Ｂ）を用いて説明する。本実施形態の原稿検知処理によって、スキャンジョブに基づくスキャン指定範囲がスキャンされている間に原稿台１０１に原稿が載置されているか否かを検知することができる。すなわち、原稿検知処理とは、原稿台１０１に原稿が載置されているか否かを判定するための判定処理である。図７（Ｂ）は、ＭＦＰ１００が実行する原稿検知処理のフローチャートを示す。なお、図７（Ｂ）に示すフローチャートは、例えば、ＣＰＵ２０３がＲＯＭ２０５等に格納されたプログラムをＲＡＭ２０４に読み出して実行することにより実現される。
【００７７】
Ｓ７００４における原稿検知処理では、ライン単位で、原稿有無を判定する。なお、判定対象のラインは、Ｓ７００３にてセンサにより読み取られたライン、すなわち、現在ＣＩＳがいる位置に対応するラインである。
【００７８】
まず、Ｓ７１０１では、ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｎか否かを判定する。すなわち、ＣＰＵ２０３は、最終的な判定として、コンタクトガラス１１５上に原稿があると判定されたか否かを判定する。ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｎであると判定した場合は、各ラインにおける原稿検知処理をこれ以上行う必要がないため、原稿検知処理を終了する。一方、ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｎでない（ｏｆｆである）と判定した場合は、Ｓ７１０２に進む。
【００７９】
Ｓ７１０２では、ＣＰＵ２０３は、Ｓ７００３で取得した主走査方向１ライン分の出力（Ｏｒｄ＿ｏｎ）のうち、最大値と最小値（Ｏｒｄ＿ｍａｘ，Ｏｒｄ＿ｍｉｎ）を取得する。なお、本実施形態では、ＣＰＵ２０３は、Ｏｒｄ＿ｍａｘ／Ｏｒｄ＿ｍｉｎとして、点灯色毎にそれぞれＯｒｄ＿Ｒｍａｘ／Ｏｒｄ＿Ｒｍｉｎ，Ｏｒｄ＿Ｇｍａｘ／Ｏｒｄ＿Ｇｍｉｎ，Ｏｒｄ＿Ｂｍａｘ／Ｏｒｄ＿Ｂｍｉｎを取得可能である。ここでは、ＣＰＵ２０３は、まだ取得していないいずれかの色に対応する最大値と最小値を得る。
【００８０】
このとき、Ｏｒｄ＿ｍａｘ及びＯｒｄ＿ｍｉｎの取得対象とするデータの範囲は、図６（Ｃ）のＳ６３３でＯｓｈ＿Ｒｍａｘ／Ｏｓｈ＿Ｒｍｉｎ等の値を取得したときと同じデータの範囲とする。すなわち、ＣＰＵ２０３は、例えば、コンタクトガラス１１５の開口部分に対向するセンサからの出力からＯｓｈ＿Ｒｍａｘの値を取得していた場合、コンタクトガラス１１５の開口部分に対向するセンサからの出力からＯｒｄ＿ｍａｘを取得する。
【００８１】
Ｓ７１０３では、ＣＰＵ２０３は、最大値Ｏｒｄ＿ｍａｘと、前述したシェーディング補正用データ取得中に得られた最大値（Ｏｓｈ＿ｍａｘ）、が比率に換算してどれだけの差が出るかを計算する。この際、以下の判定式が用いられる。
Ａｂｓ（１−Ｏｒｄ＿ｍａｘ／Ｏｓｈ＿ｍａｘ）
【００８２】
もし、Ｏｒｄ＿ｍａｘとＯｓｈ＿ｍａｘが同じような値であれば、上述の判定式の計算結果は、０に近い値となる。一方、Ｏｒｄ＿ｍａｘとＯｓｈ＿ｍａｘとの差が大きければ、上述の判定式の計算結果は１に近い値となる。本実施形態では、ＣＰＵ２０３は、上述の判定式の計算結果が所定の閾値より大きければ、（すなわち、Ｏｒｄ＿ｍａｘとＯｓｈ＿ｍａｘとの差が大きければ）、Ｓ７１０６にて、判定対象のライン上に、「原稿がある」と判定する。一方、上述の判定式の計算結果が所定の閾値以下であれば、（すなわち、Ｏｒｄ＿ｍａｘとＯｓｈ＿ｍａｘとの差が小さければ）、Ｓ７１０４に進む。
【００８３】
Ｓ７１０４では、ＣＰＵ２０３は、最小値Ｏｒｄ＿ｍｉｎと、前述したシェーディング補正用データ取得中に得られた最小値（Ｏｓｈ＿ｍｉｎ）、が比率に換算してどれだけの差が出るかを計算する。この際、以下の判定式が用いられる。
Ａｂｓ（１−Ｏｒｄ＿ｍｉｎ／Ｏｓｈ＿ｍｉｎ）
【００８４】
Ｓ７１０３と同様にして、上述の判定式の計算結果が所定の閾値以上であれば、（すなわち、Ｏｒｄ＿ｍｉｎとＯｓｈ＿ｍｉｎとの差が大きければ）、判定対象のライン上に、「原稿がある」と判定する。本実施形態では、ＣＰＵ２０３は、上述の判定式の計算結果が所定の閾値より大きければ、（すなわち、Ｏｒｄ＿ｍｉｎとＯｓｈ＿ｍｉｎとの差が大きければ）、Ｓ７１０６にて、判定対象のライン上に、「原稿がある」と判定する。一方、上述の判定式の計算結果が所定の閾値以下であれば、（すなわち、Ｏｒｄ＿ｍｉｎとＯｓｈ＿ｍｉｎとの差が小さければ）、Ｓ７１０５にて、判定対象のライン上に、「原稿がない」と判定する。
【００８５】
Ｓ７１０７では、ＣＰＵ２０３は、ＲＧＢの各色について、Ｓ７１０３又は／及びＳ７１０４の判定を行ったか否かの判定を行う。ＣＰＵ２０３は、Ｓ７１０３又は／及びＳ７１０４の判定を行っていない色がある場合には、Ｓ７１０８にて判定対象の色を変更し、新たな判定対象の色について、Ｓ７１０２〜Ｓ７１０４の処理を行う。
【００８６】
このように、本実施形態では、ＣＰＵ２０３は、Ｏｒｄ＿ｍａｘ及びＯｒｄ＿ｍｉｎを色毎に取得するため、上記の判定式を用いた計算を色毎に行う。そして、ＣＰＵ２０３は、各色の計算結果のうち、１つでも所定の閾値以上の計算結果があった場合には、判定対象のライン上に、「原稿がある」と判定する。一方、所定の閾値（ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨ）以上の計算結果が１つもない場合には、判定対象のライン上に、「原稿がない」と判定する。
【００８７】
なお、判定式１と判定式２による判定は、実質的に、各値の差が閾値より大きいか小さいかの判定と同義である。そのため、判定式１と判定式２を用いるのではなく、例えば、各値の差と閾値とを比較することで、判定対象のライン上に、「原稿がある」か「原稿がない」かを判定しても良い。具体的には、この場合、各値の差が閾値より大きい場合に、「原稿がある」と判定され、各値の差が閾値より小さい場合に、「原稿がない」と判定される。
【００８８】
なお、本実施形態では、最大値Ｏｒｄ＿ｍａｘと最大値Ｏｓｈ＿ｍａｘとの比較と、最小値Ｏｒｄ＿ｍｉｎと最小値Ｏｓｈ＿ｍｉｎとの比較を行っているが、これは、検出の精度を向上させるためである。例えば、ライン上に小さいごみ等が付着している場合は、ライン上に原稿が無いにも係わらず、最小値Ｏｒｄ＿ｍｉｎと最小値Ｏｓｈ＿ｍｉｎの差が小さくなってしまうことがある。また、例えば、ライン上に穴のあいている原稿がある場合には、最大値Ｏｒｄ＿ｍａｘと最大値Ｏｓｈ＿ｍａｘの差が小さくなってしまうことがある。このようなケースを考慮して、最大値同士の比較と、最小値同士の比較とを行っている。
【００８９】
なお、この形態に限定されず、判定に係る負荷を軽減するために、ある１点の値についてのみ比較を行う形態としても良い。あるいは、より精度を向上させるために３点以上の値について比較を行う形態としても良い。また、比較に用いられる値は、最大値や最小値に限定されず、例えば中間値や、最大値や最小値に対して所定の割合の値等、比較に適した任意の値が用いられて良い。
【００９０】
なお、閾値ＤｏｃＤｃｔ＿ＭＩＮ＿ＴＨ及び閾値ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨの決定方法については後述する。
【００９１】
次に、スキャン動作中に得られる出力の最大最小値とシェーディング補正用データ取得中に得られる出力の最大最小値を用いた原稿検知処理を実行可能な理由について説明する。図８は、シェーディング補正用データ取得中に得られる、Ｒ（Ｒｅｄ）の点灯に対応する出力と、コンタクトガラス１１５上に原稿が無い状態のスキャン動作中に得られる、Ｒ（Ｒｅｄ）の点灯に対応する主走査方向１ライン分の出力を示す図である。図８では、シェーディング補正用データによって表わされる出力値を実線で示しており、コンタクトガラス１１５上に原稿が無い状態のスキャン動作中に得られる出力を点線で示している。図８のグラフにおいて、横軸は主走査方向位置を示し、縦軸は各位置における出力値（デジタルデータ）を示す。なお、本実施形態では、白基準シート１１４及び白色シート１０５が同様の色をしており、白基準シート１１４及び白色シート１０５から反射される光から得られる出力値が近くなるものとする。この場合は、図８のように、シェーディング補正用データ取得中に得られる出力と、コンタクトガラス１１５上に原稿が無い状態のスキャン動作中に得られる出力が近いものとなる。従って、Ｏｒｄ＿ＲｍｉｎとＯｒｄ＿Ｒｍｉｎの差が非常に小さくなり、Ｓ７１０３及びＳ７１０４における計算結果は、共にとても小さい値（０に近い値）になる。このような理由により、ＣＰＵ２０３は、Ｓ７１０３及びＳ７１０４において、計算結果が所定の閾値より小さいと判定した場合には、判定対象のライン上に、「原稿がない」と判定する。
【００９２】
一方、図９は、シェーディング補正用データ取得中に得られる、Ｒ（Ｒｅｄ）の点灯に対応する出力と、コンタクトガラス１１５上に原稿がある状態のスキャン動作中に得られる、Ｒ（Ｒｅｄ）の点灯に対応する主走査方向１ライン分の出力を示す図である。図９のグラフの詳細は図８のグラフと同様であるため、説明は省略する。なお、図９におけるデータの取得中にコンタクトガラス１１５上にある原稿は、黒色の文字が記入されている、白色の記録媒体であるものとする。スキャン中に黒色の文字部分に光が照射された場合、照射された光のうち大部分の光は黒色の文字部分に吸収され、反射されない。そのため、黒色の文字部分に対応するラインでは、センサに入力される光が少なくなり、センサから得られる出力値も小さくなる。図９において、出力値が急激に減少している部分は、黒色の文字部分に対応する。黒色の文字部分においては、シェーディング補正用データ取得中に得られる出力と、コンタクトガラス１１５上に原稿がある状態のスキャン動作中に得られる出力が大きく乖離することとなる。ゆえに、Ｏｒｄ＿Ｒｍｉｎに対してＯｒｄ＿Ｒｍｉｎが小さい値になり、Ｓ７１０４における計算結果が大きい値（１に近い値）となる。このような理由により、ＣＰＵ２０３は、Ｓ７１０４において、計算結果が所定の閾値より大きいと判定した場合には、判定対象のライン上に、「原稿がある」と判定する。
【００９３】
図１０は、シェーディング補正用データ取得中に得られる、Ｇ（Ｇｒｅｅｎ）の点灯に対応する出力と、コンタクトガラス１１５上に原稿がある状態のスキャン動作中に得られ、Ｇ（Ｇｒｅｅｎ）の点灯に対応する主走査方向１ライン分の出力を示す図である。図１０のグラフの詳細も図８のグラフと同様であるため、説明は省略する。なお、なお、図１０におけるコンタクトガラス１１５上にある原稿は、文字や画像が印刷されていない薄ピンク色の記録媒体であるものとする。白基準シート１１４より、ピンク色の記録媒体の方が光を吸収しやすいため、シェーディング補正用データ取得中に得られる出力より、コンタクトガラス１１５上に原稿がある状態のスキャン動作中に得られる出力が小さくなる。ゆえに、Ｏｒｄ＿Ｇｍｉｎに対してＯｒｄ＿Ｇｍｉｎが小さい値になり、Ｓ７１０４における計算結果が大きい値となる。なお、薄ピンク色の記録媒体をスキャンすることで得られる出力のうち、Ｒ（Ｒｅｄ）の点灯に対応する出力は、シェーディング補正用データ取得中に得られる出力とあまり差が生じない。このような理由により、シェーディング補正用データ取得中に得られる出力とスキャン動作中に得られる出力との比較を、１つの点灯色だけに関して行うのではなく、各点灯色それぞれに関して行うことが好ましい。これにより、薄ピンク色の記録媒体だけでなく、例えば、薄い緑色や薄い青の記録媒体を検出することができる。
【００９４】
なお、本実施形態では、文字や画像が印刷されていない白色の記録媒体についても、条件によって、コンタクトガラス１１５上に有るか否かを検知することが可能である。コンタクトガラス１１５上に置かれた原稿に厚みがある場合、コンタクトガラス１１５から白色シート１０５まで隙間が生じることがある。隙間ができている領域においては、センサによって取得される出力が小さくなる。これは、隙間により白色シート１０５とセンサアレイ１１３までの距離が大きくなり、白色シート１０５で反射した光がセンサアレイ１１３に届くまでに減衰するからである。そのため、原稿の大きさ以上の範囲のスキャンを実行し、シェーディング補正用データ取得中に得られる出力と、スキャン動作中に得られる、隙間により減衰した部分の出力とを比較することで、文字や画像が印刷されていない白色の記録媒体を検知できる。なお、隙間は、コンタクトガラス１１５上に設置された原稿のエッジから数十ｍｍの領域で生じやすい。本実施形態では、Ｌｉｎｅ＿ｃｎｔが所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）より大きいと判定したラインが、幅２ｍｍ以上の範囲で続いた場合に、最終的な判定として、コンタクトガラス１１５上に原稿があると判定する。そのため、上記のケースでも適切な判定ができる。
【００９５】
閾値ＤｏｃＤｃｔ＿ＭＩＮ＿ＴＨ及び閾値ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨの決定方法について説明する。閾値ＤｏｃＤｃｔ＿ＭＩＮ＿ＴＨ及び閾値ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨは、白基準シート１１４の白さと、白色シート１０５の白さの違いに応じて決定する。図８−１０で示したように、白基準シート１１４と白色シート１０５の白さがほぼ同じであれば、コンタクトガラス１１５上に原稿が無い限り式１の判定式の計算結果と式２の判定式の計算結果はそれぞれほぼ０になる。従って、各閾値ＤｏｃＤｃｔ＿ＭＩＮ＿ＴＨ及びＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨは小さい値、例えば０．２程度に設定すればよい。これにより、Ｏｒｄ＿ｍｉｎまたはＯｒｄ＿ｍａｘがＯｓｈ＿ｍｉｎまたはＯｓｈ＿ｍａｘに対し８０％以下の値を取った場合、コンタクトガラス１１５上に原稿があることを検知できるようになる。図８の例でいえば、Ｏｓｈ＿ｍａｘは５８０００程度、Ｏｓｈ＿ｍｉｎは４０００程度である。従って、Ｏｒｄ＿ｍａｘが５２０００程度になるか、Ｏｓｈ＿ｍｉｎが３６０００程度になれば、コンタクトガラス１１５上に原稿があることを検知できる。
【００９６】
本実施形態では、白基準シート１１４の白さと白色シート１０５の白さが同等であるものとした。なお、例えば、白基準シート１１４に対して白色シート１０５がよりグレーの色である場合は、コンタクトガラス１１５上に原稿がないにも関わらず、式１の判定式の計算結果と式２の判定式の計算結果は大きくなってしまう。そのため、このような場合は、白基準シート１１４の白さと白色シート１０５の白さが同等である場合よりも、閾値ＤｏｃＤｃｔ＿ＭＩＮ＿ＴＨ及び閾値ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨを大きくする。このようにすることで、誤判定が生じてしまう可能性を抑制できる。
【００９７】
本実施形態では、閾値ＤｏｃＤｃｔ＿ＭＡＸ＿ＴＨ及び閾値ＤｏｃＤｃｔ＿ＭＩＮ＿ＴＨは点灯色によらず一定値であるが、白基準シート１１４と白色シート１０５との色差によっては点灯色によって閾値を変更してもよい。例えば、白基準シート１１４に対して白色シート１０５が赤みを帯びる傾向があったとする。この場合、白基準シート１１４と白色シート１０５との色差が小さい場合より、白色シート１０５におけるＲの点灯色に対する出力結果が小さくなる。そのため、白基準シート１１４に対して白色シート１０５が赤みを帯びている場合、白基準シート１１４と白色シート１０５との色差が小さい場合より、Ｒの点灯色に対する閾値だけ大きく設定する。このようにすることで、白基準シート１１４と白色シート１０５との色差によって生じる出力値の違いによる影響を小さくすることができる。
【００９８】
このように、本実施形態では、シェーディング補正用データ取得中に得られる出力と、スキャン動作中に得られる出力と、を比較することで、原稿の有無を検知している。これにより、例えば、スキャン動作終了後に再度スキャン動作を実施することで得られる２つの画像データを比較することで原稿の有無を検知する方法と比較して、ＲＡＭ２０４に保存するデータ量を少なくしたり、検知に係る処理時間を少なくすることができる。
【００９９】
＜開閉検知処理について＞
次に、Ｓ７０１２における開閉検知処理の詳細について、図７（Ｃ）を用いて解説する。原稿台カバー１０２の開閉検知は、開閉を検知するための専用のセンサを用いる方法が知られているが、本実施形態では、専用のセンサが無い構成で原稿台カバー１０２の開閉を検知することが可能な方法を提案する。
【０１００】
図７（Ｃ）は、ＭＦＰ１００が実行する開閉検知処理のフローチャートを示す。開閉検知処理とは、原稿台カバー１０２が、閉じ位置から移動したか否かを判定するための判定処理である。本実施形態の開閉検知処理によって、スキャンジョブに基づくスキャン指定範囲がスキャンされた後の所定のタイミングに原稿台１０１に原稿が載置されているか否かを検知することができる。そのため、開閉検知処理によってスキャンジョブに基づくスキャン指定範囲がスキャンされた後の所定のタイミングにおいて原稿が取り忘れられているか否かを検知することができる。なお、図７（Ｃ）に示すフローチャートは、例えば、ＣＰＵ２０３がＲＯＭ２０５等に格納されたプログラムをＲＡＭ２０４に読み出して実行することにより実現される。
【０１０１】
Ｓ７２０１では、ＣＰＵ２０３は、ＣＩＳ１２０を開閉検知位置に移動させる。開閉検知位置とは、ジョブ管理ＡＰＬ４１２より依頼があったスキャン範囲のエッジの位置から、副走査方向且つ待機位置と反対方向に固定量だけさらに移動した位置とする。図１１は、スキャナ部２１４を上方から俯瞰した際の、スキャナ部２１４の模式図である。図１１では、Ｓ７２０１にてＣＩＳ１２０が開閉検知位置に移動した状態が示されている。範囲１１０２が、ジョブ管理ＡＰＬ４１２より依頼があったスキャン範囲であり、位置１１０１が、本実施形態における開閉検知位置である。なお、ＣＰＵ２０３は、スキャン動作後にＣＩＳ１２０の駆動を停止させることなくシームレスに、ＣＩＳ１２０を、開閉検知位置に移動させても良い。また、位置１１０６が待機位置であり、位置１１０７がスキャン動作を開始する位置、位置１１０３がスキャン動作を終了する位置である。
【０１０２】
Ｓ７２０２では、ＣＰＵ２０３は、開閉検知処理を開始してから所定時間が経過したか否かを判定する。ＣＰＵ２０３は、開閉検知処理を開始してから所定時間が経過したと判定した場合、Ｓ７２１８に進み、開閉検知処理を開始してから所定時間が経過していないと判定した場合、Ｓ７２０３に進む。なお、Ｓ７２０２では、ＣＰＵ２０３は、スキャン処理を開始してから所定時間が経過したか否かを判定しても良い。
【０１０３】
Ｓ７２０３では、ＣＰＵ２０３は、ＬＥＤ１１１を点灯させる。このときの各点灯色の点灯時間は、シェーディング補正用データ取得フローのＳ６１２の調光処理で決定されたＴｏ＿Ｒ、Ｔｏ＿Ｇ、Ｔｏ＿Ｂである。
【０１０４】
Ｓ７２０４では、ＣＰＵ２０３は、開閉検知位置におけるコンタクトガラス１１５の開口部分に対向する主走査方向１ライン分のセンサからの出力（Ｏｃｖ＿ｏｎ）を取得する。
【０１０５】
Ｓ７２０５では、ＣＰＵ２０３は、Ｓ７２０４で取得された出力のうち、最大値と最小値を、点灯色毎に取得する。このとき取得される値を、点灯色毎に、Ｏｃｖ＿ｍａｘ＿ｏｎ＿Ｒ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｒ，Ｏｃｖ＿ｍａｘ＿ｏｎ＿Ｇ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｇ，Ｏｃｖ＿ｍａｘ＿ｏｎ＿Ｂ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｂとする。
【０１０６】
Ｓ７２０６では、ＣＰＵ２０３は、Ｓ７２０５の処理が初回か否かを判定する。ＣＰＵ２０３は、Ｓ７２０５の処理が初回であると判定した場合、Ｓ７２０９に進み、Ｓ７２０５の処理が初回でないと判定した場合、Ｓ７２０７に進む。
【０１０７】
Ｓ７２０９で、ＣＰＵ２０３は、Ｓ７２０５で取得した値の扱い方を変更する。具体的には、ＣＰＵ２０３は、Ｒの点灯色に対応する出力であるＯｃｖ＿ｍａｘ＿ｏｎ＿Ｒ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿ＲをそれぞれＯｃｖ＿ｍａｘ＿ｏｎ＿Ｒ＿ｏｌｄ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｒ＿ｏｌｄとみなして保存する。同様に、ＣＰＵ２０３は、Ｇの点灯色に対応する出力であるＯｃｖ＿ｍａｘ＿ｏｎ＿Ｇ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｇを、それぞれＯｃｖ＿ｍａｘ＿ｏｎ＿Ｇ＿ｏｌｄ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｇ＿ｏｌｄとみなして保存する。さらに、ＣＰＵ２０３は、Ｂの点灯色に対応する出力であるＯｃｖ＿ｍａｘ＿ｏｎ＿Ｂ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｂを、Ｏｃｖ＿ｍａｘ＿ｏｎ＿Ｂ＿ｏｌｄ，Ｏｃｖ＿ｍｉｎ＿ｏｎ＿Ｂ＿ｏｌｄとみなして保存する。なおここでは、Ｓ７２０５で取得された値の扱い方が変更されるだけで、値自体は変更されない。
【０１０８】
Ｓ７２１０では、ＬＥＤ１１１を消灯する。
【０１０９】
Ｓ７２１１では、ＣＰＵ２０３は、コンタクトガラス１１５の開口部分に対向する主走査方向１ライン分のセンサからの出力（Ｏｃｖ＿ｏｆｆ）を取得する。なお、Ｓ７２１１の処理は、ＬＥＤ１１１が消灯されていること以外は、Ｓ７２０４の処理と同様である。
【０１１０】
Ｓ７２１２では、ＣＰＵ２０３は、Ｓ７２１１で取得された出力のうち、最大値と最小値を、点灯色毎に取得する。このとき取得される値を、点灯色毎に、Ｏｃｖ＿ｍａｘ＿ｏｆｆ＿Ｒ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｒ，Ｏｃｖ＿ｍａｘ＿ｏｆｆ＿Ｇ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｇ，Ｏｃｖ＿ｍａｘ＿ｏｆｆ＿Ｂ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｂとする。
【０１１１】
Ｓ７２１３では、ＣＰＵ２０３は、Ｓ７２１２の処理が初回か否かを判定する。ＣＰＵ２０３は、Ｓ７２１２の処理が初回であると判定した場合、Ｓ７２１４に進み、Ｓ７２１２の処理が初回でないと判定した場合、Ｓ７２１６に進む。
【０１１２】
Ｓ７２１６では、ＣＰＵ２０３は、Ｓ７２１２で取得した値の扱い方を変更する。Ｒの点灯色に対応する出力であるＯｃｖ＿ｍａｘ＿ｏｆｆ＿Ｒ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿ＲをそれぞれＯｃｖ＿ｍａｘ＿ｏｆｆ＿Ｒ＿ｏｌｄ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｒ＿ｏｌｄとみなして保存する。同様に、Ｇの点灯色に対応する出力であるＯｃｖ＿ｍａｘ＿ｏｆｆ＿Ｇ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｇを、それぞれＯｃｖ＿ｍａｘ＿ｏｆｆ＿Ｇ＿ｏｌｄ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｇ＿ｏｌｄとみなして保存する。さらに、Ｂの点灯色に対応する出力であるＯｃｖ＿ｍａｘ＿ｏｆｆ＿Ｂ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｂを、Ｏｃｖ＿ｍａｘ＿ｏｆｆ＿Ｂ＿ｏｌｄ，Ｏｃｖ＿ｍｉｎ＿ｏｆｆ＿Ｂ＿ｏｌｄとみなして保存する。なおここでは、Ｓ７２０９と同様、Ｓ７２１２で取得された値の扱い方が変更されるだけで、値自体は変更されない。
【０１１３】
Ｓ７２１７では、ＣＰＵ２０３は、一定時間待機する。本実施形態では、このときＣＰＵ２０３に待機させる時間を５００ｍ秒とするが、この値に限定されない。なお、ＣＰＵ２０３が待機している間に、原稿カバー１０２が開き、原稿が取り出された後に再び原稿カバー１０２が閉じてしまうと、原稿カバー１０２が開いたことが正確に検知されない。そのため、ＣＰＵ２０３に待機させる時間は、原稿カバー１０２が開いたことを検知するための十分に短い時間が用いられることが好ましい。
【０１１４】
５００ｍ秒経過後、ＣＰＵ２０３は、Ｓ７２０２以降の処理を再び行う。
【０１１５】
Ｓ７２０７では、ＣＰＵ２０３は、Ｏｃｖ＿ｍａｘ＿ｏｎとＯｃｖ＿ｍａｘ＿ｏｎ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＡＸ＿ＴＨより大きいか否かを、点灯色毎に判定する。すなわち、ＣＰＵ２０３は、新たに取得した出力値と、前回取得した出力値とを比較する。もし５００ｍ秒の間に、原稿台カバー１０２の開閉状態に変化が無ければ、新たに取得した出力値と、前回取得した出力値との差はほとんど生じない。一方、５００ｍ秒の間に、原稿台カバー１０２が閉じられた状態から開かれた状態に変化していれば、センサに入射する光量が変化するため、新たに取得した出力値と、前回（およそ５００ｍ秒前）取得した出力値とに差が生じる。そこで、ＣＰＵ２０３は、Ｏｃｖ＿ｍａｘ＿ｏｎとＯｃｖ＿ｍａｘ＿ｏｎ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＡＸ＿ＴＨより大きいと判定した場合、原稿台カバー１０２の開閉状態が変化したと判定し、Ｓ７２１９に進む。ＣＰＵ２０３は、Ｏｃｖ＿ｍａｘ＿ｏｎとＯｃｖ＿ｍａｘ＿ｏｎ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＡＸ＿ＴＨより小さいと判定した場合、原稿台カバー１０２の開閉状態が変化していないと判定し、Ｓ７２０８に進む。なお、閾値Ｏｃｖ＿ＭＡＸ＿ＴＨは、原稿台カバー１０２が閉じている状態で取得される出力と、原稿台カバー１０２が開いている状態で取得される出力が、どれだけ異なる可能性があるかという観点から決定される。本実施形態では、センサからデジタル値を１６ｂｉｔで取得しているため、センサからの出力の最大値は６５５３５となる。そこで、本実施形態では、白色シート１０５の特性を考慮し、閾値Ｏｃｖ＿ＭＡＸ＿ＴＨを、原稿台カバー１０２が閉じている状態で取得される出力の約１／１５である４０００程度としている。
【０１１６】
Ｓ７２０８では、ＣＰＵ２０３は、Ｏｃｖ＿ｍｉｎ＿ｏｎとＯｃｖ＿ｍｉｎ＿ｏｎ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＩＮ＿ＴＨより大きいか否かを、点灯色毎に判定する。ＣＰＵ２０３は、Ｏｃｖ＿ｍａｘ＿ｏｎとＯｃｖ＿ｍａｘ＿ｏｎ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＡＸ＿ＴＨより大きいと判定した場合、原稿台カバー１０２の開閉状態が変化したと判定し、Ｓ７２１９に進む。ＣＰＵ２０３は、Ｏｃｖ＿ｍａｘ＿ｏｎとＯｃｖ＿ｍａｘ＿ｏｎ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＡＸ＿ＴＨより小さいと判定した場合、Ｓ７２０９に進む。
【０１１７】
また、Ｓ７２１４では、ＣＰＵ２０３は、Ｏｃｖ＿ｍａｘ＿ｏｆｆとＯｃｖ＿ｍａｘ＿ｏｆｆ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＡＸ＿ＴＨより大きいか否かを、点灯色毎に判定する。また、Ｓ７２１５では、ＣＰＵ２０３は、Ｏｃｖ＿ｍｉｎ＿ｏｆｆとＯｃｖ＿ｍｉｎ＿ｏｆｆ＿ｏｌｄとの差が、所定の閾値Ｏｃｖ＿ＭＩＮ＿ＴＨより大きいか否かを、点灯色毎に判定する。なお、Ｓ７２１４及びＳ７２１５の判定は、消灯時の出力を比較すること以外は、Ｓ７２０７及びＳ７２０８と同様である。
【０１１８】
なお、原稿検知処理と同様、判定に係る負荷を軽減するために、最大値と最小値の２点の阿多についての比較でなく、ある１点の値についてのみ比較を行う形態としても良い。あるいは、より精度を向上させるために３点以上の値について比較を行う形態としても良い。また、比較に用いられる値は、最大値や最小値に限定されず、例えば中間値や、最大値や最小値に対して所定の割合の値等、比較に適した任意の値が用いられて良い。
【０１１９】
本実施形態では、点灯時の出力を比較する処理と消灯時の出力を比較する処理の双方を実行するものとする。これは例えば、ＭＦＰ１００が暗い部屋に載置されている場合等には、消灯時に原稿台カバー１０２が空いていない状態で得られる出力と、消灯時に原稿台カバー１０２が空いている状態で得られる出力とが同様の値になることがあるためである。また、例えば、ＭＦＰ１００が明るい部屋に載置されている場合等には、点灯時に原稿台カバー１０２が空いていない状態で得られる出力と、点灯時に原稿台カバー１０２が空いている状態で得られる出力とが同様の値になることがあるためである。点灯時の出力を比較する処理と消灯時の出力を比較する処理どちらもを実行することで、ＭＦＰ１００の載置環境に左右されずに、原稿台カバーの開閉を検知することができる。なお、処理負荷を軽減するために、点灯時の出力を比較する処理と消灯時の出力を比較する処理のどちらか一方の処理のみ行う形態としても良い。
【０１２０】
上述のように、ＣＰＵ２０３は、Ｓ７２０７、Ｓ７２０８、Ｓ７２１４、Ｓ７２１５のいずれかにおいて、「新たに取得した出力値と前回取得した出力値との差が所定の閾値より大きい」と判定した場合、原稿台カバー１０２の開閉状態が変化した、と判定する。原稿台カバー１０２の開閉状態が変化したことは、ユーザによってコンタクトガラス１１５上の原稿が取り除かれたことと同義とみなされる。そのため、ＣＰＵ２０３は、Ｓ７２１９では、スキャンされた原稿を取り忘れている旨をユーザに報知する処理を実施せずに、待機位置１１０６へＣＩＳ１２０を移動させる。
【０１２１】
また、ＣＰＵ２０３は、開閉検知処理を開始してから所定時間が経過しても、原稿台カバー１０２の開閉状態が変化していないと判定した場合は、Ｓ７２１８にて、原稿を取り忘れている旨をユーザに報知する処理を実行する。
【０１２２】
なお、本実施形態では、ジョブ管理ＡＰＬ４１２より依頼があったスキャン範囲１１０２のエッジの位置（スキャン動作終了位置１１０３）から、副走査方向且つ待機位置と反対方向に固定量だけさらに移動した位置が開閉検知位置であるものとした。しかし、開閉検知位置はこの形態に限定されず、例えば、画像データの読み取りを開始する位置であるスキャン動作開始位置や、画像データの読み取りを終了する位置であるスキャン動作終了位置等であっても良い。この場合は、コンタクトガラス１１５上に原稿が載置されている状態では、コンタクトガラス１１５上に載置されている原稿の状態を読み取ることになる。この場合も、原稿が取り除かれる前と後とで、得られる出力値が変化するため、原稿台カバー１０２が開閉したか、すなわち、原稿が取り除かれたか否かを適切に検知することができる。このように、開閉検知位置は、原稿が取り除かれる前と後とで、得られる出力値が変化する位置であれば良く、上述の位置に限定されない。
【０１２３】
なお、Ｓ７２０２にて開閉検知処理を開始してから所定時間が経過したと判定する前に、ＣＰＵ２０３は、外部装置から新たにスキャンジョブやコピージョブを受信したり、コピー動作やスキャン動作を必要とする処理がユーザから指示されたりすることがある。この場合は、ＣＰＵ２０３は、即座にＳ７２１９に進み、ＣＩＳ１２０を待機位置に戻して、次のスキャンに備えるような制御をしてもよい。
【０１２４】
このように、本実施形態のＭＦＰ１００は、シェーディング補正時に得られる出力値を用いて原稿検知処理を実行することで、従来の形態と比較して原稿検知処理にかかる負荷を軽減することができる。
【０１２５】
また、本実施形態のＭＦＰ１００は、コンタクトガラス１１５上に原稿が有ることが検知された場合に、開閉検知処理を実行する。このような形態とすることで、コンタクトガラス１１５上に原稿がない場合にスキャンされた原稿を取り忘れている旨をユーザに報知する処理が実行されてしまうことを抑制できる。
【０１２６】
（第２実施形態）
第１実施形態で開示した原稿検知判定を、コピー動作に適用する形態について説明する。なお、第１実施形態と同様の部分については説明を省略する。
【０１２７】
コピー動作は、スキャン工程と、スキャン工程において読み取った画像データに基づいて印刷を行う印刷工程とを含む。本実施形態では、ＣＰＵ２０３は、コピー動作におけるスキャン工程にて原稿検知処理を実行し、原稿検知判定の結果が「原稿無し」である場合は、スキャン工程後の印刷工程を実施しない。または、原稿検知判定の結果が「原稿無し」である場合は、原稿がコンタクトガラス１１５上に無いことをユーザに報知してから印刷工程を実施する。
【０１２８】
このフローについて、図７を使用して解説する。なお、Ｓ７００１からＳ７０１１までの処理については第１実施形態と同様であるため、説明を省略する。
【０１２９】
ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｎである場合、すなわち最終的な判定の結果が「原稿有り」である場合、スキャン動作によって得られた画像データをプリンタ制御モジュール４２１に渡し、当該画像データに基づく印刷を実行してコピー結果を得る。
【０１３０】
一方、ＣＰＵ２０３は、Ｄｏｃ＿ｏｎ＿ｆｌｇがｏｎである場合、すなわち最終的な判定の結果が「原稿無し」である場合、印刷工程に進まず、スキャン動作によって得られた画像データを一旦ＲＡＭ２０４に保持しておく。そして、ＣＰＵ２０３は、原稿がコンタクトガラス１１５上に無い状態でコピー実行がユーザから指示されたことを、機能管理ＡＰＬ４１１の、コピー動作を管理しているアプリケーションに報知する。機能管理ＡＰＬ４１１は、その報知を受けた場合、ＩＦ制御モジュール４２４を使用して警告を表示するためのジョブをジョブ管理ＡＰＬ４１２に依頼する。結果、ＵＩ部２１５に、原稿がコンタクトガラス１１５上に無い状態でコピー実行がユーザから指示されたことをユーザに報知するための画面が表示される。なお、ユーザは、この画面を介して、コピー動作をキャンセルするための指示や、このままの状態でコピー動作を実行させるための指示を入力することができる。すわなち、ユーザは、上記報知を確認することで、上記指示のいずれを入力するかを選択することができる。なお、最終的な判定の結果が「原稿無し」である場合、例えば、原稿がコンタクトガラス１１５上に無い状態でコピー実行がユーザから指示されたことをユーザに報知するための画面の表示を行わず、印刷工程をキャンセルする形態であっても良い。
【０１３１】
このような形態とすることで、原稿がコンタクトガラス１１５上に無いにもかかわらず、コピー動作が実行されてしまうことを抑制できる。
【０１３２】
なお、第１実施形態で開示した開閉検知処理を、コピー動作時に適用しても良い。この場合、スキャン動作が終了した場合、または印刷動作が終了した場合に、図７（Ｃ）で示したような開閉検知処理が実行される。
【０１３３】
（その他の実施形態）
上述した実施形態における原稿検知処理や開閉検知処理は、上述した形態に限定されない。すなわち、原稿検知処理や開閉検知処理は、どのような手段を用いて行われても良い。例えば、スキャン後に再度スキャン処理を実行し、得られた２つのデータを比較することで、原稿検知処理を実行しても良い。また、図示しない複数個の反射型センサなどにより構成された、原稿検知専用のセンサを用いて、原稿検知処理や開閉検知処理を実行しても良い。また、図示しないモータまたはソレノイド類のアクチュエータによって上下に作動する仕組みを有し、原稿台カバーが閉じられた状態では下方に押し込められる機構によって、開閉検知処理を実行しても良い。また、開閉検知処理においては、原稿台カバーの開閉を検知するのではなく、コンタクトガラス１１５上に原稿が有るか否かを検知しても良い。
【０１３４】
また、上述の実施形態では、最終的な判定の結果が「原稿無し」である場合には、開閉検知処理を実行しない形態としたが、この形態に限定されない。ＭＦＰ１００は、最終的な判定の結果が「原稿無し」である場合にも開閉検知処理を実行しても良いが、所定の時間以上原稿カバー１０２の開閉が検知できない場合にも、報知処理が行われないように制御する。
【０１３５】
また、上述の実施形態では、Ｌｉｎｅ＿ｃｎｔが所定の閾値（Ｌｉｎｅ＿ｃｎｔ＿ｏｎ）より大きい場合に、最終的な判定としてコンタクトガラス１１５上に原稿があると判定するが、この形態に限定されない。例えば、処理負荷を軽減するために、原稿検知処理にて１回でも「原稿有り」と判定された場合に、最終的な判定としてコンタクトガラス１１５上に原稿があると判定しても良い。
【０１３６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理でも実現可能である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、１つのＣＰＵで全ての処理を行う形態に限らず、複数のＣＰＵが適宜連携をしながら処理を行う形態としてもよい。また、上述した処理のうち、いずれかの処理を１つＣＰＵが実行し、その他の処理を複数のＣＰＵが連携しながら処理を行う形態としても良い。
【符号の説明】
【０１３７】
１００  ＭＦＰ
１０１  原稿台
１２０  コンタクトイメージセンサ（ＣＩＳ）
１１３  イメージセンサアレイ
１１５  コンタクトガラス
【図１】
2018019351.tif 000003
【図２】
2018019351.tif 000004
【図３】
2018019351.tif 000005
【図４】
2018019351.tif 000006
【図５】
2018019351.tif 000007
【図６】
2018019351.tif 000008
【図７】
2018019351.tif 000009
【図８】
2018019351.tif 000010
【図９】
2018019351.tif 000011
【図１０】
2018019351.tif 000012
【図１１】
2018019351.tif 000013