(57)【特許請求の範囲】
【請求項１】
多値画像の輝度頻度を所定のブロック毎に算出し、該輝度頻度の偏りを示すスキュー値に基づいて前記輝度頻度の平均輝度値及びスキュー値を算出するための輝度頻度領域を設定する設定工程と、
前記設定された輝度頻度領域における前記輝度頻度の平均輝度値及びスキュー値を算出する算出工程と、
前記算出されたスキュー値が所定範囲内か否かを判定する判定工程と、
前記判定工程で所定範囲内と判定された場合、処理ブロックがかすれ文字を含む場合、所定回数以内に前記所定範囲内と判定されなかった場合の何れかの場合に、前記算出工程で算出された平均輝度値を、当該処理ブロックにおける多値画像を２値化するための２値化閾値に設定する閾値設定工程とを有し、
前記スキュー値が所定範囲外で、かつ、正の場合、前記輝度頻度の平均輝度値を始点とし、前記輝度頻度の最大輝度値を終点として前記輝度頻度領域を設定し、前記スキュー値が所定範囲外で、かつ、負の場合、前記輝度頻度の最小輝度値を始点とし、前記輝度頻度の平均輝度値を終点として前記輝度頻度領域を設定し、前記所定回数前記設定工程、前記算出工程、及び前記判定工程を繰り返すことを特徴とする画像処理方法。
【請求項２】
前記２値化閾値を用いて前記多値画像を２値化する２値化工程を更に有することを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記かすれ文字は、前記スキュー値に基づいて判別されることを特徴とする請求項１記載の画像処理方法。
【請求項４】
前記スキュー値は、各画素の輝度値と前記輝度頻度の平均輝度値との差に基づいて算出されることを特徴とする請求項１記載の画像処理方法。
【請求項５】
前記スキュー値は、各画素の輝度値と前記輝度頻度の平均輝度値との差の奇数乗に基づいて算出されることを特徴とする請求項１記載の画像処理方法。
【請求項６】
多値画像の輝度頻度を所定のブロック毎に算出し、該輝度頻度の偏りを示すスキュー値に基づいて前記輝度頻度の平均輝度値及びスキュー値を算出するための輝度頻度領域を設定する設定手段と、
前記設定された輝度頻度領域における前記輝度頻度の平均輝度値及びスキュー値を算出する算出手段と、
前記算出されたスキュー値が所定範囲内か否かを判定する判定手段と、
前記判定手段で所定範囲内と判定された場合、処理ブロックがかすれ文字を含む場合、所定回数以内に前記所定範囲内と判定されなかった場合の何れかの場合に、前記算出手段で算出された平均輝度値を、当該処理ブロックにおける多値画像を２値化するための２値化閾値に設定する閾値設定手段とを有し、
前記スキュー値が所定範囲外で、かつ、正の場合、前記輝度頻度の平均輝度値を始点とし、前記輝度頻度の最大輝度値を終点として前記輝度頻度領域を設定し、前記スキュー値が所定範囲外で、かつ、負の場合、前記輝度頻度の最小輝度値を始点とし、前記輝度頻度の平均輝度値を終点として前記輝度頻度領域を設定し、前記所定回数前記設定手段、前記算出手段、及び前記判定手段による処理を繰り返すことを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理方法及び装置に関し、特に多値画像の２値化閾値を決定して２値化を行う画像処理方法及び装置に関する。
【０００２】
【従来の技術】
近年の画像処理技術の発展には目覚ましいものがあり、写真／文字が混在するフルカラー画像等の多値画像処理や、多値画像内の文字認識処理等が可能な画像処理装置も普及してきている。
【０００３】
このような画像処理技術において、写真／文字が混在する多値画像の２値化処理は不可欠な技術となっている。
【０００４】
従来の２値化手法としては、あらかじめ設定してある固定閾値による単純２値化法を始めとして、ある閾値でヒストグラムを２クラスに分割した場合のクラス間分散が最大になる時の閾値を２値化閾値とする大津法（大津、“判別及び最小２乗規準に基づく自動しきい値選定方”、電子通信学会論文誌、Ｖｏｌ．Ｊ６３−Ｄ，ｎｏ．４，ｐｐ．３４９−３５６，１９８０）や、また階調を持つ画像に対して、局所的濃度に応じ閾値を設定する２値化法等がある。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述したような従来の画像処理装置における２値化方法においては、以下のような問題があった。
【０００６】
画像中に写真／文字が混在する原稿を２値化する際、固定閾値による単純２値化法では、写真／文字それぞれに適した閾値を設定することが難しく、その結果、写真部分を優先すると文字部分がつぶれてしまったり、文字部分を優先すると写真部分がつぶれたり、かすれたりしてしまっていた。また大津法では、写真部分と文字部分において２クラスの分布の特徴が異なり、２クラスの分布が極端に異なる場合においては、大きい方のクラスに閾値が寄ってしまうという性質があり、従ってノイズの多い２値画像が生成されてしまっていた。更に、局所的濃度に応じ閾値を設定する２値化法では、下地の上に文字がある場合、その下地までも濃度を再現してしまい、文字部分にノイズの多い２値画像が生成されてしまうという問題もあった。
【０００７】
本発明は上述した課題を解決するために成されたものであり、画像内の文字部分とそれ以外の部分とのそれぞれに適切な２値化閾値を自動的に設定可能な画像処理方法及び装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明の画像処理方法は、多値画像の輝度頻度を所定のブロック毎に算出し、該輝度頻度の偏りを示すスキュー値に基づいて前記輝度頻度の平均輝度値及びスキュー値を算出するための輝度頻度領域を設定する設定工程と、前記設定された輝度頻度領域における前記輝度頻度の平均輝度値及びスキュー値を算出する算出工程と、前記算出されたスキュー値が所定範囲内か否かを判定する判定工程と、前記判定工程で所定範囲内と判定された場合、処理ブロックがかすれ文字を含む場合、所定回数以内に前記所定範囲内と判定されなかった場合の何れかの場合に、前記算出工程で算出された平均輝度値を、当該処理ブロックにおける多値画像を２値化するための２値化閾値に設定する閾値設定工程とを有し、前記スキュー値が所定範囲外で、かつ、正の場合、前記輝度頻度の平均輝度値を始点とし、前記輝度頻度の最大輝度値を終点として前記輝度頻度領域を設定し、前記スキュー値が所定範囲外で、かつ、負の場合、前記輝度頻度の最小輝度値を始点とし、前記輝度頻度の平均輝度値を終点として前記輝度頻度領域を設定し、前記所定回数前記設定工程、前記算出工程、及び前記判定工程を繰り返すことを特徴とする。
【０００９】
また、上記目的を達成するために、本発明の画像処理装置は、多値画像の輝度頻度を所定のブロック毎に算出し、該輝度頻度の偏りを示すスキュー値に基づいて前記輝度頻度の平均輝度値及びスキュー値を算出するための輝度頻度領域を設定する設定手段と、前記設定された輝度頻度領域における前記輝度頻度の平均輝度値及びスキュー値を算出する算出手段と、前記算出されたスキュー値が所定範囲内か否かを判定する判定手段と、前記判定手段で所定範囲内と判定された場合、処理ブロックがかすれ文字を含む場合、所定回数以内に前記所定範囲内と判定されなかった場合の何れかの場合に、前記算出手段で算出された平均輝度値を、当該処理ブロックにおける多値画像を２値化するための２値化閾値に設定する閾値設定手段とを有し、前記スキュー値が所定範囲外で、かつ、正の場合、前記輝度頻度の平均輝度値を始点とし、前記輝度頻度の最大輝度値を終点として前記輝度頻度領域を設定し、前記スキュー値が所定範囲外で、かつ、負の場合、前記輝度頻度の最小輝度値を始点とし、前記輝度頻度の平均輝度値を終点として前記輝度頻度領域を設定し、前記所定回数前記設定手段、前記算出手段、及び前記判定手段による処理を繰り返すことを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明に係る実施形態について詳細に説明する。
【００１４】
＜第１実施形態＞
図１は、本実施形態における２値化処理を実行する画像処理システムの構成を示すブロック図である。図１において、１は画像の２値化処理、文字認識処理などを行う画像処理装置である。２は画像を入力するスキャナ等の画像入力装置である。そして、３は処理後の画像を表示する画像表示装置である。
【００１５】
上記の画像処理装置１において、４は入力部であり、画像入力装置２とのインターフェイスとして機能する。５はメモリ等の記憶部であり、処理中のデータを記憶する。６は輝度頻度累計部であり、入力画像の輝度頻度（ヒストグラム）を累計する。７は画像特徴判別部であり、入力画像が文字画像か否かを判別する。８は２値化閾値算出部であり、入力画像の２値化閾値を算出する。９は２値化部であり、２値化閾値算出部８にて算出された閾値を用い２値化画像を作成する。１０は文字認識部であり、文字領域として抽出された領域に対する文字認識処理を行う。１１は画像処理部であり、文字領域以外に分離された領域に対する各種画像処理や画像のレイアウト処理を行う。１２は出力部であり、画像表示装置３とのインターフェイスとして機能する。これら各構成は、不図示のＣＰＵにより統括的に制御されている。
【００１６】
以上の構成における本実施形態の画像処理装置１にて実行されるＯＣＲ処理について、以下に説明する。
【００１７】
図２は、本実施形態の特徴である２値化閾値決定方法を利用した文字認識処理を示すフローチャートである。まず、ステップＳ２０１において、スキャナなどの画像入力装置２より画像データを入力する。ここでの入力は、８ビットの多値画像データとして行われる。次に、ステップＳ２０２では、画像入力時に発生する画像入力装置２の電気的ノイズの除去や、原稿画像の劣化、原稿の傾きなど、入力画像に対する補正を行う。そして、ステップＳ２０３において、ステップＳ２０１で入力した多値画像データに対し、本実施形態の特徴である文字ブロック（つぶれ文字ブロック、かすれ文字ブロック）の判別を行い、それぞれに最適な２値化閾値を決定し、その２値化閾値により２値画像を生成する。尚、この２値化処理については、更に後述する。
【００１８】
その後、ステップＳ２０４に進み、ステップＳ２０３で２値化された２値画像が文字ブロックと判別されたブロックか否かを判断する。ここで、文字ブロックと判別された場合はステップＳ２０５に進み、その文字ブロックを２値画像から切り出し、その２値画像に対して文字認識処理を行い、認識された文字コードを出力する。そして、ステップＳ２０６で未処理ブロックが画像中にあるか否かを判断し、ある場合はステップＳ２０４へ、ない場合はステップＳ２０７へ進む。ステップＳ２０７では、文字ブロックと、非文字ブロックとを合成し、原稿画像と同じレイアウトにする。
【００１９】
［２値化処理］
次に、上述したステップＳ２０３での２値化処理の詳細について、図３に示すフローチャートに従って以下に説明する。
【００２０】
まず、ステップＳ３０１において、８ビットの多値画像データを画像処理装置１内の記憶部５から不図示のメモリ等に処理ブロックの単位（本実施形態では、６４×６４画素）毎に入力する。尚、この多値画像データはスキャナなどの画像入力装置２により予め記憶部５に格納されているものである。そして、ステップＳ３０２で文字ブロック（つぶれ文字ブロック、かすれ文字ブロック）か否かを判別し、入力画像データの処理ブロックの単位（６４×６４画素）毎に２値化のための閾値を決定する。次に、ステップＳ３０３では、後述する文字フラグＭＦが「１」か否かを判断する。尚、処理中のブロックが文字ブロックか否かの判断については更に後述する。その結果、文字ブロックであればステップＳ３０５へ進むが、文字ブロックでなければステップＳ３０４へ進み、閾値ＴＨを下限値Ｌと上限値Ｈとにより制限する。つまり、ステップＳ３０２で決定された閾値ＴＨが下限値Ｌよりも小さい場合には閾値ＴＨをＬで代表させ、また上限値Ｈよりも大きい場合には閾値ＴＨをＨで代表させるような制限処理を行う。ここで、この下限値Ｌと上限値Ｈは画像入力装置２の特性によって決定される値である。
【００２１】
次に、ステップＳ３０５において、後述するつぶれ文字フラグＴＦが「１」か否かを判断する。尚、処理中のブロックがつぶれ文字ブロックか否かの判断については更に後述する。その結果、つぶれ文字ブロックであればステップＳ３０６へ進むが、つぶれ文字ブロックでなければステップＳ３０７へ進み、閾値ＴＨを制限する。つまり、ステップＳ３０２又はステップＳ３０４で決定された閾値ＴＨに文字つぶれ防止用の定数ＴＰをかけるような制限処理を行う。尚、定数ＴＰは画像入力装置２の特性によって決定される値である。次に、ステップＳ３０７では、ステップＳ３０２，Ｓ３０４，Ｓ３０６で決定された閾値ＴＨに基づいて単純２値化処理を行う。そして、ステップＳ３０８では、入力画像の最後の処理ブロック（６４×６４画素）か否かを判断し、最後の処理ブロックであれば２値化処理を終了するが、未処理ブロックがあればステップＳ３０１へ戻る。
【００２２】
［閾値決定処理］
次に、上述したステップＳ３０２での２値化の閾値決定処理の詳細について、図４に示すフローチャートに従って以下に説明する。
【００２３】
まず、ステップＳ４０１において、パラメータＳＴＡＲＴ、ＥＮＤにそれぞれ「０」、「２５５」をセットする。パラメータＳＴＡＲＴ、ＥＮＤはそれぞれ、後段のステップＳ４０２やステップＳ４０３で求める輝度値の統計量の始点及び終点に対応する。また、閾値決定処理ループ回数ｉに「０」をセットし、初期化する。そして、ステップＳ４０１では同時に、処理ブロック（６４×６４画素）中の全画素を用い、８ビット、即ち「０」から「２５５」までの各ディジタル値に対する頻度（ヒストグラム）を計算する。
【００２４】
次に、ステップＳ４０２では、ＳＴＡＲＴからＥＮＤまでのデジタル値に対応する画素の平均値ＡＶを算出する。例えば、ＳＴＡＲＴ＝０、ＥＮＤ＝２５５であれば、「０」から「２５５」の値を持つ画素の平均値ＡＶを算出し、ＳＴＡＲＴ＝０、ＥＮＤ＝１０９であれば「０」から「１０９」の値を持つ画素の平均値ＡＶを算出する。そして、ステップＳ４０３では、ＳＴＡＲＴからＥＮＤまでの輝度値に対応する画素のスキュー値ＳＫを算出する。ここで、スキュー値とは、ヒストグラム分布の偏りを示す統計量である。このスキュー値の算出には、以下に示す（１）式を用いる。
【００２５】
ＳＫ＝（Σ（Ｘｉ  −ＡＶ）＾３）／Ｄ      …（１）
ここで、Ｘｉ  は画素の輝度値であリ、ｘ＾ｙはｘのｙ乗を示す。また、Ｄは画像全体の分散値であり、（２）式により算出される。
【００２６】
Ｄ＝Σ（Ｘｉ  −ＡＶ）＾２                …（２）
上記（１）式において、スキュー値は各画素の輝度値と、その平均値との差分を３乗することにより算出されるが、奇数乗であれば３乗に限定されるものではない。
【００２７】
次に、ステップＳ４０４において、１つの処理ブロックにおける閾値決定処理ループ回数ｉの判断（ｉ＝０、つまり、最初のループかどうかの判断）を行う。ここで、ｉが「０」であればステップＳ４０５へ、「０」以外であればステップＳ４０６へ進む。ステップＳ４０５では、処理中のブロックが「文字ブロック」か否かの画像特徴判別を行い（詳細は後述する）、ステップＳ４１４へ進む。
【００２８】
一方、ステップＳ４０６では、以下に示す（３）式によりヒストグラムの偏りの大きさを判断する。
【００２９】
−０．１  ＜  ＳＫ  かつ  ＳＫ  ＜  ０．１      …（３）
つまり、スキュー値ＳＫの絶対値が「０．１」未満かの判断を行う。その結果、真ならばステップＳ４１６へ進むが、偽ならばステップＳ４０７へ進み、閾値決定処理ループ回数ｉの判断を行う。このループ回数ｉが「１」ならばステップＳ４０８へ、「１」以外ならステップＳ４０９へ進む。ステップＳ４０８では、処理中のブロックが「つぶれ文字ブロック」か否かの判断と処理を行う（詳細は後述する）。そして、ステップＳ４０９において、閾値決定処理ループ回数ｉの判断を行い、ｉが「９」ならばステップＳ４１６へ、「９」以外ならステップＳ４１０へ進む。ステップＳ４１０では、処理中のブロックが「かすれ文字ブロック」か否かの判断と処理を行う（詳細は後述する）。そして、ステップＳ４１１において、かすれ文字フラグＫＦが「１」か否かを判断し、「１」ならばステップＳ４１６へ、「１」以外ならステップＳ４１２へ進む。
【００３０】
このステップＳ４１２では、以下に示す（４）式によりヒストグラムの偏りの方向を判断する。
【００３１】
ＳＫ  ＞  ０                …（４）
上記（４）式が真（ヒストグラムの偏りが平均値ＡＶよりも大きい値の範囲にあることを意味する）ならばステップＳ４１３へ進み、また偽（ヒストグラムの偏りが平均値ＡＶよりも小さい値の範囲にあることを意味する）ならばステップＳ４１４へ進む。ステップＳ４１３では、ＳＴＡＲＴに平均値ＡＶをセットし、ＥＮＤは変化させない。一方、ステップＳ４１４では、ＳＴＡＲＴは変化させず、ＥＮＤに平均値ＡＶをセットする。そして、ステップＳ４１５では、閾値決定処理ループ回数ｉに「１」を加え、ステップＳ４０２に戻り、再びＳＴＡＲＴ値からＥＮＤ値までの平均値ＡＶを算出する。
【００３２】
最後に、ステップＳ４１６では平均値ＡＶを、２値化閾値ＴＨとして設定し、この閾値決定処理を終える。
【００３３】
このように、本実施形態における２値化処理を行っているが、上記（３）式、（４）式で示した範囲は、これに限定されるものではない。
【００３４】
［画像特徴判別処理］
次に、上述したステップＳ４０５での画像特徴判別処理の詳細について、図５に示すフローチャートに従って以下に説明する。
【００３５】
まず、ステップＳ５０１では、処理中のブロックが「文字ブロック」か否かを示す文字フラグＭＦに「０」をセットする。また、閾値決定処理ループにおける最初のスキュー値を表わすＳＫ０にスキュー値ＳＫをセットする（これは、画像特徴判別処理が閾値決定処理ループにおける最初のループでのみ行われるからである）。ステップＳ５０２では、処理中のブロックが「文字ブロック」か否かの判断を以下に示す（５）式により行う。
【００３６】
ＳＫ０  ＜  ＭＨ              …（５）
ここで、ＭＨは処理中のブロックが「文字ブロック」か否かを示す値であり、ここでは、「ＭＨ＝−２０．０」とする。ステップＳ５０２で、上記（５）式が真ならばステップＳ５０３へ、また偽ならばこの画像特徴判別処理を終了する。ステップＳ５０３では、処理中のブロックが「文字ブロック」であることを示す文字フラグＭＦに「１」をセットし、この画像特徴判別処理を終了する。
【００３７】
このように、本実施形態における画像特徴判別処理を行っているが、上記（５）式で示した条件は、これに限定されるものではない。
【００３８】
［つぶれ文字処理］
次に、上述したステップＳ４０８でのつぶれ文字処理の詳細について、図６に示すフローチャートに従って説明する。まず、ステップＳ６０１では、処理中のブロックが「つぶれ文字ブロック」か否かを示すつぶれ文字フラグＴＨに「０」をセットする。また、処理中のブロックのヒストグラムの偏りが大きいことを示すフラグＰＦに「０」をセットする。そして、ステップＳ６０２では、閾値決定処理ループにおける最初のループのスキュー値ＳＫ０と、処理中のループのスキュー値ＳＫが共にマイナスであるか判断し、共にマイナスであれば、ステップＳ６０３でフラグＰＦに「１」をセットする。ステップＳ６０４では、文字フラグＭＦが「１」か否かの判断（つまり、処理中のブロックが文字ブロックか否かの判断）を行い、「１」ならばステップＳ６０５へ、「１」以外ならばこのつぶれ文字処理を終了する。ステップＳ６０５では、処理中のブロックが「つぶれ文字ブロック」か否かの判断を以下に示す（６）式により行う。
【００３９】
ＳＫ０／ＳＫ  ＜  −ＳＲ          …（６）
ここで、−ＳＲは処理のブロックが「つぶれ文字ブロック」か否かを示す値であり、本実施形態では「−ＳＲ＝−３．０」とする。ステップＳ６０５において上記（６）式が真ならばステップＳ６０６へ、また偽ならばこのつぶれ文字処理を終了する。そして、ステップＳ６０６では、処理中のブロックが「つぶれ文字ブロック」であることを示す、つぶれ文字ＴＦに「１」をセットし、このつぶれ文字処理を終了する。
【００４０】
このように、本実施形態におけるつぶれ文字処理を行っているが、上記（６）式で示した条件は、これに限定されるものではない。
【００４１】
［かすれ文字処理］
次に、上述したステップＳ４１０でのかすれ文字処理の詳細について、図７に示すフローチャートに従って説明する。まず、ステップＳ７０１では、処理中のブロックが「かすれ文字ブロック」か否かを示すかすれ文字フラグＫＦに「０」をセットする。次に、ステップＳ７０２では、文字フラグＭＦが「１」か否かの判断（処理中のブロックが文字ブロックか否かの判断）を行い、「１」ならばステップＳ７０３へ、「１」以外ならこのかすれ文字処理を終了する。ステップＳ７０３では、処理中のブロックのヒストグラムの偏りが大きいことを示すフラグＰＦが「１」か否かを判断し、「１」ならばステップＳ７０４へ、「１」以外ならこのかすれ文字処理を終了する。ステップＳ７０４では、処理中のブロックが「かすれ文字ブロック」か否かの判断を以下に示す（７）式により行う。
【００４２】
ＳＫ０／ＳＫ  ＞  ＳＲ            …（７）
ここで、ＳＲは処理中のブロックが「かすれ文字ブロック」か否かを示す値であり、本実施形態では「ＳＲ＝３．０」とする。ステップＳ７０４において、上記（７）式が真ならばステップＳ７０５へ、また偽ならばこのかすれ文字処理を終了する。そして、ステップＳ７０５では、処理中のブロックが「かすれ文字ブロック］であることを示す、かすれ文字フラグＫＦに「１」をセットし、このかすれ文字処理を終了する。
【００４３】
このように、本実施形態におけるかすれ文字処理を行っているが、上記（７）式で示した条件は、これに限定されるものではない。
【００４４】
ここで、具体的な画像の例を参照し、本実施形態の２値化処理について、更に詳細に説明する。
【００４５】
まず、図８に示すヒストグラムの例を用いて、本実施形態における２値化閾値ＴＨの決定処理（図４）について説明する。
【００４６】
図８は、つぶれ文字画像（８ビット入力）のヒストグラムを示すものである。図８において、横軸は左端が「０」即ち黒を、右端が「２５５」即ち白を表わす輝度のデジタル値である。そして、縦軸は各デジタル値の頻度を表わしている。図９は、図８に示すようなヒストグラムを有する画像に対して、前述した図４に示す２値化処理のステップＳ４０２とＳ４０３で算出される各パラメータの値の変化を示す図である。尚、図９に示される各パラメータの値はステップＳ４０２及びＳ４０３を通過する回数に対応してそれぞれ示されている。
【００４７】
まず、ステップＳ４０２及びＳ４０３を通過する１回目の処理（閾値決定処理ループ回数ｉ＝０）では、ＳＴＡＲＴ＝０、ＥＮＤ＝２５５で平均値ＡＶ、統計量ＳＫを計算し、それぞれ「１０９」、「−２７．４」という値を得る。そして、ｉ＝０であるので、ステップＳ４０４からステップＳ４０５へ進む。ステップＳ４０５の画像特徴判別処理では、（５）式により統計量ＳＫが「−２０．０」未満であるため真となり、文字フラグＭＦに「１」がセットされ、ステップＳ４１４でＳＴＡＲＴ＝０、ＥＮＤ＝１０９が設定される。
【００４８】
次に、２回目の処理（ｉ＝１）では、ＳＴＡＲＴ＝０、ＥＮＤ＝１０９における平均値ＡＶ、統計量ＳＫを計算し、それぞれ「６２」、「８．９」という値を得る。統計量ＳＫが「０．１」を越えるため、ステップＳ４０６からステップＳ４０７へ進み、ｉ＝１であるのでステップＳ４０８へ進む。ステップＳ４０８では、スキュー値ＳＫがプラスのため、フラグＰＦは「０」のままとなる。そして、（６）式の結果が「−３．０８（＝−２７．４／８．９）」と真なので、つぶれ文字フラグＴＦに「１」がセットされる。ステップＳ４１０では、フラグＰＦが「０」のままなのでかすれフラグＫＦは「０」のままである。更に、スキュー値ＳＫがプラスのため、ステップＳ４１３でＳＴＡＲＴ＝６２、ＥＮＤ＝１０９が設定される。
【００４９】
続いて、３回目の処理（ｉ＝２）では、ＳＴＡＲＴ＝６２、ＥＮＤ＝１０９における平均値ＡＶ、統計量ＳＫを計算し、それぞれ「８４」、「１．９」という値を得る。この場合、統計量ＳＫが「０．１」を超えるため、ステップＳ４０７、ステップＳ４０９へと進む。そして、スキュー値ＳＫがプラスのため、ステップＳ４１３でＳＴＡＲＴ＝８４、ＥＮＤ＝１０９が設定される。
【００５０】
続いて、４回目の処理（ｉ＝３）では、ＳＴＡＲＴ＝８４、ＥＮＤ＝１０９における平均値ＡＶ、統計量ＳＫを計算し、それぞれ「９６」、「０．６」という値を得る。この場合、統計量ＳＫが「０．１」を超えるため、ステップＳ４０７、ステップＳ４０９へと処理が続き、スキュー値ＳＫがプラスのため、ステップＳ４１３でＳＴＡＲＴ＝９６、ＥＮＤ＝１０９が設定される。
【００５１】
続いて、５回目の処理（ｉ＝４）では、ＳＴＡＲＴ＝９６、ＥＮＤ＝１０９における平均値ＡＶ、計算量ＳＫを計算し、それぞれ「１０２」、「−０．３」という値を得る。この場合は、統計量ＳＫが「−０．１」未満のため、ステップＳ４０７、ステップＳ４０９へと処理が続き、スキュー値ＳＫがマイナスのため、ステップＳ４１４でＳＴＡＲＴ＝９６、ＥＮＤ＝１０２が設定される。
【００５２】
続いて、６回目の処理（ｉ＝５）では、ＳＴＡＲＴ＝９６、ＥＮＤ＝１０２における平均値ＡＶ、計算量ＳＫを計算し、それぞれ「９８」、「０．３」という値を得る。この場合、統計量ＳＫが「０．１」を超えるため、ステップＳ４０７、ステップＳ４０９へと処理が続き、スキュー値ＳＫがプラスのため、ステップＳ４１３でＳＴＡＲＴ＝９８、ＥＮＤ＝１０２が設定される。
【００５３】
続いて、７回目の処理（ｉ＝６）では、ＳＴＡＲＴ＝９８、ＥＮＤ＝１０２における平均値ＡＶ、計算量ＳＫを計算し、それぞれ「９９」、「０．４」という値を得る。この場合、統計量ＳＫが「０．１」を超えるため、ステップＳ４０７、ステップＳ４０９へと処理が続き、スキュー値ＳＫがプラスのため、ステップＳ４１３でＳＴＡＲＴ＝９９、ＥＮＤ＝１０２が設定される。
【００５４】
続いて、８回目の処理（ｉ＝７）では、ＳＴＡＲＴ＝９９、ＥＮＤ＝１０２における平均値ＡＶ、計算量ＳＫを計算し、それぞれ「１００」、「０．２」という値を得る。この場合、統計量ＳＫが「０．１」を超えるため、ステップＳ４０７、ステップＳ４０９へと処理が続き、スキュー値ＳＫがプラスのため、ステップＳ４１３でＳＴＡＲＴ＝１００、ＥＮＤ＝１０２が設定される。
【００５５】
続いて、９回目の処理（ｉ＝８）では、ＳＴＡＲＴ＝１００、ＥＮＤ＝１０２における平均値ＡＶ、計算量ＳＫを計算し、それぞれ「１０１」、「−０．２」という値を得る。この場合は、統計量ＳＫが「−０．１」未満のため、ステップＳ４０７、ステップＳ４０９へと処理が続き、スキュー値ＳＫがマイナスのため、ステップＳ４１４でＳＴＡＲＴ＝１００、ＥＮＤ＝１０１が設定される。
【００５６】
続いて、１０回目の処理（ｉ＝９）では、ＳＴＡＲＴ＝１００、ＥＮＤ＝１０１における平均値ＡＶ、計算量ＳＫを計算し、それぞれ「１００」、「０．２」という値を得る。この場合、統計量ＳＫが「０．１」を超えるが、閾値決定処理ループ回数ｉが「９」のため、ステップＳ４０９の判断でステップＳ４１６へと進み、閾値ＴＨに平均値ＡＶである「１００」をセットし、この閾値決定処理を終了する。但し、この例におけるブロックは、つぶれ文字フラグＴＨに「１」がセットされているため、図３のステップＳ３０５の判断が真となり、ステップＳ３０６で閾値に制限を受け、ＴＨには「８５（＝１００×０．８５）」がセットされ、ステップＳ３０７で２値化される（この場合ＴＰに「０．８５」がセットされている）。そして、２値化された画像が記憶部５に格納される。
【００５７】
次に、図１０に示すヒストグラムの例を用いて、本実施形態における２値化閾値ＴＨの決定処理（図４）について説明する。
【００５８】
図１０は、かすれ文字画像（８ビット入力）のヒストグラムを示すものである。図１１は、図１０に示すようなヒストグラムを有する画像に対して、前述した図４に示す２値化処理のステップＳ４０２とＳ４０３で算出される各パラメータの値の変化を示す図である。尚、図１１に示される各パラメータの値はステップＳ４０２及びＳ４０３を通過する回数に対応してそれぞれ示されている。
【００５９】
まず、ステップＳ４０２及びＳ４０３を通過する１回目の処理（閾値決定書るループ回数ｉ＝０）では、ＳＴＡＲＴ＝０、ＥＮＤ＝２５５で平均値ＡＶ、統計量ＳＫを計算し、それぞれ「１３０」、「−６０．２」という値を得る。そして、ｉ＝０であるので、ステップＳ４０４からステップＳ４０５へ進む。ステップＳ４０５の画像特徴判別処理では、（５）式により統計量ＳＫが「−２０．０」未満であるため真となり、文字フラグＭＦに「１」がセットされ、ステップＳ４１４でＳＴＡＲＴ＝０、ＥＮＤ＝１３０が設定される。
【００６０】
次に、２回目の処理（ｉ＝１）では、ＳＴＡＲＴ＝０、ＥＮＤ＝１３０における平均値ＡＶ、統計量ＳＫを計算し、それぞれ「９５」、「−１９．３」という値を得る。統計量ＳＫが「０．１」を超えるため、ステップＳ４０６からステップＳ４０７へ進み、ｉ＝１であるのでステップＳ４０８へ進む。ステップＳ４０８では、スキュー値ＳＫ、ＳＫ０が共にマイナスのため、フラグＰＦに「１」がセットされる。そして、（６）式の結果が「３．１１（＝−６０．２／−１９．３）］と偽なので、つぶれ文字フラグＴＦは「０」のままとなる。次に、ステップＳ４１０のかすれ文字処理では、文字フラグＭＦ、フラグＰＦ共に「１」なので、ステップＳ７０４で（７）式の計算を行い、結果が「３．１１（＝−６０．２／−１９．３）」と真なので、かすれ文字フラグＫＦに「１」をセットする。かすれフラグＫＦが「１」なので、ステップＳ４１１からステップＳ４１６へと進み、閾値ＴＨに平均値ＡＶの「９５」をセットし、この閾値決定処理を終了する。そして、図３のステップＳ３０７の２値化処理で２値化され、２値化された画像が記憶部５に格納される。
【００６１】
以上説明したように、本実施形態においては、処理中のブロックが、「つぶれ文字ブロック」か、「かすれ文字ブロック」か判断し、ブロックの種類によってスキュー値に対する収束条件を設定し、スキュー値が所定条件まで収束するようにして２値化閾値を決定し、２値化を行う。即ち、入力された多値画像において、輝度頻度とその偏りに基づいて画像の特徴を判別し、画像内の背景と対象物をを分離するために最も適した閾値が存在する領域を特定した後、その特定領域の平均輝度値を持って２値化閾値とする。これにより、多値入力画像上の領域内における各画素の輝度値を背景と対象物との２つのクラスに分類する際の最適閾値を、自動的に求めることができる。
【００６２】
［他の実施形態］
前述した実施形態では、入力画像はグレイ８ビットとしたが、これに限定する必要はなく、カラーであってもよい。つまりは、２値化するためのデータとして複数ビットの情報があればよく、限定されるものではない。
【００６３】
また、ヒストグラムを算出する際の画像の処理ブロックも、６４×６４画素としたが、ブロックの大きさとして３２×３２画素でもよく限定しない。更には、ブロックの形は正方形でも長方形でもかまわない。つまり、処理ブロックを６４×９６画素のようにしてもよい。メモリの容量によっては、画像全面を処理ブロックとしてもよい。
【００６４】
また、ヒストグラムを算出する際の画像のサンプリングについて、全画素でも、数画素おきでもよく限定しない。更に、平均ＡＶや統計量ＳＫなどの計算は、８ビットで行わなくてもよく、高速化、メモリ削減等のため、少ないビット数で演算するようにしてもよい。
【００６５】
また、統計量ＳＫの収束条件を「±０．１」としたが、これに限定するものではなく、別の条件を定めてもよく、統計量ＳＫを用いて２値化の閾値を決定するように構成すればよく、限定しない。また、画像入力装置や画像入力条件により変化させる等、別の条件を定めてもよい。
【００６６】
また、（５）式の文字ブロックの判定に関し、文字フラグＭＦを「−２０．０」としたが、これに限定するものではなく、統計量ＳＫを用いて文字ブロックの判定を行うよう、別の条件を定めてもよい。また、画像入力装置や画像入力条件により変化させる等、別の条件を定めてもよい。
【００６７】
また、（６）式、（７）式でつぶれ文字ブロックやかすれ文字ブロックの判定にＳＲ値を用い「３．０」としたが、これに限定するものではなく、統計量ＳＫを用いてつぶれ文字ブロックやかすれ文字ブロックの判定を行うよう、別の条件を定めてもよい。また、画像入力装置や画像入力条件により変化させる等、別の条件を定めてもよい。
【００６８】
また、閾値決定処理ループ回数ｉを１０回で打ち切るようにしたが、この回数についても１０回に限定されないのは言うまでもない。
【００６９】
また、閾値の下限値Ｌと上限値Ｈについて、画像入力装置や画像入力条件により変化させる等、構成してもよい。
【００７０】
また、つぶれ防止のために定数ＴＰを用い「０．８５」としたが、これに限定するものではなく、画像入力装置や画像入力条件により変化させる等、別の条件を定めてもよい。
【００７１】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００７２】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７４】
プログラムコードを供給するための記憶媒体としては、例えばフロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７６】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
【発明の効果】
以上説明したように、本発明によれば、多値画像の輝度頻度を所定のブロック毎に算出し、その輝度頻度の偏りを示すスキュー値に基づいて設定された輝度頻度領域におけるスキュー値が所定範囲内と判定された場合、処理ブロックがかすれ文字を含む場合、所定回数以内に前記所定範囲内と判定されなかった場合の何れかの場合に、その輝度頻度領域で算出された平均輝度値を、処理ブロックにおける多値画像を２値化するための２値化閾値に設定することにより、処理ブロックに応じた適切な２値化閾値を自動的に設定することができる。
【００７８】
【図面の簡単な説明】
【図１】本実施形態における画像処理システムの構成を示すブロック図である。
【図２】本実施形態における文字認識処理を示すフローチャートである。
【図３】本実施形態における２値化処理を示すフローチャートである。
【図４】本実施形態における閾値決定処理を示すフローチャートである。
【図５】本実施形態における画像特徴判別処理を示すフローチャートである。
【図６】本実施形態におけるつぶれ文字処理を示すフローチャートである。
【図７】本実施形態におけるかすれ文字処理を示すフローチャートである。
【図８】本実施形態におけるつぶれ文字画像のヒストグラム例を示す図である。
【図９】本実施形態のつぶれ文字画像の２値化処理における各変数値の変遷例を示す図である。
【図１０】本実施形態におけるかすれ文字画像のヒストグラム例を示す図である。
【図１１】本実施形態のかすれ文字画像の２値化処理における各変数値の変遷例を示す図である。
【符号の説明】
１  画像処理装置
２  画像入力装置
３  画像表示装置
４  入力部
５  記憶部
６  輝度頻度累計部
７  画像特徴判別部
８  ２値化閾値算出部
９  ２値化部
１０  文字認識部
１１  画像処理部
１２  出力部
【図１】
0003624045.tif 000002
【図２】
0003624045.tif 000003
【図３】
0003624045.tif 000004
【図４】
0003624045.tif 000005
【図５】
0003624045.tif 000006
【図６】
0003624045.tif 000007
【図７】
0003624045.tif 000008
【図８】
0003624045.tif 000009
【図９】
0003624045.tif 000010
【図１０】
0003624045.tif 000011
【図１１】
0003624045.tif 000012