以下、図面を参照しつつ本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本発明の実施の形態の1つにおける画像読取装置を備えたMFP(Multi Function Peripheral)の斜視図である。図1を参照して、MFP100は、原稿を読取るための画像読取装置10と、画像読取装置10の下部に設けられた画像形成装置20とを含む。画像読取装置10は、本体部103にその一部が収納されており、自動原稿搬送装置(ADF)101を備える。画像形成装置20は、本体部103の画像読取装置10の下方に収納され、画像読取装置10が原稿を読取って出力する画像データに基づいて、紙などの記録媒体に画像を形成する。MFP100は、ファクシミリ、ローカルエリアネットワーク(LAN)、公衆交換電話網(PSTN)などのネットワークと接続するための通信インタフェースを備える。
図2は、画像読取装置10の内部構成の概略を示す図である。ADF101は、原稿200を原稿読取位置Lに搬送するためのタイミングローラ対201と、原稿読取位置L付近において原稿の搬送をガイドするための上部規制板203と、原稿読取位置Lを通過した原稿200を排出するために原稿200を搬送するためのローラ対202とを備える。
ADF101は、積載された複数の原稿200の最上段から1枚の原稿をさばき、タイミングローラ対201に供給する。このため、ADF101は、複数ある原稿200を1枚ずつ順に原稿読取位置Lに搬送する。
画像読取装置10の本体部20に収納される部分は、透明な部材から構成された原稿台205と、原稿の搬送経路の一部を形成する通紙ガイド207と、光を照射するための光源206と、光源からの光を反射させる反射部材208と、3つのラインセンサが副走査方向に配列された読取部213と、原稿からの反射光を反射して読取部213に導くための反射ミラー209と、反射ミラー209からの反射光を読取部213上に結像させるためのレンズ211と、読取部213が出力する画像データを処理するための画像処理部215と、原稿台205を振動させるためのモータ219と、画像処理部215からの制御データに基づいてモータ219の駆動を制御するモータ制御部217とを含む。
原稿200は、タイミングローラ対201により、原稿台205と上部規制板203との間を矢印D1の方向に搬送される。そして、原稿は搬送されながら原稿読取位置Lにおいて、読取部213によりその画像が読取られる。ADF101が原稿を搬送する方向は、原稿読取位置Lにおいて副走査方向である。モータ制御部217は、画像読取動作中にモータ219を駆動して、原稿台205を矢印D2の方向に振動させる。原稿台205の振動方向と副走査方向とは実質的に平行である。
読取部213は、3つのラインセンサを備える。3つのラインセンサそれぞれは、副走査方向と実質的に垂直な主走査方向に配列された複数の光電変換素子を備える。3つのラインセンサそれぞれは、互いに分光感度が異なるフィルタを有する。原稿から反射した光はフィルタを透過して複数の光電変換素子で受光される。具体的には、3つのラインセンサは、赤(R)、緑(G)および青(B)の各波長の光を透過するフィルタをそれぞれ有する。このため、赤(R)のフィルタを有するラインセンサは、原稿から反射した光のうち赤色の光の強度を示すRデータを出力し、緑(G)のフィルタを有するラインセンサは、原稿から反射した光のうち緑色の光の強度を示すGデータを出力し、青(B)のフィルタを有するラインセンサは、原稿から反射した光のうち青色の光の強度を示すBデータを出力する。
3つのラインセンサは、副走査方向に所定の距離を隔てて予め定められた順番で配置される。ここでは、原稿の読取ラインに換算して3ライン分の距離を隔てて原稿の搬送方向で赤、緑、青の順に配置されている。なお、3つのラインセンサを配置する間隔および順番は、これらに限定されるものではない。
3つのラインセンサは、3ライン分の距離を隔てて赤、緑、青の順に配置されるので、3つのラインセンサは、原稿の異なる位置で反射した光を同時に受光する。したがって、原稿のある位置で反射した光は、まず、赤の光を受光するラインセンサで受光され、原稿が3ライン分搬送された後に緑の光を受光するラインセンサで受光され、さらに原稿が3ライン分搬送された後に青の光を受光するラインセンサで受光される。この遅れは、後述する画像処理部215で調整される。
なお、本実施の形態においては、読取部213に3つのラインセンサを設けるようにしたが、4つ以上のラインセンサを設けるようにしてもよい。
図3は、原稿台を振動させるための機構を示す斜視図である。図3を参照して、原稿台205は、原稿台ホルダ221により保持される。原稿台ホルダ221は、ガイド220により副走査方向に摺動可能に保持される。ガイド220は、画像読取装置10の本体に固定される。原稿台ホルダ221の1つの面に2つのアーム222が接合されている。アーム222の他端は円形の穴を有する。
軸224には、2つのアーム222に対応する位置に2つのカム223が取付けられる。また、軸224の一端にギア225が取付けられる。ギア225は、モータ219の駆動軸とベルトで接合されたギア226と噛み合うように配置される。モータ219が回転すると、その回転がベルトを介してギア226に伝えられ、ギア226が回転する。ギア226の回転に伴って、ギア225および軸224が回転する。カム223は、アーム222が備える円形の穴の中に配置される。このため、軸224の回転に伴う2つのカム223の回転運動が、原稿台ホルダ221の往復運動に変換される。なお、原稿台205を振動させるための機構はこれに限定されることなく、例えば、電磁石、空気圧、油圧等を利用したピストン等の直線運動を生じさせる駆動源を用いた機構としてもよい。
原稿台205は、副走査方向と平行に振動する。原稿台205が原稿の搬送方向と逆方向に移動している間は、原稿台205と原稿とは逆方向に移動するため、原稿台205のラインセンサに対する相対速度と、原稿のラインセンサに対する相対速度とが異なる。一方、原稿台205が原稿の搬送方向に移動している間は、原稿台205の速度と原稿の搬送速度とは方向が同じである。速さを異ならせるようにするのが好ましい。なお、ここでは、原稿台205を副走査方向と平行に振動させるようにしたが、方向はこれに限定されない。
ここで、本実施の形態における画像読取装置10が、原稿を読取って得られる画像データから原稿台205に付着したゴミにより発生するノイズを検出する原理について説明する。まず、ライン間補正について説明する。図4は、ライン間補正を説明するための図である。図4を参照して、原稿は図中矢印方向に搬送される。ここでは、3つのラインセンサは、赤の光を受光するラインセンサ、緑の光を受光するラインセンサ、青の光を受光するラインセンサの順に、原稿の搬送方向に3ラインの距離を隔てて配置されているものとする。なお、赤の光を受光するラインセンサの出力をR、緑の光を受光するラインセンサの出力をG、青の光を受光するラインセンサの出力をBで示している。
原稿の一部の画像は、まず、原稿の搬送方向の最も上流に配置された赤の光を受光するラインセンサで読取られる。そして、その原稿の一部の画像が4ライン分の距離だけ搬送されて、緑の光を受光するラインセンサで読取られる。さらに、その原稿の一部の画像が4ライン分の距離だけ搬送されて、青の光を受光するラインセンサで読取られる。
このように、原稿のある一部の画像が、3つのラインセンサで異なる時刻で読取られるため、3つのラインセンサが同時に出力する3つのデータは原稿の異なる部分を読み取って出力されるデータである。ライン間補正では、3つのラインセンサそれぞれが原稿の同じ部分を読み取って出力するデータとなるように、3つのラインセンサが出力する3つのデータの出力タイミングを調整する。具体的には、出力Rを8ライン分遅延させ、出力Gを4ライン分遅延させる。合成出力は、ライン間補正した出力R,出力Gおよび出力Bを合成した出力である。
図5は、原稿を読取って得られる画像データから原稿台205に付着したゴミにより発生するノイズを検出する原理を説明するための図である。ここでは、原稿および原稿台205は図中矢印方向に搬送され、原稿台205の移動速度は、原稿の搬送速度と方向が同じで1/5倍の速さとしている。また、原稿台205に付着したゴミのサイズを1ライン分としている。
まず、原稿の搬送方向の最も上流に配置された赤の光を受光するラインセンサがゴミを読取る。原稿台205は、原稿の搬送速度に対して1/5倍の速さで同一方向に移動するため、ラインセンサが原稿を5ライン分読取るだけの時間でゴミは1ライン分を移動する。したがって、赤の光を受光するラインセンサは、原稿が5ライン分搬送される間、ゴミを読み取る。赤の光を受光するラインセンサは、原稿が5ライン分搬送される間の最初の第1ラインではゴミの1/3の部分を読み取り、次の第2ラインではゴミの2/3の部分を読み取り、次の第3ラインではゴミの全体を読み取り、次の第4ラインではゴミの2/3の部分を読み取り、最後の第5ラインではゴミの1/3の部分を読み取る。
そして、そのゴミが3ライン分の距離だけ搬送された後、緑の光を受光するラインセンサで読取られる。原稿台205は、原稿の搬送速度に対して1/5倍の速さで同一方向に移動するため、ゴミが3ライン分を移動する間に原稿は15ライン搬送される。このため、赤のラインセンサがゴミを読取る時点と、緑のラインセンサがゴミを読取る時点とでは、原稿を15ライン分読取る時間だけずれる。そして、緑の光を受光するラインセンサは、原稿が5ライン分搬送される間、ゴミを読み取る。緑の光を受光するラインセンサは、原稿が5ライン分搬送される間の最初の第1ラインではゴミの1/3の部分を読み取り、次の第2ラインではゴミの2/3の部分を読み取り、次の第3ラインではゴミの全体を読み取り、次の第4ラインではゴミの2/3の部分を読み取り、最後の第5ラインではゴミの1/3の部分を読み取る。
さらに、そのゴミが3ライン分の距離だけ搬送された後、青の光を受光するラインセンサで読取られる。原稿台205は、原稿の搬送速度に対して1/5倍の速さで同一方向に移動するため、ゴミが3ライン分を移動する間に原稿は15ライン搬送される。このため、緑のラインセンサがゴミを読取る時点と、青のラインセンサがゴミを読取る時点とでは、原稿を15ライン分読取る時間だけずれる。そして、青の光を受光するラインセンサは、原稿が5ライン分搬送される間、ゴミを読み取る。青の光を受光するラインセンサは、原稿が5ライン分搬送される間の最初の第1ラインではゴミの1/3の部分を読み取り、次の第2ラインではゴミの2/3の部分を読み取り、次の第3ラインではゴミの全体を読み取り、次の第4ラインではゴミの2/3の部分を読み取り、最後の第5ラインではゴミの1/3の部分を読み取る。
そして、ライン間補正により、赤の光を受光するラインセンサがゴミを読取って出力する出力Rは8ライン分遅延され、緑の光を受光するラインセンサがゴミを読取って出力する出力Gは4ライン分遅延される。このため、ライン間補正した出力R,出力G、出力Bを合成した合成出力では、ゴミを読取った出力Rと、ゴミを読取った出力Gと、ゴミを読取った出力Bとが同じタイミングとならず、それぞれ16ライン分ずれる。
なお、図では、紙粉などの白色のゴミが原稿台205に付着しており、黒色の原稿を読取る場合の合成出力を示している。この場合、白色のゴミを読取ったにもかかわらず、合成出力では、白色ではなく、3つの色に分かれた赤、緑、青の出力となる。このように、原稿台205に付着したゴミは、画像中で出力R、出力Gおよび出力Bに分断される。このため、原稿中の直線とゴミを読取ることにより生じるノイズとを区別することが可能となる。
また、3つのラインセンサそれぞれでゴミを読み取る際に、原稿が5ライン分搬送される間の最初の第1ラインではゴミの1/3の部分を読み取り、次の第2ラインではゴミの2/3の部分を読み取り、次の第3ラインではゴミの全体を読み取り、次の第4ラインではゴミの2/3の部分を読み取り、最後の第5ラインではゴミの1/3の部分を読み取る。たとえば、3つのラインセンサそれぞれが第3ラインでゴミを読み取って出力する画素値を255とすれば、第1および第5ラインでゴミを読み取って出力する画素値は255/3となり、第2および第4ラインでゴミを読み取って出力する画素値は255×2/3となる。この画素値の変化を検出することにより、原稿中の直線とゴミを読取ることにより生じるノイズとを区別することが可能となる。
図6は、原稿台を裏面から見た平面図である。図6を参照して、原稿台205は、一端にマーク205Aを有する。マーク205Aは、主走査方向の長さが副走査方向の位置により異なる形状であり、単色である。ここでは、マーク205Aは、三角形の形状で、黒色としている。また、マーク205Aの一辺が原稿台205の一辺と平行に配置される。
読取部213を用いて、または、読取部213とは別に設けられ、本体部103に固定されたセンサを用いて、マーク205Aの主走査方向の長さを検出することにより、原稿台205の読取部213に対する相対的な位置を検出することが可能となる。
図7は、読取部213が読取る原稿台205上の読取領域を示す図である。読取部213は、赤(R)のフィルタを有するラインセンサ213Rと、緑(G)のフィルタを有するラインセンサ213Gと、青(B)のフィルタを有するラインセンサ213Bとを含む。ラインセンサ213R、213G、213Bは、原稿の搬送方向D1にラインセンサ213R、213G、213Bの順に配置されている。
ラインセンサ213Rは、原稿台205の領域205Rを透過した光を受光する。ラインセンサ213Gは、原稿台205の領域205Gを透過した光を受光する。ラインセンサ213Bは、原稿台205の領域205Bを透過した光を受光する。領域205R,205G,205Bは、3ライン分の間隔を有するようにラインセンサ213R,213G,213Bが配置される。原稿は、まず領域205Rを通過し、次に領域205Gを通過し、最後に領域205Bを通過する。したがって、原稿のある位置で反射した光は、まず、赤の光を受光するラインセンサ213Rで受光され、その後緑の光を受光するラインセンサ213Gで受光され、最後に青の光を受光するラインセンサ213Bで受光される。このように、ラインセンサ213R,213G,213Bは、3ライン分の距離を隔てて配置されるので、ラインセンサ213R,213G,213Bは、原稿の同じ位置で反射した光を同時に受光することはない。
ここで、原稿台205上に長さが4ライン以下のゴミ300が付着しているとする。この場合、原稿台205が副走査方向に平行に振動して移動するので、ゴミ300は領域205R,205G,205Bの2つ以上に同時に存在することはない。図6では、ゴミ300が領域205Gに存在する場合を示している。この場合には、ゴミ300で反射した光は、ラインセンサ213Gでのみ受光され、ラインセンサ213R,213Bでは受光されない。
また、原稿台205が振動するので、原稿台205が原稿の搬送方向D1に移動する場合と、原稿台205が原稿の搬送方向D1と逆方向に移動する場合とがある。原稿台205が原稿の搬送方向D1に移動している間、初めに領域205R、次に領域205G、最後に領域205Bの順にゴミが移動する。逆に、原稿台205が原稿の搬送方向D1と逆に移動している間、初めに領域205B、次に領域205G、最後に領域205Rの順にゴミが移動する。したがって、原稿台205が原稿の搬送方向D1に移動している間は、ゴミ300で反射した光は、初めにラインセンサ213Rで受光され、次にラインセンサ213Gで受光され、最後にラインセンサ213Bで受光される。また、原稿台205が原稿の搬送方向D1と逆に移動している間は、ゴミ300で反射した光は、初めにラインセンサ213Bで受光され、次にラインセンサ213Gで受光され、最後にラインセンサ213Rで受光される。
原稿台205が原稿の搬送方向に移動している間は、ゴミを読取ることによるノイズは、最初にラインセンサ213Rが出力するRデータ、次にラインセンサ213Gが出力するGデータ、最後にラインセンサ213Bが出力するBデータに順に表れる。また、原稿台205が原稿の搬送方向と逆の方向に移動している場合は、ゴミを読取ることによるノイズは、最初にラインセンサ213Bが出力するBデータ、次にラインセンサ213Gが出力するGデータ、最後にラインセンサ213Rが出力するRデータに順に表れる。すなわち、ゴミを読取ることにより発生するノイズが表れるデータの順番が原稿台205の移動方向により定まる。Rデータ、Gデータ、Bデータからノイズが検出される順番を判定することで、ノイズを検出する精度を向上させることができる。
図8は、本実施の形態における画像読取装置の画像処理部の構成を示すブロック図である。図8を参照して、画像処理部215には、読取部213からRデータ、Gデータ、Bデータが入力される。画像処理部215は、読取部213から入力されたアナログ信号のRデータ、Gデータ、Bデータをデジタル信号に変換するためのアナログデジタル変換部(A/D変換部)251と、光源206の照明ムラ等を補正するためのシェーディング補正部253と、ライン間補正部255と、レンズ211による主走査方向の歪を補正するための色収差補正部257と、Rデータ、Gデータ、Bデータそれぞれからノイズを検出するためのノイズ検出処理部259と、ノイズを除去する処理を実行するノイズ補正部260と、画像処理部215の全体を制御するための制御部263と、画像を画像形成装置20に出力するためのプリンタインターフェース261とを備える。制御部263には、原稿台205の位置を検出するための位置検出部265が接続されている。位置検出部265は、原稿台205が有するマーク205Aの主走査方向の長さを検出する。
ライン間補正部255は、Rデータを8ライン分遅延させ、Gデータを4ライン分遅延させる。これにより、ラインセンサ213R,213G,213Bが原稿を読み取って出力するRデータ、GデータおよびBデータが、原稿の同一ラインに対応するように同期する。上述したように、ラインセンサ213R,213G,213Bは、副走査方向に3ライン分の距離を隔てて配列されているからである。
ノイズ検出処理部259は、色収差補正部257よりRデータ、GデータおよびBデータが入力される。ノイズ検出処理部259は、色収差補正部257から入力されたRデータ、GデータおよびBデータごとに、ゴミを読み取った画素としてのノイズ画素を検出する。そして、ノイズ画素を「1」とし、他の画素を「0」とする論理データをノイズ補正部260と制御部263とに出力する。その詳細については後述する。
ノイズ補正部260は、色収差補正部257からRデータ、GデータおよびBデータが入力され、ノイズ検出処理部259からノイズ画素を「1」とし他の画素を「0」とする論理データがRデータ、GデータおよびBデータごとに入力される。ノイズ補正部260は、Rデータ、GデータおよびBデータそれぞれに対応する論理データに基づいて、Rデータ、GデータおよびBデータのノイズ画素を補正する。ノイズ補正部260は、Rデータ、GデータおよびBデータそれぞれについて、対応する論理データに基づいて、ノイズ画素の画素値を周辺のノイズ画素でない画素の画素値に置換える。周辺のノイズ画素でない複数の画素の平均値、最大値または最小値に置換えるようにしてもよい。ノイズ補正部260は、ノイズ画素を周辺の画素で置換したRデータ、GデータおよびBデータをプリンタインターフェース261に出力する。
制御部263は、位置検出部265から原稿台205の位置が入力され、ノイズ検出処理部259からノイズ画素を「1」とし他の画素を「0」とする論理データが入力される。制御部263は、これらのデータから、原稿台205上のゴミの位置を特定する。より具体的には、原稿台205の位置と論理データのライン番号とから原稿台205の副走査方向の位置を特定し、論理データのノイズ画素の位置から原稿台205の主走査方向の位置を特定する。
図9は、ライン間補正後のRGBデータの一例を示す図である。図9(A)は、原稿の白色の領域を読取っている間に、原稿台に付着した黒色のゴミがラインセンサ213Rに対応する領域205Rにある場合のRGBデータの一例を示している。なお、ここでは黒色のゴミをノイズとして検出することを説明するが、ゴミは有彩色であってもよい。また、ここでは白色の原稿を読取る場合を例に説明するが、原稿の色は白色に限定されることなく、他のいかなる色であってもよい。
図9(A)を参照して、ラインセンサ213Rは、黒色のゴミを読取るので、ラインセンサ213Rが出力するRデータは明度が低くなる。ラインセンサ213G,213Bでは、原稿の白色の領域を読取るので、ラインセンサ213G,213Bが出力するGデータ、Bデータは明度が高い。なお、ここでは、反射光に応じた3つのラインセンサ213R,213G,213Bの出力値を明度という。
図9(A)に示すRGBデータの組合せが、原稿を読取って出力されることは希である。一方、原稿を読取って出力されるRGBデータの組合せのうち、図9(A)に示すRGBデータの組合せに最も近い組合せは、赤の補色である青緑の領域を読取った場合である。図9(B)は、原稿の青緑の領域を読取った場合に読取部213が出力するRGBデータを示す図である。Rデータは明度が大きく下がるがGデータおよびBデータの明度も下がる。図9(A)に示すRGBデータと図9(B)に示すRGBデータとではBデータとGデータが影響を受けるか受けないかの大きな違いがある。この違いを検出することにより、青緑の線を誤ってノイズとして検出することなく、黒色のゴミをノイズとして検出することができる。
このため、明度が大きく下がるRデータの明度の変化を、しきい値Ref1(R)を用いて検出することができる。また、Bデータの明度の変化を、しきい値Ref2(B)を用いて検出する。しきい値Ref2(B)は、次の値のうち最も小さな値とすればよい。以下では、しきい値Ref2(R),Ref2(G),Ref2(B)を示している。
(1)明度の高い無彩色のゴミを検出する場合
青緑の線をノイズとして誤って検出することがないように、赤の補色である青緑を読取った場合に、ラインセンサ213R以外のラインセンサ213G,213Bのいずれか一方が出力する明度と明度の最大値(255)との差Ref2(G),Ref2(B)とすればよい。赤紫の線をノイズとして誤って検出することがないように、緑の補色である赤紫を読取った場合に、ラインセンサ213G以外のラインセンサ213R,213Bのいずれか一方が出力する明度と最大明度(255)との差Ref2(R),Ref2(B)とすればよい。黄の線をノイズとして誤って検出することがないように、青の補色である黄を読取った場合に、ラインセンサ213B以外のラインセンサ213R,213Gのいずれか一方が出力する明度と最大明度(255)との差Ref2(R),Ref2(G)とすればよい。
(2)明度の低い無彩色のゴミを検出する場合
赤の線をノイズとして誤って検出することがないように、赤を読取った場合に、ラインセンサ213R以外のラインセンサ213G,213Bのいずれか一方が出力する明度と明度の最小値(0)との差Ref2(G),Ref2(B)とすればよい。緑の線をノイズとして誤って検出することがないように、緑を読取った場合に、ラインセンサ213G以外のラインセンサ213R,213Bのいずれか一方が出力する明度と最小値(0)との差Ref2(R),Ref2(B)とすればよい。青の線をノイズとして誤って検出することがないように、青を読取った場合に、ラインセンサ213B以外のラインセンサ213R,213Gのいずれか一方が出力する明度と最小値(0)との差Ref2(R),Ref2(G)とすればよい。
このようにして、しきい値Ref2(R),Ref2(G),Ref2(B)それぞれは複数求まるが、それぞれの最小値を用いればよい。
図10は、本実施の形態における画像読取装置のノイズ検出処理部の構成を示すブロック図である。図10を参照して、ノイズ検出処理部259は、入力されるRデータ、Gデータ、Bデータそれぞれから所定の特徴を有する領域を抽出するための第1明度差検出部301R、301G,301Bおよび第2明度差検出部302R,302G,302Bと、第2明度差検出部302R、302G,302Bで抽出された領域を周辺に拡張するための検出結果拡張処理部303R,303G,303Bと、否定論理和素子305R,305G,305Bと、論理積素子306R,306G,306Bと、グラデーション検出部311R,311G,311Bと、背景エッジ検出部312R,312G,312Bと、論理和素子313R,313G,313Bと、判定部315R,315G,315Bと、検出エリア拡張処理部316R,316G,316Bとを含む。
Rデータ、Gデータ、Bデータそれぞれが1ラインずつ順にノイズ検出処理部259に入力される。なお、Rデータ、Gデータ、Bデータは、複数ラインまとめて入力されてもよく、画像全体がまとめて入力されてもよい。
第1明度差検出部301R,301G,301Bは、取り扱うデータが異なるのみで、それらの機能は同じなので、ここでは第1明度差検出部301Rについて説明する。第1明度差検出部301Rは、Rデータとしきい値Ref1(R)とが入力される。第1明度差検出部301Rは、Rデータから第1レベルの所定の特徴を有する領域を抽出する。第1レベルの所定の特徴を有する領域とは、明度の変化が少ない領域であって、周辺の領域と明度の差がしきい値Ref1(R)以上の領域である。そのような領域は、1画素以上の大きさであればよい。ここでは、第1レベルの所定の特徴を有する領域に含まれる画素を第1特徴画素という。
第1明度差検出部301Rは、第1レベルの所定の特徴を有する領域を、エッジ抽出フィルタを用いて抽出する。エッジ抽出フィルタは、エッジ領域の複数のサイズそれぞれに対応した複数のフィルタを含む。第1明度差検出部301Rは、複数のフィルタごとにフィルタ処理を実行して、その結果得られる値としきい値Ref1(R)とを比較する。そして、第1明度差検出部301Rは、フィルタ処理の結果得られる値の絶対値がしきい値Ref1(R)より大きい条件を満たす場合、そのフィルタ処理の中心画素をエッジ領域の中心画素とし、条件を満たしたエッジ抽出フィルタからエッジ領域のサイズを求める。
図11は、エッジ抽出フィルタの一例を示す図である。なお、ここではエッジ抽出フィルタをRデータで説明するが、Gデータ、Bデータについても、Rデータに用いられるのと同じエッジ抽出フィルタが用いられる。図11(A)は、1画素のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。図11(B)は、2〜3画素のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。図11(C)は、4〜5画素以下のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。図11(D)は、6〜7画素以下のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。図11(E)は、8〜9画素以下のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。図11(G)は、12〜13画素以下のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。図11(H)は、14〜15画素以下のサイズのエッジ領域を検出するために用いられるエッジ抽出フィルタを示す。これらのエッジ抽出フィルタの成立条件は、次のようになる。
(1)明度が高いエッジ領域の判定条件は、画素Aと画素Bの明度の平均から画素Cの明度の平均を減算した値がしきい値Ref1(R)以上の場合である。
平均(画素Aと画素B)−平均(画素C)>Ref1(R)
この場合の中心画素は、画素Aと画素Bと画素Cのうち明度が最大の画素である。
(2)明度が低いエッジ領域の判定条件は、画素Cの明度の平均から画素Aと画素Bの明度の平均を減算した値がしきい値Ref1(R)以上の場合である。
平均(画素C)−平均(画素Aと画素B)>Ref1(R)
この場合の中心画素は、画素Aと画素Bと画素Cのうち明度が最小の画素である。
図10に戻って、第1明度差検出部301Rは、上述したエッジ抽出フィルタを用いて算出した値としきい値Ref1(R)とを比較する。第1明度差検出部301Rは、第1特徴画素を「1」とし、そうでない画素を「0」とした論理データを論理積素子306Rに出力する。論理データは、Rデータの画素値に対応し、画素値と同じ数で構成される。第1明度差検出部301Gは、上述したエッジ抽出フィルタを用いて算出した値と、しきい値Ref1(G)とを比較する。第1明度差検出部301Gは、第1特徴画素を「1」とし、そうでない画素を「0」とした論理データを論理積素子306Gに出力する。論理データは、Gデータの画素値に対応し、画素値と同じ数で構成される。第1明度差検出部301Bは、上述したエッジ抽出フィルタを用いて算出した値と、しきい値Ref1(B)とを比較する。第1明度差検出部301Bは、第1特徴画素を「1」とし、そうでない画素を「0」とした論理データを論理積素子306Bに出力する。論理データは、Bデータの画素値に対応し、画素値と同じ数で構成される。
第2明度差検出部302R,302G,302Bは、取り扱うデータが異なるのみで、それらの機能は同じなので、ここでは第2明度差検出部302Rについて説明する。第2明度差検出部302Rは、Rデータとしきい値Ref2(R)とが入力される。第2明度差検出部302Rは、Rデータから第2レベルの所定の特徴を有する領域を抽出する。第2レベルの所定の特徴を有する領域とは、明度の変化が少ない領域であって、周辺の領域と明度の差がしきい値Ref2(R)以上の領域である。そのような領域は、1画素以上の大きさであればよい。ここでは、第2レベルの所定の特徴を有する領域に含まれる画素を第2特徴画素という。しきい値Ref2(R)は、しきい値Ref1(R)よりも小さな値である。
第2明度差検出部302Rは、第2レベルの所定の特徴を有する領域を、エッジ抽出フィルタを用いて抽出する。エッジ抽出フィルタは、エッジ領域の複数のサイズそれぞれに対応した複数のフィルタを含む。第2明度差検出部302Rは、複数のフィルタごとにフィルタ処理を実行して、その結果得られる値としきい値Ref2(R)とを比較する。そして、第2明度差検出部302Rは、フィルタ処理の結果得られる値の絶対値がしきい値Ref2(R)より大きくなる条件を満たす場合、そのフィルタ処理の中心画素をエッジ領域の中心画素とし、条件を満たしたエッジ抽出フィルタからエッジ領域のサイズを求める。
第2明度差検出部302Rは、図11に示したエッジ抽出フィルタを用いて算出した値としきい値Ref2(R)とを比較する。第2明度差検出部302Rは、第2特徴画素を「1」とし、そうでない画素を「0」とした論理データを検出結果拡張処理部303Rに出力する。論理データは、Rデータの画素値に対応し、画素値と同じ数で構成される。検出結果拡張処理部303Rは、第2明度差検出部302Rで抽出された第2特徴画素の周辺の画素を第2特徴画素とすることにより、第2レベルの所定の特徴を有する領域を拡張する。すなわち、第2明度差検出部302Rから入力される論理データの値が「1」の画素の周辺にある値が「0」の画素の値を「1」に変更する。これにより、ノイズ検出の精度を向上させることができる。検出結果拡張処理部303Rは、領域を拡張した論理データを否定論理和素子305G、305Bに出力する。検出結果拡張処理部303G,303Bは、取り扱うデータが異なるのみで、それらの機能は検出結果拡張処理部303Rと同じなので、ここでは説明を繰り返さない。
否定論理和素子305Rには、検出結果拡張処理部303G,303Bそれぞれから領域を拡張した論理データが入力される。否定論理和素子305Rは、入力された2つの論理データの論理和を反転した論理データを論理積素子306Rに出力する。すなわち、否定論理和素子305Rは、GデータおよびBデータのいずれでも第2特徴画素でない画素を「1」とし、少なくとも一方で第2特徴画素である画素を「0」とする論理データを論理積素子306Rに出力する。論理積素子306Rは、第1明度差検出部301Rから入力される論理データと、否定論理和素子305Rから入力される論理データの論理積を、判定部315Rに出力する。すなわち、論理積素子306Rは、Rデータで第1特徴画素であって、BデータおよびGデータのいずれでも拡張された第2特徴画素でない画素を「1」とし、他の画素を「0」とする論理データを判定部315Rに出力する。ここでは、論理積素子306Rが判定部315Rに出力する論理データをEDGEという。論理積素子306Rが出力する論理データEDGEは、Rデータで第1特徴画素であって、GデータおよびBデータのいずれでも拡張された第2特徴画素でないエッジ画素を示す。このエッジ画素は、原稿台205に付着したゴミをラインセンサ213Rが読み取った画素であり、副走査方向に複数連続する主走査方向エッジを構成する。
否定論理和素子305G,305Bは、取り扱うデータが異なるのみでそれらの機能は否定論理和素子305Rと同じなので、ここでは説明を繰り返さない。
グラデーション検出部311R,311G,311Bは、取り扱うデータが異なるのみでそれららの機能は同じなのでここではグラデーション検出部311Rについて説明する。グラデーション検出部311Rは、Rデータとしきい値Ref3(R)とが入力される。グラデーション検出部311Rは、Rデータから副走査方向に並ぶ複数の画素の画素値の変化の有無を検出する。しきい値Ref3(R)は、SignRef(K)、DRRef1(K)、DRRef2(K)、DRRef3(K)、DRRef4(K)、SignRef(W)、DRRef1(W)、DRRef2(W)、DRRef3(W)、DRRef4(W)を含む。
図12は、グラデーション検出部311Rの機能の概略を示す機能ブロック図である。図12を参照して、グラデーション検出部311Rは、1次微分フィルタ算出部331と、微分比較フィルタ部332,333と、論理和素子334とを含む。1次微分フィルタ算出部331は、Rデータが入力される。1次微分フィルタ算出部331は、図12に示す1次微分フィルタを用いて入力されたRデータを微分し、微分値を微分比較フィルタ部332,333それぞれに出力する。1次微分フィルタは、図中中央のハッチングで示す位置が処理対象となる画素である。
微分比較フィルタ部332,333は、図13に示す微分比較フィルタを用いて、画素値の変化の有無および変化の方向を検出する。図13を参照して、ハッチングで示す画素が処理対象となる画素であり、説明のため各画素に符号を付している。画素D05が処理対象画素であり、1つ前のラインの画素がD04である。微分比較フィルタ部332,333は、処理対象画素を含む後10ラインの画素の1次微分値を用いて、画素値の変化の有無および変化の方向を検出する。
微分比較フィルタ部332は、黒色のノイズを検出するために、画素値が減少する方向を検出する。具体的には、微分比較フィルタ部332は、処理対象画素を含む後10ラインの画素の1次微分値がプラス符号である画素数が所定のしきい値SignRef(K)を超えれば画素値が減少する変化があると判断する。ただし、微分比較フィルタ部332は、文字をノイズと誤検出するのを防止するため、ダイナミックレンジを用いて次の制約を満たすことを条件にしている。なお、ここでは、処理対象画素を含む後10ラインの画素の画素値の変化を検出するようにしたが、画素値の変化を検出するための画素数を10画素に限定するものではなく、画素値の変化を検出するための画素数は、原稿第205の移動速度により定めればよい。
(1)処理対象画素D05の前の5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef1(K)であること。
MAX(D00,D01,D02,D03,D04)−MIN(D00,D01,D02,D03,D04)<DRRef1(K)
なお、MAX(D00,D01,D02,D03,D04)は、画素D00,D01,D02,D03,D04の画素値の最大値を示し、MIN(D00,D01,D02,D03,D04)は、画素D00,D01,D02,D03,D04の画素値の最小値を示す。
(2)処理対象画素D05を含む後の5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef2(K)であること。
MAX(D05,D06,D07,D08,D09)−MIN(D05,D06,D07,D08,D09)<DRRef2(K)
(3)処理対象画素D05の後の6ライン〜10ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef3(K)であること。
MAX(D10,D11,D12,D13,D14)−MIN(D10,D11,D12,D13,D14)<DRRef3(K)
(4)処理対象画素D05の後の6ライン〜10ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef4(K)であること。
MAX(D15,D16,D17,D18,D19)−MIN(D15,D16,D17,D18,D19)<DRRef4(K)
微分比較フィルタ部332は、処理対象画素を含む後10ラインの画素の1次微分値がプラス符号である画素数が所定のしきい値SignRef(K)を超え、かつ、上記4つの制約条件の全てを満たすことを条件に、処理対象画素の値を「1」とする論理データを論理和素子334に出力する。論理データは、上記条件のいずれか1つでも満たされない場合には処理対象画素の値は「0」である。
微分比較フィルタ部333は、白色のノイズを検出するために、画素値が上昇する方向を検出する。具体的には、微分比較フィルタ部333は、処理対象画素を含む後10ラインの画素の1次微分値がマイナス符号である画素数が所定のしきい値SignRef(W)を超えれば画素値が上昇する変化があると判断する。ただし、微分比較フィルタ部333は、文字をノイズと誤検出するのを防止するため、ダイナミックレンジを用いて次の制約を満たすことを条件にしている。
(1)処理対象画素D05の前の5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef1(W)であること。
MAX(D00,D01,D02,D03,D04)−MIN(D00,D01,D02,D03,D04)<DRRef1(W)
(2)処理対象画素D05を含む後の5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef2(W)であること。
MAX(D05,D06,D07,D08,D09)−MIN(D05,D06,D07,D08,D09)<DRRef2(W)
(3)処理対象画素D05の後の6ライン〜10ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef3(W)であること。
MAX(D10,D11,D12,D13,D14)−MIN(D10,D11,D12,D13,D14)<DRRef3(W)
(4)処理対象画素D05の後の6ライン〜10ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef4(W)であること。
MAX(D15,D16,D17,D18,D19)−MIN(D15,D16,D17,D18,D19)<DRRef4(W)
微分比較フィルタ部333は、処理対象画素を含む後10ラインの画素の1次微分値がマイナス符号である画素数が所定のしきい値SignRef(W)を超え、かつ、上記4つの制約条件の全てを満たすことを条件に、処理対象画素の値を「1」とする論理データを論理和素子334に出力する。論理データは、上記条件のいずれか1つでも満たされない場合には処理対象画素の値は「0」である。
論理和素子334は、微分比較フィルタ部332,333それぞれから論理データが入力され、それらの論理データの論理和を算出し、算出して得られる論理データを出力する。論理和素子334が出力する論理データをGRAという。グラデーション検出部311Rが出力する論理データGRAは、画素値が副走査方向に変化するグラデーション領域を特定する。
次に、背景エッジ検出部312Rについて説明する。背景エッジ検出部312G,312Bは、背景エッジ検出部312Rと取り扱うデータが異なるのみで、それらの機能は背景エッジ検出部312Rと同じなので、ここでは説明を繰り返さない。
図14は、背景エッジ領域を検出する原理を説明するための図である。図14(A)は、原稿が白色の下地に黒ベタの領域を有し、原稿台205に白色のゴミが付着している場合に、画像に表れるノイズを示す図である。図14(A)では、ラインセンサ213Rが出力するRデータで明度の低い領域をハッチングで示している。ラインセンサ213Rが原稿の下地を読み取って出力するRデータと、白色のゴミを読み取って出力するRデータとが近似するために、第1明度差検出部301Rは白色のゴミを読み取って出力するRデータを第1特徴画素として検出することはできない。このため、図中ノイズ先端から点線で示す部分では、ラインセンサ213Rでは白ゴミを読み取っているにもかかわらず、第1特長画素として検出されない。一方、ラインセンサ213Rが原稿の黒ベタの領域を読み取って出力するRデータと、白色のゴミを読み取って出力するRデータとは異なるために、第1明度差検出部301Rは白色のゴミを読み取って出力するRデータを第1特徴画素として検出する。図中主走査方向エッジとして示す線分が、第1特徴画素を示す。原稿台205に白色のゴミが付着していなければ、ラインセンサ213Rにより矩形の黒ベタとして読み取られるところ、ラインセンサ213Rが白色のゴミを読み取るために、ラインセンサ213Rにより黒ベタの領域が矩形として読み取られない。図中の注目画素に着目すると、この位置で白色のゴミはラインセンサ213Rの読取領域の全てを覆うため、注目画素の副走査方向に隣接する画素間で画素値の変化はない。このため、注目画素が、グラデーション検出部311Rによってグラデーション領域として検出されない。
一方、注目画素と同じラインで注目画素に隣接する複数の画素は、原稿の白色の下地から黒ベタの領域に変化する副走査方向エッジを構成している。背景エッジ検出部312Rは、注目画素と同じラインに存在するべき副走査方向エッジを検出する。
しかしながら、注目画素と同じラインに存在する副走査方向エッジを検出するだけでは、文字の一部を誤ってノイズとして検出してしまう場合がある。副走査方向に平行な直線と主走査方向に平行な直線を含む文字(たとえば文字「T」)であって、赤、青、緑、青緑、赤紫、黄の単色の色の文字である。図14(B)は、文字をノイズと誤って検出する例を説明するための図である。図では赤色の文字「T」を示している。文字「T」は、横の直線が主走査方向と平行になり、縦の直線が副走査方向と平行になる場合が多い。このため、注目画素を含む主走査方向エッジは、上述した第1明度差検出部301RによりRデータから検出される。また、文字「T」の横の直線が注目画素と同じラインに存在する副走査方向エッジとして、Rデータから検出される。さらに、文字「T」の色およびRef2(G)およびRef2(B)の値によって、注目画素を含む主走査方向エッジが、第2明度差検出部302GによりGデータから検出されない場合があり、また、第2明度差検出部302BによりBデータから検出されない場合がある。したがって、Rデータの注目画素を含む主走査方向エッジをノイズとして検出しないために、GデータおよびBデータで注目画素とその前のラインの画素との明度の差をしきい値と比較することにより、Rデータから検出される注目画素を含む主走査方向エッジをノイズと誤判定するのを防止する。文字の色は全て同じ色なので、注目画素を含む主走査方向エッジが文字「T」の縦の直線であれば、GデータおよびBデータでは、注目画素とその前のラインの画素との明度の差が小さいからである。また、Ref2(G)およびRef2(B)の値を小さくすることができるので、誤検出を防止して検出精度を向上させることができる。
背景エッジ検出部312Rは、Rデータとしきい値Ref4(R)とが入力される。しきい値Ref4(R)は、BERef1(K)、BERef1(W)、BEREF2を含む。
図15は、背景エッジ検出フィルタの一例を示す図である。図15(A)は、主走査方向が1画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(B)は、主走査方向が2〜3画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(C)は、主走査方向が4〜5画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(D)は、主走査方向が6〜7画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(E)は、主走査方向が8〜9画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(F)は、主走査方向が10〜11画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(G)は、主走査方向が12〜13画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。図15(H)は、主走査方向が14〜15画素の長さのゴミによりRデータに現れるノイズを検出するための背景エッジ検出フィルタである。
ここでは、図15(A)に示す背景エッジ検出フィルタについて説明する。図15(A)を参照して背景エッジ検出フィルタは、説明のため各画素を特定するために符号を付している。背景エッジ検出フィルタは、5ラインのRデータ、GデータおよびBデータを処理する。背景エッジの検出の対象となる注目画素は、符合TPで示される。
背景エッジ検出部312Rは、副走査方向エッジを検出するために、Rデータに次の判定式を用いる。
(1)黒色のゴミを検出するための判定式。
MIN(A1)>BERef(B) AND (MIN(A1)−MIN(B1))>BERef1(K) … (1)
または、
MIN(A2)>BERef(B) AND (MIN(A2)−MIN(B2))>BERef1(K) … (2)
ここで、MIN(A1)は複数ある符号A1の画素の画素値の最小値を示し、MIN(A2)は複数ある符号A2の画素の画素値の最小値を示し、MIN(B1)は複数ある符号B1の画素の画素値の最小値を示し、MIN(B2)は複数ある符号B2の画素の画素値の最小値を示す。
(2)白色のゴミを検出するための判定式。
MAX(A1)>BERef(W) AND (MAX(A1)−MAX(B1))>BERef1(W) … (3)
または、
MAX(A2)>BERef(W) AND (MAX(A2)−MAX(B2))>BERef1(W) … (4)
さらに、背景エッジ検出部312Rは、注目画素を含む主走査方向エッジがノイズと誤って判定されるのを防止するために、GデータおよびBデータそれぞれに次の判定式を用いる。
(1)黒色のゴミとして誤検出を防止するための判定式。
TP−MIN(C)>BERef2 … (5)
(2)白色のゴミとして誤検出を防止するための判定式。
MAX(C)−TP>BERef2 … (6)
ただし、TPは注目画素のRデータまたはGデータの画素値(明度)を示す。
背景エッジ検出部312Rは、Rデータにおいて、判定式(1)または判定式(2)のいずれかが成立し、かつ、GデータおよびBデータそれぞれにおいて判定式(5)が共に成立することを条件に、注目画素TPを背景エッジと判定する。また、背景エッジ検出部312Rは、Rデータにおいて、判定式(3)または判定式(4)のいずれかが成立し、かつ、GデータおよびBデータそれぞれにおいて判定式(6)が共に成立することを条件に、注目画素TPを背景エッジと判定する。
背景エッジ検出部312Rは、第1明度差検出部301Rで第1特徴画素を検出した際に用いたフィルタのサイズから複数ある背景エッジ検出フィルタのうちから1つを選択する。たとえば、第1明度差検出部301Rで第1特徴画素を検出した際に用いたフィルタが図11(B)に示した2〜3画素のサイズのエッジ領域を検出するために用いられるフィルタであれば、図15(B)に示した背景エッジ検出フィルタを選択する。背景エッジ検出部312Rは、選択した背景エッジ検出フィルタを用いて、処理対象となっている注目画素が、注目画素と同じラインに副走査方向エッジが存在し、かつ、文字の一部でない背景エッジであるか否かを判断する。背景エッジ検出部312Rは、注目画素が背景エッジであれば、注目画素の値を「1」とする論理データを論理和素子313Rに出力する。論理データは、注目画素が背景エッジでなければ、注目画素の値は「0」である。背景エッジ検出部312Rが出力する論理データをBEという。
図10に戻って、論理和素子313Rは、グラデーション検出部311Rから論理データGRAが入力され、背景エッジ検出部312Rから論理データBEが入力される。論理和素子313Rは、論理データGRAと論理データBEとの論理和を算出し、算出して得られる論理データを判定部315Rに出力する。すなわち、論理和素子313Rは、注目画素がグラデーション領域に含まれる場合、または、注目画素が背景エッジの場合に値が「1」となり、いずれでもない場合に値が「0」となる論理データを出力する。論理和素子313Rが出力する論理データをVALという。論理和素子313G,313Bは、論理和素子313Rと機能は同じなので、ここでは説明を繰り返さない。
判定部315Rは、論理積素子306Rから論理データEDGEが入力され、論理和素子313Rから論理データVALが入力される。判定部315Rは、論理積素子306Rから入力される論理データEDGEと、論理和素子313Rから入力される論理データVALとで、同じラインの同じ画素同士で論理演算をするためにバッファメモリを備えている。
判定部315Rは、論理データEDGEと論理データVALの論理積を算出し論理データflagとする。また、判定部315Rは、1つ前のラインの論理データFLAGと論理データEDGEの論理積を算出し論理データFLAGとする。判定部315Rは、算出した論理データflagと論理データFLAGの論理和を算出し、論理データFLAGを検出エリア拡張処理部316Rに出力する。すなわち、判定部315Rは、論理データEDGEが「1」かつ論理データVALが「1」ならば画素値を「1」とする論理データFLAGを検出エリア拡張処理部316Rに出力する。また、判定部315Rは、論理データEDGEが「1」かつ論理データVALが「0」であっても、検出エリア拡張処理部316Rに出力した1つ前のラインの論理データFLAGが「1」で、かつ、論理データEDGEが「1」ならば、画素値を「1」とする論理データFLAGを検出エリア拡張処理部316Rに出力する。判定部315Rは、論理データEDGEが「1」かつ論理データVALが「1」が成立して論理データFLAGが一度「1」に設定されると、次に値が「0」の論理データEDGEが入力されるまで値が「1」の論理データFLAGを検出エリア拡張処理部316Rに出力する。
ここでは、Rデータで第1特徴画素であって、GデータおよびBデータのいずれでも拡張された第2特徴画素でない画素を主走査方向エッジ画素という。判定部315Rは、換言すれば、主走査方向エッジ画素のうちグラデーション領域に含まれる画素、または背景エッジの画素の値を「1」とする論理データFLAGを出力する。また、判定部315Rは、主走査方向エッジ画素が副走査方向に連続する場合は、連続する複数の主走査方向エッジ画素の1の画素が、グラデーション領域に含まれる画素、または背景エッジ画素であれば、グラデーション領域に含まれる画素、または背景エッジ画素に後続する全ての主走査方向エッジ画素の値を「1」とする論理データFLAGを出力する。
検出エリア拡張処理部316Rは、判定部315Rから論理データFLAGが入力される。検出エリア拡張処理部316Rは、判定部315Rでノイズと判定された画素の周辺の画素を含めた補正対象領域を特定する。すなわち、判定部315Rから入力される論理データFLAGの値が「1」の画素の周辺にある値が「0」の画素の値を「1」に変更する。これにより、補正対象となる画素の範囲を広げて画質を向上させることができる。検出エリア拡張処理部316Rは、補正対象領域を示す論理データをノイズ補正部260に出力する。検出エリア拡張処理部316G,316Bは、取り扱うデータが異なるのみでそれらの機能は検出エリア拡張処理部316Rと同じなので、ここでは説明を繰り返さない。
<第1の変形例>
上述したノイズ検出処理部259では、Rデータで第1特徴画素であって、GデータおよびBデータのいずれでも拡張された第2特徴画素でない画素が副走査方向に連続する主走査方向エッジの先端に、グラデーション領域が存在すればノイズと判定するものである。原稿の背景に変化がなければ、主走査方向エッジはその後端にグラデーション領域を含むはずである。このため、主走査方向エッジの先端のグラデーション領域に加え、後端のグラデーション領域を検出することにより、主走査方向エッジをノイズとして検出する精度を向上させることができる。
図16は、変形例におけるグラデーション検出部311Rの詳細な構成を示す機能ブロック図である。図16を参照して、変形例におけるグラデーション検出部311Rは、先端グラデーション検出部321Rと、後端グラデーション検出部322Rと、ノイズ検出許可領域決定部323Rとを含む。先端グラデーション検出部321Rは、図12に示したグラデーション検出部311Rと同じ構成である。したがってここでは説明を繰り返さない。
図17は、後端グラデーション検出部322Rの機能の概略を示す機能ブロック図である。図17を参照して、後端グラデーション検出部322Rは、1次微分フィルタ算出部341と、微分比較フィルタ部342,343と、論理和素子344とを含む。
1次微分フィルタ算出部341は、Rデータが入力される。1次微分フィルタ算出部341は、図17に示す1次微分フィルタを用いて入力されたRデータを微分し、微分値を微分比較フィルタ部342,343それぞれに出力する。1次微分フィルタは、図中中央のハッチングで示す位置が処理対象となる画素である。
微分比較フィルタ部342,343は、図18に示す微分比較フィルタを用いて、画素値の変化の有無および変化の方向を検出する。図18を参照して、ハッチングで示す画素が処理対象となる画素であり、説明のため各画素に符号を付している。画素D05が処理対象画素であり、1つ前のラインの画素がD06である。微分比較フィルタ部342,343は、処理対象画素を含む前10ラインの画素の1次微分値を用いて、画素値の変化の有無および変化の方向を検出する。なお、ここでは、処理対象画素を含む前10ラインの画素の画素値の変化を検出するようにしたが、画素値の変化を検出するための画素数を10画素に限定するものではなく、画素値の変化を検出するための画素数は、原稿第205の移動速度により定めればよい。
微分比較フィルタ部342は、黒色のノイズを検出するために、画素値が減少する方向を検出する。具体的には、微分比較フィルタ部342は、処理対象画素を含む前10ラインの画素の1次微分値がプラス符号である画素数が所定のしきい値SignRef(K)を超えれば画素値が減少する変化があると判断する。ただし、微分比較フィルタ部342は、文字をノイズと誤検出するのを防止するため、ダイナミックレンジを用いて次の制約を満たすことを条件にしている。
(1)処理対象画素D05の後ろ5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef1(K)であること。
MAX(D00,D01,D02,D03,D04)−MIN(D00,D01,D02,D03,D04)<DRRef1(K)
(2)処理対象画素D05を含む前5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef2(K)であること。
MAX(D05,D06,D07,D08,D09)−MIN(D05,D06,D07,D08,D09)<DRRef2(K)
(3)処理対象画素D05の前の5ライン〜9ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef3(K)であること。
MAX(D10,D11,D12,D13,D14)−MIN(D10,D11,D12,D13,D14)<DRRef3(K)
(4)処理対象画素D05の前の10ライン〜14ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef4(K)であること。
MAX(D15,D16,D17,D18,D19)−MIN(D15,D16,D17,D18,D19)<DRRef4(K)
微分比較フィルタ部342は、処理対象画素を含む前10ラインの画素の1次微分値がプラス符号である画素数が所定のしきい値SignRef(K)を超え、かつ、上記4つの制約条件の全てを満たすことを条件に、処理対象画素の値を「1」とする論理データを論理和素子344に出力する。論理データは、上記条件のいずれか1つでも満たされない場合には処理対象画素の値は「0」である。
微分比較フィルタ部343は、白色のノイズを検出するために、画素値が上昇する方向を検出する。具体的には、微分比較フィルタ部343は、処理対象画素を含む前10ラインの画素の1次微分値がマイナス符号である画素数が所定のしきい値SignRef(W)を超えれば画素値が上昇する変化があると判断する。ただし、微分比較フィルタ部343は、文字をノイズと誤検出するのを防止するため、ダイナミックレンジを用いて次の制約を満たすことを条件にしている。
(1)処理対象画素D05の後ろ5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef1(W)であること。
MAX(D00,D01,D02,D03,D04)−MIN(D00,D01,D02,D03,D04)<DRRef1(W)
(2)処理対象画素D05を含む前の5ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef2(W)であること。
MAX(D05,D06,D07,D08,D09)−MIN(D05,D06,D07,D08,D09)<DRRef2(W)
(3)処理対象画素D05の前の5ライン〜9ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef3(W)であること。
MAX(D10,D11,D12,D13,D14)−MIN(D10,D11,D12,D13,D14)<DRRef3(W)
(4)処理対象画素D05の前の10ライン〜14ラインの画素の画素値のダイナミックレンジが所定のしきい値DRRef4(W)であること。
MAX(D15,D16,D17,D18,D19)−MIN(D15,D16,D17,D18,D19)<DRRef4(W)
微分比較フィルタ部343は、処理対象画素を含む前10ラインの画素の1次微分値がマイナス符号である画素数が所定のしきい値SignRef(W)を超え、かつ、上記4つの制約条件の全てを満たすことを条件に、処理対象画素の値を「1」とする論理データを論理和素子344に出力する。論理データは、上記条件のいずれか1つでも満たされない場合には処理対象画素の値は「0」である。
論理和素子344は、微分比較フィルタ部342,343それぞれから論理データが入力され、それらの論理データの論理和を算出し、算出して得られる論理データを出力する。論理和素子344が出力する論理データをGRAEという。
図16に戻って、ノイズ検出許可領域決定部323Rは、先端グラデーション検出部321Rから論理データGRAが入力され、後端グラデーション検出部322Rから論理データGRAEが入力される。ノイズ検出許可領域決定部323Rは、先端グラデーション検出部321Rから値が「1」の論理データGRAが入力された以降に、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されることを条件に、先端グラデーション検出部321Rから値が「1」の論理データGRAが入力されたラインから、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されるまでのラインを、ノイズ検出を許可する領域として、値が「1」の論理データを判定部315Rに出力する。
先端グラデーション検出部321Rが出力する論理データGRAを、白色のグラデーション領域の場合に値を「1」とし、黒色のグラデーション領域の場合に値を「2」とし、その他の場合に値を「0」とし、後端グラデーション検出部322Rが出力する論理データGRAEを、白色のグラデーション領域の場合に値を「1」とし、黒色のグラデーション領域の場合に値を「2」とし、その他の場合に値を「0」としてもよい。この場合、ノイズ検出許可領域決定部323Rは、先端グラデーション検出部321Rから値が「1」の論理データGRAが入力された以降に、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されることを条件に、先端グラデーション検出部321Rから値が「1」の論理データGRAが入力されたラインから、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されるまでのラインを、ノイズ検出を許可する領域として、値が「1」の論理データを判定部315Rに出力する。また、ノイズ検出許可領域決定部323Rは、先端グラデーション検出部321Rから値が「2」の論理データGRAが入力された以降に、副走査方向に同じ位置の画素の値が「2」の論理データGRAEが後端グラデーション検出部322Rから入力されることを条件に、先端グラデーション検出部321Rから値が「2」の論理データGRAが入力されたラインから、副走査方向に同じ位置の画素の値が「2」の論理データGRAEが後端グラデーション検出部322Rから入力されるまでのラインを、ノイズ検出を許可する領域として、値が「1」の論理データを判定部315Rに出力する。
ここで、判定部315Rは、グラデーション検出部311Rのノイズ検出許可領域決定部323Rから入力される論理データについては、論理積素子306から入力される論理データEDGEとノイズ検出許可領域決定部323Rから入力される論理データとの論理積を算出し、算出して得られる論理データを検出エリア拡張処理部316に出力する。
<第2の変形例>
上述したノイズ検出処理部259では、Rデータで第1特徴画素であって、GデータおよびBデータのいずれでも拡張された第2特徴画素でない画素が副走査方向に連続する主走査方向エッジの先端に、背景エッジが存在すればノイズと判定するものである。原稿の背景に変化がなければ、主走査方向エッジはその後端にグラデーション領域を含むはずである。このため、主走査方向エッジの先端の背景エッジの検出に加え、後端のグラデーション領域を検出することにより、主走査方向エッジをノイズとして検出する精度を向上することができる。
図19は、変形例における背景エッジ検出部312Rの詳細な構成を示す機能ブロック図である。図19を参照して、変形例における背景エッジ検出部312Rは、先端背景エッジ検出部324Rと、後端グラデーション検出部322Rと、ノイズ検出許可領域決定部325Rとを含む。先端背景エッジ検出部324Rは、図10に示した背景エッジ検出部312Rと同じ構成である。また、後端グラデーション検出部322Rは、図17に示した後端グラデーション検出部322Rと同じ構成である。従ってこれらについてここでは説明を繰り返さない。
ノイズ検出許可領域決定部325Rは、先端背景エッジ検出部324Rから論理データBEが入力され、後端グラデーション検出部322Rから論理データGRAEが入力される。ノイズ検出許可領域決定部325Rは、先端背景エッジ検出部324Rから値が「1」の論理データBEが入力された以降に、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されることを条件に、先端背景エッジ検出部324Rから値が「1」の論理データBEが入力されたラインから、副走査方向に同じ位置の画素の位置の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されるまでのラインを、ノイズ検出を許可する領域として、値が「1」の論理データを判定部315Rに出力する。
先端背景エッジ検出部324Rが出力する論理データBEを、白色のゴミを検出するための判定式で背景エッジが検出された場合の値を「1」とし、黒色のゴミを検出するための判定式で背景エッジが検出された場合の値を「2」とし、その他の場合に値を「0」とし、後端グラデーション検出部322Rが出力する論理データGRAEを、白色のグラデーション領域の場合に値を「1」とし、黒色のグラデーション領域の場合に値を「2」とし、その他の場合に値を「0」としてもよい。この場合、ノイズ検出許可領域決定部325Rは、先端背景エッジ検出部324Rから値が「1」の論理データBEが入力された以降に、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されることを条件に、先端背景エッジ検出部324Rから値が「1」の論理データBEが入力されたラインから、副走査方向に同じ位置の画素の値が「1」の論理データGRAEが後端グラデーション検出部322Rから入力されるまでのラインを、ノイズ検出を許可する領域として、値が「1」の論理データを判定部315Rに出力する。また、ノイズ検出許可領域決定部325Rは、先端背景エッジ検出部324Rから値が「2」の論理データBEが入力された以降に、副走査方向に同じ位置の画素の値が「2」の論理データGRAEが後端グラデーション検出部322Rから入力されることを条件に、先端背景エッジ検出部324Rから値が「2」の論理データBEが入力されたラインから、副走査方向に同じ位置の画素の値が「2」の論理データGRAEが後端グラデーション検出部322Rから入力されるまでのラインを、ノイズ検出を許可する領域として、値が「1」の論理データを判定部315Rに出力する。
判定部315Rは、背景エッジ検出部312Rのノイズ検出許可領域決定部325Rから入力される論理データについては、論理積素子306から入力される論理データEDGEとノイズ検出許可領域決定部325Rから入力される論理データとの論理積を算出し、算出して得られる論理データを検出エリア拡張処理部316に出力する。
以上説明したように、原稿台上のゴミは、3つのラインセンサ213R,213G,213Bそれぞれによって原稿の異なる位置で読取られるので、原稿上のゴミを読み取って得られるデータは、Rデータ、GデータおよびBデータのうち1のデータのみに存在する主走査方向エッジとなる。さらに、原稿台205がラインセンサ213R,213G,213Bに相対して移動するため、Rデータ、GデータおよびBデータの1のデータのみから検出される主走査方向エッジのうち、エッジの端の画素値が変化する主走査方向エッジとなる場合がある。画像読取装置10のノイズ検出処理部259は、3つのラインセンサ213R,213G,213Bが出力するRデータ、GデータおよびBデータそれぞれから主走査方向に画素値が変化する主走査方向エッジを検出し、Rデータ、GデータおよびBデータの1のデータのみから検出された主走査方向エッジであって、副走査方向に連続する所定数の画素の画素値が変化するグラデーション領域を含む主走査方向エッジをノイズとする。このため、原稿を読取った画像から原稿台に存在するゴミを読み取って発生するノイズを検出する精度を向上させることができる。
また、原稿が白色の背景で黒ベタの領域を有する場合に、原稿の背景と黒ベタの領域との境界は、副走査方向エッジとして検出される。黒色のゴミが原稿台に付着していても原稿の黒ベタの領域を読み取っている間はゴミにより発生するノイズは主走査方向エッジとして検出されないが、原稿の背景を読み取っている間はゴミにより発生するノイズは主走査方向エッジとして検出される。逆に、白色のゴミが原稿台に付着していても原稿の背景を読み取っている間はゴミにより発生するノイズは主走査方向エッジとして検出されないが、黒ベタの領域を読み取っている間はゴミにより発生するノイズは主走査方向エッジとして検出される。この場合、検出される主走査方向エッジは、その端で画素値の変化が少ないので、グラデーション領域が検出されない。このため、Rデータ、GデータおよびBデータの1のデータのみから主走査方向エッジが検出された場合、検出された主走査方向エッジの周辺の領域に副走査方向に画素値が変化する副走査方向エッジが検出されることを条件に、主走査方向エッジをノイズとする。これにより、原稿を読取った画像から原稿台に存在するゴミを読み取って発生するノイズを検出する精度をさらに向上させることができる。
なお、本実施の形態における画像読取装置10では、第2明度差検出部302R,302G,302Bを設けるようにしたが、これらを省略するようにしても良い。この場合には、第1明度差検出部301R,301G,301Bから検出結果拡張処理部303R,303G,303Bに第1特徴画素を「1」とする論理データが出力され、検出結果拡張処理部303R,303G,303Bで第1特長画素が拡張される。そして、第1特徴画素であって、他のデータで拡張した第1特徴画素でない画素がノイズ画素として検出される。
また、本実施の形態においては、読取部213を本体部103に固定して原稿を走査する例を示したが、読取部213を移動させて原稿を走査する場合にも適用することができる。例えば、上部規制板を白色または黒色の単色にしておき、読取部213または光源206、反射ミラー209および反射部材208を副走査方向に移動させて原稿を走査する。この走査中に原稿台205を副走査方向に振動させることにより、原稿台205に付着したゴミを検出することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10 画像読取装置、20 画像形成装置、103 本体部、110 画像読取装置、201 タイミングローラ対、202 ローラ対、203 上部規制板、205 原稿台、206 光源、207 通紙ガイド、208 反射部材、209 反射ミラー、211 レンズ、213 読取部、213R,213G,213B ラインセンサ、215 画像処理部、217 モータ制御部、219 モータ、251 A/D変換部、253 シェーディング補正部、255 ライン間補正部、257 色収差補正部、259 ノイズ検出処理部、260 ノイズ補正部、261 プリンタインターフェース、263 制御部、265 位置検出部、301R,301G,301B 第1明度差検出部、302R,302G,302B 第2明度差検出部、303R,303G,303B 検出結果拡張処理部、311R,311G,311B グラデーション検出部、312R,312G,312B 背景エッジ検出部、315R,315G,315B 判定部、316R,316G,316B 検出エリア拡張処理部、321R 先端グラデーション検出部、322R 後端グラデーション検出部、323R,325R ノイズ検出許可領域決定部、324R 先端背景エッジ検出部。