JP4409678B2 - 罫線抽出方式 - Google Patents
罫線抽出方式 Download PDFInfo
- Publication number
- JP4409678B2 JP4409678B2 JP28790999A JP28790999A JP4409678B2 JP 4409678 B2 JP4409678 B2 JP 4409678B2 JP 28790999 A JP28790999 A JP 28790999A JP 28790999 A JP28790999 A JP 28790999A JP 4409678 B2 JP4409678 B2 JP 4409678B2
- Authority
- JP
- Japan
- Prior art keywords
- ruled line
- image
- ruled
- line
- degree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
- Image Analysis (AREA)
- Character Input (AREA)
- Document Processing Apparatus (AREA)
Description
【発明の属する技術分野】
本発明は、罫線抽出方式に係わり、特にOCR等の文字認識装置において画像の品質に対応して罫線を抽出するための罫線抽出方式に関する。
【0002】
近年、スキャナ等の入力機器の普及に伴って、文字認識装置(またはソフト)OCRの需要が増加している。個々の文字の高い認識率を実現するためには、認識の前段階である切り出し処理がその正確さの点で重要になる。これまで、帳票等の処理をOCRで行う場合には、あらかじめ罫線の位置や線の太さといった情報を指定して文字の書かれている範囲についての情報を格納しておく必要があった。また、帳票フォーマットを変更する度に情報入力の必要があり、ユーザにとって負担となっていた。本発明は、このような問題を解決する技術であり、位置、形式ともに未知である帳票画像に対して、また、画質の品質が良くても悪くても、表形式の枠の罫線を正確に抽出することの可能な方式についてである。
【0003】
なお、本技術は、文字認識装置だけでなく、図面認識における直線認識、画像中の罫線と物体、図形、文字の接触部分の分離などのように、広い意味での直線抽出を行う技術に応用することも可能である。
【0004】
【従来の技術】
従来から一般に使用されているOCRでは、あらかじめ罫線の位置情報や線の太さ等の情報を帳票データとして格納しておく必要があり、フォーマットを変える度に、情報入力の時間がかかり、また未知の形式の帳票は処理を行うことができない、という問題が生じていた。
【0005】
そこで、本出願人は、先に特開平9−50527にて、あらかじめ枠の情報を必要としない処理方式を提案した。ここに記載されている方式は、図44に示すように、連結パターン抽出部4401により抽出された部分パターンから、横直線抽出部4403及び縦直線抽出部4410により直線を抽出し、横直線抽出部4403で抽出された横直線を横枠決定部4417により上部から2本ずつ組にして横枠とし、縦直線抽出部4410で抽出された縦直線の中から縦枠決定部4418により縦枠を決定し、2本の横枠と2本の縦枠で囲まれる矩形範囲を、矩形表現部4422により枠として抽出する。そして、枠を構成する罫線候補を本来の罫線であるとし、枠を構成しない罫線候補は罫線以外のパターンであるとし、罫線ではないとする処理を行う。
【0006】
【発明が解決しようとする課題】
しかしながら、実際に上述したような処理を行う場合には、掠れや潰れなどを含む様々な低品質の画像も対象とする必要があり、実際にスキャナで取り込んだ画像データには、品質の良い画像と悪い画像とが混在している場合が多い。現状では、画像の品質の良い場合または悪い場合のそれぞれの場合において、適当な処理または閾値などを設定することは可能である。
【0007】
しかし、品質の良い画像として設定を行った場合、画像に部分的に品質が悪いところを含んでいると、文字認識の精度が下がってしまう可能性がある。また、品質の悪い画像として設定を行った場合も、画像に部分的に品質が良いところを含んでいると、文字認識の精度が下がってしまう可能性がある。
【0008】
例えば、品質の良い画像として設定された場合には、低解像度画像を用いた処理を行うことになるが、低解像度の画像だけを用いた処理方式では、比較的潰れた画像に対して処理を行うことになるため、掠れの影響は少なくなり、掠れ画像に対しては精度が高いが、それ以外の画像に対しては、潰れの影響で精度が下がる。
【0009】
また、品質の悪い画像として設定された場合には、高解像度画像を用いた処理を行うことになるが、高解像度の画像だけを用いた処理方式では、品質の良い画像や、潰れ画像に対しては細かく調査することができるため精度が高くなる。しかし、掠れ画像に対しては、掠れの影響が大きくなるため、精度が低くなる。
【0010】
そこで、品質の悪い画像であっても、品質の良い画像であっても、またそれらの画像が混在している場合であっても、高精度に罫線、及び四方を罫線候補で囲まれた矩形領域であるセル領域を自動的に抽出することができる技術が求められている。
【0011】
本発明の課題は、画像の品質に対応した罫線抽出処理を行う、罫線抽出方式を提供することである。
【0012】
【課題を解決するための手段】
上述した課題を解決するために、請求項1の発明よれば、入力画像から異なる解像度の画像を生成する手段と、前記入力画像の品質を評価する手段と、前記異なる解像度の画像の中から前記品質に応じた解像度の画像を選択する手段と、該選択された画像から罫線またはセルを抽出する手段と、を備えている。このことにより、入力画像の品質の評価結果をもとに、適した画像を選択して罫線抽出をすることが可能となることから、罫線抽出の精度を向上させることが可能となる。
【0013】
また、請求項2の発明によれば、画像データ内の帳票を構成する罫線を抽出する罫線抽出方式であって、入力画像から異なる解像度の画像を生成する手段と、前記入力画像から異なる解像度の画像を生成する手段によって生成された画像を用いて入力画像の品質を評価する手段と、前記入力画像の品質を評価する手段において評価された品質に基づいて、罫線またはセルを抽出するための処理方法または該処理に用いられる閾値の選択を行う手段と、前記入力画像のそれぞれの部分から罫線またはセルを抽出するための処理に適する画像解像度を選択する手段と、前記選択された画像解像度の画像から、前記罫線またはセルを抽出するための処理方法または該処理に用いられる閾値の選択を行う手段によって選択された処理方法または閾値に基づいて、帳票を構成する罫線またはセルを抽出する手段と、を備える。このことにより、入力画像の品質の評価結果をもとに、適した画像を選択して罫線抽出をすることが可能となることから、罫線抽出の精度を向上させることが可能となる。
【0014】
また、請求項3の発明によれば、前記入力画像から異なる解像度の画像を生成する手段は、入力画像から間引くデータが多い低解像度画像と入力画像から間引くデータが少ない高解像度画像を作成する。このことにより、後の処理で適切な解像度の画像を用いることが可能となる。
【0015】
また、請求項4の発明によれば、前記入力画像の品質を評価する手段は、数値で該品質を表現することを特徴とする。このことにより、画像の品質を数値化することが可能となる。
【0016】
また、請求項5の発明によれば、前記画像の品質を評価する手段による処理を行う前に、あらかじめ罫線候補領域を抽出する罫線候補領域抽出手段を更に備える。このことにより、必要とされる部分の画像の品質を算出することが可能となる。
【0017】
また、請求項6の発明によれば、前記罫線候補領域抽出手段は、低解像度画像を用いて罫線候補の抽出処理をする。このことにより、画像が掠れている場合であっても罫線候補位置をより正確に抽出することができる。
【0018】
また、請求項7の発明によれば、前記罫線候補領域抽出手段による処理を行う前に、低解像度画像を用いて点線の抽出を行い、点線を構成するパターンを除去する処理を行う。低解像度画像を用いることで、画像が掠れている場合であっても罫線候補位置をより正確に抽出できるとともに、確実に点線であるとわかる部分を除去することができる。
【0019】
また、請求項8の発明によれば、低解像度画像を用いて抽出された罫線候補領域内を、高解像度画像を用いて点線抽出処理および罫線抽出処理を行うことで、罫線の属性を判断する。このことにより、低解像度画像では潰れてしまいそうな点と点の間隔が短い点線でもより正確に抽出することが可能となり、点線が誤って直線候補となった場合でも、より精度を保って処理を行うことが可能となる。
【0020】
また、請求項9の発明によれば、画像の品質を評価する手段は、罫線候補領域抽出手段で用いた画像とは異なる解像度( より高い解像度の画像) の画像を用いて画像の品質の評価を行う。このことより、低解像度画像におこる潰れによる影響をなくすことができる。
【0021】
また、請求項10の発明によれば、前記画像の品質する手段において、罫線候補領域内を調査する場合に、罫線候補領域内を縦または横方向に画素探索を行うことで、画像の掠れ度合いを掠れ度という数値で算出する。このことにより、掠れの度合いを詳細に調査することができる。
【0022】
また、請求項11の発明によれば、前記掠れ度は、罫線候補領域内を画素探索することで、罫線パターンの途切れの回数及び途切れの長さを求め、それぞれを単位長さ当たりに換算したものを加算して求める。このことにより、掠れの度合いを数値化することができる。
【0023】
また、請求項12の発明によれば、前記品質に基づいて、罫線またはセルを抽出するための処理方法または該処理に用いられる閾値の選択を行う手段は、画像の品質を数値で表現した値に応じた罫線抽出の処理方法または罫線抽出処理に用いられる閾値を選択し、設定する。このことにより、画像の品質に適応した処理方法または閾値によって、より高精度に罫線を抽出することができる。
【0024】
また、請求項13の発明によれば、前記入力画像のそれぞれの部分に対して罫線またはセルを抽出するための処理に適する画像解像度を選択する手段は、画像の品質を数値で表現した値に基づいて、後の罫線抽出処理に用いる画像を選択する。このことにより、画像の品質が悪い場合に、より品質の良い画像を用いて処理を行うことが可能となり、より高精度に罫線抽出ができる。
【0025】
また、請求項14の発明によれば、前記掠れ度は、画像データ全体に対する値と画像データの各部分に対する値とのいずれも算出することができる。このことにより、一つの画像の各部分の画像の品質も判定することができる。
【0026】
また、請求項15の発明によれば、前記入力画像のそれぞれの部分に対して罫線またはセルを抽出するための処理に適する画像解像度を選択する手段は、画像データの各部分に対して求められた掠れ度に基づいて、後の罫線抽出処理において画像データの各部分の処理毎に適した解像度の画像を選択する。このことにより、部分的に掠れのある画像にも対応することができる。
【0027】
また、請求項16の発明によれば、前記罫線またはセルを抽出する手段は、画像の品質に基づいて、前記罫線候補領域抽出手段で用いた画像とは異なる解像度の画像を用いることも可能である。このことにより、掠れのある画像の場合には、罫線候補領域を抽出した画像より低解像度の画像かまたは同一の画像を用いて再度罫線抽出処理を行うことができ、より高精度の罫線を抽出できる。
【0028】
また、請求項17の発明によれば、前記罫線またはセルを抽出する手段は、掠れのない画像であると判断された場合に、より高解像度な画像を用い、掠れのある画像であると判断された場合に、より低解像度な画像を用いる。このことにより、より高精度に罫線を抽出できる。
【0029】
また、請求項18の発明によれば、掠れによって複数部分に分離した帳票を含む画像から罫線を抽出する罫線抽出方法に関して、入力画像において縦、横、斜めの八方向のいずれかで繋がっているパターンを連結パターンとして抽出し、抽出された連結パターンのうち、ある一定の大きさを有するもの同士が接近して位置している場合、それらのパターン間の白画素領域の形状を用いて、同一の表を構成するか否かの判断を行う。これにより、掠れ等によって分離した帳票の表構造を正確に抽出することが可能となる。
【0030】
また、請求項20の発明によれば、掠れによって複数部分に分離した帳票を含む画像から罫線を抽出する罫線抽出方法に関して、入力画像において縦、横、斜めの八方向のいずれかで繋がっているパターンを連結パターンとして抽出し、抽出された連結パターンのうち、ある一定の大きさを有するもの同士が接近して位置している場合、それらのパターンの端の黒画素の形状を用いて、同一の表を構成するか否かの判断を行う。これにより、掠れ等によって分離した帳票の表構造を正確に抽出することが可能となる。
【0031】
また、請求項22の発明によれば、掠れによって複数部分に分離した帳票を含む画像から罫線を抽出する罫線抽出方法に関して、入力画像において縦、横、斜めの八方向のいずれかで繋がっているパターンを連結パターンとして抽出し、抽出された連結パターンのうち、ある一定の大きさを有するもの同士が接近して位置していた場合、それらのパターンから罫線の抽出を行い、それぞれのパターンから抽出された罫線位置に対応関係が一致すれば同一の表を構成すると判断して統合処理を行う。これにより、掠れ等によって分離した帳票の表構造を正確に抽出することが可能となる。
【0032】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図1は、本発明の第1実施例による罫線抽出方式を示すブロック図である。図1において、画像入力手段101により入力画像が取得され、異なる解像度の画像生成手段102は入力画像からデータを間引くことによって低解像度画像( 図2( a))、高解像度画像( 図2( b))を作成する。なお、高解像度画像とは、入力画像の解像度に等しいかまたはそれより低い解像度の画像のことをいい、低解像度画像とは高解像度画像より低い解像度の画像のことをいう。罫線候補領域抽出手段103は生成された低解像度画像を用いて罫線候補領域を抽出する。画像の品質評価手段104は、高解像度画像の直線候補領域内の画素を探索することにより、画像の品質を評価する。
【0033】
また、画像の品質評価手段104は、画像データ全体の品質評価を行うとともに、画像データの各部分の品質評価をすることも可能である。品質に応じた処理方法または閾値を選択する手段105は、画像の品質評価手段104で評価した結果に基づいて、画像品質に適応した処理方法または閾値の選択を行う。また、部分処理毎に適した画像解像度を選択する手段106は、画像品質に基づいて、処理対象とする画像を選択する。または、画像の各部分に対して求められた画像の品質に基づいて画像の各部分を処理する際に用いる画像の解像度を選択する。以上の前処理から、より正確な罫線抽出処理が罫線抽出処理手段107によって行うことが可能である。
【0034】
罫線候補領域抽出手段103では、掠れの影響を受けて直線として抽出できないような場合でも、低解像度画像を用いるため掠れた部分が潰れて直線と判別することができるようになり、罫線候補領域抽出の精度を上げることができる。
【0035】
また、画像の品質評価手段104では、罫線候補領域抽出手段103で抽出された直線候補領域内を画素探索し、検出された途切れの回数および途切れの長さを用いて罫線の掠れの度合い(掠れ度)の算出を行う。算出された掠れ度を画像の品質として、品質に応じた処理方法を選択する手段または閾値を選択する手段105において適した画像解像度、適した処理及び閾値を選択することが可能となる。
【0036】
本発明は、画像に掠れのある場合は、画像の掠れの影響が少ない低解像度画像( 図2( a))を処理画像として選択し、掠れのない画像においては、詳細な部分に関して調査を行うことができるように高解像度画像( 図2( b))を処理画像として選択して罫線を抽出していくことが特徴である。このように本発明では、罫線抽出処理の前処理として画像の品質評価を行い、その後、評価結果に基づいて品質に適した処理を行うことで、罫線抽出処理の精度を向上させることができる。
【0037】
図3は、本発明の第2実施例による罫線抽出方式を示すブロック図である。図3に示すように、本実施例における罫線抽出方式は、低解像度画像作成部301、高解像度画像作成部302、連結パターン抽出部303、点線抽出部304、点線画像消去部305、ラベル統合処理部306、罫線候補領域抽出部307、罫線属性判定部308、点線部を掠れ度算出処理の対象外領域に設定する部分309、掠れ度算出部310、罫線判別処理部311、罫線統合処理部312、セル抽出部313から成る。
【0038】
図3において、入力画像は極端な傾きのない2値画像である。低解像度画像作成部301、高解像度画像作成部302では、入力された画像をOR間引きを用いて縮小処理する。なお、作成された低解像度画像、高解像度画像は後述の処理に用いられる画像とは別に記憶しておき、表示装置での表示に用いる。また、図3における連結パターン抽出部303から罫線候補領域抽出307までは、掠れによって抽出できなくなることを避けるために低解像度画像を用いる。
【0039】
図3の連結パターン抽出部303では、前処理で得られた低解像度画像において8連結で繋がっているパターンをラベリングし、抽出する。「8連結で繋がっている」のパターンとは、縦、横、斜めの8方向のいずれかで繋がっているパターンを言う。上記ラベリングには、一般的な手法を用いることができる。なお、連結パターン抽出部303により得られた画像内の各連結パターンを部分パターンと呼ぶ。又、ラベリングで得られた部分パターンの外接矩形が後述する処理で必要となるので、部分パターンを矩形に近似して得られる矩形の角の座標をラベリングの処理中に算出しておく。
【0040】
図3の点線抽出処理部304では、連結パターン抽出部303によってラベリングされた入力画像において、点線を構成するパターンを抽出する。この場合の抽出の対象となる点線を構成するパターンは、一定の長さの線分を一定間隔で配列してなる破線や、異なる長さの線分を規則的に配列してなる鎖線、同じサイズの部分パターンが規則正しく配列する点線などがある。この処理では、点線が抽出されればどのような手法を用いても構わない。以下に、同じサイズの部分パターンが規則正しく並んでいる部分を点線部として抽出する場合の点線抽出処理部304を、図4に示す点線を含む表を例に説明する。
【0041】
まず、図5に示すように、図4のパターンからラベリングにより算出されたラベルの外接矩形401内の画像の一部を縦または横方向に短冊501として取り出す。そして、その短冊501の内部に存在するパターンの大きさと、あらかじめ設定していた点線を構成するパターンの大きさとを比較し、上記あらかじめ設定していた点線を構成するパターンと同じ大きさを有する部分パターンを探す(ここでは例として縦方向の点線を抽出する場合を示す)。
【0042】
次に、図6に示すように、あらかじめ設定してあった大きさと同じ大きさの部分パターンが見つかった部分を、図5の短冊501に垂直な( この場合は縦方向に) 短冊601として切り出す。そして、この短冊601の範囲内で、上記あらかじめ設定していた点線を構成するパターンと同じ大きさを有する部分パターンを抽出する。
【0043】
次に、図7に示すように、上記抽出された部分パターンが、ある一定の間隔で並び、かつある一定の数以上連続して並んでいるものを点線部と判断して、これを矩形701により近似する。そして、図8に示すように、以上の処理を繰り返して、次々に点線を抽出し、これらを矩形801により近似する。
【0044】
図9は点線抽出処理部304の動作を示すフローチャートである。図9において、まず、ステップS901で、ラベリングされた入力画像の一部を横方向、または縦方向に短冊状に切り出す。
【0045】
次に、ステップS902で、ステップS901で短冊状に切り出した範囲内で、ある一定の大きさの部分パターンが存在するかどうかを判定する。そして、ある一定の大きさの部分パターンが存在しない場合、処理を終了する。一方、ステップS902において、ある一定の大きさの部分パターンが存在すると判定された場合、ステップS903に進み、抽出した部分パターンを含み、かつステップS901で用いた短冊と垂直な短冊状の画像を入力画像から切り出す。
【0046】
次に、ステップS904で、ステップS903で切り出した短冊状の画像の内部に、ある一定の大きさの部分パターンが存在するかどうかを判定する。そして、ある一定の大きさの部分が存在しない場合、処理を終了する。一方、ステップS904において、ある一定の大きさの部分パターンが存在すると判定された場合、ステップS905に進み、上記部分パターンを抽出し、該部分パターンが一定の間隔で並んでいるかどうか判定する。そして、該部分パターンが一定の間隔で並んでいない場合、処理を終了する。
【0047】
一方、ステップS905において、上記抽出した部分パターンが一定の間隔で並んでいると判定された場合、ステップS906に進み、部分パターンの存在する範囲を矩形で囲む。そして、ステップS907で、該矩形で囲まれた範囲を点線の存在範囲とする。
【0048】
図3における点線画像消去部305では、前処理の点線抽出処理で点線の存在範囲であると判定された範囲内の全ての黒画素を白画素に書き換える処理を行う。
【0049】
図3におけるラベル統合処理部306では、掠れによって複数部分に分離した表である場合、同一ラベルを割り振られた部分パターンを統合し、一つの表と見なす処理を行う。ラベルの位置関係だけで判断すると、図10に示すような二例は、左下のセルが同一の表を構成するのか否かを判断するのは不可能である。しかし、図10( a) はもともと同一の表を構成しているため、統合処理を行う必要があり、図10( b) は異なる表を構成するため統合処理を行う必要はない。ラベル統合処理306では、図10の( a) 、( b) に示す二種類の場合に、一つの表としてみなすかどうかの判定を行い、その結果に基づいて、ラベルの統合処理を行う。
【0050】
ラベル統合処理部306では、部分パターンのラベル間の白または黒画素の形状によりラベルを統合するか否かの判定を行う方法と、罫線の位置情報を用いてラベルを統合するか否かの判定を行う方法との二つの方法がある。これらの二つの方法について、以下に順に説明する。
【0051】
まず、部分パターンのラベル間の白または黒画素の形状によりラベルを統合する方法については、ラベル間の白画素の形状で判定する方法を例に説明する。
図11( a) に示すように、もともと同一の表を構成するラベル1101aとラベル1102aの間の白画素領域の形状は、図中の矢印の長さが示すように、罫線等により凹凸のある形状の領域となる。また、図11( b) に示すように、もともと異なる表を構成するラベル1101bとラベル1102bの間の白画素領域の形状は、凹凸のない滑らかな形状となる。本手法は、この特徴を利用するものである。
【0052】
形状の凹凸判定は、ラベル間の白画素の長さを用いる。ある2つのラベル外接矩形の重なりが、大きいものを統合候補として抽出する。候補とされたラベル間の白画素の長さ変化を調査する。この時、大局的な変化だけの場合には、画像が傾いた場合である可能性があるため(近隣の白画素の長さの変異は少なくても、最長値と最短値の差は大きい場合。図11( b) が傾いた場合を想定)、局所的変化の調査を行う。その結果、大きな変異があれば形状に凹凸があるものとみなす。形状に凹凸があると判断された場合には、対象のラベルと統合し、外接矩形のサイズ変更を行い、以降は同じラベルであるとみなす。
【0053】
また、同様に黒画素の領域の凹凸を調査しても判定可能である。黒画素の領域の凹凸を調査する場合は、部分パターンを構成するラベルの端の形状が突起状( 対象ラベルが上下方向に位置する部分では、縦罫線が出っ張っている状態。対象ラベルが左右に位置する部分では、横罫線が出っ張っている状態。) になっている場合に同一の表を構成すると判定できる。
【0054】
図12に、ラベル間の白画素の形状によりラベルを統合するか否かの判定を行う場合のラベル統合処理のフローチャートを示す。まず、画像情報とラベル情報が入力される。ステップS1201で、二つのラベル( a、b) を選択する。ステップS1202で、ラベルaとラベルbの外接矩形が重なっておらず、かつ、ラベルaとラベルbの外接矩形間の距離が一定値以下でない場合、ステップS1201に戻る。また、ステップS1202で、ラベルaとラベルbの外接矩形が重なっているか、またはラベルaとラベルbの外接矩形間の距離が一定値以下である場合、ステップS1203に進み、ラベルaとラベルbの間の白画素の幅を調べる。ステップS1204に進み、ラベルaとラベルbの間の白画素の幅の変化量が、あらかじめ決めた一定値より大きいかを判定し、一定値より大きくない場合は、ステップS1201に戻る。また、ステップS1204でラベルaとラベルbの間の白画素の幅の変化量が一定値より大きいと判定された場合、ステップS1205に進み、ラベルaとラベルbを統合してラベルcとし、ステップS1206でラベルcの外接矩形を示す座標値を算出し、処理を終了する。
【0055】
次に、罫線の位置情報を用いてラベルを統合するか否かの判定を行う方法について説明する。本手法は、二つのラベルから罫線を抽出し、抽出された罫線の対応関係に基づいて判定を行うものである。図13( a) のように、まず、ラベル1301aと、その対象ラベルであるラベル1302aの罫線が抽出される。そして、図13( a) の丸で囲んで示すように、ラベル1301aの罫線が出っ張った状態になっており、かつ、対象ラベルである1302aから抽出された罫線の座標とほぼ同じ位置にある場合には、もともとは連続した罫線が掠れによって、途切れた状態であると判断することができ、同一の表を構成していたものとして統合処理を行うことができる。図13( b) に示すように、もともと異なる表を構成するラベル1301bとラベル1302bから抽出された罫線には、出っ張った部分はないため統合処理は行わない。
【0056】
図14に、罫線の位置情報を用いてラベルを統合するか否かの判定を行う場合のラベル統合処理のフローチャートを示す。まず、画像情報とラベル情報が入力される。ステップS1401で二つのラベルa、bそれぞれから罫線の抽出を行う。ステップS1402に進み、ラベルaから抽出された罫線のx座標が、ラベルbから抽出された罫線のx座標とほぼ同じでないなら、ステップS1407に進み、統合処理を行わず、処理を終了する。ステップS1402で、ラベルaから抽出された罫線のx座標が、ラベルbから抽出された罫線のx座標とほぼ同じである場合、ステップS1403に進み、ラベルaから抽出された罫線のy座標がラベルbから抽出された罫線のy座標とほぼ同じでない場合、ステップS1407に進み、統合処理を行わず、処理を終了する。ステップS1403でラベルaから抽出された罫線のy座標がラベルbから抽出された罫線のy座標とほぼ同じ場合、ステップS1404に進み、ラベルaから抽出された罫線のうち、ラベルb方向に突き出た罫線がない場合、ステップS1407に進み、統合処理を行わず、処理を終了する。ステップS1404で、ラベルaから抽出された罫線のうち、ラベルb方向に突き出た罫線がある場合、ステップS1405に進み、ラベルbから抽出された罫線のうち、ラベルa方向に突き出た罫線がない場合、ステップS1407に進み、統合処理を行わず、処理を終了する。ステップS1405で、ラベルbから抽出された罫線のうち、ラベルa方向に突き出た罫線がある場合、ステップS1406に進み、ラベル統合処理を行い、処理を終了する。
【0057】
以上、図3のラベル統合処理部306の説明をした。なお、ラベル統合処理部は掠れ等により分離した帳票の表構造をより正確に抽出するのに有効であり、単独に上記ラベル統合処理に相当する処理を用いて、品質の悪い画像において罫線を抽出することも可能である。よって、上記のように本実施例の処理手順に組み込まれるにとどまらない。
【0058】
次に、図3に示す罫線候補領域抽出部307について述べる。罫線候補領域抽出部307は、上述までの処理画像から、罫線の候補領域の抽出を行う。この処理は、罫線を構成する画像の存在する領域を示す情報が示されれば、いかなる方法でも構わない。ここでは、罫線候補領域抽出処理部307の一例を以下に示す。
【0059】
図15に罫線候補領域抽出部307のブロック図を示す。罫線候補領域抽出部307は、マスク処理部1501、縦横罫線抽出部1502から成る。さらに、縦横罫線抽出部1502は、線分抽出部1503、直線抽出部1504、罫線候補抽出部1505から成る。図15に示すブロック図の流れに従って、順に説明する。
【0060】
マスク処理部1501は、ラベル統合処理部306によって得られた部分パターン毎に以下に説明するマスク処理を行う。このマスク処理は、ラベル統合処理された画像全体に対して横長及び縦長の2種類のマスク内で走査を行い、マスク内のパターンの示す割合を算出する。算出された値が所定値より大きければ、そのマスク内を全てパターンとみなす。他方、算出された値が所定値以下であれば、マスク内のパターンを削除することにより縦横成分の抽出を行う。複数の行又は列が続いて上記割合が所定値より大きくなると、それらの行又は列をまとめて矩形範囲を作成し、その矩形範囲の中心線を処理結果とする。 尚、マスク処理の結果得られる線分間で、隙間が開かないようにするには、マスク処理を行う範囲に各々重なりを持たせればよい。図16は、縦×横が1×6画素の矩形範囲を指定するマスクにより横成分を抽出する場合を説明する図である。同図中、( a) は互いに重なり合ったマスク「M1」〜「M9」を示す。また、同図( b) は原部分パターンの画像の一例を示し、同図( c) は、同図( a) に示すマスクを用いてマスク処理を行った場合に抽出される横成分を示す。同図中、黒い丸印が抽出された横成分の画素を表す。
【0061】
図17は、マスク処理部1501の処理の一実施例をより詳細に説明する図であり、処理をソフトウェアで実現する場合のフローチャートを示す。
図17において、ステップS1701は、ラベル統合処理された画像全体に対して横長及び縦長の2種類のマスク内で走査を行う。ステップS1702は、マスク内のパターンの占める割合、即ち、マスクの大きさに対するマスク内のパターンの面積を算出し、この割合が所定値より大きいか否かを判断する。ステップS1702の判断結果がNOであれば、ステップS1703で縦成分又は横成分がないと判断して処理が終わる。他方、ステップS1702の判断結果がYESの場合は、ステップS1704でマスク内を全てパターンとみなし、全てを縦成分または横成分とする。ステップS1705は、得られた成分が上下の成分又は左右の成分と接しているか否かを判断する。ステップS1705の判断結果がNOであると、ステップS1706で得られた成分を処理結果として出力する。
【0062】
ステップS1705の判断結果がYESの場合は、ステップS1707で接している成分を統合し、ステップS1708で統合された成分から矩形範囲を作成する。ステップS1709は作成された矩形範囲の中心線を算出し、ステップS1710はその中心線を処理結果として出力する。
【0063】
次に、縦横罫線抽出部1502について述べる。縦横罫線候補の抽出には、100dpi相当の低解像度画像を用いるものとする。
まず、縦横罫線抽出部1502における線分抽出部1503では、マスク処理されたパターンを横方向及び縦方向に複数に分割し、横方向及び縦方向に分割したそれぞれの範囲でパターンの隣接投影を算出し、ある一定の長さの線分または直線の一部を矩形近似により検出する。ここで、隣接投影とは、注目行または、注目列の投影値に周囲の行又は列の投影値を足し合わせたものである。また、注目行又は注目列の投影値は、その行又は列に存在する黒画素の総和をとったものである。この隣接投影により、直線が傾いていて複数の行又は複数の列にわたってその直線が存在している場合においても、直線を正確に検出することができる。このため、ブロック枠などの大きな枠を検出する場合、その枠が傾いていても、枠を構成する直線を検出することが可能となる。
【0064】
図18は、ある矩形枠を構成する線分の投影結果を示す図である。図18において、縦方向の長さがLY 、横方向の長さがLX の矩形枠1801の水平方向jの投影値Ph( i) をHP( i) 、矩形枠1801の垂直方向iの投影値Pv( j) をVP( j) とすると、HP( 0) =HP( n) =m、HP( 1) 〜HP(n−1) =2、VP( 0) =VP( m) =n、VP( 1) 〜VP(n−1) =2である。このように矩形枠1801を構成する直線が存在している部分は、その投影値が大きくなるので、この投影値を算出することにより、矩形枠1801を構成している直線を抽出することができる。
P( i) =p( i−j) +p( i−j+1) +・・・+p( i) +・・・+p( i+j) ( 1)
また、図19は傾いた直線の画素レベルの様子を示している。この場合、図19において、( 1) 式のj=1として隣接投影値を求める。i−1行目には黒画素が9個だけ存在しているので、p( i−1) =9となり、i行目には黒画素が6個だけ存在しているので、p( i) =6となる。同様にp( i+1) =6。この結果、P( i) =p( i−1) +p( i) +p( i+1) =21となる。
【0065】
このように、直線が傾いているために、複数の行又は複数の列に渡ってその直線が存在している場合、その傾いた直線の隣接投影値は大きくなることから、枠が傾いている場合においても、枠を構成する直線を効率的に検出することが可能となる。
【0066】
図20は、隣接投影処理の動作を示すフローチャートである。図20において、ステップS2001はマスク処理部1501で得られた同一のラベルを有する部分パターンを縦方向及び横方向の複数の部分に分割する。次に、ステップS2002で、縦横それぞれの分割範囲内で投影値を算出する。ステップS2003で、算出されたそれぞれの投影値に周囲の投影値を加算する。更に、ステップS2004で、上記( 1) 式に基づいて隣接投影値を算出する。線分抽出部1503は、部分パターンのマスク処理画像に対する隣接投影値に基づいて、横方向及び縦方向におけるある一定の長さの線分又は直線の一部を、矩形近似により検出する。
【0067】
すなわち、分割された部分パターンの隣接投影値と縦横それぞれの分割長との比が所定の閾値以上となった場合は、それらの連続する複数の行又は列をまとめた矩形範囲を直線の候補が存在する位置となる。なお、この矩形近似により検出した一定の長さの線分または直線の一部を「矩形線分」と呼ぶ。
【0068】
例えば、図21( a) に示すように斜めに傾いた横線2101を3つの部分に分割し、隣接投影値が閾値以上となっている位置を算出する。この結果、図21( b) に示すように、横方向に分割された3つの矩形線分2102を得ることができる。
【0069】
ここで、隣接投影法ではなく、通常の投影法を用いて斜めに傾いている直線2101を検出した場合、その投影値は小さくなってしまうので、直線2101を検出することは不可能となる。一方、斜めに傾いている直線2101を通常の投影法で検出するために、部分パターンの分割数を増やし分割長を短くした場合、文字を構成している短い直線も多数検出され、文字と枠とを区別することが困難になる。
【0070】
これに対して隣接投影法を用いることにより、直線2101が斜めに傾いている場合でも、部分パターンの分割長を極端に小さくすることなく、隣接投影値を大きくすることが可能となることから、枠を構成する比較的長い直線を、文字を構成している短い直線と区別しながら正確に検出することができる。
【0071】
図22は、線分抽出部1503の動作を示すフローチャートである。図22において、まず、ステップS2201で、分割された部分パターンの隣接投影値と縦横それぞれの分割長との比が所定の閾値以上であるかどうかを判定する。そして、隣接投影値と縦横それぞれの分割長との比が所定の閾値以上でないと判断された場合、ステップS2203に進み、線分が存在しないものとみなす。他方、ステップS2201で隣接投影値と縦横それぞれの分割長との比が所定の閾値以上であると判断された場合、ステップS2202に進み、線分が存在するものとみなす。
【0072】
次に、ステップS2204において、ステップS2202で線分とみなされたパターンがその上下に存在する線分と接していないと判断された場合、ステップS2205に進み、矩形線分とする。一方、ステップS2206において、ステップS2202で線分とみなされたパターンがその上下に存在する線分と接していると判断された場合、ステップS2206に進み、線分とみなされたパターンとその上下に存在する線分とを統合する。そして、ステップS2207において、ステップS2206で統合した線分を矩形線分として検出する。
【0073】
図15の説明に戻ると、直線抽出部1504は、線分抽出において抽出された矩形近似された線分のうち、近隣の線分同士を統合して長い直線を検出する。検出された直線は矩形近似を行う。
【0074】
直線抽出部1504は、線分統合部、直線検出部から成る。線分統合部は、図23( a) に示す線分y、zのように途中で途切れていない矩形線分同士が接触あるいは繋がっていれば、これらの矩形線分を統合して長い直線とする。さらに、図23( a) に示す線分x、yのように、矩形線分が互いに繋がっていなくても、垂直方向の距離が上記隣接投影の際加える行又は列数j以内であれば、これらの矩形線分を統合して長い直線とする( 図23( b))。直線検出部は、線分統合部で統合された直線の長さと、同じラベルである部分パターンを近似する矩形の長さとの比が所定の閾値以上であれば、横または縦枠を構成する直線の候補であると判断する。
【0075】
図24は、直線抽出部1504の線分統合部の処理をより詳細に説明する図であり、処理をソフトウェアで実現する場合のフローチャートを示す。
図24において、ステップS2401は検出された矩形線分同士の距離を算出する。ステップS2402で、算出された距離が隣接投影の際、加える行又は列数以内であるか否かを判定する。ステップS2402の判定結果がNOであれば、ステップS2404で矩形線分の統合は行わないものとする。一方、ステップS2402の判定結果がYESであれば、ステップS2403で矩形線分の統合を行う。
【0076】
以上のように、罫線候補領域抽出部307の線分抽出部1503、直線抽出部1504について述べたが、最後に、罫線候補領域抽出部307の処理として、図15の罫線候補抽出部1505で、直線抽出部1504において抽出された直線を罫線候補として抽出を行い、処理を終了する。
【0077】
低解像画像における以上の処理が終了すると、今度は高解像度画像を用いた処理が進む。図3に戻って説明すると、罫線属性判定部308では、低解像度画像を処理することによって得られた罫線候補領域を高解像度で詳細に調査し、罫線の属性( 点線または実線) の判定を行う。
【0078】
罫線属性判定部308は、点線抽出処理部304では低解像度画像を用いて抽出したため、点線が繋がってしまっている可能性があるため、高解像度画像で再度調査することで、属性を誤ってつけていることを防ぐ役割を果たす。処理方法は、点線抽出処理部304で行ったのと同様に、連結パターン抽出部303’でラベリングされた高解像度画像を用い、同じサイズのラベルが規則的に整列しているか否かで判断する。
【0079】
次に、図3の掠れ度算出処理の対象外領域設定部309で、点線抽出処理部304で点線領域として抽出された領域と罫線属性判定部308で点線領域として得られた領域とを、掠れ度算出処理の対象外領域として設定する。
【0080】
そして、図3の掠れ度算出部310で、処理を行っている画像の罫線の品質を示す度合いとして、掠れの度合い( 掠れ度) を算出する。この結果によって、この後の処理で使用する画像及び閾値等を決定する。
【0081】
前処理で設定された掠れ度算出対象領域内に処理範囲を限定し( つまり、直線候補のみに対して処理を行う) 、対象となっている画像の掠れ度算出を行う。使用する画像の解像度は、掠れ度合いを正確に調査できるように、高解像度を用いる。
【0082】
パターンがより多くのパターンに分離している場合に掠れ度が高いとし、さらに、黒画素が消えて白画素が多いほど掠れ度が高いと判断できる。この判断基準に基づいて掠れ度を求めるため、直線候補領域内の画素探査処理において、パターンの途切れの回数及びパターンの途切れ( 白画素) の長さの算出を行う。縦横両方の罫線候補領域に対して処理を行い、算出された結果を単位長さ当たりに換算する。単位長さ当たりのパターンの途切れの回数及びパターンの途切れの長さを足し合わせたものを掠れ度とする。直線候補領域内の探索した画素数をL、領域内の白画素数をa、領域内の白画素領域の数をbとすると、掠れ度cは式( 2) のように表現できる。
【0083】
c=a/L+b/L ( 2)
図25に掠れ度算出の具体例を示す。図25( a) 〜( d) において、矩形近似された罫線候補領域の探索画素数Lは20画素である。同図( a) は白画素数aが6画素、白画素領域bが6箇所あるため、掠れ度c=6/20+6/20=0.6となる。また、同図( b) は白画素aが2画素、白画素領域が2箇所あるため、掠れ度c=2/20+2/20=0.2となる。このことから、白画素領域の個所の多いほうが掠れ度が高いことがわかる。また、同図( a) 、( b) と算出した掠れ度を比較すると、掠れ度と実際の画像の掠れ度合いは一致していると言える。
【0084】
同図( c) は白画素数aが3画素、白画素領域bか1箇所あるため、掠れ度c=3/20+1/20=0.2となる。また、同図( d) は白画素数が7画素、白画素領域が1箇所あるため、掠れ度c=7/20+1/20=0.4となる。このことから、白画素数の多いほうが掠れ度が高いことがわかる。また、同図( c) 、( d) と算出した掠れ度を比較すると、掠れ度と実際の画像の掠れ度合いは一致していると言える。
【0085】
この結果得られた掠れ度にしたがって、後の処理方法、およびパラメータの設定を行う。この後の処理概要を説明すると、掠れ度が低い場合には、許容する掠れの長さを短くし、さらに、高解像度の画像で画像を詳細に調査し、罫線候補領域が罫線か否かを判定する( 図3の罫線判別処理部311’) 。掠れ度が高い場合には、許容する掠れの長さを比較的長くし、掠れの影響の少ない低解像度画像で処理を行い( 図3の罫線判別処理部311) 、掠れ画像を対象とした,罫線の掠れを補完する処理を加える( 図3の掠れ補完処理部312) 。
【0086】
また、この掠れ度算出の際に、画像全体を一つの掠れ度で表さずに、横罫線に対する掠れ度、縦罫線に対する掠れ度というように複数の掠れ度、またはさらに細かい部分に関して掠れ度を算出しても構わない。この場合、後の処理で画像中のある部分に対して解像度の異なる画像を参照する際、パラメータ設定等も、掠れ度を設定した部分毎に行う。
【0087】
さらに、掠れ度を算出した結果、掠れのある画像であると判断された場合には、罫線抽出処理を掠れの影響をより少なくした、より低解像度な画像を用いて再度抽出することができるようにすることで、より一層の高精度化を図ることが可能である。逆に、掠れの無い場合には、高解像度の画像を用いても、掠れによる悪影響を考慮する必要がないため、より高解像度の画像で処理を行い、詳細に画像の調査を行うことを可能とすることができる。
【0088】
掠れ度が算出され、対象画像の品質が判定されると、図3に示すように掠れ度によって処理する画像が異なってくる。掠れ度が高い、すなわち掠れありと判定された場合には低解像度画像がその後の処理に用いられ、掠れ度が低い、すなわち掠れなしと判定された場合には高解像度画像がその後の処理に用いられ、掠れ度が0と算出された場合には、画像が潰れていると判定され、入力画像をそのまま用いる従来の罫線抽出処理314を行う。 図3において、掠れ度が高いと判断された後の罫線判別処理部311と、掠れ度が低いと判断された後の罫線判別処理部311’は用いる画像が異なるだけで、処理内容は同一である。罫線判別処理部311、311’は、罫線候補領域の凹凸の度合いを調べることによって罫線であるか否かを判定する。したがって、掠れ度の値が高い、つまり悪い品質の画像を用いると、直線と途切れや線が掠れにより消えかかって細くなっているなどの影響により、凹凸の度合いが高く算出され、本来罫線であるところも罫線として判定されない可能性がある。この場合、より低い解像度の画像を用いて罫線判別処理を行うことで掠れによる影響を押さえることができる。掠れ度の低い場合は、罫線の形状への影響はほとんどないと考えられるため、高解像度画像を用いて罫線判別処理を行うことで、より詳細に判断を行うことができる。
【0089】
用いる画像は異なるが、罫線判別処理部311、311’は、罫線候補パターンの凹凸度によって、そのパターンが罫線かそれとも文字から誤抽出された部分かを判断するという同一の処理を行う。凹凸度の高いものは、文字からの誤抽出とし、凹凸度の低いものは罫線であると判断する。
【0090】
罫線判別処理部311、311’では、罫線候補領域として抽出されている横線または縦線の直線について、横線の場合は左右端、縦線の場合は上下端を正確に検出するために、罫線候補領域内のパターンの探索を行う。図26は、罫線候補領域内のパターンの探索結果を示す図である。図26において、罫線の間に「研究部」の文字が記入され、「研究部」の文字列は、下方の罫線に接触している。そして、上方の罫線が罫線候補2601として抽出されているとともに、下方の罫線が罫線候補2603として抽出され、「研」の文字と「究」の文字とが互いに近接しているため、「研究部」の文字列の一部が罫線候補2602として抽出されている。
【0091】
罫線判別処理部311、311’では、これら罫線候補2601、2602、2603内のパターンについて探索を行う。この際、探索方向の変化回数を計数する。ここで、罫線候補2601のパターンは、本来罫線であることから、真っ直ぐに探索され、探索方向の変化回数の値が小さくなる。一方、罫線候補2602のパターンは、本来文字であることから、文字の形状が反映されて探索経路が屈曲し、探索方向の変化回数の値が大きくなる。
【0092】
この結果、探索方向の変化回数の値が小さいパターンを罫線とみなし、探索方向の変化回数の値が大きいパターンを罫線でないと見なすことにより、罫線候補2601のパターンを罫線であると判定することが可能となるとともに、罫線候補2602のパターンを罫線でないと判定することが可能となる。
【0093】
また、探索方向に隣接画素が存在しない場合に限り、斜め方向の画素を探索し、探索方向に隣接画素が存在している間は、同一方向に探索を行うことにより、「研究部」の文字列が接触している罫線候補2603のパターンについても、探索方向の変化回数の値が小さくなることから、罫線候補2603のパターンを罫線であると判定することが可能となる。
【0094】
罫線判別処理部311、311’は探索方向の変化の回数、つまりパターンの凹凸度が、設定した閾値を超えるか否かでそのパターンが罫線であるか否かを判定するが、図27に該閾値の設定例を示す。図27において、掠れた罫線の上方に「研究部」の文字列が記入され、掠れた罫線が罫線候補2702として抽出されているとともに、「研」の文字と「究」の文字と「部」の文字が互いに近接しているため、「研究部」の文字列の一部が罫線候補2701として抽出されている。
【0095】
罫線候補2701は、「研究部」の文字列の一部から誤って抽出されたものであり、罫線候補2701の近くには、罫線候補2701として抽出された「研究部」の文字列の残りパターンが存在している。したがって、罫線候補2701の近くに他のパターンが存在するため、罫線候補2701のパターンの凹凸度の閾値TH1を小さく設定する。このことにより罫線候補2701として抽出された「研究部」の文字列の一部を罫線候補から除外することをより正確に行うことが可能となる。
【0096】
他方、罫線候補2702は、罫線から正しく抽出されたものであり、「研究部」の文字列から離れているため、罫線候補2702の近くには文字列などの他のパターンは存在しない。したがって、罫線候補2702のパターンの凹凸度の閾値TH2を大きく設定する。このことにより、掠れているために凹凸度が大きくなってしまった罫線候補2702を、罫線候補から除外することなくより正確に罫線と判定することが可能となる。
【0097】
図28及び29に、凹凸度算出処理を示すフローチャートを示す。なお、このフローチャートでは、探索を横方向に行う場合について示している。
図28において、まずステップS2801で、罫線候補の矩形領域を探索範囲に設定する。次に、ステップS2802で、罫線候補の矩形領域内のパターンのうち、最も細い部分の横方向の座標を算出し、この最も細い部分の横方向の座標におけるパターンの中心点を算出する。そして、このパターンの中心点を探索の開始点とする。ここで、探索の開始点をパターンの最も細い部分とするのは、最も細い部分は罫線である可能性が高く、枠となる直線の探索をより確実に行うことができるからである。次に、ステップS2803で、直線の探索方向を右に設定する。次に、ステップS2804で、ステップS2802において設定した探索開始点を注目画素として設定する。
【0098】
次に、ステップS2805で、空白領域の長さをカウントする計数Kの初期値を0に設定する。ステップS2806で、右上がりまたは左上がりに探索方向が変化した回数をカウントする変数hupを0に設定し、ステップS2807で、右下がりまたは左下がりに探索方向が変化した回数をカウントする変数hblを0に設定する。また、ステップS2808で垂直方向線を横切る回数をカウントする変数hverを0に設定する。
【0099】
図30は、本発明の第2実施例に係わる画素の配置関係を示す図である。図30において、×印で示した注目画素に対し、D1は左上斜め隣に隣接する画素、D2は左に隣接する画素、D3は左下斜め隣に隣接する画素、D4は上に隣接する画素、D5は下に隣接する画素、D6は右上斜めに隣接する画素、D7は右に隣接する画素、D8は右下斜め隣に隣接する画素である。
【0100】
探索が注目画素から画素D1に進んだ場合、探索が左上がりに変化し、探索が注目画素から画素D3に進んだ場合、探索方向が左下がりに変化し、探索が注目画素から画素D6に進んだ場合、探索方向が右上がりに変化し、探索が注目画素から画素D8に進んだ場合、探索方向が右下がりに変化することとする。
【0101】
図28の説明に戻ると、ステップS2809で、注目画素が探索を行うパターンの矩形領域の内部であるかどうかを判定し、注目画素が探索を行うパターンの矩形領域の内部でない場合、ステップS2823に進み、空白領域の長さをカウントする変数Kの値を0に設定してからステップS2824に進む。
【0102】
他方、ステップS2809で注目画素が探索を行うパターンの矩形領域の内部であると判定された場合、ステップS2810に進み、注目画素に対し図30で説明したD7の位置に黒画素があるかどうかを判定する。判定がYESの場合ステップS2811に進み、注目画素をD7の位置の画素とし、注目画素に対しD7の位置に黒画素がある場合は右方向に探索を進める。
【0103】
一方、ステップS2810の判定がNOの場合、ステップS2812に進み、注目画素に対しD6の位置に黒画素があるかどうかを判定する。判定がYESの場合、ステップS2813に進み、変数hupの値を1だけ増加させてから、ステップS2814に進み、注目画素をD6の位置の画素とする。これにより、探索方向が右上がりに変化すると伴に、探索方向が右上がりに変化した回数がカウントされる。注目画素がD6の位置に移った後は、ステップS2809〜ステップS2811の処理が繰り返される。
【0104】
一方、ステップS2812の判定がNOの場合、ステップS2815に進み、注目画素に対しD8の位置に黒画素があるかどうかを判断する。判定がYESの場合、ステップS2816に進み、変数hblの値を1だけ増加させてから、ステップS2817に進み、注目画素をD8の位置の画素とする。これにより、探索方向が右下がりに変化すると伴に、探索方向が右下がりに変化した回数がカウントされる。注目画素がD8の位置に移った後は、ステップS2809〜ステップS2811の処理が繰り返される。
【0105】
一方、ステップS2815の判定がNOの場合、ステップS2818に進み、空白領域の長さをカウントする変数Kが閾値以下であるかどうかを判定する。判定結果がYESの場合、ステップS2819に進み、注目画素が黒画素であり、かつ、注目上下( D4及びD5) の画素がともに黒画素であるかを判定する。ステップS2819の判定がYESの場合、垂直方向線を横切るとみなして、ステップS2820に進み、変数hverを1だけ増加させてから、ステップS2821に進み、注目画素をD7の位置の画素とする。一方、ステップS2819の判定がNOの場合、ステップS2821に直接進み、注目画素をD7の位置の画素とする。ステップS2822で、空白領域の長さをカウントする変数Kを1だけ増加させ、ステップS2809に戻る。
【0106】
他方、ステップS2818の判定がNOの場合、ステップS2824に進み、探索方向は右に設定されているかどうかを判定する。ここで、探索方向が右に設定されている場合、ステップS2825に進み、探索方向を左に設定してから、ステップS2826に進み、ステップS2802で決定した探索開始点を注目画素に設定する。そして、ステップS2809に戻り、左方向の探索を行う。
【0107】
他方、ステップS2824の判定で探索方向が右でないと判定された場合、ステップS2827に進み、変数hup及び変数hblの値から画像の傾きに対応する値を減算することにより、画像の傾きの補正を行う。画像の傾きに対応する値は、罫線候補の傾きの平均値から予め算出しておく。そして、ステップS2828で、変数hup及び変数hbl及び変数hverの値を、ある一定の長さ当たりの値に換算する。次に、ステップS2829で、ある一定長当たりの値に換算された変数hup、変数hblまたは変数hverの値が閾値以上となった場合、そのパターンを罫線候補から除外する。
【0108】
以上の手順で得られた変数hup、変数hblおよび変数hverの値を凹凸度とし、罫線判別処理部では図27を用いて述べた凹凸度の閾値を用いて罫線であるか否かを判定する。また、変数hup、変数hblおよび変数hverの値を加算し、その結果を直線の長さに対する割合に換算し、その値を注目している直線の変化量、つまり凹凸度とするようにしてもよい。
【0109】
なお、図28及び図29のフローチャートでは、横方向の探索について述べたが、探索方向を左右から上下に変更することにより、縦方向に探索を行う場合についても同様に行うことが可能である。
【0110】
以上、図3における罫線判別処理部311、311’の処理について説明した。次に、図3の罫線統合処理部312の説明を以下に述べる。
図3に示すように、罫線統合処理部312による処理は、掠れ度算出部310で掠れありと判定された場合に、上述の罫線判別処理部311での処理を経た後に行われる。罫線統合処理部312では、掠れによって分離した罫線の統合処理を行う。
【0111】
また、図3には示していないが、掠れなしと判定された場合にも、罫線統合処理部312’を罫線統合判別処理部311’とセル抽出部313’間に挿入し、罫線抽出精度をより向上させることも可能である。この場合、掠れありと判定された場合に罫線統合処理部312で統合可能な罫線間の長さを示す閾値を大きく設定するのに対して、掠れなしと判定された後の罫線統合処理部312’では統合可能な罫線間の長さを示す閾値を小さく、または、0として処理を行わないようにする。
【0112】
例えば図31( a) に示すように、前処理までで、横線3101〜3106が抽出されている。ここで、横線3102と横線3103は掠れの影響により分離している。この場合、同じY座標上にあり、かつX方向の距離が所定値以下であるかどうかを調べる。横線3102と横線3103がこの条件を満たす場合、図31( b) に示すように、横線3102と横線3103とを統合して横線3112とする。この結果、掠れ3107を補正した横線3111〜3115を得る。
【0113】
また、縦線の場合、同じX座標上にあり、かつY方向の距離が所定値以下である直線の統合を行う。
なお、対象としている枠が、不規則な枠である場合、直線の長さや位置が様々であるため、極端に距離が離れた直線の統合を行わないようにする。
【0114】
図32は、罫線統合処理部312において横直線を統合する場合の処理の動作を示すフローチャートである。
図32において、まずステップS3201で、罫線候補領域抽出処理により抽出された横直線を二本ずつ抽出する。次に、ステップS3202で、ステップS3201で抽出された二本の直線のX方向の距離が所定の閾値以下であるかどうかを判定する。判定結果がNOの場合、処理を終了する。
【0115】
一方、ステップS3202の判定がYESの場合、ステップS3203に進み、ステップS3201で抽出された二本の横直線のY方向の距離が所定の閾値以下であるかどうかを判定する。判定結果がNOの場合、処理を終了する。
【0116】
一方、ステップS3203の判定がYESの場合、ステップS3204に進み、ステップS3201で抽出された二本の横直線を統合して一本の直線とみなす。
【0117】
図33は、罫線統合処理部312において縦直線を統合する場合の処理の動作を示すフローチャートである。図33は、横直線を統合する場合とほぼ同様である。
【0118】
図33において、まずステップS3301で、罫線候補領域抽出処理により抽出された縦直線を二本ずつ抽出する。次に、ステップS3302で、ステップS3301で抽出された二本の直線のY方向の距離が閾値以下であるかどうかを判定する。判定結果がNOの場合、処理を終了する。一方、ステップS3302の判定がYESの場合、ステップS3303に進み、ステップS3301で抽出された二本の縦直線のX方向の距離が所定の閾値以下であるかどうかを判定する。判定結果がNOの場合、処理を終了する。一方、ステップS3303の判定がYESの場合、ステップS3304に進み、ステップS3301で抽出された二本の縦直線を統合して一本の直線とみなす。
【0119】
次に、以上の処理により得られた罫線から枠を構成する直線を決定し、上下左右の四辺が枠で囲まれた矩形範囲をセルとして抽出する。図3のセル抽出部313、313’がこの役割を担う。なお、セル抽出部313、313’において、セルの抽出を行う方法は、いかなる方法を用いても構わない。ここでは、一例として以下の方法を説明する。
【0120】
図34は、本発明の第2実施例におけるセル抽出処理部313、313’の一例を説明する図である。図34( a) において、入力画像から罫線候補を取得することにより、帳票3401を構成する直線が決定される。次に、図34( b) に示すように、帳票3401を構成する直線から、横枠を決定することにより、帳票3401を行単位に分割する。次に図34( c) に示すように、帳票3401を構成する直線から、縦枠を決定することにより、帳票3401からセルを抽出する。ここで、帳票3401から抽出されたセルの中に入れ子構造3402があるかどうかを調べる。次に、図34( d) に示すように、入れ子構造3402を新たな帳票とみなして、入れ子構造3402からセルを抽出する。
【0121】
図35は、上述の横枠を決定する際の決定方法を説明する図である。図35において、帳票3401に対し、横直線▲1▼〜▲6▼及び縦直線( I) 〜( VI) が抽出され、横直線▲1▼〜▲6▼を一番上の行から順番に一行づつ組としていくことにより、横枠を決定する。例えば、横直線▲1▼と横直線▲2▼とが二本組の横線と判断され、この横直線▲1▼と横直線▲2▼とが横枠とされる。この横枠決定方法は、以下の手順により行われる。
【0122】
1) セル抽出処理部の前までの処理で、罫線候補と判別された横直線の中から、上から順番に横直線を二本抽出し、これらを二本の横直線の組の候補とする。
2) 組の候補とした二本の横直線の長さが同じ、または下の直線のほうが長ければ、その二本を横直線の組とする。このとき、二本の横直線の長さが異なる場合、長いほうの横直線を再使用可能とする。
【0123】
3) 組の候補とした二本の横線のうち、下の横直線のほうが短ければ、さらにその下の横直線を横枠の候補として、これらの横直線の長さを比較する。また、下の横直線のほうが、右方向又は左方向に短ければ、さらにその下の横直線を組みの候補とし、これらの横直線の長さを比較する。
【0124】
4) 横直線の長さの比較の結果、上記2) を満足する横直線を満足する横直線が下にないことが判明すると、この場合に限り、上の横直線とその下の横直線を組みとする。
【0125】
5) 一番下の横直線の処理後、上部にまだ未処理の横直線がある場合は、再び上から順に未処理の横直線と再使用可能な横直線とを用いて、上記1) 〜4) の処理を行い、二本の横直線の組を作る。
【0126】
図36は、上述の縦枠を決定する際の決定方法を説明する図である。図36において、帳票3401に対し、横直線▲1▼〜▲6▼及び縦直線( I) 〜( VI) が抽出され、組となっている横枠に上下とも達している縦直線( I) 〜( VI) を縦枠と決定する。例えば、縦直線( I) と縦直線( VI) とが、横枠とみなされた横直線▲1▼及び横直線▲2▼に上下とも達しているので、縦直線( I) と縦直線( VI) とが縦枠とされる。
【0127】
図37は、上述のセル抽出の方法を説明する図である。図37において、帳票3401に対し、横直線▲1▼〜▲6▼及び縦直線( I) 〜( VI) が抽出され、四方が横枠及び縦枠で囲まれた矩形領域をセルとして抽出する。例えば、横直線▲1▼と縦直線( IV) と横直線▲2▼と縦直線( I) とで囲まれた矩形領域がセルとして抽出されるとともに、横直線▲1▼と縦直線( VI) と横直線▲2▼と縦直線( IV) とで囲まれた矩形領域がセルとして抽出される。
【0128】
図38は、上述の入れ子構造の抽出の方法を説明する図である。図38において、横直線▲2▼と縦直線( III) と横直線▲4▼と縦直線( I) とで囲まれた矩形領域がセルとして抽出された場合、このセルは入れ子構造3402となっている。このため、入れ子構造3402を構成する直線から横枠及び縦枠を決定し、入れ子構造3402内で、四方が横枠及び縦枠で囲まれた矩形領域をセルとして抽出する。例えば、横直線▲2▼と縦直線( III) と横直線▲3▼と縦直線( I) とで囲まれた矩形領域、横直線▲3▼と縦直線( II) と横直線▲4▼と縦直線( I) とで囲まれた矩形領域、及び横直線▲3▼と縦直線( III) と横直線▲4▼と縦直線( II) とで囲まれた矩形領域がセルとして抽出される。
【0129】
以下に、図35に示した横枠決定方法のフローチャートを図39に示す。
図39において、まず、ステップS3901で、罫線候補と判別された直線の中から、最上部の二本の横直線を取り出す。次に、ステップS3902で、取り出した二本の直線のうち、上側の横直線をupline、下側の横直線をblline、とする。ステップS3903で、直線uplineと直線bllineとに縦方向の重なりがあるかどうかを判定する。判定結果がNOの場合、ステップS3904に進み、直線bllineの下の直線を新たに直線bllineとし、この処理を直線uplineと直線bllineとに縦方向の重なりがあることが判定されるまで続ける。
【0130】
一方、ステップS3903の判定結果がYESの場合、ステップS3905に進み、直線uplineと直線bllineとの長さが同じであるか、または直線uplineより直線bllineのほうが長いかどうかを判定する。そして、上記条件を満足する直線uplineと直線bllineが存在する場合、ステップS3908に進み、直線uplineと上記直線bllineを二本の横直線の組( 二本組の横枠) とする。なお、直線uplineと直線bllineとの長さが同じであるとは、図40に示した横直線の配置状態を説明する図のうち、同図( a) のような状態を示す。
【0131】
一方、ステップS3905において、直線uplineと直線bllineとの長さが異なっており、かつ直線uplineより直線bllineのほうが短い場合、ステップS3906に進み、直線bllineより下部に、直線uplineと長さが同じであるか、または直線uplineより長い直線blline2が存在するかどうかを判定する。判定結果がYESの場合、ステップS3907に進み、直線bllineを直線blline2に変更してステップS3908に進む。なお、直線uplineより直線bllineのほうが短いとは、図40( b) のような状態を示し、直線uplineより直線bllineのほうが長いとは、図40( c) のような状態を示す。
【0132】
ステップS3906の判定結果がNOの場合、ステップS3908に進み、直線uplineと直線bllineとを二本組の横枠とする。
次に、ステップS3909で、図41のフローチャートで示す縦枠決定処理及び入れ子処理を行う。次に、ステップS3910で、ステップS3908で二本枠とした直線uplineと直線bllineの長さが異なるかどうかを判定する。判定結果がYESの場合、ステップS3911に進み、右方向へ長い直線又は左方向に長い直線を再利用可能として、ステップS3912に進む。なお、右方向へ長い直線とは図40( d) に示す直線bllineのことを言い、左方向に長い直線とは、図40( e) に示す直線bllineである。
【0133】
一方、ステップS3910の判定結果がNOの場合、ステップS3912に進み、直線bllineより下方に直線が存在するかどうかを判定する。そして、判定結果がNOの場合、ステップS3913に進み、直線bllineとその下の直線を抽出し、ステップS3902に戻る。
【0134】
ステップS3912の判定結果がYESの場合、ステップS3914に進み、再使用可能の直線を除いて、処理済の直線を処理対象からはずす。次に、ステップS3915で、未処理の直線が存在するかどうかを判定する。判定結果がNOの場合、処理を終了する。一方、ステップS3915の判定結果がYESの場合、ステップS3916に進み、最上部から直線を二本取り出し、ステップS3902に戻る。
【0135】
図41は、ステップS3909の縦枠決定及び入れ子処理の詳細を示すフローチャートである。図41において、まず、ステップS4101で、最上位の行の二本組の横枠を選択し、ステップS4102で、罫線候補の縦直線の中から、上端と下端との両方が二本組の横枠に達しているものを選択する。次に、ステップS4103で、選択した縦直線を縦枠と決定する。次に、ステップS4104で、二本組の横枠と二本組の縦枠とで囲まれた矩形領域を抽出する。そして、ステップS4105で、矩形領域の左右二本の縦枠に両端が達している横直線が存在するかどうかを判定する。判定結果がNOの場合、次の行の横枠を選択する処理を行い、これにより新たに決定された二本組みの横枠に対して上記ステップS4102〜ステップS4107と同様の処理を実行する。
【0136】
一方、ステップS4105の判定結果がYESの場合、ステップS4106に進み、その矩形領域を新たに小さな表( 入れ子構造の矩形) とみなし、この入れ子構造の矩形領域内に存在する小さな矩形領域の横枠を決定する。そして、ステップS4107に示すように、入れ子構造の矩形領域内の縦枠を決定する処理を行う。
【0137】
以上のように、図3に示す第2実施例の罫線抽出方式について述べた。本発明により、画像の品質によらず、より高精度に罫線の抽出が可能となる。
また、本発明第1の実施例、第2の実施例で述べた罫線抽出方式を実現するためのハードウェア構成の一例を図42に示す。帳票等の画像データは、スキャナ等の入力機器4201を介して、コンピュータ等の処理装置4202に取り込まれる。ここで、上述した罫線抽出方式による一連の処理が行われる。途中の処理結果を、ディスプレイ等の出力装置4203に出力させ、出力画像により処理経過を確認しながら、抽出処理を行わせることもできる。また、図42では処理装置は単体で示してあるが、複数のコンピュータからなる処理装置やネットワークによって接続された複数の処理装置( コンピュータ) によっても実現が可能で、この場合、上述の罫線抽出方式の各処理手段を各処理装置に分散させた形態となる。
【0138】
なお、本発明は処理装置4202において画像の品質によらず、より高精度に罫線の抽出が可能な罫線抽出方式に係わるプログラムであり、図43は、本発明に係わるソフトウェアプログラムの提供方法を説明する図である。プログラムは、例えば以下の3つの方法の中の任意の方法により提供される。
【0139】
( a) コンピュータ等の処理装置4301にインストールされて提供される。この場合、プログラム等は例えば出荷前にプレインストールされる。これは、上述してきた罫線抽出方式のソフトウェアプログラムの配布方法に相当する。
【0140】
( b) 可搬性記憶媒体に格納されて提供される。この場合、可搬性記憶媒体4302に格納されているプログラム等は、コンピュータ等の処理装置4301の記憶装置にインストールされる。
【0141】
(c) ネットワーク4303上のサーバから提供される。この場合、基本的には、コンピュータ等の処理装置4301がサーバ4304に格納されているプログラム等をダウロードすることによって、そのプログラム等を取得する。
【0142】
【発明の効果】
以上詳細に説明したように、本発明によれば、画像の掠れの度合いを算出して画像の品質を評価し、それに基づいて罫線抽出処理に用いる画像を低解像度画像、高解像度画像の中から選択することにより、従来、掠れによって正しく抽出されなかったような罫線も正しく抽出することが可能となり、罫線抽出の精度を向上させることが可能となる。
【0143】
また、本発明の一態様によれば、掠れの度合いを表す掠れ度は、経線候補領域内を縦または横方向に画素探索し、罫線単位長当たりのパターンの途切れの回数及び途切れの長さを求めることで算出される。このことにより、掠れの度合いを数値化することができ、また数値化された掠れ度に応じた、罫線抽出の処理方法、罫線抽出処理に用いられる閾値、用いる画像等を設定することができる。
【0144】
また、本発明の一態様によれば、前記掠れ度は、画像データ全体に対する値と画像データの各部分に対する値とのいずれでも求めることができる。このことにより、一つの画像の各部分の画像の品質を判定することができ、その結果、後の画像データの各部分毎の処理に適した解像度の画像を選択することができる。
【0145】
また、本発明の一態様によれば、掠れによって複数部分に分離した帳票を含む画像から罫線を抽出する罫線抽出方法に関して、入力画像において縦、横、斜めの八方向のいずれかで繋がっているパターンを連結パターンとして抽出し、抽出された連結パターンのうち、ある一定の大きさを有するもの同士が接近して位置している場合、以下の3つの方法のうちいずれかを用いて同一の表として統合するか否かの判断を行う。1) それらのパターン間の白画素領域の形状を用いて判断する。2) それらのパターンの端の黒画素領域の形状を用いて判断する。3) 抽出された罫線位置の対応関係を用いて判断する。このことにより、掠れ等によって分離した帳票の表構造をより正確に抽出することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係わる罫線抽出方式を示すブロック図である。
【図2】(a) は低解像度画像の例を示す図であり、(b) は高解像度画像の例を示す図である。
【図3】本発明の第2の実施例に係わる罫線抽出方式を示すブロック図である。
【図4】本発明の第2実施例に係わる罫線抽出方式の点線抽出処理を説明する図(その1)である。
【図5】本発明の第2実施例に係わる罫線抽出方式の点線抽出処理を説明する図(その2)である。
【図6】本発明の第2実施例に係わる罫線抽出方式の点線抽出処理を説明する図(その3)である。
【図7】本発明の第2実施例に係わる罫線抽出方式の点線抽出処理を説明する図(その4)である。
【図8】本発明の第2実施例に係わる罫線抽出方式の点線抽出処理を説明する図(その5)である。
【図9】本発明の第2実施例に係わる罫線抽出方式の点線抽出処理部の動作を示すフローチャートである。
【図10】本発明の第2実施例に係わる罫線抽出方式のラベル統合処理部に入力されるデータの例を示す図であり、(a) は、もともと一つの表を構成したものが掠れによって分離した例を示し、(b) は、もともと二つの表を構成する例を示したものである。
【図11】ラベル間の白画素領域の例を示す図であり、(a) は、もともと同一の表を構成する場合であり、(b) は、もともと異なる表を構成する場合の例を示したものである。
【図12】ラベル間の白( または黒) 画素の形状によりラベルを統合するか否かの判定を行う場合のラベル統合処理のフローチャートを示す図である。
【図13】対象ラベルの罫線の対応関係の例を示す図であり、(a) は、もともと同一の表を構成する場合であり、(b) は、もともと異なる表を構成する場合の例を示したものである。
【図14】罫線の位置情報( 対応関係) を用いてラベルを統合するか否かの判定を行う場合のラベル統合処理のフローチャートを示す図である。
【図15】本発明の第2実施例に係わる罫線候補領域抽出部のブロック図の一例を示す図である。
【図16】本発明の第2実施例に係わるマスク処理の方法を示す図である。
【図17】本発明の第2実施例に係わるマスク処理の動作を示すフローチャートである。
【図18】枠を構成する線分のの投影結果を示す図である。
【図19】本発明の第2実施例に係わる線分抽出部における隣接投影処理を説明する図である。
【図20】本発明の第2実施例に係わる線分抽出部における隣接投影処理の動作を示すフローチャートである。
【図21】本発明の第2実施例に係わる線分抽出処理を示す図である。
【図22】本発明の第2実施例に係わる線分抽出処理部の動作を示すフローチャートである。
【図23】本発明の第2実施例に係わる直線抽出処理を示す図である。
【図24】本発明の第2実施例に係わる直線抽出処理部における線分統合処理の動作を示すフローチャートである。
【図25】本発明の第2実施例に係わる掠れ度算出処理を示す図である。
【図26】本発明の第2実施例に係わる罫線判別処理において、罫線候補領域のパターン探索結果を示す図である。
【図27】本発明の第2実施例に係わる罫線判別処理部において、罫線候補領域のパターンの凹凸度の閾値の設定例を示す図である。
【図28】本発明の第2実施例に係わる罫線判別処理部における凹凸度算出処理を示すフローチャートである。
【図29】図28のフローチャートの続きである。
【図30】本発明の第2実施例に係わる画素の配置関係を示す図である。
【図31】本発明の第2実施例に係わる罫線統合処理部における横直線統合処理を説明する図である。
【図32】本発明の第2実施例に係わる罫線統合処理部において、横直線を統合する場合の処理の動作を示すフローチャートである。
【図33】本発明の第2実施例に係わる罫線統合処理部において、縦直線を統合する場合の処理の動作を示すフローチャートである。
【図34】本発明の第2実施例に係わるセル抽出処理部の処理を説明する図である。
【図35】本発明の第2実施例に係わるセル抽出処理部における横枠決定方法を説明する図である。
【図36】本発明の第2実施例に係わるセル抽出処理部における縦枠決定方法を説明する図である。
【図37】本発明の第2実施例に係わるセル抽出処理部におけるセル抽出方法を説明する図である。
【図38】本発明の第2実施例に係わるセル抽出部における入れ子構造の抽出方法を説明する図である。
【図39】本発明の第2実施例に係わるセル抽出部における横枠決定方法を示すフローチャートである。
【図40】本発明の第2実施例に係わる横直線の配置状態を説明する図である。
【図41】本発明の第2実施例に係わるセル抽出部における縦枠決定及び入れ子処理を示すフローチャートである。
【図42】本発明に係わる罫線抽出方式を実行するハードウェア構成の一例を示す図である。
【図43】本発明に係わるソフトウェアプログラム等の提供方法を説明する図である。
【図44】あらかじめ枠の情報を必要としない帳票処理における従来法の一例を示す図である。
【符号の説明】
101画像入力手段
102異なる解像度の画像生成手段
103罫線候補領域抽出手段
104画像の品質評価手段
105品質に応じた処理方法または閾値を選択する手段
106部分処理毎に適した画像解像度を選択する手段
107罫線抽出処理( セル抽出) 手段
301低解像度画像作成部
302高解像度画像作成部
303、303’連結パターン抽出部
304点線抽出処理部
305点線画像消去部
306ラベル統合処理部
307罫線候補領域抽出部
308罫線属性判定部
309掠れ度算出処理の対象外領域設定部
310掠れ度算出部
311、311’罫線判別処理部
312罫線統合処理部( 掠れ補完処理)
313セル抽出部
314従来の処理
1501マスク処理部
1502縦横罫線の抽出
1503線分抽出部
1504直線抽出部
1505罫線候補抽出部
4201入力機器
4202処理装置( コンピュータ等)
4203出力装置
4301処理装置( コンピュータ等)
4302記憶媒体
4303ネットワーク
4304サーバ
Claims (7)
- 画像データ内の帳票を構成する罫線を抽出する罫線抽出方式であって、
入力画像から、解像度が該入力画像と等しいか低い画像である高解像度画像と、該高解像度画像よりも解像度の低い画像である低解像度画像とを、該入力画像のデータを間引くことで生成する手段と、
前記低解像度画像から罫線候補領域を抽出する罫線候補領域抽出手段と、
前記罫線候補領域抽出手段が抽出した罫線候補領域を前記高解像度画像で画素探索し、検出された途切れの回数及び途切れの長さを用いて罫線の掠れの度合いを算出し、該掠れの度合いから前記入力画像全体の品質を評価する手段と、
前記評価する手段が、掠れの度合いが少ないと評価をした場合は前記高解像度画像を、掠れの度合いが大きいと評価をした場合は前記低解像度画像を処理画像として選択する手段と、
選択された前記処理画像において、前記罫線候補領域抽出手段が抽出した罫線候補領域内のパターンの凹凸度が閾値より低い場合に、該パターンを罫線パターンとして抽出する手段と、
を備えることを特徴とする罫線抽出方式。 - 画像データ内の帳票を構成する罫線を抽出する罫線抽出方式であって、
入力画像から、解像度が該入力画像と等しいか低い画像である高解像度画像と、該高解像度画像よりも解像度の低い画像である低解像度画像とを、該入力画像のデータを間引くことで生成する手段と、
前記低解像度画像から前記入力画像のそれぞれの部分の罫線候補領域を抽出する罫線候補領域抽出手段と、
前記罫線候補領域抽出手段が抽出した罫線候補領域を前記高解像度画像で画素探索し、検出された途切れの回数及び途切れの長さを用いて罫線の掠れの度合いを算出し、該掠れの度合いから前記入力画像のそれぞれの部分の品質を評価する手段と、
前記入力画像のそれぞれの部分に対して、前記評価する手段が、掠れの度合いが少ないと評価をした場合は第1の閾値を小さく設定し、掠れの度合いが大きいと評価をした場合は該第1の閾値を大きく設定する手段と、
前記評価する手段が、掠れの度合いが少ないと評価をした場合は前記高解像度画像を、掠れの度合いが大きいと評価をした場合は前記低解像度画像を、前記入力画像のそれぞれの部分に対する処理画像として選択する手段と、
選択された前記処理画像において、前記罫線候補領域抽出手段が抽出した罫線候補領域内のパターンの凹凸度が第2の閾値より低い場合に、該パターンを罫線パターンとして抽出する手段と、
抽出された2つの罫線パターンの距離が前記第1の閾値以下の場合に該2つの罫線パターンを統合する手段と、
を備えることを特徴とする罫線抽出方式。 - 前記生成する手段は、前記入力画像から間引くデータが多い前記低解像度画像と、前記入力画像から間引くデータが少ない前記高解像度画像とを生成することを特徴とする請求項2記載の罫線抽出方式。
- 前記罫線候補領域抽出手段による処理を行う前に、前記低解像度画像を用いて点線の抽出を行い、点線を構成するパターンを除去する処理を行う手段を更に備えることを特徴とする請求項2記載の罫線抽出方式。
- 罫線候補領域抽出手段によって抽出された罫線候補領域内を、前記高解像度画像を用いて点線抽出処理および罫線抽出処理を行うことで、直線の属性を判断する罫線属性判定手段を更に備えることを特徴とする請求項2記載の罫線抽出方式。
- 前記評価する手段は、前記罫線候補領域内を画素探索することで、パターンの途切れの回数及び途切れの長さを求め、得られた途切れの回数及び途切れの長さを単位長さ当たりの途切れの回数及び途切れの長さに換算し、該単位長さ当たりの途切れの回数及び途切れの長さを加算して前記掠れの度合いを求めることを特徴とする請求項2記載の罫線抽出方式。
- 画像データ内の帳票を構成する罫線を抽出するプログラムを記憶した記憶媒体であって、
入力画像から、解像度が該入力画像と等しいか低い画像である高解像度画像と、該高解像度画像よりも解像度の低い画像である低解像度画像とを、該入力画像のデータを間引くことで生成するステップと、
前記低解像度画像から前記入力画像のそれぞれの部分の罫線候補領域を抽出するステップと、
抽出された罫線候補領域を前記高解像度画像で画素探索し、検出された途切れの回数及び途切れの長さを用いて罫線の掠れの度合いを算出し、該掠れの度合いから前記入力画像のそれぞれの部分の品質を評価するステップと、
前記入力画像のそれぞれの部分に対して、掠れの度合いが少ないと評価された場合は第1の閾値を小さく設定し、掠れの度合いが大きいと評価された場合は該第1の閾値を大きく設定するステップと、
掠れの度合いが少ないと評価された場合は前記高解像度画像を、掠れの度合いが大きいと評価された場合は前記低解像度画像を、前記入力画像のそれぞれの部分に対する処理画像として選択するステップと、
選択された前記処理画像において、前記抽出された罫線候補領域内のパターンの凹凸度が第2の閾値より低い場合に、該パターンを罫線パターンとして抽出するステップと、
抽出された2つの罫線パターンの距離が前記第1の閾値以下の場合に該2つの罫線パターンを統合するステップと、
を含む処理を処理装置に実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28790999A JP4409678B2 (ja) | 1999-10-08 | 1999-10-08 | 罫線抽出方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28790999A JP4409678B2 (ja) | 1999-10-08 | 1999-10-08 | 罫線抽出方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001109888A JP2001109888A (ja) | 2001-04-20 |
JP4409678B2 true JP4409678B2 (ja) | 2010-02-03 |
Family
ID=17723306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28790999A Expired - Fee Related JP4409678B2 (ja) | 1999-10-08 | 1999-10-08 | 罫線抽出方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4409678B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4966077B2 (ja) * | 2007-04-12 | 2012-07-04 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
CN105787937B (zh) * | 2016-02-25 | 2019-03-01 | 武汉大学 | 一种基于osm的高分辨遥感影像道路变化检测方法 |
-
1999
- 1999-10-08 JP JP28790999A patent/JP4409678B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001109888A (ja) | 2001-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5335290A (en) | Segmentation of text, picture and lines of a document image | |
JP4065460B2 (ja) | 画像処理方法及び装置 | |
JP3792747B2 (ja) | 文字認識装置及び方法 | |
US5892843A (en) | Title, caption and photo extraction from scanned document images | |
JP3748164B2 (ja) | パターン抽出装置 | |
JP4469873B2 (ja) | 画像文書の検索装置、プログラム、及び記録媒体 | |
JP3950777B2 (ja) | 画像処理方法、画像処理装置および画像処理プログラム | |
EP1081648B1 (en) | Method for processing a digital image | |
CN110766017B (zh) | 基于深度学习的移动终端文字识别方法及系统 | |
JP2002024836A (ja) | ディジタルイメージから表題を抽出する方法 | |
US6711292B2 (en) | Block selection of table features | |
RU2640322C2 (ru) | Способы и системы эффективного автоматического распознавания символов | |
JP2010218420A (ja) | 文字認識装置、画像読取装置、およびプログラム | |
CN112507782A (zh) | 文本图像的识别方法及装置 | |
JP3411472B2 (ja) | パターン抽出装置 | |
CN115661848A (zh) | 一种基于深度学习的表格提取和识别方法及系统 | |
RU2626656C2 (ru) | Способ и система определения ориентации изображения текста | |
JPH0950527A (ja) | 枠抽出装置及び矩形抽出装置 | |
CN117011855A (zh) | 一种字符串图像切割识别方法、系统和可读存储介质 | |
JP4409678B2 (ja) | 罫線抽出方式 | |
JP3720892B2 (ja) | 画像処理方法および画像処理装置 | |
JP5029412B2 (ja) | テロップ文字パターン抽出プログラム、テロップ文字パターン抽出装置、およびテロップ文字パターン抽出方法 | |
JP4194309B2 (ja) | 文書方向推定方法および文書方向推定プログラム | |
JP3607753B2 (ja) | 文書画像の領域分割方法および装置、並びに段組種類判別方法および装置 | |
JP3187895B2 (ja) | 文字領域抽出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090708 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090909 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091112 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131120 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |