(57)【要約】【課題】外乱光の影響を受けている白データからシェーディング補正データを算出する。【解決手段】読取部と、カバーと、補正データに基づいてシェーディング補正する補正部と、白色基準部材と、カバーの状態を検知する検知部と、制御部と、を備え、制御部は、検知部が開状態を検知したときに、第１黒データを取得する第１黒データ取得処理と、第１黒データ取得処理の実行後で、検知部が開状態を検知しているときに、白データを取得する白データ取得処理と、白データから第１黒データを引算して補正データを算出する補正データ算出処理と、を実行する。【選択図】図５
2019213234.tif 000002
【特許請求の範囲】
【請求項１】
光源を有し、原稿に前記光源から光を照射して１ライン中の各画素を読み取る読取部と、
前記読取部を覆う閉状態と前記読取部を開放する開状態とに開閉可能なカバーと、
補正データに基づいて前記読取部が読み取った値をシェーディング補正する補正部と、
前記読取部の白色の基準となる白色基準濃度を有する白色基準部材と、
前記カバーの開状態および閉状態を検知する検知部と、
制御部と、を備え、
前記制御部は、
前記検知部が開状態を検知したときに、前記光源を消灯して前記読取部により読み取ることによって１ライン中の各画素の第１黒データを取得する第１黒データ取得処理と、
前記第１黒データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記光源を点灯して前記読取部により前記白色基準部材を読み取ることによって１ライン中の各画素の白データを取得する白データ取得処理と、
前記白データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記光源を消灯して前記読取部により読み取ることによって１ライン中の各画素の第２黒データを取得する第２黒データ取得処理と、
１ライン中の全ての画素の第１黒データを平均して第１黒平均値を算出する第１黒平均算出処理と、
１ライン中の全ての画素の第２黒データを平均して第２黒平均値を算出する第２黒平均算出処理と、
前記第２黒平均値から前記第１黒平均値を引算して黒平均差分値を算出する黒平均差分算出処理と、
前記黒平均差分値が閾値よりも小さいか否かを判断する差分判断処理と、
前記黒平均差分値が閾値よりも小さいと判断すると、１ライン中の各画素において前記白データから前記第１黒データまたは前記第２黒データを引算して前記補正データを算出し、前記黒平均差分値が閾値以上と判断すると、前記白データから前記第１黒データを引算して第１白黒差分値を算出し、前記白データから前記第２黒データを引算して第２白黒差分値を算出し、１ライン中の各画素において前記第１白黒差分値と前記第２白黒差分値とのうち大きい値を前記補正データとする補正データ算出処理と、を実行することを特徴とする画像読取装置。
【請求項２】
前記読取部は、副走査方向に移動し、読取位置において副走査方向と直交する主走査方向の１ライン中の各画素を読み取り、
前記白データ取得処理は、
前記第１黒データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記光源を点灯して前記読取部により前記白色基準部材を読み取ることによって１ライン中の各画素の第１白データを取得する第１白データ取得処理と、
前記第１白データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記第１白データを取得した読取位置から前記読取部を予め定められた所定距離移動させ、前記光源を点灯して前記読取部により前記白色基準部材を読み取ることによって１ライン中の各画素の第２白データを取得する第２白データ取得処理と、を含み、
前記補正データ算出処理は、前記黒平均差分値が閾値以上のときに、１ライン中の各画素において前記第１白データから前記第１黒データを引算して前記第１白黒差分値を算出し、１ライン中の各画素において前記第２白データから前記第２黒データを引算して前記第２白黒差分値を算出することを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記補正データ算出処理は、前記黒平均差分値が閾値よりも小さいときに、１ライン中の各画素において前記第１白データと前記第２白データとのうち大きい値を第３白データとして取得し、前記第３白データから前記第２黒データを引算して前記補正データを算出することを特徴とする請求項２に記載の画像読取装置。
【請求項４】
入力部を備え、
前記補正部は、
暗データに基づいて前記読取部が読み取った値を黒補正する黒補正部と、
明データに基づいて黒補正した値を白補正する白補正部と、を含み、
前記制御部は、
前記検知部が閉状態を検知したときに、前記光源を消灯して前記読取部により読み取ることによって１ライン中の各画素の第３黒データを取得する第３黒データ取得処理と、
前記入力部が読取開始指示を受け付けたときに、前記第３黒データを前記暗データとして黒補正させ、前記補正データを前記明データとして白補正させることにより原稿を読み取る読取処理と、を実行することを特徴とする請求項１乃至請求項３のいずれかに記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置に関する。
【背景技術】
【０００２】
従来から、原稿台に載置された原稿の画像を読み取る画像読取装置において、読取開始指示から読取開始までの時間を短縮するために、読取開始指示がなされる前に原稿台を覆う原稿カバーの開閉状態を検知し、その検知結果に応じて読取準備動作を実行することが知られている。
【０００３】
例えば、特許文献１に記載の画像読取装置は、検知した原稿カバーの閉状態に応じて基準白板を読み取り、読み取って得られた白データに基づいてシェーディング補正用のデータを算出する。
【０００４】
また、特許文献２に記載の画像読取装置は、検知した原稿カバーの開状態に応じて黒データおよび白データを検出し、検出した黒データおよび白データが画像読取装置の外からの光（以下、外乱光という）の影響を受けているか否かを判定する。画像読取装置は、外乱光の影響を受けていないときに、検出した黒データおよび白データを用いて原稿の画像を読み取り、外乱光の影響を受けているときに、前回の読取開始指示のときに用いられた黒データおよび白データである前回黒データおよび前回白データを用いて原稿の画像を読み取る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８―３０６７０７号公報
【特許文献２】特開２００１−７７９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の画像読取装置のように、シェーディング補正用のデータを算出するときに、特許文献２に記載の画像読取装置のように原稿カバーが開状態のときに取得した黒データおよび白データを用いてシェーディング補正用のデータを算出することが考えられる。その場合、取得した黒データ及び白データが外乱光の影響を受けているときに、前回黒データおよび前回白データを用いてシェーディング補正用のデータを算出することとなる。しかし、前回黒データおよび前回白データは、現在の読取状態を反映した黒データおよび白データでないため、正確なシェーディング補正用のデータを算出することができないという問題があった。
【０００７】
そこで本発明は上述した事情に鑑みてなされ、原稿カバーが開状態のときに取得した外乱光の影響を受けている黒データおよび白データを用いて、外乱光の影響を低減したシェーディング補正用のデータを算出することが可能な画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１に記載の発明態様では、画像読取装置は、光源を有し、原稿に前記光源から光を照射して１ライン中の各画素を読み取る読取部と、前記読取部を覆う閉状態と前記読取部を開放する開状態とに開閉可能なカバーと、補正データに基づいて前記読取部が読み取った値をシェーディング補正する補正部と、前記読取部の白色の基準となる白色基準濃度を有する白色基準部材と、前記カバーの開状態および閉状態を検知する検知部と、制御部と、を備え、前記制御部は、前記検知部が開状態を検知したときに、前記光源を消灯して前記読取部により読み取ることによって１ライン中の各画素の第１黒データを取得する第１黒データ取得処理と、前記第１黒データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記光源を点灯して前記読取部により前記白色基準部材を読み取ることによって１ライン中の各画素の白データを取得する白データ取得処理と、１ライン中の各画素において前記白データから前記第１黒データを引算して前記補正データを算出する補正データ算出処理と、を実行する。
【０００９】
請求項１に記載の具体的態様では、前記制御部は、前記白データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記光源を消灯して前記読取部により読み取ることによって１ライン中の各画素の第２黒データを取得する第２黒データ取得処理と、１ライン中の全ての画素の第１黒データを平均して第１黒平均値を算出する第１黒平均算出処理と、１ライン中の全ての画素の第２黒データを平均して第２黒平均値を算出する第２黒平均算出処理と、前記第２黒平均値から前記第１黒平均値を引算して黒平均差分値を算出する黒平均差分算出処理と、前記黒平均差分値が閾値よりも小さいか否かを判断する差分判断処理と、を実行し、前記補正データ算出処理は、前記黒平均差分値が閾値よりも小さいときに、前記白データから前記第１黒データまたは前記第２黒データを引算して前記補正データを算出し、前記黒平均差分値が閾値以上のときに、前記白データから前記第１黒データを引算して第１白黒差分値を算出し、前記白データから前記第２黒データを引算して第２白黒差分値を算出し、１ライン中の各画素において前記第１白黒差分値と前記第２白黒差分値とのうち大きい値を前記補正データとする。
【００１０】
請求項２に記載の具体的態様では、前記読取部は、副走査方向に移動し、読取位置において副走査方向と直交する主走査方向の１ライン中の各画素を読み取り、前記白データ取得処理は、前記第１黒データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記光源を点灯して前記読取部により前記白色基準部材を読み取ることによって１ライン中の各画素の第１白データを取得する第１白データ取得処理と、前記第１白データ取得処理の実行後で、前記検知部が開状態を検知しているときに、前記第１白データを取得した読取位置から前記読取部を予め定められた所定距離移動させ、前記光源を点灯して前記読取部により前記白色基準部材を読み取ることによって１ライン中の各画素の第２白データを取得する第２白データ取得処理と、を含み、前記補正データ算出処理は、前記黒平均差分値が閾値以上のときに、１ライン中の各画素において前記第１白データから前記第１黒データを引算して前記第１白黒差分値を算出し、１ライン中の各画素において前記第２白データから前記第２黒データを引算して前記第２白黒差分値を算出する。
【００１１】
請求項３に記載の具体的態様では、前記補正データ算出処理は、前記黒平均差分値が閾値よりも小さいときに、１ライン中の各画素において前記第１白データと前記第２白データとのうち大きい値を第３白データとして取得し、前記第３白データから前記第２黒データを引算して前記補正データを算出する。
【００１２】
請求項４に記載の具体的態様では、入力部を備え、前記補正部は、暗データに基づいて前記読取部が読み取った値を黒補正する黒補正部と、明データに基づいて黒補正した値を白補正する白補正部と、を含み、前記制御部は、前記検知部が閉状態を検知したときに、前記光源を消灯して前記読取部により読み取ることによって１ライン中の各画素の第３黒データを取得する第３黒データ取得処理と、前記入力部が読取開始指示を受け付けたときに、前記第３黒データを前記暗データとして黒補正させ、前記補正データを前記明データとして白補正させることにより原稿を読み取る読取処理と、を実行する。
【発明の効果】
【００１３】
請求項１に記載の発明態様では、制御部は、検知部が開状態を検知したときに、光源を消灯して読取部により読み取ることによって第１黒データを取得する第１黒データ取得処理と、第１黒データ取得処理の実行後で、検知部が開状態を検知しているときに、光源を点灯して読取部により白色基準部材を読み取ることによって白データを取得する白データ取得処理と、１ライン中の各画素において白データから第１黒データを引算して補正データを算出する補正データ算出処理と、を実行する。よって、カバーが開状態時に取得した外乱光の影響を受けている黒データおよび白データを用いて、外乱光の影響を低減した補正データを算出することができる。
【００１４】
請求項２に記載の具体的態様では、制御部は、白データ取得処理の実行後で、前記検知部が開状態を検知しているときに、光源を消灯して読取部により読み取ることによって第２黒データを取得する第２黒データ取得処理と、１ライン中の全ての画素の第１黒データを平均して第１黒平均値を算出する第１黒平均算出処理と、１ライン中の全ての画素の第２黒データを平均して第２黒平均値を算出する第２黒平均算出処理と、第２黒平均値から第１黒平均値を引算して黒平均差分値を算出する黒平均差分算出処理と、黒平均差分値が閾値よりも小さいか否かを判断する差分判断処理と、を実行し、補正データ算出処理は、黒平均差分値が閾値以上のときに、白データから第１黒データを引算して第１白黒差分値を算出し、白データから第２黒データを引算して第２白黒差分値を算出し、１ライン中の各画素において第１白黒差分値と第２白黒差分値とのうち大きい値を補正データとする。よって、第１黒データ、白データ、および第２黒データの取得時に外乱光の影響度合いが変化した場合でも、外乱光の影響を低減した補正データを算出することができる。
【００１５】
請求項３に記載の具体的態様では、白データ取得処理は、第１黒データ取得処理の実行後で、検知部が開状態を検知しているときに、光源を点灯して読取部により白色基準部材を読み取ることによって第１白データを取得する第１白データ取得処理と、第１白データ取得処理の実行後で、検知部が開状態を検知しているときに、第１白データを取得した読取位置から読取部を予め定められた所定距離移動させ、光源を点灯して読取部により白色基準部材を読み取ることによって第２白データを取得する第２白データ取得処理とを含み、補正データ算出処理は、黒平均差分値が閾値以上のときに、１ライン中の各画素において第１白データから第１黒データを引算して第１白黒差分値を算出し、１ライン中の各画素において第２白データから第２黒データを引算して第２白黒差分値を算出する。よって、第１白データおよび第２白データを取得することで、第１黒データと、第１黒データを取得した後に取得した第１白データとを用いて第１白黒差分値を算出でき、第２白データと、第２白データを取得した後に取得した第２黒データとを用いて第２白黒差分値を算出することができ、第１黒データ、第１白データ、第２白データ、第２黒データの取得時に外乱光の影響度合いが変化した場合でも、外乱光の影響を低減した補正データを算出することができる。
【００１６】
請求項４に記載の具体的態様では、補正データ算出処理は、黒平均差分値が閾値よりも小さいときに、１ライン中の各画素において第１白データと第２白データとのうち大きい値を第３白データとして取得し、第３白データから第２黒データを引算して補正データを算出する。よって、第１黒データ、第１白データ、第２白データ、および第２黒データの取得時に黒平均差分値があまり変化していない外乱光の影響度合いがあまり変化していない場合に、白データが低下した場合でも、第１白データと第２白データとのうち大きい値を第３白データとして取得することができ、正確な補正データを算出することができる。
【００１７】
請求項５に記載の具体的態様では、補正部は、読取部が読み取った値を黒補正する黒補正部と、黒補正した値を白補正する白補正部と、を含み、制御部は、検知部が閉状態を検知したときに、光源を消灯して読取部により読み取ることによって第３黒データを取得する第３黒データ取得処理と、入力部が読取開始指示を受け付けたときに、第３黒データを暗データとして黒補正させ、補正データを明データとして白補正させることにより原稿を読み取る読取処理と、を実行する。よって、第１黒データが外乱光の影響を受けている場合でも、カバーが閉状態時に取得する第３黒データを用いて黒補正するため、精度の高い黒補正を実行することができる。さらに、外乱光の影響を受けている白データと外乱光の影響を受けている第１黒データとを用いて補正データを算出するため、外乱光の影響の低減した補正データを算出することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る画像読取装置ＳＭの内部構成を示す図面である。
【図２】原稿載置台ＤＴの上面図である。
【図３】画像読取装置ＳＭの電気的構成を示すブロック図およびＲＡＭ３２の記憶構成を示す図である。
【図４】読取メイン処理を示すフローチャートである。
【図５】カバー開時データ取得処理（Ｒ２）を示すフローチャートである。
【図６】第１白黒差分データＷＢＤ１取得処理（ＲＡ７）を示すフローチャートである。
【図７】データ再取得処理（Ｒ７、Ｒ１２）を示すフローチャートである。
【図８】ユーザが通常使用するケース１〜ケース５を説明する図面である。
【図９】外乱光のあるときと外乱光のないときの白データＷＨおよび黒データＢＫを説明する図面である。
【図１０】外乱光のあるときと外乱光のないときの白黒差分データＷＢＤを説明する図面である。
【発明を実施するための形態】
【００１９】
＜画像読取装置ＳＭの構成＞
図１は、画像読取装置ＳＭの正面図を示す。図２は、原稿載置台ＤＴを上から見た上面図を示す。以下の説明において、図２の下方向を主走査方向の下流、図１および図２の右方向を副走査方向の下流として説明する。画像読取装置ＳＭは、原稿載置台ＤＴと、カバーＣＶと、を備える。原稿載置台ＤＴは、本体ＭＢと、透明板ＴＰと、を備える。本体ＭＢは、様々な部材（例えば、透明板ＴＰ、読取部２０等）を収容するための筐体である。透明板ＴＰは、本体ＭＢに収容されており、本体ＭＢに固定されている。透明板ＴＰには、読取対象の原稿が載置される。カバーＣＶは、本体ＭＢの上部に配置されており、本体ＭＢに対して開閉可能である。カバーＣＶは、本体ＭＢの奥側（図１の紙面に垂直方向の奥側、図２の上側）に回転軸を備え、本体ＭＢの前側（図１の紙面に垂直方向の手前側、図２の下側）から開閉される。
【００２０】
画像読取装置ＳＭは、さらに、透明板ＴＰの下方で本体ＭＢに収容されている読取部２０、および原稿検知センサ２８を備える。読取部２０は、本体ＭＢに対して副走査方向（即ち図１の左右方向）に沿って移動可能である。読取部２０は、透明板ＴＰに載置される原稿の読取を実行する。読取部２０は、ＣＩＳ（Contact Image Sensorの略、密着型イメージセンサ）で構成され、具体的には、光源２１と、ロッドレンズ２４と、受光部２２と、を備える。光源２１は、赤色、青色、および緑色の発光ダイオードなどで構成され、透明板ＴＰに向けて、光を照射する。ロッドレンズ２４は、主に光源２１から照射される光の反射光を受光する。原稿検知センサ２８は、図１および図２に示す位置に配置され、Ａ４サイズの原稿が横向きに載置されたＡ４横の原稿（図２の一点鎖線で示す原稿）を検知し、Ａ４サイズの原稿が縦向きに載置されたＡ４縦の原稿（図２の二点鎖線で示す原稿）を検知しない位置に配置されている。原稿検知センサ２８は、発光部を備え、読取部２０の移動範囲よりも下方に配置される。読取部２０が、光源２１から光を出射してから、その反射光を受光するまでの光の距離である読取部の光路長よりも、原稿検知センサ２８が、発光部から光を出射してから、その反射光を受光するまでの光の距離である原稿検知センサ２８の光路長の方が長くなる様に原稿検知センサ２８は構成されている。原稿検知センサ２８は、図２に示す破線で囲まれる領域である検知領域ＳＲ内の原稿の有り／無しの状態を示す原稿有無を検知する。
【００２１】
受光部２２は、主走査方向に配列される多数の光電変換素子２３を含み、図示しないシフトレジスタ、および増幅器を内蔵する。各光電変換素子２３の出力は、主走査方向の各画素における受光量である。先頭画素は、後述する基準点ＢＰ側（図２の上側）の端部にある画素であり、最終画素は、後述する基準点ＢＰのない側（図２の下側）の端部にある画素である。即ち、先頭画素は、主走査方向の最も上流に位置する画素であり、最終画素は、主走査方向の最も下流側に位置する画素である。本実施形態では、１ラインは、この先頭画素から最終画素までで構成される画素群である。
【００２２】
図２において原稿載置台ＤＴの上面は、本体ＭＢの上面、および透明板ＴＰがカバーＣＶ側に露出した面を有する。本体ＭＢは、カバーセンサ２７、および回動軸が配置されている。透明板ＴＰは、副走査方向に沿って伸びる長辺と、主走査方向に沿って伸びる短辺と、によって構成される矩形形状を有する。透明板ＴＰの露出する面のうち主走査方向の最上流位置であり、且つ副走査方向の最上流位置に基準点ＢＰが設けられている。透明板ＴＰには、基準点ＢＰを基点に原稿が載置される。透明板ＴＰは、基準点ＢＰから主走査方向の下流側および副走査方向の下流側に原稿載置領域を有する。例えば、Ａ４横の原稿が載置される原稿載置領域は、一点鎖線で囲まれる領域であり、Ａ４縦の原稿が載置される原稿載置領域は、二点鎖線で囲まれる領域である。回動軸は、カバーＣＶを開閉するときに回動する軸であり、本体ＭＢの主走査方向の上流側に２カ所配置されている。カバーセンサ２７は、回動軸の近傍に配置され、カバーＣＶが開いたときの開状態時にオンし、カバーＣＶが閉じたときの閉状態時にオフする。開状態から閉状態に変化する時のカバーＣＶのセンサ検知位置ＳＤＰは、本体ＭＢとカバーＣＶとの角度が３度のカバーＣＶの位置である。カバーＣＶのセンサ検知位置ＳＤＰは、画像読取装置ＳＭの周辺からの光である外乱光が読取部２０および原稿検知センサ２８に影響を与えないカバーＣＶの位置であり、読取部２０がカバーＣＶの読取部側の面を検知しないカバーＣＶの位置である。
【００２３】
画像読取装置ＳＭは、さらに、透明板ＴＰの上面に固定されている基準部材ＢＭを備える。基準部材ＢＭは、透明板ＴＰの副走査方向の上流側（即ち図２の左側）の端部に設けられている。基準部材ＢＭは、主走査方向に沿って伸びる白色の部材であり、後述する第１白データＷＨ１、第２白データＷＨ２、および第４白データＷＨ４を取得するときや、光源２１を調整するときに利用される。基準部材ＢＭは、副走査方向に１０ｍｍの幅を有する。以下では、副走査方向において、基準部材ＢＭの中央の位置を、「ホーム位置ＨＰ」と呼ぶ。読取部２０は、ホーム位置ＨＰを基準として、副走査方向に移動可能に構成されている。また、後述する原稿サイズＰＳ決定処理を実行する読取位置を「検知位置ＤＰ」と呼ぶ。検知位置ＤＰは、原稿載置台ＤＴに載置された原稿の主走査方向の長さを検知するときに読取部２０が位置する副走査方向の位置であり、基準点ＢＰから副走査方向下流に１０ｍｍ離れた位置である。読取処理を開始する副走査方向の位置を「読取開始位置ＳＰ」と呼ぶ。読取開始位置ＳＰは、基準点ＢＰが位置する副走査方向の位置である。
【００２４】
＜画像読取装置ＳＭの電気的構成＞
画像読取装置ＳＭの電気的構成について図３を参照して説明する。図３において、画像読取装置ＳＭは、ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、フラッシュＲＯＭ３３、デバイス制御部３４、アナログフロントエンド（以下、ＡＦＥという）３５、画像処理部３６、および駆動回路３７を主な構成要素として備える。これらの構成要素は、バス３８を介して、操作機構ＯＭ、表示機構ＤＭ、カバーセンサ２７、および原稿検知センサ２８に接続される。操作機構ＯＭは、開始ボタンおよび決定ボタン等の複数のキーによって構成される。ユーザは、操作機構ＯＭを操作することによって、様々な指示を画像読取装置ＳＭに入力することができる。表示機構ＤＭは、様々な情報を表示するためのディスプレイである。
【００２５】
ＲＯＭ３１は、後述する読取メイン処理、各メイン処理中のサブルーチンの処理など、画像読取装置ＳＭの各種動作を実行するためのプログラムを記憶する。ＣＰＵ３０は、ＲＯＭ３１から読み出されたプログラムに従って、各部の制御を行う。フラッシュＲＯＭ３３は、読み書き可能な不揮発性メモリであり、ＣＰＵ３０の制御処理により生成された各種のデータ、たとえば読取メイン処理により取得された各種のデータなどを記憶する。ＲＡＭ３２は、ＣＰＵ３０の制御処理により生成された算出結果などを一時的に記憶する。本実施形態では、ＲＡＭ３２は、後述する基準データである第１黒データＢＫ１、第１白データＷＨ１、第２白データＷＨ２、および第２黒データＢＫ２とカバー状態フラグＣＦＧとを関連付けて記憶する。
【００２６】
デバイス制御部３４は、読取部２０に接続され、ＣＰＵ３０からの命令に基づいて、光源２１の点灯または消灯を制御する信号、および光源２１に流れる電流値を制御する信号を光源２１に送信する。また、デバイス制御部３４は、ＣＰＵ３０からの命令に基づいて、多数の光電変換素子２３の電気信号を同時にシフトレジスタに転送するためのシリアルイン信号およびシフトレジスタの電気信号を順番に出力させるためのクロック信号を受光部２２に送信する。読取部２０は、デバイス制御部３４からこれらの信号を受け取ると、光源２１を点灯させるとともに、受光部２２が受光した受光量に応じたアナログ信号をＡＦＥ３５に送信する。
【００２７】
ＡＦＥ３５は、読取部２０に接続され、ＣＰＵ３０からの命令に基づいて、読取部２０から送信されるアナログ信号をデジタルデータに変換する。ＡＦＥ３５は、予め定められた入力レンジおよび分解能を有する。たとえば、分解能は、１０ビットであるならば、「０」から「１０２３」までの階調である。この場合、ＡＦＥ３５は、読取部２０から送信されたアナログ信号をデジタルデータとして１０ビット（０〜１０２３）の階調データに変換する。ＡＦＥ３５によって変換されたデジタルデータは、画像処理部３６に送信される。ＡＦＥ３５には、読取部２０から送信されるアナログ信号をオフセット調整するオフセット調整値と、オフセットされたアナログ信号を利得調整するゲイン調整値とが設定される。ＡＦＥ３５は、オフセット調整およびゲイン調整されたアナログ信号をデジタルデータに変換する。
【００２８】
画像処理部３６は、画像処理用の専用ＩＣであるＡＳＩＣから構成され、デジタルデータに各種の画像処理を施す。画像処理は、シェーディング補正、およびガンマ補正などの各種補正処理などである。画像処理部３６は、各種の画像処理を施さないように設定することもできるし、全ての画像処理を施すように設定することもできる。画像処理部３６は、設定された画像処理をデジタルデータに施し、デジタル画像データを生成する。このデジタル画像データは、バス３８を介してＲＡＭ３２に記憶される。ここで、シェーディング補正は、白補正および黒補正などである。画像処理部３６には、黒補正のために黒補正データが設定され、白補正のために白補正データが設定される。例えば、画像処理部３６にガンマ補正を施さず、シェーディング補正を施すように設定された場合、画像処理部３６は、設定された黒補正データに従ってデジタルデータに黒補正を施し、設定された白補正データに従って黒補正したデジタルデータに白補正を施すことでデジタル画像データを生成する。
【００２９】
駆動回路３７は、搬送モータＭＴに接続され、ＣＰＵ３０から送信される駆動指令に基づいて搬送モータＭＴを駆動する。駆動回路３７は、駆動指令により指令された回転量および回転方向に従って搬送モータＭＴを回転させる。搬送モータＭＴが所定量だけ回転すると、移動機構ＭＭが所定角度回転し、読取部２０が副走査方向に所定距離だけ搬送される。
【００３０】
＜実施形態の動作＞
次に、画像読取装置ＳＭの動作について図面を参照して説明する。画像読取装置ＳＭは、原稿を読み取る読取メイン処理を主に実行する。読取メイン処理中の処理Ｒ１〜処理Ｒ１４、および各サブルーチンの処理は、ＣＰＵ３０が実行する処理である。
【００３１】
（読取メイン処理）
図４に示す読取メイン処理は、ユーザがカバーＣＶを開けることにより、開始される。即ち、ＣＰＵ３０は、カバーセンサ２７がオンとなったときに、読取メイン処理を開始する。本実施形態の読取メイン処理において、読取解像度として６００ＤＰＩが設定され、カラーモードが設定されるときについて説明を行う。尚、読取メイン処理中に、再度カバーＣＶが開けられたときは、再度始めから読取メイン処理が開始される。
【００３２】
読取メイン処理が開始されると、ＣＰＵ３０は、駆動回路３７により読取部２０をホーム位置ＨＰに移動させ、その後にデバイス制御部３４、ＡＦＥ３５、および画像処理部３６を初期化し、カバー検知時間ＣＴのカウントを「０」の数値から開始する（Ｒ１）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０の読取位置がホーム位置ＨＰとなるように、読取部２０を移動させる。さらに、ＣＰＵ３０は、６００ＤＰＩの読取解像度に応じたクロック信号およびシリアルイン信号の設定をフラッシュＲＯＭ３３から取得し、デバイス制御部３４に設定する。ＣＰＵ３０は、ＡＦＥ３５のオフセット調整値およびゲイン調整値をフラッシュＲＯＭ３３から取得し、ＡＦＥ３５に設定する。ＣＰＵ３０は、各種画像処理を施さない設定値を画像処理部３６に設定する。処理Ｒ２〜処理Ｒ４、および処理Ｒ６〜処理Ｒ１２の各処理では、ＣＰＵ３０は、各種の画像処理を施さない。ＣＰＵ３０は、カバー検知時間ＣＴを「０」の数値からカウントを開始する。
【００３３】
ＣＰＵ３０は、カバーＣＶが開けられたときの読取部２０の各種データを取得する（Ｒ２）。詳細は、カバー開時データ取得処理（Ｒ２）として後述する。ＣＰＵ３０は、５０ｍｓ（ミリ秒）毎に原稿検知センサ２８に原稿を検知させる原稿検知処理を開始する。ＣＰＵ３０は、基準データである第1黒データＢＫ１、第1白データＷＨ１、第２白データＷＨ２、および第２黒データＢＫ２を取得する。ＣＰＵ３０は、経過時間ＥＴについて「０」の数値からカウントを開始し、第１白黒差分データＷＢＤ１を算出して最終白黒差分データＲＷＢＤとして記憶する。ＣＰＵ３０は、駆動回路３７により読取部２０を検知位置ＤＰに移動させる。
【００３４】
ＣＰＵ３０は、カバーＣＶが閉状態か否かを判断する（Ｒ３）。具体的には、ＣＰＵ３０は、カバーセンサ２７がオフのとき、カバーＣＶが閉状態と判断（Ｒ３：Ｙｅｓ）し、カバー検知時間ＣＴのカウントを停止し、処理Ｒ５へ進む。ＣＰＵ３０は、カバーセンサ２７がオンのとき、カバーＣＶが開状態と判断（Ｒ３：Ｎｏ）し、処理Ｒ４へ進む。
【００３５】
処理Ｒ３において、カバーＣＶが開状態と判断されると、ＣＰＵ３０は、操作機構ＯＭの開始ボタンが押下されたか否かを判断する（Ｒ４）。具体的には、ＣＰＵ３０は、操作機構ＯＭの開始ボタンが押下されたと判断（Ｒ４：Ｙｅｓ）すると、駆動回路３７により読取部２０を読取開始位置ＳＰへ移動させ、原稿サイズＰＳに最大読取範囲を設定し、処理Ｒ１１へ進む。ＣＰＵ３０は、操作機構ＯＭの開始ボタンが押下されていないと判断（Ｒ４：Ｎｏ）すると、処理Ｒ３へ進む。
【００３６】
処理Ｒ３において、カバーＣＶが閉状態と判断されると、ＣＰＵ３０は、原稿載置台ＤＴに載置された原稿の原稿サイズＰＳを決定する（Ｒ５）。具体的には、ＣＰＵ３０は、検知位置ＤＰにおいて読取部２０が原稿の画像を読み取ることにより、主走査方向の原稿の端部を示す原稿端ＰＥを検知する。ＣＰＵ３０は、検知データＶＤＤに基づいて原稿検知センサ２８の検知領域ＳＲにおいて原稿が存在するかしないかを示す原稿状態ＰＡを決定する。ＣＰＵ３０は、原稿端ＰＥおよび原稿状態ＰＡに基づき原稿サイズＰＳを確定する。この処理においては、ＣＰＵ３０は、画像処理部３６にガンマ補正を施さず、シェーディング補正を施すように設定し、この処理が終了すると、各種の画像処理を施さないように設定する。
【００３７】
ＣＰＵ３０は、経過時間ＥＴが第１所定時間以上経過しているか否かを判断する（Ｒ６）。具体的には、ＣＰＵ３０は、経過時間ＥＴが第１所定時間以上のとき、第１所定時間以上経過していると判断（Ｒ６：Ｙｅｓ）し、処理Ｒ７へ進む。ＣＰＵ３０は、経過時間ＥＴが第１所定時間より小さいとき、第１所定時間以上経過していないと判断（Ｒ６：Ｎｏ）し、処理Ｒ８へ進む。本実施形態では、第1所定時間は、たとえば１分である。1分経過すると、周辺温度等の画像読取装置ＳＭの環境変化による基準データへの影響が大きいからである。
【００３８】
処理Ｒ６において、第１所定時間以上経過していると判断されると、ＣＰＵ３０は、読取部２０の各種データを再取得する（Ｒ７）。詳細は、データ再取得処理（Ｒ７）として後述する。ＣＰＵ３０は、駆動回路３７により読取部２０をホーム位置ＨＰに移動させる。ＣＰＵ３０は、基準データとして第４黒データＢＫ４および第４白データＷＨ４を取得する。ＣＰＵ３０は、第４白黒差分データＷＢＤ４を算出する。ＣＰＵ３０は、経過時間ＥＴについてリセットして「０」の数値からカウントを開始し、第４白黒差分データＷＢＤ４を最終白黒差分データＲＷＢＤとして記憶する。ＣＰＵ３０は、駆動回路３７により読取部２０を読取開始位置ＳＰに移動させる。処理Ｒ７が終了すると、処理Ｒ１０へ進む。
【００３９】
処理Ｒ６において、第１所定時間以上経過していないと判断されると、ＣＰＵ３０は、駆動回路３７により読取部２０を読取開始位置ＳＰに移動させる（Ｒ８）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０の読取位置が読取開始位置ＳＰとなるように、読取部２０を移動させる。
【００４０】
ＣＰＵ３０は、基準データである読取部２０の第３黒データＢＫ３を取得する（Ｒ９）。具体的には、ＣＰＵ３０は、光源２１を消灯させ、原稿またはカバーＣＶを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の１色の各画素のデジタル画像データを第３黒データＢＫ３として取得する。第３黒データＢＫ３は、３色の光源２１を消灯して取得するため、１色のデータとなっている。
【００４１】
ＣＰＵ３０は、操作機構ＯＭの開始ボタンが押下されたか否かを判断する（Ｒ１０）。具体的には、ＣＰＵ３０は、操作機構ＯＭの開始ボタンが押下されたと判断（Ｒ１０：Ｙｅｓ）すると、処理Ｒ１１へ進む。ＣＰＵ３０は、操作機構ＯＭの開始ボタンが押下されていないと判断（Ｒ４：Ｎｏ）すると、開始ボタンが押下されるまで待機する。
【００４２】
ＣＰＵ３０は、経過時間ＥＴが第１所定時間以上経過しているか否かを判断する（Ｒ１１）。具体的には、ＣＰＵ３０は、経過時間ＥＴが第１所定時間以上のとき、第１所定時間以上経過していると判断（Ｒ１１：Ｙｅｓ）し、処理Ｒ１２へ進む。ＣＰＵ３０は、処理Ｒ７と同様に、読取部２０の各種データを再取得する（Ｒ１２）。処理Ｒ１２は、処理Ｒ７と同様の処理であり、データ再取得処理（Ｒ１２）として後述する。処理Ｒ１２が終了すると、処理Ｒ１３へ進む。ＣＰＵ３０は、経過時間ＥＴが第１所定時間より小さいとき、第１所定時間経過していないと判断（Ｒ１１：Ｎｏ）し、処理Ｒ１３へ進む。
【００４３】
ＣＰＵ３０は、画像処理部３６に白補正データおよび黒補正データを設定する（Ｒ１３）。具体的には、ＣＰＵ３０は、最終白黒差分データＲＷＢＤとして第４白黒差分データＷＢＤ４が記憶されていれば、白補正データとして第４白黒差分データＷＢＤ４を画像処理部３６に設定し、黒補正データとして第４黒データＢＫ４を画像処理部３６に設定する。ＣＰＵ３０は、最終白黒差分データＲＷＢＤとして第1白黒差分データＷＢＤ１が記憶されていれば、カバー検知時間ＣＴがカウント中か否かを判断する。ＣＰＵ３０は、カウント中であれば、白補正データとして第1白黒差分データＷＢＤ１を画像処理部３６に設定し、黒補正データとして第１黒データＢＫ１を画像処理部３６に設定する。この時、黒補正データとして第１黒データＢＫ１を設定しているため、第1黒データＢＫ１は処理Ｒ１３の実行時点での最新の黒データであり、後述する処理Ｒ１４の読取処理において読取部２０の最新の状態を反映して黒補正させることができる。ＣＰＵ３０は、カウント中でなければ、白補正データとして第1白黒差分データＷＢＤ１を画像処理部３６に設定し、黒補正データとして第３黒データＢＫ３を画像処理部３６に設定する。ＣＰＵ３０は、全ての画像処理を施す設定値を画像処理部３６に設定する。
【００４４】
ＣＰＵ３０は、原稿の画像を読み取る（Ｒ１４）。具体的には、ＣＰＵ３０は、駆動回路３７に指令を出力し、駆動回路３７により読取部２０を移動させ、読取部２０の光源２１を光量ＳＴで照射して原稿サイズＰＳの領域の原稿の画像を読み取る。読み取ったデジタル画像データは、ＲＡＭ３２に保存され、図示しないプリンタで印刷されたり、外部装置に画像データとして出力されたりする。
【００４５】
（カバー開時データ取得処理Ｒ２）
図５に示すカバー開時データ取得処理（Ｒ２）が開始されると、ＣＰＵ３０は、原稿検知センサ２８に検知領域ＳＲの原稿の有り／無しの状態を示す原稿有無を検知させる原稿検知処理を開始する（ＲＡ１）。この原稿検知処理は、処理ＲＡ２以降の処理と並行して実行される。
【００４６】
処理ＲＡ１により原稿検知処理が開始されると、ＣＰＵ３０は、５０ｍｓ間隔で原稿検知センサ２８に原稿有無を検知させ、検知した原稿有無のデータをＲＡＭ３２に検知データＶＤＤとして記憶する。ＣＰＵ３０は、原稿有無を検知させた時に、検知データＶＤＤが１６個のデータ数の場合は、最も古い原稿有無のデータに替えて検知させた原稿有無のデータを検知データＶＤＤとして記憶する。検知データＶＤＤが１６個未満のデータ数の場合は、検知させた原稿有無のデータを検知データＶＤＤとして記憶する。ＣＰＵ３０は、カバーセンサ２７がオフのときに、原稿有無の検知を終了させ、原稿検知処理を終了する。この様にして、カバーＣＶが閉じられたときの最新の検知データＶＤＤがＲＡＭ３２に記憶される。原稿検知処理は、処理ＲＡ２以降の処理と並行して実行される。
【００４７】
ＣＰＵ３０は、光源２１の光量ＳＴを調整する（ＲＡ２）。具体的には、ＣＰＵ３０は、基準部材ＢＭに向けて、読取部２０の光源２１を点灯することで光を照射させ、その反射光を読み取ったときのアナログ信号がＡＦＥ３５の入力レンジの最大となるように、各色の光量ＳＴを調整する。ここで、各色は、カラーモードで用いられる赤色、青色、および緑色の各色である。
【００４８】
ＣＰＵ３０は、基準データである読取部２０の第１黒データＢＫ１を取得する（ＲＡ３）。具体的には、ＣＰＵ３０は、光源２１を消灯させ、基準部材ＢＭを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の１色の各画素のデジタル画像データを第１黒データＢＫ１として取得する。さらに、ＣＰＵ３０は、カバーセンサ２７がオンのときは、第１黒データＢＫ１と関連付けて「１」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶し、カバーセンサ２７がオフのときは、第１黒データＢＫ１と関連付けて「０」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶する。
【００４９】
ＣＰＵ３０は、基準データである読取部２０の第１白データＷＨ１を取得する（ＲＡ４）。具体的には、ＣＰＵ３０は、処理ＲＡ２で調整した各色の光量ＳＴで光源２１を点灯させ、基準部材ＢＭを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の各色の各画素のデジタル画像データを第１白データＷＨ１として取得する。さらに、ＣＰＵ３０は、カバーセンサ２７がオンのときは、第１白データＷＨ１と関連付けて「１」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶し、カバーセンサ２７がオフのときは、第１白データＷＨ１と関連付けて「０」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶する。
【００５０】
ＣＰＵ３０は、駆動回路３７により読取部２０を移動させ、基準データである読取部２０の第２白データＷＨ２を取得する（ＲＡ５）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０の読取位置がホーム位置ＨＰから副走査方向下流へ３ｍｍ離れた位置となるように、読取部２０を移動させる。ＣＰＵ３０は、処理ＲＡ２で調整した各色の光量ＳＴで光源２１を点灯させ、基準部材ＢＭを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の各色の各画素のデジタル画像データを第２白データＷＨ２として取得する。さらに、ＣＰＵ３０は、カバーセンサ２７がオンのときは、第２白データＷＨ２と関連付けて「１」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶し、カバーセンサ２７がオフのときは、第２白データＷＨ２と関連付けて「０」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶する。
【００５１】
ＣＰＵ３０は、基準データである読取部２０の第２黒データＢＫ２を取得する（ＲＡ６）。具体的には、ＣＰＵ３０は、光源２１を消灯させ、基準部材ＢＭを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の１色の各画素のデジタル画像データを第２黒データＢＫ２として取得する。さらに、ＣＰＵ３０は、カバーセンサ２７がオンのときは、第２黒データＢＫ２と関連付けて「１」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶し、カバーセンサ２７がオフのときは、第２黒データＢＫ２と関連付けて「０」の状態をカバー状態フラグＣＦＧとしてＲＡＭ３２に記憶する。
【００５２】
ＣＰＵ３０は、第１白黒差分データＷＢＤ１を算出する（ＲＡ７）。詳細は、第１白黒差分データＷＢＤ１取得処理（ＲＡ７）として後述する。ＣＰＵ３０は、１ライン中の全ての画素の第１黒データＢＫ１を平均して第１黒平均ＢＡ１を算出し、１ライン中の全ての画素の第２黒データＢＫ２を平均して第２黒平均ＢＡ２を算出し、第２黒平均ＢＡ２から第１黒平均ＢＡ１を引算して黒平均差分ＢＡＤを算出する。ＣＰＵ３０は、黒平均差分ＢＡＤが閾値ＴＨ１よりも小さいときに、第１白データＷＨ１および第２白データＷＨ２に基づき後述するように第３白データＷＨ３を生成し、第３白データＷＨ３から第２黒データＢＫ２を引算して第１白黒差分データＷＢＤ１を算出する。ＣＰＵ３０は、黒平均差分ＢＡＤが閾値ＴＨ１以上のときに、第１白データＷＨ１から第１黒データＢＫ１を引算して第２白黒差分データＷＢＤ２を算出し、第２白データＷＨ２から第２黒データＢＫ２を引算して第３白黒差分データＷＢＤ３を算出し、第２白黒差分データＷＢＤ２および第３白黒差分データＷＢＤ３に基づき後述するように第１白黒差分データＷＢＤ１を生成する。ＣＰＵ３０は、経過時間ＥＴについて「０」の数値からカウントを開始し、第1白黒差分データＷＢＤ１を最終白黒差分データＲＷＢＤとして記憶する。
【００５３】
ＣＰＵ３０は、駆動回路３７により読取部２０を検知位置ＤＰに移動させる（ＲＡ８）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０の読取位置が検知位置ＤＰとなるように、読取部２０を移動させる。
【００５４】
（第１白黒差分データＷＢＤ１取得処理ＲＡ７）
図６に示す第１白黒差分データＷＢＤ１取得処理（ＲＡ７）が開始されると、ＣＰＵ３０は、基準データを取得したときのカバーＣＶの状態が第１状態か、若しくは第２状態かいずれであるかを判断する（ＲＢ１）。具体的には、ＣＰＵ３０は、第２白データＷＨ２に関連付けられたカバー状態フラグＣＦＧおよび第２黒データＢＫ２に関連付けられたカバー状態フラグＣＦＧが共に「０」の状態である場合に、カバーＣＶが第１状態と判断し、処理ＲＢ２へ進む。ＣＰＵ３０は、それ以外の場合に、カバーＣＶが第２状態と判断し、処理ＲＢ３へ進む。第２白データＷＨ２に関連付けられたカバー状態フラグＣＦＧおよび第２黒データＢＫ２に関連付けられたカバー状態フラグＣＦＧが共に「０」の状態である場合は、カバーＣＶが閉じられた状態で第２白データＷＨ２および第２黒データＢＫ２が取得できたことを示しており、外乱光の影響を考慮する必要が無い。
【００５５】
処理ＲＢ１において第１状態と判断されると、ＣＰＵ３０は、第１白黒差分データＷＢＤ１を算出する（ＲＢ２）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素の第２白データＷＨ２から第２黒データＢＫ２を引算し、１ライン中の各色の各画素の第１白黒差分データＷＢＤ１としてフラッシュＲＯＭ３３に記憶する。
【００５６】
処理ＲＢ１において第２状態と判断されると、ＣＰＵ３０は、第１黒平均ＢＡ１を算出する（ＲＢ３）。具体的には、ＣＰＵ３０は、１ライン中の全ての画素の第１黒データＢＫ１を平均して第１黒平均ＢＡ１を算出する。ＣＰＵ３０は、第１黒平均ＢＡ１をＲＡＭ３２に記憶する。
【００５７】
ＣＰＵ３０は、第２黒平均ＢＡ２を算出する（ＲＢ４）。具体的には、ＣＰＵ３０は、１ライン中の全ての画素の第２黒データＢＫ２を平均して第２黒平均ＢＡ２を算出する。ＣＰＵ３０は、第２黒平均ＢＡ２をＲＡＭ３２に記憶する。
【００５８】
ＣＰＵ３０は、黒平均差分ＢＡＤを算出する（ＲＢ５）。具体的には、ＣＰＵ３０は、第２黒平均ＢＡ２から第１黒平均ＢＡ１を引算して黒平均差分ＢＡＤを算出する。ＣＰＵ３０は、黒平均差分ＢＡＤをＲＡＭ３２に記憶する。
【００５９】
ＣＰＵ３０は、黒平均差分ＢＡＤが閾値ＴＨ１よりも小さいか否かを判断する（ＲＢ６）。具体的には、ＣＰＵ３０は、黒平均差分ＢＡＤが閾値ＴＨ１よりも小さい場合は、処理ＲＢ７へ進む。ＣＰＵ３０は、黒平均差分ＢＡＤが閾値ＴＨ１以上の場合は、処理ＲＢ９へ進む。ここで、閾値ＴＨ１は、０．１Ｖに相当する１０ビットのデジタルデータである。一般的に、白色のアナログ信号と黒色のアナログ信号の白黒出力差の最大値は１．０Ｖであり、このときの１ライン中の白色のアナログ信号の最も大きい出力から最も小さい出力の差分である最大変動量は０．５Ｖである。よって、０．１Ｖは、白黒出力差の最大値である１．０Ｖに対して十分小さく、最大変動量である０．５Ｖに対しても十分に小さいため、その影響も十分に小さいと考えられる。
【００６０】
処理ＲＢ６において黒平均差分ＢＡＤが閾値ＴＨ１よりも小さいと判断されると、ＣＰＵ３０は、基準データである第３白データＷＨ３を生成する（ＲＢ７）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素において第１白データＷＨ１と第２白データＷＨ２とのうち大きい値を１ライン中の各色の各画素の第３白データＷＨ３として生成する。
【００６１】
ＣＰＵ３０は、第１白黒差分データＷＢＤ１を算出する（ＲＢ８）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素の第３白データＷＨ３から第２黒データＢＫ２を引算して、１ライン中の各色の各画素の第１白黒差分データＷＢＤ１としてフラッシュＲＯＭ３３に記憶する。処理ＲＢ８が終了すると、処理ＲＢ１２へ進む。
【００６２】
処理ＲＢ６において第１閾値ＴＨ１以上と判断されると、ＣＰＵ３０は、第２白黒差分データＷＢＤ２を算出する（ＲＢ９）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素の第１白データＷＨ１から第１黒データＢＫ１を引算して、１ライン中の各色の各画素の第２白黒差分データＷＢＤ２を算出する。
【００６３】
ＣＰＵ３０は、第３白黒差分データＷＢＤ３を算出する（ＲＢ１０）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素の第２白データＷＨ２から第２黒データＢＫ２を引算して、１ライン中の各色の各画素の第３白黒差分データＷＢＤ３を算出する。
【００６４】
ＣＰＵ３０は、第１白黒差分データＷＢＤ１を生成する（ＲＢ１１）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素において第２白黒差分データＷＢＤ２と第３白黒差分データＷＢＤ３とのうち大きい値を第１白黒差分データＷＢＤ１として生成してフラッシュＲＯＭ３３に記憶する。
【００６５】
ＣＰＵ３０は、経過時間ＥＴのカウントを開始する（ＲＢ１２）。具体的には、ＣＰＵ３０は、経過時間ＥＴについて「０」の数値からカウントを開始する。ＣＰＵ３０は、１ライン中の各色の各画素の第１白黒差分データＷＢＤ１を最終白黒差分データＲＷＢＤとしてフラッシュＲＯＭ３３に記憶する。処理ＲＢ１２が終了すると、第１白黒差分データＷＢＤ１取得処理（ＲＡ７）が終了する。
【００６６】
（データ再取得処理Ｒ７、Ｒ１２）
図７に示すデータ再取得処理（Ｒ７、Ｒ１２）が開始されると、ＣＰＵ３０は、駆動回路３７により読取部２０をホーム位置ＨＰに移動させる（ＲＤ１）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０の読取位置がホーム位置ＨＰとなるように、読取部２０を移動させる。
【００６７】
ＣＰＵ３０は、基準データである読取部２０の第４黒データＢＫ４を取得する（ＲＤ２）。具体的には、ＣＰＵ３０は、光源２１を消灯させ、基準部材ＢＭを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の１色の各画素のデジタル画像データを第４黒データＢＫ４として取得する。
【００６８】
ＣＰＵ３０は、光源２１の光量ＳＴを調整する（ＲＤ３）。具体的には、ＣＰＵ３０は、処理ＲＡ２と同様に、基準部材ＢＭに向けて、読取部２０の光源２１を点灯することで光を照射させ、その反射光を読み取ったときのアナログ信号がＡＦＥ３５の入力レンジの最大となるように、各色の光量ＳＴを調整する。
【００６９】
ＣＰＵ３０は、基準データである読取部２０の第４白データＷＨ４を取得する（ＲＤ４）。具体的には、ＣＰＵ３０は、処理ＲＤ３で調整した各色の光量ＳＴで光源２１を点灯させ、基準部材ＢＭを読み取る。そして、ＣＰＵ３０は、読み取った１ライン中の各色の各画素のデジタル画像データを第４白データＷＨ４として取得する。
【００７０】
ＣＰＵ３０は、第４白黒差分データＷＢＤ４を算出する（ＲＤ５）。具体的には、ＣＰＵ３０は、１ライン中の各色の各画素の第４白データＷＨ４から第４黒データＢＫ４を引算して、１ライン中の各色の各画素の第４白黒差分データＷＢＤ４を算出してフラッシュＲＯＭ３３に記憶する。
【００７１】
ＣＰＵ３０は、経過時間ＥＴのカウントをリセットする（ＲＤ６）。具体的には、ＣＰＵ３０は、経過時間ＥＴについてカウントをリセットして「０」の数値からカウントを開始する。ＣＰＵ３０は、１ライン中の各色の各画素の第４白黒差分データＷＢＤ４を最終白黒差分データＲＷＢＤとしてフラッシュＲＯＭ３３に記憶する。
【００７２】
ＣＰＵ３０は、駆動回路３７により読取部２０を読取開始位置ＳＰに移動させる（ＲＤ７）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０の読取位置が読取開始位置ＳＰとなるように、読取部２０を移動させる。処理ＲＤ７が終了すると、データ再取得処理（Ｒ７、Ｒ１２）は終了する。
【００７３】
（ユーザが通常使用するケース）
本実施形態の具体的な例について、ユーザが通常使用する５種類のケースを説明する。ここで、ユーザが通常使用することの意味は、ユーザがカバーＣＶを開けて、その後に閉めるということの意味である。図８の上の表、および下の図は、各ケースについて各基準データ取得時のカバー状態を示す。
【００７４】
図８に示すケース１は、カバーＣＶが開状態時に、基準データである第１黒データＢＫ１、第１白データＷＨ１、第２白データＷＨ２、および第２黒データＢＫ２が取得された場合である。このケースでは、全ての基準データに外乱光の影響があるため、外乱光の影響を取り除かないと適切な白黒差分データＷＢＤが算出できない場合である。このケース１では、処理ＲＢ１において第２状態と判断されて、外乱光の影響を取り除いて白黒差分データＷＢＤを算出する処理ＲＢ６〜処理ＲＢ１１が実行される。つまり、処理ＲＢ６において黒平均差分ＢＡＤが閾値ＴＨ１よりも小さいか否かを判断することで、第１黒データＢＫ１への外乱光の影響と第２黒データＢＫ２への外乱光の影響とが変化したことを判断でき、判断結果に応じて白黒差分データＷＢＤの算出処理を変更する。外乱光の影響が変化していない場合は、処理ＲＢ７および処理ＲＢ８を実行し、異物などを読み取ることにより生じる出力低下を取り除いた第３白データＷＨ３を生成した後に、第１白黒差分データＷＢＤ１の算出時点において最新の黒データである第２黒データＢＫ２を用いて第１白黒差分データＷＢＤ１が算出される。外乱光の影響が変化した場合は、処理ＲＢ９〜処理ＲＢ１１を実行し、白データと黒データとの取得時点が近い第１黒データＢＫ１と第１白データＷＨ１とを用いて第２白黒差分データＷＢＤ２を算出し、同様に白データと黒データとの取得時点が近い第２黒データＢＫ２と第２白データＷＨ２とを用いて第３白黒差分データＷＢＤ３を算出し、第２白黒差分データＷＢＤ２と第３白黒差分データＷＢＤ３とのうち大きい値を第１白黒差分データＷＢＤ１として生成する。後述するように白データＷＨと黒データＢＫとに対する外乱光の影響は、白データＷＨへの影響が小さく黒データＢＫへの影響が大きくなることがある。第２白黒差分データＷＢＤ２と第３白黒差分データＷＢＤ３とのうち大きい値を第１白黒差分データＷＢＤ１とすることで、白データＷＨと黒データＢＫとに対する外乱光の影響の違いを低減することができる。この様にして、ケース１の場合でも、外乱光の影響を取り除いた第１白黒差分データＷＢＤ１を算出することができる。
【００７５】
図８に示すケース２は、カバーＣＶが開状態時に、基準データである第１黒データＢＫ１、第１白データＷＨ１、および第２白データＷＨ２が取得され、カバーＣＶが閉状態時に、基準データである第２黒データＢＫ２が取得された場合である。このケースでは、第１黒データＢＫ１、第１白データＷＨ１、および第２白データＷＨ２に外乱光の影響があるため、外乱光の影響を取り除かないと適切な白黒差分データＷＢＤが算出できない場合である。このケース２でも、ケース１と同様に、処理ＲＢ１において第２状態と判断されて、外乱光の影響を取り除いて白黒差分データＷＢＤを算出する処理ＲＢ６〜処理ＲＢ１１が実行され、各処理の効果もケース１と同様である。よって、ケース２の場合でも、外乱光の影響を取り除いた第１白黒差分データＷＢＤ１を算出することができる。
【００７６】
図８に示すケース３は、カバーＣＶが開状態時に、基準データである第１黒データＢＫ１、および第１白データＷＨ１が取得され、カバーＣＶが閉状態時に、基準データである第２白データＷＨ２、および第２黒データＢＫ２が取得された場合である。このケースでは、第２黒データＢＫ２、および第２白データＷＨ２に外乱光の影響が無いため、外乱光の影響のない基準データを用いて白黒差分データＷＢＤが算出できる場合である。このケース３では、処理ＲＢ１において第１状態と判断されて、外乱光の影響のない基準データである第２黒データＢＫ２と第２白データＷＨ２とを用いて第１白黒差分データＷＢＤ１を算出する。この様にして、ケース３の場合でも、外乱光の影響のない第１白黒差分データＷＢＤ１を算出することができる。
【００７７】
図８に示すケース４は、カバーＣＶが開放時に、基準データである第１黒データＢＫ１が取得され、カバーＣＶが閉状態時に、基準データである第１白データＷＨ１、第２白データＷＨ２、および第２黒データＢＫ２が取得された場合である。このケースでは、第１白データＷＨ１、第２白データＷＨ２、および第２黒データＢＫ２に外乱光の影響が無いため、外乱光の影響のない基準データを用いて白黒差分データＷＢＤが算出できる場合である。このケース４でも、ケース３と同様に、第１状態と判断されて、外乱光の影響のない基準データを用いて第１白黒差分データＷＢＤ１を算出する。この様にして、ケース４の場合でも、外乱光の影響のない第１白黒差分データＷＢＤ１を算出することができる。
【００７８】
図８に示すケース５は、カバーＣＶが閉状態に、基準データである第１黒データＢＫ１、第１白データＷＨ１、第２白データＷＨ２、および第２黒データＢＫ２が取得された場合である。このケースでは、全ての基準データに外乱光の影響が無いため、外乱光の影響のない基準データを用いて白黒差分データＷＢＤが算出できる場合である。このケース５でも、ケース３およびケース４と同様に、第１状態と判断されて、外乱光の影響のない基準データを用いて第１白黒差分データＷＢＤ１を算出する。この様にして、ケース５の場合でも、外乱光の影響のない第１白黒差分データＷＢＤ１を算出することができる。
【００７９】
以上、説明したように、外乱光の影響のある第１白データＷＨ１若しくは第２白データＷＨ２を取得した場合でも、第１白データＷＨ１および第２白データＷＨ２について白データＷＨを取得する直前の黒データＢＫである第１黒データＢＫ１と白データを取得した直後の黒データである第２黒データＢＫ２とを取得することで、取得した白データＷＨと同程度の外乱光の影響のある黒データＢＫとを取得することができ、外乱光の影響のある白データＷＨから外乱光の影響のある黒データＢＫを引算することで、白データＷＨおよび黒データＢＫの外乱光の影響を白黒差分データＷＢＤにおいて低減することができる。
【００８０】
（白黒差分データＷＢＤの一例）
次に、図９および図１０を参照して、外乱光の影響が有る場合と外乱光の影響が無い場合とで白黒差分データＷＢＤの相違について一例を挙げて説明する。１ライン中の一部の画素である４６７１画素目から４６８０画素目までの画素の赤色の白黒差分データＷＢＤについて説明する。
【００８１】
外乱光の影響の無い場合の黒データＢＫは、図９の三角に示すように、４６７１画素目から４６８０画素目の画素まで順に、７６、７９、７９、８１、７６、７７、７７、７８、７３、および７７の値である。外乱光の影響の有る場合の黒データＢＫは、図９の丸に示すように、４６７１画素目から４６８０画素目の画素まで順に、８６、９２、９３、９１、８６、８９、８９、８７、８６、および８７の値である。
【００８２】
外乱光の影響の無い場合の赤色の白データＷＨは、図９のバツに示すように、４６７１画素目から４６８０画素目の画素まで順に、８７４、９１７、９２０、８８１、８５７、８３９、８４７、８４９、８８４、および８８２の値である。外乱光の影響の有る赤色の白データＷＨは、図９の四角に示すように、４６７１画素目から４６８０画素目の画素まで順に、８８０、９２４、９２７、８９２、８６６、８４６、８５２、８５９、８９３、および８８９の値である。
【００８３】
外乱光の影響の無い場合の赤色の白黒差分データＷＢＤは、外乱光の影響の無い赤色の白データＷＨから外光の影響の無い黒データＢＫを引算して算出される。よって、外乱光の影響の無い場合の赤色の白黒差分データＷＢＤは、図１０の四角に示すように、４６７１画素目から４６８０画素目の画素まで順に、７９８、８３８、８４１、８００、７８１、７６２、７７０、７７１、８１１、および８０５の値である。
【００８４】
本発明の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤは、外乱光の影響の有る赤色の白データＷＨから外乱光の影響の有る黒データＢＫを引算して算出される。よって、本発明の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤは、図１０の丸に示すように、４６７１画素目から４６８０画素目の画素まで順に、７９４、８３２、８３４、８０１、７８０、７５７、７６３、７７２、８０７、および８０２の値である。
【００８５】
通常の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤは、外乱光の影響の有る赤色の白データＷＨから外光の影響の無い黒データＢＫを引算して算出される。通常、黒データＢＫは外乱光の影響の無いときにしか取得されないからである。よって、通常の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤは、図１０の三角に示すように、４６７１画素目から４６８０画素目の画素まで順に、８０４、８４５、８４８、８１１、７９０、７６９、７７５、７８１、８２０、および８１２の値である。
【００８６】
この白黒差分データＷＢＤの一例では、以下のような効果を確認できた。４６７４画素目、４６７５画素目、および４６７８画素目の画素において、本発明の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤは、外乱光の影響の無い場合の赤色の白黒差分データＷＢＤとほとんど同じ値を示し、外乱光の影響を取り除くことができた。また、４６７９画素目、４６８０画素目の画素において、本発明の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤは、通常の外乱光の影響の有る場合の赤色の白黒差分データＷＢＤと比べて、外乱光の影響の無い場合の赤色の白黒差分データＷＢＤと約半分くらいの誤差を有するだけであり、外乱光の影響を低減することができた。よって、４６７１画素目から４６８０画素目までの画素のうち半分の画素について本発明の効果である外乱光の影響を低減する効果を確認することができた。
【００８７】
＜実施形態の効果＞
本実施形態では、読取メイン処理のカバー開時データ取得処理（Ｒ２）において、処理ＲＡ３は、第１黒データＢＫ１を取得し、第１黒データＢＫ１と取得時のカバー状態フラグＣＦＧとを関連付けて記憶する。処理ＲＡ４は、第１白データＷＨ１を取得し、第１白データＷＨ１と取得時のカバー状態フラグＣＦＧとを関連付けて記憶する。処理ＲＡ５は、第２白データＷＨ２を取得し、第２白データＷＨ２と取得時のカバー状態フラグＣＦＧとを関連付けて記憶する。処理ＲＡ６は、第２黒データＢＫ２と取得時のカバー状態フラグＣＦＧとを関連付けて記憶する。第１白黒差分データＷＢＤ１取得処理（ＲＡ７）において、処理ＲＢ１は、基準データを取得したときのカバーＣＶの状態が第１状態か、若しくは第２状態かいずれであるかを判断する。外乱光の影響がある場合は、第２状態が判断される。処理ＲＢ３は、第１黒データＢＫ１の全ての画素の値を平均して第1黒平均ＢＡ１を算出する。処理ＲＢ４は、第２黒データＢＫ２の全ての画素の値を平均して第２黒平均ＢＡ２を算出する。処理ＲＢ５は、第２黒平均ＢＡ２から第１黒平均ＢＡ１を引算して黒平均差分ＢＡＤを算出する。処理ＲＢ６は、黒平均差分ＢＡＤが閾値ＴＨ１よりも小さいか否かを判断する。外乱光の影響度合が第１黒データＢＫ１の取得時と第２黒データＢＫ２の取得時とで変化した場合は、黒平均差分ＢＡＤが閾値ＴＨ１以上に判断される。処理ＲＢ９は、第１白データＷＨ１から第１黒データＢＫ１を引算して第２白黒差分データＷＢＤ２を算出する。処理ＲＢ１０は、第２白データＷＨ２から第２黒データＢＫ２を引算して第３白黒差分データＷＢＤ３を算出する。処理ＲＢ１１は、１ライン中の各色の各画素において第２白黒差分データＷＢＤ２と第３白黒差分データＷＢＤ３とのうち大きい値を第１白黒差分データＷＢＤ１として生成する。よって、各基準データを取得するときに取得時のカバー状態フラグＣＦＧを基準データと関連付けて記憶しているため、各基準データが外乱光の影響を受けているか否かを判断することができる。また、各基準データが外乱光の影響を受けている場合でも、外乱光の影響を受けている白データＷＨから外乱光の影響を受けている黒データＢＫを引算することで、外乱光の影響を低減した白黒差分データＷＢＤを算出することができる。
【００８８】
［実施形態と発明との対応関係］
画像読取装置ＳＭ、カバーＣＶ、および基準部材ＢＭが、本発明の画像読取装置、カバー、および白色基準部材の一例である。読取部２０、ＡＦＥ３５、搬送モータＭＴ、および移動機構ＭＭが、本発明の読取部の一例である。画像処理部３６、カバーセンサ２７、ＣＰＵ３０が、本発明の補正部、検知部、制御部の一例である。処理ＲＡ３が、本発明の第１黒データ取得処理の一例である。処理ＲＡ４、および処理ＲＡ５が、本発明の白データ取得処理の一例である。処理ＲＢ９、処理ＲＢ１０、処理ＲＢ１１および処理ＲＢ８が、本発明の補正データ算出処理の一例である。
【００８９】
処理ＲＡ６が、本発明の第２黒データ取得処理の一例である。処理ＲＢ３が、本発明の第１黒平均算出処理の一例である。処理ＲＢ４が、本発明の第２黒平均算出処理の一例である。処理ＲＢ５が、本発明の黒平均差分算出処理の一例である。処理ＲＢ６が、本発明の差分判断処理の一例である。操作機構ＯＭが、本発明の入力部の一例である。処理Ｒ９が、本発明の第３黒データ取得処理の一例である。処理Ｒ１４が、本発明の読取処理の一例である。
【００９０】
［変形例］
本発明は、本実施形態に限定されることなく、その趣旨を逸脱しない範囲において種々の変形が可能である。以下にその変形の一例を述べる。
【００９１】
（１）本実施形態の画像読取装置ＳＭは、プリンタ部を備えた複合機に適用されても良い。本実施形態では、読取部２０が１つの場合について説明したが、読取部２０が複数の場合でも良い。
【００９２】
（２）本実施形態では、図４に示す読取メイン処理の全てがＣＰＵ３０によって実行される構成であるが、この構成に限定されない。例えば、読取メイン処理のＲ２〜Ｒ１４の一部が画像処理部３６、デバイス制御部３４、またはＡＦＥ３５により実行されても良い。
【００９３】
（３）本実施形態では、白データについて第１白データＷＨ１、および第２白データＷＨ２が取得される場合について説明したが、第２白データＷＨ２を取得せずに、第１白データＷＨ１のみを取得し、第２白データＷＨ２の代わりに第１白データＷＨ１を用いても良い。
【００９４】
（４）本実施形態では、第２白データＷＨ２に関連付けられたカバー状態フラグＣＦＧおよび第２黒データＢＫ２に関連付けられたカバー状態フラグＣＦＧが共に０である場合に、第１状態と判断したが、白データＷＨおよび黒データＢＫを一組としてカバー状態フラグＣＦＧが「０」の状態の白データＷＨおよび黒データＢＫが一組あれば、第１状態として判断しても良い。
【００９５】
（５）本実施形態では、第３白データＷＨ３を生成するときに、１ライン中の各色の各画素において第１白データＷＨ１と第２白データＷＨ２とのうち大きい値を第３白データＷＨ３として生成したが、全ての画素の第１白データＷＨ１を第３白データＷＨ３としても良いし、全ての画素の第２白データＷＨ２を第３白データＷＨ３としても良い。
【符号の説明】
【００９６】
ＳＭ…画像読取装置、ＯＭ…操作機構、ＣＶ…カバー、２０…読取部、２１…光源、２２…受光部、２３…光電変換素子、３０…ＣＰＵ、３３…フラッシュＲＯＭ、３４…デバイス制御部、３５…ＡＦＥ、３６…画像処理部、２７…カバーセンサ、２８…原稿検知センサ、３７…駆動回路
【図１】
2019213234.tif 000003
【図２】
2019213234.tif 000004
【図３】
2019213234.tif 000005
【図４】
2019213234.tif 000006
【図５】
2019213234.tif 000007
【図６】
2019213234.tif 000008
【図７】
2019213234.tif 000009
【図８】
2019213234.tif 000010
【図９】
2019213234.tif 000011
【図１０】
2019213234.tif 000012