(57)【特許請求の範囲】
【請求項１】
入力された画像の主走査方向および副走査方向におけるランを抽出する手段と、前記抽出されたランの頻度分布を求める手段と、前記頻度分布を基に所定の閾値を設定する手段と、前記所定の閾値より大きなランを用いて連結矩形を抽出する手段と、前記抽出された連結矩形から罫線を抽出する手段と、所定領域内の主走査方向および副走査方向に所定本数以上の罫線が存在しているとき、文字矩形と判定する手段とを備えたことを特徴とする罫線処理装置。
【請求項２】
前記閾値を設定する手段は、前記頻度分布の微分値を基に前記所定の閾値を設定することを特徴とする請求項１記載の罫線処理装置。
【請求項３】
前記頻度分布に対してデジタルフィルタ処理を行う手段を更に備えたことを特徴とする請求項１または２記載の罫線処理装置。
【請求項４】
前記閾値を設定する手段は、前記頻度分布を基に前記所定の閾値を設定するとき、頻度分布のピークよりも大きい部分に閾値を設定することを特徴とする請求項１記載の罫線処理装置。
【請求項５】
請求項１乃至４のいずれか１項に記載の罫線処理装置の各手段として、コンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力画像から文字矩形、四角枠などを精度よく判定する罫線処理装置および罫線処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
本出願人は先に、入力画像から特定方向の黒ランを抽出し、抽出された黒ランの中点の点列を芯線として抽出し、また、入力画像上の黒画素連結成分に外接する矩形の領域において２個以上の芯線が抽出された場合に、その矩形の領域を文字領域と判定する線図形画像処理方法を提案した（特願平９−４０８１１号）。
【０００３】
【発明が解決しようとする課題】
しかし、上記提案した従来の方法では、連結矩形中に含まれるノイズなどにより、文字でないにも係らず文字として誤って判定することがあった。
【０００４】
本発明は上記した問題を解決するためになされたもので、
本発明の目的は、漢字や数字などは、ある一定の領域内に複数の直線成分を持った線で構成されていることを考慮して、連結矩形から、この直線成分を取り出し、その性質を基に文字矩形か否かを判定することにより、ノイズに強い罫線処理装置および記録媒体を提供することにある。
【０００５】
【課題を解決するための手段】
前記目的を達成するために、請求項１記載の発明では、入力された画像の主走査方向および副走査方向におけるランを抽出する手段と、前記抽出されたランの頻度分布を求める手段と、前記頻度分布を基に所定の閾値を設定する手段と、前記所定の閾値より大きなランを用いて連結矩形を抽出する手段と、前記抽出された連結矩形から罫線を抽出する手段と、所定領域内の主走査方向および副走査方向に所定本数以上の罫線が存在しているとき、文字矩形と判定する手段とを備えたことを特徴としている。
【０００６】
請求項２記載の発明では、前記閾値を設定する手段は、前記頻度分布の微分値を基に前記所定の閾値を設定することを特徴としている。
【０００７】
請求項３記載の発明では、前記頻度分布に対してデジタルフィルタ処理を行う手段を更に備えたことを特徴としている。
【０００８】
請求項４記載の発明では、前記閾値を設定する手段は、前記頻度分布を基に前記所定の閾値を設定するとき、頻度分布のピークよりも大きい部分に閾値を設定することを特徴としている。
【０００９】
請求項５記載の発明では、請求項１乃至４のいずれか１項に記載の罫線処理装置の各手段として、コンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴としている。
【００１０】
【発明の実施の形態】
以下、本発明の一実施例を図面を用いて具体的に説明する。
（実施例１）
図１は、本発明の実施例１の構成を示し、図２は、実施例１の処理フローチャートを示す。図において、１は画像入力部、２は原画メモリ、３はラン抽出部、４は連結矩形抽出部、５は罫線抽出部、６は文字矩形判定部である。
【００１１】
以下、図２を参照しながら、実施例１の処理動作を説明する。スキャナなどの画像入力部１で原稿を読み取り、入力画像を原画メモリ２に格納する（ステップ１０１）。ラン抽出部３は、原画メモリ２内の画像データの主走査方向についてランを抽出し、メモリに格納する（ステップ１０２）。
【００１２】
次いで、連結矩形抽出部４は、主走査方向において抽出されたランについて、所定の閾値（固定閾値）より大きなランのみを対象に連結矩形の抽出を行い（ステップ１０３）、罫線抽出部５は、抽出された連結矩形から罫線（直線成分）を抽出する（ステップ１０４）。副走査方向についても同様の処理を行い（ステップ１０６）、罫線を抽出する。
【００１３】
文字矩形判定部６は、主走査方向／副走査方向の何れにも３本以上の罫線が所定領域に存在していれば（ステップ１０７）、該所定領域を文字矩形として判定する（ステップ１０８）。
【００１４】
（実施例２）
実施例２は、アンケート用紙などに使用されている中抜きの四角枠を判定する実施例である。図３は、実施例２の構成を示し、実施例１の文字矩形判定部を、四角枠判定部７に置き換えて構成している。図４は、実施例２の処理フローチャートである。ステップ２０６までの処理は実施例１と同様である。
【００１５】
四角枠判定部７は、主走査方向／副走査方向の何れにも２本の罫線が所定領域に存在し、それぞれの罫線の始点と終点が一致していれば（ステップ２０７）、四角枠として判定する（ステップ２０８）。
【００１６】
（実施例３）
実施例３は、黒地に白抜きで表現されている反転文字領域を判定する実施例である。図５は、実施例３の構成を示し、実施例１の文字矩形判定部を、反転文字領域判定部８に置き換えて構成している。また、図６は、実施例３の処理フローチャートであり、ステップ３０６までの処理は実施例１と同様である。
【００１７】
ステップ３０７において、全ての罫線を抽出した後、反転文字領域判定部８は、罫線の幅の平均をとり、平均値に所定値を付加した値よりも、罫線幅が大きい領域を、反転文字領域として判定する（ステップ３０８）。
【００１８】
（実施例４）
上記した実施例１から３または従来の方法では、固定閾値を用いて罫線を抽出している。このため、表の中に含まれる文字の大きさよりも少し大きな長さを持った線を抽出することが難しい。これは、あらゆるドキュメントにおいて文字内に罫線が抽出されないような、ある程度大きな固定の閾値を設定する必要があるためである。このように、従来の方法では、ある程度大きな固定の閾値を設定しているので、文字内の疑似罫線の抽出を抑えることができるが、逆に、文字サイズよりも少し大きい程度の短い罫線を抽出することができない。
【００１９】
そこで、本実施例では、閾値を固定値ではなく、読み取り原稿の特徴から閾値を推定し、この閾値を基に罫線を判別している。
【００２０】
図７は、実施例４の構成を示す。実施例１との相違点は、連結矩形抽出部２４と、ＩＤ付与部２５と、矩形ＩＤ選択部２６と、頻度計数部２７と、閾値設定部２８と、連結矩形抽出部２９を設けた点である。図８は、実施例４の処理フローチャートである。
【００２１】
入力画像を原画メモリ２２に格納し（ステップ４０１）、ラン抽出部２３は、主走査方向においてランを抽出しメモリに格納する（ステップ４０２）。連結矩形抽出部２４は、メモリ上のランを使って連結矩形を抽出し、ＩＤ付与部２５は連結矩形に矩形ＩＤ（シリアル番号）を付与し、その矩形ＩＤを、その連結矩形成分を構成する全てのランにも付与する（ステップ４０３）。矩形ＩＤ選択部２６は、ある特定の（つまり、処理対象となる）連結矩形（矩形ＩＤ）を選択し（ステップ４０４）、頻度計数部２７は指定された矩形ＩＤをもつランを検索し、頻度を計数する（ステップ４０５）。
【００２２】
次いで、閾値設定部２８は、ラン頻度の分布を基に閾値を求める（ステップ４０６）。連結矩形抽出部２９は、主走査方向における抽出されたランについて、上記算出された閾値より大きなランのみを対象に連結矩形の抽出を行う（ステップ４０７）。罫線抽出部３０は、抽出された連結矩形から罫線を抽出する（ステップ４０８）。副走査方向についても同様の処理を行い（ステップ４１０）、罫線を抽出する。
【００２３】
文字矩形判定部３１は、主走査方向／副走査方向の何れにも３本以上の罫線が所定領域に存在していれば（ステップ４１１）、文字矩形として判定する（ステップ４１２）。
【００２４】
ここで、上記したランの頻度分布から閾値を求める方法として、本実施例では、以下の２つの方法を採る。
【００２５】
図９は、第１の方法を説明する図である。第１の方法では、ランレングスの小さい方から分布のピークを探索する。次いで、分布平面上でピークを通る傾きが負の直線を仮定し、すべての分布点と直線との距離を求め、その和をとる。すべての直線について、演算を行い、和が一番小さい直線を求める。そして、その直線と、分布がゼロと交差するランレングスを閾値と設定する。
【００２６】
図１０は、第２の方法を説明する図である。分布平面上で傾きがゼロの直線を仮定し、すべての分布点と直線との距離を求め、その和をとる。すべての直線について、演算を行い、和が一番小さい直線を求める。その直線が分布と交差する点をランレングスの閾値とする。
【００２７】
（実施例５）
一般的に、縦線と横線を含む表の枠の連結矩形成分のラン頻度分布は、図１１に示すようになる。すなわち、ランレングス１〜１０が縦線のラン分布であり、１０〜２８が縦線あるいは横線に接触している文字のラン分布となっている。２９以上のラン分布は横線のラン分布である。図１１の分布では、閾値を２９に設定することにより、横線のみが抽出できる。分布の微分値がゼロ、つまりラン分布が変化しなくなったら、その点が閾値となる。本実施例では、この閾値を探索するために差分を使用している。
【００２８】
図１２は、実施例５の構成を示す。実施例４と相違する点は、差分計算部３２を設けた点である。図１３は、実施例５の処理フローチャートを示す。
【００２９】
差分計算部３２は、頻度分布についてランレングスの小さい方から順に、隣の頻度との差分を求める（ステップ５０６）。閾値設定部２８は、差分がゼロとなったランレングスを閾値とする（ステップ５０７）。以下、実施例４と同様に、連結矩形抽出部２９は、主走査方向において、設定された閾値より大きなランのみを対象に連結矩形の抽出を行い（ステップ５０８）、罫線抽出部３０は抽出された連結矩形から罫線を抽出する（ステップ５０９）。
【００３０】
（実施例６）
オフィスで作成される表を含む文書のラン分布は、概ね図１１に示す傾向となるが、上記した実施例５のように差分を求めたとき、ノイズ等によって、ランレングス値２９より小さい値でも隣の分布頻度値と一致することがある。あるいは、２９より大きいランレングスでも、頻度値としては１０またはそれ以上の頻度値となる場合もあり、頻度値が隣と一致する場合が必ずあるとは限らない。これは、ラン分布にのっている高周波成分のノイズが原因である。
【００３１】
一般に、高周波成分ノイズはＦＩＲ（Ｆｉｎｉｔ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）型デジタルフィルタで除去することができる。そこで、本実施例では、デジタルフィルタを使用して、高周波ノイズに相当する部分を除去する。
【００３２】
図１４は、実施例６の構成を示し、実施例５の構成にさらにフィルタ処理部３３を付加したものである。また、図１５は、実施例６の処理フローチャートを示す。ステップ６０１〜６０５、ステップ６０７〜６１２は、実施例５の処理と同様である。ステップ６０６では、フィルタ処理部３３において、頻度分布に対してデジタルフィルタ（ローパスフィルタ）をかけて高周波ノイズを除去する。
【００３３】
（実施例７）
図１６は、横線のみのラン分布を示す。ラン分布を連結矩形単位でとると、表の枠を構成する連結矩形や、横線を構成する連結矩形が含まれる。横線のみの連結矩形を、閾値３３の付近で取り出すためには、ラン分布のピークより大きい位置で、微分値がゼロになる点を探せば良い。
【００３４】
図１７は、実施例７の構成を示す。実施例６と相違する点は、ピーク検出部３４を設けた点と、差分計算部３２の処理内容が異なる点である。図１８は、実施例７の処理フローチャートである。
【００３５】
ステップ７０６までの処理は実施例６と同様である。ステップ７０７では、ピーク検出部３４は、頻度分布におけるランレングスの小さい方から、２次微分値がゼロあるいは微分値の符号が変化する点を探索し、ピークとする。次いで、差分計算部３２は、ピークより後方で、隣の頻度との差分を求める（ステップ７０８）。閾値設定部２８は、差分がゼロとなったランレングスを閾値とする（ステップ７０９）。以下の処理は、実施例６と同様であるので、説明を省略する。
【００３６】
（実施例８）
表を認識する際には、連結矩形抽出を繰返し行う必要があり、その都度、原画からランを抽出して、連結矩形を抽出すると処理に時間を要する。そこで、ラン情報のみをあらかじめ用意しておくことにより、ランを使った他の特徴量の抽出等の処理時間を短縮できる。
【００３７】
つまり、ランの属性を保持することで、処理の結果を累積的に保持できるため、認識が終了したランを、その次の認識処理から除くことができ、その結果、認識処理全体の処理時間の短縮が可能となる。同時にラン単位で認識が可能となるため、細部にわたって精度の高い認識処理が可能となる。また、ラン情報に変換されているため、各種の画像処理を短時間で行うことができる。
【００３８】
図１９は、実施例８の構成を示す。この実施例では、実施例７の構成にさらに属性情報記録部３５と文字データ消去部３６を付加している。また、図２０は、実施例８の処理フローチャートである。ステップ８０３において、ラン抽出部２３は、抽出したランに対応するラン属性情報（例えば文字、線などの属性）を保持する領域を確保する。
【００３９】
属性情報記録部３５は、文字矩形判定部３１で文字矩形として判定された矩形内において、連結矩形を構成するランに文字であることを示すマークを記録する（ステップ８１７）。次いで、文字データ消去部３６では、抽出されたランを調べ、文字であるマークが付与されているランに対応する原画上の黒画素を消去する（ステップ８１８）。
【００４０】
なお、ラン属性情報としては、この他に、ランが線、写真などの画像、ノイズ、線ノイズ、背景などのどれに属しているかを示す属性を保持するようにしてもよい。
【００４１】
（実施例９）
実施例９は、本発明をソフトウェアによって実現する場合の実施例である。図２１は、実施例９のシステム構成例を示す。ＣＤ−ＲＯＭなどの記録媒体には、本発明の罫線処理機能または処理手順が記録されていて、これをシステムにインストールする。スキャナなどにセットされた原稿を読み取り、メモリ上に展開された原稿画像から罫線を抽出し、抽出された罫線の本数を基に所定領域が文字矩形であるか否かを判定し、その判定結果をディスプレイなどに表示出力する。
【００４２】
【発明の効果】
以上、説明したように、請求項１、５記載の発明によれば、所定領域内の連結矩形の直線成分（罫線）を調べることによって精度良く文字矩形であるか否かを判定することができる。また、従来の固定閾値では抽出できない短い罫線を抽出することができる。また、分布自体は表の大きさに依存しないため、大きな表や小さな表を同じ処理方法によって処理することができる。つまり、本発明の処理方法は解像度に依存しない。
【００４３】
請求項２記載の発明によれば、分布の微分値から閾値を推定しているので、より正確な閾値推定が可能となる。
【００４４】
請求項３記載の発明によれば、分布にのっている高周波ノイズを除去しているので、より正確な閾値の推定が可能となる。
【００４５】
請求項４記載の発明によれば、縦線、横線を含む表枠だけではなく、単なる直線からなる分布に対しても適切な閾値を推定できる。
【図面の簡単な説明】
【図１】  本発明の実施例１の構成を示す。
【図２】  本発明の実施例１の処理フローチャートを示す。
【図３】  本発明の実施例２の構成を示す。
【図４】  本発明の実施例２の処理フローチャートを示す。
【図５】  本発明の実施例３の構成を示す。
【図６】  本発明の実施例３の処理フローチャートを示す。
【図７】  本発明の実施例４の構成を示す。
【図８】  本発明の実施例４の処理フローチャートを示す。
【図９】  閾値を求める第１の方法を説明する図である。
【図１０】  閾値を求める第２の方法を説明する図である。
【図１１】  一般的な表を含むラン頻度分布を示す。
【図１２】  本発明の実施例５の構成を示す。
【図１３】  本発明の実施例５の処理フローチャートを示す。
【図１４】  本発明の実施例６の構成を示す。
【図１５】  本発明の実施例６の処理フローチャートを示す。
【図１６】  横線のみのラン頻度分布を示す。
【図１７】  本発明の実施例７の構成を示す。
【図１８】  本発明の実施例７の処理フローチャートを示す。
【図１９】  本発明の実施例８の構成を示す。
【図２０】  本発明の実施例８の処理フローチャートを示す。
【図２１】  本発明の実施例９の構成を示す。
【符号の説明】
１  画像入力部
２  原画メモリ
３  ラン抽出部
４  連結矩形抽出部
５  罫線抽出部
６  文字矩形判定部
【図１】
0004089849.tif 000002
【図２】
0004089849.tif 000003
【図３】
0004089849.tif 000004
【図４】
0004089849.tif 000005
【図５】
0004089849.tif 000006
【図６】
0004089849.tif 000007
【図７】
0004089849.tif 000008
【図８】
0004089849.tif 000009
【図９】
0004089849.tif 000010
【図１０】
0004089849.tif 000011
【図１１】
0004089849.tif 000012
【図１２】
0004089849.tif 000013
【図１３】
0004089849.tif 000014
【図１４】
0004089849.tif 000015
【図１５】
0004089849.tif 000016
【図１６】
0004089849.tif 000017
【図１７】
0004089849.tif 000018
【図１８】
0004089849.tif 000019
【図１９】
0004089849.tif 000020
【図２０】
0004089849.tif 000021
【図２１】
0004089849.tif 000022