(57)【特許請求の範囲】
【請求項１】
画素が多値の階調値を有する画像データを二値化する処理をコンピュータに実行させる画像処理プログラムであって、
前記階調値が所定の黒側閾値よりも低い前記画素を黒画素とする処理、及び又は、前記階調値が所定の白側閾値以上の前記画素を白画素とする処理を実行する前処理ステップと、
前記前処理ステップで二値化されていない前記画像データの各画素について、処理対象の前記画素である注目画素と前記階調値が一定差以上ある画素が１以上検知されるまで、前記注目画素に近い前記画素から、概ね前記注目画素から離れていく方向に、各画素を走査し、当該走査した画素と前記注目画素の前記階調値の差分が前記一定差以上であるか否かを判定し、前記検知された階調値が一定差以上ある画素の値に応じて、前記注目画素の二値化後の値を決定する、中間領域処理ステップとを前記コンピュータに実行させ、
前記前処理ステップにおける前記白側閾値が、
前記階調値の所定値から、前記階調値の高い順番に前記画素を所定個数ずつグルーピングし、グループ内における最高階調値と最低階調値の差が所定値よりも大きくなる各グループにおいて、同じ階調値を有している前記画素の個数が最も少ない当該階調値を閾値候補として検出し、
前記検出された閾値候補の中から選択される
ことを特徴とする画像処理プログラム。
【請求項２】
請求項１において、
前記中間領域処理ステップにおける各画素の走査が、前記注目画素と階調値が一定差以上ある画素であって、前記注目画素の階調値よりも階調値の小さい画素が２以上検知されるまで、あるいは、前記注目画素と階調値が一定差以上ある画素であって、前記注目画素の階調値よりも階調値の大きい画素が２以上検知されるまで行なわれる
ことを特徴とする画像処理プログラム。
【請求項３】
請求項１あるいは２において、
前記検出された閾値候補の中から、最も階調値の高い閾値候補が前記白側閾値として選択される
ことを特徴とする画像処理プログラム。
【請求項４】
請求項１あるいは２において、
前記検出された閾値候補の中で最も階調値の高い閾値候補の階調値が予め定められた所定値以上である場合には、前記階調値の低い画素の個数に応じて、２番目に階調値の高い前記閾値候補が前記白側閾値として選択される
ことを特徴とする画像処理プログラム。
【請求項５】
画素が多値の階調値を有する画像データを二値化する処理を実行する画像処理装置であって、
前記階調値が所定の黒側閾値よりも低い前記画素を黒画素とする処理、及び又は、前記階調値が所定の白側閾値以上の前記画素を白画素とする処理を実行し、
当該処理で二値化されていない前記画像データの各画素について、処理対象の前記画素である注目画素と前記階調値が一定差以上ある画素が１以上検知されるまで、前記注目画素に近い前記画素から、概ね前記注目画素から離れていく方向に、各画素を走査し、当該走査した画素と前記注目画素の前記階調値の差分が前記一定差以上であるか否かを判定し、前記検知された階調値が一定差以上ある画素の値に応じて、前記注目画素の二値化後の値を決定する処理を実行し、
前記白側閾値が、
前記階調値の所定値から、前記階調値の高い順番に前記画素を所定個数ずつグルーピングし、グループ内における最高階調値と最低階調値の差が所定値よりも大きくなる各グループにおいて、同じ階調値を有している前記画素の個数が最も少ない当該階調値を閾値候補として検出し、
前記検出された閾値候補の中から選択される
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたディジタル画像を二値化するための画像処理プログラム等に関し、特に、二値化後に残したい部分を識別しやすい状態で残すことができると共に、処理時間も抑えることのできる画像処理プログラム等に関する。
【背景技術】
【０００２】
従来、各画素が多値の濃度階調値を有する画像データを二値化することが行なわれている。当該処理では、所定の閾値が設定されて、当該閾値より大きい濃度階調値を有する画素は白画素に、当該閾値より小さい濃度階調値を有する画素は黒画素に変換される。かかる画像の二値化処理は、画像をＯＣＲで読み取る際に、帳票などを判別する際に、また、データ量を小さくして保存する際などに用いられる。
【０００３】
下記特許文献１には、帳票の濃度画像を安定して二値化するための装置が記載され、対象画像の濃度ヒストグラムにおいて所定の濃度値付近に位置する複数の極小値を検出し、この検出された極小値の中から最小値となる極小値の濃度値を二値化しきい値として選択する、ことが示されている。
【０００４】
下記特許文献２には、従来の単に一定閾値と比較して白黒を決定する方法での問題点に鑑み、文字の潰れやかすれがない品質の良い二値化データを得ることを目的とした二値化装置等が提案されている。具体的には、注目画素を中心にした所定領域内の最大階調値を求め、それと注目画素の値との差が閾値よりも小さければ白とし、閾値よりも大きければ黒とする処理が示されている。
【特許文献１】特開２００２−１５０２７６号公報
【特許文献２】特開平７−３２５９１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した二値化処理において、処理対象のドキュメント（原稿）が比較的濃い色の背景の上に記載された文字や比較的薄い色の文字などを含む場合、処理対象画像の全体に対して単に一つの閾値を設定して白黒を決定する方法では、二値化に残したい部分を全て見やすい状態で残すのは難しい。
【０００６】
従って、上記特許文献１に記載された方法では、上述のような場合に常に適切な処理を実行するのは難しい。
【０００７】
また、上記特許文献２では、上述の通り、処理対象画素の局所的状態を考慮して処理を実行するが、広い範囲が黒く塗り潰されているような画像の場合、その画像の中の部分では、注目画素と周辺画素との差が小さいので白画素に変換されてしまい、いわゆる画像の中抜けという問題が発生してしまう。これに対し、所定の閾値によって二値化した画像と合成することが提案されているが、文字等の黒として残したい上記広く塗り潰された画像が、元々明るい色であった場合には、上記合成する二値化画像で中抜け部分を黒とするために、その閾値を高くする必要があり、その結果、不必要な部分まで黒として残ってしまう可能性が高く、やはり課題がある。
【０００８】
また、画像に突発的なノイズが存在することがあるが、当該ノイズは、上記注目画素を中心とした所定領域内で最大または最小階調値となりやすいので、上記方法はノイズの影響を受けやすい方法であり、判断を誤る可能性がある。
【０００９】
さらに、上述した処理対象画素の局所的状態を考慮した処理には一般的に時間がかかるという課題がある。
【００１０】
そこで、本発明の目的は、入力されたディジタル画像を二値化するための画像処理プログラムであって、二値化後に残したい部分を識別しやすい状態で残すことができると共に、処理時間も抑えることのできる画像処理プログラム、等を提供することである。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明の一つの側面は、画素が多値の階調値を有する画像データを二値化する処理をコンピュータに実行させる画像処理プログラムが、前記階調値が所定の黒側閾値よりも低い前記画素を黒画素とする処理、及び又は、前記階調値が所定の白側閾値以上の前記画素を白画素とする処理を実行する前処理ステップと、前記前処理ステップで二値化されていない前記画像データの各画素について、処理対象の前記画素である注目画素と前記階調値が一定差以上ある画素が１以上検知されるまで、前記注目画素に近い前記画素から、概ね前記注目画素から離れていく方向に、各画素を走査し、当該走査した画素と前記注目画素の前記階調値の差分が前記一定差以上であるか否かを判定し、前記検知された階調値が一定差以上ある画素の値に応じて、前記注目画素の二値化後の値を決定する、中間領域処理ステップとを前記コンピュータに実行させる、ことである。
【００１２】
更に、上記の発明において、好ましい態様は、前記中間領域処理ステップにおける各画素の走査が、前記注目画素と階調値が一定差以上ある画素であって、前記注目画素の階調値よりも階調値の小さい画素が２以上検知されるまで、あるいは、前記注目画素と階調値が一定差以上ある画素であって、前記注目画素の階調値よりも階調値の大きい画素が２以上検知されるまで行なわれる、ことを特徴とする。
【００１３】
更に、上記の発明において、一つの態様は、前記前処理ステップにおける前記白側閾値が、前記階調値の所定値から、前記階調値の高い順番に前記画素を所定個数ずつグルーピングし、グループ内における最高階調値と最低階調値の差が所定値よりも大きくなる各グループにおいて、同じ階調値を有している前記画素の個数が最も少ない当該階調値を閾値候補として検出し、前記検出された閾値候補の中から選択される、ことを特徴とする。
【００１４】
更に、上記の発明において、一つの態様は、前記検出された閾値候補の中から、最も階調値の高い閾値候補が前記白側閾値として選択される、ことを特徴とする。
【００１５】
更にまた、上記の発明において、一つの態様は、前記検出された閾値候補の中で最も階調値の高い閾値候補の階調値が予め定められた所定値以上である場合には、前記階調値の低い画素の個数に応じて、２番目に階調値の高い前記閾値候補が前記白側閾値として選択される、ことを特徴とする。
【００１６】
上記の目的を達成するために、本発明の別の側面は、画素が多値の階調値を有する画像データを二値化する処理を実行する画像処理装置が、前記階調値が所定の黒側閾値よりも低い前記画素を黒画素とする処理、及び又は、前記階調値が所定の白側閾値以上の前記画素を白画素とする処理を実行し、当該処理で二値化されていない前記画像データの各画素について、処理対象の前記画素である注目画素と前記階調値が一定差以上ある画素が１以上検知されるまで、前記注目画素に近い前記画素から、概ね前記注目画素から離れていく方向に、各画素を走査し、当該走査した画素と前記注目画素の前記階調値の差分が前記一定差以上であるか否かを判定し、前記検知された階調値が一定差以上ある画素の値に応じて、前記注目画素の二値化後の値を決定する処理を実行する、ことである。
【００１７】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１９】
図１は、本発明を適用した画像処理装置の実施の形態例に係る機能構成図である。図１に示す画像処理装置２が本発明を適用した画像処理装置であり、処理対象画像において、黒側閾値よりも輝度の低い部分を黒画素とする処理、及び、白側閾値よりも輝度の高い部分を白画素とする処理を行った後に、未処理の輝度が中間的な値の部分について、
処理対象画素との輝度の差が所定値以上となる周辺画素が１以上検知されるまで、当該処理対象画素の近くに位置する画素から順番に、処理対象画素から概ね離れていく方向へ周辺画素を走査し、上記検知された輝度差が所定値以上となる周辺画素の値に応じて当該処理対象画素の二値化を実行し、二値化後に残したい部分を識別しやすい状態で残すと共に処理時間も抑えようとするものである。
【００２０】
図１に示す本実施の形態例に係るシステムは、二値化対象画像の原稿を読み取る、いわゆるスキャナである画像読み取り装置１と、そのホスト装置であるホストコンピュータ等に備えられる上記画像処理装置２とから構成される。
【００２１】
画像読み取り装置１は、ユーザ操作などに従って上記原稿の画像を光学的な方法により読み取り、読み取った画像をディジタル画像として出力する。このディジタル画像は、各画素が各色の濃度階調値を有する画像データとなっており、カラー画像として読み取った場合には、例えば、各画素がＲＧＢ各色の濃度階調値（例えば、０〜２５５の２５６階調）で表現される。また、グレースケールで読み取った場合には、１次元の濃度階調値（例えば、０〜２５５の２５６階調）で表現される。画像読み取り装置１では、このような画像データを画像処理装置２に供給する。
【００２２】
次に、画像処理装置２は、上述の通り、前記画像読み取り装置１のホストコンピュータ内に構築される。当該ホストコンピュータは、いわゆるパーソナルコンピュータなどで構成することができ、図示していないが、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク、他装置とのインターフェースなどを備える。
【００２３】
図１に示すとおり、画像処理装置２は、機能的には、ヒストグラム作成部２１、黒側処理部２２、白側処理部２３、及び中間処理部２７を有し、前記画像読み取り装置１から供給される画像データに対して、ユーザ指示等に基づき、二値化処理を実行し、その結果の出力画像を出力する。これら各部２１〜２７は、上記ホストコンピュータのＲＯＭに格納される各種プログラム、当該プログラムに従って処理を実行する上記ＣＰＵ、及び上記ＲＡＭ等で構成される。なお、当該プログラムが本発明を適用した画像処理プログラムに相当し、例えば、上記画像読み取り装置１のドライバプログラムとして備えられる。また、当該プログラムは、ＣＤなどの記憶媒体に格納されているものをホストコンピュータにインストールする、あるいは、所定のサイトからインターネットなどを介してホストコンピュータにダウンロードする、ことによってホストコンピュータに備えることができる。
【００２４】
ヒストグラム作成部２１は、上記画像読み取り装置１から供給され、上記ＲＡＭに格納される画像データについて、上記プログラムに従ったＣＰＵの処理で、輝度値のヒストグラムを作成する部分である。具体的な処理については後述する。
【００２５】
黒側処理部２２は、上記プログラムに従ったＣＰＵの処理により、処理対象の画像データについて、色の濃い（上記ヒストグラムで輝度の低い部分）について、黒画素とする二値化を行う部分である。具体的な処理内容については後述する。
【００２６】
白側処理部２３は、上記プログラムに従ったＣＰＵの処理により、処理対象の画像データについて、色の薄い（上記ヒストグラムで輝度の高い部分）について、白画素とする二値化を行う部分である。当該白側処理部２３は、図１に示すように、閾値候補検出部２４、閾値択一部２５、及び背景除去処理部２６を有する。
【００２７】
閾値候補検出部２４は、上記作成されたヒストグラムを用いて、閾値候補を検出し、当該検出した候補値を記憶する部分である。また、閾値択一部２５は、上記検出された閾値候補の中から一つの閾値を選択する部分である。また、背景除去処理部２６は、前記閾値択一部２５により選択された閾値を利用して、黒画素として残す必要のない下地や背景の部分を除去する処理を実行する部分である。なお、白側処理部２３の各部が行う具体的な処理内容については後述する。
【００２８】
次に、中間処理部２７は、上記プログラムに従ったＣＰＵの処理により、黒側処理部２２及び白側処理部２３によって処理されていない、上記画像データの中間的な輝度値の部分について、各画素の周辺状況を考慮した細密な二値化処理を実行する部分である。
【００２９】
当該中間処理部２７は、図１に示すように、差分判定部２８と二値化処理部２９を有する。差分判定部２８は、各画素の二値化を行うために、処理対象画素（注目画素）の周辺画素を順次走査し、注目画素と各周辺画素との濃度（輝度）階調値の差を所定の閾値と比較していく部分である。
【００３０】
二値化処理部２９は、上記差分判定部２８の判定結果に基づく各画素の二値化処理を実行する部分である。なお、中間処理部２７の実行する具体的な内容については後述する。
【００３１】
以上説明したような構成を有する本実施の形態例に係る画像処理装置２では、以下に示すような内容で各処理が実行される。
【００３２】
まず、ヒストグラム作成部２１が、画像読み取り装置１から受け取ってＲＡＭ等に格納している画像データにつき、輝度値Ｙについてのヒストグラムを作成する。当該画像データがＲＧＢ色空間で表現されたデータである場合には、すなわち、前述したように各画素がＲＧＢの各濃度階調値を有するデータである場合には、下記（１）式に従って、各画素の輝度値Ｙを求め、対象画像全体について、輝度値Ｙ毎の画素数（度数）を求める。
【００３３】
Ｙ＝ａ×Ｒ＋ｂ×Ｇ＋ｃ×Ｂ                                            （１）
但し、ａ、ｂ、ｃは、３つの合計が１となる値であればよい係数であって、例えば、ａ＝１／３、ｂ＝１／３、ｃ＝１／３とすることができる。また、Ｒ、Ｇ、Ｂは、各画素が有する上記各色の濃度階調値であり、例えば、それぞれ、０〜２５５のいずれかの値をとる。
【００３４】
また、前記画像データが、グレースケールで表現されたグレーデータである場合には、各画素の有する濃度階調値を、白側が大きい値となるようにして、そのまま輝度値Ｙとすることができる。この場合にも、同様に、輝度値Ｙ毎の画素数（度数）を求めてヒストグラムを作成する。
【００３５】
図２は、生成されるヒストグラムを例示した図である。図２では、輝度が０〜２５５の２５６階調で表現されており、輝度が０（黒色）に近い側（黒色側）と輝度が２５５（白色）に近い側（白色側）にそれぞれヒストグラムの山が現れる例となっている。
【００３６】
このようにして作成されたヒストグラム（のデータ）は、ＲＡＭ等に記憶される。
【００３７】
次に、黒側処理部２２による処理が実行される。ここでは、処理対象画像データにおいて、二値化後に残すべき文字などの部分である可能性が極めて高い、輝度Ｙの低い部分について黒画素とする処理を行う。具体的には、予め定めた黒側閾値Ｔｂより輝度値の低い画素について黒画素と決定し、該当する画素について黒画素を表す値を上記ＲＡＭ等に記憶する。輝度値が黒側閾値Ｔｂ以上の画素については処理を行わない。図２に示す例では、ヒストグラムの黒側閾値Ｔｂより左側に位置する画素について黒画素とする処理がなされる。
【００３８】
次に、白側処理部２３による処理が実行される。ここでは、処理対象画像データにおいて、二値化後に残さなくてよい下地や背景などの部分について白画素とする処理を行う。すなわち、白側閾値Ｔを決定し、その閾値以上の画素については、二値化後に不要な下地や背景であるとみなし、除去する処理を行う。具体的には、白側処理部２３の各部が以下のように処理を実行する。
【００３９】
まず、閾値候補検出部２４による処理が実行される。ここでは、前述の通り、作成した輝度ヒストグラムにおいて、所定割合の度数を規定する輝度幅が所定幅以上になる部分から閾値候補を検出する処理を実行するが、具体的には、以下のような手順で処理が行われる。
【００４０】
まず、予め定められた白色側の輝度値Ｚから、上記作成されたヒストグラムの度数（画素数）を、輝度値が低くなる方向へ順番に積算していき、その積算値が、当該ヒストグラムの輝度値が０〜Ｚに入る全画素数に対して、予め定められた割合Ｎ％になった時点で、そこまでのヒストグラムの輝度幅を求める。すなわち、輝度値Ｚを始点としてその時点までに積算された画素を１グループとし、そのグループの最大輝度値（この場合にはＺ）と最小輝度値との差である輝度幅を求める。
【００４１】
図２に示す例では、ヒストグラムの右側に設定されているＺの位置から上記積算が開始され、上記Ｎ％となった時点で輝度幅ｙ１が求められる。輝度幅ｙ１のグループにおいてその右端の輝度値Ｚが上記最大輝度値であり、左端の輝度値が上記最小輝度値である。
【００４２】
その後、上記積算が終了した画素の次の画素、すなわち、ヒストグラムで輝度値が低くなる方向へ次の画素、を始点として、上記と同様の積算（グルーピング）及び輝度幅の算出を行う。図２に示す例では、当該処理の結果、ｙ２が求められる。
【００４３】
その後も同様の処理をヒストグラムの最後まで繰り返し実行し、その結果、各輝度幅を有する複数のグループ（ヒストグラムの範囲）が形成される。図２に示す例では、輝度幅Ｙ１、Ｙ２、・・・を有する各範囲が順次形成されていくことになる。
【００４４】
次に、上記形成された各範囲の輝度幅を予め定めた固定値Ａと比較し、輝度幅が固定値Ａよりも広くなっている範囲を選出する。そして、その選出された各範囲について、その範囲内の最小頻度（度数）の輝度値を求め、この輝度値を閾値候補として検出する。すなわち、各範囲でヒストグラムの高さが一番低い位置の輝度値を閾値候補とする。ここでは、上記固定値Ａよりも広い輝度幅をＹｎ（輝度の高いほうから順番にｎ＝１，２，３・・・とする）、上記検出された閾値候補をｔｎ（輝度の高いほうから順番にｎ＝１，２，３・・・とする）とする。なお、輝度値０を含む上記範囲について閾値候補を検出しない。
【００４５】
図２に示す例では、矢印で示される固定幅Ａと各輝度幅が比較され、Ａより広い幅としてＹ１とＹ２が選出され、それらに対応する範囲から、それぞれ、閾値候補１としてｔ１と閾値候補２としてｔ２とが検出される。
【００４６】
このように閾値候補が検出されるが、上述の処理により、ヒストグラムにおいて輝度幅が狭い範囲、すなわち、度数が高い山となっている範囲、からは閾値候補が検出されず、輝度幅が広い範囲、すなわち、度数が低く谷や山の裾野となっている範囲、から閾値候補が検出さることになる。従って、画像を二つのグループに分けて表現するための二値化において、その閾値をヒストグラムの谷や山の裾野付近で選択することが相応しいことから、上述の処理により二値化処理において有効な閾値候補を検出することができ、また、画像の下地部分や背景部分を除去する（白画素とする）処理においても、これらの部分はヒストグラム上で山を形成するので、当該処理に対しても有効な閾値候補が検出されるといえる。
【００４７】
また、前述した処理の起点となる輝度値Ｚは、その値よりも輝度が高い部分の処理を行わないために設定されるものである。この輝度値Ｚが設定されず、最高輝度値（２５５）から上述の処理を行うと、殆ど下地の画像であるなど、輝度値の高い部分に殆どの画素が集中している画像の場合に、上述した画素数Ｎ％の区間が当該輝度値の高い部分に集中して複数形成され、それ以降、黒色側が殆ど形成されないという状態となって、上述した閾値候補を適切に検出できないことになってしまう。そこで、この輝度値Ｚが予め設定され、適切なＮ％の区間が形成されるようにしている。
【００４８】
このようにして検出した閾値候補ｔｎは、ＲＡＭ等に記憶されて次工程で使用される。なお、上述した輝度値Ｚ、固定幅Ａ、画素数割合Ｎ％は、それぞれ、各種原稿を用いた実験等により予め相応しい値が求められて設定される。
【００４９】
次に、閾値択一部２５による処理が実行される。当該処理では、前記検出された閾値候補の中から実際に処理に用いる閾値を選択する処理を行うが、ここでは、前述の通り、二値化後に不要な、対象画像の下地部分や文字などの背景部分を除去する処理のための閾値Ｔを選択する。以下、そのための選択方法について説明する。
【００５０】
図３は、典型的なヒストグラム形状を例示した図である。各種原稿の画像データについて前記輝度ヒストグラムを作成すると、その形状は、概ね図３に示されるような４つのパターンに分けることができる。上記閾値の選択では、これら各パターンにおいて、上記目的に対して適切な閾値が選択されるようにする必要がある。
【００５１】
まず、図３の（ａ）に示すパターンは、二値化後に黒色として残す必要のある文字等の部分と原稿の下地部分とからなる原稿の場合である。すなわち、上記文字等に所定の色を有する背景がない場合である。このパターンでは、前述した閾値候補の検出処理において、図に示すように、下地からなる山の裾野に位置する閾値候補ｔ１と、谷（極小値）に位置するｔ２が検出されることが予想される。
【００５２】
ここで、図中のＡ１で示す点線の範囲は、下地等の二値化後に不要な画素が存在すると考えられる範囲を示し、Ａ２で示す破線の範囲は、文字等の二値化後に必要な画素が存在すると考えられる範囲を示している。従って、このパターンにおいて、上述した下地や背景を除去する目的の閾値としてｔ２を選択すると、二値化後に必要な部分も除去してしまう危険性があり、当該パターンでは、ｔ１を選択するのが相応しい。
【００５３】
次に、図３の（ｂ）に示すパターンは、二値化後に残す必要のある文字等に対して比較的濃い色の背景がある原稿の場合である。このパターンでは、前述した閾値候補の検出処理において、図に示すように、原稿の下地からなる山と上記背景からなる山の間の谷（極小値）に位置するｔ１と、背景からなる山の裾野に位置するｔ２が検出されることが予想される。
【００５４】
ここで、図中のＡ１及びＡ２は、図３の（ａ）と同様の範囲を示しており、従って、このパターンにおいて、上述した下地や背景を除去する目的の閾値としてｔ２を選択すると、二値化後に必要な部分も除去してしまう危険性があり、当該パターンでも、ｔ１を選択するのが相応しい。
【００５５】
次に、図３の（ｃ）に示すパターンは、二値化後に残す必要のある文字等に対して比較的薄い色の背景がある原稿の場合である。このパターンでは、前述した閾値候補の検出処理において、図に示すように、原稿の下地からなる山と上記背景からなる山の間の谷（極小値）に位置するｔ１と、背景からなる山の裾野に位置するｔ２が検出されることが予想される。
【００５６】
ここで、図中のＡ１及びＡ２は、図３の（ａ）と同様の範囲を示している。このパターンでは、Ａ２の範囲に対して背景の山（ｔ１とｔ２の間の山）の輝度が十分に高くなっており、この背景を除去しても残す必要のある部分を除去してしまう危険性が殆どないので、すなわち、上述した下地や背景を除去する目的の閾値としてｔ２を選択しても二値化後に必要な部分を除去してしまう危険性が少ないので、当該パターンでは、下地と共に背景も除去できるｔ２を選択するのが相応しい。
【００５７】
次に、図３の（ｄ）に示すパターンは、二値化後に残す必要のある文字等に対して背景があり、黒い部分が少ない原稿の場合である。このパターンでは、前述した閾値候補の検出処理において、図に示すように、原稿の下地からなる山と上記背景からなる山の間の谷（極小値）に位置するｔ１と、背景からなる山の裾野に位置するｔ２が検出されることが予想される。
【００５８】
ここで、図中のＡ１及びＡ２は、図３の（ａ）と同様の範囲を示している。このパターンでは、黒側の画素数が少なく全体的に白っぽい画像であるため、文字等の必要な範囲Ａ２の輝度と背景（ｔ１とｔ２の間の山）の輝度にあまり差がなく、上述した下地や背景を除去する目的の閾値としてｔ２を選択すると、二値化後に必要な部分も除去してしまう危険性があり、当該パターンでは、あえて背景は除去せずに下地のみを除去するようにｔ１を選択するのが相応しい。
【００５９】
以上説明した各パターンに対する相応しい閾値が適確に選択されるように、閾値択一部２５では、以下の条件で前記閾値候補から閾値を選択する。
【００６０】
まず、基本的にはｔ１を閾値として選択するようにし、図３の（ｃ）、（ｄ）に示した場合のように、ｔ１が高い輝度値である場合には、すなわち、ｔ１が下地と背景の山の間の谷に位置すると考えられる場合には、ｔ２を選択できるか否かを判断する。当該判断では、黒側の状態を参照して原稿全体が白っぽい画像であるか否かを判定し、白っぽい画像であると判定した場合にはｔ２を選択できないと判断してｔ１を選択し、白っぽい画像でないと判定した場合にはｔ２を選択できると判断してｔ２を選択する。
【００６１】
なお、文字等の残す必要のある情報は概ね輝度の低い方に存在していることから、閾値が低くなりすぎて必要な情報を除去してしまうことを回避するために、一般的な条件として閾値の下限値（Ｔｍｉｎ）を上記選択条件に加えて設けることが必要である。また、極めて白紙に近い原稿の場合など例外的なヒストグラム形状になって、上述した処理が有効に機能しない場合を考慮した条件も必要となる。
【００６２】
以上説明した条件で閾値が選択されるよう、閾値択一部２５では、以下のような処理手順で選択処理を行う。図４は、閾値の選択処理の手順を例示したフローチャートである。
【００６３】
まず、閾値択一部２５は、前工程で、すなわち、前述した閾値候補検出部２４の処理で閾値候補ｔｎが検出されているか否かをチェックする（ステップＳ１）。その結果、閾値候補ｔｎが検出されていない場合には（ステップＳ１のＮｏ）、前述した輝度値Ｚの値が、（予め定められた閾値Ｔの下限値Ｔｍｉｎ＋５）以下であるか否かをチェックし（ステップＳ２）、そうでなければ（ステップＳ２のＮｏ）、輝度値Ｚを所定値（例えば、５）下げて（ステップＳ３）、再度、閾値候補検出部２２における候補検出の処理を実行させる（ステップＳ４）。一方、輝度値Ｚの値が（閾値Ｔの下限値Ｔｍｉｎ＋５）以下である場合には（ステップＳ２のＹｅｓ）、閾値Ｔを下限値Ｔｍｉｎとする（ステップＳ１０）。
【００６４】
一方、ステップＳ１において、閾値候補ｔｎが検出されている場合には（ステップＳ１のＹｅｓ）、最も輝度値の高い閾値候補ｔ１が予め定めたＴｍａｘよりも小さいか否かをチェックする（ステップＳ５）。このＴｍａｘは、閾値候補ｔ１が高すぎるか否かを判定する定数であり、前述したｔ２選択の判断を行うか否かを判定するために用いられる。当該チェックの結果、ｔ１がＴｍａｘよりも小さい場合には（ステップＳ５のＹｅｓ）、ｔ１が前記Ｔｍｉｎ以上であるか否かをチェックする（ステップＳ６）。
【００６５】
その結果、ｔ１がＴｍｉｎ以上である場合には（ステップＳ６のＹｅｓ）、閾値Ｔをｔ１とする（ステップＳ７）。すなわち、閾値候補ｔｎの中から、下地除去用の閾値としてｔ１を選択する。一方、ｔ１がＴｍｉｎ以上でない場合には（ステップＳ６のＮｏ）、閾値ＴをＴｍｉｎとする（ステップＳ１０）。すなわち、下地除去用の閾値をＴｍｉｎとする。
【００６６】
また、ステップＳ５において、ｔ１がＴｍａｘよりも小さくない場合には（ステップＳ５のＮｏ）、前述した、ｔ２を閾値として選択できるか否かの判断を行う。具体的には、まず、全体が白っぽい画像であるか否かを判定すべく、画像の黒成分の量を示すＹｍｉｎを前記ヒストグラムから求め、この値が予め定められた判定値ＹＷよりも大きいか否かをチェックする（ステップＳ８）。
【００６７】
図５は、画像の黒成分の量を示すＹｍｉｎ等を説明するための図である。Ｙｍｉｎは、図５に示すように、前記作成したヒストグラムにおいて、輝度０側から順番に画素を積算していき、その積算値の全画素数に対する割合が予め定めた一定値に達した時点の輝度値であり、この値が高ければ高いほど白っぽい画像であると判断する。また、上記判定値ＹＷは、画像の白っぽさを判定するための値であり、例えば、図５に示すような位置の値であり、Ｙｍｉｎがこの値よりも大きければ画像が白っぽいと判定する。なお、前述した定数Ｔｍａｘ、Ｔｍｉｎは、例えば、図５に示すような位置の値である。
【００６８】
ステップＳ８のチェックにおいて、ＹｍｉｎがＹＷよりも大きければ（ステップＳ８のＹｅｓ）、閾値Ｔをｔ１とする（ステップＳ７）。すなわち、画像が白っぽいと判定し、ｔ２を閾値として選択するのは危険であるとして、下地除去用の閾値としてｔ１を選択する。一方、ＹｍｉｎがＹＷよりも大きくなければ（ステップＳ８のＮｏ）、２番目に輝度値の高い閾値候補ｔ２が前記下限値Ｔｍｉｎ以下であるか否かをチェックする（ステップＳ９）。
【００６９】
ｔ２が下限値Ｔｍｉｎ以下である場合には（ステップＳ９のＹｅｓ）、閾値ＴをＴｍｉｎとする（ステップＳ１０）。すなわち、下地除去用の閾値をＴｍｉｎとする。一方、ｔ２が下限値Ｔｍｉｎ以下でない場合には（ステップＳ９のＮｏ）、閾値Ｔをｔ２とする（ステップＳ１１）。すなわち、閾値候補ｔｎの中から、下地除去用の閾値としてｔ２を選択する。
【００７０】
以上のように使用する閾値Ｔとしていずれかの値が選択されると、最後に、選択された閾値Ｔが前述したＹｍｉｎよりも大きい値となっているか否かをチェックする（ステップＳ１２）。ここで、一般的なヒストグラム形状の原稿の場合には、閾値ＴがＹｍｉｎよりも大きい値となるので（ステップＳ１２のＹｅｓ）、そのまま、当該閾値の選択処理を終了する。
【００７１】
一方、閾値ＴがＹｍｉｎよりも大きい値とならない場合には（ステップＳ１２のＮｏ）、例外的なヒストグラム形状の原稿であると判断し、例外処理を実行する（ステップＳ１３）。具体的には、例えば、その時点で設定されている、前述した各種定数の値では、適切な閾値が選択されない旨のエラーメッセージを、ホストコンピュータの表示装置に表示させるなどの処理を実行する。その場合、ユーザによって各種定数の値を変更できるインターフェースを用意するようにしても良い。また、各種定数の値を自動的に変更させて、再度、閾値候補の検出から処理をやり直すようにしてもよい。
【００７２】
なお、上述した各定数、Ｔｍｉｎ、Ｔｍａｘ、ＹＷ、Ｙｍｉｎを求める画素数割合は、それぞれ、各種原稿を用いた実験等により予め相応しい値が求められて設定される。
【００７３】
以上のようにして、閾値が選択されると、当該閾値が背景除去処理部２６に渡されて、対象とする画像データの輝度値が当該閾値以上の画素については、二値化後に不要な下地や背景であるとみなし、除去する処理を行う。具体的には、当該画素を白画素とする。また、当該閾値よりも低い輝度の画素については処理を行わない。
【００７４】
なお、上述の説明では、閾値候補ｔｎの全てを検出後にその中から採用する閾値Ｔを選出したが、上述の場合に様に、下地、背景除去の目的で閾値を決定する場合には、まず、閾値候補ｔ１のみを求めて、その値がＴｍａｘ以上である場合に閾値候補ｔ２を求めるようにしても良い。そうすることにより、処理時間を短縮することが可能である。
【００７５】
次に、中間処理部２７による処理が実行される。ここでは、処理対象画像データの、未だ処理されていない輝度値が中間的な部分について、細密な二値化処理を実行する。具体的には、差分判定部２８及び二値化処理部２９により、以下のように処理を実行する。
【００７６】
前記ヒストグラム作成部２１により、処理対象画像データの各画素の輝度値（グレーデータ）が作成されて上記ＲＡＭ等に格納されているので、当該画像データのうち、上記未だ処理がなされていない各画素について、差分判定部２８及び二値化処理部２９が以下の処理を実行する。なお、以下の処理は、例えば、所定の順番にて対象画素の全てについて実行される。
【００７７】
図６は、中間処理部２７の処理対象を例示した図である。図６の左側に示す例には、薄い色の（階調値の高い）背景に黒ではないが濃い色の（階調値の低い）文字（ＡＢＣ）が描かれており、また、右側に示す例には、濃い色の（階調値の低い）背景に薄い色の文字（ＡＢＣ）が描かれている。
【００７８】
図７は、差分判定部２８及び二値化処理部２９が行なう差分判定及び二値化の処理を例示したフローチャートである。以下、図７に基づいて、１画素についての差分判定及び二値化の処理について説明する。
【００７９】
まず、処理対象画素が決定されると、差分判定部２８は、当該処理対象画素（注目画素）の周辺画素を走査する（ステップＳ２１）。この時点では、最初の周辺画素の走査であるので、注目画素に最も近い一つの周辺画素が走査される。当該周辺画素の走査（Ｓ２１）は、後述するように、一つの注目画素に対して継続して複数回実行されることになるが、その走査は、注目画素からの距離が近いものから順番に行なわれる。
【００８０】
図８は、当該走査の順番を例示した図である。図８において、「０」で示す画素が注目画素であり、この例では、図中の矢印の順番で周辺画素が順次走査される。すなわち、画素に記した番号の順番で、注目画素に近い画素から走査される。
【００８１】
このようにして周辺画素の走査を行なうと、差分判定部２８は、当該走査が走査限界を超えているか否かを判断する（ステップ２２）。この走査限界は、当該注目画素についての周辺画素の走査をストップさせるための限界条件であり、対象とする全画素について走査が終了し上記周辺画素の走査で対象の画素がない場合、あるいは、予め定めた画素数の走査を終了しており上記周辺画素の走査でその数を超えている場合には、走査限界を超えていると判断する（ステップＳ２２のＹｅｓ）。
【００８２】
一方、そうでない場合には、走査限界に達していないと判断し（ステップＳ２２のＮｏ）、上記走査した周辺画素と注目画素との階調値Ｙの差分Ｙｄを求める（ステップＳ２３）。当該差分の計算は、例えば、下記（２）式によって行なう。
【００８３】
Ｙｄ＝Ｙ［ｉ，ｊ］−Ｙ［ｉ−ｎ，ｊ−ｍ］                      （２）
なお、Ｙ［ｉ，ｊ］は注目画素の階調値を、Ｙ［ｉ−ｎ，ｊ−ｍ］は周辺画素の階調値を表す。また、ｉは画像の水平方向位置を、ｊは画像の垂直方向の位置を示し、ｎ，ｍは、周辺画素の位置を指定するための変数である。
【００８４】
次に、差分判定部２８は、上記求めた差分Ｙｄを予め定めた閾値と比較する。具体的には、当該閾値は、注目画素を二値化において黒と判定するための閾値Ｔｈｂと、注目画素を二値化において白と判定するための閾値Ｔｈｗとがある。これらの閾値は、処理対象画像データの濃度階調値が０〜２５５の値で表されている場合には、例えば、Ｔｈｂ＝−４０、Ｔｈｗ＝４０とすることができる。
【００８５】
まず、上記求めた差分Ｙｄが上記黒と判定するための閾値Ｔｈｂ以下であるか否かが判定される（ステップＳ２４）。その結果、閾値Ｔｈｂ以下でない場合には（ステップＳ４のＮｏ）、上記差分Ｙｄが上記白と判定するための閾値Ｔｈｗ以上であるか否かが判定される（ステップＳ２５）。その結果、閾値Ｔｈｗ以上でない場合には（ステップＳ２５のＮｏ）、すなわち、注目画素と当該周辺画素との濃度があまり変わらない場合には、ステップＳ２１へ処理が戻る。そして、上述した走査順で次の周辺画素が走査され、同様の処理が繰り返される。
【００８６】
一方、上記ステップＳ２４で、差分Ｙｄが黒と判定するための閾値Ｔｈｂ以下であると判定された場合には（ステップＳ２４のＹｅｓ）、二値化処理部２９が、黒判定回数Ｄｒｂを１増やす（ステップＳ２６）。この黒判定回数Ｄｒｂは、当該注目画素について、差分Ｙｄが閾値Ｔｈｂ以下である判定された累積回数である。
【００８７】
次に、二値化処理部２９は、当該黒判定回数Ｄｒｂを予め定められた判定回数（閾値）Ｃｂと比較する（ステップＳ２７）。この判定回数Ｃｂは、所定の複数値であり、例えば、３回と定められている。そして、黒判定回数Ｄｒｂが判定回数Ｃｂよりも小さい場合には（ステップＳ２７のＮｏ）、ステップＳ２１へ処理が戻る。そして、上述した走査順で次の周辺画素が走査され、同様の処理が繰り返される。
【００８８】
一方、黒判定回数Ｄｒｂが判定回数Ｃｂ以上である場合には（ステップＳ２７のＹｅｓ）、二値化処理部２９は、当該注目画素の二値化後の色を黒とする（ステップＳ２８）。そして、黒を表す値を上記ＲＡＭ等の所定箇所に格納する。
【００８９】
一方、上記ステップＳ２５で、差分Ｙｄが白と判定するための閾値Ｔｈｗ以上であると判定された場合には（ステップＳ２５のＹｅｓ）、二値化処理部２９が、白判定回数Ｄｒｗを１増やす（ステップＳ２９）。この白判定回数Ｄｒｗは、当該注目画素について、差分Ｙｄが閾値Ｔｈｗ以上である判定された累積回数である。
【００９０】
次に、二値化処理部２９は、当該白判定回数Ｄｒｗを予め定められた判定回数（閾値）Ｃｗと比較する（ステップＳ３０）。この判定回数Ｃｗは、所定の複数値であり、例えば、３回と定められている。そして、白判定回数Ｄｒｗが判定回数Ｃｗよりも小さい場合には（ステップＳ３０のＮｏ）、ステップＳ２１へ処理が戻る。そして、上述した走査順で次の周辺画素が走査され、同様の処理が繰り返される。
【００９１】
一方、白判定回数Ｄｒｗが判定回数Ｃｗ以上である場合には（ステップＳ３０のＹｅｓ）、二値化処理部２９は、当該注目画素の二値化後の色を白とする（ステップＳ３１）。そして、白を表す値を上記ＲＡＭ等の所定箇所に格納する。
【００９２】
また、一方、前述したステップ２２において、走査限界を超えていると判断した場合には（ステップＳ２２のＹｅｓ）、二値化処理部２９は、当該注目画素の二値化後の色を事前に設定した黒又は白とする（ステップＳ２２）。そして、決定した黒又は白を表す値を上記ＲＡＭ等の所定箇所に格納する。なお、上記事前に設定される黒又は白の色は、処理対象とした画像データの内容や二値化の目的に応じて、適宜、黒又は白の色が決定される。
【００９３】
以上説明した処理が処理対象の全画素について実行されて、中間処理部２７による処理が終了する。
【００９４】
図９は、中間処理部２７による処理を説明するための図である。図９の（ｂ）は、図６の左側に例示した処理対象画像であり、図９の（ａ）は、図９の（ｂ）の画像のＳで示すエリアを拡大した図である。
【００９５】
図９の（ａ）において、ｘ１で示す画素を注目画素として、上述した処理を実行すると、図中の矢印で示す順番に周辺画素の走査が行なわれることになる。そして、周辺画素ｙ１１が走査されるまでは、注目画素ｘ１と周辺画素との濃度差が小さいため、前述した黒判定回数Ｄｒｄ及び白判定回数Ｄｒｗは０である。
【００９６】
その後、走査が周辺画素ｙ１１に達すると、注目画素ｘ１と周辺画素ｙ１１との濃度差が閾値Ｔｈｂ以下となり、黒判定回数Ｄｒｄが１となる。その後、周辺画素ｙ１２とｙ１３において同様の処理が行なわれ、周辺画素ｙ１３の処理において、黒判定回数Ｄｒｄが判定回数Ｃｂ（３回）以上となって、当該注目画素ｘ１が黒画素とされる。
【００９７】
また、ｘ２で示す画素を注目画素とした場合には、図中の矢印で示す順番に同様の処理が実行され、周辺画素ｙ２１、ｙ２２、及びｙ２３で、注目画素ｘ１と周辺画素ｙ１１との濃度差が閾値Ｔｈｗ以上となって、周辺画素ｙ２３の処理において、白判定回数Ｄｒｗが判定回数Ｃｗ（３回）以上となり、当該注目画素ｘ２が白画素とされる。
【００９８】
このように処理がなされることにより、二値化後に残したい文字の部分が黒として残り、二値化後に不要な背景の部分が消されることになる。
【００９９】
図１０は、判定回数Ｃｂ及びＣｗを複数とする効果を説明するための図である。図１０には、処理対象画像の一部を例示しており、Ｇで示すグレーの部分は文字などの二値化後に残したい領域であり、Ｗで示す白の部分は二値化後に不要な背景の部分である。また、ｚ１で示す部分は黒色の突発的なノイズであり、上記グレーの部分よりも濃い色を有している。
【０１００】
このような状態で、図中のｘ３を注目画素として上述の処理を実行すると、図中の矢印のように各周辺画素についての処理が進行し、画素ｚ１の際に、前記差分Ｙｄが閾値Ｔｈｗ以上となり白判定回数Ｄｒｗが１となる。その後、背景に位置する画素ｙ３１、ｙ３２、及びｙ３３において、前記差分Ｙｄが閾値Ｔｈｂ以下となり、画素ｙ３３において黒判定回数Ｄｒｂが３となる。従って、この時点で、注目画素ｘ３は黒画素とされる。
【０１０１】
このように、本画像処理装置２では、二値化の最終決定が、上記閾値Ｔｈｂ、Ｔｈｗによる１回の判定で行なわれることなく、その判定が複数回なされた段階で行われるので、突発的なノイズが存在しても、その単発的な画素についての判断だけで処理がなされず、判断を誤る危険性が少ない。上述の図１０に示した例では、画素ｚ１の際の１回の判定で二値化の最終決定がなされてしまえば、注目画素ｘ３は白画素とされてしまい好ましくない結果となるが、上述の通り、本画像処理装置２では、ノイズの影響を受けることなく正しい二値化が実現される。
【０１０２】
図１１は、中間処理部２７による処理結果等を例示した図である。図１１の（ａ）は、図６に例示した処理対象画像を中間処理部２７により二値化処理した結果を例示している。また、図１１の（ｂ）は、同じ処理対象画像を従来装置で処理した場合の一例を示している。
【０１０３】
図から明らかなように、本画像処理装置２によって二値化された画像は、文字の中央部分が抜けてしまう中抜けが発生しておらず、ノイズと思われるものも少なく抑えられている。
【０１０４】
なお、上述の説明では、閾値Ｔｈｂ、Ｔｈｗを異なるものとしたが、差分Ｙｄの絶対値を一つの閾値Ｔｈ（例えば、４０）と比較し、注目画素と周辺画素との階調値の大小関係から黒判定回数Ｄｒｂ又は白判定回数Ｄｒｗをインクリメントするようにしてもよい。
【０１０５】
また、図８に示した走査順は一例であり、注目画素の近くからスタートして、概ね注目画素から離れていく方向へ走査するものであれば他の順番でも構わない。なお、図８に示した走査順は、注目画素からの直線距離で見ると、厳密にはその距離が短い順に走査されていないが、注目画素から周辺画素に到達するまでの画素数で見れば、その数が少ない順に走査が行なわれ、概ね注目画素から離れていく方向へ走査するものである。上記直線距離が短い順に走査するようにすることもできる。
【０１０６】
また、前述した周辺画素の走査限界（図７のＳ２２）について周辺画素の走査回数で設定する場合は、以下のようにして行なう。まず、事前に、上述した走査、差分の判定処理を１秒間で行なうことのできる回数を測定する。そして、当該測定回数と画像データ全体についての目標処理時間（秒）を掛け合わせ、その値を画像データの全画素数で割る。その結果得られた回数を上記走査限界の走査回数とする。
【０１０７】
例えば、上記１秒間で処理可能な回数が７０００００００（回／秒）であり、上記目標処理時間が５（秒）であり、上記画像データの全画素数が１００００００である場合には、１注目画素に対して可能な周辺画素の走査回数（走査限界）は３５０に設定される。
【０１０８】
このように、走査限界を設定することにより、二値化処理を所定時間内に終了させることが可能であり、濃淡の差が小さく走査回数が増えるような画像に対してもむやみに処理時間を増やさないで済む。なお、処理対象画像の画素数に応じてこの走査限界回数を可変にするようにすりことにより、処理対象画像の相違による処理時間の差異を軽減することもできる。
【０１０９】
また、上述の周辺画素の走査では、注目画素に近い画素から順番に画素を飛ばすことなく全ての画素を走査していったが、処理速度向上のために走査する周辺画素を間引くようにしても良い。図１２は、処理速度向上のための走査順を例示した図である。図１２の（ａ）に示す例は、１画素おきに間引きながら走査していく場合を示しており、注目画素（０）から画素に付された番号の順番で走査を行なう。番号の付されていない画素については走査されない。
【０１１０】
また、図１２の（ｂ）は、注目画素近傍のある一定の範囲Ｍを越えた後は、注目画素の左右上下方向に位置する画素及び注目画素の四角の対角線方向に位置する画素に限定して走査を行なう。なお、上記一定の範囲Ｍ内においては、走査が停止しない限り全ての周辺画素について走査を行なう。
【０１１１】
以上説明したように、中間処理部２７の処理が終了すると、本画像処理装置２における二値化処理が終了し、二値化後の画像が出力される。その後、出力画像は、ホストコンピュータのＲＡＭ、ハードディスク等に記憶され、適宜、目的とする用途に使用される。
【０１１２】
なお、上述した実施の形態例では、黒側処理部２２と白側処理部２３の両処理を実行したが、どちらか一方を実行するようにしてもよい。
【０１１３】
以上説明したように本実施の形態例に係る画像処理装置２では、処理対象画像のうち、まず、明らかに黒とすべき部分と明らかに白とすべき部分について、輝度値（グレーデータの濃度階調値）が閾値よりも大きいか否かによって処理を行う単純な二値化処理を実行し、その後、残された輝度値が中間的な部分について、処理時間のかかる細密な二値化処理を実行する。従って、二値化の判断が比較的難しく細密な二値化処理を必要とする部分にのみ当該処理が用いられるので、処理時間を抑えることができる。
【０１１４】
また、その判断の難しい中間的な輝度値の部分については、単に一つの閾値を用いて白黒を決定するのではなく、処理対象画素と周辺の相対的な関係に応じて白黒を決定するので、残したい文字等が薄い色の場合や、文字等の背景色が濃い色の場合等においても、文字を見やすい状態として二値化することができる。
【０１１５】
また、その処理では、文字の中央部における画素についても、文字の外側の背景まで周辺画素の走査がなされて、上述した判定により黒色と判定されるので、従来の課題である中抜けの問題を解消することができる。
【０１１６】
また、当該処理では、注目画素と周辺画素の濃度差が所定の閾値よりも大きくなる場合が１回発生した段階では注目画素の白黒を最終決定せず、かかる場合が複数回発生した時点で白黒を決定する。通常、画像に発生する突発的なノイズというものは周辺との濃度差が大きいが広い範囲に亘って存在しないので、ノイズの存在のみで注目画素と周辺画素の濃度差が所定の閾値よりも大きくなる場合が複数回発生する可能性は低い。従って、本画像処理装置２では、ノイズの悪影響を受けずらいという効果も得ることができる。
【０１１７】
なお、上述のノイズについての効果が得られないが、注目画素と周辺画素の濃度差が所定の閾値よりも大きくなる場合が１回発生した時点で注目画素の白黒を判断するようにしても良い。この場合にも、中抜け防止という効果は得ることができる。
【０１１８】
さらに、本画像処理装置２では、白側処理で、二値化対象画像の輝度（濃度）ヒストグラムにおいて、所定割合の度数を規定する輝度幅が所定幅以上になる部分から当該部分の最小頻度の輝度値を閾値候補として検出するので、ヒストグラムにおける谷部や山の裾野部を閾値候補として検出でき、二値化に有効な閾値を自動的に決定することが可能となる。
【０１１９】
また、当該閾値候補を、二値化処理の下地除去処理のための閾値に用いることにより、ヒストグラムにおいて山を形成する、二値化後に不要な下地部分や背景部分を、適切に白画素化することが可能となる。
【０１２０】
また、下地除去処理において、基本的に最も輝度値の高い閾値候補を閾値として採用し、画像の輝度ヒストグラムが輝度の高い側に偏っていないなど所定条件を満たしている場合に、さらに輝度値の低い閾値候補を閾値として採用するので、二値化後に必要な画像部分を除去してしまう危険を冒すことなく有効な下地除去を実行することができる。
【０１２１】
また、下地除去処理において、予め適切な最低閾値Ｔｍｉｎを設けてこれ以下の閾値を設定しないようにすることにより、二値化後に必要な部分を除去してしまう危険性を回避している。
【０１２２】
以上のような各効果により、本画像処理装置２では、二値化後に残したい部分を識別しやすい状態で残すことができると共に処理時間も抑えた処理が可能となる。
【０１２３】
なお、上述の説明では、ヒストグラム作成部２１、黒側処理部２２、白側処理部２３、及び中間処理部２７の処理がプログラムに基づいて実行されることとしたが、これらの処理部をハードウェアで構成するようにしても良い。
【０１２４】
また、上記実施の形態例では、画像読み取り装置１及び画像処理装置２を含むホストコンピュータからなるシステム構成としたが、本発明に係る画像処理プログラム及び画像処理装置は、当該システム構成に限定されることなく適用することができる。
【０１２５】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【０１２６】
【図１】本発明を適用した画像処理装置の実施の形態例に係る機能構成図である。
【図２】生成されるヒストグラムを例示した図である。
【図３】典型的なヒストグラム形状を例示した図である。
【図４】閾値の選択処理の手順を例示したフローチャートである。
【図５】画像の黒成分の量を示すＹｍｉｎ等を説明するための図である。
【図６】中間処理部２７の処理対象を例示した図である。
【図７】差分判定部２８及び二値化処理部２９が行なう差分判定及び二値化の処理を例示したフローチャートである。
【図８】周辺画素の走査の順番を例示した図である。
【図９】中間処理部２７による処理を説明するための図である。
【図１０】判定回数Ｃｂ及びＣｗを複数とする効果を説明するための図である。
【図１１】中間処理部２７による処理結果等を例示した図である。
【図１２】処理速度向上のための走査順を例示した図である。
【符号の説明】
【０１２７】
１  画像読み取り装置、  ２  画像処理装置、  ２１  ヒストグラム作成部、  ２２  黒側処理部、  ２３  白側処理部、  ２４  閾値候補検出部、  ２５  閾値択一部、  ２６  背景除去処理部、  ２７  中間処理部、  ２８  差分判定部、  ２９  二値化処理部
【図１】
0005251100.tif 000002
【図２】
0005251100.tif 000003
【図４】
0005251100.tif 000004
【図５】
0005251100.tif 000005
【図７】
0005251100.tif 000006
【図８】
0005251100.tif 000007
【図１０】
0005251100.tif 000008
【図１２】
0005251100.tif 000009
【図３】
0005251100.tif 000010
【図６】
0005251100.tif 000011
【図９】
0005251100.tif 000012
【図１１】
0005251100.tif 000013