(57)【特許請求の範囲】
【請求項１】
文書画像の傾きを検出して、これに基づいて文書画像の傾きを補正する文書画像の傾き補正方法において、
入力された文書画像を、所定の幅を有する領域に分割し、
前記領域内の画素数に対する表示を線や点を使って形作られた記号の構成要素となる記号画素数の割合を算出し、
前記割合が予め設定された範囲内にある場合に、前記領域を傾きを算出する対象とする矩形の部分画像と設定し、
前記部分画像に対して座標軸を設定し、
前記部分画像内に存在する各記号画素の座標から近似直線を算出し、
前記近似直線の傾きを
前記部分画像の傾きの角度として検出し、
前記座標から前記部分画像の矩形の対角線の傾き角度を算出し、
前記近似直線の傾き角度と、前記対角線の矩形の対角線の傾き角度とを比較し、
前記近似直線の傾き角度が前記対角線の矩形の対角線の傾き角度よりも小さい場合に、該近似直線の傾き角度に基づいて、前記文書画像の傾き角度を判別し、
前記判別された文書画像の傾き角度により、前記入力された文書画像の傾きを補正する
ことを特徴とする、文書画像の傾き補正方法。
【請求項２】
前記文書画像の傾き補正方法において、
前記部分画像に対する座標軸は、当該部分画像の水平方向をｘ軸、垂直方向をｙ軸とする
ことを特徴とする、請求項１に記載の文書画像補正方法。
【請求項３】
前記文書画像の傾き補正方法において、
前記部分画像の高さが、予め設定された高さの範囲内にあるか否かを判別し、
前記部分画像の高さが当該範囲内にあると判定された場合に、当該部分画像の傾き角度を検出する
ことを特徴とする、請求項１に記載の文書画像補正方法。
【請求項４】
前記文書画像の傾き補正方法において、
前記部分画像の中で、前記ライン方向に連続して前記記号画素が存在しない領域の幅を求め、
前記記号画素が存在しない領域の幅と予め設定された幅とを比較し、
前記比較の結果当該領域の幅が予め設定された幅よりも小さい場合のみ、当該部分画像の傾き角度を検出する
ことを特徴とする、請求項１に記載の文書画像補正方法。
【請求項５】
前記文書画像の傾き補正方法において、
複数の部分画像を抽出し、
前記複数の部分画像のそれぞれについて傾き角度を算出し、
前記検出された複数の傾き角度に基づいて当該文書画像の傾き角度を算出する
ことを特徴とする、請求項１に記載の文書画像補正方法。
【請求項６】
前記文書画像の補正方法において、
前記複数の部分画像のそれぞれについて算出した傾き角度の符号毎に、傾き角度情報の個数を計数し、
前記計数の結果数が多い符号を有する傾き角度情報に基づいて、当該文書画像の傾き角度を検出する
ことを特徴とする、請求項５に記載の文書画像補正方法。
【請求項７】
前記文書画像の補正方法において、
前記複数の部分画像の傾き角度の平均値を求め、
当該平均値を当該文書の傾き角度として決定する
ことを特徴とする、請求項５に記載の文書画像補正方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、イメージスキャナなどの画像入力装置から入力された画像（特に文書画像）の傾きを補正する文書画像の傾き補正方法に関する。
【０００２】
【従来の技術】
従来より、文書画像を入力するための装置として、イメージスキャナが利用されている。これまでのイメージスキャナとしては、据え置き型のいわゆるフラットベッド型のスキャナが使用されているが、近年持ち運びが容易で手動で操作される小型のハンドヘルドスキャナの開発・製品化が進んでいる。
【０００３】
このようなハンドヘルドスキャナでは特に、利用者の操作の仕方によって文書画像が傾いて入力される可能性が非常に高い。理想的には、スキャナの操作方向が文書の向きに対して平行あるいは垂直であることが望ましい。この場合には、入力される文書画像は傾かないはずである。
しかし、ハンドヘルドスキャナでは操作者の操作の自由度が高いため、文書の向きに対してスキャナを傾けて読取が行われる可能性が非常に高い。これは、利用者が意識する、しないに関わらない。そして、スキャナが文書に対して斜め方向に操作された場合、文書画像も斜めに入力されることとなる。
【０００４】
このような問題点を解決するための従来技術として、以下のようなものが存在する。
特開昭６３−１８０１８０号公報に開示される発明では、文書画像の文書部分に外接する矩形の各辺を、読み取られた文書画像に基づいて直線近似により求める技術が開示される。そして、求められた直線（辺）と画像の外郭との角度を求め、これを文書画像の傾きとしている。
【０００５】
特開平７−１９２０８６号公報には、画像上の黒画素と白画素との境界となる点を複数個読み取られた文書画像から抽出し、これらの抽出された回帰直線を求める技術が開示される。文書画像の傾き角度は、求められた回帰直線の回帰計数の値から求めることができる。
特開平７−２８２１９５号公報には、入力された文書画像の各ライン毎に、黒画素の個数をルイ的した投影プロフィールを作成する技術が開示される。傾き角度は、作成された投影プロフィールの分散値により求めることができる。
【０００６】
これらの技術はそして、算出された文書の傾き角度に基づいて、この傾きを打ち消す方向に入力された文書画像を回転させることにより、文書の傾きを補正している。
【０００７】
【発明が解決しようとする課題】
しかし、これらの技術では以下のような問題が出てくる。
例えば、スキャナで文書の一部分をスキャンした場合などは、スキャンされた画像全体に文字が存在することとなる。特にハンドヘルドスキャナの場合には、装置の小型化を図っているため、一度に読取ができる範囲が狭く、文書の一部分しか読取ができないといった事態が発生する可能性は非常に高い。このような場合、画像中の文書部分に外接する矩形領域は読み取られた画像の外郭と同じになる。そのため、特開昭６３−１８０１８０号公報に開示された技術では、このような読取が行われた場合には、文書に外接する矩形の各辺と画像の外郭の角度に基づいて文書画像の傾き画像を求めることはできない。
【０００８】
一方、文書画像が文字のみから構成されてはおらず、線画や写真等の図が存在する場合、図の画像部分の黒画素と白画素との境界は直線的にはならない。従って、この境界の回帰直線の傾き角度は文書画像の傾き角度を示していない。そのため、画像部分の白画素と黒画素の境界点の回帰直線の傾きに基づいて文書画像の傾きを算出する特開平７−１９２０８６号公報に開示される技術では、このような図が混在している場合には、誤った傾き角度を算出してしまう可能性が非常に高くなる。
【０００９】
また、図を含んでいる文書画像の投影プロフィールを作成して文書の傾き角度を算出する場合、文書画像（文字部分）と濃さの異なる図面が存在すると、この図を含んだ全体的な投影プロフィールの分布は文書画像の投影プロフィールとは異なることが予想される。そのため、特開平７−２８２１９５号公報に開示される技術では、このような問題に対処することができない。
【００１０】
本発明はこのような問題に鑑み、文書画像の一部分や、図を含む文書画像であっても、文書の傾き角度を高い精度で検出できる文書画像の傾き検出方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記した目的を達成するために、本発明は、文書画像の傾きを検出して、これに基づいて文書画像の傾きを補正する文書画像の傾き補正方法において、入力された文書画像を、所定の幅を有する領域に分割し、分割された領域から、黒画素が存在するラインを検出し、検出された黒画素を含むラインが連続している領域を、部分画像として抽出し、前記部分画像の傾き角度を検出し、  検出された部分画像の傾き角度に基づいて、前記文書画像の傾き角度を判別し、前記判別された文書画像の傾き角度により、前記入力された文書画像の傾きを補正する文書画像の補正方法であることを特徴とする。
【００１２】
更には、本発明は、前記部分画像に対して座標軸を設定して、部分画像内に存在する黒画素の座標を直線近似し、近似直線の傾きを当該部分画像の傾きとすることを特徴とする。
更にまた、本発明は、前記部分画像内の画素数に対する黒画素数の割合を算出し、前記黒画素数が予め設定された範囲内にある部分画像について、当該部分画像の傾き角度を検出することを特徴とする。
【００１３】
また、本発明は、前記部分画像の高さが予め設定された高さの範囲内にあるか否かを判別し、前記部分画像の高さが当該範囲内にあると判定された場合に、当該部分画像の傾き角度を検出することを特徴とする。
更に、本発明は、前記部分画像の中で、前記ライン方向に連続して黒画素が存在しない領域の幅を求め、前記黒画素が存在しない領域の幅と予め設定された幅とを比較し、前記比較の結果当該領域の幅が予め設定された幅よりも小さい場合のみ、当該部分画像の傾き角度を検出することを特徴とする。
【００１４】
また、本発明は、複数の部分画像を抽出し、前記複数の部分画像のそれぞれについて傾き角度を算出し、前記検出された複数の傾き角度に基づいて当該文書画像の傾き角度を算出することを特徴とする。
更に、本発明は、前記複数の部分画像のそれぞれについて算出した傾き角度の符号毎に、傾き角度情報の個数を計数し、前記計数の結果数が多い符号を有する傾き角度情報に基づいて、当該文書画像の傾き角度を検出することを特徴とする。
【００１５】
また、本発明は、前記複数の部分画像の傾き角度の平均値を求め、当該平均値を当該文書の傾き角度として決定することを特徴とする。
そして、本発明は、前記抽出された部分画像の対角線の角度を算出し、当該部分画像の傾き角度と前記対角線の角度とを比較し、前記部分画像の傾き角度が前記対角線の角度よりも小さい場合に、当該部分画像の傾き角度に基づいた文書画像の傾き角度を検出することを特徴とする。
【００１６】
【実施の形態】
以下、図面を用いて本発明の実施形態について説明する。
図１は、イメージスキャナにより読み取られた文書画像の模式図であり、図中丸印で示されているのは一つの文字である。図１に図示された文書画像は横書きであり、一つの行が右上がりに傾いて入力されたものとする。
【００１７】
ここで、傾いている文書画像内の文字が、文書画像の傾き角度と同じ傾きを持つ直線上に並んでいる、すなわち文書を構成する行の傾き角が文書画像の傾き角と同じであることが判る。本実施形態はこの点に着目し、文書画像の中から行の一部を部分画像として抽出、この部分画像の傾きを求めることによって文書画像の傾き角度を検出するという構成を採用したことを特徴とする。
【００１８】
より具体的に説明すると、文書画像を所定の分割幅Ｗを持つ領域に分割する。ここで、図１の例では文書が横書きであるため、領域の分割方向は縦方向としている。この理由等については、詳細後述する。
次いで、分割幅Ｗを持つ領域の中から、黒画素を含むラインが連続する領域を検出する（この場合行方向）。そして、特定の条件を満たしている領域を、行の一部の画像であると判別し、図１の（ｂ）に図示されるように部分画像として抽出する。なお、ここでは文字を構成する画素を「黒画素」と想定しており、実際の画素の色は問題にはしていない。従って、黒地に白い字で印刷されているような文書についても、文字の領域は「黒画素」であるものと考える。また、カラースキャナを用いて着色原稿を読み取った場合、ＲＧＢの三色に分解されて読み取られるが、この場合についても文字を構成する領域が「黒画素」であると考えることとする。
【００１９】
抽出された部分画像の水平方向をｘ軸、垂直方向をｙ軸に取り、部分画像内の黒画素の座標を直線で近似する。そして、近似した直線の傾きｍを算出する。近似直線ｍの傾きは、例えば黒画素の座標の回帰直線の傾きとして、次式により算出することができる。
0003876531.tif 000002
ここで、Σはｉ＝０からＮ−１までを加算することを意味するものとする。ただし、Ｎは部分画像内の黒画素の個数を、ｘi 及びｙi はそれぞれｉ番目の黒画素のｘ座標とｙ座標である。
【００２０】
そして、上記して求めた近似直線の傾きｍから、この直線の傾き角度θを
θ＝ｔａｎ-1ｍ  ．．．（２）
の関係より求めることができるのである。
なお、利用する部分領域を一つのみとしてしまうと、直線近似の誤差等の影響を受けてしまい、正しい文書の傾きを求めることができなくなる可能性もある。そのため、複数の部分画像を抽出し、これらについてそれぞれ直線の傾きを求めるようにすることが望ましい。そして、全ての抽出された部分画像の傾き角度に基づいて、文書画像の傾きを算出するようにすれば、文書傾きの様子を高い精度で判別することができる。
【００２１】
図２は、本実施形態による傾き角度検出の処理手順を示したフローチャートである。ここでは、全体的な処理の流れを示している。
まずスキャナ等から入力された文書画像をメモリ内に一旦格納する（Ｓ１０１）。続いて、入力され文書画像の分割幅Ｗを、設定されているスキャナの解像度等から決定する（Ｓ１０２）。
【００２２】
文書画像を分割する幅Ｗは、図３に示された関係により算出する。分割幅をＷ、文書画像の行間の画素数をＤ、傾きを検出しようとする場合の最大角度をθ1 としたときに、次式
Ｗ×ｓｉｎθ＜Ｄ  ．．．（３）
を満たすＷを分割幅として選択する。
【００２３】
例えばθとＤを同一条件として、分割幅を図３に図示されるＷ’としようとした場合、上下の行の黒画素が連続して検出されてしまうこととなり、上下の行を水平方向には分割できなくなる。従って、上記の式により求められた分割幅Ｗで文書を分割することは、非常に重要なこととなる。
ここで、行間を同一とすれば、最大の検出角度を大きくしようとした場合、分割幅Ｗは小さくなる。しかし、分割幅Ｗが小さいと、傾きを検出するための直線の長さが短くなる。そのため、直線近似を行う上で、近似して求められた直線の傾きと実際の行の傾きとの誤差が大きくなってしまい、傾き検出の精度が低下する可能性がある。
【００２４】
一方、分割幅Ｗを広く取れば、近似された直線の傾きと実際の行の傾きとの誤差が小さくなる。しかし、上下の行を分割できなくなる可能性があるため、分割幅Ｗをあまり大きくし過ぎると、検出できる傾きの最大角度が非常に小さくなってしまう可能性が出てくる。
ここで、手動操作のハンドヘルドスキャナを考慮した場合、文書と装置との傾きはほぼ１０度以内の傾きとなると考えられる。そのため、上記した分割幅Ｗは、１０度程度の傾きが検出できるように設定されれば、傾き検出の精度と、検出できる最大傾き角とのバランスがうまくとれるようになる。
【００２５】
また、同一の文書画像を読み取った場合の行間の画素数は、スキャナ等の解像度により異なる。例えば、４００ｄｐｉで読み取られた場合の行間の画素数は、２００ｄｐｉで読み取られた場合の行間の画素数の２倍となる。そのため、上記した分割幅Ｗの大きさを設定する際には、スキャナの解像度を考慮する必要がある。
【００２６】
実際にスキャナを用いて画像読取を行う場合には、スキャナの解像度が予め設定される。そのため、分割幅Ｗを設定する際には、この事前に設定されているスキャナ解像度に基づいて、分割幅Ｗを求める。具体的には、分割幅Ｗを解像度に比例して変更するようにする。これによって、解像度によらず適切な幅で入力画像を分割することが可能となる。
【００２７】
このように決定された分割幅Ｗにより、文書画像が画素幅Ｗにより分割される（Ｓ１０３）。
続いて、分割幅Ｗで分割された領域の中で、黒画素を含むラインが連続している領域を検出する（Ｓ１０４）。
Ｓ１０４のステップの詳細は、図４に図示されるので、これを用いて領域検出の処理を説明する。なお、図４において、Ｒは検出した領域の個数を示し、ｍは図２のＳ１０３により分割された領域の中で選択した領域の番号を示している。また、ｎは分割した領域内における先頭からのライン番号を、Ｓは黒画素を含むラインの開始位置を示すものとする。
【００２８】
処理が開始されると、先ずＲ＝０、ｍ＝１に設定する（Ｓ２０１）。そして、ｍ番目の分割領域を選択する（Ｓ２０２）。初期段階では、１番目の分割領域が選択されることとなる。続いて、ｎ＝１を設定、つまりｍ番目の領域の最初のライン番号を設定する（Ｓ２０３）。
ライン番号が設定された後、ｎ番目のライン中に黒画素があるか否かを検出する（Ｓ２０４）。黒画素が存在する場合にはＳ２０９の処理を実行し、黒画素が存在しない場合にはＳ２０５の処理を実行する。
【００２９】
Ｓ２０４にて黒画素が検出されない場合には、ｎ＝ｎ＋１とする（Ｓ２０５）。そして、ｍ番目の分割領域の最終ラインを超えたか否かが判別される（Ｓ２０６）。最終ラインを超えていない場合には、Ｓ２０４の処理を繰り返す。
一方、Ｓ２０６にて最終ラインを超えたと判断された場合には、ｍ＝ｍ＋１とする（Ｓ２０７）。そして、最終の分割領域を超えたか否かが判別される（Ｓ２０８）。最終の分割領域を超えていない場合には、Ｓ２０２以下の処理を繰り返す。一方、Ｓ２０８にて最終分割領域を超えていると判断された場合には、処理を終了する。
【００３０】
Ｓ２０４にてｎ番目のラインが黒画素を含むと判断された場合、Ｓ２０９にてＳ＝ｎと設定される。続いて、ｎ＝ｎ＋１と設定される（Ｓ２１０）。この後、Ｓ２１１にて最終ラインを超えたか否かが判別される。最終ラインを超えた場合には、Ｓ２０７の処理を実行する。一方、最終ラインを超えていないと判断されている場合、Ｓ２１２でｎ番目のラインが黒画素を含むか否かが判定される。黒画素を含むと判断された場合、Ｓ２１０以降の処理を繰り返す。一方、Ｓ２１２でｎ番目のラインが黒画素を含まないと判断された場合、Ｓ番目からｎ−１番目のラインを、一つの領域として検出するとともに、Ｒ＝Ｒ＋１とする（Ｓ２１３）。そして、Ｓ２０５以降の処理を実行する。
【００３１】
このような処理を全ての分割領域について繰り返すことによって、黒画素を含むラインが連続する領域とその個数Ｒを求めることができる。
Ｓ１０４の処理が実行されると、次いで所定の条件を満たす領域を部分画像として抽出する処理が実行される（Ｓ１０５）。図５は、Ｓ１０５の処理をさらに詳細に図示したフローチャートである。なお、図５において符号Ｋは図４の処理で抽出された部分画像の個数、ｍはＳ１０４の処理により検出した領域の中で選択した領域の番号、ＲはＳ１０４の処理で検出した領域の個数を示している。
【００３２】
Ｓ１０５の処理が実行されると、まずＫ＝０、ｍ＝１が設定される。続いて、Ｓ３０２ではｍ番目の領域が選択される。そして、Ｓ３０３で選択されたｍ番目の領域の高さが所定の範囲内であるか否かが判別される。これは、図６のように高さが非常に低い領域や高い領域を除外するための処理である。
例えば図６ａのような画像上のノイズのように高さの小さい領域や、図６ｂのように図の一部分のように部分領域の高さが高い領域は、文字を含む領域ではない。従って、文書画像の傾きの判別対象からは除外する方が望ましい。そのために、一般的な文字の高さに基づいて、抽出する領域の最大高さと最小高さを設定、この範囲内の高さを有する領域のみを部分画像として抽出することにより、文字ではないと思われる画像を抽出しないようにすることができる。
【００３３】
なお、同じ文字であっても文書画像の読取解像度に比例してその大きさが変化する。そのため、抽出する領域の高さを解像度に比例して変化させることによって、解像度によらず適切な高さの領域を部分画像として抽出することができるようになる。
Ｓ３０３で選択された領域の高さが所定の範囲内であると判別された場合、続いて選択されたｍ番目の領域内に存在する画素に対する黒画素の割合、つまり黒画素率を算出する（Ｓ３０４）。
【００３４】
このようにしてｍ番目の領域の黒画素率が算出された後、算出された黒画素率が所定の範囲内であるか否かが判別される（Ｓ３０５）。これは、図７ａのように黒画素率が非常に大きい領域や、図７ｂのように黒画素率が非常に小さい領域を除外するための処理である。
文書画像の傾き検出に使用する画像は文字を含む行の一部である。これに対して、図７ａのように領域内全体が黒画素である領域や、逆に図７ｂのようにその領域内に黒画素が少ない領域は、文字画像の部分ではないと考えられるので、文書画像の傾き検出のために抽出することは好ましくない。
【００３５】
そこで、通常考えられる文字画像の黒画素率などを参考にして、抽出される領域の黒画素率に最大値と最小値を設定する。抽出される領域の黒画素率が設定された黒画素率の範囲内にあれば、その領域は文字領域であると考えることができる。これに対して、ある領域の黒画素率が設定された黒画素率の範囲を外れる場合には、その領域は文字領域ではないと考えられるので、この領域は抽出しないようにする。
【００３６】
黒画素率が所定の範囲内であると判別された場合には、続いてその領域内の空白領域の幅が所定の範囲内であるか否かが判別される（Ｓ３０６）。これは、図８のように空白領域が占める割合が高い領域を除外するために行われる処理である。
図８のように文字間に空白部分が多い領域は、黒画素の分布に偏りがある。そのため、この領域を用いても正しく傾き角度を検出することができない可能性がある。そのため、このような領域についても、文書画像の傾き角度を検出することに用いるのは好ましくない。そこで、図８の例では行方向に黒画素が存在しない部分の幅Ｗ’を求め、分割領域の幅ＷとＷ’の割合を算出する。この割合が予め設定された割合よりも大きい場合には、その領域を抽出しないようにする。なお、分割領域幅Ｗは予め定められているので、これに対して所定割合となるＷ’も予め定めることは可能である。そこで、Ｗ’の大きさから直接その領域を抽出するか否かを判定することも可能である。
【００３７】
Ｓ３０６の処理の結果、その領域内の空白領域の幅が所定の範囲内であると判別された場合には、続いてｍ番目の領域を部分画像として抽出し、Ｋ＝Ｋ＋１と設定する（Ｓ３０７）。この後、Ｓ３０７でｍ＝ｍ＋１を設定する。これにより、次の領域が選択される。
一方、ｍ番目の領域がＳ３０３、Ｓ３０５あるいはＳ３０６のいずれかで、それぞれ設定された条件を満たさなかった場合にも、Ｓ３０８の処理が実行される。
【００３８】
Ｓ３０８の処理に引き続き、Ｓ３０９でｍがＲに等しいか否かが判定される。つまり、Ｓ１０４で検出された領域の全てについて図５の処理が終了したか否かが判定されることとなる。ｍがＲに等しくない場合、つまり未処理の領域が残っている場合には、Ｓ３０２以降の処理を実行して、部分画像抽出の処理が繰り返される。
【００３９】
このように、図５の処理が実行されることによって、Ｓ１０４の処理で選択された領域の中から、文書の行の一部分と思われる度合いが高い領域が、部分画像として選択的に抽出されていく。
Ｓ１０５で抽出された部分画像に対しては次に、傾き角度が算出される（Ｓ１０６）。これは式（１）に示された通りに算出できる。
【００４０】
Ｓ１０６で部分画像の傾き角度が算出されると、続いてＳ１０７で文書画像の傾き角度が決定される。図９は、Ｓ１０７の処理を詳細に説明したフローチャートである。
図９において、処理が開始されるとまずｍ＝１が設定される（Ｓ４０１）。ここで、ｍはＳ１０４で抽出された部分画像の中で選択した部分画像とその傾き角度を示す。なお、図９においてＫはＳ１０４で抽出した部分画像の個数を示すための記号である。
【００４１】
Ｓ４０１に続いて、ｍ番目の部分画像の対角線の角度を算出する（Ｓ４０２）。そして、Ｓ１０２で算出された部分画像の対角線の角度と部分画像の傾き角度の大小関係が判別される（Ｓ４０３）。
図１０  に図示されるように、通常の文字領域が抽出されているのであれば、抽出した部分画像の傾き角度は、その部分画像の対角線の角度よりも常に小さくなると考えられる。逆に、算出された部分画像の傾き角度が、その部分画像の対角線の角度よりも大きい場合には、算出された部分画像の傾き角度は誤りであると判断することも可能である。このような誤りであると思われる部分画像の傾き角度を捨てるようにすることで、傾き角度の検出精度を向上させることができる。
【００４２】
Ｓ４０３での判別の結果、対角線角度が傾き角度よりも小さい場合には、傾き角度を誤りとしてｍ番目の部分画像の傾き角度を削除し（Ｓ４０４）、次の部分画像を指し示すためにｍ＝ｍ＋１を設定する（Ｓ４０５）。一方、Ｓ４０３で対角線角度が部分画像の傾き角度よりも大きいと判断された場合には、Ｓ４０５の処理を続いて実行する。
【００４３】
Ｓ４０５に続いて、抽出した全ての部分画像に対してＳ４０２からＳ４０５までの処理を完了したかどうかを判別するために、ｍ＝Ｋであるか否かが判別される（Ｓ４０６）。ｍがＫに等しくない場合には、未処理の部分画像が残っているので、Ｓ４０２以降の処理を繰り返す。一方、ｍ＝Ｋの場合には、全ての部分画像に対する処理が終了したことを示している。
【００４４】
この場合には、Ｓ４０６に続き部分画像の傾き角度の中で、正の値を持つ傾き角度の個数と、負の値を持つ傾き角度の個数とが、それぞれ計数される（Ｓ４０７）。
複数の部分画像についてその傾き角度を算出した場合、算出結果に誤差がある程度生じたとしても、本来の正しい角度の符号と同符号を持つ傾き角度の個数の方が、逆符号を持つ傾き角度の数よりも多いと考えることができる。そのため、算出された傾き角度の中から、正の符号を持つ傾き角度の数と、負の符号を持つ傾き角度の数とをそれぞれ計数し、個数が多い傾き角度のみを残し、個数が少ない傾き角度を捨てることで、傾き角度の検出精度を上げることができる。
【００４５】
この傾き角度の計数結果に基づいて、正負の個数の多い方の符号を持つ傾き角度が選択される（Ｓ４０８）。
この後、選択された傾き角度の平均値と標準偏差を算出し（Ｓ４０９）、平均値から＋／−標準偏差以内の傾き角度を選択する（Ｓ４１０）。そして、Ｓ４１０で選択された傾き角度の平均値を算出して、これを文書画像の傾き角度に決定する（Ｓ４１１）。
【００４６】
複数の傾き角度の平均値を元の文書画像の傾き角度とすることによって、単一の部分画像の傾き角度のみから文書画像の傾きを判断する場合と比較して、より正確に傾き角度を算出することができるようになる。
また、検出された部分画像の傾き角度が平均角度から大きく外れている場合、この角度は正しい傾き角度ではないと考えられる。そのため、算出された傾き角度の分布から標準偏差を求め、平均傾き角度を中心に＋／−標準偏差の範囲内にある角度を選択して、選択された角度の平均値を文書画像の傾き角度とすることで、更に文書画像の傾き角度の検出精度を向上させることができる。
このような処理を行うことで、文書画像傾き角度を求めることができる。文書画像の補正は、求められた傾き角度とは逆符号で、同じ角度だけ文書画像を回転させることで行われる。
以上の説明は、文書が横書きである場合について説明している。しかし、文書画像が縦書き文書であった場合や、９０度回転している文書画像であった場合には画像を図１１のように縦方向に分割した領域の中から行の一部分を部分画像として抽出することはできない。このような場合、図１１に図示されるように、文書画像の分割を横方向に行い、分割された部分画像の中から黒画素が連続する領域を検出するようにすれば後は上記した方法で傾き補正を行うことができる。
【００４７】
また、文書画像が横書きか縦書きかが判らない場合には、傾き角度の検出を縦方向と横方向との両方について行う。そして、抽出できた部分画像の個数が多い方向の傾き角度を文書画像の傾き角度とすればよい。
ある分割幅で文書画像を分割して、分割された画像の中から黒画素が連続する領域を検出する場合に、行方向と直交する方向に文書画像を分割すれば、図１１のように各行の一部分を独立した領域として検出することができる。これに対し、行方向と同じ方向に文書画像を分割すると、図１１の破線で示したように、複数の行が一つの領域として検出されてしまう。そこで、行方向に対して直交する方向に文書画像を分割することで、より多くの部分画像を抽出することができる。
【００４８】
図１２は、縦方向及び横方向から文書画像の傾き角度を検出する手順を示したフローチャートである。
処理が開始されると、まずある方向（例えば縦方向）について、入力された文書画像の傾き角度検出の処理を行う（Ｓ５０１）。続いて、入力されている文書画像に対して、９０度回転の処理を施す（Ｓ５０２）。続いて、９０度回転された文書画像に対して傾き角度検出の処理を行う（Ｓ５０３）。Ｓ５０１で縦方向の角度検出が行われたのであれば、Ｓ５０３では横方向の角度検出が行われることとなる。なお、Ｓ５０１、Ｓ５０３の処理は、これまで説明してきた文書画像の傾き角度検出の処理を行えばよい。また、Ｓ５０１とＳ５０３とでの文書画像の分割の方向は、互いに同一方向である。
【００４９】
そして、縦横それぞれの方向について、抽出された部分画像の個数が多い方向が正しい文書方向であると判断し、この方向について算出された傾き角度をその文書方向として決定する（Ｓ５０４）。
なお、文書によっては縦書きと横書きとが混在しているケースもあるが、このような場合主に一方向（例えば横書き）に文書が記載され、部分的に他方向（例えば縦書き）に文書が記載されるケースが殆どであり、縦書きと横書きの割合が半々程度である文書は実際には非常に少ないと考えられる。そのため、図  のような処理を行うことで、一方の文書方向についての部分画像の方が、他方よりも多くなることが予想されるので、文書方向を高い確率で判別することが可能である。
【００５０】
また、図１２の例では文書画像を回転させ、文書画像の分割方向を同じくしているが、文書画像の回転処理を行わず、Ｓ５０１とＳ５０３とでの文書画像の分割方向を、互いに直交する方法とするように処理しても構わない。
【００５１】
【発明の効果】
以上述べた通り、本発明によれば、文書画像の傾き角度の検出を、高精度で行うことが可能となる。特に、抽出された文書画像の中から、文字らしいものが含まれている部分を部分画像として複数個抽出し、抽出した各部分画像から傾き角度を求め、これらの傾き角度により文書画像の傾き角度を求めるようにしているため、傾き角度の検出をより高精度に行うことが可能である。
【００５２】
このため、ハンドヘルドスキャナにより任意の方向からスキャンして入力した文書画像の傾き角度を検出して、文書画像の傾きを自動的に正立補正することができるので、文書画像の傾き補正の操作性およびユーザインタフェースの改善に寄与するところが大きい。
【図面の簡単な説明】
【図１】  読み取られた文書画像の模式図と、本発明の一実施形態による文書画像傾き検出方法を図示した図面。
【図２】  本発明の一実施形態による文書画像傾き判別の処理手順を示したフローチャート。
【図３】  分割幅Ｗの算出の仕方を図示した図面。
【図４】  黒画素を含むラインが連続する領域を検出する手順を示したフローチャート。
【図５】  部分画像抽出手順を示したフローチャート。
【図６】  高さが低い領域や高い領域の例を図示する図面。
【図７】  黒画素率が高い高い領域や低い領域の例を図示する図面。
【図８】  空白領域が占める割合が高い領域の例を図示する図面。
【図９】  文書画像の傾きを算出する手順を示すフローチャート。
【図１０】部分領域の対角線と傾きとの関係を示す図面。
【図１１】縦書き文書画像から部分画像を抽出する例を説明する図面。
【図１２】縦横両方向について文書画像の傾きを検出する場合の手順を示すフローチャート。
【図１】
0003876531.tif 000003
【図２】
0003876531.tif 000004
【図３】
0003876531.tif 000005
【図４】
0003876531.tif 000006
【図５】
0003876531.tif 000007
【図６】
0003876531.tif 000008
【図７】
0003876531.tif 000009
【図８】
0003876531.tif 000010
【図９】
0003876531.tif 000011
【図１０】
0003876531.tif 000012
【図１１】
0003876531.tif 000013
【図１２】
0003876531.tif 000014