以下、本発明の実施の形態を詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係る画像読取装置100を備える画像形成装置111の一例であるデジタルカラー複合機を示す。
画像形成装置111は、画像読取装置100と画像形成装置本体105を備える。
画像形成装置本体105は、公知の電子写真方式により画像形成を行う画像形成部110を備える。画像形成部110は、感光体、露光装置、現像装置、転写装置、定着装置を備える。露光装置は、画像入力部画像読取装置で取得された画像情報に基づき感光体に静電潜像を形成する。現像装置は、静電潜像をトナーにより現像剤像に現像する。転写装置は、現像剤像を搬送されてきた記録媒体に転写する。定着装置は、記録媒体の上の現像剤像を記録媒体に定着させる。
画像読取装置100は、対象物の一例となる原稿102を載置するための原稿トレイ101と、原稿読取ユニット103、106とを備えている。原稿読取ユニット103、106は、原稿搬送モータによって原稿トレイ101に載置された原稿102を、原稿台ガラス112の上に搬送し、原稿画像として読み取る。原稿台ガラス112上の原稿102の背面には原稿背景板が設けられている。原稿読取ユニット103、106での原稿画像の読取が終了すると、画像読取装置100は、原稿102を排紙トレイ104に排出する。なお、原稿の片面だけを読み取る場合は原稿読取ユニット103を用いて画像を読み取り、原稿の両面を読み取る場合は原稿読取ユニット103、106を用いて画像を読み取る。原稿読取ユニット103、106の構成は同じであるので、以下、原稿読取ユニット106を例に説明する。
図2は、原稿読取ユニット106の構成例を示す模式図である。原稿読取ユニット106は、光源201、レンズ202、ラインセンサ203、ミラー204,205,206,207を備えている。光源201は、原稿読取位置107を通過する原稿102に向けて光を照射する所定部位に設けられている。ミラー204,205,206,207は、原稿102からの反射光をレンズ202およびラインセンサ203に導く。ラインセンサ203は、レンズ202により導かれた原稿102からの反射光を複数の受光素子でそれぞれ光電変換し、反射光の強さに応じた信号を出力する。レンズ202およびミラー204,205,206,207は、原稿読取ユニット106の光学系を構成する。この光学系の解像度は、ラインセンサ203の解像度よりも低い。その理由については後述する。
次に、ラインセンサ203について説明する。ラインセンサ203は、例えばCCD(Charge-Coupled Device)リニアイメージセンサである。ラインセンサ203は、原稿102からの反射光を受光する受光素子を複数配列して設けられる。一つの受光素子が一つの画素に対応する。一つの受光素子の幅が1画素幅に対応する。例えば、3画素幅とは、3つの受光素子に対応する幅を示す。なお、原稿102の画像を説明する場合における画素とは、ラインセンサ203の1画素の受光素子で読み取られる画像を、1画素(1画素幅)の画像として説明する。受光素子は、赤い光(第1色:R)を検出する第1受光素子、緑の光(第2色:G)を検出する第2受光素子および青の光(第3色:B)を検出する第3受光素子を含む。R,G,Bの各受光素子は、1画素幅毎に所定方向に周期的に配列される。これにより当該方向においてR→G→Bが繰り返される受光素子列が形成される。ラインセンサ203は、このような受光素子列を複数列配置したものとなる。本明細書では、赤い光を受光する受光素子に対応する画素をR画素、緑の光を受光する受光素子に対応する画素をG画素、青の光を受光する受光素子に対応する画素をB画素と呼ぶ。また、受光素子列で形成される第1の方向の列を「ライン」と呼ぶ。一つの受光素子列で一つのラインが形成される。ラインセンサ203は、一つのラインを形成する受光素子列が、それぞれ、第1の方向と直交する第2の方向に所定間隔で複数ライン分配列されている。
図3は、ラインセンサ203における受光素子の配列構造の説明図である。ラインセンサ203は、第1方向である主走査方向で7500画素、該第1方向に対して直交する第2方向である副走査方向で3列のラインを読み取るように構成されている。ここでは主走査方向に600dpi(dots per inch)の解像度で画像を読み取るものとして説明するが、解像度は一例にすぎない。なお、主走査方向とは、複数の受光素子が1列に並べられる方向であり、原稿の読み取り時の原稿の幅方向(搬送方向と直交する方向)に対応する方向である。副走査方向とは、主走査方向と直交する方向であり、原稿の読み取り時の原稿の搬送方向に対応する方向である。
3列のラインの受光素子列は、副走査方向に所定画素幅(所定間隔)ずつ離れ、かつ、R→G→Bの周期の始端画素の色が隣り合う列のものと異なるように配置される。図3の例では、ライン間隔は1画素である。したがって、ラインL1とラインL2との間は2画素、ラインL1とラインL3との間は4画素、それぞれ副走査方向に離れた位置に受光素子列が配列されている。また、ラインL1の始端画素の色は「R」(赤)、ラインL2の始端画素の色はRと1画素分異なるG(緑)、ラインL3の始端画素の色はGと1画素分異なるB(青)である。つまり、主走査方向では、画素の色がR→G→B→R→G→B→・・・の規則性を有している。副走査方向に見ると、ラインL1とラインL2では上記規則性を1画素主走査方向にずらした配列となる。ラインL1とラインL3では上記規則性を主走査方向に2画素分主走査方向にずらした配列となる。そのため、ラインセンサ203には、いわゆる千鳥状に、R、G、Bの各受光素子が配置されたものとなる。つまり、第1受光素子、第2受光素子および第3受光素子は、それぞれ同一色の光を受光する受光素子が隣り合わないように配列されている。原稿102を読み取る場合、ラインセンサ203は、上記の画素数だけ離れた位置の信号の検出結果を出力することとなる。
各ラインL1、L2、L3の受光素子は、それぞれ当該波長(Rであれば赤い光の波長)の光をピーク透過波長とする透光部材300と、透光部材300を透過した光の強度に応じたレベルの信号を出力する光半導体素子とを含んで構成される。透光部材300は該当色(Rであれば赤い色)を透過させるフィルタであり、光半導体素子は、例えばフォトダイオードである。ピーク透過波長とは、フィルタの透過率が最大となる波長である。ただし、それ自体で該当色を受光できる素子の場合、透光部材300は不要である。
図4は、第1実施形態に係る画像読取装置の制御系統の構成図である。画像読取装置は、CPU401と不揮発性メモリ409とを主たる構成要素とするコンピュータを備えている。CPU401は、不揮発性メモリ409に格納されたコンピュータプログラムを読み出して実行することにより、図1に示した構成部品を有するコンピュータを画像読取装置として機能させる。そして、特徴的な画像読取方法を実行させる。CPU401は、また、操作部408に入力されたユーザからの指示に基づき、光源201、ラインセンサ203、原稿搬送モータ105などの動作を制御し、原稿102の画像を読み取る制御をも行う。
この制御系統の動作の概要は以下のとおりである。CPU401はラインセンサ203を制御して、原稿画像を、主走査方向および副走査方向でそれぞれ隣り合う色が異なる複数の画素の集合として読み取る。ラインセンサ203の各色の画素は、原稿から反射された光に基づいて、各画素に入力された光の強さ(光量)に応じた信号を出力する。この信号は、原稿画像の各色の濃度情報と対応する。これらの信号はアナログであるため、A/D変換回路402でデジタル信号である画像データに変換される。ここでは、便宜上A/D変換回路402が8ビット分解能とするが、分解能は例示である。CPU401は、読み取った各色の画像データを、受光素子列毎に、当該画像データと他の画像データとの相対的な位置情報と関連付けて所定のメモリであるラインメモリ404に格納する。相対的な位置情報は、ラインセンサ203の各受光素子の配置位置である。ラインメモリ404のアドレスと対応する場合は、当該アドレスとなる。データソート回路403は、ソート手段の一例となる回路であり、格納された各画像データを同一色の画素が隣り合うように、かつ、同一色の画素列毎に並び替える。
ラインメモリ404に格納され、データソート回路403で並び替えて読み出される画像データの状態を図5に示す。ラインメモリ404には、まず、ラインセンサ203の各ラインに対応した受光素子の配列順序で画像データが格納される。すなわち、図5(a)に示すように、5つのラインL1、3つのラインL2、1つのラインL3の画像データがそれぞれラインメモリ404に格納される。これは、ラインL3での画像読取が終了する時点で、2画素分離れたラインL2では既に3ライン分の読み取りが終了し、5画素分離れたラインL1では既に5ライン分の読み取りが終了しているためである。この時点では、R,G,Bの各画像データは、1つのラインに混在した状態でラインメモリ404に格納されている。
ラインL1とラインL2では、副走査方向に2画素、ラインL1とラインL3では、副走査方向に4画素離れて配置されている。そのため、あるタイミングで取得したラインL2の画像データは、ラインL1に対して2画素、ラインL3の画像データはラインL1に対して4画素分だけ副走査方向にずれた位置で受光した信号に対応する。そのため、データソート回路403は、これらの画像データをR,G,Bの色毎に並び替える際に、ずれた画素分ずつシフトさせて読み出して保存する。すなわち、ラインL2での画像データは2画素ずつ、ラインL3での画像データは4画素ずつ副走査方向にシフトさせて読み出して保存する。これにより、ラインL1〜L3の配置構造を考慮した画像データの並び替えが可能となる。このような並び替えを行うため、データソート回路403は、ラインメモリ404に格納された画像データを図5(b)に示す順番で読み出して保存する。なお、保存はラインメモリ404への上書きであってもよく、ラインメモリ404の別領域への書き込みであってもよい。
図5(b)において、Lはライン番号を示す。L=1はラインL1を示す。nはラインメモリ404のライン座標を示す。n=0はA/D変換回路402から入力された最新のライン座標を示す。n=1はn=0に対して1ライン前のライン座標であることを意味する。n=2以降も同様である。xはラインセンサ203の受光素子(1画素分)の主走査方向の位置(座標)に対応する。第1実施形態において、xは0〜7499の範囲であるものとして説明する。
まず、ラインL1に着目する。データソート回路403は、「L=1、n=4、x=0」の読み出しを行う。読み出しが完了すると、「L=1、n=3、x=0」の画像データを読み出して「L=1、n=4、x=0」にそれを書き込む。n=3,2,1についても同様の処理を行う。「L=1、n=0、x=0」の画像データを読み出し、「L=1、n=1、x=0」にそれを書き込んだ後は、新たな画像データを取り込む。すなわち、「L=1、n=0、x=0」に、新たにA/D変換回路402から伝達されたラインセンサ203のx=0の主走査方向の位置に該当する画像データを書き込む。
このような先入れ先出しの動作をFIFO(First In First Out)動作と呼ぶ。データソート回路403は、このFIFO動作をx=1、x=2、・・・x=7499について行う。ラインL1に対するFIFO動作を終えると、データソート回路403は、ラインL2,L3に対しても同様のFIFO動作を行う。このようにしてデータソート回路403は、色毎に並べ替えられた画像データの列を順次形成する。赤い色の画像データの列を「Rライン」,緑の色の画像データ列を「Gライン」,青い色の画像データ列を「Bライン」と呼ぶ。
データソート回路403により、Rライン,Gライン,Bラインに並べ替えられた画像データは、シェーディング補正回路405に入力される。シェーディング補正回路405は、光源201の光量の不均一性の影響やラインセンサ203の画素感度の影響を補正するためにシェーディング補正する回路である。シェーディング補正された画像データは、ゴミ検出回路406に入力される。
ゴミ検出回路406は、異なるラインで同一色の光を受光する受光素子の検出結果に基づいて原稿画像に存在しない異常画素すなわちゴミを検出する。本例では、データソート回路403で並び替えられた画素の状態に基づいてゴミを検出する。例えば、並び替えられたいずれか一色又は各色の画像データのデジタル値を比較することによりゴミを検出する。そして、検出されたゴミが主走査方向において所定の画素幅以下かどうかを判定し、判定結果に応じた処理を実行可能にする。本例では、検出したゴミの位置や大きさなどの情報を表す所定のフラグ、すなわち「ゴミフラグ」を生成し、これを後段のゴミ補正回路407に伝達する。ゴミ検出回路406は、また、ゴミを検出したことをCPU401に割込信号で通知する。
ゴミ補正回路407は、補正手段の一例となる回路であり、ゴミ検出回路406から伝達されたゴミフラグに基づきゴミ補正処理を行う。ゴミ補正処理についての詳細は後述する。操作部408は、ユーザからの読取開始指示、読取原稿サイズの指定などの操作指示入力および画像読取装置側からユーザに対するメッセージを表示できるように構成されている。
ここで原稿読取ユニット106の光学系(レンズ202,ミラー204,205,206,207)の解像度をラインセンサ203の解像度よりも低くする理由について、詳しく説明する。例えば図6に示す主走査方向に1画素毎に白黒が繰り返される線(「万線」と呼ぶ)の原稿(「万線原稿」と呼ぶ)をラインセンサ203で読み取ったとする。主走査方向は、ラインセンサ203の各ラインと水平の方向であり、万線原稿が搬送される方向が副走査方向である。原稿読取ユニット106の上記光学系は、図7(c)に示すようなMTF(Modulation Transfer Function)特性を有するものとする。MTFは、レンズ性能を評価する指標の一つである。光学系の結像性能を知るために、被写体(ここでは原稿)の持つコントラストをどの程度忠実に再現できるかを空間周波数特性として表現したものがMTFである。図7(c)の横軸は解像度、縦軸は比率(0〜1.0)である。MTFは一般にレンズや光学系によって主走査方向、副走査方向で異なる特性を示すが、ここでは説明の簡略化のため、主走査方向と副走査方向のMTF特性が同一であるものとする。
万線の周期が600dpiである万線原稿をラインセンサ203で読み取った場合の読取特性を図7(a),(b)に示す。図7(a)はMTFが全ての解像度にて理想的な1.0であった場合の読取特性であり、図7(b)は実際のMTFの読取特性である。図7(a),(b)の横軸は主走査方向の座標、縦軸はラインセンサ203のA/D変換後の読取レベル(デジタル値:0〜255)である。読取レベルは、255に近いほど白、0に近いほど黒を示す。MTFが全ての解像度で理想的な1.0であれば、万線原稿は図7(a)のように忠実に読み取られるが、図7(c)のようなMTF特性の原稿読取ユニット106は、600dpiでは解像力がない。そのため、実際に万線原稿を読み取ったときの読取レベルは図7(b)のようになる。すなわち、万線の白と黒がいわゆるボケにより混ざったグレーとして読み取られる。
これに対し、万線の周期が300dpiの場合、読取特性は、理想的なMTFでは図7(d)であるが、図7(c)を参照すると、MTFが約0.5であるため、実際には図7(e)のような読取特性となる。この場合もボケによって万線の読取レベルがグレーに近づき、1画素の読取レベルは隣接数画素からの影響を受けた結果となる。
本実施形態では、このように、一つの画素の読取レベルが隣り合う画素にも影響するという読取特性を利用して、ゴミ検出回路406によってゴミを検出する。
次に、ゴミ検出回路406について詳しく説明する。図8(a)は、原稿読取ユニット106にゴミが付着した状態を示す。すなわち、原稿台ガラス208の読取位置上にゴミ80が付着している。図8(b)はこのゴミ80がラインセンサ203のどこに対応する位置かを示している。図示の例では、ラインL1の2周期目のR画素の位置にゴミ80が存在する。このときのラインセンサ203の各ラインL1,L2,L3の読取結果を示したのが図9(a)である。ゴミ80が付着しているのはラインL1の2周期目のR画素の位置であるが、上述した原稿読取ユニット106の読取特性により、隣接するB画素およびG画素にもその影響が現れ、読取レベルが低下している。この状態はゴミ80が該当位置に付着している間継続する。図9(b)は、データソート回路403によって図9(a)の読取結果をRライン,Gライン,Bラインに並べ替えられた画像データの例を示す。図9(b)に示すように、Rラインのみならず、Gライン,Bラインにおいても、それぞれ1画素のレベル低下が生じている。そのため、どのラインにおいても、1画素分のゴミの存在を検出することができる。
次に、ゴミではない、原稿に存在する線の読取結果について説明する。例えば、原稿に図10(a)に示す1画素幅の線が存在し、この線が図10(b)に示すラインセンサ203の該当位置で読み取られたものとする。このときのラインセンサ203のラインL1,L2,L3の読取結果を図11(a)に示す。原稿の線は、ラインセンサ203において、ラインL1、ラインL2、ラインL3の順に読み取られる。図11(b)は、図11(a)のように読み取られた読取結果がデータソート回路403によって色毎に並べ替えられた状態を示す。図11(a),(b)に示されるように、原稿に存在する線の場合は、並べ替えられても、どのラインでも読取レベルが低下している。つまり、3画素分の読取レベルの低下が生じている。
ただし、この例ではR,G,Bが同一の読取レベルである線として説明したが、色によっては読取レベルが異なる場合がある。例えば、原稿に存在する線がシアン色であった場合、その線を読み取ったときのラインセンサ203の各ラインL1,L2,L3の読取結果は図12(a)のようになる。データソート回路403で並べ替える前、各ラインではそれぞれ1画素分のレベル低下が生じている。これは、原稿に存在する線は1画素であるが、上述したとおり、原稿読取ユニット106の読取特性により隣接する画素でもその影響が現れるためである。すなわち、ラインL2でレベル低下しているR画素は、ラインL1で読み取られた線に隣接しているため、原稿読取ユニット106の読取特性によってボケが発生し、レベル低下として現れる。ラインL3のR画素のレベル低下も同様となる。
このシアン色の線を読み取った際のデータソート回路403によって並べ替えられた状態を図12(b)に示す。図中、上から順にRライン、Gライン、Bラインが示されている。図12(b)に示すように、並べ替えられた後は、Rラインだけのレベル低下となる。つまり、シアン色の線であった場合、G画素およびB画素ではレベル低下なく読み取られるが、ラインL1のR画素では、線の中心を読むため、レベル低下がより大きくなる。これをデータソート回路403でRライン,Gライン,Bラインに並べ替えると、原稿読取ユニット106の特性によって、Rラインだけが3画素に渡ってレベル低下した線として確認することができる。
上記のように、原稿の線は1画素幅であっても、データソート回路403によって並べ替え後に原稿読取ユニット106の読み取り特性によって3画素幅として扱われる。これに対し、原稿台ガラス上に載ったゴミは、データソート回路403で画素を並べ替えることにより、図9に示すようにどのラインでも1画素幅となる。ゴミ検出回路406は、このような性質を利用して、ラインセンサ203で検出された同一色の画素の状態に基づいて対象物である原稿の画像に存在しないゴミを検出している。
上記のようなゴミ検出を行うゴミ検出回路406の内部ブロック図を図13に示す。ゴミ検出回路406は、画像データ2値化回路1501、ヒストグラム生成回路1502、ヒストグラムデータ2値化回路1503、1画素幅検出回路1504、画像データ遅延回路1505を有する。画像データ2値化回路1501は、シェーディング補正回路405から入力された画像データをCPU401で設定された所定の閾値と比較し、閾値以下の画像データを「1」、それ以外のデータを「0」として2値化する。2値化されたデータを「2値化データ」と呼ぶ。ヒストグラム生成回路1502は、画像データ2値化回路1501から出力された2値化データの分布を表すヒストグラムデータを生成する。ヒストグラムデータは、並び代えた画素毎の分布であり、本実施形態では、原稿読取中1ライン毎に加算した累積加算値とする。このヒストグラムデータは、CPU401により、いつでも「0」にリセット可能とされる。
ヒストグラムデータ2値化回路1503は、ヒストグラム生成回路1502による累積加算値がCPU401からの設定値を上回った画素位置を「1」、上回っていない画素位置を「0」とし、これをゴミ候補フラグとして出力する。1画素幅検出回路1504は、ヒストグラムデータ2値化回路から出力されたゴミ候補フラグの中に1画素幅のものが存在した場合のみ、後段回路にゴミフラグとして出力する。画像データ遅延回路1505は、画像データをゴミフラグが表す画素幅と同じ幅の分を遅延させ、ゴミフラグとの相対的な位置情報と共に後段回路へ出力する。なお、図示しないが、画像データ遅延回路1505は、シェーディング補正回路405から入力されるRライン,Gライン,Bラインの画像データ用に3個用意されている。
このときのゴミ検出回路406の処理例を具体的に説明する。例えば原稿読取結果が図14(a)に示すようにゴミによる線(黒スジ)と原稿に存在する線とが同じ方向に延びる画像であったとする。上述した通り、ゴミによる線は1画素幅、原稿に存在する線は3画素幅である。この場合のヒストグラム生成回路1502の累積加算値とCPU401から設定された閾値(点線)との関係を図14(b)に示す。ヒストグラムデータ2値化回路1503は、閾値を上回った主走査方向の画素位置(主走査位置)を「1」、それ以外を「0」としたゴミ候補フラグを、各線の位置情報と共に1画素幅検出回路1504に出力する。その結果、図14(c)に示すように、まず、原稿に存在する短い線がゴミ候補フラグから消える。1画素幅検出回路1504は、また、ゴミ候補フラグの中から1画素幅のゴミ候補フラグを検出した場合は当該位置を「1」、それ以外の画素幅であった場合は「0」として後段回路に出力する。その結果、図14(d)に示すように、原稿に存在する長い線もゴミ候補フラグから消える。つまり、1画素幅以外の部分はすべてゴミ候補フラグから消えるため、原稿に存在する線の長さに関わらず、ゴミによる線(黒スジ)を確実に確認することができる。このようにして原稿台ガラス上にあるゴミを検出する。
1画素幅検出回路1504は、また、1画素幅のゴミフラグを一つでも検出した時点で、CPU401に割込信号でその旨を通知する。ヒストグラム生成回路1502に格納されている累積加算値は、CPU401から原稿1枚ごとにリセットされる。つまり、原稿1枚毎に、ゴミの検出が可能となる。
ゴミ補正回路407は、ゴミ検出回路406からのゴミフラグが表す位置の画素がゴミに起因する画素と判定し、その画素を同一色で隣り合う画素を用いて当該色に補正する。例えば、隣り合う左右画素の線形補間することにより当該色に補正する。ゴミ補正回路407に入力される画像データの読取レベル、ゴミフラグの状態、補正後の画像データの読取レベルの例を図15に示す。図15はRラインでの例である。ゴミ補正回路407は、ゴミフラグにより特定される画素の左隣接画素と右隣接の線形補間を行い、読取レベルが回復した画像データRaを生成する。左隣接画素と右隣接画素は、いずれもR画素なので、読取レベルの回復は容易であり、かつ、1画素幅の異常画素を同一色の画素で線形補間するので、補正痕が残りにくい。
ゴミ補正回路407は、ゴミ検出回路406からのゴミフラグが入力される度に自動的に上記補正処理を行い、補正後の画像データを後段回路へ出力する。
第1実施形態の画像読取装置において原稿を読み取る際のCPU401の処理手順を図16を参照して説明する。CPU401は、操作部408を監視し、ユーザからの読取開始指示があるまで待機する(S101:N)。読取開始指示があった場合(S101:Y)、CPU401は、読取前の準備として、光源201およびラインセンサ203を駆動する(S102)。また、ゴミ検出回路406に対して2値化のための閾値を設定する(S103)。さらに、ゴミ検出回路406のヒストグラム生成回路1502の累積加算値をリセットする(S104)。次に、CPU401は、原稿搬送モータ105を駆動して原稿搬送を開始する(S105)。原稿読取ユニット106が1枚の原稿読取を終了していない場合(S106:N)、CPU401は、ゴミ検出回路406からの割込信号があるか否かを監視する(S107)。割込信号がない場合(S107:N)、S106の処理に戻る。割込信号があった場合(S107:Y)、CPU401は、操作部408上に原稿台ガラス上にゴミがあることを示す警告メッセージを操作部408に表示し、ユーザへの清掃を促す(S108)。その後、S106の処理に戻る。1枚の原稿読取が終了し(S106:Y)、次の原稿があった場合、CPU401は、ゴミ検出回路406のヒストグラム累積加算値をリセットするとともに、S105の処理に戻り、次原稿の読み取りを開始する。次原稿がない場合(S109:N)、CPU401は、原稿読取動作を終了する(S109)。なお、操作部408に表示された警告メッセージは、操作部408に表示される確認ボタンを押すことで消去するこができる。ユーザは、原稿台ガラス上のゴミを清掃した後に、操作部408の確認ボタンを押す。
このように、第1実施形態によれば、ゴミの影響を、原稿に存在する画像からは得られない特徴の1画素幅にすることが可能となる。そのため、原稿に存在する線をゴミと誤検出することなく、ゴミによる線(黒スジ)を正確に検出することができる。これにより、ユーザに清掃を促すメッセージを表示したり、画像を補正するなどの制御を、正確な情報を基に行うことが可能となる。また、従来の同種装置のように読取手段を複数設ける必要がなくなるので、コスト的にも有利となる。
なお、本実施形態では、原稿の画像データは、主走査方向および副走査方向でそれぞれ隣り合う色が異なる複数の画素の集合として読み取られ、各画素の相対的な位置関係と関連づけてラインメモリ404に保存される。その後、原稿の画像データは、データソート回路403により、同一色の画素が隣り合うように、かつ、同一色の画素列毎に並び替えられる。しかしながら、このようにデータソート回路403による同一色への並び変えは必ずしも必要ではない。ラインメモリ404に保存された画像データを、同一色の画像データに並べ替えることなく、CPU401によりゴミ検出やゴミ補正の処理を行うようにしてもよい。
[第2実施形態]
第1実施形態では、ゴミの影響を1画素幅にすることでゴミ検出を行う例を説明した。しかしながら、ゴミの大きさや形は不均一であることが多く、ゴミが付着した位置等によっては正確にゴミを検出できないことが予想される。また、レンズなどの影響で、実際のゴミよりも大きく結像される場合もある。そこで、第2実施形態では、これらの状況を鑑み、より正確にゴミを検知し、補正を行うための実施の形態例を説明する。
図17は、画像読取装置内の光学部品などに起因してラインセンサ203上に大きく結像したゴミの状態を示す。図17のxは、図5同様、ラインセンサ203における個々の受光素子の位置に対応する。つまり、図17は、ラインセンサ203のラインL1のx2(B)、x3(R)、x4(G)の位置にゴミが結像された状態を示す。xは0(基準位置)、x1はxから1画素幅だけ主走査方向にずれた位置(x+1)である。x2はxから2画素幅だけ主走査方向にずれた位置(x+2)である。x3、x4についても同様である。(B)はB画素、(R)はR画素、(G)はG画素を意味する。
図17のような形状のゴミが結像すると、第1実施形態のゴミ検出回路406では、ラインL1のx2(B)、x3(R)、x4(G)の位置でゴミが検出される。ただし、実際にはラインL1のx1(G)およびx5(B)の位置にもゴミの端部が結像されることがある。図17では、ラインL1のx1(G)に結像された部分をゴミの先端、x5(B)に結像された部分をゴミの後端としている。この場合、ゴミの先端が結像されたラインL1のx1(G)の画素は、ゴミによる影響が少なく、周囲のG画素との読取レベルの差が顕著には表れない。そのため、第1実施形態のゴミ検出回路406ではこのゴミを正確に検知できないおそれがある。ゴミの後端が結像されたラインL1のx5(B)においても同様である。しかしながら、ゴミは同一位置に付着し続けることが多く、その場合、原稿画像に対しては副走査方向に連続するスジとして現れ、目立つものとなる。そこで、第2実施形態では、2値化データの分布が所定条件を満たす場合、例えば主走査方向で隣り合う画素がゴミでない場合、検出されたゴミ(異常画素)をそれぞれ隣り合う画素まで拡張するようにした。上記の例でいえば、x1(G)およびx5(B)の画素に対してもゴミフラグを拡張するようにした。
なお、図1に示した画像読取装置の構成、図2に示した原稿読取ユニット106および図3に示したラインセンサ203の構成は第1実施形態と同様であるため、ここでは説明を割愛する。図18は、第2実施形態における画像読取装置の制御系統の構成図である。第1実施形態について説明した構成要素については同一符号を付してある。第2実施形態では、ゴミの検出手段として、ゴミ検出回路406と共にフラグ拡張回路2401およびラインメモリ2402を追加した点が第1実施形態と異なる。
フラグ拡張回路2401およびラインメモリ2402の動作を、図19(a)〜(d)を参照して説明する。フラグ拡張回路2401には、図19(a)に示すように、ゴミ検出回路406からR,G,Bの色毎に並び替えられたゴミフラグが入力される。図示の例では、x2(B)、x3(R)、x4(G)の位置にゴミフラグが付与されている。フラグ拡張回路2401は、これらをラインセンサ203と同じ並びになるように、ラインメモリ2402に格納する。すなわち、図19(b)に示すように、x2(B)、x3(R)、x4(G)のようにゴミフラグをラインメモリ2402に格納する。これにより、ゴミがラインセンサ203上に結像された状態に戻される。次に、フラグ拡張回路2401は、ラインメモリ2402に格納したゴミフラグに対して、図19(c)に示すように、ゴミフラグの左右の隣接画素に対してゴミフラグを拡張させる。すなわち、x1(G)、x5(B)の画素に対してもゴミフラグを付与する。これにより、ゴミ検出回路406では検知できなかったゴミの端部も補正処理の対象とすることが可能となる。その後、図19(c)に示したラインメモリ2402に格納されているゴミフラグを、図19(d)のように、R,G,Bの色毎に並び替えて読み出し、ゴミ補正回路407に伝達する。その後のゴミ補正動作は第1実施形態と同様であるため、説明を割愛する。
以上の処理により、第1実施形態のゴミ検出回路406では検出しにくいゴミの端部が結像された画素に対しても補正をすることが可能となる。また、図19(d)に示したように、第2実施形態にて拡張したゴミフラグは、R,G,Bの色毎に並び変えると1画素幅の独立したゴミフラグになる。そのため、ゴミフラグを拡張しても補正痕が残りにくいという利点がある。
なお、第2実施形態では、ゴミフラグの左右、すなわち主走査方向の隣接画素に対してゴミフラグを拡張させる例を説明したが、副走査方向又は斜め方向の隣接画素に対してゴミフラグを拡張するようにしてもよい。
[第3実施形態]
第1実施形態では、ラインセンサ203上のR,G,Bのカラーフィルタ300を千鳥状に配列することでゴミの影響が各色とも1画素に分割できることを説明した。つまり、ヒストグラムデータ2値化回路1503から出力されたゴミ候補フラグの中から1画素幅のゴミフラグがあった位置の画像だけを補正対象画素とした。しかしながらゴミの大きさにはバラつきがあるため、必ずしも1画素幅に分解できないことが考えられる。このことを以下に説明する。
図20(a)は、R,G,Bの色毎に並び替えた際に、それぞれ1画素に分解できるゴミの例を示す。また、図20(b)は、R,G,Bの色毎に並び替えた際に2画素幅となるゴミの例を示す。これらの図において、xは、図5と同様、ラインセンサ203における受光素子の位置を表す。図20(a)の例では、ラインL1のx2(B)、x3(R)、x4(G)の位置にゴミが結像されている。この場合は、図5に示した手順で色毎に並び替えた際にR,G,B各色の1画素幅のゴミに分解することができる。一方、図20(b)の例では、ラインL1のx2(B)、x3(R)、x4(G)およびラインL2のx2(G)、x3(B)、x4(R)の位置にゴミが結像されている。そのため、図5に示した手順で色毎に並び替えると、Rラインに1つの2画素幅、Gラインに2つの1画素幅、Bラインに1つの2画素幅でゴミが分解される。すなわち、このようにラインセンサ203の複数のラインにまたがるようなゴミが付着すると、同一色毎に並び替えた際にも2画素幅以上のゴミが結像したものとなる。
また、第1実施形態では、1画素幅のゴミ画像に対して色毎に隣り合う画素から線形補間で補正を行う例を説明した。しかしながら、色毎に線形補間で補正を行う場合、原稿の縦線のエッジ部分等に比較的太いゴミがあると、補正することで、却って不要な色がついてしまう可能性がある。例えば、図21に示すように、黒(無彩色)縦線のエッジ部分を色毎に線形補間したとする。元の画像は、主走査方向の位置x〜x2に黒い縦線があり、x3〜x5に白い縦線がある。元の画像のA/D変換後のデジタル値は、x〜x2(黒い縦線)の位置では、R,G,B各色の画素とも「0」であり、x3〜x5の位置(白い部分)ではR,G,B各色の画素とも「100」である。これらの数値は大きい程明るいことを示す。ここで、x1,x2,x3のR画素の位置にゴミが存在する場合、xとx5の位置の画素で線形補間を行うことになる。すると、補正後のR画素のデジタル値はx1の位置:25、x2の位置:50、x3の位置:75となり、同一位置のG画素およびB画素と異なる数値となる。すると、元の画像は無彩色であったが、補正後にはx1〜x3の3画素の幅が無彩色ではなくなり、不要な色付きが発生する。図21では、黒い無彩色の縦線を例に挙げたが、例えば、色線のエッジ部分を補正した場合にも元の画像とは異なる不要な色付きが発生する。
この不要な色付きを低減するため、R,G,Bのいずれか1色でもゴミが存在する場合に、同一主走査方向の位置における他色についても同じように線形補間で補正することが考えられる。例えば図22は、黒(無彩色)縦線のエッジ部分を全色同時に線形補間した場合の例である。元の画像およびゴミの位置は図21と同じである。図22では、x1,x2,x3の位置のR画素にゴミが存在する場合、同一主走査方向の位置(x1,x2,x3)のG画素およびB画素も補正対象とする。このようにすると、R,G,B全ての色がxとx5の位置から線形補間される。これにより、補間した後のx1,x2,x3の位置でのR,G,Bの数値の差が補正前と等しくなるため、不要な色付きが発生しにくいものとなる。しかしながら、図22のように、同一位置における他色も同じように線形補間で補正すると、千鳥状のカラーフィルタ300を用いてR,G,B各色の1画素に分解したゴミが元のゴミの幅で補正されることになる。
図23は、R,G,B各色の1画素幅に分解したゴミ画像に対して、同一画素位置の他の色の画素も補正対象とする場合の模式図である。x2(B)、x3(R)、x4(G)にゴミがある場合、x2の位置のRとG、x3の位置のGとB、x4の位置のRとBも補正対象となる。これを色毎に見ると、3画素幅のゴミとなってしまう。そのため、補正対象とする画素が太くなり、1画素幅で補正したときに対し、補正痕が残りやすくなる。
そこで、第3実施形態では、異常画素(ゴミ)の画素数が所定条件を満たす場合、例えばゴミに相当する画素が主走査方向(第1の方向)で所定数以上連続しているという条件を満たす場合は全ての異常画素を同一色の画素に補正するようにした。また、ゴミに相当する画素が主走査方向で所定数よりも連続していない場合は各色の画素毎に当該画素の隣り合う画素を用いて補正するようにした。これにより、2画素幅以上のゴミを補正対象としても不要な色付きを低減しつつ、補正痕を目立たせずに補正することができる。以下、このような補正を可能にするための具体的な構成例を説明する。なお、図1に示した画像読取装置の構成、図2に示した原稿読取ユニット106および図3に示したラインセンサ203の構成は第1実施形態と同様であるため、ここでは説明を割愛する。
図24は、第3実施形態における画像読取装置の制御構成図である。第1実施形態において説明した構成要素については、同一符号を付してある。第3実施形態では、ゴミの検出手段として、ゴミ検出回路406に代えて新たなゴミ検出回路3001とフラグ合成回路3002を設けた点が異なる。また、ゴミの補正手段として、ゴミ補正回路407に代えてゴミ補正回路3003を設けた点が異なる。
第3実施形態のゴミ検出回路3001の内部ブロック図を図25に示す。ゴミ検出回路3001は、画像データ2値化回路3101、ヒストグラム生成回路3102、および、ヒストグラムデータ2値化回路3103を有している。画像データ2値化回路3101は、シェーディング補正回路405から入力された画像データを2値化する。すなわち、CPU401から設定された所定の閾値以下の画像データを「1」、それ以外の画像データを「0」とする。なお、画像データ2値化回路3101は、画素幅に応じて異なる閾値をCPU401から設定することが可能である。
ヒストグラム生成回路3102は、画像データ2値化回路3101からの2値化データを原稿読取中に1ライン毎に加算してヒストグラムデータを生成する。ヒストグラムデータは、画素幅に応じて生成する。ヒストグラムデータはCPU401から適宜「0」にリセット可能である。ヒストグラムデータ2値化回路3103は、ヒストグラム生成回路3102の加算値がCPU401から設定された所定の閾値を上回った位置を「1」、上回っていない位置を「0」とするゴミフラグとして出力する。
図26は、ゴミ検出回路3001によるゴミ検出処理の概念を示す図である。ここでは説明を簡略化するため、R画素についてのみ説明するが、G画素、B画素についても同様となる。また、便宜上、ゴミ画像の幅は1画素幅と2画素幅の例を説明するが、3画素幅以上の幅のゴミ画像に対しても適応が可能である。図26中のxは、図5と同様、ラインセンサ203の画素位置に対応する。また、縦方向のラインL1,L2,L3・・・L16は、異なる時間に読み取った副走査方向の受光素子列の読取結果を示している。
図26(a)は、各ラインの画像データ(デジタル値)である。数値が高いほど明るい画素、数値が小さいほど異常画素(ゴミ)である可能性が高いことを示す。例えば、ラインL1の主走査方向の位置x4の画素のデジタル値は「22」であり、異常画素(ゴミ)の可能性が高い。図26(b)は、画像データ2値化回路3101において、主走査方向の1画素のデジタル値が所定の閾値以下かどうかを判定した結果を示す。ここでは1画素に対する閾値が「30」と設定されているものとし、デジタル値が「30」以下の画素を強調表示している。図26(c)は、画像データ2値化回路3101にて上記デジタル値が「30」以下の画素を「1」、それ以外の画素を「0」として2値化した結果を示す。図26(d)は、図26(a)の画像データのデジタル値において、主走査方向で隣り合う2画素幅のデジタル値の加算値が所定の閾値以下かどうかを判定した結果である。数値は、対象画素と右隣画素のデジタル値を加算した数値である。
例えば、ラインL3のx4の位置に記載されている数値は、ラインL3でのデジタル値「22」と右隣画素の位置x5のデジタル値「33」を加算した「55」が記載されている。すなわち、主走査方向で隣り合う2画素幅のデジタル値が記載されている。ここでは2画素幅の閾値が「50」と設定され、上記加算した値が「50」以下の画素が強調表示されている。図26(e)は、画像データ2値化回路3101にて上記2画素のデジタル値が「50」以下の画素を「1」とし、それ以外の画素を「0」として2値化した結果である。1画素幅の2値化データと2画素幅の2値化データは、後段のヒストグラム生成回路3102に伝達される。なお、画像データ2値化回路3101では、画素幅に応じた画像データ2値化処理を並列で処理することができる。
図26(f)は、ヒストグラム生成回路3102において、図26(c)に示した1画素幅の2値化データを副走査方向に加算した1画素幅ヒストグラムデータを示している。例えば、x4の位置では、副走査方向に合計10画素が閾値以下になっていることを示している。同様に、図26(g)は、ヒストグラム生成回路3102において、図26(e)に示した2画素幅の2値化データを副走査方向に加算した2画素幅のヒストグラムデータを示している。例えば、x8の位置では副走査方向に合計10画素幅が閾値以下になっていることを示している。ヒストグラム生成回路3102は、1画素幅のヒストグラムデータと2画素幅のヒストグラムデータを後段のヒストグラムデータ2値化回路3103に伝達する。
図26(h)は、ヒストグラムデータ2値化回路3103において、図26(f)に示した1画素幅のヒストグラムデータを2値化した結果を示す。ここでは、CPU401から設定される閾値を「10」としており、ヒストグラムデータが「10」以上となっている位置を「1」とし、それ以外の位置を「0」とした1画素幅のヒストグラム2値化データを生成する。同様に、図26(i)は、ヒストグラムデータ2値化回路3103において、図26(g)に示した2画素幅のヒストグラムデータを2値化した結果を示す。ここでは、CPU401から設定される閾値を「10」としており、ヒストグラムデータが「10」以上となっている箇所を「1」とし、それ以外の箇所を「0」とした2画素幅のヒストグラム2値化データを生成する。ここで、2画素幅のヒストグラムデータは、2値化して「1」となった画素の右隣画素も「1」として2値化する。例えば、この図におけるx8の位置が「1」となった場合、右隣りのx9の位置も「1」として2値化する。
最終的に、1画素幅のヒストグラム2値化データと2画素幅のヒストグラム2値化データを合算し、図26(j)のようなゴミフラグを後段のフラグ合成回路3002に伝達する。このゴミフラグは、図26(a)に示される、主走査方向に13画素、副走査方向に16ラインの画像データのうち、ゴミである可能性が高いx4,x8,x9,x12の4つの列を表すものとなる。
画像データ遅延回路3104は、入力された画像データをゴミフラグと同じだけ遅延させ、この画像データとヒストグラムデータ2値化回路3103から出力されるゴミフラグとの位置関係を合わせて後段回路に出力する。
なお、図示しないが、図25に示すゴミ検出回路3001はシェーディング補正回路405から入力されるRライン,Gライン,Bラインの画像データ用に3個用意されており、並列動作する。これにより、Rライン,Gライン,Bラインにおける1画素幅および2画素幅の異常画素(ゴミ)を検出することができる。
第3実施形態では、2画素幅の2値化閾値は、画像データ2値化回路3101に設定する1画素幅の閾値の2倍よりも低い値に設定する。このようにすることで、2画素幅のゴミよりも1画素幅のゴミを検出しやすくするように調整することができる。
図27は、フラグ合成回路3002の内部ブロック図である。フラグ合成回路3002には、前段のゴミ検知回路3001から伝達された画像データとゴミフラグR,G,Bとが入力される。ゴミフラグRは、MAX_HOLD回路R3301に入力される。ゴミフラグGは、MAX_HOLD回路G3302に入力される。ゴミフラグBは、MAX_HOLD回路B3303に入力される。また、各ゴミフラグR,G,Bはまた、フラグOR回路3304にも同時に入力される。フラグOR回路3304は、入力されたゴミフラグR,G,Bを主走査方向の画素位置毎に論理和し、論理和後のゴミフラグを出力する。このようなゴミフラグを「ORフラグ」と呼ぶ。ORフラグは、後段のフラグ判定回路3305と、各色のMAX_HOLD回路3301,3302,3303とに伝達される。
各色のMAX_HOLD回路3301,3302,3303は、ORフラグが入力されている期間に入力された各色のゴミフラグの最大幅情報(MAX_R,MAX_G,MAX_B)を取得する。そして、入力された各色のゴミフラグと共に後段のフラグ判定回路3305に伝達する。フラグ判定回路3305は、各色のMAX_HOLD回路3301,3302,3303から送信された最大幅情報(MAX_R,MAX_G,MAX_B)とCPU401から設定されたフラグ判定閾値とを比較する。そして、このフラグ判定閾値に基づいて、各色のゴミフラグをそのまま出力するか、ORフラグに置き換えて出力するかの判定を行う。
図28は、フラグ合成回路3002の動作を示したタイムチャートである。図28(a)は1画素幅のフラグのみが入力される場合の例を示す。図中のゴミフラグR,G,Bは、上述した各色に対応するMAX_HOLD回路3301,3302,3303およびフラグOR回路3304に入力される各色のゴミフラグを示す。また、ORフラグは、フラグOR回路3304から出力されるORフラグを示す。図中、xはラインセンサ203の個々の受光素子の位置を示す。各色のMAX_HOLD回路3301,3302,3303およびフラグOR回路3304には、xが小さい順に各フラグが入力される。つまり、xは時間と等価であり、時間に置き換えることもできるものである。
図28(a)を参照すると、主走査位置xのゴミフラグBがMAX_HOLD回路B3302およびフラグOR回路3304に入力される。フラグOR回路3304は、各色のゴミフラグを論理和する。そのため、ORフラグが「High」レベルになり、各色のMAX_HOLD回路3301,3302,3303に出力される。各色のMAX_HOLD回路3301,3302,3303は、上述のORフラグが入力されたタイミングから、入力された各色のゴミフラグの最大幅を格納する。例えばx5の位置のゴミフラグが入力されたタイミングでは、Rの最大幅(R_MAX)を「1」、Gの最大幅(G_MAX)を「1」、Bの最大幅(B_MAX)を「1」として格納する。全ての色のゴミフラグが無くなるx6の位置でORフラグの出力が無くなると、各色のMAX_HOLD回路3301,3302,3303は、この時点での各色のゴミフラグの最大幅を後段のフラグ判定回路3305に出力する。その後、各色のMAX_HOLD回路3301,3302,3303は、次にORフラグが入力されたタイミングで、上記のように格納されている最大幅の情報を「0」にリセットする。
図28(b)は2画素幅のフラグが入力される場合の動作例を示す。図示の例では、ORフラグの入力が無くなるx6のタイミングで、各色のMAX_HOLD回路3301,3302,3303が、当該時点での各色の最大幅を格納する。すなわち、Rの最大幅(R_MAX)を「1」、Gの最大幅(G_MAX)を「2」、Bの最大幅(B_MAX)を「1」を格納し、これらを後段のフラグ判定回路3305に出力する。
次に、フラグ判定回路3305について説明する。フラグ判定回路3305は、各色のゴミフラグ、ORフラグ、各色の最大幅を1ライン分格納する。ゴミフラグは、各色のMAX_HOLD回路3301,3302,3303から出力されたゴミフラグR,G,Bである。ORフラグは、フラグOR回路3304から出力されたフラグである。各色の最大幅は、対応するRの最大幅(R_MAX)、Gの最大幅(G_MAX)、Bの最大幅(B_MAX)である。
図29は、フラグ判定回路3305の動作タイミングを示す。主走査方向はx〜x15の16画素分のゴミフラグが示されている。ゴミフラグR,G,B、ORフラグ、R_MAX,G_MAX、B_MAXは、それぞれフラグ判定回路3305内の不図示のメモリに格納されている1ライン分のフラグである。フラグ判定回路3305は、これらのフラグと、CPU401から設定されるフラグ判定閾値をもとにフラグ判定を行い、フラグ判定閾値以上の場合(所定条件を満たす場合)はフラグの置き換え動作を行う。ゴミフラグRa、ゴミフラグGa、ゴミフラグBaは、置き換え後の各色のゴミフラグである。
例えば、フラグ判定閾値が「2」に設定されたとする。つまり、R_MAX、G_MAX、B_MAXのいずれかが「2」以上である場合、フラグ判定回路3305は、その位置のR,G,B各色のフラグをORフラグに置き換える。一方、R_MAX、G_MAX、B_MAXのいずれも「1」以下である場合、フラグ判定回路3305は、入力されたゴミフラグR、ゴミフラグG、ゴミフラグBをそのまま割り当てる。図示の例では、x〜x5の位置では元のゴミフラグR、ゴミフラグG、ゴミフラグBをそのまま割り当て、x9〜x15の位置では、ORフラグに置き換えている。その後、フラグ判定回路3305は、置き換えたゴミフラグRa、ゴミフラグGa、ゴミフラグBaを後段のゴミ補正回路3003に伝達する。
画像データ遅延回路3306は、画像データをゴミフラグと同じだけ遅延させ、画像データとゴミフラグとの位置関係を合わせて後段回路に出力する。ゴミ補正回路3003では、フラグ合成回路3002からのゴミフラグ(ゴミフラグRa,Ga,Ba)の位置にゴミがあると判断し、当該位置の左右隣接画素からの線形補間で当該位置の画素を補正する。
このように、第3実施形態の画像読取装置によれば、隣り合う画素を用いて線形補間した際に、色付きが発生しやすい太いゴミが付着した部分は全色共通で補正し、色付きが発生しにくい細いゴミが付着した部分は色毎に補正を行うことができる。これにより、不要な色付きを低減しつつ補正痕を目立たせずに補正することが可能となる。
なお、前述した実施形態では、電子写真方式の画像形成装置を用いて説明を行ったが、インクを吐出して用紙に画像を形成するインクジェット方式のプリンタ等に本発明を適用してもよい。