(57)【要約】【課題】表の罫線に関する情報を正しく抽出する。【解決手段】文書画像から表領域を抽出し、抽出された表領域内部の白画素塊の境界近傍において２方向のエッジを求め、該２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、部分罫線情報を取得し、前記取得した部分罫線情報に基づいて、表領域の罫線情報を取得する。更に、表罫線の角が曲線である場合は、その曲線の曲率半径を求める。【選択図】　　　図３
2004086436.tif 000002
【特許請求の範囲】
【請求項１】
２値画像データから表領域を抽出する領域抽出手段と、
前記抽出された表領域内部の白画素塊の境界近傍において２方向のエッジを求め、該２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、部分罫線情報を取得する部分罫線情報取得手段と、
前記部分罫線情報に基づいて、前記表領域の罫線情報を取得する罫線情報取得手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理手段をさらに備えたことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記罫線情報取得手段は、前記部分罫線情報取得手段で取得した部分罫線情報に含まれる該部分罫線の位置情報を、隣接する部分罫線の部分罫線情報に基づいて補正し、当該補正された部分罫線情報に基づいて、前記表領域の罫線情報を取得することを特徴とする請求項１または２のいずれかに記載の画像処理装置。
【請求項４】
前記罫線情報取得手段は、前記部分罫線情報取得手段で取得した部分罫線情報に含まれる太さ情報をグループ化して、各グループの代表値を決定し、該部分罫線情報に含まれる太さ情報を該代表値に基づいて補正し、当該補正された部分罫線情報に基づいて、前記表領域の罫線情報を取得することを特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
前記罫線情報取得手段は、前記部分罫線情報に含まれる太さ情報が等しく、且つ同一直線上の位置に存在する部分罫線を統合して、前記表領域の罫線情報を取得することを特徴とする請求項１乃至４のいずれかに記載の画像処理装置。
【請求項６】
前記部分罫線情報取得手段は、前記２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、該部分罫線が、通常の部分罫線であるか、２重罫線であるか、文字などが接触した部分罫線であるか、の少なくともいずれかとして判別し、該判別結果を前記部分罫線情報として取得することを特徴とする請求項１乃至５のいずれかに記載の画像処理装置。
【請求項７】
前記領域抽出手段は、前記２値画像データから黒画素塊を抽出し、前記黒画素塊が略四角形であって、かつ内部の白画素塊が整列良であったときに、前記黒画素塊を表領域と判定することを特徴とする請求項１乃至６のいずれかに記載の画像処理装置。
【請求項８】
前記罫線枠角部処理手段は、前記表領域内部の白画素隗に基づいて前記表を矩形領域とした場合の頂点を定め、該頂点から表領域内部に向かって傾きが略４５度の直線に沿って罫線を構成する黒画素を探索し、該探索された黒画素の位置に基づいて前記曲率半径を求めることを特徴とする請求項２に記載の画像処理装置。
【請求項９】
２値画像データから表領域を抽出する領域抽出ステップと、
前記抽出された表領域内部の白画素塊の境界近傍において２方向のエッジを求め、該２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、部分罫線情報を取得する部分罫線情報取得ステップと、
前記部分罫線情報に基づいて、前記表領域の罫線情報を取得する罫線情報取得ステップと、
を備えることを特徴とする画像処理方法。
【請求項１０】
２値画像データから表領域を抽出する領域抽出ステップと、
前記抽出された表領域内部の白画素塊の境界近傍において２方向のエッジを求め、該２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、部分罫線情報を取得する部分罫線情報取得ステップと、
前記部分罫線情報に基づいて、前記表領域の罫線情報を取得する罫線情報取得ステップと、
をコンピュータに実行させるためのプログラムコードを有する、コンピュータが実行可能なプログラム。
【請求項１１】
請求項１０に記載のプログラムが
格納されたコンピュータ読取可能な記憶媒体。
【請求項１２】
画像データから表領域を抽出する領域抽出手段と、
前記抽出された表領域の罫線情報を取得する罫線情報取得手段とを有する画像処理装置であって、
前記罫線情報取得手段は、罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理手段を含むことを特徴とする画像処理装置。
【請求項１３】
画像データから表領域を抽出する領域抽出ステップと、
前記抽出された表領域の罫線情報を取得する罫線情報取得ステップとを有する、画像処理装置を制御するための画像処理方法であって、
前記罫線情報取得ステップでは、罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理ステップを含むことを特徴とする画像処理方法。
【請求項１４】
画像データから表領域を抽出する領域抽出ステップと、
前記抽出された表領域の罫線情報を取得する罫線情報取得ステップとをコンピュータに実行させるためのプログラムコードを有する、コンピュータが実行可能なプログラムであって、
前記罫線情報取得ステップでは、罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理ステップを含むことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は画像処理装置および画像処理方法、プログラムおよび記憶媒体に関するものである。
【０００２】
【従来の技術】
近年、情報の電子化が進み、紙文書と電子化文書を相互に変換する需要が高まっている。紙文書を電子化する際には、スキャナなどにより画像を光電変換して画素データ化するだけでなく、記載内容毎に領域分割し、記載内容に最適の形態でデータ化することが望ましい。
【０００３】
領域分割に際しては、記載内容を認識し、テキスト領域、記号領域、図領域、写真領域、表領域等、性質の異なる領域毎に分割し、テキスト領域や記号領域は文字コード情報、図領域内の線データや表領域の表枠はベクトルデータ、写真領域は画素データ、表の内容は構造データ等にデータ化する。
【０００４】
表形式の文書は、その論理的内部構造が重要であることはいうまでもないが、罫線の形状は、意匠的効果やデータ構造の視覚的表現として大きな意味を持っており、それらの情報を忠実に抽出する必要性は高い。
【０００５】
また、紙データを参考に帳票文書を電子的に作成する際、あらかじめ紙面の表情報を忠実にデータ化できれば、文書作成の手間を大きく軽減することができる。
【０００６】
領域分割処理に関しては、例えばＵＳＰ５６８０４７８号公報記載の処理が提案されており、文書画像中の黒画素塊、白画素塊の集合を抽出し、その形状、大きさ、集合状態等から、文字、絵や図、表、枠、線といった特徴的な領域を抽出している。
【０００７】
また領域分割処理を使わずに、画像からランレングス等を用いて原始的な線情報を抽出する方法も存在する。
【０００８】
【発明が解決しようとする課題】
しかし、ＵＳＰ５６８０４７８号公報記載の領域分割処理は、表領域及び論理的内部構造は認識するものの、表罫線の線の太さや属性等、意匠的効果やデータ構造の視覚的表現に関する情報は抽出できなかった。
【０００９】
特に、処理の高速化のために、処理対象画像を縮小して領域分割することがあり、処理結果を実サイズに戻す際に、座標値に量子化誤差が生じる。
【００１０】
またランレングス等による線情報の抽出では、線の集合のデータが得られるのみであり、論理的内部構造の情報等は得られず、文字や図など、表以外の情報が混在している画像では、罫線部分を正しく抽出できず、抽出された情報には誤りが多く含まれる。
【００１１】
本発明は、このような従来の問題点を解消すべく創案されたもので、表、文字、画像などが混在する画像から、表の罫線に関する情報を正しく抽出することを目的とする。
【００１２】
【課題を解決するための手段】
本発明に係る画像処理装置は、２値画像データから表領域を抽出する領域抽出手段と、前記抽出された表領域内部の白画素塊の境界近傍において２方向のエッジを求め、該２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、部分罫線情報を取得する部分罫線情報取得手段と、前記部分罫線情報に基づいて、前記表領域の罫線情報を取得する罫線情報取得手段とを備える。これによって表の罫線に関する情報を正しく抽出し得る。
【００１３】
本発明に係る画像処理装置は、罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理手段をさらに備えることにより、表の意匠的表現力を高め得る。
【００１４】
本発明に係る画像処理装置において、前記罫線情報取得手段は、前記部分罫線情報取得手段で取得した部分罫線情報に含まれる該部分罫線の位置情報を、隣接する部分罫線の部分罫線情報に基づいて補正し、当該補正された部分罫線情報に基づいて、前記表領域の罫線情報を取得するものであってもよい。これによって表の部分罫線情報を正確に抽出でき、意匠的表現力をさらに高め得る。
【００１５】
本発明に係る画像処理装置において、前記罫線情報取得手段は、前記部分罫線情報取得手段で取得した部分罫線情報に含まれる太さ情報をグループ化して、各グループの代表値を決定し、該部分罫線情報に含まれる太さ情報を該代表値に基づいて補正し、当該補正された部分罫線情報に基づいて、前記表領域の罫線情報を取得するものであってもよい。これによって表の部分罫線情報を正確に抽出でき、意匠的表現力を更に高め得る。
【００１６】
本発明に係る画像処理装置において、前記罫線情報取得手段は、前記部分罫線情報に含まれる太さ情報が等しく、且つ同一直線上の位置に存在する部分罫線を統合して、前記表領域の罫線情報を取得するものであってもよい。これによって表の部分罫線情報を正確に抽出でき、意匠的表現力を更に高め得る。
本発明に係る画像処理装置において、前記部分罫線情報取得手段は、前記２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、該部分罫線が、通常の部分罫線であるか、２重罫線であるか、文字などが接触した部分罫線であるか、の少なくともいずれかとして判別し、該判別結果を前記部分罫線情報として取得するものであってもよい。
【００１７】
本発明に係る画像処理装置において、前記領域抽出手段は、前記２値画像データから黒画素塊を抽出し、前記黒画素塊が略四角形であって、かつ内部の白画素塊が整列良であったときに、前記黒画素塊を表領域と判定するものであってもよい。これによって、表領域を正確に抽出し得る。
【００１８】
本発明に係る画像処理装置において、前記罫線枠角部処理手段は、前記表領域内部の白画素隗に基づいて前記表を矩形領域とした場合の頂点を定め、該頂点から表領域内部に向かって傾きが略４５度の直線に沿って罫線を構成する黒画素を探索し、該探索された黒画素の位置に基づいて前記曲率半径を求めるものであってもよい。これによって、デジタル画像における曲率半径を容易に求めることが可能である。
【００１９】
本発明に係る画像処理方法は、２値画像データから表領域を抽出する領域抽出ステップと、前記抽出された表領域内部の白画素塊の境界近傍において２方向のエッジを求め、該２方向のエッジそれぞれから求めたエッジヒストグラムに基づいて、部分罫線情報を取得する部分罫線情報取得ステップと、前記部分罫線情報に基づいて、前記表領域の罫線情報を取得する罫線情報取得ステップとを備える。これによって、表の罫線に関する情報を正しく抽出し得る。
また、本発明に係る画像処理装置は、画像データから表領域を抽出する領域抽出手段と、前記抽出された表領域の罫線情報を取得する罫線情報取得手段とを有する画像処理装置であって、前記罫線情報取得手段は、罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理手段を含むことを特徴とする。
本発明に係る画像処理方法は、画像データから表領域を抽出する領域抽出ステップと、前記抽出された表領域の罫線情報を取得する罫線情報取得ステップとを有する、画像処理装置を制御するための画像処理方法であって、前記罫線情報取得ステップでは、罫線枠角部が曲線であったとき、前記曲線の曲率半径を求める罫線枠角部処理ステップを含む。
【００２０】
【発明の実施の形態】
［画像処理装置］
次に本発明に係る画像処理装置の一実施形態を図面に基づいて説明する。
【００２１】
図１は、本発明に係る画像処理装置の一実施例構成を示すブロック図、図２は、図１の画像処理装置の装置構成例の図である。
【００２２】
図１において、画像処理装置１００は、用紙に記録された画像を光電変換し、画素データとして入力する入力部１０１と、画像データから表および枠領域を抽出する領域分割処理部１０２と、表領域内の罫線の位置や太さなどの詳細情報を抽出する表罫線抽出部１０３と、表罫線の情報を出力する出力部１０４とを備える。
【００２３】
図２において、画像処理装置１００の装置構成例においては、スキャナ装置２０１によって入力部の光電変換動作を実行し、コンピュータ装置２０４によって領域分割処理部１０２および表罫線抽出部１０３の処理を実行する。ユーザはキーボード・マウスなどの入力装置２０３によって画像処理装置１００の動作を制御する。なお、本実施形態では入力部としてスキャナ装置２０１を用いるものとするが、この入力部１０１は領域分割処理部１０２に画像データを入力するものであればどのようなものでもよく、例えば、ネットワークを介して接続された情報処理装置から画像データが送信されるものとしてもよい。
【００２４】
画像処理装置１００は、表罫線抽出部１０３で抽出した詳細情報を画像処理装置内部のメモリ（不図示）に出力して格納させる。出力部１０４はこの内部メモリに相当するものとするが、出力部１０４としてディスプレイ装置２０４およびプリンタ装置２０５を含むようにしてもよく、表罫線の情報は画面表示されたり、用紙に出力されたりする。
【００２５】
［画像処理方法］
次に本発明に係る画像処理方法の一実施形態を図面に基づいて説明する。
【００２６】
図３は、図１の画像処理装置で実行される画像処理方法の一実施形態を示すフローチャート、図４は、図３の画像処理方法における領域分割処理Ｓ３０２の詳細を示すフローチャート、図５は、図３の画像処理方法における罫線抽出処理Ｓ３０３の詳細を示すフローチャート、図６は、図１の画像処理装置に入力される画像の例を示す図、図７は、図４の領域分割処理による属性毎の領域分類の例を示す図、図８は、８連結の黒画素塊の例を示す図、図９は、４連結の白画素塊の例を示す図、図１０は、四角形の黒画素塊とそれ以外の黒画素塊の例を示す図、図１１は、黒画素塊内部の白画素塊の整列状態例を示す図、図１２は、表の論理的内部構造の抽出例を示す図、図１３は、表内の部分罫線に対する左右エッジのピークの例を示す図、図１４は、仰角４５度の接線位置と半径の関係を示す図、図１５は、罫線補正処理の例を示す図、図１６は、罫線の論理位置の例を示す図、図１７は、図４の領域分割処理による属性毎の領域分類の他の例を示す図である。
【００２７】
図１の画像処理装置で実行される画像処理方法は以下のステップを含む。
【００２８】
ステップＳ３０１：紙文書をスキャンして、該用紙に記載されている画像から電子的な２値画像を得る。なお、スキャナ２０１で紙文書を多値（グレイスケールあるいはフルカラー）でスキャンして２値化の処理まで実行するようにしてもよいし、あるいは、スキャナ２０１で紙文書を多値でスキャンし、これをコンピュータ装置２０４において２値化するようにしてもよい。
【００２９】
ステップＳ３０２：領域分割処理部１０２において領域分割処理を実行する。領域分割処理は、例えば、図１７における文字、図、表を含む画像１７Ａを、文字領域Ｃ１７−１、Ｃ１７−２、Ｃ１７−３、Ｃ１７−４、図領域Ｐ１７、表領域Ｔ１７、線領域Ｌ１７の各領域に分割する。本実施形態では、この領域分割処理で得られた領域のうち表領域Ｔ１７を特に注目し、該表領域に対して行われる処理について述べることとする。なお、領域分割処理の詳細については、図４のフローチャートを用いて後述する。
【００３０】
ステップＳ３０３：表領域は罫線で囲まれた白画素隗の領域（「行列」という。）を含み、ここでは各行列（白画素隗領域）を囲む各罫線を部分罫線ということとする。ステップＳ３０３では、部分罫線を抽出し、その位置、太さを特定する。ステップＳ３０２の領域分割処理で複数の表領域が抽出された場合、各表領域について部分罫線の抽出、特定を実行する。部分罫線の処理では、図１３（Ａ）の部分罫線、（Ｂ）の上下罫線に接触した文字、（Ｃ）の２重罫線、（Ｄ）の文字が接触した部分罫線が抽出される。部分罫線の処理については、図５のフローチャートを用いて後述する。
【００３１】
ステップＳ３０４：行列を囲む罫線枠の角部が曲線状であったとき、その曲率半径を検出する。例えば、図１４に示すような罫線枠の角部につき、その曲率半径ｒを式１４０１（図１４参照：ｒ＝ｎ／（２−（２＾（１／２））））により算出する。表罫線抽出処理部で抽出された表罫線情報に基づき出力する画像において曲率半径ｒを正確に再現すれば、表の意匠的効果やデータ構造の視覚的表現が再現され、画像の説得力が高まる。曲率半径ｒを求める処理については後述する。
【００３２】
ステップＳ３０５：図１５は文字が接触した部分罫線であり、２重罫線と誤認識される。このような誤認識を修正するため、隣合う部分罫線の位置を参照して、部分罫線の情報を補正する。部分罫線補正の処理については後述する。
【００３３】
ステップＳ３０６：図１６に示すように、３行３列の表は部分罫線が水平、垂直方向に直列する。この直列状態を検出すれば、全体の行列の罫線が直線で表現されるように、部分罫線を統合し得る。これによって表の意匠的表現力を高め得る。部分罫線の統合処理については後述する。
【００３４】
ステップＳ３０７：ステップＳ３０２〜Ｓ３０６の処理に基づき、罫線位置、太さ、内部論理構造、角部曲率半径に加え、統合された罫線の始点、終点の情報を含む罫線情報を出力する。例えば、図１６の３行３列の表の最上辺の罫線において、始点、終点の情報は、線の交点に割り当てた論理位置を用いて［０，０］−［３，０］と表現される。
【００３５】
以上の処理により、表、文字、画像などが混在する画像から、表の罫線に関する情報を正しく抽出し得る。
【００３６】
図４において、ステップＳ３０２における領域分割処理は以下のステップにより実行される。なお解像度の高い画像に対しては、処理の高速化のため、画像に縮小処理を施してから領域分割処理をおこなうことが一般的である。領域分割処理終了後には、その出力領域情報の座標値を元の座標系に戻し、元のサイズにおける領域情報に復元する。ここでは、処理結果のうち、表あるいは枠の領域情報を利用することを想定し、文字や図など他属性の領域に対する処理の詳細な説明は省略する。
【００３７】
ステップＳ４０１：画像からすべての黒画素の８連結輪郭塊を抽出する。黒画素の８連結輪郭塊とは、図８に示すように、縦横斜めの少なくともいずれかで接触した黒画素の集合の輪郭（以下「黒画素塊」という。）のことである。なお、輪郭が黒画素であることが黒画素塊の条件であり、輪郭以外の内部がすべて白画素であっても、黒画素塊と呼ぶ。
【００３８】
ステップＳ４０２：全ての黒画素塊について高さ、幅を求め、所定の最大文字高さ、最大文字幅に基づく閾値と比較する。高さ、幅がこの閾値より小さい黒画素塊を文字要素と判断し、「ＣＨＡＲ」の符号を付す。「ＣＨＡＲ」の黒画素塊のうち近接したものをグループ化し、「ＴＥＸＴ」の符号を付す。なお文字の処理は本発明とは直接関係がないので説明を省略する。高さまたは幅が閾値以上の黒画素塊についてはステップＳ４０３に移行する。
【００３９】
ステップＳ４０３：黒画素塊は縦横比を求め、所定値以上の縦長または横長の黒画素塊については線と判定し、「ＬＩＮＥ」の符号を付す。縦長または横長でなかった黒画素塊についてはステップＳ４０４に移行する。
【００４０】
ステップＳ４０４：黒画素塊の輪郭に注目し、輪郭が細い斜めの線状であるとき、黒画素塊を斜線と判定し、ステップＳ４０３と同様、「ＬＩＮＥ」の符号を付す。輪郭が細い斜めの線状でないと判断した場合はステップＳ４０５に進む。
【００４１】
ステップＳ４０５：黒画素塊の輪郭形状が四角形かどうかを判定する。四角形であると判断したならばステップＳ４０６に移行し、四角形でないと判断した場合は、黒画素塊を図と判断して、「ＰＩＣＴＵＲＥ」の符号を付す。例えば、図１０において、（Ａ）の表の画像は四角形の黒画素塊と判断され、（Ｂ）の鳥の画像は四角形以外の黒画素塊と判断される。
【００４２】
ステップＳ４０６：黒画素塊の内部に存在する白画素の４連結塊を抽出する。白画素の４連結領域塊とは、図９に示すように、縦横のいずれか（斜め方向を除く）で接触した白画素の集合の輪郭（以下「白画素塊」という。）のことである。
【００４３】
ステップＳ４０７：ステップＳ４０６で抽出された白画素塊の整列良否を判定する。白画素塊の形状がほぼ四角形であり、かつ黒画素塊内をほぼ隙間無く埋めている場合、白画素塊の整列を良と判定する。内部白画素塊の整列が良い黒画素塊は表と判定し、「ＴＡＢＬＥ」の符号を付す。整列が良くない黒画素塊は図と判定し、「ＰＩＣＴＵＲＥ」の符号を付す。例えば、図１１において、（ａ）、（ｂ）の表は、内部白画素塊が整列良と判断され、「ＴＡＢＬＥ」の符号が付される。図１１（ｃ）の星形を含む領域は整列不良と判定され、「ＰＩＣＴＵＲＥ」の符号が付される。
【００４４】
例えば図６に示す、表、文字、図を含む画像を、ステップＳ４０２〜Ｓ４０７の処理により領域分割すれば、図７のデータが生成され、文字領域「ＴＥＸＴ」、図領域「ＰＩＣＴＵＲＥ」、表領域「ＴＡＢＬＥ」が抽出される。
【００４５】
ステップＳ４０８：以上の処理で領域分割された画像について、表領域「ＴＡＢＬＥ」の内部構造から行列情報を抽出する。すなわち、表領域内部の白画素塊を、表構造を論理的に表現できるような行列上へ仮想的に配置する。この行列は、表領域を水平、垂直の境界線で区切り、１個のセル（升目）内に２つ以上の白画素塊を存在させない。このように形成した表において、各セルに座標（ｘ，ｙ）を与える。ｘは行内位置、ｙは列内位置を示す。座標は各白画素塊が表構造を論理的に表現するとき、行列上の配置に対応する。前記水平方向の境界線のうち近接するものをグループ化し、グループ内で平均的位置に統合することにより、表の水平罫線の候補が抽出される。同様に、前記垂直方向の境界線のうち近接するものをグループ化し、グループ内で平均的位置に統合することにより、表の垂直罫線の候補が抽出される。
【００４６】
図１２において、図１２（ａ）は「ＴＡＢＬＥ」の符号が付された黒画素塊であり、内部に８個の白画素塊が存在する。図１２（ｂ）に示すように、これら白画素塊の外接四角形群は８個存在し、図１２（ｃ）に示すように、これら外接四角形の水平境界線を統合することにより水平罫線が生成される。同様に垂直方向の境界線を統合し、図１２（ｄ）に示すように、セルが決定される。各セルには座標（ｘ，ｙ）を与える。図１２（ｅ）は、白画素塊を行列にあてはめた状態を示す。
【００４７】
ステップＳ４０９：表領域の各白画素塊に対し、その内部に黒画素が存在するかどうか調べ、存在する場合は処理対象にその黒画素塊を追加する。
【００４８】
ステップＳ４１０：文書画像データ中に未処理の黒画素塊があればステップＳ４０２に戻り、全ての黒画素塊を処理し終えたところで、領域分割処理を終了する。
【００４９】
ステップＳ３０３における部分罫線抽出処理を、図５を用いて説明する（なお、図５は垂直方向罫線を抽出する場合である）。ここでは、表領域内に存在する白画素塊（行列）に注目し、その白画素隗の境界に部分罫線が存在すると仮定し、その正確な位置や太さの情報を求める。白画素塊の領域座標は、罫線と接触した文字やノイズなどにより、実際の罫線とずれている場合がある。
【００５０】
なお、元画像を縮小して領域分割処理をおこなった場合、求めた座標値が例えば４あるいは２の倍数に限定されているので、縮小なしの画像で以下の処理を行う必要がある。ステップＳ３０３の処理によって、正確な部分罫線情報が抽出できる。
【００５１】
ステップＳ５０１：白画素隗の外接矩形領域の境界線を初期の罫線位置候補とし、その境界線の近傍に所定幅×白画素塊高さの探索領域をとる。
ステップＳ５０２：探索領域内で、右方向エッジ（右に白画素が存在する黒画素）のヒストグラムと左方向エッジ（左に白画素が存在する黒画素）のヒストグラムを取得する。右方向エッジのヒストグラムとは、右に白画素が存在する黒画素のｘ座標値を抽出し、各ｘ座標値において右方向エッジの個数をカウントしたものである。左方向エッジのヒストグラムとは、左に白画素が存在する黒画素のｘ座標値を抽出し、各ｘ座標値において左方向エッジの個数をカウントしたものである。
【００５２】
ステップＳ５０３：右方向エッジのヒストグラムおよび左方向エッジのヒストグラムのピークを求め、ピーク数、座標値、ピーク値（回数）を求める。取得したピーク数（０〜ｋ）およびその座標値、ピーク値は記憶しておく。
【００５３】
なお最大値抽出を容易にするため、ヒストグラムに対し適宜フィルタを施してもよい。また、最大ピーク数は２以上の数で制限してもよい。本例では、左右方向それぞれのエッジで、最大２個のピークを取得するとして、左方向エッジのピーク数をＬｋとし、座標値、ピーク値をそれぞれ（Ｌｘ１，Ｌｐ１）、（Ｌｘ２，Ｌｐ２）とし、右方向エッジのピーク数をＲｋとし、座標値、ピーク値を（Ｒｘ１，Ｒｐ１）、（Ｒｘ２，Ｒｐ２）と表現する。なおＬｐ１＞Ｌｐ２、Ｒｐ１＞Ｒｐ２である。
【００５４】
さらに、探索領域の高さに対し所定の比率をなす値を閾値Ｔとし、閾値Ｔ以下のピークを無視したときのピーク数をＬｎ、Ｒｎとする。
【００５５】
図１３において、Ｌｎ、Ｒｎの組み合わせにより、探索領域の罫線の状態は（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）のように分類される。（Ａ）はＬｎ＝Ｒｎ＝１であり、部分罫線である。（Ｂ）はＬｎ＝Ｒｎ＝０であり、部分罫線は存在しない。（Ｃ）はＬｎ＝Ｒｎ＝２であり、２重罫線である。（Ｄ）はＬｎ＝０またはＲｎ＝０であり、文字が接触した部分罫線である。図１３の破線１３０１は探索領域を示す。
【００５６】
ステップＳ５０４：Ｌｎ＝Ｒｎ＝１か否か判断し、Ｌｎ＝Ｒｎ＝１ならばステップＳ５０５に移行し、それ以外ならばステップＳ５０８に移行する。
【００５７】
ステップＳ５０５：Ｌｘ１＜＝Ｒｘ１か否か判断し、Ｌｘ１＜＝Ｒｘ１ならばステップＳ５０６に移行する。
【００５８】
ステップＳ５０６：（Ｌｘ１＋Ｒｘ１）／２の位置に太さ（Ｒｘ１−Ｌｘ１＋１）の罫線が存在すると判定する。それ以外のときは、ステップＳ５０７に移行する。
【００５９】
ステップＳ５０７：罫線は存在しないと判定する。
【００６０】
ステップＳ５０８：Ｌｎ＝Ｒｎ＝０か否か判断し、Ｌｎ＝Ｒｎ＝０ならばステップＳ５０９に移行し、それ以外のときはステップＳ５０９に移行する。
【００６１】
ステップＳ５０９：Ｌｎ＝Ｒｎ＝２か否か判断し、Ｌｎ＝Ｒｎ＝２ならばステップＳ５１０に移行し、それ以外のときはステップＳ５１２に移行する。
【００６２】
ステップＳ５１０：Ｌｘ１＜＝Ｒｘ１＜Ｌｘ２＜＝Ｒｘ２か、Ｌｘ１＜＝Ｒｘ２＜Ｌｘ２＜Ｒｘ１か、Ｌｘ２＜＝Ｒｘ１＜Ｌｘ１＜＝Ｒｘ２か、あるいはＬｘ２＜＝Ｒｘ２＜Ｌｘ１＜＝Ｒｘ１のいずれかを満たすか判断する。これらのいずれかであったときはステップＳ５１１に移行し、それ以外のときはステップＳ５１６に移行する。
【００６３】
ステップＳ５１１：｛ｍｉｎ（Ｌｘ１，Ｌｘ２）＋ｍａｘ（Ｒｘ１，Ｒｘ２）｝／２の位置に、太さ｛ｍａｘ（Ｒｘ１，Ｒｘ２）−ｍｉｎ（Ｌｘ１，Ｌｘ２）＋１｝の２重罫線が存在すると判断する。
【００６４】
ステップＳ５１２：Ｌｎ＝０またはＲｎ＝０か否か判断し、Ｌｎ＝０またはＲｎ＝０のときはステップＳ５１３に移行する。それ以外のときはステップＳ５１６に移行する。
【００６５】
ステップＳ５１３：Ｌｎ＝０ならば左方向エッジヒストグラムに閾値Ｔ以下のピークがあるかどうかを調べ、Ｒｎ＝０ならば右方向エッジヒストグラムに、閾値Ｔ以下のピークがあるかどうかを調べる。ピークがあればステップＳ５１４に移行し、それ以外はステップＳ５１５に移行する。
【００６６】
ステップＳ５１４：探索領域において、片側に文字などが接触して明確なエッジは現れていないが、罫線は存在していると判定する。ピークがない場合は、ステップＳ５１５に移行する。
【００６７】
ステップＳ５１５：片側が塗り潰しの領域であると判定する。
【００６８】
ステップＳ５１６：ステップＳ５０４、Ｓ５０８、Ｓ５０９、Ｓ５１２のいずれもあてはまらない場合、すなわちＬｎ＝２かつＲｎ＝１、またはＬｎ＝１かつＲｎ＝２の場合ステップＳ５１６が実行され、Ｌｘ１＜＝Ｒｘ１のときステップＳ５１７に移行する。それ以外のときはステップＳ５１８に移行する。
【００６９】
ステップＳ５１７：（Ｌｘ１＋Ｒｘ１）／２の位置に太さ（Ｒｘ１−Ｌｘ１＋１）の罫線が存在すると判定する。それ以外の場合はステップＳ５１８に移行する。
【００７０】
ステップＳ５１８：Ｌｎ＝２かつＬｘ２＜＝Ｒｘ１のときステップＳ５１９に移行する。それ以外の場合はステップＳ５２０に移行する。
【００７１】
ステップＳ５１９：（Ｌｘ２＋Ｒｘ１）／２の位置に太さ（Ｒｘ１−Ｌｘ２＋１）の罫線が存在すると判定する。
【００７２】
ステップＳ５２０：Ｒｎ＝２かつＬｘ１＜＝Ｒｘ２のときステップＳ５２１に移行する。それ以外の場合はステップＳ５２２に移行する。
【００７３】
ステップＳ５２１：（Ｌｘ１＋Ｒｘ２）／２の位置に太さ（Ｒｘ２−Ｌｘ１＋１）の罫線が存在すると判断する。
【００７４】
ステップＳ５２２：探索領域には罫線は存在しないと判定する。
【００７５】
以上のステップＳ５０１〜Ｓ５２２の処理は、全ての白画素塊の左右方向エッジに適用される。但し、同一罫線について処理が重複しないようにする。これによって垂直方向罫線が抽出される。
【００７６】
さらに、白画素塊の上下方向エッジについて同様の処理を実行し、水平方向罫線を抽出する。処理内容は、左右方向エッジと方向が９０度異なるだけであり、全く同様であるので、説明は省略する。
【００７７】
図１４に示すように、罫線枠角部の曲率半径の算出に際しては、角部の頂点Ｐにおいて曲線に接し、かつ水平な罫線に対し４５度の角度をなす直線Ｌを引く。直線Ｌと水平な罫線との交点をＱとするとき、ＰＱ間の距離ｎと曲率半径ｒとの間には、式１４０１（図１４参照：ｒ＝ｎ／（２−（２＾（１／２））））の関係が成立する。よって、距離ｎを検出することによって曲率半径ｒを求めることができる。
【００７８】
実画像上ではこのような幾何学的な処理が容易でないこともあり、例えば、以下のような処理が採用される。
【００７９】
まず注目する角部（ここでは表枠の左下の角が円弧を描いている場合を例にして説明する）において、説明を簡単にするため、水平な座標軸（図１４のｘ軸）の原点を白画素塊左端に対応させ、水平な座標軸（図１４のｙ軸）の原点を白画素塊下端に対応させた座標系を定義するものとする（なお、この座標系に限らず、任意の座標系で処理可能である）。この座標系で、図１４の直線Ｍ上の画素を原点Ｐから円弧の中心に向かって探索する。白画素塊の高さをｈとすると、探索していく画素の座標（ｉ，ｊ）は、ｉ＝ｊ＝０，１，２，３・・・，ｈの順で探索していき、最初に黒画素となった座標を直線Ｌと罫線の円弧とが接する接点Ｓとみなす。このときの接点Ｓの座標を（ｉｓ，　ｉｓ）とすると、ＰＱ間の距離ｎは、ｎ＝２＊ｉｓで求められるので、画素数ｎと上式１４０１により、曲率半径を計算できる。
【００８０】
なお黒画素を発見したときも、その黒画素が孤立点であるかどうか調べ、孤立点であると判断すればノイズとして処理し、更に探索を続けることにより、ノイズに対しても頑健なものとなる。
【００８１】
図１５において、注目する罫線が文字「外」と接触しているとき、ステップＳ３０３の処理では、左方向エッジのピークとして（Ｌｘ１，Ｌｐ１）、（Ｌｘ２，Ｌｐ２）、右方向エッジのピークとして（Ｒｘ１，Ｒｐ１）、（Ｒｘ２，Ｒｐ２）が抽出される。ここでは、Ｌｘ１〜Ｒｘ２間に２重罫線があると誤認識される。しかし、ステップＳ３０５において、ひとつ下の罫線の左右端と最も一致するピークの組を再探索し、Ｌｘ２、Ｒｘ２を得る。これにより、上の部分罫線の位置および太さ情報は正確なものに修正される。
【００８２】
図１６において、直列する部分罫線を統合して意匠的効果の高い３行３列の表が生成されている。部分罫線の統合に際しては、同一線上にあり（直列する）、同じ太さの部分罫線を統合して、罫線情報を整理する。
【００８３】
ステップＳ３０５までの処理で求められた部分罫線の位置は、ノイズや付着画素、あるいは読み取り解像度に起因する量子化誤差等により、誤差を含む。そこで、部分罫線の太さを平均化する。平均化は、全部分罫線の太さの分布を求め、グループ化可能な太さをグループ化する。各グループの太さの平均値等から太さの代表値を設定し、各グループに属する部分罫線の太さを代表値に統一する。２重罫線は他の部分罫線と別にグループ化してもよい。
【００８４】
その後、統一された太さが等しく、かつ同一線上で隣りあう部分罫線を一本の罫線に統合する。同様に、罫線の位置についても、平均的な位置となるように調整する。
【００８５】
以上の処理により出力された罫線情報は、画像に表示したり、再び紙に出力するための基礎情報として用いることができる。しかも、罫線の物理的情報として位置や太さなどが対ノイズ、画像状態変動に対して良好に得られるうえに、論理的表構造配置にも適合するものであるので、種々の用途に親和性の高い情報となっている。
【００８６】
［プログラム］
図１、図２の画像処理装置における制御プログラムには、前記画像処理方法の実施形態を実行するためのプログラムが含まれる。このプログラムはステップＳ３０１〜Ｓ３０７、ステップＳ４０１〜Ｓ４１０、ステップＳ５０１〜Ｓ５２２の処理を実行するルーチンを含む。
【００８７】
［記憶媒体］
本発明にかかる画像処理方法は図１、図２の画像処理装置以外の装置、例えば汎用的なコンピュータでも実施可能であり、その場合、記憶媒体等で提供される制御プログラムを汎用コンピュータの外部記憶装置にセットし、オペレータ等の指示によりＣＰＵ等で実行してもよい。
【００８８】
【発明の効果】
本発明によれば、表の罫線に関する情報を正しく抽出し得る。
また、罫線情報を正しく抽出できるので、表を正確に再現することも可能となる。
【図面の簡単な説明】
【図１】本発明に係る画像処理装置の一実施例構成を示すブロック図である。
【図２】図１の画像処理装置の装置構成例の図である。
【図３】図１の画像処理装置で実行される画像処理方法の一実施形態を示すフローチャートである。
【図４】図３の画像処理方法における領域分割処理を示すフローチャートである。
【図５】図３の画像処理方法における罫線抽出処理を示すフローチャートである。
【図６】図１の画像処理装置に入力される画像の例を示す図である。
【図７】図４の領域分割処理による属性毎の領域分類の例を示す図である。
【図８】８連結の黒画素塊の例を示す図である。
【図９】４連結の白画素塊の例を示す図である。
【図１０】四角形の黒画素塊とそれ以外の黒画素塊の例を示す図である。
【図１１】黒画素塊内部の白画素塊の整列状態例を示す図である。
【図１２】表の論理的内部構造の抽出例を示す図である。
【図１３】表内の部分罫線に対する左右エッジのピークの例を示す図である。
【図１４】仰角４５度の接線位置と半径の関係を示す図である。
【図１５】罫線補正処理の例を示す図である。
【図１６】罫線の論理位置の例を示す図である。
【図１７】図４の領域分割処理による属性毎の領域分類の他の例を示す図である。
【符号の説明】
１００　画像処理装置
１０１　入力部
１０２　領域分割部
１０３　表罫線抽出部
１０４　出力部
【図１】
2004086436.tif 000003
【図２】
2004086436.tif 000004
【図３】
2004086436.tif 000005
【図４】
2004086436.tif 000006
【図５】
2004086436.tif 000007
【図６】
2004086436.tif 000008
【図７】
2004086436.tif 000009
【図８】
2004086436.tif 000010
【図９】
2004086436.tif 000011
【図１０】
2004086436.tif 000012
【図１１】
2004086436.tif 000013
【図１２】
2004086436.tif 000014
【図１３】
2004086436.tif 000015
【図１４】
2004086436.tif 000016
【図１５】
2004086436.tif 000017
【図１６】
2004086436.tif 000018
【図１７】
2004086436.tif 000019