(57)【特許請求の範囲】
【請求項１】
画像を複数の色成分に分解して読取を行う読取装置により得られた画像を処理する画像処理方法において、
読取の結果得られた各色成分の画像データについて、その濃度値の頻度を算出してヒストグラムを作成し、
前記ヒストグラムから、高濃度側のピーク値と低濃度側のピーク値とを求め、その大小関係を各色成分毎に判別し、
前記複数の色成分のうち、高濃度側ピーク値の方が大きい色成分の数と、低濃度ピーク値の方が大きい色成分の数とを比較し、
数が多い色成分を二値化処理対象画像として選択することを特徴とする、画像処理方法。
【請求項２】
前記画像処理方法において、
二値化処理対象となっている各色成分画像のそれぞれの画素と予め決められた閾値レベルとを比較し、いずれかの色成分について前記閾値レベルを超えた画素については当該画素を白あるいは黒の一方と判定するとともに、他の画素については白と黒の他方と判定することを特徴とする、請求項１記載の画像処理方法。
【請求項３】
複数の色成分に分解されて読み取られた画像データを処理する画像処理装置において、
各色成分について、入力された画素を濃度値毎に集計して濃度値ヒストグラムを作成するヒストグラム作成手段と、
前記濃度ヒストグラムから、低濃度側のピーク値と高濃度側のピーク値とを検出するピーク検出手段と、
前記検出された低濃度側ピーク値と高濃度側ピーク値との大小関係を各色成分毎に比較して、その結果に基づいて二値化処理を行う色成分画像を選択する色成分選択部と、
前記色成分選択部により選択された色成分画像の二値化を行う二値化処理部とを備えたことを特徴とする、画像処理装置。
【請求項４】
前記画像処理装置において、
前記ピーク検出部により検出された低濃度側並びに高濃度側ピーク値に基づいて、二値化閾値を設定する閾値設定手段を更に備えたことを特徴とする、請求項５記載の画像処理装置。
【請求項５】
前記画像処理装置において、
前記色成分選択部は、低濃度側ピーク値の方が大きい色成分の数と、高濃度側ピーク値の方が大きい色成分の数とを求め、
前記二値化部は、高濃度側ピーク値の方が大きい色成分の数の方が多い場合には、当該色成分について前記閾値を超える画素を白または黒の一方と判定し、低濃度側ピーク値の方が大きい色成分の数の方が多い場合には、当該色成分について前記閾値を超える画素を白または黒の他方と判定することを特徴とする、請求項５または６記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像情報の読取を行うイメージスキャナ等の画像入力装置に関するものである。また、本発明は、そのような画像入力装置における画像処理の方法に関するものである。特に具体的には、入力画像（特にカラー画像）を二値化するための閾値レベルの決定方法及び二値化の方法に関する。
【０００２】
【従来の技術】
従来より、画像情報を読み取るためにイメージスキャナが利用されている。これまでは、装置に原稿をセットして読取部を駆動する、あるいは原稿を搬送することにより画像の読取を行う据え置き型の装置（フラットベッド型等）が比較的広く利用されていた。
【０００３】
近年では、モバイルコンピュータが普及し始めており、このようなモバイルコンピュータを利用しながらの画像入力を可能とすることが求められてきている。そのため、据え置き型のスキャナに加え、持ち運びが容易な手動操作型の小型ハンドヘルドスキャナが開発・製品化されている。ハンドヘルドスキャナを利用する際には、利用者が原稿上にハンドヘルドスキャナを置き、手動でハンドヘルドスキャナを移動させることによって原稿が走査され、原稿上の画像が読み取られる。
【０００４】
ハンドヘルドスキャナは手走査であるため、ユーザは原稿に対して縦横どちらの方向からからでもスキャンすることができる。この反面、画像が回転して入力されたり、走査方向と装置の向きによっては画像が鏡像反転して入力されることがあるという問題がある。
【０００５】
一方、ハンドヘルドスキャナは一般的に携帯性を向上させるために、装置が小型化されている。そのため、読取部の幅が比較的狭くなり、結果として一度に走査できる幅が狭くなってしまう。スキャナの有効読取幅を超えた幅を持つ原稿を読み取る場合には、画像を複数回に分けて取り込み合成する必要がある。
【０００６】
【発明が解決しようとする課題】
ここで、入力した文書画像の向きを自動的に補正する技術や、分割して入力した文書画像を自動的に合成する技術が存在するが、多値の画像は２値の画像と比較してデータ量が大きいため、処理に必要なメモリ量が大きくなり、処理時間が長くなるといった問題が生じる。そのため画像を二値化する必要がある。その際に、読み取られた画像に適した二値化を行わなければならない。
【０００７】
本発明はこれらの問題を解決するためにされたものであり、読取画像に適した二値化処理を行うことができる画像処理方法並びに画像処理装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記した課題は、読み取りの結果得られた各色成分の画像データについてその濃度値のヒストグラムを作成し、ヒストグラムから高濃度側のピーク値と低濃度側のピーク値とを求めてその大小関係を各色成分毎に判別し、高濃度側ピーク値が低濃度ピーク値よりも大きい色成分の数を求め、これに基づいて二値化処理対象とする画像を決定することにより達成される。
【０００９】
この際に、高濃度側ピーク値の方が大きい色成分の数と低濃度ピーク値の方が大きい色成分の数とを比較し、数が多い色成分を二値化処理対象画像として選択することができる。
【００１０】
例えば、ＲＧＢの３つの色成分により画像を読み取った場合、これら３つの色成分についてピーク値の大小関係を見る。そして、高濃度ピーク値の方が大きい色成分がＲとＧ、低濃度ピーク値の方が大きい色成分がＢであった場合には、Ｒ成分とＧ成分とを二値化対象の画像として採用するのである。
【００１１】
ここで、二値化処理対象となっている各色成分画像のそれぞれの画素と予め決められた閾値レベルとを比較し、いずれかの色成分について前記閾値レベルを超えた画素については当該画素を白あるいは黒の一方と判定するとともに、他の画素については白と黒の他方と判定することができる。
【００１２】
上記の例で言えば、所定の閾値（画像の読取結果から動的に求めてもよく、また固定閾値であってもよい）とＲ成分の画素、Ｇ成分の画素とを比較する。そして、Ｒ成分あるいはＧ成分の少なくとも一方の画素が閾値を超えていた場合にはその画素を白とし、いずれの色成分も閾値を超えない場合にはその画素を黒として、二値化を行うのである。
【００１３】
更に、低濃度側ピーク値の方が大きい色成分の数が、高濃度ピーク値の方が大きい色成分の数よりも多い場合、前記低濃度側ピーク値の方が大きい色成分を二値化処理対象画像とするとともに、二値化処理に際して当該画像の白画素と黒画素とを反転させることができる。
【００１４】
上記した例とは逆に、Ｒ、Ｇ成分については低濃度ピーク値の方が大きく、Ｂ成分については高濃度ピーク値の方が大きいのであれば、二値化処理対象の画像はＲ成分の画像とＧ成分の画像となる。しかし、このような画像は白黒反転しているような画像である可能性が高く、文字認識などの処理行えないなどの問題が生じる。そのため、ここでは二値化を行った結果を反転出力する。つまり、閾値との比較の結果白と判定された画素は黒画素として、黒と判定された画素は白画素として、それぞれ出力する。
【００１５】
また、わざわざ画素の反転処理を行うのではなく、閾値を超えた画素については黒、閾値を超えなかった画素については白と直接判定するようにしてもよい。これは、本質的には画素の反転とは変わりがない。
【００１６】
なお、閾値を超えた場合に白／黒と判定するのは相対的な問題であり、本質的には閾値を超えた画素を一方に、閾値を超えない画素を他方に判定できればよいのである。
【００１７】
また、付加的な構成として、二値化処理のための閾値決定の処理を上げることができる。閾値決定の例としては、それぞれの色成分についてヒストグラムの低濃度側、高濃度側のピークを求め、その中間点となる濃度を閾値レベルとする、といった手法を採ることができる。また、複数のピークが存在した場合には、濃度が低い領域の中で最も高い山と、濃度が高い領域の山のうち最も高い山とを選択し、これらの中間値を閾値とすることができる。
【００１８】
更に、ヒストグラムを求める際に、誤差などの理由によってヒストグラムの波形がギザギザとなることがある。このようなヒストグラムでは、濃度値のピークを判別しにくく、閾値決定に際して問題が生じる。そのため、例えば移動平均法を用いたり、階調数を落としてヒストグラムを作成するなどの手法により、ヒストグラムの波形を平滑化することができる。
【００１９】
上記した二値化方法は、文字認識を行ったり、読み取られた画像の方向を判別したり、分割して読み取られた重なり位置を画像を合成するために判別する画像処理装置・画像処理方法に適用することができる。方向判別・重なり位置判別の結果は、入力された画像の補正に利用される。
【００２０】
また、本発明は複数の色成分に分解されて読み取られた画像データの各色成分について、入力された画素の濃度値ヒストグラムを作成するヒストグラム作成手段と、濃度ヒストグラムから低濃度側のピーク値と高濃度側のピーク値とを検出するピーク検出手段と、検出された低濃度側ピーク値と高濃度側ピーク値との大小関係を各色成分毎に比較して、その結果に基づいて選択された色成分画像の二値化を行う二値化処理部とを備えた画像処理装置であることを特徴とする。
【００２１】
ここで、ピーク検出部により検出された低濃度側並びに高濃度側ピーク値に基づいて、二値化閾値を設定する閾値設定手段を更に備えてもよい。
【００２２】
また、色成分選択部が低濃度側ピーク値の方が大きい色成分の数と高濃度側ピーク値の方が大きい色成分の数とを求め、二値化部が高濃度側ピーク値の方が大きい色成分の数の方が多い場合には当該色成分について前記閾値を超える画素を白または黒の一方と判定し、低濃度側ピーク値の方が大きい色成分の数の方が多い場合には当該色成分について前記閾値を超える画素を白または黒の他方と判定してもよい。
【００２３】
なお、画像処理装置の対象としては、イメージスキャナなどの各種画像入力装置が接続されるパーソナルコンピュータといった情報処理装置全般、画像入力装置自身、あるいはその他の画像処理を行う装置が含まれる。
【００２４】
【発明の実施の形態】
図１は、本発明の一実施形態による画像処理装置の構成を示す図面である。入力機器は、例えばハンドヘルドスキャナなどであるが、本質的には入力機器の種別は問わない。この入力機器は、原稿を多値画像として読み取ることができるものであり、またモノクロ／カラー読取も行うことができる。このような入力機器は、パーソナルコンピュータなどの画像処理装置に接続されており、入力機器から出力される多値画像データは画像処理装置に入力する。
【００２５】
上記した多値画像データは、画像処理装置に設けられた入力画像メモリに格納されるとともに、二値化処理部に入力する。二値化処理部は、後述する詳細な方法により、入力機器からの多値画像データに基づいて二値化のための閾値レベルを算出し、多値画像データを二値化するものである。続いて、二値化された画像データは文字方向検出／重なり位置検出部に入力される。
【００２６】
文字方向検出／重なり位置検出部（以下単に「検出部」とも称す）は、入力された画像に基づいて入力された文字の方向を検出するとともに、分割して読み取られた画像同士の重なり位置を検出する処理を実行する。文字方向の検出を行う際には、二値化された画像データから文字情報を抽出し、抽出された文字情報に対して文字認識の処理を行う。この際に、文字情報を０°、９０°、１８０°、２７０°回転させるとともに、文字情報を鏡像反転させてそれぞれ０°、９０°、１８０°、２７０°回転させ、これらの８通りの文字情報のそれぞれについて文字認識処理を実行する。そして、文字認識結果が最も確からしい文字方向を検出する。このような処理は、例えば本出願人による特開平１１  ３３８９７３号「文書画像補正装置および文書画像補正方法」に詳細が記載されているため、こちらを参照されたい。
【００２７】
また、重なり位置検出を行う際には、分割読取されたそれぞれの二値画像データから文字情報を抽出し、文字認識を行う。そして、文字認識の結果得られた文字コードをそれぞれの二値画像毎に比較、文字コード同士が一致する位置を原稿の重なり位置として検出する処理を行う。この処理に関しては、本出願人による特願平１１  １１１７０８号「文書画像結合装置、文書画像結合方法及び文書画像結合プログラムを記録した記録媒体」に詳細が記載されているため、こちらを参照されたい。
【００２８】
一方、入力画像メモリに格納された多値画像データは、補正処理部に入力される。そして、検出部により判別された文字方向／重なり位置に基づいて、多値画像データの処理が行われる。
【００２９】
文字方向を判別することによって、入力された画像の向き自体を判別することができる。そのため、補正処理部では、検出部から受け取った文字方向判別結果に基づいて、多値画像データに対して回転・鏡像反転の処理を施し、入力画像を正しい方向に補正する。
【００３０】
一方、補正処理部は検出部から受け取った重なり位置情報に基づいて、分割読取された多値画像を合成し、一枚の画像にする補正処理を行う。
【００３１】
このように各種の補正処理が行われた画像が、出力画像として出力される。
【００３２】
なお、上記では入力機器と画像処理装置とが分けられた例について説明したが、入力機器（すなわちイメージスキャナ）自身が補正処理までの処理を行って、補正処理が施された多値画像データをパーソナルコンピュータその他の装置に出力するようにしてもよいことはいうまでもない。
【００３３】
以下、ＲＧＢといったように、複数の色成分を持つ多値画像について説明するが、例えばグレースケールのように単色の色成分の多値画像についても同様である。
【００３４】
本実施形態による多値画像の二値化処理においては、入力画像のRGB 各色成分の頻度をそれぞれ求めてヒストグラムを作成し、ヒストグラム上に山のピークを検出して２値化のしきい値を決定する。
【００３５】
新聞、モノクロ雑誌、報告書のように白黒２値の文書から読み込んだ画像をヒストグラムに表すと、図２に図示されるように文字色の山と背景色の山の２つのピークができる。このような文書画像では、例えば図３や図４のようにヒストグラム上にできた２つの山のピークを求め、双方のピークの中央をしきい値とする。このように文字色の山と背景色の山からしきい値を決定することで、文字部分の色と背景部分の色をそれぞれ白画素と黒画素に分けることができるため、最適に２値化することができる。
【００３６】
図３の例では、最も高濃度側のピークと、最も低濃度側のピークとの中間値を閾値として設定している。これに対し、図４では中央付近の濃度値（２５６階調の場合には１２８付近）にて、低濃度領域，高濃度領域の２つの領域に分割し、低濃度領域の中で最もピークの高い山と、高濃度領域の中で最もピークの高い山を選択し、２つのピークの中間値をしきい値として設定する。
【００３７】
ここで、雑誌などでは黒の下地に白の文字で書かれた文書などがある。このような文書を多値で取り込んだ後２値化すると、画素が白黒反転する場合がある。しかし、白黒反転画像は文字認識ができないため、結果として入力画像の正立方向の向きや、複数回に分けて入力した文書画像の重なり位置を検出することができなくなる。
【００３８】
そこで、本実施形態では入力した画像のＲ、Ｇ、Ｂの各色成分の頻度をそれぞれ求めて各色毎にヒストグラムに表し、それぞれの色について濃度の低い位置から検出した山のピーク値と、濃度の高い位置から検出した山のピーク値の大きさを比較する。図５及び図６は、一色に関しての濃度値ヒストグラムを示した図面である。
【００３９】
図５は、濃度の高い領域のピーク値の方が濃度値が低い領域のピーク値よりも高い場合を示している。この場合には、背景部分の濃度よりも文字部分の濃度の方が高くなる。従って、入力した２値画像は反転しない。一方、図６は濃度の高い位置より検出した山のピーク値よりも濃度の低い位置より検出した山のピーク値の方が大きい場合を示している。この場合には、文字部分の濃度よりも背景色の濃度の方が低くなるため、２値画像は反転する。図６の画像については、白黒反転しているため文字認識の処理を行うことができないが、この画像に対して白画素と黒画素を反転する処理を施すことにより、画像の補正することができ、文字認識処理が可能である。
【００４０】
ここで、カラー画像を入力する際には、Ｒ、Ｇ、Ｂの三色について、それぞれ濃度値ヒストグラムを求めることになるが、必ずしも３つの色が同じ傾向を示すとは限らない。そこで、本実施形態では、入力画像が３つの色成分を持つ場合には、濃度の低い位置から検出した山のピーク値をＵ、濃度の高い位置から検出した山のピーク値をＴとしたときに、ＲＧＢ各色成分の中でＵ＜Ｔとなる色の個数を数える。そして、Ｕ＜Ｔとなる個数に合わせて、白画素と黒画素の決定方法を選択することで、二値画像の白黒反転を防ぐことができる。
1)ＲＧＢ３つの色成分のうち、Ｕ＜Ｔとなる色が３つとなる場合（図７）
この例では、ＲＧＢ各色について、濃度が高い領域のピーク値の方が濃度の低い領域のピーク値よりも大きい。このようにＲＧＢ３つの色成分のすべての成分がＵ＜Ｔとなれば、白黒反転に寄与する色成分は無い。そこで、図６の例では３つの色成分のうち少なくても2 つ以上が所定のしきい値を超える画素は白、それ以外の画素はすべて黒として、二値化の処理を行う。
2)Ｕ＜Ｔとなる色が０の場合（図８）
この例では、ＲＧＢの各色について低濃度側のピーク値の方が高濃度側のピーク値よりも大きい。このように、３つの色成分の中にＵ＜Ｔとなる成分がないのであれば、すべての色成分が白黒反転に寄与する。そのため、図７たの例では白画素黒画素を反転する必要がある。この場合、３つの色成分のうち少なくても２つ以上が所定のしきい値を超える画素は黒、それ以外の画素がすべて白となるように、二値化の処理が行われる。
3)Ｕ＜Ｔとなる色が２つの場合（図９）
３つの色成分のうちＵ＜Ｔとなる成分が２個であれば、２つの成分は白黒反転に寄与せず、1 つの成分のみが白黒反転に寄与する。そこで、図８の例ではＵ＜Ｔとなる２つの成分に着目し、これらの２つの色成分のうち少なくても一方の成分が所定のしきい値を超える画素は白、それ以外の画素はすべて黒となるように二値化処理を行う。また、Ｕ＞Ｔとなる色成分については、二値化処理には利用しない。
4)Ｕ＜Ｔとなる色が１つの場合（図１０）
３つの色成分のうちＵ＜Ｔとなる成分が１個のみであれば、１つの成分は白黒反転に寄与しないが、残りの２つの成分は白黒反転に寄与してしまう。そこで、図９の例ではＵ＜Ｔとならない２つの成分に着目し、これらの２つの色成分のうち少なくても一方が所定のしきい値を超える画素は黒、それ以外の画素はすべて白となるような二値化処理を行う。図９の例では、図８の例とは逆に、Ｕ＜Ｔとなっている色成分は二値化処理には利用されない。
【００４１】
このように、本実施形態ではＲＧＢの各色についてヒストグラムを求め、ピーク値同士を比較、その大小関係とその個数とに基づいて入力画像に白黒反転が生じているか否かを判断している。そのため、モノクロ画像の場合と同様に、効果的に白黒反転の有無を判別することが可能となる。
【００４２】
次に、本実施形態による画像処理装置を用いた、画像処理の手法について説明する。
【００４３】
図１１は一実施形態による処理手順を示すフローチャートであり、図１に図示された画像処理装置に適用されるものである。
【００４４】
入力機器を用いた画像の入力処理が開始されると、入力された多値画像は入力画像メモリに一時的に格納される（Ｓ１０１）。また、これと並行して、入力された画像の二値化処理が行われる（Ｓ１０２）。
【００４５】
図１２は２値化処理Ｓ１０２の詳細手順を示すフローチャートである。
【００４６】
図１２において、まず入力画像の濃度値を画素毎に判別し、これを濃度値毎に集計して濃度値のヒストグラムを作成する（Ｓ２０１）。なお、濃度値ヒストグラムの作成については、読取画像１枚分の全体から作成してもよいし、画像データの１読取ラインから作成してもよい。また，入力機器から画像データがある一定量送られてきた時点で，画像の一部からヒストグラムを作成してもよい。
【００４７】
続いて、ヒストグラムの波形を滑らかにする処理を行う（Ｓ２０２）。
【００４８】
ノイズ特性が悪い入力機器や、センサ出力が弱い入力機器などでは、出力画像の色の再現性が低下し、図１３に図示するようにヒストグラムに表すと波形がギザギザになる場合がある。このような場合、ヒストグラムの山のピークを検出しずらくなる。このため、ギザギザした波形を平滑化する。
【００４９】
図１４は、移動平均法を用いて波形が平滑化されたヒストグラムを示す図面である。このように、ヒストグラムを平滑化することによって図１３に図示されたヒストグラムの場合と比較して、濃度値のピークを検出しやすくなる。
【００５０】
また、図１５に図示されるように、入力機器から取り込んだ画像の階調を減らし、階調を減らした画像からヒストグラムを作成してもよい。階調を落とさない画像から作成したヒストグラムに対し、階調を落とした画像から作成したヒストグラムの波形は滑らかになるため、山のピーク値を求めやすくなる。
【００５１】
続いて、平滑化されたヒストグラムに基づいて、閾値を決定する（Ｓ２０３）。閾値の決定は、前述した通り低濃度と高濃度とのピーク値の中間を閾値とするといった方法を取れば良い。
【００５２】
次に、ヒストグラムの波形のピーク値から、二値化処理に用いる色成分を決定する（Ｓ２０４）。これについても、前述した通りＵ＜Ｔとなる色成分の個数に基づいて、二値化に利用する色成分を決定、二値化処理を行えば良い。
【００５３】
また、Ｓ２０４の処理に基づいて、白黒反転画像の有無が判別される（Ｓ２０５）。そして、入力された多値画像を、Ｓ２０３で決定された閾値に基づいて二値化する（Ｓ２０６）。この場合、二値化対象となる画像は、Ｓ２０４で決定された色画像である。
【００５４】
Ｓ１０２により多値画像の二値化処理が行われた後、入力された画像の方向検出、重なり位置検出の処理が行われる（Ｓ１０３）。この処理自体は、前述した本出願人による特許出願に詳細が記載されている通りである。
【００５５】
続いて、Ｓ１０３で検出された文字方向及び重なり位置の情報に基づいて、多値画像の補正処理を行う（Ｓ１０４）。これによって、正立方向に補正された、あるいは一つの画像に合成された分割読取画像が、出力画像として出力されることになる。
【００５６】
図１６は、その他の実施形態による画像処理手順を示すフローチャートである。ここでは、入力された画像がカラー画像であるかモノクロ画像であるかにより応じて、二値化の処理を変える方法が採られている。
【００５７】
まず、入力機器により入力された多値画像を、画像メモリに保存する（Ｓ３０１）。これと並行して、入力機器により入力された多値画像の二値化処理を実行する。
【００５８】
まず、入力された多値画像がＲＧＢ成分を持つ画像であるか、持たない画像であるかが判別される（Ｓ３０２）。入力した多値画像が３つの独立したＲＧＢ色成分を持てば、Ｓ３０３に進み、多値画像用の二値化処理を実行する。一方、入力した多値画像がモノクロ画像であると判断された場合には、Ｓ３０４に進み、モノクロ画像用の二値化処理を実行する。
【００５９】
入力機器を利用する際に、利用者が読取色数を任意に指定できる装置が存在する。このような装置を利用している場合には、指定された色数を画像処理装置にて参照し、複数色が指定されている場合には多値カラー画像が、指定色が一色のみの場合にはモノクロ画像が入力された、と判断すればない。
【００６０】
図１７は、Ｓ３０３で実行される二値化処理の詳細を示すフローチャートである。
【００６１】
まず、Ｓ４０１においてＲ成分の二値化しきい値並びにＲ成分の画像が反転画像か否かを検出するためのフラグを求める。
【００６２】
Ｒ成分の閾値をthresh[0] 、フラグをrev flag[0] とし、
thresh[0] ：(0  255)
rev flag[0] ： (0 、1)
とする。つまり、thresh[0] は０  ２５５の何れかの値を取り、またrev flag[0] は０か１の値を取る。ここで、rev flag[0] が０の場合には画像が非反転画像、１の場合には反転画像を示すものとする。
【００６３】
同様に、Ｓ４０２においてＧ成分の閾値thresh[1] 、Ｇ成分の画像が反転画像か否かを検出するためのフラグrev flag[1] を求め、
thresh[1] ：(0  255)
rev flag[1] ：(0、1)
とする。
【００６４】
更に、Ｓ４０３において、Ｂ成分の二値化閾値thresh[2] 及びＢ成分の画像が反転画像か否かを検出するためのフラグrev flag[2] を求め、
thresh[2] ：(0  255)
rev flag[2] ：(0、1)
とする。
【００６５】
図１８は、上記したＳ４０１  Ｓ４０３の処理の更に詳細な手順を説明するフローチャートである。
【００６６】
まず、Ｓ５０１において、入力した各色成分の濃度の頻度を検出し、ヒストグラムを作成する。
【００６７】
続いて、Ｓ５０２において、作成したヒストグラムの平滑化処理を行う。次にＳ５０３にて、低濃度領域にある複数の山から、しきい値を求めるための山を検出する。
【００６８】
雑誌やカタログなど、写真や図が記載されている文書から読み込んだ画像をヒストグラムに表すと、文字色の山と背景色の山以外に複数の山ができる場合がある。このときには、ヒストグラム上にできた複数個の山の中で、ｘ軸上で最も濃度が低い場所にできた山を選択する。また、ヒストグラム上にできた複数個の山の中で、ｘ軸上において濃度の中間より低い領域の中で最も高い山を選択してもよい。
【００６９】
続いて、Ｓ５０４において、高濃度領域にある複数の山から、しきい値を求めるための山を検出する。この際には、ヒストグラム上にできた複数個の山の中で、ｘ軸上で最も濃度が高い場所にできた山を選択する。また、ヒストグラム上にできた複数個の山の中で、ｘ軸上において濃度の中間より高い領域の中で最も高い山を選択してもよい。
【００７０】
次に、Ｓ５０５にてＳ５０３、Ｓ５０４で選択した２つの山のピーク値を比較する。
【００７１】
低濃度領域から選択した山のピークよりも、高濃度領域から選択した山のピークの方が大きければ、その色成分は反転しないためＳ５０６に進む。その逆で、高濃度領域から選択した山のピークよりも、低濃度領域から選択した山のピークの方が大きければ、その色成分は反転するためＳ５０７に進む。
【００７２】
高濃度領域から選択した山のピークの方が大きい場合には色成分は反転しないため、Ｓ５０６において
rev flag = 0
とする。
【００７３】
一方、低濃度領域から選択した山のピークの方が大きい場合には色成分が反転する。そのため、Ｓ５０７において
rev flag = 1
とする。
【００７４】
そして、Ｓ５０８において、しきい値を決定する。
【００７５】
閾値設定は、例えばＳ５０３において低濃度領域から選択した山のピークと、Ｓ５０４において高濃度領域から選択した山のピーク値を求め、２つの山のピーク値の中央を所定のしきい値とすればよい。
【００７６】
以上の動作により、入力した色成分のしきい値と、反転の有無を検出することができる。
【００７７】
続いて、図１７に戻り、Ｓ４０４にて入力した画像が反転するか否かを判別する。反転画像かを判別する定数（反転画像判別定数）ａを、
a = rev flag[0] + rev flag[1] + reg flag[2];
とする。そして、ａの値によって、
ａ＜＝１：通常の画像
１＜ａ：反転画像
とする。
【００７８】
次に、Ｓ４０５において、Ｓ４０４の判定結果に基づき、通常の画像と反転画像で２値化処理を分ける。
【００７９】
ａ＜＝１の場合は通常の画像であるためＳ４０６に進む。
【００８０】
１＜ａの場合は反転画像となるためＳ４０７に進む。
【００８１】
ここで、画像の2 値化のしきい値を、Athresh とする。
【００８２】
先の反転画像判別定数 aを用いて、
1) a = 0：Athresh = 2 or 3
2) a = 1：Athresh = 1 or 2
3) a = 2：Athresh = 1 or 2
4) a = 3：Athresh = 2 or 3
に設定する。ここで、画像の色成分RGB のうち少なくても2 つ以上の成分が所定の閾値を超えたか否かを判定するのならば、1)、3)のAthresh の値は２つ以上となる。そのため、Athresh の値は２、３どちらを選択してもよい。
【００８３】
また、２つの色成分のうち少なくても１つ以上の成分が所定の閾値を超えたか否かを判定するのであれば、2)、4)のAthresh の値は１つ以上であるため、Ａｔｈｒｅｓｈの値は１、２どちらを選択してもよい。
【００８４】
また、各画素におけるRGB 色成分の濃度値をそれぞれ、Rs、 Gs 、 Bs とする。そして、各画素におけるそれぞれの濃度値がしきい値を超えるか否か判別する定数R flag、 G flag 、 B flag を求める。これらは以下の式で表される。
【００８５】
R flag = thresh[0] <= Rs ? 1 : 0（しきい値を超えれば１）
G flag = thresh[1] <= Gs ? 1 : 0（しきい値を超えれば１）
B flag = thresh[2] <= Bs ? 1 : 0（しきい値を超えれば１）
とする。
【００８６】
以上により求めた閾値により、Ｓ４０６で二値化処理を行う。ここで、反転画像判別定数ａの値により、処理を以下の２つに分ける。
1)ａ＝０の場合
Athresh ＜＝ R flag + G flag + B flag : 白
Athresh ＞   R flag + G flag + B flag : 黒
ＲＧＢ成分がそれぞれしきい値を超えるか否か判別する定数R flag、G flag、B flagをそれぞれ足し合わせ、その値がしきい値(Athresh) を超えれば白画素とし、しきい値を超えなければ黒画素とする。
2)ａ＝１の場合
ここでは、rev flag[] = 1となる色成分を除いて判別する。仮にrev flag[0] = 1(R 成分) とすると、
Athresh <= G flag + B flag :白
Athresh  > G flag + B flag :黒
rev flag[] = 1となる色成分を除いた2 つの判別定数( ここでは、G flagとB flag) を、それぞれ1)の場合とと同様に足し合わせ、その値がしきい値(Athresh) を超えれば白画素とし、しきい値を超えなければ黒画素とする。
【００８７】
一方、Ｓ４０７では、二値化処理に際して求めた画素を白黒反転させる。Ｓ４０６の場合と同様に、反転画像判別定数ａの値により、処理を以下の２つに分ける。
3)ａ＝３の場合
Athresh ＜＝ R flag + G flag + B flag : 黒
Athresh ＞ R flag + G flag + B flag : 白
ＲＧＢ成分がそれぞれしきい値を超えるか否か判別する定数R flag、G flag、B flagをそれぞれ足し合わせ、その値がしきい値(Athresh) を超えれば黒画素とし、しきい値を超えなければ白画素とする。
4)ａ＝４の場合
ここでは、rev flag[] = 0となる色成分を除いて判別する。仮にrev flag[0] = 0(R 成分) とすると、
Athresh ＜＝ G flag + B flag :黒
Athresh ＞ G flag + B flag :白
rev flag[] = 0となる色成分を除いた２つの判別定数（G flagとB flag）をそれぞれ3)と同様に足し合わせ、その値がしきい値(Athresh) を超えれば黒画素とし、しきい値を超えなければ白画素とする。
【００８８】
このように、3)、4)のケースでは、選択する画素の色が1)、2)とは逆になる、すなわち白黒が反転される。
【００８９】
以上の動作により、２値化の際に画像が反転するか否かを自動的に判別し、入力した多値画像(RGB成分を持つ) を最適に２値化することができる。
【００９０】
一方、図１９は、Ｓ３０４におけるモノクロ多値画像の二値化処理手順を示すフローチャートである。
【００９１】
まず、Ｓ６０１にて、モノクロ色成分のしきい値と、その画像が反転画像か否かを判別するためのフラグを求める。Ｓ６０１での処理は、上記したＳ４０１  Ｓ４０３の処理と同様であり、しきい値とフラグをそれぞれ、
thresh[0] ：(0  255)
rev flag[0] (0、 1)
とする。
【００９２】
続いて、Ｓ６０２により入力画像が反転しているか否かを判別する。判別定数（反転画像判別定数）ａを
a = rev flag[0];
とする。
【００９３】
次に、Ｓ６０３において、以降の処理を二つに分ける。
【００９４】
a = 0 の場合はS604に進む。
【００９５】
a = 1 の場合はS605に進む。
【００９６】
ここで、各画素におけるモノクロ色成分の濃度をそれぞれ、Gsとする。そして各画素における色成分がしきい値を超えるか否か判別する定数G flagは次の式で表される。
【００９７】
G flag = thresh[0] <= Gs ? 1 : 0（しきい値を超えれば１）
ａ＝１の場合には、Ｓ６０４において二値化処理を
G flag＝1 ：白
G flag＝0 ：黒
のように行う。つまり、G flagが１のときは白画素とし、G flagが０のときは黒画素とする。
【００９８】
続いて、Ｓ６０５において２値化処理＋反転処理を行う。その際の条件は、
G flag＝0 ：白
G flag＝1 ：黒
となる。つまり、G flagが０のときは白画素とし、G flagが１のときは黒画素とする。
【００９９】
以上の動作により、２値化の際に画像が反転するか否かを自動的に判別し、入力したモノクロ多値画像を最適に２値化することができる。
【０１００】
図１６に戻り、Ｓ３０５で、Ｓ３０３あるいはＳ３０４により二値化された画像に基づいて入力された画像の正立像の向きおよび、複数回に分けて取りこんだ画像の重なり位置を検出する。
【０１０１】
続いて、Ｓ３０６にて、Ｓ３０１で画像メモリに保存した多値画像を、Ｓ３０５の結果に基づいて補正する。
【０１０２】
以上の動作により、RGB 色成分を持つ多値画像、モノクロ多値画像、どちらも最適に２値化することができるため、入力した多値画像を正立方向に補正し、また複数回に分けて入力した多値画像を結合することができる。
【０１０３】
スキャナのような光学的に読取られた文書情報を光電変換して入力画像データとして取得する画像入力装置の場合、その光学解像度は一意に固定されている場合が多い。一方、出力画像データは、ユーザーのニーズに応じて入力画像データを拡大・縮小処理することが多い。この場合、ソフトウェアによる解像度変換処理が施されるが、縮小時には情報の欠落、拡大時には補完処理等によるあいまい情報の増加により、入力画像データより画質が落ちてしまう。
【０１０４】
一方、自動的に画像の向きを補正する技術、自動的に画像を合成する技術においては、画像の向き、重なり位置の検出に当たって、画像の解像度と画質がその精度に大きく影響を与える。入力画像データの解像度がこれらの処理にとって適当な範囲に有り、かつ出力画像も同じ解像度、すなわち入力画像データと同じものである場合には、各検出精度は最高になるが、ユーザーのニーズに応じて拡大・縮小処理を行った後の出力画像を用いた場合にはその検出精度は劣化していってしまう。
【０１０５】
また、解像度変換も含めたこれらの処理は、処理データ量が大きく、さらに処理手順も複雑になるため、処理に必要なメモリ量が大きくなり、処理時間が長くなる。
【０１０６】
したがって、所望の解像度に入力画像を変換して出力する場合には、文字方向判別や重なり位置判別の処理を行う際に、下記のような方法を用いる。
【０１０７】
図２０は、上記の方法が適用される画像処理装置の構成を図示するものであり、図１に図示された装置とほぼ同様なものである。また、二値化処理や白黒反転判別処理などの各種処理は、上記説明した方法をそのまま適用することができるため、詳細については説明を省略する。
【０１０８】
本実施形態による画像処理装置では、入力画像に対し、解像度変換処理と文字方向検出及び重なり位置検出処理をを個別に行い、最後にユーザー指定の解像度の出力画像を、文字方向検出／重なり位置検出の結果に基づいて自動的に方向補正するとともに、複数回に分けて取得した入力画像を自動的に合成してユーザー指定の解像度の出力文書画像を作成することを特徴としている。
【０１０９】
この場合、文字方向検出及び重なり位置検出処理は画像入力手段固有の解像度による入力画像データに対して行うため、解像度変換処理による画質の劣化の影響を受けず、精度の高い検出処理を行うことが可能となる。
【０１１０】
入力画像データが２値画像データ形式である場合の文字方向検出手段及び重なり位置検出手段の構成を図２０、図２１に示す。この場合には、入力画像が文字方向検出手段あるいは重なり位置検出手段に入力する。
【０１１１】
図２０に図示されるように、文字方向検出手段は文字方向検出部と文字方向情報保存部を備えている。文字方向検出部は、既に説明した方法により入力画像の方向を検出するものである。また、文字方向情報保存部は、文字方向検出部により判別された文字方向（つまり画像の方向）を示す情報を一時的に保存するものである。そして、文字方向情報保存部に保存されている文字方向情報は画像補正手段に送られ、画像補正手段は受け取った文字方向情報に基づいて入力画像の方向を正立方向に補正する。
【０１１２】
また、図２１に図示されるように、重なり位置検出手段は、重なり位置検出部と重なり位置情報保存部とを備える。重なり位置検出部は、これも既に述べた方法により分割読取された画像の重なり位置を検出するものである。また、重なり位置情報保存部は、重なり位置検出部により検出されたそれぞれの画像の重なり位置を示す情報を一時的に保存するものである。重なり位置情報保存部に保存された重なり位置情報は画像合成手段に送られ、画像合成手段は受け取った重なり位置情報に基づいて、分割読取されたそれぞれの画像の重なり位置で両画像を合成する。
【０１１３】
入力画像データがモノクロ多値形式及びカラー多値形式である場合の文字方向検出手段及び重なり位置検出手段の構成を図２２、図２３に示す。この場合、文字方向検出手段／重なり位置検出手段には入力画像を二値化するための画像二値化部が備えられている。また、重なり位置検出手段には、二値化された画像を一時的に格納する二値画像格納部が設けられている。これ以外は、図２０、図２１に図示された文字方向検出手段／重なり位置検出手段と同じ処理を行う。
【０１１４】
この方法では、文字方向検出及び重なり位置検出に２値画像を用いるため、入力画像データを２値化する処理が必要となる。なお、文字方向検出の場合には検出終了後には文字方向の情報のみ残っていれば十分であり、２値画像は削除することでメモリの使用量を低減することができる。重なり位置検出の場合、それぞれの画像の重なり位置を検出するために２枚分の画像が必要であり、２値画像も２枚目が取得されるまで保持しておく必要があるため、その格納領域が必要となるので、二値画像格納部が設けられている。この場合も、重なり位置の検出後は重なり位置の情報のみ残っていれば十分であり、二値画像を削除することができる。２値画像を削除することでメモリの使用量を低減することができる。
【０１１５】
図２４は、イメージスキャナを用いた画像の入力／抽出と、文字方向検出／画像補正を説明するための図面である。図２４に示すように、文書原稿をハンドヘルドスキャナで読み込む場合、画像データはスキャナの移動に追従して、図示されていない入力画像メモリに蓄積されていく。ここで、文字方向検出及び重なり位置検出を行うためには、原稿上の全ての画像情報を用いる必要はなく、その一部のみを用いれば十分である。そのため、ある一定量の画像データが蓄積された段階で入力画像メモリに蓄積されている画像データの一部を随時抽出し、その抽出した画像データに対して文字方向検出などの処理を行う。同様に、解像度変換処理もある一定量の画像データが蓄積された段階で入力画像メモリに蓄積されている画像データの一部を抽出し、その抽出した画像データに対して随時処理を行うことが可能である。さらに、方向補正処理及び画像合成処理も、抽出した画像によって方向検出及び重なり位置検出に成功した時点から、既に解像度変換を終了した画像データに対して随時処理を行うことが可能である。
【０１１６】
画像補正処理を行うためには、画像補正対象となる画像を一時的にせよメモリ内に保持しておく必要があるが、特に多値画像の場合には情報量が非常に大きくなるため、容量が大きなメモリを用意しなければならない。しかし、入力画像メモリにすべての入力画像データが蓄積し終わる以前から、その一部の画像データを抽出して随時処理を行っていくことで、文字方向検出及び重なり位置検出に使用するメモリ量を低減すること、処理を高速に行うことが可能となる。また、同様に解像度変換処理や画像補正処理及び画像合成処理も高速に行うことが可能となる。
【０１１７】
入力画像データの解像度とユーザーが指定した出力画像の解像度が同一の場合には、実質的に解像度変換処理が不要となるため、この処理を省略することで処理を高速化することが可能である。また、画像方向補正処理や画像合成処理に用いる画像も入力画像データをそのまま使用することが可能であるため、出力画像用のメモリを低減することが可能となる。
【０１１８】
図２５は、上記した画像処理装置における処理手順を示すフローチャートである。
【０１１９】
スキャナなどの画像入力によって取得した入力画像は、まず解像度変換によって、ユーザーが指定した解像度の出力画像に変換される。画像合成が不要な場合には、入力画像と出力画像の両方を用いて画像の方向補正を行う。方向補正では入力画像から画像の向きを検出し、この結果に従って出力画像を正立方向の画像に変換補正し、最終的な出力画像を生成する。一方、画像合成が必要な場合にはそれぞれの入力画像から重なり位置検出を行う。重なり位置検出及び画像合成には２枚の入力画像が必要だか、まだ１枚しか入力画像が取得されていない場合には、２枚目の入力画像を取得する。入力画像が２枚そろうと、重なり位置検出によって、２枚の入力画像の重なり位置を検出する。この結果に従って、画像合成では、重なり位置検出に使用した入力画像に対応するユーザーが指定した解像度の２枚の出力画像同士を合成して、最終的な１枚の出力画像を生成する。
【０１２０】
図２６は本発明の方向補正処理の流れを示す図面である。ここでは、対象画像が多値画像データ形式の場合について説明するが、対象画像が２値画像データ形式の場合も動作手順としては同様の処理となる。
【０１２１】
スキャナなどから取得された入力画像は、入力画像メモリに格納されていく。２値化処理では入力画像メモリに格納されている入力画像データを取り出し、２値画像データ形式に変換する。この２値画像を方向検出に送り、画像の向きを検出する。方向検出が終了した時点で２値画像は不要になるため、メモリより削除しても良い。一方、出力画像メモリには、ユーザーが指定した解像度の出力画像が格納されている。方向補正では、出力画像メモリに格納されている出力画像を取り出し、方向検出の結果に従って正立した画像に変換した後、最終的な出力画像として出力する。
【０１２２】
図２７は本発明の重なり位置検出及び画像合成処理の流れを示す図面である。ここでは、対象画像が多値画像データ形式の場合について説明するが、対象画像が２値画像データ形式の場合も動作手順としては同様の処理となる。
【０１２３】
まず、１枚目の画像の取得を行う。スキャナなどから取得された入力画像は、入力画像メモリ１に格納されていく。２値化処理では、入力画像メモリ１に格納されている画像データを２値画像データ形式に変換する。この２値画像を方向検出に送り、画像の向きを検出する。重なり位置検出では対象とする２値画像が正立していることが条件となっているため、２値画像方向補正にて２値画像を方向検出の結果に従って正立した画像に変換したのち、２値画像メモリ１に格納する。一方、出力画像メモリ１には、ユーザーが指定した解像度の出力画像が格納される。これで１枚目の画像の取得は終了する。
【０１２４】
続いて２枚目の画像の取得を行う。スキャナなどから取得された入力画像は、入力画像メモリ２に格納されていく。２値化処理では、入力画像メモリ２に格納されている画像データを２値画像データ形式に変換する。この２値画像を方向検出に送り、画像の向きを検出する。１枚目と同様に、２値画像方向補正にて２値画像を方向検出の結果に従って正立した画像に変換したのち、２値画像メモリ２に格納する。一方、出力画像メモリ２には、ユーザーが指定した解像度の出力画像が格納される。これで２枚目の画像の取得は終了する。
【０１２５】
２枚の画像の取得が終了したら、２値画像メモリ１及び２値画像メモリ２に格納されている２値画像を取り出し、重なり位置検出にて双方の重なり位置を検出する。出力画像メモリ１及び出力画像メモリ２に格納されている出力画像を方向検出の結果に従って方向補正して正立させた後、重なり位置検出の結果に従って合成して最終的な１枚の出力画像を生成する。
【０１２６】
図２８は、本実施形態のいずれについても適用可能な、二値化処理部（図１等処理）の詳細を示した図面である。二値化処理部には、入力画像の濃度値を判別する濃度値判別部と、判別された濃度値に基づいて濃度値のヒストグラムを作成するヒストグラム作成部と、作成されたヒストグラムに基づいて、低濃度側と高濃度側とのピーク値を検出するピーク検出部と、低濃度・高濃度のピーク値の大小関係を比較する大小比較部と、大小比較の結果、二値化対象となる色成分を選択する色成分選択部と、検出されたピーク値に基づいて閾値を設定する閾値設定部と、設定された閾値により、選択された色成分の画素の二値化を行う二値化処理部とを備える。これら各部の動作は、これまでに述べた処理と同じであるため、詳細の説明は省略する。
【０１２７】
そして、二値化された画像は、出力画像として、図１の例では方向検出／重なり位置検出部に送られる。
【０１２８】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
【０１２９】
入力機器から読み取った多値画像のRGB 色成分のヒストグラムを作成し、ヒストグラム上の波形にノイズがのり、波形が滑らかでなければ平滑化処理を行う。濃度の低い領域にできた山のピークと濃度の高い領域にできた山のピークを比較し、2 値化に用いる色成分を選択する。山のピーク値の大小から２値化した画像が反転するか否かを判別し，反転するのであれば画像の白画素と黒画素を入れ替える。
【０１３０】
このようにすれば、写真や図が挿入された文書であっても、黒画素ノイズによる「かすれ」や「かぶり」の無い、文字認識に最適な２値画像を作成することができる。また白抜き文字の文書画像であっても，作成する２値画像の白黒反転を防ぎ，文字認識の精度を向上することができる。
【０１３１】
そして、本発明は入力機器から読み込んだ文書画像の文字認識の精度を向上し，さらに対象となる文書の範囲を広げる効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例による画像処理装置の構成を示す図面。
【図２】読み取られた画像の濃度ヒストグラムを示す図面であり、山が２つ出現した例を示す図面。
【図３】ヒストグラムに基づく閾値決定の一方法を示す図。
【図４】ヒストグラムに基づく閾値決定の他方法を示す図。
【図５】濃度が高い領域のピーク値の方が大きい例を示す図。
【図６】濃度が低い領域のピーク値の方が大きい例を示す図。
【図７】白黒反転無しの画像のヒストグラムを示す図。
【図８】白黒反転する画像のヒストグラムを示す図。
【図９】白黒反転がない場合に、２つの色成分から二値画像を作成する例を示す図。
【図１０】白黒反転がある場合に、２つの色成分から二値画像を作成する例を示す図。
【図１１】一実施例による画像処理の手順を示すフローチャート。
【図１２】二値化処理の詳細手順を示すフローチャート。
【図１３】波形が平滑化される前の濃度ヒストグラムを示す図。
【図１４】移動平均法により波形が平滑化された濃度ヒストグラムを示す図。
【図１５】階調を落とした画像から求めた濃度ヒストグラムを示す図。
【図１６】その他の実施形態による画像処理の手順を示すフローチャート。
【図１７】二値化処理の詳細を示すフローチャート。
【図１８】閾値設定の詳細手順を示すフローチャート。
【図１９】モノクロ画像の二値化処理を示すフローチャート。
【図２０】更にその他の実施形態による画像処理手順を示すフローチャート。
【図２１】二値画像の文字方向検出手段を示す図。
【図２２】二値画像の重なり位置検出手段を示す図。
【図２３】多値画像の文字方向検出手段を示す図。
【図２４】多値画像の重なり位置検出手段を示す図。
【図２５】画像の抽出と文字方向検出・補正処理を説明する図。
【図２６】方向補正・画像合成の処理手順を説明するフローチャート。
【図２７】方向補正の処理詳細を示すフローチャート。
【図２８】画像合成の処理詳細を示すフローチャート。
【図２９】二値化処理部の構成を示す図。
【図１】
0004228530.tif 000002
【図２】
0004228530.tif 000003
【図３】
0004228530.tif 000004
【図４】
0004228530.tif 000005
【図５】
0004228530.tif 000006
【図６】
0004228530.tif 000007
【図７】
0004228530.tif 000008
【図８】
0004228530.tif 000009
【図９】
0004228530.tif 000010
【図１０】
0004228530.tif 000011
【図１１】
0004228530.tif 000012
【図１２】
0004228530.tif 000013
【図１３】
0004228530.tif 000014
【図１４】
0004228530.tif 000015
【図１５】
0004228530.tif 000016
【図１６】
0004228530.tif 000017
【図１７】
0004228530.tif 000018
【図１８】
0004228530.tif 000019
【図１９】
0004228530.tif 000020
【図２０】
0004228530.tif 000021
【図２１】
0004228530.tif 000022
【図２２】
0004228530.tif 000023
【図２３】
0004228530.tif 000024
【図２４】
0004228530.tif 000025
【図２５】
0004228530.tif 000026
【図２６】
0004228530.tif 000027
【図２７】
0004228530.tif 000028
【図２８】
0004228530.tif 000029
【図２９】
0004228530.tif 000030