(57)【要約】【課題】  白色基準チャート自体の汚れやチャート搬送に伴い発生するゴミに起因したスジなどの影響を低減し、正確なシェーディング補正用データの生成を可能とした画像読取装置及び制御方法を提供する。【解決手段】画像読取装置は、ＣＰＵ２０１、画像処理部３００等を備える。ＣＰＵ２０１は、画像処理部３００により次の処理を行う。読取対象から読み取った画像データと閾値とを比較し、前記閾値の範囲外の画素を特異点画素として判定する。この場合、閾値を画素毎に設定可能である。特異点画素と判定された画素のデータを該特異点画素の周囲のデータから補間する。また、特異点画素と判定されない画素のデータを有効なシェーディング補正用データとして採用する。また、読み取った画像データに対するサンプリング開始から終了までの有効サンプリングライン数を制御する。【選択図】図３
2015198389.tif 000002
【特許請求の範囲】
【請求項１】
原稿を含む読取対象の画像を読み取る読取手段と、
前記読取手段により読み取った画像データに対してシェーディング補正を行う補正手段と、
前記読取手段により読み取った画像データと閾値とを比較し、前記閾値の範囲外の画素を特異点画素として判定する判定手段と、
前記判定手段において使用する閾値を画素毎に設定可能な設定手段と、
前記判定手段により特異点画素と判定された画素のデータを該特異点画素の周囲のデータから補間する補間手段と、
前記判定手段により特異点画素と判定されない画素のデータを有効なシェーディング補正用データとして採用するサンプリング手段と、
前記読取手段により読み取った画像データに対する前記サンプリング手段のサンプリング開始から終了までの有効サンプリングライン数を制御する制御手段と、
を備えることを特徴とする画像読取装置。
【請求項２】
従前のサンプリングデータが格納された第１の格納手段と、
前記サンプリング手段により画像データがサンプリングできない画素が存在する場合に当該サンプリングができない画素の位置を特定する特定手段と、
前記第１の格納手段に格納されている従前のサンプリングデータと、前記特定手段により特定された当該サンプリングができない画素とを比較した結果を基に、該画素におけるデータを補完する補完手段と、
を更に備えることを特徴とする請求項１記載の画像読取装置。
【請求項３】
前記補正手段のシェーディング補正に使用するシェーディング補正係数が格納された第２の格納手段を更に備え、
前記判定手段は、前記特異点画素であるかどうかを判定する際に、前記第２の格納手段に格納されているシェーディング補正係数を使用することを特徴とする請求項１又は２記載の画像読取装置。
【請求項４】
原稿を含む読取対象の画像を読み取る読取手段を備えた画像読取装置の制御方法であって、
前記読取手段により読み取った画像データに対してシェーディング補正を行う補正工程と、
前記読取手段により読み取った画像データと閾値とを比較し、前記閾値の範囲外の画素を特異点画素として判定する判定工程と、
前記判定工程において使用する前記閾値を画素毎に設定可能な設定工程と、
前記判定工程により特異点画素と判定された画素のデータを該特異点画素の周囲のデータから補間する補間工程と、
前記判定工程により特異点画素と判定されない画素のデータを有効なシェーディング補正用データとして採用するサンプリング工程と、
前記読取手段により読み取った画像データに対する前記サンプリング工程のサンプリング開始から終了までの有効サンプリングライン数を制御する制御工程と、
を有することを特徴とする制御方法。
【請求項５】
請求項４記載の画像読取装置の制御方法をコンピュータに実行させるためのコンピュータ可読のプログラムコードを有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シェーディング補正を行う画像読取装置及び画像読取装置の制御方法に関する。
【背景技術】
【０００２】
一般に、ＣＣＤやＣＭＯＳなどの読取センサにより原稿画像の読み取りを行う画像読取装置においては、シェーディングと呼ばれる画像の本来の輝度と読取信号との間で不整合が生じる。即ち、読取センサを構成する読取素子の画素毎の読取特性ばらつきや、原稿を照射する光源の主走査方向の光量分布の不均一性、原稿の反射光を読取センサに集光する集光レンズの歪み特性などの影響で、不整合が生じる。
【０００３】
このような読取画像の不整合を補正し、画像全体が面内で平均的に一様な明るさとなるように補正する方法として、シェーディング補正が一般的に行われている。シェーディング補正における均一な明るさの目標値とする対象物として、色度が管理された白色基準部材を画像読取装置内に設置し、原稿の画像読取開始前に当該部材を読み取り、その読取結果からシェーディング補正係数を生成するという方法が一般的に採られる。
【０００４】
ところで、原稿の表面を読み取る第１の読取手段と原稿の裏面を読み取る第２の読取手段を備えた画像読取装置においては、原稿を一度搬送するだけで原稿の表裏両面を読み取ることができる。このような原稿両面読取機能を有する画像読取装置においては、第２の読取手段が画像読取装置の原稿搬送部内に設置されることも多く、白色基準部材を設置するスペースを確保することが困難となる。そのため、白色基準原稿を用いてシェーディング補正用データを生成する方法が採られることが多い。
【０００５】
従来、上記のような第１の読取手段と第２の読取手段を備えた画像読取装置において下記のような第２白基準データを作成する方法が提案されている（例えば、特許文献１参照）。特許文献１に記載の装置では、第２の白色基準部材を第２の読取手段により読み取って得られた初期白基準データと、第２の読取手段により読み取って得られた原稿の地肌データから、第２白基準データを作成する。本方法を採用することで、画像読取装置内に第２の白色基準部材を設置する位置的な制約を緩和でき、装置構成を簡素にすることができる。
【０００６】
また、特許文献２に記載の装置では、初期第２白色基準部材読取データと白色基準原稿データとの同一位置画素同士の差分から白色度補正データを生成し、この白色度補正データから第２シェーディング補正用データを生成する。ここで、初期第２白色基準部材読取データは、原稿の第２面を読み取る第２の読取手段の対向面に配置された第２白色基準部材を読み取ったデータである。また、白色基準原稿データは、可動式の第１の読取手段により第１白色基準部材と同程度の白色度を有する材質の白色基準原稿を読み取ったデータである。
【０００７】
さらに、特許文献３に記載の装置では、工場出荷時またはメンテナンス時に白色基準チャートを読み取って得た第１基準画像データと白色基準板を読み取って得た第２基準画像データを記憶しておく。装置の電源投入時から原稿画像読取前までの間に白色基準板を読み取って得た第３基準画像データを第１基準画像データで乗算するとともに、第２基準画像データで除算してシェーディング補正用の補正値を決定する。本方法により、シェーディング補正を実施する度に白色基準チャートを読み取る必要がなくなり、任意のタイミングで正確なシェーディング補正ができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−２０７７９０号公報
【特許文献２】特開２００６−２１７４８１号公報
【特許文献３】特開２０１１−１５１４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の装置においては、原稿の地肌状況によりシェーディング補正用データが大きく変動する可能性がある。つまり、原稿の文字や図などの領域を読み取ってしまった場合などには、ゴミやスジの箇所もシェーディング補正用データの一部となってしまう。ここで、上記の場合以外に、色紙のように原稿の地肌が白色ではない場合や、画像読取装置の原稿搬送部内に滞留する紙粉などのゴミが原稿の搬送に伴い原稿に付着し、原稿読取位置にゴミが固着あるいは浮遊することが原因でスジが発生した場合などがある。そのため、結果としてシェーディング補正の目的である均一な明るさの目標値とする正確なシェーディング補正用データが取得できないという問題がある。
【００１０】
また、特許文献２に記載の装置においては、白色基準原稿を第１の読取手段により読み取る位置と第２の読取手段により読み取る位置の一致を取ることは、原稿の搬送精度や装置を構成する部材のばらつきや経年変化の影響を考慮すると困難である。さらに、第１及び第２の読取手段は画像読取装置の原稿搬送部内の任意の位置に取り付けられるため、各々の読取位置におけるゴミの付着状況は異なるので、発生するゴミに起因したスジの位置や本数も異なってくる。
【００１１】
従って、図１７に示すように、白色基準原稿の搬送中に次のようなスジが発生したような場合には、正確なシェーディング補正用データが生成できない。即ち、原稿表面を読み取る第１の読取手段と原稿裏面を読み取る第２の読取手段とで異なる位置に上記のようなゴミに起因したスジが発生したような場合には、正確なシェーディング補正用データが生成できない。図１７は、浮遊ゴミスジと固定ゴミスジが表面画像と裏面画像とで異なる位置に発生した例である。
【００１２】
また、特許文献３に記載の装置においては、シェーディング補正用データの算出の根拠となる第１基準画像データ自体が、白色基準チャートの汚れやチャート搬送中に発生するゴミに起因したスジの影響を受けていると、次のような問題がある。即ち、その後の任意のタイミングでシェーディング補正用データを生成できるとしても、正確なシェーディング補正は望めないことになってしまうという問題がある。
【００１３】
つまり、上記のいずれの特許文献で開示されている方法であっても、使用する白色基準チャート及び画像読取装置内の汚れ状態に対して厳密な管理を実施した上でシェーディング補正用データの取得を行わないと、その効果が大幅に低減してしまうことになる。
【００１４】
本発明の目的は、白色基準チャート自体の汚れやチャート搬送に伴い発生するゴミに起因したスジなどの影響を低減し、正確なシェーディング補正用データの生成を可能とした画像読取装置及び制御方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明は、原稿を含む読取対象の画像を読み取る読取手段と、前記読取手段により読み取った画像データに対してシェーディング補正を行う補正手段と、前記読取手段により読み取った画像データと閾値とを比較し、前記閾値の範囲外の画素を特異点画素として判定する判定手段と、前記判定手段において使用する閾値を画素毎に設定可能な設定手段と、前記判定手段により特異点画素と判定された画素のデータを該特異点画素の周囲のデータから補間する補間手段と、前記判定手段により特異点画素と判定されない画素のデータを有効なシェーディング補正用データとして採用するサンプリング手段と、前記読取手段により読み取った画像データに対する前記サンプリング手段のサンプリング開始から終了までの有効サンプリングライン数を制御する制御手段と、を備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、白色基準チャート自体の汚れやチャート搬送に伴い発生するゴミに起因したスジなどの影響を低減し、高精度なシェーディング補正用データの生成を可能とすることができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る画像読取装置の構成例を示す構成図である。
【図２】画像読取装置の読取制御基板及び信号処理基板の構成例を示すブロック図である。
【図３】画像読取装置のシェーディング補正処理系の構成例を示す図である。
【図４】シェーディング補正用データサンプリングの処理手順を示すフローチャートである。
【図５】シェーディング補正用データの取得タイミング等を示すタイミングチャートである。
【図６】面内平均値算出の処理手順を示すフローチャートである。
【図７】ゴミ判定閾値算出サンプリングの処理手順を示すフローチャートである。
【図８】データサンプリングの処理手順を示すフローチャートである。
【図９】（ａ）はゴミ判定閾値サンプリング時のゴミスジ影響を示す図、（ｂ）は（ａ）のゴミスジ影響を低減した図である。
【図１０】（ａ）はデータサンプリング時の閾値を示す図、（ｂ）は（ａ）の一部を拡大した図である。
【図１１】図５のデータサンプリング領域を示す図である。
【図１２】図７のステップＳ７０２における特異点判定を説明する図である。
【図１３】図８のステップＳ８０２におけるゴミ判定閾値を説明する図である。
【図１４】図８のステップＳ８０１におけるゴミ判定閾値の変更を説明する図である。
【図１５】隣接画素からのデータ補間を説明する図である。
【図１６】一般的なシェーディング補正処理を示すフローチャートである。
【図１７】表面画像及び裏面画像にゴミに起因したスジが発生した様子を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面を参照しながら詳細に説明する。
【００１９】
＜画像読取装置の構成＞
図１は、本実施形態に係る画像読取装置の構成例を示す構成図である。
【００２０】
図１において、画像読取装置は、読取対象（原稿、白色基準チャートなど）の読み取りを行うリーダユニット１０１、読取対象を搬送する自動原稿搬送部（Auto Document Feeder：以下ＡＤＦ）から構成されている。リーダユニット１０１は、光源１２１、１２２、反射ミラー１２３、１２４、１２５、結像レンズ１２６、ラインセンサ１２７、信号処理基板１２８などを備えている。ＡＤＦ１０２は、原稿トレイ１０４、幅規制板１０５、分離パッド１０７、各種ローラ、白色対向部材１１９、１２９、ラインセンサ１３７、原稿排紙トレイ１１８などを備えている。
【００２１】
まず、原稿の搬送、原稿読み取り、排紙の流れを説明する。原稿束１０３は、ＡＤＦ１０２の原稿トレイ１０４に載置され、幅規制板１０５によって原稿に当接され、原稿の斜行搬送が抑制される。原稿束１０３は、ピックアップローラ１０６により分離部へ配送される。分離部においては、分離パッド１０７と分離ローラ１０８により、原稿束１０３の最上紙から1枚ずつ分離を行う。分離された1枚の原稿は、第１レジストローラ１０９により原稿の斜行搬送が修正され、第２レジストローラ１１０、第１搬送ローラ１１１、第２搬送ローラ１１２、第３搬送ローラ１１３の順に搬送される。
【００２２】
原稿が第２搬送ローラ１１２、第３搬送ローラ１１３を通過する際に、原稿は第一読取位置上を通過する。第一読取位置を通過した原稿の表面の画像情報はラインセンサ１２７により読み取られる。原稿は第３搬送ローラ１１３を通過した後、第４搬送ローラ１１４、第５搬送ローラ１１５によって搬送され、この際、原稿が第二読取位置上を通過する。第二読取位置を通過した原稿の裏面の画像情報はラインセンサ１３７により読み取られる。その後、原稿は第６搬送ローラ１１６、排紙ローラ１１７によって搬送され、原稿排紙トレイ１１８に排紙される。
【００２３】
次に、原稿の表面読取動作について説明する。第一読取位置に存在する白色対向部材１１９と読取ガラス１２０の間を原稿が通過中、リーダユニット１０１の光源１２１、１２２により原稿を照射し、その反射光を反射ミラー１２３、１２４、１２５により結像レンズ１２６へ導く。結像レンズ１２６により収束された光は、ＣＣＤなどの撮像素子をライン上に配置したラインセンサ１２７（読取手段）に結像される。結像された光信号は、ラインセンサ１２７により電気信号に変換され、信号処理基板１２８によってデジタル信号に変換された後、画像処理が行われる。
【００２４】
次に、原稿の裏面読取動作について説明する。第二読取位置に存在する白色対向部材１２９と裏面読取ガラス１３０の間を原稿が通過中、ＡＤＦ１０２内の光源１３１、１３２により原稿を照射し、その反射光を反射ミラー１３３、１３４、１３５により結像レンズ１３６へ導く。結像レンズ１３６により収束された光は、原稿表面と同様にＣＣＤなどの撮像素子をライン上に配置したラインセンサ１３７に結像される。結像された光信号は、ラインセンサ１３７により電気信号に変換され、信号処理基板１３８によってデジタル信号に変換された後、画像処理が行われる。
【００２５】
原稿を搬送しながら画像を読み取る流し読み動作において、原稿の表面を読み取る場合と、原稿を読取ガラス１２０の上に載置して読み取る圧板読み動作の場合とにおいて、共通の読取ユニットを用いる構成が一般的である。圧板読み動作の際には、光源１２１、１２２と反射ミラー１２３を図１の左から右方向に移動させることにより、ラインセンサ１２７は読取ガラス１２０上に載置された原稿を読み取る。一方、流し読み動作で原稿の表面を読み取る場合は、読み取り位置が第一読取位置になるように、光源１２１、１２２と反射ミラー１２３を移動させ、その後、ラインセンサ１３７は第一読取位置に搬送される原稿を読み取る。
【００２６】
一方、流し読み動作において原稿の裏面を読み取るユニットは、特別移動する必要がないことから、ＡＤＦの筐体に固定して取り付けられている。
【００２７】
＜画像読取装置の制御系の構成＞
図２は、画像読取装置の読取制御基板及び信号処理基板の構成例を示すブロック図である。
【００２８】
図２において、信号処理基板１２８には、ラインセンサ１２７、アナログ処理回路２０８、ＡＤコンバータ２０９などが搭載される。原稿に光源から光を照射した際の反射散乱光が図１に示した反射ミラー等の光学系を通してラインセンサ１２７により光電変換され、光電変換されたアナログ画像信号に対して、アナログ処理回路２０８によりオフセットやゲインの調整が行われる。アナログ処理回路２０８の後段のＡＤコンバータ２０９においては、アナログ処理回路２０８により調整されたアナログ画像信号がデジタル画像信号に変換される。変換されたデジタル画像信号は、読取制御基板２００の画像処理ＡＳＩＣ２０２に入力される。
【００２９】
読取制御基板２００には、ＣＰＵ２０１、画像処理ＡＳＩＣ（特定用途向けＩＣ）２０２、モータドライバ２０３、ＳＤＲＡＭ２０４、フラッシュメモリ２０５などが搭載される。図１では図示しない画像読取装置内の各種センサ２０７の入力信号及び各種モータ２０６の制御出力信号は、画像処理ＡＳＩＣ２０２あるいはＣＰＵ２０１により制御される。ＣＰＵ２０１からは、画像処理ＡＳＩＣ２０２の各種動作設定などを実施する。また、ＣＰＵ２０１は、制御プログラムに基づき後述の各フローチャートに示す処理を実行する。なお、操作部２１０は、画像読取装置に対する各種設定や、ＣＰＵ２０１の制御に基づく各種メッセージの表示が可能である。
【００３０】
ＣＰＵ２０１から各種動作設定を受けた画像処理ＡＳＩＣ２０２は、ＡＤコンバータ２０９から入力されるデジタル画像信号に対して各種の画像処理を実施する。その画像処理の際には、画像処理ＡＳＩＣ２０２は、画像信号の一時保管などを実施するためにＳＤＲＡＭ２０４とも各種制御信号や画像信号の受け渡しを実施する。また、画像処理ＡＳＩＣ２０２の各種設定値や画像処理パラメータの一部は、フラッシュメモリ２０５に格納され、必要に応じて格納されたデータやパラメータが読み出されて使用される。
【００３１】
ＣＰＵ２０１からの指令あるいは画像処理ＡＳＩＣ２０２へのセンサ信号の入力をトリガにして、画像処理が開始されたり、モータドライバ２０３に各種モータ２０６の制御パルス出力を行ったりすることにより、一連の画像読取動作を実施する。なお、画像処理ＡＳＩＣ２０２により各種画像処理が行われた後の画像データは、読取制御基板２００の後段のメイン制御基板（不図示）に受け渡される。
【００３２】
＜シェーディング補正処理系の構成＞
図３は、画像読取装置の画像処理ＡＳＩＣ２０２内部に存在する画像処理部３００のうちシェーディング補正処理を実施する回路の構成例を示すブロック図である。
【００３３】
図３において、画像処理部３００は、オフセット演算回路３０１、ゲイン演算回路３０２、特異点判定回路３０３、特異点置換回路３０４、フィルタ演算回路３０５を備えている。ここで、画像処理部３００は、読み取った画像データに対してシェーディング補正を行う補正手段として機能する。オフセット演算回路３０１は、ラインセンサ１２７の暗時出力（Ｒ、Ｇ、Ｂ）の画素毎のばらつきを補正する。ゲイン演算回路３０２は、光源１２１の主走査方向の配光分布や結像レンズ１２６に起因する周辺部の光量低下などが重畳されたラインセンサ１２７の明時出力の画素毎のばらつきを補正する。
【００３４】
特異点判定回路３０３は、読取画像に対して所定の閾値との比較を行い、閾値を超える画素あるいは下回る画素を特異点画素として判定する。ここで、特異点判定回路３０３は、読取対象から読み取った画像データと閾値とを比較し、前記閾値によって規定される範囲の外の画素（閾値を超える画素あるいは下回る画素：閾値の範囲外の画素）を特異点画素として判定する。また、特異点判定回路３０３は、閾値を画素毎に設定可能な設定手段として機能する。また、特異点判定回路３０３は、特異点画素であるかどうかを判定する際に、ＳＲＡＭ３０８（第２の格納手段）に格納されているシェーディング補正係数を使用する。
【００３５】
特異点置換回路３０４は、特異点判定回路３０３が判定した結果情報を受け取り、当該特異点画素に対して所定の方法によりデータを置換する。ここで、特異点置換回路３０４は、特異点判定回路３０３により特異点画素と判定された画素のデータを該特異点画素の周囲のデータから補間する。また、特異点置換回路３０４は、フラッシュメモリ２０５（第１の格納手段）に格納された従前のサンプリングデータと、画像データがサンプリングができない画素とを比較した結果を基に、該画素におけるデータを補完する補完手段として機能する。フィルタ演算回路３０５は、特異点判定回路３０３の出力信号に対してフィルタ演算処理を行う。
【００３６】
動作制御部３０６は、画像処理部３００内の各演算回路に対する各種演算動作のＯＮ／ＯＦＦや各種パラメータの設定、ＳＲＡＭ制御部３０７に対する動作設定などを実施する。ここで、動作制御部３０６は、特異点判定回路３０３、ＳＲＡＭ制御部３０７等の各々の動作開始タイミングと、データのサンプリング開始から終了までの有効サンプリングライン数を制御する制御手段として機能する。
【００３７】
ＳＲＡＭ制御部３０７は、動作制御部３０６からの指令に基づき画像処理ＡＳＩＣ２０２内部に存在するＳＲＡＭ３０８へのデータライト実行、データリード実行を行う。ここで、ＳＲＡＭ制御部３０７は、特異点判定回路３０３により特異点画素と判定されない画素のデータを有効なシェーディング補正用データとして採用するサンプリング手段として機能する。画像処理部３００内の各種演算回路は、ＳＲＡＭ制御部３０７に対しても接続されている。ＳＲＡＭ制御部３０７は、ＳＲＡＭ３０８に格納された画素毎のオフセット係数やゲイン係数、ゴミ判定閾値、シェーディング補正係数などを必要に応じてＳＲＡＭ３０８から読み出し、当該読み出し値と入力画像信号から必要な演算を実施する。
【００３８】
オフセット演算回路３０１においては、下記の式（１）に基づき入力画像信号からオフセット値が保存されているＳＲＡＭ３０８内のデータを全ての主走査方向の画素（主走査画素）ごとに減算する。
【００３９】
O_DATA[x]  =  I_DATA[x] − BW_RAM_DATA[x]  …（１）
式（１）において、xは主走査位置、O_DATAはオフセット演算回路３０１からの出力データ、I_DATAはオフセット演算回路３０１への入力データをそれぞれ示している。また、BW_RAM_DATAはオフセット値が保存されているＳＲＡＭ３０８内のデータを示している。BW_RAM_DATAは、ラインセンサ１２７の出力をＡＤ変換した後の暗時出力データを複数ラインに亘って全画素分サンプリング加算し、その結果を取得したライン数により平均化したデータであり、下記の式（２）により求めることができる。
【００４０】
BW_RAM_DATA [x]  ＝  サンプリング加算データの平均値[x]−BW_TARGET  …（２）
式（２）において、BW_TARGETは暗時出力データのターゲット値である。本処理により、入力画像データの暗部側（輝度値が小さい方）の画素毎の不均一性を除去している。
【００４１】
ゲイン演算回路３０２においては、下記の式（３）に基づき、入力画像信号に対しゲイン値が保存されているＳＲＡＭ３０８内のデータを全ての主走査画素ごとに乗算する。
【００４２】
O_DATA[x]  =  I_DATA[x] × WH_RAM_DATA[x]  …（３）
式（３）において、x、O_DATA、I_DATAの意味は式（１）と同じであり、WH_RAM_DATAはゲイン値が保存されているＳＲＡＭ３０８内のデータをそれぞれ示している。WH_RAM_DATAは、ラインセンサ１２７の出力をＡＤ変換した後の明時出力データを複数ラインに亘って全画素分サンプリング加算し、その結果を取得したライン数により平均化したデータであり、下記の式（４）により求めることができる。
【００４３】
WH_RAM_DATA [x]  ＝  SHD_TARGET÷サンプル加算データの平均値[x]  …（４）
式（４）において、SHD_TARGETはシェーディング補正のターゲット値である。本処理により、入力画像データの明部側（輝度値が高い方）の画素毎の不均一性を除去している。
【００４４】
特異点判定回路３０３においては、下記の式（５）及び式（６）に基づき、入力画像信号に対して特異点判定閾値との比較演算を全ての主走査画素毎に行う。
【００４５】
OVER_FLAG  =  1  ＠I_DATA[x] ＞ OVER_TH[x]    …（５）
=  ０  ＠I_DATA[x] ≦ OVER_TH[x]
UNDER_FLAG  =  1  ＠I_DATA[x] ＜ UNDER_TH[x]    …（６）
=  ０  ＠I_DATA[x] ≧ UNDER_TH[x]
式（５）及び式（６）において、x、I_DATAの意味は式（１）と同じであり、OVER_THとUNDER_THはそれぞれ特異点判定閾値を示している。OVER_THよりも入力データが大きい場合にはOVER_FLAG=1となり、UNDER_THよりも入力データが小さい場合にはUNDER_FLAG=1となる。
【００４６】
なお、特異点判定閾値は、全ての画素で一律の閾値とすることもできるが、画素毎に特異点判定閾値を変更することにより、画素ばらつきに対応したより精度の高い判定をすることができる。画素毎に特異点判定閾値を変更する方法としては、ＳＲＡＭ３０８内に特異点判定閾値の前提となる画素毎のデータを格納しておき、この画素毎のデータに対して、所定の輝度差をもって特異点判定閾値とする。例えば、主走査位置x=10、11のＳＲＡＭ格納データがそれぞれ180、185の場合、上限閾値をそれぞれ190、195とし、下限閾値をそれぞ170、175とする。なお、出力データO_DATAはI_DATAをそのままスルーさせたものである。本処理により、入力画像データの特異点を判定する。
【００４７】
特異点置換回路３０４においては、特異点判定回路３０３の特異点判定結果に基づき、特異点と判定された画素の連続性を監視し、その連続性が途切れるまで、つまり特異点の幅が確定した段階で、特異点画素部分に対する置換処理を実施する。置換処理の方法としては、隣接する特異点画素ではない画素のデータで単純に置き換える方法、特異点の連続幅に応じて特異点領域の周辺画素で特異点ではない画素データを２画素以上の複数画素分のデータから線形に補間する方法などがある。特異点の画素幅に応じてどちらかの方法を選択的に適用してもよい。
【００４８】
例えば、特異点画素幅が１０画素未満の場合には周辺画素からの線形補間を行い、特異点画素幅が１０画素を超える場合には単純な置換を行うという形で、上記方法を選択的に適用することもできる。本処理により、入力画像データの特異点を除去したデータを取得することができる。
【００４９】
＜通常のシェーディング補正処理＞
本実施形態の説明の前提として、一般的に行われるシェーディング補正処理について図１６のフローチャートを基に説明する。なお、通常のシェーディング補正処理においては図３の特異点判定回路３０３及び特異点置換回路３０４の処理は使用しない。
【００５０】
図１６は、一般的なシェーディング補正処理を示すフローチャートである。
【００５１】
図１６において、画像読取装置のＣＰＵ２０１は、光源１２１及び１２２あるいは光源１３１及び１３２を消灯する（ステップＳ１６０１）。光源１２１及び１２２は、第一読取位置において原稿表面を読み取る際に原稿を照射する第１の読取手段用光源であり、光源１３１及び１３２は、第二読取位置において原稿裏面を読み取る際に原稿を照射する第２の読取手段用光源である。次に、ＣＰＵ２０１は、図３の各演算回路に対して動作制御部３０６から黒シェーディング補正用の設定を行う（ステップＳ１６０２）。具体的には、オフセット演算回路３０１、ゲイン演算回路３０２、特異点判定回路３０３、特異点置換回路３０４のいずれに対しても処理も行わない設定つまり処理スルー設定を行う。
【００５２】
次に、ＣＰＵ２０１は、黒シェーディング補正係数を生成するためのデータのサンプリングを行う（ステップＳ１６０３）。具体的には、ステップＳ１６０２における設定に基づき、ＳＲＡＭ制御部３０７により特異点判定回路３０３の出力データをＳＲＡＭ３０８に格納する。このＳＲＡＭ３０８に格納されたデータを上記式（２）に基づき変換したデータを、黒シェーディング補正係数とする。前記変換により求めた黒シェーディング補正係数は、黒シェーディング補正に使用される係数であり、格納手段としてのＳＲＡＭ３０８に格納される。
【００５３】
次に、ＣＰＵ２０１は、ステップＳ１６０３において生成した黒シェーディング補正係数データに基づき、入力データに対して黒シェーディング補正を実行する（ステップＳ１６０４）。具体的には、上記式（１）に基づき、入力画像データとＳＲＡＭ３０８に格納されたデータから、黒シェーディング補正を実施した画像データを得る。次に、ＣＰＵ２０１は、ステップＳ１６０１において消灯した光源を点灯する（ステップＳ１６０５）。
【００５４】
次に、ＣＰＵ２０１は、ステップＳ１６０２と同様に、図３の各演算回路に対して動作制御部３０６から白シェーディング補正用の設定を行う（ステップＳ１６０６）。具体的には、オフセット演算回路３０１に対しては処理を実施、その他のゲイン演算回路３０２、特異点判定回路３０３、特異点置換回路３０４に対しては処理も行わない設定つまり処理スルー設定を行う。
【００５５】
次に、ＣＰＵ２０１は、白シェーディング補正係数を生成するためのデータのサンプリングを行う（ステップＳ１６０７）。具体的には、ステップＳ１６０６における設定に基づき、ＳＲＡＭ制御部３０７により特異点判定回路３０３の出力データをＳＲＡＭ３０８に格納する。このＳＲＡＭ３０８に格納されたデータを上記式（４）に基づき変換したデータを、白シェーディング補正係数とする。前記変換により求めた白シェーディング補正係数は、白シェーディング補正に使用される係数であり、格納手段としてのＳＲＡＭ３０８に格納される。
【００５６】
次に、ＣＰＵ２０１は、ステップＳ１６０７において生成した白シェーディング補正係数データに基づき、入力データに対して白シェーディング補正を実行する。具体的には、上記式（３）に基づき、入力画像データとＳＲＡＭ３０８に格納されたデータから、白シェーディング補正を実施した画像データを得る。以上の処理フローにより、シェーディング補正が実施される。
【００５７】
＜紙シェーディング補正アルゴリズムの概要＞
図３に示した画像読取装置の画像処理ＡＳＩＣ２０２の各種演算回路及びＣＰＵ２０１による制御により、本実施形態に係るシェーディング補正用データの取得を実施するが、まず、その処理手順の概要を説明し、続いて具体的な処理手順を詳細に説明する。
【００５８】
図４は、本実施形態のシェーディング補正用データサンプリングの処理手順を示すフローチャートである。
【００５９】
図４において、画像読取装置のＣＰＵ２０１は、面内平均値を算出する（ステップＳ４０１）。面内平均値算出の詳細は図６のフローチャート等に基づき説明する。ステップＳ４０２以降の処理については図６のフローチャートの説明後に後述する。シェーディング補正用データのサンプリングの処理手順としては、大別すると次の３つのステップがある。
（１）面内平均値を算出するためのデータサンプリング
（２）ゴミ判定閾値を算出するためのデータサンプリング
（３）シェーディング補正用データを作成するためのデータサンプリング
【００６０】
まず、（１）の面内平均値を算出するためのデータサンプリングは、これからサンプリングする用紙の状態を把握するために行う。具体的には、シェーディング補正のための基準データとしては不適当で以降の処理を行う実益が少ないと想定される場合に、エラーを通知することにより、画像読取装置の操作者に使用する用紙の交換、画像読取装置の状態確認などを促すために算出される。ここで、上記の基準データとしては不適当で以降の処理を行う実益が少ないと想定される場合としては、読み取った輝度ＲＧＢの色間のバランスが良くない、所定値以上の明るいデータしか得られない、あるいは、所定値以下の暗いデータしか得られないなどがある。
【００６１】
次に、（２）のゴミ判定閾値を算出するためのデータサンプリングは、（３）のシェーディング補正用データを作成するためのデータサンプリング取得に先立ち、データサンプリングの基準となる範囲を限定するために算出される。図９（ａ）に示すものはゴミ判定閾値を算出する際にサンプリングした用紙の画像データであり、主走査方向の一部を抜粋したものである。図中、横軸に主走査画素位置、縦軸に読取輝度を示しており、上限閾値及び下限閾値は特異点（ゴミ）として判定するための基準である。図中、主走査画素位置の２７５０画素目付近で、読取輝度が１１８程度まで低下している箇所があり、この部分は下限閾値を下回っているため、特異点として判定される。
【００６２】
もし、この箇所を特異点として考慮しない場合、（３）のシェーディング補正用データを作成するためのデータサンプリングにおいては、この特異点の輝度を基準としてデータがサンプリングされる。結果として特異点付近のデータを積極的に取得することになってしまう。
【００６３】
上述したように、読取センサの画素毎の特性ばらつきや光源の配光分布、集光レンズの特性などにより、同じ白色度のデータであっても主走査方向で一様な輝度として読み取られることはない。しかし、図９（ａ）の２７５０画素付近に示されるような急激な変動を示すのは、上記のような画素毎の読取値変動の要因よりも、読み取ったデータに異常がある、つまり読取対象側のデータに特異点などが存在している可能性が高い。
【００６４】
このような特異点の影響を低減するために、次の処理を行う。即ち、閾値を上回るあるいは閾値を下回ると判定された箇所の読取データは、特異点として判定されなかった隣接画素のデータで置き換える置換処理あるいは隣接画素からの線形補間処理により、暫定的に判定閾値の範囲内に存在するように処理を行う。線形補間処理後の例を図９（ｂ）に示す。
【００６５】
ここで、暫定的に判定閾値の範囲内に存在するとしたのは、上述のように画素毎に読取特性がばらつくため、本来のシェーディング補正用のデータは均一な形で読み取られることはない。しかし、隣接画素からの線形補間処理を行うと、線形補間処理を行った箇所の周辺は局所的に均一な状態となってしまう。そのため、シェーディング補正用データとしては、局所的に画素毎に読取特性のばらつきが反映されない状態となっている。
【００６６】
従って、次のステップ（３）におけるシェーディング補正用データを作成するためのデータサンプリングにおいて、（２）のゴミ判定閾値に基づいて再度データを取得する。これにより、ゴミの影響を除いた状態を保ちつつ、画素毎に読取特性のばらつきをより正確に反映した状態のデータを取得することになる。
【００６７】
このように作成したゴミ判定閾値を基にしてデータをサンプリングすることにより、シェーディング補正に適したデータを取得することができる。即ち、白色基準となるチャートあるいは用紙に存在するゴミ及び用紙の搬送に伴い発生するゴミに起因したスジの影響を低減した状態で、シェーディング補正に適したデータを取得することができる。
【００６８】
（３）のシェーディング補正用データを作成するためのデータサンプリングは、（２）において作成したゴミ判定閾値を基準として、所定範囲内に存在するデータのみをサンプリングすることにより行う。つまり、（２）のゴミ判定閾値からの所定範囲内に存在するデータは、ゴミの影響がほとんどない状態の読取データとして判断してシェーディング補正用データとして採用（サンプリング）するという処理を行う。また、（２）のゴミ判定閾値からの所定範囲内に存在しないデータは、ゴミ影響を受けた状態の読取データと判断してシェーディング補正用データとしては採用（サンプリング）しないという処理を行う。
【００６９】
図１０（ａ）は、図９（ｂ）に示したゴミ判定閾値となる輝度の±１０％の範囲内にあるデータのみをサンプリングの対象とする場合の、データサンプリング時の閾値を示す図である。また、図１０（ｂ）は、図１０（ａ）の一部を拡大した図である。ここで、図１０（ａ）及び（ｂ）においてゴミ判定閾値と示しているのは、上記ステップ（２）において算出したゴミ判定閾値であり（これは図９（ｂ）において示したものに該当する）、上限閾値及び下限閾値は、当該ゴミ判定閾値を基に算出した値である。
【００７０】
図１０に示すようなデータサンプリング範囲を設定することにより、各画素の読取特性ばらつきを反映した状態でデータを取得できる。そのため、（２）のゴミ判定閾値算出の際に、ゴミの影響で隣接画素データにより補間した画素についても、ゴミの影響を除いた状態を保ちつつ、画素毎に読取特性のばらつきをより正確に反映した状態のデータ取得が可能となる。なお、図１０（ｂ）に示すように、画素毎の読取特性ばらつきを考慮しても隣接画素とは大きくても１０レベル程度の差しか存在しないため、データのサンプリング範囲をゴミ判定閾値となる輝度の±１０レベルのように設定してもよい。
【００７１】
＜紙シェーディング補正の動作フロー＞
図５は、本実施形態のシェーディング補正用データの取得タイミング等を示すタイミングチャートである。以下、図４及び図５を主に参照しながら、適宜詳細な図面（図６〜図８など）を用いて処理手順を説明する。
【００７２】
図５において、画像処理ＡＳＩＣ２０２内部において生成された同期信号ｈｓｙｎｃｘ及びイネーブル信号ｈｅｎｂｘ、同期信号ｖｓｙｎｃｘ及びイネーブル信号ｖｅｎｂｘを、画像処理部３００が受け取る。ここで、同期信号ｈｓｙｎｃｘは主走査方向の画像の開始位置を示す信号、イネーブル信号ｈｅｎｂｘは主走査方向の画像有効範囲を示す信号である。また、同期信号ｖｓｙｎｃｘは副走査方向（用紙搬送方向）の画像の開始位置を示す信号、イネーブル信号ｖｅｎｂｘは副走査方向の画像有効範囲を示す信号である。これにより、画像の先端及び有効範囲を検知することができる。
【００７３】
シェーディング補正のためのデータを取得するのに用いる用紙５００の画像先端は同期信号ｖｓｙｎｃｘにより検知する。画像処理部３００内部のラインカウンタＶｃｎｔ（不図示）が動作し始めることで、副走査方向のデータ取得タイミングを生成する。
【００７４】
面内平均値算出用サンプリング開始位置５０１は、図４のフローチャートのステップＳ４０１の面内平均値算出の開始タイミングを示している。面内平均値算出サンプリングライン幅５０２は、面内平均値算出用サンプリング開始位置５０１からのデータサンプリングライン数を示している。上記ラインカウンタＶｃｎｔのカウントに基づいて、データのサンプリング開始及び終了のタイミングを知ることができる。面内平均値算出サンプリングライン幅５０２の範囲内において、主走査方向の全画素について用紙５００の画像データのサンプリング加算を実施し、最終的に面内平均値を算出する処理手順を図６のフローチャートに示す。
【００７５】
ここで、サンプリング加算の処理内容について説明しておく。画像データを格納する領域として、データ格納手段（例えばＳＲＡＭ等のメモリ）を用意しておき、１ライン進むごとにＳＲＡＭに格納されたデータに現在の画像データを加算して、再度ＳＲＡＭに格納するという処理である。例えば、主走査方向の１０００画素目の１ライン目のデータが２００であり、２ライン目のデータが２０５である場合、サンプリング加算すると４０５という結果になる。これを主走査方向の全画素について所定のライン数だけ繰り返すことになる。
【００７６】
なお、面内平均値算出用サンプリング開始位置５０１のカウント値に上記ラインカウンタＶｃｎｔが到達することにより、図６に示す処理手順に従い、動作制御部３０６が画像処理部３００に対して動作設定を行う。これにより、図６に示す以下の処理が開始される。
【００７７】
図６は、面内平均値算出の処理手順を示すフローチャートである。
【００７８】
図６において、画像読取装置のＣＰＵ２０１は、画像処理ＡＳＩＣ２０２を制御することにより、主走査方向の全画素について入力画像データのサンプリング加算を実施する（ステップＳ６０１）。次に、ＣＰＵ２０１は、面内平均値算出サンプリングライン幅５０２で設定されたライン分のサンプリング加算が実施されたか否かを判断する（ステップＳ６０２）。もし、所定のライン数までラインカウンタＶｃｎｔの値がカウントアップされていない場合は、ステップＳ６０１へ戻り、再度サンプリング加算を実施する。所定のライン数までサンプリング加算が終了している場合は、ステップＳ６０３へ移行する。
【００７９】
ＣＰＵ２０１は、上記ステップＳ６０１において実施したサンプリング加算結果を、面内平均値算出サンプリングライン幅５０２で設定されたライン数により除算する（ステップＳ６０３）。この除算により、主走査方向の全画素においてライン数分の平均値が算出される。ＣＰＵ２０１は、ステップＳ６０３の平均値算出が完了すると、全画素の平均値の加算を実施する（ステップＳ６０４）。
【００８０】
この加算は、用紙５００の中央部付近を連続で実施してもよいし、所定画素ごとに間欠で実施してもよい。例えば、５１２画素を一つのブロックとして、これを主走査方向の適宜の位置において４ブロック分加算するという方法がある。なお、用紙５００の端部は斜行や影の影響で正確なデータを取得できない可能性があるため、所定の画素位置から加算を開始し、所定の画素位置で加算を終了する方が望ましい。
【００８１】
次に、ＣＰＵ２０１は、予め指定された所定画素幅分まで加算が完了したか否かを確認する（ステップＳ６０５）。所定画素幅分の加算が完了していない場合には、ステップＳ６０４へ移行し、加算演算を継続する。所定画素幅分の加算が完了している場合には、ステップＳ６０６へ移行する。ＣＰＵ２０１は、ステップＳ６０４において加算された所定幅の加算値を、加算した画素幅により除算する（ステップＳ６０６）。この除算により、面内平均値が算出されることになる。
【００８２】
なお、この面内平均値演算は、画像読取装置の工場出荷時などに基準白色板等を使ってサンプリングした従前のシェーディング補正用データを基にシェーディング補正を行った状態で算出する。この従前のシェーディング補正用データは、図２のフラッシュメモリ２０５に示すように不揮発性メモリに格納されている。画像読取装置の電源投入時や読取モード切替時などに、フラッシュメモリ２０５に格納されたシェーディング補正用データを読み出して使用する。
【００８３】
図４に戻り、ＣＰＵ２０１は、上記図６で詳述したように面内平均値の算出が完了すると（ステップＳ４０１）、算出した面内平均値が所定範囲内の値であるか否かを確認する（ステップＳ４０２）。その確認の結果、面内平均値が所定範囲を逸脱した値である場合には、画像処理ＡＳＩＣ２０２からＣＰＵ２０１へエラー通知が行われ、ＣＰＵ２０１はエラー通知を受け取る（ステップＳ４０３）。以降の処理手順は実施せずにシェーディング補正用データの取得を中止する。このエラー通知を受けたＣＰＵ２０１は、必要に応じて操作部２１０にエラーメッセージを表示することもできる。
【００８４】
面内平均値が所定範囲を逸脱した値（異常な値）である場合として想定されるケースとしては、次のような場合が考えられる。即ち、用紙５００に色紙や白色度の極めて高い光沢紙、白色度の極めて低い再生紙などが使われた場合、読取ガラス１２０があまりにも汚れており正常な画像が読み込めない場合、ラインセンサ１２７の故障により正常な画像出力が得られない場合などである。いずれの場合も、図４に示すフローに従って以降の処理を行っても、正確なシェーディング補正用データの取得が望むことができない場合である。
【００８５】
上記ステップＳ４０２において面内平均値が所定範囲内の平均値であると判断した場合、ＣＰＵ２０１は、シェーディング補正用データのサンプリングに先立ち、ＡＤＦ１０２で搬送されるチャートや用紙を読み取った画像データ内に存在する特異点を検知する。さらに、ＣＰＵ２０１は、特異点を除去しながらデータをサンプリングするためのゴミ判定閾値算出用のデータサンプリングを実施する（ステップＳ４０４）。ステップＳ４０５以降の処理については図７のフローチャートの説明後に後述する。
【００８６】
なお、上記ステップＳ４０４の処理の開始タイミングは、ゴミ判定閾値算出用サンプリング開始位置５０３までラインカウンタＶｃｎｔがカウントアップすることで知ることができる。ゴミ判定閾値算出用サンプリングライン幅５０４は、ゴミ判定閾値算出用サンプリング開始位置５０３からのデータサンプリングライン数を示している。上記ラインカウンタＶｃｎｔのカウント値に基づいて、データのサンプリング終了タイミングを知ることができる。
【００８７】
ゴミ判定閾値算出用サンプリングライン幅５０４の範囲内において、全画素について用紙５００の画像データのサンプリング加算を実施し、最終的にゴミ判定閾値を算出する処理手順を図７のフローチャートに示す。
【００８８】
図７は、ゴミ判定閾値算出サンプリングの処理手順を示すフローチャートである。
【００８９】
図７において、画像読取装置のＣＰＵ２０１は、最終的なゴミ判定閾値を算出するための特異点判定閾値の設定を行う（ステップＳ７０１）。この特異点判定閾値は、少なくとも以下の３つのパターン（１）（２）（３）により設定することができる。
【００９０】
（１）図４のステップＳ４０１において算出した面内平均値に対する許容変動幅という形で設定する場合
例えば、面内平均値が輝度レベルで２００、特異点判定閾値を面内平均値±１５％と設定すると、特異点と判定されるのは、輝度レベル２３０を超える画素及び輝度レベル１７０を下回る画素となる。なお、この場合は、次のようにサンプリングすることになる。即ち、従前のシェーディング補正係数によりシェーディング補正した画像データに対し特異点判定をし、その結果を受けて図７のステップＳ７０５において特異点判定箇所の補間演算実施後のシェーディング補正されていないデータをサンプリングすることになる。
【００９１】
（２）従前のシェーディング補正係数によりシェーディング補正した画像データに対して、絶対的な輝度レベルとして許容変動幅という形で設定する場合
例えば、輝度レベルにおいて上限を２１０、下限を１７０と設定すると、特異点と判定されるのは、輝度レベル２１０を超える画素及び輝度レベル１７０を下回る画素となる。なお、この場合も、次のようにサンプリングすることになる。即ち、従前のシェーディング補正係数によりシェーディング補正した画像データに対し特異点判定をし、その結果を受けて図７のステップＳ７０５において特異点判定箇所の補間演算実施後のシェーディング補正されていないデータをサンプリングすることになる。
【００９２】
（３）シェーディング補正されない画像データに対して、絶対的な輝度レベルとして許容変動幅という形で設定する場合
例えば、輝度レベルにおいて上限を２００、下限を１００と設定すると、特異点と判定されるのは、輝度レベル２００を超える画素及び輝度レベル１００を下回る画素となる。なお、この場合、シェーディング補正されていない画像データに対して閾値との比較演算を行うことになるため、特に光量の低下が顕著な主走査方向の端部位置の画素は特異点と判定される可能性が高くなる。従って、主走査方向の特異点判定開始位置及び終了位置を設定するなどの対応が必要となる。
【００９３】
次に、ＣＰＵ２０１は、上記ステップＳ７０１において設定した特異点判定閾値に従い、特異点判定回路３０３により特異点の判定を行う（ステップＳ７０２）。この特異点判定処理は、図３の特異点判定回路３０３において、式（５）及び（６）に基づき、入力画像信号に対して特異点判定閾値との比較演算を全ての主走査画素に対して行う。特異点判定回路３０３により特異点と判定された場合には、特異点と判定された画素に対してゴミフラグが立つという形で特異点置換回路３０４へ通知する（ステップＳ７０３）。特異点と判定されない場合には、特異点と判定されない画素に対してゴミフラグが立たないという形で特異点置換回路３０４へ通知する（ステップＳ７０４）。
【００９４】
次に、ＣＰＵ２０１は、ゴミフラグを受け取った特異点置換回路３０４に対して、特異点画素の補間処理を実施させる（ステップＳ７０５）。特異点画素の補間処理の方法については、上述の通り、単純な置換処理による方法あるいは隣接画素からの線形補間処理による方法である。なお、ステップＳ７０２において特異点と判定されずゴミフラグが立たない画素については、ステップＳ７０５の特異点の補間処理が実施されない。
【００９５】
次に、ＣＰＵ２０１は、特異点と判定されて置換された画素、置換されない画素に関わらず、画素毎にサンプリング加算を実施する（ステップＳ７０６）。次に、ＣＰＵ２０１は、ステップＳ７０６のサンプリング加算が所定ライン数分終了したか否かを判断する（ステップＳ７０７）。所定ライン数分のサンプリング加算が完了していない場合には、ＣＰＵ２０１は、ステップＳ７０２へ移行し、次のラインの画像に対して特異点判定処理、補間処理、サンプリング加算と、ステップＳ７０２〜ステップＳ７０６までの同じフローを繰り返す。
【００９６】
所定ライン数分のサンプリング加算が完了している場合には、ＣＰＵ２０１は、サンプリング加算されたデータを所定ライン数により除算して平均値を算出する（ステップＳ７０８）。これにより、ゴミ判定閾値算出用のサンプリング処理が終了する。なお、上述した特異点判定閾値は、主走査方向の全画素分のデータとしてＳＲＡＭ３０８に格納する。
【００９７】
図４に戻り、ＣＰＵ２０１は、上記ステップＳ４０４のゴミ判定閾値算出用のデータサンプリングが完了すると、ステップＳ４０４において算出したゴミ判定閾値に基づき、シェーディング補正のためのデータサンプリングを実施する（ステップＳ４０５）。ステップＳ４０５の処理の開始タイミングは、データサンプリング開始位置５０５までラインカウンタＶｃｎｔがカウントアップすることで知ることができ、データサンプリング終了位置５０７までの範囲はデータサンプリング領域５０６となる。ステップＳ４０６以降の処理については図８のフローチャートの説明後に後述する。
【００９８】
なお、データサンプリング終了位置５０７にまでラインカウンタＶｃｎｔがカウントアップしなくても、全画素分のデータサンプリングが所定ライン数分完了した時点でデータサンプリング処理は終了することになる。つまり、このデータサンプリング終了位置５０７の設定は、この位置５０７までに所定ライン数分のデータサンプリングができない場合には処理を中止するという意味合いのものである。
【００９９】
データサンプリング領域５０６の範囲内において、全画素について用紙５００の画像データのサンプリング加算を実施し、最終的なシェーディング補正用データを取得するための処理手順を図８のフローチャートに示す。
【０１００】
図８は、データサンプリングの処理手順を示すフローチャートである。
【０１０１】
図８において、画像読取装置のＣＰＵ２０１は、特異点判定閾値の設定を行う（ステップＳ８０１）。この特異点判定閾値は、図７のフローに従いＳＲＡＭ３０８に格納されたゴミ判定閾値に対して、例えば±１０レベルの範囲をサンプリング対象画素とし、この範囲から外れるデータはサンプリング対象としないものとする。ここで、図１２は、図７のステップＳ７０２における特異点判定を説明する図である。図７のフローに従い特異点画素を検知して周囲画素から補間したものが上記のゴミ判定閾値となる。
【０１０２】
次に、ＣＰＵ２０１は、上記ステップＳ８０１において設定した特異点判定閾値（図１３のゴミ判定閾値（１）参照）によって、サンプリング対象画素が特異点か否かを判定する（ステップＳ８０２）。この判定で特異点と判定された箇所に対しては、以降のステップＳ８０３〜ステップＳ８０６の処理は実行されない。ここで、図１３は、図７の処理フローにおいて得られたゴミ判定閾値に対して、図８のフローにおけるサンプリング加算対象とするか否かを判定するための閾値を説明する図である。
【０１０３】
次に、ＣＰＵ２０１は、上記ステップＳ８０２において特異点と判定されなかった画素、つまりサンプリング対象と判定された画素について、画素カウンタ（不図示）のカウント値を確認する（ステップＳ８０３）。なお、この画素カウンタのカウント値はＳＲＡＭ３０８に主走査方向の画素毎に格納されている。次に、ＣＰＵ２０１は、ステップＳ８０３において確認した画素カウンタのカウント値が所定値（サンプリング加算ライン数）を超えたか否かを判定する（ステップＳ８０４）。
【０１０４】
画素カウンタのカウント値が所定値を超えない場合には、ステップＳ８０５へ移行し、画素カウンタのカウント値が所定値を超える場合には、以降のステップＳ８０５及びステップＳ８０６を実施しないで、ステップＳ８０７へ移行する。画素カウンタのカウント値が所定値を超えない場合、ＣＰＵ２０１は、上記ステップＳ８０２においてサンプリング対象と判定された画素についてのみ、画素カウンタをカウントアップする（ステップＳ８０５）。さらに、ＣＰＵ２０１は、上記ステップＳ８０２においてサンプリング対象と判定された画素についてのみ、データ加算を行う（ステップＳ８０６）。
【０１０５】
次に、ＣＰＵ２０１は、上記ステップＳ８０２〜ステップＳ８０６までの処理を1ライン分終了したか否かを判断する（ステップＳ８０７）。1ライン分終了していない場合には、ＣＰＵ２０１は、ステップＳ８０２に戻り、処理を継続する。1ライン分終了した場合には、ステップＳ８０８の処理へ移行する。ＣＰＵ２０１は、上記ステップＳ８０５においてカウントした画素カウンタのカウント値を全画素について確認する（ステップＳ８０８）。
【０１０６】
次に、ＣＰＵ２０１は、ステップＳ８０８において確認した画素カウンタのカウント値が所定値となっているかを全画素について確認する（ステップＳ８０９）。全画素について画素カウンタのカウント値が所定値となっていた場合には、ステップＳ８１０へ移行する。ＣＰＵ２０１は、全画素についてデータが確保できたので、シェーディング補正係数算出のために平均化処理を行う（ステップＳ８１０）。これにより、サンプリング処理を終了する。
【０１０７】
全画素について画素カウンタのカウント値が所定値となっていない場合には、ステップＳ８１１へ移行する。ＣＰＵ２０１は、ステップＳ８０９における画素カウンタのカウント値を確認した結果、全画素についてデータがサンプリング完了できなかった場合には、次の判定を行う。即ち、指定されたサンプリング領域の最終ラインに到達したか否かを判定する（ステップＳ８１１）（図１１の領域（１）参照）。ここで、図１１は、図５のデータサンプリング領域５０６をより詳細に示した説明図である。図１１に示すように、データサンプリング領域を複数（データサンプリング領域（１）、データサンプリング領域（２））に分割することもできる。
【０１０８】
上記ステップＳ８１１において、指定されたデータサンプリング領域の最終ラインに到達していないと判定した場合は、ＣＰＵ２０１は、ステップＳ８０２に戻り、サンプリング加算を再度実行する。指定されたデータサンプリング領域の最終ラインに到達したと判定した場合には、ステップＳ８１２に移行する。ＣＰＵ２０１は、データサンプリング領域が複数設定されていて、全てのデータサンプリング領域においてサンプリングが実行されたか否かを判定する（ステップＳ８１２）。なお、この複数回サンプリングの詳細については後述する。
【０１０９】
全てのデータサンプリング領域においてサンプリングが実行されていない場合には、ＣＰＵ２０１は、ステップＳ８０１に戻り、特異点判定閾値の設定からやり直す。具体的には、図１１のデータサンプリング領域（２）への移行に伴い、図１３のゴミ判定閾値（２）に示すように、ゴミ判定閾値を緩和する方向に切り替える。なお、ゴミ判定閾値の切り替えは、判定を緩和する方向だけではなく、判定を厳格にする方向に変更することもできる。
【０１１０】
全てのデータサンプリング領域においてサンプリングが実行された場合には、ステップＳ８１３へ移行する。画像処理ＡＳＩＣ２０２から指定条件でのサンプリングができなかったことが割り込み要因によりＣＰＵ２０１に通知される。ＣＰＵ２０１は通知を受け取り、レジスタに割り込み要因を記憶しておく（ステップＳ８１３）。これにより、サンプリング処理を終了する。この通知を受けたＣＰＵ２０１は、必要に応じて操作部２１０にエラーメッセージを表示することもできる。
【０１１１】
以上の処理を終了すると、図４のステップＳ４０５のシェーディング補正用のデータサンプリングが完了することになり、ステップＳ４０６へ移行する。ＣＰＵ２０１は、ステップＳ４０５においてシェーディング補正用データをサンプリングする過程で判定した特異点の情報に基づき、特異点の個数と所定の閾値との比較を行う（ステップＳ４０６）。その比較の結果、特異点の個数が所定の閾値以上である場合には、ステップＳ４０７へ移行する。ＣＰＵ２０１は、画像処理ＡＳＩＣ２０２から通知される汚れ情報を受け取る（ステップＳ４０７）。特異点の数が多いため所望の結果が得られていない可能性を示唆するために、操作部２１０にメッセージを表示することもできる。
【０１１２】
＜複数回サンプリング時の処理フロー＞
上述した通り図８のステップＳ８１２においては、図１１に示すようにデータサンプリング領域が複数設定されていて、全てのデータサンプリング領域においてサンプリングが実行されたか否かを判定する。この判定により、図１１のデータサンプリング領域（１）はサンプリングが実施されたが、データサンプリング領域（２）がサンプリングが実施されていない場合は、ステップＳ８０１に戻り、特異点判定閾値の設定からやり直す。この特異点判定閾値の再設定においては、以下の３パターン（１）（２）（３）の設定方法がある。
【０１１３】
（１）特異点箇所のみ閾値を緩和する場合
図１４は、図８のステップＳ８０１におけるゴミ判定閾値の変更を説明する図である。図１４の上段に示すように、ＳＲＡＭ３０８に格納された画素カウンタのカウント値から、ゴミやスジの影響などによりサンプリングできなかった画素の主走査位置を抽出する。これにより、図１４の下段に示すように、該当する位置のみゴミ判定閾値を変更することができる。ここで、上述したように、特異点判定回路３０３は、画像データがサンプリングできない画素が存在する場合に、当該サンプリングができない画素の位置を特定する本発明の特定手段として機能する。
【０１１４】
このようにゴミ判定閾値を変更することで、ゴミの影響を受けずにサンプリングできた画素については、閾値レベルを維持した状態でサンプリングを継続することができる。1回目のデータサンプリング領域においてはゴミの影響を受けてサンプリングができなかった画素については、若干閾値レベルを緩和した状態でサンプリングを実施することにより、よりデータをサンプリングできる可能性を上げることができる。
【０１１５】
（２）特異点箇所のみ閾値を緩和して再度サンプリングする場合
また、１回目のデータサンプリング領域においてサンプリングができた画素については、そのデータをＳＲＡＭ３０８に格納しておき、サンプリングできなかった画素についてのみ若干閾値レベルを緩和した状態でサンプリングを実施することもできる。
【０１１６】
上記（１）の方法においては次の可能性がありうる。即ち、２回目のデータサンプリング領域において偶発的に発生したゴミに起因したスジの影響を受け、１回目のデータサンプリング領域ではサンプリングできたが、同じ閾値で２回目のデータサンプリング領域ではサンプリングできないという可能性がありうる。しかし、本方法においてはその可能性を低減することができる。
【０１１７】
（３）特異点箇所のみ閾値を緩和して重畳的にサンプリングする場合
１回目のデータサンプリング領域においてサンプリングが所定のカウント値まではできなかった画素については、若干閾値レベルを緩和した状態のサンプリングを、カウント値が所定値になるまで継続することもできる。つまり、あるカウント値までは、1回目のゴミ判定閾値でのサンプリングデータの加算結果が格納されており、２回目のゴミ判定閾値でサンプリングできたデータを、その加算結果に対して加算していく。
【０１１８】
この方法は、図１１のデータサンプリング領域（１）に示すように、次のような場合に有効である。即ち、データサンプリング領域の途中から発生し、データサンプリング領域の途中で消滅するようなスジが存在した場合、あるいは、用紙が著しく汚れており若干のライン数しかサンプリングできなかった場合に有効である。
【０１１９】
上記（１）（２）（３）のうちいずれかの方法を採ることにより、白色基準チャート（用紙）自体の汚れ、あるいは、白色基準チャートの搬送に伴い発生するゴミに起因したスジなどの影響があっても、正確なシェーディング補正用データが生成できる。
【０１２０】
＜全画素でサンプリングできなかった時の処理フロー＞
図１１に示すように、データサンプリング領域（１）及びデータサンプリング領域（２）のいずれの領域においても、常にスジが発生している場合、次のような可能性がある。即ち、上記のようなゴミ判定閾値の緩和や複数回のデータサンプリング実行などを行っても、どうしてもデータがサンプリングできない画素が存在する可能性がある。
【０１２１】
そこで、図８のフローチャートにおいて、ステップＳ８１２（再サンプリング指定判定）からステップＳ８１３（エラー通知）へ移行する際に、次の処理を行うこともできる。即ち、ステップＳ８０８（画素カウンタ確認）の結果と不揮発性メモリ（フラッシュメモリ２０５）に格納された従前のサンプリングデータからデータの補完をすることもできる。ここで、特異点置換回路３０４は、フラッシュメモリ２０５（第１の格納手段）に格納された従前のサンプリングデータであって、特異点判定回路３０３により特定されたサンプリングができない画素の位置におけるデータを補完する補完手段として機能する。
【０１２２】
具体的には、図１５に示すように、ゴミ判定されてデータがサンプリングできなかった画素について、従前のサンプリングデータの当該箇所及びその隣接画素との比率を演算する。その比率（補完係数）を今回サンプリングしたゴミ判定箇所の隣接データに対して除算することで、ゴミ画素のデータを補完する。この方法を採ることにより、白色基準チャート（用紙）の搬送に伴い発生する固着ゴミに起因した連続スジの影響があっても、正確なシェーディング補正用データを生成することができる。
【０１２３】
上述したように本実施形態によれば、画像読取装置においてシェーディング補正用データのサンプリングに先立ち、データサンプリングの基準となる範囲を限定するためゴミ判定閾値を算出するためのサンプリングを実施する。その範囲内に存在するデータのみを採用（サンプリング）し、範囲内に存在しないデータはサンプリングの対象から外す。これにより、汚れやゴミに起因したスジの影響を低減したシェーディング補正用データの生成が可能となる。
【０１２４】
また、白色基準チャート自体の汚れや、チャートの搬送に伴い発生するゴミに起因したスジなどがあったとしても、それらの影響を低減し、面内で一様に平均的な明るさとなるようなシェーディング補正用データを生成することができる。特に、白色基準チャートとして再生紙などのゴミや汚れを含んだ用紙を使用した場合であっても、良好なシェーディング補正用データを生成できるため、特別に管理されたチャートを準備する必要がなくなる。また、画像読取装置の原稿搬送部内の紙粉などのゴミの清掃を十分にはできない場合であっても、そうしたゴミに起因して発生するスジの影響を低減できるため、画像読取装置の管理コストや調整コストの低減を図ることも可能となる。
【０１２５】
〔他の実施形態〕
本実施形態では、流し読みと圧板読みの両方が可能な画像読取装置について説明したが、これに限定されず、原稿の搬送を行わない圧板読みのみが可能な画像読取装置にも適用可能である。
【０１２６】
本実施形態では、画像読取装置単体について説明したが、これに限定されず、本発明の画像読取装置を搭載した複写機や複合機にも適用可能である。
【０１２７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。本発明のプログラムは、本発明の画像読取装置の制御方法をコンピュータに実行させるためのコンピュータ可読のプログラムコードを有する。
【符号の説明】
【０１２８】
１２７  ラインセンサ
２０５  フラッシュメモリ
３００  画像処理部
３０３  特異点判定回路
３０４  特異点置換回路
３０６  動作制御部
３０７  ＳＲＡＭ制御部
３０８  ＳＲＡＭ
【図１】
2015198389.tif 000003
【図２】
2015198389.tif 000004
【図３】
2015198389.tif 000005
【図４】
2015198389.tif 000006
【図５】
2015198389.tif 000007
【図６】
2015198389.tif 000008
【図７】
2015198389.tif 000009
【図８】
2015198389.tif 000010
【図９】
2015198389.tif 000011
【図１０】
2015198389.tif 000012
【図１１】
2015198389.tif 000013
【図１２】
2015198389.tif 000014
【図１３】
2015198389.tif 000015
【図１４】
2015198389.tif 000016
【図１５】
2015198389.tif 000017
【図１６】
2015198389.tif 000018
【図１７】
2015198389.tif 000019