以下、図面を参照して本発明による画像読取装置、画像形成装置および画像読取方法の実施形態を説明する。ただし、本発明は以下の実施形態に限定されない。
[基本原理:画像読取装置]
図1を参照して本発明による画像読取装置10の実施形態を説明する。図1は、本発明の実施形態に係る画像読取装置10を示す模式図である。
画像読取装置10は、画像読取部20と制御部30とを備える。典型的に画像読取装置10は、原稿台11をさらに備える。画像読取装置10は、原稿台11の上に載置された原稿Mを読み取って入力画像を得る。画像読取装置10は、例えば、スキャナである。原稿Mは、例えば、紙であるが紙に限定されない。例えば、布や厚みのある立体物でもあり得る。
画像読取部20は、光源21と光学系26と撮像部27とを備える。画像読取部20は、原稿台11の下方に設けられている。光学系26は、複数の反射ミラー(反射ミラー24a、反射ミラー24bおよび反射ミラー24c)とレンズ25とを有している。光源21と反射ミラー24aとは、第1キャリッジ23aに取り付けられている。第1キャリッジ23aには、スリット22が設けられている。反射ミラー24bと反射ミラー24cとは、第2キャリッジ23bに取り付けられている。
光源21から照射した光は、光学系26を経て撮像部27に到達する。以下、光源21から照射した光が撮像部27に到達する過程を説明する。主走査方向に延びた光源21は、原稿台11を下方から照射する。なお、ここでは主走査方向は図1の奥行方向(図示せず)であり、副走査方向はY方向である。光源21から照射された光は、原稿Mで反射して、スリット22を通り反射ミラー24aに到達する。反射ミラー24aに到達した光は反射ミラー24aで反射し、反射ミラー24bおよび反射ミラー24cによって導かれ、レンズ25を通り撮像部27に到達する。
画像読取部20が、原稿Mを読み取る場合は、第1キャリッジ23aは、発光している光源21と共に副走査方向Yに移動する。第2キャリッジ23bは、光源21から撮像部27までの光路長が一定になるように移動する。
撮像部27は、例えば、CCD(Charage Coupled Device)である。撮像部27は、撮像部27に到達した光からアナログ電気信号を生成する。その後、A/D変換部(図示せず)において、アナログ電気信号は、デジタル電気信号に変換される。そしてデジタル電気信号は制御部30へと入力される。
制御部30は、CPU(Central Processing Unit)とROM(Read Only Memory)とRAM(Random Access Memory)とHDD(Hard Disk Drive)とを備える。CPUがROMやHDDに格納されているプログラムを実行することで、各判定処理を実施し、最終的に入力画像が白紙画像であるか否かを判定する。RAMは、CPUがプログラムを実行する際に作業領域として使用される。
[基本原理:画像読取方法]
図2、図3、図4および図5を参照して本発明による画像読取装置10の実施形態を説明する。図2および図3は、本発明の実施形態に係る画像読取装置10の動作を示すフローチャートである。図4(a)および図4(b)は、入力画像を示す模式図である。図5(a)および図5(b)は、入力画像と非白ラインの判定結果とを示す模式図である。
図2と図3に示されたS100〜S124によって入力画像が白紙画像であるか否かを判定する白紙画像判定工程が実行される。まず、S100にて、画像読取部20は原稿Mを読み取り、入力画像を取得する。図4(a)で示す入力画像Sは、原稿Mを読み取って得られた入力画像の一例であり、図4(b)で示す入力画像Tは、別の原稿Mを読み取って得られた入力画像の一例である。入力画像Sと入力画像Tとは、長手方向(横方向)と長手方向に直交する短手方向(縦方向)とに沿って配列される複数の画素によって形成される。例えば、入力画像Sと入力画像Tとは、それぞれ横7000画素×縦5000画素の画像である。
入力画像Sは、文字「A」を示す画像、文字「b」を示す画像および文字「C」を示す画像を含んでいる。ここでは入力画像Sは文字を示す画像を含んでいるが、入力画像は、文字の他に写真を示す画像や模様を示す画像なども含むことができる。
一方、入力画像Tは、一方向に長く延びており他方の方向にはそれほど延びてない線を示す画像を含んでいる。この様な入力画像として読み込まれる原稿としては、例えば、ノート罫線が表示されたノートやルーズリーフやレポート用紙などがある。原稿がこれらのノート罫線のみのノートやルーズリーフやレポート用紙である場合、典型的にノート罫線の間隔は等間隔である。なお、入力画像Tは、縦罫線を示す画像であるが、横罫線を示す画像でもあり得る。
次に白紙画像判定工程はS102に進み、制御部30は、入力画像を形成する全ての画素のうちのそれぞれの画素に対して非白画素判定を行う。ここでは、制御部30は、入力画像の長手方向(横方向)には左の画素から右の画素へ、長手方向に直交する短手方向(縦方向)には上の画素から下の画素へと順番に非白画素判定を行う。制御部30は、非白画素判定において、入力画像が有する複数の画素のそれぞれが非白画素か否かを判定する。制御部30は、画素値と非白画素判定閾値Twとを比較することにより非白画素判定を行う。入力画像がモノクロの8bit濃度データ(0(白)→255(黒))である場合、制御部30は、判定する画素値が非白画素判定閾値Twよりも大きければ、画素を非白画素と判定する。一方、制御部30は、判定する画素値が非白画素判定閾値Twよりも大きくなければ、画素を白画素と判定する。また、制御部30は、入力画像がモノクロの8bit輝度データ(0(黒)→255(白))である場合、判定する画素値が非白画素判定閾値Twよりも小さければ、画素を非白画素と判定する。判定する画素値が非白画素判定閾値Twよりも小さくなければ、画素を白画素と判定する。
また、入力画像がRGB各色8bitカラーデータである場合、制御部30は、RGBの輝度値のうちの最小値と非白画素判定閾値Twとを比較し、RGBの輝度値のうちの最小値が非白画素判定閾値Twよりも小さければ、画素を非白画素と判定する。RGBの輝度値の最小値を選択する理由は、白画素であればRGBの輝度値がいずれも高い値を示すが、白以外の画素(色画素や黒画素)ではRGBの輝度値の少なくともいずれか1色の値が小さくなるためである。
次に、白紙画像判定工程はS104に進み、制御部30は、非白画素判定を実施した画素の入力画像に対する位置がラインの終端か否かを判定する。非白画素判定を実施した画素の入力画像に対する位置がラインの終端で無い場合(S104:N)、白紙画像判定工程はS106に進み、白画素判定を実施する画素の位置が次の画素(ここでは1つ右隣の画素)へ移動する。そして白紙画像判定工程はS102に戻り、制御部30は、次の画素(ここでは1つ右隣の画素)に対して非白画素判定を行う。白画素判定を実施した画素の入力画像に対する位置がラインの終端である場合(S104:Y)、白紙画像判定工程はS108に進む。
S108では、制御部30は、非白画素判定を実施した画素の入力画像に対する位置がページの終端か否かを判定する。非白画素判定を実施した画素の入力画像に対する位置がページの終端で無い場合(S108:N)、非白画素判定工程はS110に進み、白画素判定を実施する画素の位置が次のラインへ移動する。そして白画素判定工程はS102に戻り、制御部30は、次のラインの先頭の画素に対して非白画素判定を行う。
S102からS110を繰りかえすことにより、制御部30は、入力画像の全ての画素に対して、非白画素判定を行う。ページの全ての画素の非白画素判定が完了し、白画素判定を実施した画素の入力画像に対する位置がページの終端である場合(S108:Y)、白紙画像判定工程は図3に示されたS112に進む。
S112では、制御部30は、入力画像のそれぞれのラインに対して非白ライン判定を行う。図5を参照して非白ライン判定について説明する。図5においては図4で示した入力画像Sと入力画像Tに非白ラインの判定結果を追加している。判定結果SHは、入力画像Sの主走査ラインの非白ラインを示し、判定結果SVは、入力画像Sの副走査ラインの非白ラインを示す。図5に示された入力画像Sと入力画像Tとにおいて、入力画像の長手方向(横方向)が主走査方向Xであり、長手方向に直交する短手方向(縦方向)が副走査方向Yである。
制御部30は、非白ライン判定において、主走査方向Xと副走査方向Yとのそれぞれに沿ったそれぞれのラインが、非白画素と判定された少なくとも1つの画素を含む非白ラインであるか否かを判定する。判定結果SHにおいて斜線で示した箇所は、制御部30が非白ラインと判定した主走査ライン(主走査非白ライン群H1と主走査非白ライン群H2)を示している。一方、判定結果SVにおいて斜線で示した箇所は、制御部30が非白ラインと判定した副走査ライン(副査非白ライン群V1、副走査非白ライン群V2および副走査非白ライン群V3)を示している。
主走査非白ライン群H1と主走査非白ライン群H2とは、主走査ラインの非白ラインの判定結果のうち非白ラインと判定された領域を示す。文字「A」と文字「C」を示している画素を含む主走査ラインは非白ラインとなる。主走査非白ライン群H1は、文字「A」と文字「C」とに対応している主走査方向の非白ラインと判定された箇所である。文字「A」に対応する主走査非白ラインと文字「C」に対応する主走査非白ラインとは一部が重複しているため、主走査非白ラインは、副走査方向に連続している。このため文字「A」の上端から文字「C」の下端に対応した主走査方向のラインが非白ラインと判定される。また、主走査非白ライン群H2は、文字「b」に対応している主走査方向の非白ラインと判定された箇所である。文字「b」を示している画素を含む主走査ラインは非白ラインと判定される。文字「b」の上端から文字「b」の下端に対応した主走査方向のラインが非白ラインと判定される。
副査非白ライン群V1と副走査非白ライン群V2と副走査非白ライン群V3とは、副走査ラインの非白ラインの判定結果のうち非白ラインと判定された領域を示す。副走査非白ライン群V1は、文字「A」に対応している副走査方向の非白ラインと判定された箇所である。文字「A」を示している画素を含む副走査ラインは非白ラインと判定される。文字「A」の左端から文字「A」の右端に対応した副走査方向のラインが非白ラインと判定される。また、副走査非白ライン群V2は、文字「b」に対応している副走査方向の非白ラインと判定された箇所である。文字「b」を示している画素を含む副走査ラインは非白ラインと判定される。文字「b」の左端から文字「b」の右端に対応した副走査方向のラインが非白ラインと判定される。また、副走査非白ライン群V3は、文字「C」に対応している副走査方向の非白ラインと判定された箇所である。文字「C」を示している画素を含む副走査ラインは非白ラインと判定される。文字「C」の左端から文字「C」の右端に対応した副走査方向のラインが非白ラインと判定される。
引き続き図3〜図5を参照して、白紙画像判定工程の説明を続ける。白紙画像判定工程は図3に示されたS114に進み、制御部30は、主走査方向の非白ラインの最大連続数である主走査最大連続数Hmaxを検出する。入力画像が入力画像Sの場合、主走査最大連続数Hmaxは、主走査非白ライン群H1で示す箇所における副走査方向の非白ラインの連続数である。入力画像が入力画像Tの場合、主走査最大連続数Hmaxは、入力画像Sのノート罫線の長さ分の画素数と等しい数である。
次に、白紙画像判定工程はS116に進み、制御部30は、副走査方向の非白ラインの最大連続数である副走査最大連続数Vmaxを検出する。入力画像が入力画像Sの場合、副走査最大連続数Vmaxは、副走査非白ライン群V1で示す箇所における主走査方向の非白ラインの連続数である。入力画像が入力画像Tの場合、副走査最大連続数Vmaxは、入力画像Sのノート罫線の幅分の画素数と等しい数である。
次に、白紙画像判定工程はS118に進み、制御部30は、主走査最大連続数Hmaxと副走査最大連続数Vmaxとを比較し、主走査最大連続数Hmaxと副走査最大連続数Vmaxとのうち小さい方を最大連続数Nmaxとする。入力画像が入力画像Sの場合、最大連続数Nmaxは、副走査最大連続数Vmaxである。入力画像が入力画像Tの場合、最大連続数Nmaxは、副走査最大連続数Vmaxであり、入力画像Sのノート罫線の幅分の画素数と等しい数である。
次に、白紙画像判定工程はS120に進み、制御部30は、最大連続数Nmaxが幅閾値Twidthよりも大きいか否かを判定する。最大連続数Nmaxが幅閾値Twidthよりも大きい場合(S120:Y)、白紙画像判定工程はS122に進み、制御部30は、入力画像が白紙画像ではないと判定する。最大連続数Nmaxが幅閾値Twidthよりも大きくない場合(S120:N)、白紙画像判定工程はS124に進み、制御部30は、入力画像が白紙画像であると判定する。
入力画像が入力画像Sの場合、最大連続数Nmaxは幅閾値Twidthよりも大きくなり、制御部30は、入力画像Sが白紙画像ではないと判定する。入力画像が入力画像Tの場合、最大連続数Nmaxは幅閾値Twidthよりも小さくなり、制御部30は、入力画像Tが白紙画像であると判定する。
以上、図2〜図5を参照してS100〜S124によって実行される白紙画像判定工程を説明した。
図2〜図5を参照して説明したように、画像読取装置10は、主走査最大連続数Hmaxと副走査最大連続数Vmaxに基づき入力画像が白紙画像であるか否かを判定する。したがって、入力画像が入力画像Tで示すように、一方向に短く、他方に長く伸びている線を含む場合でも、入力画像を白紙画像と判定することができる。その結果、例えば、ノート罫線のみのノートやルーズリーフやレポート用紙を白紙と判定する事ができる。
[自動原稿送り装置付き画像読取装置]
図6を参照して、本発明による画像読取装置40の他の実施形態を説明する。図6は、本発明の他の実施形態に係る画像読取装置40を示す模式図である。画像読取装置40は、画像読取部20と制御部30と自動原稿送り装置41とを備える。画像読取装置40は、自動原稿送り装置41を更に備える点を除いて図1を参照して説明した画像読取装置10と同様な構成を有するため、重複部分については説明を省略する。
自動原稿送り装置41は、ADF(Auto Document Feeder)と呼ばれている。自動原稿送り装置41は、載置台42とピックアップローラ43と搬送ローラ44aと搬送ローラ44bと排紙台46とを備える。原稿搬送路45は、載置台42から、画像読取部20にて読み取りが行われる読取位置Qを経由して、排紙台46に通じる原稿Mの搬送路である。
載置台42の上に複数枚の原稿Mを載置することにより、複数枚の原稿Mを一度に処理することができる。自動原稿送り装置41を用いて原稿Mを読み込む場合、ピックアップローラ43は、載置台42の上に載置された原稿Mを1枚ずつ原稿搬送路45内に引き出し、原稿Mを搬送ローラ44aと搬送ローラ44bとに送る。搬送ローラ44aと搬送ローラ44bとは原稿Mを引き出し、原稿Mが読取位置Qを通過するときに、画像読取部20は、原稿Mを読み取る。
図6を参照して説明したように、画像読取装置40は、複数枚の原稿Mを一度に処理することができるため大変便利である。しかし複数の原稿Mを一度に取り扱う場合、画像読取を望まない白紙が原稿Mに混入するおそれが増加する。そのため本発明の白紙検出の効果がより顕著になる。
[画像形成装置]
図7を参照して本発明による画像形成装置50の実施形態を説明する。図7は、本発明の実施形態に係る画像形成装置50を示す模式図である。画像形成装置50は、画像読取部20と制御部30と自動原稿送り装置41と印刷部57とを備える。画像形成装置50は、印刷部57を更に有する点を除いて図6を参照して説明した画像読取装置40と同様な構成を有するため、重複部分については説明を省略する。
印刷部57は、感光ドラム51と現像部52と転写部53と給紙部54と搬送ベルト55と排紙部56とを有する。印刷部57は、画像読取部20の下方に設けられる。印刷部57は、画像読取部20で読み取った原稿Mを印刷する。原稿Mを印刷する場合、まず感光ドラム51を帯電器(図示せず)により帯電させる。その後、露光部(図示せず)は、帯電された感光ドラム51の表面に、入力画像に基づいてレーザーを照射し、静電潜像を形成する。その後、現像部52は静電潜像にトナーを付着させてトナー像を形成する。その後、転写部53は、現像部52で形成されたトナー像を給紙部54から搬送された用紙に転写する。その後、転写された用紙は搬送ベルト55により搬送され、排紙部56に排紙される。
図7を参照して説明したように、画像形成装置50は、画像読取部20で読み取った原稿Mを印刷部57で印刷することができる。なお、画像形成装置50は、図2〜図5を参照して説明した白紙画像を除いた入力画像に対応する原稿を印刷することができる。したがって、白紙の原稿を間違って印刷することを抑制することができる。
[画像読取方法の実施形態2]
図8、図9、図10および図11を参照して本発明による画像読取装置10の他の実施形態を説明する。図8および図9は、本発明の他の実施形態に係る画像読取装置10の動作を示すフローチャートである。図10は、主走査方向非白画素カウント値を示す模式図であり、図11は、副走査方向非白画素カウント値を示す模式図である。図2および図3のフローチャートを用いた説明と重複する内容については、詳細な説明を省略する。
図8と図9に示されたS200〜S240によって入力画像が白紙画像であるか否かを判定する白紙画像判定工程が実行される。まず、S200にて、画像読取部20は、原稿Mを読み取り入力画像を取得する(図2に示されたS100に対応)。図2および図3のフローチャートと同様に、原稿Mを読み取って得られた入力画像の一例は、図4(a)で示す入力画像Sと、図4(b)で示す入力画像Tである。
次に白紙画像判定工程はS202に進み、制御部30は、非白画素判定を行う(図2に示されたS102に対応)。
次に、白紙画像判定工程はS204に進み、非白画素判定を行った画素が非白画素で無い場合(S204:N)、白紙画像判定工程はS212に進む。非白画素判定を行った画素が非白画素である場合(S204:Y)、白紙画像判定工程はS206に進む。
S206では、ページ内非白画素カウント値をインクリメントする。ページ内非白画素カウント値は、入力画像全体で非白画素と判定された画素の数を示す。ページ内非白画素カウント値は、後述する入力画像が白紙画像であるか否かを判定するとき(図9に示されたS234)に用いられる。
次に、白紙画像判定工程はS208に進み、制御部30は、主走査非白画素カウント値hcntをインクリメントし、主走査非白画素カウント値hcntをメモリ(RAM)に保持する。以下、図10を参照して主走査非白画素カウント値hcntについて説明する。図10は主走査非白画素カウント値hcntを示す模式図である。図10(a)は、入力画像の模式図である。図10(b)は、図10(a)に示された点線で囲まれたラインの拡大図である。図10(b)において、斜線で示した箇所は非白画素Nであり、白で示した箇所は白画素Wである。
主走査非白画素カウント値hcntは、主走査方向(横方向)1ライン中で非白画素と判定された画素の数を示す。例えば、図10(b)の場合、1ライン分の非白画素の判定が終わったとき、主走査非白画素カウント値hcntは「8」である。主走査非白画素カウント値hcntは、主走査方向のラインのそれぞれに対応したメモリ(RAM)の領域に保持される。例えば、画像サイズが横7000×縦5000画素であれば、制御部30は、5000個の主走査非白画素カウント値hcntをメモリ(RAM)に保持する。
S202に示された非白画素判定によって非白画素判定を行った画素が非白画素であると判定されると(S204:Y)、制御部30は、対応する主走査非白画素カウント値hcntをインクリメントし、主走査非白画素カウント値hcntをメモリ(RAM)に保持する(S208)。主走査非白画素カウント値hcntは、必ずしも主走査方向1ライン分の全ての画素数まで数えられる必要は無く、後述する図9に示されたS222の「各カウント値を閾値Thcntで2値化」するために必要と思われる値までカウントできればよい。例えば最大255までカウントする場合、必要なメモリ容量は、8bit×5000で済み、メモリの容量を削減できる。
S208が完了すると、次に白紙画像判定工程はS210に進み、制御部30は、副走査非白画素カウント値vcntをインクリメントし、副走査非白画素カウント値vcntをメモリ(RAM)に保持する。以下、図11を参照して副走査非白画素カウント値vcntについて説明する。図11は副走査非白画素カウント値vcntを示す模式図である。図11(a)は、入力画像の模式図である。図11(b)は、図11(a)で示された点線で囲まれたラインの拡大図である。図11(b)において、斜線で示した箇所は非白画素Nであり、白で示した箇所は白画素Wである。
副走査非白画素カウント値vcntは、副走査方向(縦方向)1ライン中で非白画素と判定された画素の数を示す。例えば、図11(b)の場合、1ライン分の非白画素の判定が終わったとき副走査非白画素カウント値vcntは「5」である。副走査非白画素カウント値vcntは、副走査方向のラインのそれぞれに対応したメモリ(RAM)の領域に保持される。例えば、画像サイズが横7000×縦5000画素であれば、制御部30は、7000個の副走査非白画素カウント値vcntをメモリ(RAM)に保持する。S202に示された非白画素判定で非白画素判定を行った画素が非白画素であると判定されると(S204:Y)、制御部30は、対応する副走査非白画素カウント値vcntをインクリメントし、副走査非白画素カウント値vcntをメモリ(RAM)に保持する(S210)。
副走査非白画素カウント値vcntは、必ずしも副走査方向1ライン分の全ての画素数まで数えられる必要は無く、後述する図9に示されたS228の「各カウント値を閾値Tvcntで2値化」するために必要と思われる値までカウントできればよい。例えば最大255までカウントする場合、必要なメモリ容量は、8bit×7000で済み、メモリの容量を削減できる。
S210が完了すると、次に白紙画像判定工程はS212に進み、制御部30は、白画素判定を実施した画素の入力画像に対する位置がラインの終端か否かを判定する。白画素判定を実施した画素の入力画像に対する位置がラインの終端で無い場合(S212:N)、白紙画像判定工程はS214に進み、白画素判定を実施する画素の位置が次の画素(ここでは1つ右隣の画素)へ移動する(図2に示されたS104に対応)。白紙画像判定工程はS202に戻り、制御部30は、次の画素(ここでは1つ右隣の画素)に対して非白画素判定を行う。白画素判定を実施した画素の入力画像に対する位置がラインの終端である場合(S212:Y)、白紙画像判定工程はS216に進む。
S216では、制御部30は、白画素判定を実施した画素の入力画像に対する位置がページの終端か否かを判定する(図2に示されたS108に対応)。白画素判定を実施した画素の入力画像に対する位置がページの終端で無い場合(S216:N)、白紙画像判定工程はS218に進み、白画素判定を実施する画素の位置が次のラインへ移動する。そして白紙画像判定工程はS202に戻り、制御部30は、次のラインの先頭の画素に対して非白画素判定を行う。
S202からS218を繰りかえすことにより、制御部30は、入力画像の全ての画素に対して非白画素判定を行う。ページの全ての画素の非白画素判定が完了し、白画素判定を実施した画素の入力画像に対する位置がページの終端である場合(S216:Y)、白紙画像判定工程は図9に示されたS220に進む。ページの全ての画素の非白画素判定が完了すると、全ての主走査方向のラインに対応する主走査非白画素カウント値hcntが、主走査方向のラインのそれぞれに対応したメモリ(RAM)の領域に保持される。また、全ての副走査方向のラインに対応する副走査非白画素カウント値vcntが、副走査方向のラインのそれぞれに対応したメモリ(RAM)の領域に保持される。
次に、白紙画像判定工程は図9に示されたS220に進み、制御部30は、メモリ(RAM)に保持された主走査非白画素カウント値hcntを読み出す。例えば、画像サイズが横7000×縦5000画素であれば、制御部30は、5000個の主走査非白画素カウント値hcntの値を読み出す。
次に、白紙画像判定工程はS222に進み、制御部30は、各主走査ラインの主走査非白画素カウント値hcntを2値化する。制御部30は、各主走査ラインの主走査非白画素カウント値hcntと主走査カウント閾値Thcntとを比較して各主走査ラインの主走査非白画素カウント値hcntを2値化する。制御部30は、主走査カウント閾値Thcntよりも主走査非白画素カウント値hcntが大きければ「1」、大きくなければ「0」をメモリ(RAM)に上書きする。非白画素カウント値の2値化の結果が「1」である主走査ラインは、非白ラインであり、非白画素カウント値の2値化の結果が「0」である主走査ラインは、非白ラインでない。
上述したように、入力画像の主走査ラインを対象とした非白ラインの判定は、非白画素カウント値の2値化を行うことにより実施される。例えば図5(a)において、入力画像Sの主走査ラインを対象とした非白ラインの判定結果SHは、非白画素カウント値の2値化の結果を示している。入力画像Sの主走査ラインを対象とした非白ラインの判定結果SHにおいて斜線で示した箇所は、非白画素カウント値の2値化の結果が「1」である箇所、すなわち非白ラインを示している。一方、入力画像Sの主走査ラインを対象とした非白ラインの判定結果SHにおいて白で示した箇所は、非白画素カウント値の2値化の結果が「0」である箇所、すなわち非白ラインでないラインを示している。
引き続き図9を参照して、白紙画像判定工程の説明を続ける。白紙画像判定工程は、S222からS224へ進み、制御部30は、非白画素カウント値の2値化の結果が「1」であるラインの主走査最大連続数Hmaxを検出する。入力画像が入力画像Sの場合、主走査最大連続数Hmaxは、主走査非白ライン群H1で示す箇所における副走査方向の非白ラインの連続数である。入力画像が入力画像Tの場合、主走査最大連続数Hmaxは、入力画像Sのノート罫線の長さ分の画素数と等しい数である。
次に、白紙画像判定工程は、S226に進み、制御部30は、メモリ(RAM)に保持された副走査非白画素カウント値vcntを読み出す。例えば、画像サイズが横7000×縦5000画素であれば、制御部30は、7000個の副走査非白画素カウント値vcntの値を読み出す。
次に、白紙画像判定工程は、S228に進み、制御部30は、各副走査ラインの副走査非白画素カウント値vcntを2値化する。制御部30は、各副走査ラインの副走査非白画素カウント値vcntと副走査カウント閾値Tvcntとを比較して各副走査ラインの副走査非白画素カウント値vcntを2値化する。制御部30は、副走査カウント閾値Tvcntより副走査非白画素カウント値vcntが大きければ「1」、大きくなければ「0」をメモリ(RAM)に上書きする。非白画素カウント値の2値化の結果が「1」の副走査ラインは、非白ラインであり、非白画素カウント値の2値化の結果が「0」の副走査ラインは、非白ラインでない。
上述したように、入力画像の副走査ラインを対象とした非白ラインの判定は、非白画素カウント値の2値化を行うことにより実施される。例えば図5(a)において、入力画像Sの副走査ラインを対象とした非白ラインの非白画素カウント値の2値化の結果SVは、非白画素カウント値の2値化の結果を示している。入力画像Sの副走査ラインを対象とした非白ラインの判定結果SVにおいて斜線で示した箇所は、非白画素カウント値の2値化の結果が「1」である箇所、すなわち非白ラインを示している。一方、入力画像Sの副走査ラインを対象とした非白ラインの判定結果SVにおいて白で示した箇所は、非白画素カウント値の2値化の結果が「0」である箇所、すなわち非白ラインでないラインを示している。
引き続き図9を参照して、白紙画像判定工程の説明を続ける。白紙画像判定工程は、S228からS230へ進み、制御部30は、非白画素カウント値の2値化の結果が「1」であるラインの副走査最大連続数Vmaxを検出する。入力画像が入力画像Sの場合、副走査最大連続数Vmaxは、副走査最大連続数Vmaxは、副走査非白ライン群V1で示す箇所における主走査方向の非白ラインの連続数である。入力画像が入力画像Tの場合、副走査最大連続数Vmaxは、入力画像Sのノート罫線の幅分の画素数と等しい数である。
次に、白紙画像判定工程はS232に進み、制御部30は、主走査最大連続数Hmaxと副走査最大連続数Vmaxとを比較し、主走査最大連続数Hmaxと副走査最大連続数Vmaxとのうち小さい方を最大連続数Nmaxとする(図3に示されたS120に対応)。
次に、白紙画像判定工程はS234に進み、制御部30は、ページ内非白画素カウント値がページ閾値Tpageよりも大きいか否かを判定する。ページ内非白画素カウント値がページ閾値Tpageよりも大きい場合(S234:Y)、白紙画像判定工程はS236に進む。ページ内非白画素カウント値がページ閾値Tpageよりも大きくない場合(S234:N)、白紙画像判定工程はS240に進み、制御部30は、入力画像が白紙画像であると判定する。
S236において、制御部30は、最大連続数Nmaxが幅閾値Twidthよりも大きいか否かを判定する。最大連続数Nmaxが幅閾値Twidthよりも大きい場合(S236:Y)、白紙画像判定工程はS238に進み、制御部30は、入力画像が白紙画像ではないと判定する。最大連続数Nmaxが幅閾値Twidthよりも大きくない場合(S236:N)、白紙画像判定工程はS240に進み、制御部30は、入力画像が白紙画像であると判定する。
以上、図8〜図11を参照してS200〜S240によって実行される白紙画像判定工程を説明した。
図5および図8〜図11を参照して説明したように、画像読取装置10は、非白ラインであるか否かを判定する際に、主走査方向Xと副走査方向Yとのそれぞれに沿ったそれぞれのライン内に含まれる非白画素の数をカウントし(図8に示されたS208およびS210)、非白画素の数のカウント結果(主走査非白画素カウント値hcnt、副走査非白画素カウント値vcnt)と所定の閾値(主走査カウント閾値Thcnt、副走査カウント閾値Tvcnt)とを比較する(図9に示されたS222)。したがって、原稿Mや原稿台11などに付着したゴミなどの異物に起因する入力画像の汚れ(ノイズ)があった場合でも、所定の閾値(主走査カウント閾値Thcnt、副走査カウント閾値Tvcnt)の設定により白ラインであると判定することができる。その結果、入力画像の汚れ(ノイズ)があった場合に、白紙画像である入力画像を誤って白紙画像ではないと誤判定することを抑制することができる。
また、制御部30は、入力画像のページ内非白画素をカウントすることにより、ページ内の非白画素カウント値を求め(図8に示されたS206)、ページ内非白画素カウント値と所定の閾値(ページ閾値Tpage)とを比較することにより、入力画像が白紙画像であるか否かを判定する(図9に示されたS234)。したがって、原稿Mや原稿台11などに付着したゴミなどの異物に起因する入力画像の汚れ(ノイズ)があった場合でも、所定の閾値(ページ閾値Tpage)の設定により入力画像を白紙画像と判定することができる。また、図9に示されたS236の判定の前に、ページ内の非白画素の数が少ない入力画像を白紙画像と判定することができる。
[画像読取方法の実施形態3]
図12〜図14を参照して本発明による画像読取装置10の更に他の実施形態を説明する。図12〜図14は、本発明の更に他の実施形態に係る画像読取装置10の動作を示すフローチャートである。図2および図3ならびに図8および図9に示されたフローチャートを用いた説明と重複する内容については詳細な説明を省略する。
図12に示されたS300〜S314は、図8に示されたS200〜S214に対応する。S300において、画像読取部20は、原稿Mを読み取り入力画像を取得する(図8に示されたS200に対応)。その後、S302において制御部30は非白画素判定を行う(図8に示されたS202に対応)。非白画素判定を行った画素が非白画素であれば(S304:Y)(図8に示されたS204:Yに対応)、S306において制御部30はページ内非白画素カウント値をインクリメントし(図8に示されたS206に対応)、S308において制御部30は主走査非白画素カウント値hcntをインクリメントし、S310において制御部30は副走査非白画素カウント値vcntをインクリメントし、副走査非白画素カウント値vcntをメモリに保持する(図8に示されたS210に対応)。非白画素判定を実施した画素の入力画像に対する位置がラインの終端でない場合(S312:N)、白紙画像判定工程はS314に進み、白画素判定を実施する画素の位置が次の画素へ移動する。白紙画像判定工程はS302に戻る。S302〜S314を繰り返すことにより制御部30は1ライン分の非白画素判定を行う。非白画素判定を実施した画素の入力画像に対する位置がラインの終端である場合(S312:Y)、白紙画像判定工程は図13に示されたS316に進む。
図13に示されたS316では、制御部30は、主走査ラインの主走査非白画素カウント値hcntを2値化する。例えば制御部30は、主走査非白画素カウント値hcntと主走査カウント閾値Thcntとを比較して主走査ラインの主走査非白画素カウント値hcntを2値化する。制御部30は、主走査カウント閾値Thcntよりも主走査非白画素カウント値hcntが大きければ「1」、大きくなければ「0」とする。
次に、白紙画像判定工程はS318に進み、制御部30は、2値化の結果が「1」であるか否かを判定する。2値化の結果が「1」で無い場合(S318:N)、白紙画像判定工程はS322に進み、制御部30は、連続数カウンタをリセットする。2値化の結果が「1」である場合(S318:Y)、白紙画像判定工程はS320に進み、制御部30は、連続数カウンタをインクリメントする。
S320が完了すると白紙画像判定工程はS324に進み、制御部30は、主走査非白ラインの連続数が最大値Hmaxを超えていれば最大値Hmaxを更新する。主走査非白ラインの連続数が最大値Hmaxを超えていなければ最大値Hmaxは変化しない。連続数カウンタの値の初期値は「0」であり、最大値Hmaxの初期値は「0」である。
図5に示された入力画像Sの場合、最初連続数カウンタの値は「0」であり、最大値Hmaxは「0」である。最初のラインから主走査非白ライン群H1までは2値化の結果が「0」であるので、連続数カウンタの値は「0」のままであり、最大値Hmaxも「0」のままである。2値化の結果が「1」である主走査非白ライン群H1の領域の最初のラインに2値化の処理が到達すると、制御部30は、連続数のカウンタを1ライン毎にインクリメントし、最大値Hmaxを1ライン毎に更新する。主走査非白ライン群H1の領域の最後のラインまで、制御部30は、連続数カウンタのインクリメントと最大値Hmaxの更新を繰り返し実行する。2値化の処理が主走査非白ライン群H1の領域を過ぎると、2値化の結果が「0」となり、制御部30は、連続数カウンタをリセットし連続数カウンタの値は「0」となる。再び2値化の結果が「1」である主走査非白ライン群H2の領域の最初のラインに2値化の処理が到達すると、制御部30は、再び連続数カウンタを1ライン毎にインクリメントする。主走査非白ライン群H2の領域の最後のラインまで、制御部30は、連続数カウンタのインクリメントを繰り返す。しかし、連続数カウンタの値は最大値Hmaxを超えないため、制御部30は、最大値Hmaxを更新しない。最終ラインまで処理が完了すると、最終的な最大値Hmaxが決定する。
引き続き図13を参照して、白紙画像判定工程を説明する。S322が完了またはS324が完了すると白紙画像判定工程はS326に進み、制御部30は、主走査非白画素カウント値hcntをクリアする。
S326が完了すると白紙画像判定工程はS328に進み、制御部30は、非白画素判定を実施した画素の入力画像に対する位置がページの終端か否かを判定する(図2に示されたS108に対応)。非白画素判定を実施した画素の入力画像に対する位置がページの終端で無い場合(S328:N)、白紙画像判定工程はS330に進み、白画素判定を実施する画素の位置が次のラインへ移動する。そして白紙画像判定工程は図12に示されたS302に戻り、制御部30は、次のラインの先頭の画素に対して非白画素判定を行う。非白画素判定を実施した画素の入力画像に対する位置がページの終端である場合(S328:Y)、白紙画像判定工程は図14に示されたS332に進む。
図14に示されたS332において、制御部30は、メモリ(RAM)に保持された副走査非白画素カウント値vcntを読み出す(図9に示されたS226に対応)。例えば、画像サイズが横7000×縦5000画素であれば、制御部30は、7000個の副走査非白画素カウント値vcntの値を読み出す。
次に、白紙画像判定工程がS334に進み、制御部30は、各副走査ラインの副走査非白画素カウント値vcntを2値化する。制御部30は、各副走査ラインの副走査非白画素カウント値vcntと副走査カウント閾値Tvcntとを比較して各副走査ラインの副走査非白画素カウント値vcntを2値化する。制御部30は、副走査カウント閾値Tvcntよりも副走査非白画素カウント値vcntが大きければ「1」、大きくなければ「0」をメモリ(RAM)に上書きする(図9に示されたS228に対応)。
次に、白紙画像判定工程はS336へ進み、制御部30は、非白画素カウント値の2値化の結果が「1」であるラインの副走査最大連続数Vmaxを検出する(図9のS230に対応)。
次に、白紙画像判定工程はS338に進み、制御部30は、主走査最大連続数Hmaxと副走査最大連続数Vmaxとを比較し、主走査最大連続数Hmaxと副走査最大連続数Vmaxとのうち小さい方を最大連続数Nmaxとする(図3に示されたS120に対応)。
次に、白紙画像判定工程はS340に進み、制御部30は、ページ内非白画素カウント値がページ閾値Tpageよりも大きいか否かを判定する(図9に示されたS234に対応)。最大連続数Nmaxがページ閾値Tpageよりも大きい場合(S340:Y)、白紙画像判定工程はS344に進む。ページ内非白画素カウント値がページ閾値Tpageよりも大きくない場合(S340:N)、白紙画像判定工程はS346に進み、制御部30は、入力画像が白紙画像であると判定する(図9に示されたS240に対応)。
S342において、制御部30は、最大連続数Nmaxが幅閾値Twidthよりも大きいか否かを判定する(図9に示されたS236に対応)。最大連続数Nmaxが幅閾値Twidthよりも大きい場合(S342:Y)、白紙画像判定工程はS344に進み、制御部30は、入力画像が白紙画像ではないと判定する。最大連続数Nmaxが幅閾値Twidthよりも大きくない場合(S342:N)、白紙画像判定工程はS346に進み、制御部30は、入力画像が白紙画像であると判定する。
図13に示されたS316〜S326を参照して説明したように、制御部30は、主走査方向1ラインごとに主走査非白画素カウント値の2値化および主走査非白ラインの連続数の検出を行い、主走査最大連続数を更新していく。したがって、主走査非白画素カウント値をメモリに保持しておく必要が無い。その結果、メモリを削減することができる。
図15は、ヘッダー付きの入力画像Uの一例を示す模式図である。入力画像Uは、右上のヘッダー部分に、「No.」を示すデータや「Date」を示すデータ等の文字を示すデータを含んでいる。入力画像Uを白紙画像として検出するためには、「No.」や「Date」等の文字を示すデータの幅分の画素よりも、幅閾値Twidthを大きく設定すればよい。もしくは、ヘッダー部分を除くエリアのみで、白紙画像であるか否かを判定するようにしてもよい。