(57)【特許請求の範囲】
【請求項１】
文書画像データから画像の傾き検知を行う方法において、
前記文書画像データから複数の画素が連結した連結領域を抽出し、
該連結領域のうちの外矩が所定の大きさの連結領域の数がある閾値以上のとき傾き検知の信頼度が高いと判定し、
前記信頼度が高いと判定されたときのみ前記連結領域に基づいて傾き検知を行うことを特徴とする画像の傾き検知方法。
【請求項２】
文書画像データから画像の傾き検知を行う方法において、
前記文書画像データを複数の領域に分割し、
分割した各領域毎に複数の画素が連結した連結領域を抽出し、
分割した各領域毎に前記連結領域に基づいて傾き検知を行い、
該連結領域のうちの外矩が所定の大きさの連結領域の数がある閾値以上のとき傾き検知の信頼度が高いと判定し、
前記信頼度が高いと判定されたときのみ前記傾き検知の結果に基づいて文書画像の傾きを検知すること特徴とする画像の傾き検知方法。
【請求項３】
文書画像データから複数の画素が連結した連結領域を抽出する抽出手段と、
この抽出手段で抽出された前記連結領域のうちの外矩が所定の大きさの連結領域の数がある閾値以上のとき傾き検知の信頼度が高いと判定する信頼度判定手段と、
前記信頼度が高いと判定されたときのみ前記連結領域から文書画像の傾き検知を行う傾き検知手段とを具備することを特徴とする文書画像処理装置。
【請求項４】
文書画像データを複数の領域に分割する領域分割手段と、
この分割手段で分割された領域毎に前記文書画像データから複数の画素が連結した連結領域を抽出する抽出手段と、
前記分割された領域毎に前記連結領域から傾き検知を行う傾き検知手段と、
前記分割された領域毎に前記連結領域のうちの外矩が所定の大きさの連結領域の数がある閾値以上のとき傾き検知の信頼度が高いと判定する信頼度判定手段と、
前記信頼度が高いと判定されたときのみ前記傾き検知の結果に基づき文書画像の傾きを判定する傾き判定手段とを具備することを特徴とする文書画像処理装置。
【請求項５】
前記領域分割手段は、前記文書画像データを画像の長手方向に２分割することを特徴とする請求項３または４のいずれか１項記載の文書画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル複写機、スキャナのような文書画像入力装置および文書画像ファイリング装置といった文書画像処理装置に係り、特に画像の傾き検知に関する。
【０００２】
【従来の技術】
例えば、原稿上の文書画像を読み取って画像データを得る際に、読み取り部と文書画像とが相対的に傾いていると、得られた画像データを処理する際に様々な不都合が生じる。従って、このような文書画像の傾きを検知し、それに基づいて傾き補正などを行う必要がある。
【０００３】
従来の文書画像に対する傾き検知技術は、ＯＣＲ（文字読取装置）への応用が主であるため、文字領域の割合が比較的多く、ある閾値で二値化された文書画像を扱うことが多い。すなわち、従来の傾き検知では、一般に文字列の傾きを基に文書画像の傾きを検知しており、文字量が少ない文書画像に対しては誤りが生じやすい。
【０００４】
従って、複写機などで入力される多種多様の原稿上の文書画像や、二値画像であっても誤差拡散などの処理が施されている文書画像に対しては、従来の傾き検知技術をそのまま適用すると、誤検知を生じる可能性が大きい。
【０００５】
また、傾き検知結果に基づく傾き補正処理は、一般的に文書画像に対する回転処理によって行われるが、高解像度の文書画像に対しては回転処理に要する計算コストが大きくなるという問題がある。
【０００６】
画像を高速に回転させる手法として、回転行列を２つの斜交軸変換に分解する手法がある。しかし、この回転処理をランレングス符号化された画像（ラン画像という）に対して行う際には、通常、二度にわたるラン記述方向の変換処理が必要となる。特に、誤差拡散処理されたラン画像ではラン数が莫大となるため、ラン記述方向の変換を高速に行うことは困難となる。
【０００７】
さらに、画像の回転処理には、回転後処理後に周辺部のトリミングを行う必要があるため、文書内容の一部が欠落してしまうという問題もある。
【０００８】
【発明が解決しようとする課題】
上述したように、従来の文書画像に対する傾き検知技術では、文字領域が比較的多く、二値化された文書画像を扱うことが多いため、多種多様の文書画像や、二値画像であっても誤差拡散などの処理が施されている文書画像に対しては、誤検知を生じ易いという問題点があった。
【０００９】
一方、従来の傾き補正技術では、文書画像に対する回転処理によって傾き補正を行うため、高解像度の文書画像に対しては回転処理に要する計算コストが大きくなり、また回転処理のために回転行列を２つの斜交軸変換に分解する手法をラン画像に適用すると２度のラン記述方向の変換処理が必要となる。特に、誤差拡散処理されたラン画像ではラン数が莫大となり、ラン記述方向の変換を高速に行うことは困難となる。
【００１０】
さらに、画像の回転処理には、回転後処理後に周辺部のトリミングを行う必要があるため、文書内容の一部が欠落してしまうことも問題であった。
【００１１】
本発明は、このような従来の問題点を解決するためになされたものであって、画像要素が主である文書、レイアウトが複雑な文書、文書の左右・上下部で文書の傾きが異なる文書、誤差拡散処理された文書といった多種多様な文書画像を対象に、安定な傾き検知を行う方法及びこれを用いた文書画像処理装置を提供することを目的とする。
【００１２】
また、傾き補正の際に従来のラン画像の回転処理で必要であったラン記述方向の変換を行うことなく高速な画像回転により傾き補正を行う方法及びこれを用いた文書画像処理装置を提供することを目的とする。
【００１３】
さらに、回転処理時に生じる文書内容の欠落を防ぐことができる傾き補正を行う方法及びこれを用いた文書画像処理装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記の課題を解決するため、本発明では以下のようにして傾き検知、余白検知及び傾き補正を行うことを特徴とする。
【００１５】
（１）文書画像データから画像の傾き検知を行う際、文書画像データから複数の画素（特に黒画素）が連結した連結領域を抽出し、該連結領域のうちの外矩が所定の大きさの連結領域の数から傾き検知の信頼度を判定し、該信頼度が高いときのみ連結領域から傾き検知を行う。
【００１６】
複数の画素が連結した連結領域のうち、その外矩（外接矩形）の大きさが文字の大きさに近い連結領域は文字らしき領域とみなすことができ、このような連結領域の数は、文字らしき領域の数に相当するので、傾き検知の信頼度として用いることができる。すなわち、このような連結領域の数（文字らしき領域の数）が多ければ、文字が多い文書画像であると判断でき、傾き検知の信頼度が高いということになる。そこで、この信頼度が高いときのみ傾き検知を行うことにより、傾き検知の信頼性が向上し、誤検知による誤った傾き補正を未然に防止することが可能となる。
【００１７】
（２）文書画像データから画像の傾き検知を行う際、文書画像データを複数の領域（例えば、画像の長手方向の２つの領域）に分割し、分割した各領域毎に傾き検知を行う。
【００１８】
このようにすることにより、本の見開きや傾きが異なる文書が混在した文書画像データに対しても各領域での傾きを個別に検知し、これに基づいて領域毎に傾き補正を行うことができる。
【００１９】
（３）文書画像データから画像の傾き検知を行う際、文書画像データを複数の領域（例えば、画像の長手方向の２つの領域）に分割し、分割した各領域毎に複数の画素が連結した連結領域を抽出し、該連結領域のうちの外矩が所定の大きさの連結領域の数から、分割した各領域毎に傾き検知の信頼度を判定し、分割した各領域毎に連結領域に基づいて傾き検知を行い、これらの信頼度判定結果及び傾き検知結果に基づいて文書画像全体の傾きを判定する。
【００２０】
本の見開きや左右で傾きが異なる文書が混在した文書、あるいは図中心の文書に対しても、各領域での傾きを適切に求めて傾き検知の信頼性を向上することができ、さらには文書全体の傾き判定結果に基づいて傾き補正を行うか否かを決定すれば、誤った傾き補正を防止することが可能となる。
【００２１】
（４）文書画像データから画像の傾き検知を行う際、文書画像データを変換して得られた多値画像データからエッジ部分を抽出してエッジ画像データを生成し、該エッジ画像データから複数の画素が連結した連結領域を抽出し、該連結領域から傾き検知を行う。
【００２２】
例えば、誤差拡散画像の処理においては、誤差拡散画像データを一旦多値の縮小画像データに変換し、縮小多値画像に対してエッジ検出と２値化処理を施すことによって縮小エッジ画像を生成し、この縮小エッジ画像に対して傾き検知処理を行う。このようにして誤差拡散画像からきわだったエッジのみを取り出すことにより、文字と下地の分離や周囲のノイズ要素の除去を行って、正確な傾き検知を行うことができる。
【００２３】
（５）文書画像データから画像周辺部の余白検知を行う際、文書画像データを変換して得られた多値画像データからエッジ部分を抽出してエッジ画像データを生成し、該エッジ画像データから余白検知を行う。
【００２４】
これにより誤差拡散処理された画像に特有の網点ノイズや下地模様や周辺のノイズが存在する文書画像データに対しても、画像周辺部の余白の存在を検知することができる。
【００２５】
（６）文書画像データから画像の傾き補正を行う際、画像周辺部の余白部分を検知し、この余白部分の検知結果に基づき、余白部分の量に応じて文書画像データの画像中心を移動させて傾き補正を行う。
【００２６】
これにより、文書画像の元画像の大きさと補正画像の大きさを等しく保ちつつ傾き補正時に回転処理を行う際に発生する文書情報の欠落を防止するか、あるいは最小限に抑えることができる。
【００２７】
（７）ランレングス符号化によりデータ圧縮された文書画像データの元画像データを回転処理して傾きが補正された補正画像データを得る傾き補正に際して、元画像データの傾きに応じた分割数で元画像データの各行のランを分割し、分割されたランを補正画像データの各行に追加（複写・結合）する処理を行う。
【００２８】
本発明の対象分野はディジタル複写機などの文書画像入力装置あるいは文書画像ファイリング装置であり、入力される文書画像の傾きは小さいと仮定できるので、傾き補正処理の際のラン記述方向と直交する方向に対する斜交軸変換は、元画像の傾きに応じて各行のランを順序複写・結合することによって、ラン記述方向の変換を行うことなく高速に実現でき、また画像周囲の余白を検知し、画像中心を余白が存在する方向へと移動させることにより、画像周辺部のトリミングの際に生じる文書内容の欠落を防ぐことが可能となる。
【００２９】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１は、本発明の一実施形態に関わる文書画像処理装置のハードウェア構成を示している。
【００３０】
この文書画像処理装置は、全体の制御を司る制御部１０、文書画像を画像データとしてシステムに取り込むための画像入力部１１、取り込んだ文書画像データをシステムで保持しておくための画像メモリ部１２、取り込んだ文書画像データを画像データファイルとしてハードディスクなどの外部記憶媒体を利用して保存・格納するための画像記憶部１３、取り込んだ画像に対して後述する傾き検知や余白検知を初めとする様々な画像処理を行うための画像処理部１４、画像処理部１４での画像処理によって得られた文書画像データの状態を記憶するための文書画像状態記憶部１５、画像記憶部１３から呼び出した文書画像データに対し文書画像状態記憶部１５に格納された文書画像状態の情報に基づいて傾き補正などの補正を施す画像補正部１６、文書画像データを画像として出力するためのプリンタや表示装置などの画像出力部１７からなる。
【００３１】
画像出力部１７がプリンタである場合は、通常は補正後の文書画像データを出力し、また表示装置である場合は補正前及び補正後の文書画像データを適宜選択的に、あるいは並行して表示するようにしてもよい。
【００３２】
次に、画像処理部１４での文書画像に対する傾き検知と余白検知、画像補正部１６での傾き補正の実施形態について説明する。
【００３３】
（第１の実施形態）
まず、連結領域のうちで外矩が所定の大きさの連結領域の数による傾き検知信頼度を用いた傾き検知に関する第１の実施形態について、図２および図３を用いて説明する。図２は本実施形態における画像処理部１４内の傾き検知に関する構成を示すブロック図であり、図３はその処理手順を示すフローチャートである。
【００３４】
図２に示すように、画像処理部１４には連結領域抽出部２１と傾き検知部２２及び信頼度判定部２３が設けられている。連結領域抽出部２１では、文書画像データ中の連結領域、特に黒画素の連結領域を検知する。信頼度判定部２３では、連結領域抽出部２１で抽出された黒画素連結領域を用いて傾き検知部２２での傾き検知の信頼度を判定する。傾き検知部２２では、信頼度判定部２３で信頼度が高いと判定された場合のみ傾き検知を行い、傾き検知結果を出力する。
【００３５】
次に、図３を参照して傾き検知のさらに詳細な処理手順を説明すると、まず画像入力部１１で文書画像データを取り込み、画像メモリ部１２に格納する（ＳＴ１０１）。画像メモリ部１２に格納された文書画像データに対して、画像処理部１４において連結領域抽出部２１でラベリング処理を行い、黒画素連結領域を抽出する（ＳＴ１０２）。
【００３６】
ここで、抽出された黒画素連結領域に対する外矩（外接矩形）を求め、この外矩の大きさが文字の大きさに近い黒画素連結領域を文字らしき領域とし、その文字らしい領域の数、場合によっては数と位置の情報を文書画像状態記憶部１５に記憶する。
【００３７】
そして、文書画像状態記憶部１５に記憶された内容に従って信頼度判定部２３で信頼度判定を行う（ＳＴ１０３）。すなわち、傾き検知の対象となる領域内に存在する文字らしき領域（外矩が所定の大きさの連結領域）の数を傾き検知の信頼度として用い、傾き検知の信頼度を判定する。信頼度判定は、外矩が所定の大きさの連結領域の数がある閾値以上か否かにより行われ、閾値以上の場合は信頼度が高く、閾値に満たない場合は信頼度が低いとする。
【００３８】
こうして判定された信頼度が高いときには、傾き検知部２２で傾き検知を行い（ＳＴ１０５）、得られた傾きを文書の傾きとし、傾き検知の信頼度が低いときには、文書の傾きを不定として処理を終了する。
【００３９】
ステップＳＴ１０５での傾き検知の方法としては、例えば、特開昭６２−１４２７７号に開示されているように、黒画素連結領域の各成分の属性を複数の角度方向に投影して積分し、それぞれの角度方向に対応した周辺分布の中で、鋭さが最大であるものの角度を入力画像の傾きとする方法を用いることができる。
【００４０】
ステップＳＴ１０５で傾きを検知すると、これに基づき画像補正部１６において傾きの補正を行う（ＳＴ２０６）。画像の傾き補正処理は、例えば傾き検知により元画像の傾き角がα°と検出されたとすると、元画像を−α°だけ回転させることで実現できる。画像の回転処理手法としては、後述する第７の実施形態の説明中の（１）式に示される回転行列を用いて画像座標を変換する手法が一般に知られている。
【００４１】
このように本実施形態によると、傾き検知に対する信頼度を判定し、この信頼度が高いと判定されたときのみ傾き検知を行い、この傾き検知結果に基づき傾き補正を行うことにより、誤った角度で傾き補正を行ってしまうという失敗をなくすことができる。
【００４２】
（第２の実施形態）
次に、文書画像データを複数の領域に分割し、各分割領域毎に独立に傾きを求める傾き検知に関する第２の実施形態について、図４および図５を用いて説明する。図４は本実施形態における画像処理部１４内の傾き検知に関する構成を示すブロック図であり、図５はその処理手順を示すフローチャートである。
【００４３】
図４に示すように、画像処理部１４には領域分割部３１及び傾き検知部３２Ａ，３２Ｂが設けられており、領域分割部３１では入力された文書画像データを複数の領域、例えば文書画像の長手方向に並ぶ二つの領域Ａ，Ｂに分割し、傾き検知部３２Ａ，３２Ｂは各分割領域Ａ，Ｂ毎に傾き検知を行い、傾き検知結果を出力する。
【００４４】
図５を参照してさらに詳細な処理手順を説明すると、まず画像入力部１１で文書画像データを取り込み、画像メモリ部１２に格納する（ＳＴ２０１）。次に、取り込んだ文書画像データを画像処理部１４において領域分割部３１で画像の長手方向に２分割する（ＳＴ２０２）。ステップＳＴ２０２では、文書画像データの画像領域の幅と高さをそれぞれWIDTH，HEIGHTとすると、もしWIDTH≧HEIGHTであれば左右に２分割し、WIDTH＜HEIGHTであれば上下に２分割する。
【００４５】
次に、ステップＳＴ２０２で分割されたそれぞれの領域Ａ，Ｂに対して、画像処理部１４において傾き検知部３２Ａ，３２Ｂで独立に傾き検知を行い（ＳＴ２０３）、傾きが検知された場合は画像補正部１６において傾き補正を行う（ＳＴ２０４）。
【００４６】
本実施形態によると、例えば本の見開きや左右で傾きが異なる文書が混在した場合においても、複雑な領域分割を施すことなく、それぞれの分割領域での傾きを正しく求めることができ、求められた傾きに応じてそれぞれの領域毎に適切な傾き補正を施すことができる。
【００４７】
（第３の実施形態）
次に、文書画像データを長手方向に２分割し、各分割領域毎に独立に傾きを求め、その傾き検知結果と傾き検知の信頼度判定結果を用いて文書の傾きを決定して傾き補正を行う第３の実施形態について、図６および図７を用いて説明する。図６は本実施形態における画像処理部１４内の傾き検知に関する構成を示すブロック図であり、図７はその処理手順を示すフローチャートである。
【００４８】
図６に示されるように、本実施形態では画像処理部１４内に領域分割部４１及び傾き検知部４２Ａ，４２Ｂに加えて、信頼度判定部４３Ａ，４３Ｂ及び傾き判定部４４が設けられている。領域分割部４１では入力された文書画像データを文書画像の長手方向に分割された二つの領域Ａ，Ｂに分割し、傾き検知部４２Ａ，４２Ｂは各分割領域Ａ，Ｂ毎に傾き検知を行う。信頼度判定部４３Ａ，４３Ｂでは、各分割領域Ａ，Ｂ毎に傾き検知の信頼度を判定する。傾き判定部４４では、各分割領域Ａ，Ｂ毎の傾き検知結果及び信頼度判定結果から最終的な傾き判定を行う。
【００４９】
図７を参照してさらに詳細な処理手順を説明すると、まず画像入力部１１で文書画像データを取り込み、画像メモリ部１２に格納する（ＳＴ３０１）。次に、取り込んだ文書画像データを画像処理部１４において領域分割部４１で画像の長手方向に２分割する（ＳＴ３０２）。ステップＳＴ３０２では、文書画像データの画像領域の幅と高さをそれぞれWIDTH，HEIGHTとすると、もしWIDTH≧HEIGHTであれば左右に２分割し、WIDTH＜HEIGHTであれば上下に２分割する。これまでの処理は、図５と同様である。
【００５０】
続いて、二つの分割領域Ａ，Ｂに対して、画像処理部１４において傾き検知部４２Ａ，４２Ｂと信頼度判定部４３Ａ，４３Ｂで、独立に信頼度判定処理と傾き検知を行う（ＳＴ３０３，ＳＴ３０４）。ここで、傾き検知と信頼度判定の結果得られた分割領域Ａの傾きをSKEW_A、信頼度をRELIABILITY_A、分割領域Ｂの傾きをSKEW_B、信頼度をRELIABILITY_Bとする。信頼度は先と同様に、RELIABLE（信頼度が高い）か、UNRELIABLE（信頼度が低い）のいずれかの値を持つとする。
【００５１】
このような条件の下で得られた各領域の信頼度と傾き情報を用いて、以下のように文書の傾きを決定する（ＳＴ３０５）。すなわち、RELIABILITY_A＝RELIABILITY_B＝RELIABILEであり、かつSKEW_A＝SKEW_Bであれば、両分割領域Ａ，Ｂの傾きが等しいと判断し、SKEW＝(SKEW_A+SKEW_B)／２を文書全体としての傾きSKEWとして定め、傾き補正を行う（ＳＴ３０７）。
【００５２】
また、RELIABILITY_A＝RELIABILITY_B＝RELIABILEであり、SKEW_A！＝SKEW_Bであるときは、本の見開きなどのように上下、または左右で異なる傾きが生じていると判断し、文書全体としての傾き角SKEWは定めない。傾き補正を行う際は、各分割領域Ａ，Ｂ毎の傾きを独立に補正する。
【００５３】
さらに、RELIABILITY_A＝RELIABILE、かつRELIABILITY_B＝UNRELIABLEである場合には、文書全体の傾きをSKEW＝SKEW_Aとし、逆にRELIABILITY_A＝UNRELIABILE、かつRELIABILITY_B＝RELIABLEである場合には、文書全体の傾きをSKEW＝SKEW_Bとする。RELIABILITY_A，RELIABILITY_Bが共にUNRELIABILEである場合は、文書全体の傾きSKEWは不定と判断し、傾き補正を行わない。
【００５４】
こうして文書の傾きが決定された結果、文書の傾き補正が可能であれば（ＳＴ３０６）、画像補正部１６において傾き補正を行う（ＳＴ３０７）。
【００５５】
このように本実施形態によれば、２分割された領域Ａ，Ｂの傾き検知の信頼度と推定された傾き角の情報を用いることによって、本の見開きや左右で傾きが異なる文書が混在した文書や図中心の文書に対しても、各分割領域Ａ，Ｂでの傾きを適切に求めて傾き検知の信頼性を向上することができる。
さらに、文書全体の傾き判定結果に基づいて傾き補正を行うか否かを決定することにより、誤った傾き補正を防止することが可能となる。
【００５６】
（第４の実施形態）
次に、入力された文書画像データから縮小エッジ画像を生成し、この縮小エッジ画像に対して傾き検知を行う傾き検知に関する第４の実施形態について図８〜図１０を参照して説明する。図８は本実施形態における画像処理部１４内の傾き検知に関する構成を示すブロック図であり、図９はその処理手順を示すフローチャートである。
【００５７】
図８に示すように、本実施形態では画像処理部１４内にエッジ画像生成部５１と連結領域抽出部５２及び傾き検知部５３が設けられ、エッジ画像生成部５１で生成された縮小エッジ画像について連結領域抽出部５２で黒画素連結領域の抽出を行い、この黒画素連結領域から傾き検知部５３で傾き検知を行うように構成されている。
【００５８】
図９に示すフローチャートを用いてさらに詳細な処理手順を説明すると、まず画像入力部１１で高解像度の２値誤差拡散画像データを取り込み、画像メモリ部１２に格納する（ＳＴ４０１）。
次に、誤差拡散画像データに対する処理として、まず入力された誤差拡散画像データを画像処理部１４においてエッジ画像生成部５１で一旦多値の縮小画像データに変換し、縮小された多値画像データに対してエッジ抽出フィルタによるエッジ抽出及び２値化処理を施すことにより、縮小エッジ画像データを生成する（ＳＴ４０２）。生成された縮小エッジ画像データは、再び画像メモリ部１２に格納される。このように、元の誤差拡散画像からきわだったエッジのみを抽出することにより、文字と下地の分離や周囲のノイズ要素の除去を行うことができる。
【００５９】
エッジ抽出フィルタには、図１０（ａ）（ｂ）に示す差分オペレータを用い、ｘ方向、ｙ方向それぞれの差分オペレータ値の和の絶対値によって生成される画像をエッジ画像とする。ここで、エッジ抽出処理によって線分やノイズが太るのを防ぐため、下地→黒画素の変化点、黒画素→下地の変化点に存在する二種類のエッジのうち、差分の和が負となる黒画素→下地の変化点のエッジ部では、ｘ方向のオペレータについては左に、ｙ方向のオペレータについては上にそれぞれ１画素シフトした画素位置にオペレータの値を加えることとした。
【００６０】
引き続き、生成された縮小エッジ画像に対して、画像処理部１４において連結領域抽出部５２で連結領域抽出、傾き検知部５３で傾き検知を順次行い（ＳＴ４０３〜ＳＴ４０４）、文書画像の傾き角を得る。傾きが検知された場合には、傾き補正を行う（ＳＴ４０５）。
【００６１】
本実施形態によると、誤差拡散処理された画像に特有の網点ノイズや下地、周辺のノイズに影響されることなく、正確な傾き検知及びこれに基づく傾き補正を実現できる。
【００６２】
（第５の実施形態）
次に、文書画像周辺部の余白検知に関する第５の実施形態について、図１１及び図１２を参照して説明する。図１１は本実施形態における画像処理部１４内の余白検知に関する構成を示すブロック図であり、図１２はその処理手順を示すフローチャートである。
【００６３】
図１１に示すように、画像処理部１４内にエッジ画像生成部６１と連結領域抽出部６２及び余白検知部６３が設けられ、エッジ画像生成部６１で生成された縮小エッジ画像データについて、連結領域抽出部６２で黒画素連結領域の抽出を行い、この黒画素連結領域から余白検知部６３で余白検知を行うように構成されている。すなわち、余白の検知は下地や周辺部ノイズの影響が排除された縮小エッジ画像データに対して行われる。
【００６４】
図１２を参照して説明すると、画像入力部１１で高解像度の２値誤差拡散画像データを取り込み、画像メモリ部１２に格納する（ＳＴ５０１）。
次に、誤差拡散画像データに対する処理として、まず入力された誤差拡散画像データを画像処理部１４においてエッジ画像生成部６１で一旦多値の縮小画像データに変換し、縮小された多値画像データに対してエッジ抽出フィルタによるエッジ抽出及び２値化処理を施すことにより、縮小エッジ画像データを生成する（ＳＴ５０２）。生成された縮小エッジ画像データは、再び画像メモリ部１２に格納される。
【００６５】
このように元の誤差拡散画像データからきわだったエッジのみを抽出することにより、文字と下地の分離や周囲のノイズ要素の除去を行うことができる。この場合も、エッジ抽出フィルタには、図１０（ａ）（ｂ）に示す差分オペレータを用いればよい。
【００６６】
次に、生成された縮小エッジ画像データに対して、画像処理部１４において連結里領域抽出部６２で連結領域抽出を行う（ＳＴ５０３）。そして、画像処理部１４において余白検知部６３で画像周辺部に連結構成要素が存在しないかを調べることによって、余白検知を行う（ＳＴ５０４）。なお、余白検知部６３においては、縮小エッジ画像データの画像周辺部でのエッジによる黒画素量が閾値以下である場合に、余白があると判定する余白検知手法を用いてもよい。
【００６７】
このように本実施形態によれば、誤差拡散処理された画像に特有の網点ノイズや下地模様や周辺のノイズが存在する文書画像に対しても、画像周辺部の余白の存在を検知することができる。
【００６８】
（第６の実施形態）
次に、文書画像データの回転処理による傾き補正時に生じる文書情報の欠落を最小限に防ぐために、余白情報を用いての回転画像の移動に関する第６の実施形態について、図１３〜図１６を用いて説明する。図１３は本実施形態における画像処理部１４内の余白検知・傾き検知に関する構成を示すブロック図であり、図１４はその処理手順を示すフローチャートである。
【００６９】
図１３に示すように、本実施形態においては画像処理部１４内にエッジ画像生成部７１、連結領域抽出部７２、余白検知部７３及び傾き検知部７４が設けられており、エッジ画像生成部７１で生成された縮小エッジ画像データについて連結領域抽出７２で黒画素連結領域の抽出を行い、この黒画素連結領域から余白検知部７３による余白検知と傾き検知部７４による傾き検知を行うように構成されている。すなわち、余白検知及び傾き検知は、下地や周辺部ノイズの影響が排除された縮小エッジ画像データを基に行われる。そして、余白検知と傾き検知の結果は画像補正部１６に送られ、傾き補正に用いられる。
【００７０】
文書画像の傾き補正処理は、元画像の傾き角がα度と検出されたとすると、元画像を−α°だけ回転させることで実現できる。図１５に示すように、元画像の重心を回転中心として回転処理を行うとき、元画像の大きさと補正画像の大きさを等しく保つ際には、図１５の斜線を施した部分にはみ出しが生じる。このはみ出し部分に重要な文書情報が存在していた場合には、補正画像では元画像の一部の情報が欠落してしまうことになる。
【００７１】
このような欠落を防ぐためには、文書画像である元画像の周辺部の余白を検知し、余白が存在する場合には傾き補正のための回転処理を行った後、回転画像を余白が存在する方向へ移動させればよい。例えば、図１６のように元画像の左側に余白が存在し、右側に余白が存在しない場合は、回転画像を左に移動する。逆に、元画像の右側に余白が存在し、左側に余白が存在しない場合は、回転画像を右に移動する。
【００７２】
元画像の上下に余白が存在する場合も、同様である。すなわち、元画像の上側に余白が存在し、下側に余白が存在しない場合は、回転画像を上に移動する。元画像の下側に余白が存在し、上側に余白が存在しない場合は、回転画像を下に移動する。
【００７３】
図１４を用いて具体的な処理手順について説明すると、まず画像入力部１１で文書画像データを取り込み、画像メモリ部１２に格納する（ＳＴ６０１）。
本実施形態では第４、第５の実施形態と同様に、画像入力部１１で入力された文書画像データが誤差拡散処理されている場合を想定しており、誤差拡散画像データに対する処理として、まず入力された誤差拡散画像データを画像処理部１４においてエッジ画像生成部７１で一旦多値の縮小画像データに変換し、縮小された多値画像データに対してエッジ抽出フィルタによるエッジ抽出及び２値化処理を施すことにより、縮小エッジ画像データを生成する（ＳＴ６０２）。
【００７４】
生成された縮小エッジ画像データは、再び画像メモリ部１２に格納される。なお、入力された文書画像データは、誤差拡散画像データでない場合は適切な２値化処理がされているものとする。
【００７５】
次に、画像メモリ部１２に格納された画像データに対して、画像処理部１４において連結領域抽出部７２での黒画素連結領域の抽出、余白検知部７３での余白検知及び傾き検知部７４での傾き検知を行う（ＳＴ６０３〜ＳＴ６０５）。続いて、画像補正部１６において傾き補正処理を行い（ＳＴ６０６）、補正処理が終わった画像を一旦画像メモリ部１２に格納する。
【００７６】
ここで、ステップＳＴ６０４での余白検知とステップＳＴ６０５での傾き検知の結果、ステップＳＴ６０６の傾き補正の回転処理において回転画像の移動が必要かつ可能かを判定し（ＳＴ６０７）、回転画像の移動が必要かつ可能である場合にには、回転画像を移動させる（ＳＴ６０８）。これにより、元画像の余白部分に存在した文書情報の欠落を防ぐ。
【００７７】
このように本実施形態によれば、文書画像の元画像の大きさと補正画像の大きさを等しく保ちながら、傾き補正時に回転処理を行う際に発生していた文書情報の欠落を最小限に抑えることができる。
【００７８】
（第７の実施形態）
次に、比較的傾きの小さいラン画像形式で記述された文書画像データの傾き補正に関する第７の実施形態について、図１７〜図２２を参照して説明する。
【００７９】
ここでは、文書画像データの画像形式を２値のラン画像形式とする。ラン画像とはランの長さ（ランレングス）、つまり同一輝度の画素が例えば行方向（主走査方向）に連続する長さを順に記述することにより画像を表現する形式であり、２値のラン画像では黒画素、白画素のラン長で表現する。この場合、ラン画像のラン記述方向は主走査方向となる。以下、ラン画像フォーマットの例として、本実施形態で用いたラン画像フォーマットの詳細を示す。
【００８０】
本実施形態で用いたラン画像フォーマットは、「ラン保存部」と「行先頭記憶部」を持つ。ラン保存部では、元画像のラン長が白ラン、黒ラン、白ラン、…の順に、つまり白ランと黒ランのラン長が交互に記述される。ただし、各行の始まりは必ず白ランとし、黒画素から行が始まっている場合は、白ラン長として０が書き込まれる。
【００８１】
このようなラン保存部のみでは、画像の任意の領域にアクセスするために、毎回、画像の始めからランを展開する必要があり、効率が悪い。そこで、ラン保存部の他に、各行の先頭ランへのポインタを保存する行先頭記憶部を持つこととし、行先頭記憶部で各行の先頭ランまでの累積ラン数を保持する。
【００８２】
ラン画像フォーマットには、ここで述べた例の他に、現ランと前ランとのラン長の差を順に記述するもの、黒ランの開始位置とそのラン長を順に記述するものなどが存在するが、相互のフォーマット交換は容易であり、本実施形態で用いたラン画像フォーマットの採用によって、ラン画像全般に対する一般性が損なわれるものではない。
【００８３】
次に、傾き補正で用いる画像回転処理の手法について述べる。２次元画像の回転処理手法としては、画像を構成する各画素の座標を回転行列を用いて変換する手法が知られている。回転行列を（１）式に示す。
【００８４】
【数１】
0004146047.tif 000002
【００８５】
本発明による文書画像処理装置の主たる対象分野は、文書ファイリングシステムやディジタル複写機関連であり、扱われる文書画像の傾きは比較的小さいことが予想される。従って、文書画像に対する回転処理の回転角は微小であると仮定すると、（１）式の回転行列は以下に示す（２）式のように近似でき、２つのシフト演算に分解することができる。
【００８６】
【数２】
0004146047.tif 000003
【００８７】
ここで、斜交軸交換をラン画像に適用する際の問題について考える。一般に、ラン画像データではラン記述方向に対する画像操作は容易であるが、ラン記述方向に直交する方向に対する画像操作は困難である。
【００８８】
ラン画像に対してラン形式のままで画像の回転を行った例として、文献（１）嶋芳博、柏丘誠治、東野純一：“ランに対する座標変換に基づく２値画像の高速回転のための一手法”、電子情報通信学会論文誌Ｄ，ｖｏｌ．Ｊ７１−Ｄ，Ｎｏ．７，ｐｐ．１２９６−１３０５（１９８８）や、文献（２）東海林健二：“ｐｘｙ表にラン形式で格納された２値画像のアフィン変換アルゴリズム”、電子情報通信学会論文誌Ｄ−II，ｖｏｌ．Ｊ７７−Ｄ−II．Ｎｏ．９，ｐｐ．１７５３−１７６０（１９９４）、などが知られているが、これらは共に処理の過程でラン記述方向の変換を行っている。すなわち、１回目の斜交軸変換の後で、横ラン（主走査方向のラン）→縦ラン（副走査方向のラン）へのラン記述方向の変換を行い、さらに２回目の斜交軸変換の後で、縦ラン→横ランへのラン記述方向の変換を行う。
【００８９】
もし、これらのラン記述方向の変換が不要となれば、中間処理画像のための記憶領域の削減や、処理の高速化が実現できる。本発明では、ｙ方向へのシフト演算を回転角に応じてランを順次複写・結合することで実現することによって、ラン記述方向の変換を行うことなく画像の回転処理を可能としている。
【００９０】
以下、図１７のフローチャートを用いて処理の流れを述べる。画像入力部１１で入力画像データを取り込み、先に述べたラン画像形式で画像メモリ部１２に格納し（ＳＴ７０１）、このラン画像を対象に傾き検知を行う（ＳＴ７０２）。
【００９１】
次に、傾き検知結果に基づいてラン画像に対し傾き補正のための画像回転処理を行う。この画像回転処理は、式（２）に示す近似によって図２１に示すｘ方向（主走査方向）に対するシフト演算（ＳＴ７０３）と、ｙ方向（副走査方向）に対するシフト演算（ＳＴ７０４）に分割できる。
【００９２】
ここで、文書画像の左右上下に余白があるものとし、各行の先頭ランと最終ランは白ランであるとすると、ｘ方向のシフト演算は、図１８に示すようにラン画像の各行の先頭ランと最終ランのラン長を回転角に応じて変更することによって実現できる。すなわち、ステップＳＴ８０１では元画像の画像幅をwidthとし、１回目のシフト演算を経た後の画像幅（１回目のシフト演算を経た画像を囲む外矩の幅）をwidth2とすると、各行の先頭ラン長にはｙ座標に応じた値−ｙ×tanθを加え、最終ラン長にはwidth2−width＋ｙ×tanθを加えればよい。ステップＳＴ８０２で全ての行に対する処理が終了したと判断されるまで、ステップＳＴ８０１の処理を行う。
【００９３】
次に、ｙ方向に対するシフト演算について説明する。ｙ方向に対するシフト演算の処理手順を図１９に示し、説明図を図２２、図２３に示す。また、説明に用いる変数や配列を以下に示す。
【００９４】
・ＤＩＶ…画像幅のラン分割数（ランブロックの数）
ＤＩＶ＝abs(width×tanθ）＋１
・ｔｂｌ[ ]…ブロックの左端のｘ座標
・ｔｂｌ[DIV]…画像の幅，ｔｂｌ[k]＝ width×k/ＤＩＶ，０≦ｋ≦ＤＩＶ
・in_ctr[k]…入力画像ｋ行目から読み込まれたランの数を記憶
・rest_len[k]…入力画像ｋ行目から最後に読み込まれ、まだ書き込まれていないラン長を記憶
・ｓｕｍ…書き込みが終了したラン長の総和を記憶する変数
ｙ方向に対するシフト演算処理は、画像の回転角の正負によって処理が異なるため、まず図２２に示す回転角が正の場合のｙ方向に対するシフト演算処理について図１９及び図２０を参照して説明する。図２０は、画像処理部１４内のｙ方向に対するシフト演算に係る構成を示しており、ラン分割数算出部８１、ラン分割部８２及びラン複写・結合部８３からなる。
【００９５】
画像に対して傾き角θに相当する回転角が与えられると、ラン分割数（ランブロック数）ＤＩＶが算出される（ＳＴ９０１）。上に示したように、ラン分割数（ランブロック数）ＤＩＶは元画像の傾き角θに応じて算出され、θが大きいほどＤＩＶは多くなる。また、これと同時にブロック左端のＸ座標tbl[ ]が設定される。そして、このラン分割数ＤＩＶに従ってランを分割する（ＳＴ９０２）。
【００９６】
傾き補正された補正画像の生成は、元画像から補正画像を順次一行ずつ生成することによって行われ、補正画像の第ｉ行の生成はｊの初期値をｉとし、ｋの初期値を０として、１回のブロック処理毎にｊ←（ｊ−１），ｋ←（ｋ＋１）としながら、ｊが負、あるいはｋがＤＩＶと等しくなるまで、元画像の第ｊ行のｋブロックを順次補正画像データの第ｉ行に複写・結合することによって行われる（ＳＴ９０２）。このようなラン分割及びランの複写・結合をステップＳＴ９０３で全ての行に対する処理が終了したと判断されるまで行う。
【００９７】
次に、ステップＳＴ９０２のブロックの複写・結合処理について説明する。元画像の第ｋ行の第ｎブロックを構成するランは、２つのブロックに含まれるランの分割・合成処理を経た後、補正画像の第（ｋ＋ｎ）行の第ｎブロックに複写・結合される。ブロックの複写・結合処理は、以下に示す第（ｎ−１）ブロックと第ｎブロック間に位置するランの処理、中間部のランの複写処理、第ｎブロックと第（ｎ＋１）ブロック間に位置するランの処理に分けることができる。
【００９８】
・第（ｎ−１）ブロックと第ｎブロック間に位置するランの処理
もし、rest_len[k]が０ならば、新しい次のランを読み込んで、そのラン長を変数lenに代入し、rest_len[k]が０でないならば、変数lenにrest_len[k]を代入する。tbl[n]＋len＞tbl[n+1]ならば、rest_len[k]，lenの値をそれぞれrest_len[k]←len＋tbl[n]−tbl[n+1]、len←tbl[n+1]−tbl[n]のように更新する。  その後、前のブロックの終わりの色と現在のブロックの始まりの色が等しいとき（in_ctr[k+1]％２とin_ctr[k]％２の値が等しいとき）は、最後に書き込んだラン長をlenだけ増加させ、前のブロックの終わりの色と現在のブロックの始まりの色が異なるとき（in_ctr[k+1]％２とin_ctr[k]％２が異なるとき）は、新しいラン長lenのランを書き込み、第ｎブロックの複写・結合処理を終了する。
sum＋len＜tbl[n+1]の場合は、変数sumの値をsum←sum+lenのように更新し、先と同様に、in_ctr[k+1]％２とin_ctr[k]％２の値が等しいかどうかに応じて、最終ランのラン長をlenだけ増加させるか、あるいは新しいラン長lenのランを書き込む。この後、次のランを読み込み、そのラン長を変数lenに代入する。
【００９９】
・中間ランの処理
中間ランの処理で、（書き込みが終了したラン長の総和）＜tbl[n+1]が成り立つ間、入力画像からのランの読み込み、補正画像へのランの書き込み、変数sumの更新（sum←(sum+len)）を繰り返すことによって、ブロック内のランの複写を行う。そして、（書き込みが終了したラン長の総和）≧tbl[n+1]となったとき処理を終了し、次のｎブロックと（ｎ＋１）ブロック間に位置するランの処理へと移る。
【０１００】
・第ｎブロックと第（ｎ＋１）ブロック間に位置するランの処理
最後の第ｎブロックと第（ｎ＋１）ブロック間に位置するランの処理では、rest_len[k]，lenの値をそれぞれrest_len[k]←sum＋len−tbl[n+1]、len←tbl[n+1]−sumのように更新し、ラン長lenのランを書き込む。
【０１０１】
次に、図２３に示す回転角が負の場合のｙ方向に対するシフト演算について述べる。
【０１０２】
回転角が正の場合、補正画像の生成の際、第ｋブロックの方が第（ｋ＋１）ブロックよりも先に処理される。従って、読み込んだラン数をin_ctrに保存し、その続きから読み込みを開始することにより、第ｋブロック以前のブロックの読み込みの重複は生じない。先に述べたラン画像フォーマットにおいて、処理を効率的に行うためには、ランの読み込みの重複を無くし、連続した書き出しを行うことが重要である。
【０１０３】
ところが、回転角が負の場合では、画像を上から順に生成すると第ｋブロックよりも、（ｋ＋１）ブロックの方が先に処理されることとなる。しかし、（ｋ＋１）ブロックの処理を行うためには、結局０〜第ｋブロックのランを展開する必要があるため、ランの読み込みの重複が生じるという問題が発生する。
【０１０４】
そこで、回転角（傾き補正角度）が正か負かを調べ（ＳＴ７０５）、回転角が正の場合は処理を終了するが、回転角が負の場合は、画像を下から上へと生成して、一旦上下の反転した処理画像を生成する。これによりランの読み出しの重複を防ぎ、連続した画像の書き出しが実現される。その後、この上下の反転した処理画像に対して上下方向の反転処理を行い（ＳＴ７０６）、最終的な回転画像を得る。
【０１０５】
このように本実施形態の傾き補正方法によれば、ラン記述方向の変換を必要としないため、高速な傾き補正を行うことが可能である。
【０１０６】
本発明に基づく傾き検知は、傾き補正にのみ適用されるものではなく、単にユーザに対して傾きの存在を警告するような用途にも使用することができる。余白検知についても、傾き補正のための回転処理にのみ適用されるものではなく、単に余白部分をユーザに知らせるような用途に用いることもできる。
【０１０７】
その他、本発明は種々の変形実施が可能であり、例えば幾つかの実施形態で説明した技術を適宜組み合わせて実施することもできる。
【０１０８】
【発明の効果】
以上説明したように、本発明によれば以下の効果を奏する。
（１）傾き検知に対する信頼度を求め、この信頼度を用いて傾き検知を行って傾き補正を行うべきかを制御することにより、誤った角度で補正を行ってしまうという失敗をなくすことができる。
【０１０９】
（２）本の見開きや左右で傾きが異なる文書が混在した場合においても、複雑な領域分割を施すことなく、それぞれの分割領域での傾きを求めることができ、求められた傾きに応じて、それぞれの領域に補正をかけることができる。
【０１１０】
（３）２分割された領域それぞれの傾き検知の信頼度と傾き検知結果を用いることによって、より信頼性の高い傾き検知を行うことができる。
【０１１１】
（４）誤差拡散処理された文書画像データに対しても、このような誤差拡散処理された画像データに特有の網点ノイズや下地、周辺のノイズに影響されることなく、正確な傾き検知が実現できる。
【０１１２】
（５）誤差拡散処理された画像データに特有の網点ノイズや下地模様や周辺のノイズが存在する文書画像データに対しても、画像周辺部の余白の存在を検知することができる。
【０１１３】
（６）さらに、このようにして検知された余白の情報を用いることで、傾き補正時や回転処理時に発生していた文書情報の欠落を最小限に抑えた回転処理による傾き補正を行うことができる。
【０１１４】
（７）ラン画像を対象として画像の傾き補正のための回転処理を行う場合、ラン記述方向の変換を必要としないため、高速な傾き補正を行うことができる。
【図面の簡単な説明】
【図１】本発明に係る文書画像処理装置の概略構成を示すブロック図
【図２】第１の実施形態に係る要部の構成を示すブロック図
【図３】第１の実施形態に係る処理手順を示すフローチャート
【図４】第２の実施形態に係る要部の構成を示すブロック図
【図５】第２の実施形態に係る処理手順を示すフローチャート
【図６】第３の実施形態に係る要部の構成を示すブロック図
【図７】第３の実施形態に係る処理手順を示すフローチャート
【図８】第４の実施形態に係る要部の構成を示すブロック図
【図９】第４の実施形態に係る処理手順を示すフローチャート
【図１０】第４の実施形態で用いるｘ，ｙ方向に対する差分オペレータの説明図
【図１１】第５の実施形態に係る要部の構成を示すブロック図
【図１２】第５の実施形態に係る処理手順を示すフローチャート
【図１３】第６の実施形態に係る要部の構成を示すブロック図
【図１４】第６の実施形態に係る処理手順を示すフローチャート
【図１５】第６の実施形態を説明するための傾き補正による文書欠落部の説明図
【図１６】第６の実施形態を説明するための余白検知と回転画像配置の移動を用いた傾き補正の説明図
【図１７】第７の実施形態に係る傾き補正に係る全体の処理手順を示すフローチャート
【図１８】図１７におけるｘ方向に対するシフト演算の処理手順を示すフローチャート
【図１９】図１７におけるｙ方向に対するシフト演算の処理手順を示すフローチャート
【図２０】第７の実施形態に係る要部の構成を示すブロック図
【図２１】第７の実施形態を説明するためのｘ，ｙ方向のシフト演算による画像回転処理の説明図
【図２２】第７の実施形態を説明するための画像回転角が正の場合のランブロックの複写・結合の説明図
【図２３】第７の実施形態を説明するための画像回転角が負の場合のランブロックの複写・結合の説明図
【符号の説明】
１０…制御部              １１…画像入力部
１２…画像メモリ部        １３…画像記憶部
１４…画像処理部          １５…文書状態記憶部
１６…画像補正部          １７…出力部
２１…連結領域抽出部        ２２…傾き検知部
２３…信頼度判定部          ３１…領域分割部
３２Ａ，３２Ｂ…傾き検知部  ４１…領域分割部
４２Ａ，４２Ｂ…傾き検知部  ４３Ａ，４３Ｂ…信頼度判定部
４４…傾き判定部            ５１…エッジ画像生成部
５２…連結領域抽出部        ５３…傾き検知部
６１…エッジ画像生成部      ６２…連結領域抽出部
６３…余白検知部            ７１…エッジ画像生成部
７２…連結領域抽出部        ７３…余白検知部
７４…傾き検知部            ８１…ラン分割数算出部
８２…ラン分割部            ８３…ラン複写・結合部
【図１】
0004146047.tif 000004
【図２】
0004146047.tif 000005
【図３】
0004146047.tif 000006
【図４】
0004146047.tif 000007
【図５】
0004146047.tif 000008
【図６】
0004146047.tif 000009
【図７】
0004146047.tif 000010
【図８】
0004146047.tif 000011
【図９】
0004146047.tif 000012
【図１０】
0004146047.tif 000013
【図１１】
0004146047.tif 000014
【図１２】
0004146047.tif 000015
【図１３】
0004146047.tif 000016
【図１４】
0004146047.tif 000017
【図１５】
0004146047.tif 000018
【図１６】
0004146047.tif 000019
【図１７】
0004146047.tif 000020
【図１８】
0004146047.tif 000021
【図１９】
0004146047.tif 000022
【図２０】
0004146047.tif 000023
【図２１】
0004146047.tif 000024
【図２２】
0004146047.tif 000025
【図２３】
0004146047.tif 000026