(57)【特許請求の範囲】
【請求項１】
文字を含む画像情報から罫線により分離された項目毎に文字情報を抽出する文字抽出装置において、
前記画像情報から前記罫線を抽出するとともに、前記罫線の断絶した部分を周囲の直線に基づいて短冊状の矩形で表現した仮想罫線を設定する罫線抽出手段と、
前記罫線抽出手段により設定された前記仮想罫線に文字が接触しているか否かを判定する接触判定手段と、
前記接触判定手段により前記仮想罫線に接触している文字があると判定されたときに、前記仮想罫線に接触している文字と前記仮想罫線との位置関係及び前記仮想罫線に接触している文字の近隣の文字との位置関係に応じて前記仮想罫線に接触している文字が含まれる項目を判定する項目判定手段とを有することを特徴とする文字抽出装置。
【請求項２】
前記項目判定手段は、前記仮想罫線に接触している文字の中心と前記仮想罫線に中心とが略一致する位置関係のとき、前記仮想罫線に接触している文字を前記仮想罫線の中心で複数の文字に分離することを特徴とする請求項１記載の文字抽出装置。
【請求項３】
前記項目判定手段は、前記仮想罫線に接触している文字の含まれる項目を前記文字に近接する文字との距離に応じて判定することを特徴とする請求項１又は２記載の文字抽出装置。
【請求項４】
前記項目判定手段は、前記仮想罫線に接触している文字を含む文字列のピッチに応じて前記仮想罫線に接触している文字が含まれる項目を判定することを特徴とする請求項１乃至３のいずれか一項記載の文字抽出装置。
【請求項５】
前記項目判定手段は、前記仮想罫線に接触している文字が延在可能な方向からのずれに応じて前記仮想罫線に接触している文字が含まれる項目を判定することを特徴とする請求項１乃至４のいずれか一項記載の文字抽出装置。
【請求項６】
前記項目判定手段は、前記項目を構成する任意の辺が前記罫線抽出手段で抽出された前記罫線と前記仮想罫線設定手段で設定された前記仮想罫線とで構成される場合、前記罫線抽出手段により抽出された前記罫線の位置を優先して前記仮想罫線に接触する文字が含まれる項目を判定することを特徴とする請求項１乃至５のいずれか一項記載の文字抽出装置。
【請求項７】
前記項目判定手段は、項目の判定結果、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に前記仮想罫線に接触する文字を含ませ、他の項目には前記仮想罫線に接触する文字が含まれないように項目を変更することを特徴とする請求項１乃至６のいずれか一項記載の文字抽出装置。
【請求項８】
前記項目判定手段は、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に含まれるべく判定された前記仮想罫線に接触する文字を他の項目に含ませることにより前記重複が解除されるときには、前記仮想罫線に接触する文字が他の項目に含まれるように項目を変更することを特徴とする請求項１乃至７のいずれか一項記載の文字抽出装置。
【請求項９】
前記項目判定手段は、隣接する項目で仮想罫線を含む領域が重複する場合に、前記隣接する項目の重複が解除できるように前記仮想罫線に接触する文字を一つの項目から他の項目に移動させることを特徴とする請求項７又は８記載の文字抽出装置。
【請求項１０】
前記項目判定手段は、隣接する項目で仮想罫線を含む領域が重複する場合に、予め設定された回数だけ前記隣接する項目の重複が解除できるように前記仮想罫線に接触する文字を一つの項目から他の項目に移動させることを特徴とする請求項８又は９記載の文字抽出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は文字抽出装置に係り、特に、罫線に囲まれた項目内に存在すべき文字を抽出するための文字抽出装置に関する。
近年、金融文書、ビジネス文書等の入力周辺機器として、ＯＣＲ（Optical Character Reader）等の手書き文字認識装置の需要が増加している。ＯＣＲにおいて、個々の文字の認識率を向上させるためには認識の前段階である文字の切り出し処理を正確に行う必要がある。
【０００２】
金融文書やビジネス文書等、特に帳票等では、文字を記入する位置が予め指示されている。また、帳票等は文字を記入する枠等がドロップアウトカラーではなく、文字と同様な濃度の高い色、すなわち、黒枠等の罫線で記載されている。一方、ＯＣＲでは文字が指定した範囲内にきれいに書かれていれば、比較的高い認識率で自動認識を実現することができるが、手書き文字が記入を指定された範囲を越えて指定された範囲を示す枠を示す罫線に接触したり、はみ出したりすると、認識率が著しく低下してしまう。
【０００３】
したがって、このようなＯＣＲにおいては、罫線に接触している文字から文字だけを正確に切り出す必要がある。
【０００４】
【従来の技術】
従来のＯＣＲでは、文字認識を行う前に、入力された画像から１文字ずつの文字パターンを切り出す文字の切り出し処理が行われる。ＯＣＲにおいて、個々の文字の高い認識率を実現するためには、認識の前処理である文字の切り出し処理を正確に行うことが重要になる。
【０００５】
このため、従来の光学文字読み取り装置で文字を読み取る場合、帳票などの文字の記入位置を予め指定した文書（ドロップアウトカラーではなく黒枠などの罫線と文字とが同じような色又は濃度で記入された文書）に対し、指定された範囲内に文字を記入することにより、高い認識率を実現するようにしていた。
【０００６】
ところが、従来のＯＣＲでは、指定範囲を示す罫線や枠に文字が接触したり、指定範囲を示す罫線や枠から文字がはみ出したりした場合、文字を正確に切り出すことが困難となり、文字の認識率が低下するという問題があった。例えば、現在使用されているＯＣＲでは、枠を除去する際、文字枠のわすかな傾きや凹凸に対応することができす、文字枠の位置や線幅の変動により本来の文字部分の所が欠けてしまったり、枠が残存したりする。
【０００７】
これらの問題点に対応するため、本出願人は、以前、例えば、特開平６−３０９４９８号公報や特開平７−２８９３７号公報に記載されているように、枠の位置やサイズ等のフォーマット情報の入力を必要とせずに、枠の抽出や除去を行うことが可能な技術を提案した。
【０００８】
ここで、特開平６−３０９４９８号公報や特開平７−２８９３７号公報に記載されている方法により処理可能な帳票は、一文字枠、ブロック枠（横一行枠またはフリーフォマット枠）、または枠の外形が矩形状となっており横枠線が規則的に配置されている構造を持つ表を有するものであった。
【０００９】
また、本出願人は、先願の特願平７−２０３２５９号において、枠の外形が矩形状となっており横枠線が規則的に配置されている構造を持つ表などに対しても対応することが可能な技術を提案した。
さらに、本出願人は、先願の特願平７−２８２１７１号において、図３２に示すように、点線と実線とが混在し、かすれのある線で構成される表を有する帳票などに対しても対応することが可能な技術を提案した。
【００１０】
以下、先願の特願平７−２８２１７１号の明細書及び図面に記載されているパターン抽出装置の処理の概要について説明する。まず、入力された画像にラベリングを行い、縦、横及び斜めの８方向のいすれかで繋がっている８連結の部分パターンを連結パターンとして抽出する。
【００１１】
次に、ラベリングにより抽出された運結パターンに対してマスク処理を行うことにより、縦横線分を細線化し、文宇と枠の大さの差を減らす。ここで、マスク処理は、連結パターンに対し、画像全体に対して横長、縦長の２種類のマスクによる走査を行って、パターンがマスク内において占める割合を算出し、その割合がある所定値より大きければそのマスク内を全てパターンとみなし、また該所定値以下であれば、マスク内のパターンを削除することにより、縦横成分を抽出するものである。
【００１２】
次に、マスク処理されたパターンを横方向及び縦方向に複数に分割し、横方向及び縦方向に分割したそれぞれの範囲内でパターンの隣接投影値を算出し、この隣接投影値に基づいて、ある一定の長さの線分又は直線の一部を矩形近似により検出する。ここで、隣接投影値とは、注目行又は注目列の投影値に周囲の行又は列の投影値を足し合わせたものである。
【００１３】
次に、隣接投影法により求めた矩形線分のうち、近隣の矩形線分同士を統合して長い直線とし、統合して得られた直線を矩形近似し、横枠又は縦枠を構成する直線の候補とする。
次に、矩形近似された横線または縦線の直線の検索を行い、横線の場合は左右端、縦線の場合は上下端を検出する。この際、かすれのある直線に対応するため、所定の長さ以下の空白は直線が存在するものとみなして、検索を行う。
【００１４】
次に、ある一定の間隔で並んでいる小さいパターンを検出して点線を抽出し、この点線に対して上述した直線と同様に矩形近似を行う。次に、探索により求めた直線のうち、近隣の直線同土を再度統合してかすれにより分離された直線の統合を行う。
【００１５】
次に、帳票が規則的な構造であるとわかっている場合、かすれにより短くなった直線を伸長し、そのかすれにより短くなった直線を他の直線と長さと一致させる。
次に、上述した処理により検出された横線の中から、各行の横枠を構成している２本の横線の組を決定する。これは、上から順番に横線を２本抽出し、抽出した２本の横線の長さが同じ、又は下の直線の方が長ければ、その２本を横線の組とする。そして、抽出した２本の横線の長さが同じ、又は下の直線の方が長いようにできない場合に限り、下の直線の方が短くても組にする。
【００１６】
次に、上述した処理により検出された横線の中から、横枠の２本組として決定された２本の横線に上下とも達しているものを縦枠とする。次に、２本組の横枠と、該２本組の横枠の上下に達している２本の縦枠とで囲まれた矩形範囲を抽出する。
【００１７】
次に、上述した処理により決定された横枠と縦枠によって４辺を囲まれた矩形範囲の内部がさらに細かく分割されている場合、その矩形範囲を新たに表とみなして上述した処理を繰り返すことにより、その矩形範囲をさらに小さな矩形に分割する。
【００１８】
このように、従来の技術では、枠の形状に関して、規則的な構造や不規則的な構造のいすれに対しても、矩形領域で構成されている表であれば処理可能であった。また、処理の対象とする罫線に関して、実線や点線のいすれに対しても、かすれの有り無しにかかわらず、処理可能であった。また、規則的な構造であるとわかっている場合、かすれにより短くなった直線を伸長することにより、かすれを補正することも行われていた。
【００１９】
しかしながら、このようなパターン抽出装置は、図３２に示すように、規則的な構造を有する表に対して、かすれにより短くなった直線、を伸長することにより、かすれを補正する際、表の傾きがないものとして、垂直方向に枠線の範囲が生成されるようになっていた。このため、かすれにより短くなった直線を伸長する際に、図３３の「項目１」に記載された「１０」の文字は「項目２」に記載された「１００−０００」の枠線の範囲に入ってしまい、文字が枠を構成する直線の一部とみなされて、読み取りが不可能になる文字が発生するという問題があった。
【００２０】
上記の問題点を解決するために、本出願には特願平８−１０７５６８号（平成８年４月２６日出願、「パターン抽出装置及びパターン領域の切り出し方法」）により表の傾きを考慮し、また、かすれを補完する罫線を設定する構成を発明した。この出願では、かすれを補完する仮想罫線を設定したのち、補完した仮想罫線に文字が接触する場合、接触文字から所定の距離外側に仮想罫線を設定する処理が記載されている。
【００２１】
【発明が解決しようとする課題】
しかしながら、従来の特願平７−２８２１７１号に示すパターン抽出装置では、図３２に示すように、規則的な構造を有する表に対して、かすれにより短くなった直線を伸長することにより、かすれを補正する際、表の傾きがないものとして、垂直方向に枠線の範囲が生成されるようになっていた。このため、かすれにより短くなった直線を伸長する際に、図３３の「項目１」に記載の「１０」の文字は「項目２」に記載の「１００−０００」の枠線の範囲に入ってしまい、文字が項目を構成する直線の一部とみなされて、読み取りが不可能になる文字が発生するという問題があった。
【００２２】
また、特願平８−１０７５６８号（平成８年４月２６日出願、「パターン抽出装置及びパターン領域の切り出し方法」）では、図３４に示すように罫線を補正し、項目を区別し、このとき、補完した仮想罫線に文字が接触する場合には、単に接触文字から所定の距離外側に仮想罫線を設定することにより、仮想罫線に接触する文字の所属する項目の判定を行っていたため、文字記入時に文字を記入しようとする項目に隣接する項目側にはみ出して記載してしまった場合などには、隣接する項目側の文字と判定されてしまい、文字が仮想罫線に接触する場合の文字の含まれる項目の判定が不確実となり、認識率が低い等の問題点があった。
【００２３】
本発明は上記の点に鑑みてなされたもので、仮想罫線に接触した文字を仮想罫線のいずれの側の項目に属するかを正確に判定し、項目内の文字判定を正確に行える文字抽出装置を提供することを目的とする。
【００２４】
【課題を解決するための手段】
本発明の請求項１は、文字を含む画像情報から罫線により分離された項目毎に文字情報を抽出する文字抽出装置において、
前記画像情報から前記罫線を抽出するとともに、前記罫線の断絶した部分を周囲の直線に基づいて短冊状の矩形で表現した仮想罫線を設定する罫線抽出手段と、
前記罫線抽出手段により設定された前記仮想罫線に文字が接触しているか否かを判定する接触判定手段と、
前記接触判定手段により前記仮想罫線に接触している文字があると判定されたときに、前記仮想罫線に接触している文字と前記仮想罫線との位置関係及び前記仮想罫線に接触している文字の近隣の文字との位置関係に応じて前記仮想罫線に接触している文字が含まれる項目を判定する項目判定手段とを有することを特徴とする。
【００２５】
請求項１によれば、罫線がかすれ等により断絶していても周囲の直線に基づいて仮想的な罫線である仮想罫線を設定し、項目の判別を可能としており、このとき、仮想罫線との位置関係、及び、仮想罫線に接触する文字と隣接する文字との位置関係に応じてどの項目に含めるかを判定し、項目内に文字を配置するので、罫線にかすれ等があり、かすれ罫線上に配置された文字を確実に項目に分けることができ、項目分けを確実に行える。
【００２６】
請求項２は、前記項目判定手段が前記仮想罫線に接触している文字の中心と前記仮想罫線に中心とが略一致する位置関係のとき、前記仮想罫線に接触している文字を前記仮想罫線の中心で複数の文字に分離することを特徴とする。
請求項２によれば、文字が仮想罫線の中心にあるときには文字を分離することにより、隣接する項目間で仮想罫線上で複数の文字が接触した場合などでも、各項目に文字を分離することができる。
【００２７】
請求項３は、前記項目判定手段が前記仮想罫線に接触している文字の含まれる項目を前記文字に近接する文字との距離に応じて判定することを特徴とする。
請求項３によれば、仮想罫線に接触している文字を隣接する文字との距離に応じて含まれる項目を判定しており、通常、１つの項目内では一連の文字列となるので、文字間の距離が近くなるので、距離が近い方の文字列に仮想罫線に接触している文字を含ませることにより、所属する項目を確実に判定できる。
【００２８】
請求項４は、前記項目判定手段が前記仮想罫線に接触している文字を含む文字列のピッチに応じて前記仮想罫線に接触している文字が含まれる項目を判定することを特徴とする。
請求項４によれば、文字列のピッチに応じて仮想罫線に接触している文字が含まれる項目を判定しており、通常、１つの項目内では一連の文字列となるので、文字間のピッチは略一定となるので、隣接する文字列と仮想罫線に接触している文字とのピッチが隣接する文字列のピッチが略等しくなる方の文字列を含む項目に含ませることにより、所属する項目を確実に判定できる。
【００２９】
請求項５は、前記項目判定手段が前記仮想罫線に接触している文字が延在可能な方向からのずれに応じて前記仮想罫線に接触している文字が含まれる項目を判定することを特徴とする。
請求項５によれば、通常、１つの項目内では一連の文字列となるので、仮想罫線に接触している文字が延在可能な方向から大きくずれた位置にある文字列は、仮想罫線に接触している文字と一連の文字列をなすとは判断できないので、仮想罫線に接触している文字が延在可能な方向からのずれができるだけ小さい位置にある文字列が含まれる項目に含めることにより、正確な項目の判定ができる。
【００３０】
請求項６は、前記項目判定手段が前記項目を構成する任意の辺が前記罫線抽出手段で抽出された前記罫線と前記仮想罫線設定手段で設定された前記仮想罫線とで構成される場合、前記罫線抽出手段により抽出された前記罫線の位置を優先して前記仮想罫線に接触する文字が含まれる項目を判定することを特徴とする。
【００３１】
請求項６によれば、仮想罫線より通常の罫線を優先して項目を判定することにより、通常の罫線により確実に項目の判定が可能となる。
請求項７は、前記項目判定手段が項目の判定結果、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に前記仮想罫線に接触する文字を含ませ、他の項目には前記仮想罫線に接触する文字が含まれないように項目を変更するすることを特徴とする。
【００３２】
請求項７によれば、項目の判定結果、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に仮想罫線に接触する文字を含ませ、他の項目からは前記仮想罫線に接触する文字を削除することにより、仮想罫線を含む文字を１つの項目のみ含めることができ、複数の項目で用いられることがなくなり、項目に含まれる文字を正確に分割できる。
【００３３】
請求項８は、前記項目判定手段を隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に含まれるべく判定された前記仮想罫線に接触する文字を他の項目に含ませることにより前記重複が解除されるときには、前記仮想罫線に接触する文字が他の項目に含まれるように項目を変更することを特徴とする。
【００３４】
請求項８によれば、項目の判定結果、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に含まれるべく判定された仮想罫線に接触する文字を他の項目に含ませることにより重複が解除されるときには、仮想罫線に接触する文字が他の項目に含まれるように項目を変更することにより、重複が解除されるので、仮想罫線に接触する文字が複数の項目で用いられることがなくなり、項目に含まれる文字を正確に分割できる。
【００３５】
請求項９は、前記項目判定手段が隣接する項目で仮想罫線を含む領域が重複する場合に、前記隣接する項目の重複が解除できるように前記仮想罫線に接触する文字を一つの項目から他の項目に順次移動させることを特徴とする。
請求項９によれば、通常、項目は重複していないので、隣接する項目で仮想罫線を含む領域が重複する場合に、隣接する項目の重複が解除できるように仮想罫線に接触する文字を一つの項目から他の項目に順次移動させることにより、仮想罫線に接触する文字を項目が重複しない、最適な項目に含ませることができる。
【００３６】
請求項１０は、前記項目判定手段が隣接する項目で仮想罫線を含む領域が重複する場合に、予め設定された回数だけ前記隣接する項目の重複が解除できるように前記仮想罫線に接触する文字を一つの項目から他の項目に移動させることを特徴とする。
【００３７】
請求項１０によれば、予め設定された回数だけ仮想罫線に接触する文字を一つの項目から他の項目に移動させることにより仮想罫線に接触する文字を不要に移動させることがなく、仮想罫線に接触する文字を最適な項目に、短い時間で移動させることができる。
【００３８】
【発明の実施の形態】
図１に本発明の一実施例の機能ブロック図を示す。
本実施例の文字抽出装置１は、文字を含む画像中より罫線、及び、画像情報のかすれ等により断絶された罫線を補完する仮想罫線を抽出する罫線抽出部２、罫線抽出部２により抽出された罫線で囲まれた部分を項目として抽出する項目抽出部３、項目抽出部３で抽出された項目内の仮想罫線の有無を判定する仮想罫線有無判定部４、仮想罫線有無判定部４の判定結果、仮想罫線が設定されていない項目のとき、項目抽出部３で抽出された項目内の文字を切り出す文字切り出し部５、仮想罫線有無判定部４の判定結果、仮想罫線が設定された項目のとき、仮想罫線に接触する文字の有無を判定する接触判定部６、接触判定部６の判定結果、仮想罫線に接触する文字がないときに、罫線及び仮想罫線で囲まれる領域を１つの項目として項目内の文字を抽出する罫線内文字抽出部７、接触判定部６の判定結果、仮想罫線に文字が接触するとき、罫線に接触する文字が罫線の上下左右いずれの項目に含まれるかを判定する項目判定部８、文字切り出し部５、罫線内文字抽出部７、項目判定部８で項目毎に抽出された文字を出力する出力部９、出力部９から項目毎に出力された文字を項目毎に認識する文字認識部１０から構成される。
【００３９】
罫線抽出部２は、特許請求の範囲の罫線抽出手段に相当しており、例えば、図３２に示すように「項目１」と「項目２」との間、「項目２」と「項目３」との間、「項目３」と「項目４」との間の縦方向の罫線の一部にかすれ等により断絶がある画像情報が供給され、特願平８−１０７５６８号（平成８年４月２６日出願、「パターン抽出装置及びパターン領域の切り出し方法」）に示す方法によりかすれた罫線を補完して、図３４に２重線で示すような罫線に直線的に連結される仮想罫線を抽出し、罫線と共に項目抽出部３に供給する。
【００４０】
項目抽出部３は、罫線抽出部２で抽出された罫線及び仮想罫線により囲まれた領域を項目として抽出する。
仮想罫線有無判定部４は、項目抽出部３で抽出された項目のうち、全てが完全な罫線で囲まれた項目と仮想罫線を含む項目とを判別し、全てが完全な罫線で囲まれた項目は文字切り出し部５に供給し、仮想罫線を含む項目は接触判定部６に供給する。
【００４１】
文字切り出し部５には、仮想罫線有無判定部４で全て完全な罫線で囲まれた項目、すなわち、図３４でに示される項目Ａ１、Ａ２、Ａ３・・・等の項目が供給され、特願平８−１０７５６８号（平成８年４月２６日出願、「パターン抽出装置及びパターン領域の切り出し方法」）に示すような従来の方法で文字が切り出される。
【００４２】
また、接触判定部６は特許請求の範囲中の接触判定手段に相当し、仮想罫線有無判定部４で仮想罫線を含む項目、すなわち、図３４に示される項目Ｂ１、Ｂ２、Ｂ３・・・等の項目が供給され、供給された仮想罫線を含む項目のうち、項目内の文字が仮想罫線に接触する項目を判定する。接触判定部６で仮想罫線に接触する文字がない項目は、罫線内文字抽出部７に供給され、仮想罫線に接触する文字がある項目は、本発明の特徴となる項目判定部８に供給される。
【００４３】
罫線内文字抽出部７は、特願平８−１０７５６８号（平成８年４月２６日出願、「パターン抽出装置及びパターン領域の切り出し方法」）等に既に示した従来の方法により、項目内の文字を一連の文字列として抽出し、出力部９に供給する。
【００４４】
また、出力部９は、文字切り出し部５、罫線内文字抽出部７で切り出された画像情報を項目毎に出力する。出力部９から出力された項目毎との文字は文字認識部１０に供給される。
文字認識部１０は、出力部９から供給された文字を認識し、文字情報に変換する。なお、文字認識部１０は認識した情報を認識の確信度を評価するために項目判定部８にフィードバックする機能を有する。
【００４５】
また、項目判定部８は、特許請求の範囲中の項目判定手段に相当し、罫線抽出部２により抽出された罫線、及び、仮想罫線により囲まれた領域を項目として抽出され、接触判定部６により仮想罫線に接触している文字がある場合に、後述するように仮想罫線に接触している文字と仮想罫線との位置関係、及び、仮想罫線に接触している文字の近隣の文字との位置関係の応じて仮想罫線に接触している文字が含まれる項目を判定する。
【００４６】
図２に本発明の一実施例の項目判定部の機能ブロック図を示す。項目判定部８は後述詳細に説明するように、文字寄せによる項目判定手段１１、文字分離による項目判定手段１２、文字間距離による項目判定手段１３、文字間ピッチによる項目判定手段１４、配列による項目判定手段１５、罫線と仮想罫線とが混在するときの項目判定手段１６、項目変更手段１７、記憶手段１８を有し、項目の判定、変更、及び、判定方法の記憶などを行なう。
【００４７】
図３は、本発明の一実施例の文字抽出装置のシステム構成図を示す。
図３において、２１は様々な処理を行う中央演算処理ユニット（ＣＰＵ）、２２はＣＰＵ２１で実行されるプログラムが格納されているプログラムメモリ、２３は画像データをビットマップ形式で格納する画像メモリ、２４は画像処理に使用するワークメモリ、２５は画像を光学的に読み取るスキャナ、２６はスキャナ２５により読み取られた情報を一時的に格納するメモリを有し、スキャナ２５で読み取られた情報を入力するインターフェイス回路、２７は各文字画像の特徴を格納した辞書ファイル、２８は認識結果を表示するディスプレイ、２９は認識結果を印刷するプリンタ、３０はディスプレイ２８及びプリンタ２９のインターフェイス回路、３１はＣＰＵ２１、プログラムメモリ２２、画像メモリ２３、ワークメモリ２４、インターフェイス回路２６、辞書ファイル２７及びインターフェイス回路３０を接続しているバスを示す。
【００４８】
この文字認識システムは、スキャナ２５により読み取った画像データをメモリ２６に一時的に格納し、その画像データをビットマップ形式で画像メモリ２３に展開する。そして、画像メモリ２３からワークメモリ２４にコピーされた２値画像データに対してパターン抽出処理を行う。その結果に基づいて、スキャナ２５により読み取った画像データから文字画像の切り出しを行い、切り出された文字画像の特徴と辞書ファイル２７に格納された特徴データとの比較を行い、文字の認識を行う。その後、その認識結果を、ディスプレイ２８又はプリンタ２９に出力する。
【００４９】
文字抽出装置１は、プログラムメモリ２２に格納されたプログラムに従ってＣＰＵ２１を動作させることにより上記図１、図２に示される機能を実現している。
まず、図１の接触判定部６の動作を説明する。
【００５０】
図４に本発明の一実施例の接触判定部の処理を実現する処理フローチャート、図５に本発明の一実施例の接触判定部の動作説明図を示す。
いま、罫線抽出部２、及び、項目抽出部３で、例えば、図５に示すように左項目Ｌの座標が左上端の座標（ｌｘ１，ｌｙ１）、及び、右下端の座標（ｌｘ２，ｌｙ２）（以降、（ｌｘ１，ｌｙ１）−（ｌｘ２，ｌｙ２）とする）に設定され、左項目Ｌの座標が同様に（ｒｘ１，ｒｙ１）−（ｒｘ２，ｒｙ２）、仮想罫線Ｋの座標が同様に（ｋｘ１，ｋｙ１）−（ｋｘ２，ｋｙ２）に設定されたとする（ステップＳ１−１）。
【００５１】
次に、接触判定部６で、ステップＳ１−１で設定された仮想罫線の座標（ｋｘ１，ｋｙ１）−（ｋｘ２，ｋｙ２）に接触する文字ｃがあるか、否かが判定される（ステップＳ１−２）。
ステップＳ１−２での判断結果、文字ｃ（座標（ｃｘ１，ｃｙ１）−（ｃｘ２，ｃｙ２））が仮想罫線に接触していない場合は、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｋｘ１−１、ｂｙ１＝ｌｘ２に設定し、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｋｘ２＋１、ｂｙ２＝ｒｙ１に設定する（ステップＳ１−３）。
【００５２】
ステップＳ１−３で、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｋｘ１−１、ｂｙ１＝ｌｘ２に設定し、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｋｘ２−１、ｂｙ２＝ｒｙ１に設定することにより、図５に示すように左項目Ｌが仮想罫線の左側、右項目Ｒが仮想罫線の右側に設定されるため、左項目Ｌと右項目Ｒとを確実に分離設定でき、文字の罫線内文字抽出部７における文字の抽出処理を確実に行える。
【００５３】
ステップＳ１−３で左項目Ｌ、及び、右項目Ｒの位置が確定したら、罫線内文字抽出部７により罫線内文字抽出処理が実施される。
また、ステップＳ１−２での判断結果、文字ｃ（座標（ｃｘ１，ｃｙ１）−（ｃｘ２，ｃｙ２））が仮想罫線に接触している場合は、次に、項目判定部８にデータが供給され、後述するような項目判定処理が行われる（ステップＳ１−５）。
【００５４】
以上が接触判定部６の動作処理である。
ステップＳ１−２での判断結果、文字ｃ（座標（ｃｘ１，ｃｙ１）−（ｃｘ２，ｃｙ２））が仮想罫線に接触している場合は、次に、例えば、文字寄せによる項目判定手段１１による処理が行われる。
【００５５】
図６に本発明の一実施例の文字寄せによる項目判定手段の処理フローチャート、図７に本発明の一実施例の文字寄せによる項目判定手段の動作説明図を示す。文字寄せによる項目判定処理では、まず、接触した文字ｃと仮想罫線Ｋとの位置関係を比較する（ステップＳ２−１）。
【００５６】
例えば、仮想罫線Ｋの左上端のＸ座標ｋｘ１から接触する文字ｃの左上端のＸ座標ｃｘ１を減算した（ｋｘ１−ｃｘ１）を求め、接触する文字ｃの右下端のＸ座標ｃｘ２から仮想罫線Ｋの右下端のＸ座標ｋｘ２を減算した（ｃｘ２−ｋｘ２）を求め、その結果の大小を比較する。すなわち、例えば、図７（Ａ）に示すように接触した文字ｃ「接」が仮想罫線Ｋの左寄りに存在すれば、（ｋｘ１−ｃｘ１）＞＝（ｃｘ２−ｋｘ２）になる。また、接触した文字ｃが仮想罫線Ｋの右より存在すれば、（ｋｘ１−ｃｘ１）＜（ｃｘ２−ｋｘ２）になる。以上、仮想罫線Ｋの左上端のＸ座標ｋｘ１から接触する文字ｃの左上端のＸ座標ｃｘ１を減算した（ｋｘ１−ｃｘ１）と接触する文字ｃの右下端のＸ座標ｃｘ２から仮想罫線Ｋの右下端のＸ座標ｋｘ２を減算した（ｃｘ２−ｋｘ２）との大小を比較することにより仮想罫線Ｋと仮想罫線Ｋに接触する文字ｃとの位置関係を認識できることになる。
【００５７】
ステップＳ２−１で、（ｋｘ１−ｃｘ１）＞＝（ｃｘ２−ｋｘ２）、すなわち、図７（Ａ）に示すように接触した文字ｃが仮想罫線Ｋの左寄りに存在するときには、左項目Ｌの境界（ｂｘ１，ｂｙ１）のｂｘ１＝ｃｘ２に設定し、右項目Ｒの境界（ｂｘ２，ｂｙ２）のｂｘ２をｂｘ２＝ｂｘ１＋１に設定する（ステップＳ２−２）。
【００５８】
以上により、図７（Ａ）に示すように左項目Ｌの右端ｂｘ１が文字ｃ「接」の右端ｃｘ２に移動し、文字ｃ「接」が左項目Ｌに含まれることになる。また、図７（Ａ）に示すように右項目Ｒの左端ｂｘ２は右項目Ｌの左端、すなわち、文字ｃ「接」の右端ｃｘ２から「−１」した位置に移動され、文字ｃ「接」から「１」だけ離間して設定されるため、文字ｃ「接」が右項目Ｒに含まれることはない。したがって、図７（Ｂ）に示すように仮想罫線Ｋに接触する文字ｃを左項目Ｌと右項目Ｒとで重複することなく、仮想罫線Ｋの左側の左項目Ｌにだけ含めることができる。
【００５９】
また、ステップＳ２−１で、（ｋｘ１−ｃｘ１）＜（ｃｘ２−ｋｘ２）、すなわち、接触した文字ｃが仮想罫線Ｋの右寄りに存在するときには、左項目Ｌの境界（ｂｘ１，ｂｙ１）のｂｘ１＝ｃｘ１−１に設定し、右項目Ｒの境界（ｂｘ２，ｂｙ２）のｂｘ２をｂｘ２＝ｃｘ１に設定する（ステップＳ２−３）。
【００６０】
以上により、右項目Ｒの右端ｂｘ２が文字ｃ「接」の左端ｃｘ１に移動し、文字ｃが右項目Ｒに含まれることになる。また、左項目Ｌの左端ｂｘ２は右項目Ｌの左端、すなわち、文字ｃの右端ｃｘ１から「−１」した位置に移動され、文字ｃから「１」だけ離間して設定されるため、文字ｃが左項目Ｒに含まれることはない。したがって、仮想罫線Ｋに接触する文字ｃを左項目Ｌと右項目Ｒとで重複することなく、仮想罫線Ｋの右側の右項目Ｒにだけ含めることができる。
【００６１】
次に、図２の文字分離による項目判定手段１２による項目判定処理について説明する。文字分離による項目判定手段１２による項目判定処理は請求項２の実施例に相当する。
図８に本発明の一実施例の文字分離による項目判定手段の処理フローチャート、図９に本発明の一実施例の文字分離による項目判定処理の動作説明図を示す。
【００６２】
文字分離による項目判定処理では、まず、接触判定部６で判定された判定結果、仮想罫線に文字が接触していると判断されると、仮想罫線の両縁部に文字が接触しているか、否かを判断する（ステップＳ３−１）。
ステップＳ３−１で、仮想罫線の両縁部に文字が接触していると判断された場合には、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１がｂｘ１＝（ｋｘ１＋ｋｘ２）／２、ｂｙ１をｂｙ１＝ｌｙ２に設定する。また、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）をｂｘ２がｂｘ２＝（ｋｘ１＋ｋｘ２）／２、ｂｙ２をｂｙ２＝ｌｙ１に設定する（ステップＳ３−２）。
【００６３】
以上により、図９（Ａ）に示すように左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）がｂｘ１＝（ｋｘ１＋ｋｘ２）／２、すなわち、仮想罫線Ｋの中心線Ｏに左項目Ｌの左端が位置し、図９（Ｂ）に示すように文字ｃの左側の半分を構成する文字「接」が左項目Ｌに含まれる。また、図９（Ａ）に示すように右項目Ｒの境界座標（ｂｘ２，ｂｙ２）はｂｘ２＝（ｋｘ１＋ｋｘ２）／２、すなわち、文字ｃの右側の半分を構成する文字「触」が右項目Ｒに含まれることになる。
【００６４】
また、ステップＳ３−１で、仮想罫線Ｋの両縁部に文字ｃが接触していない場合、すなわち、仮想罫線Ｋ上に文字ｃがある場合には、文字ｃを仮想罫線Ｋとみなして、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｋｘ１−１、すなわち、仮想罫線Ｋの左側の境界の座標から「１」離間した座標に設定し、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｋｘ２−１、すなわち、仮想罫線Ｋの右側の境界の座標から「１」離間した座標に設定する（ステップＳ３−３）。
【００６５】
以上により、図９（Ａ）に示すように仮想罫線Ｋ上で接触した「接」及び「触」からなる文字ｃを左項目Ｌに文字ｃの左側に位置する「接」を含め、右項目Ｒに文字ｃの左側に位置する「触」を含めることにより、２つに分割することができる。
【００６６】
次に、図２の文字間距離による項目判定手段１３の項目判定処理について説明する。文字間距離による項目判定手段１３による項目判定処理は請求項３の実施例に相当する。
図１０に本発明の一実施例の文字間距離による項目判定手段の処理フローチャート、図１１に本発明の一実施例の文字間距離による項目判定処理の動作説明図を示す。
【００６７】
文字間距離による項目判定処理では、まず、左項目Ｌ内で最も右に位置する文字ｃ１の座標ｌｒｘを求める（ステップＳ４−１）。
次に、右項目Ｒ内で最も左に位置する文字ｃ２の座標ｒｌｘを求める（ステップＳ４−２）。
【００６８】
次に、仮想罫線Ｋに接触した文字ｃの座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）、及び、ステップＳ４−１で検出した左項目Ｌ内で最も右に位置する文字ｃ１の座標ｌｒｘから仮想罫線Ｋに接触した文字ｃ０と左項目Ｌ内で最も右に位置する文字ｃ１との距離ｌを算出するとともに、仮想罫線Ｋに接触した文字ｃの座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）、及び、ステップＳ４−２で検出した右項目Ｒ内で最も右に位置する文字ｃ２の座標ｒｌｘから仮想罫線Ｋに接触した文字ｃ０と右項目Ｒ内で最も右に位置する文字ｃ２との距離ｒを算出する（ステップＳ４−３）。仮想罫線Ｋに接触した文字ｃ０と左項目Ｌ内で最も右に位置する文字ｃ１との距離ｌは、ｌ＝ｃｘ１−ｌｒｘで求められ、また、仮想罫線Ｋに接触した文字ｃ０と右項目Ｒ内で最も左に位置する文字ｃ２との距離ｒはｒ＝ｒｌｘ−ｃｘ２で求められる。
【００６９】
次に、ステップＳ４−３で求められた仮想罫線Ｋに接触した文字ｃ０と左項目Ｌ内で最も右に位置する文字ｃ１との距離ｌと仮想罫線Ｋに接触した文字ｃ０と右項目Ｒ内で最も左に位置する文字ｃ２との距離ｒとの大小を比較する（ステップＳ４−４）。
【００７０】
ここで、仮想罫線Ｋに接触した文字ｃ０は隣接する文字、すなわち、文字ｃ１、ｃ２との距離が近い方の文字に属すると判断できるので、ステップＳ４−３で求めた文字ｃ０と文字ｃ１、及び、文字ｃ２との距離ｌ、及び、ｒの大小を比較する。ステップＳ４−４の比較結果、距離ｌ＜＝ｒ、すなわち、文字ｃ０と文字ｃ１、及び、文字ｃ２との位置関係が図１１（Ａ）に示すように文字ｃ０と文字ｃ１との距離ｌが文字ｃ０と文字ｃ２との距離ｒより近いときには、文字ｃ０は文字ｃ１と一連の文字列を構成すると判断できるので、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）でｂｘ１が文字ｃ０の右側の座標ｃｘ２に一致するようにｂｘ１＝ｃｘ２に設定し、右項目Ｒの境界の座標（ｂｘ２、ｂｙ２）でｂｘ２がｂｘ１から「１」離間する座標、ｂｘ２＝ｂｘ１＋１に設定する（ステップＳ４−５）。
【００７１】
以上により図１１（Ｂ）に示すように仮想罫線Ｋに接触した文字ｃ０を距離の近い文字ｃ１を含む左項目Ｌに含めることができる。
また、ステップＳ４−４で、距離ｌ＞ｒ、すなわち、文字ｃ０と文字ｃ１、及び、文字ｃ２との位置関係が文字ｃ０と文字ｃ１との距離ｌが文字ｃ０と文字ｃ２との距離ｒより大きいときには、文字ｃ０は文字ｃ２と一連の文字列を構成すると判断できるので、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）はｂｘ１を文字ｃ０の左側の座標ｃｘ１から「１」離間した位置に一致する、すなわち、ｂｘ１＝ｃｘ２に設定し、右項目Ｒの境界の座標（ｂｘ２、ｂｙ２）でｂｘ２がｂｘ１から「１」離間する座標、ｂｘ１＝ｃｘ１−１に設定し、また、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）はｂｘ２を文字ｃ０を含むようにｂｘ２＝ｂｘ１＋１に設定する（ステップＳ４−６）。
【００７２】
以上のように仮想罫線Ｋに接触した文字ｃ０を隣接する文字ｃ１，ｃ２との距離に応じて項目を判定することにより、正確な項目判定が可能となる。
次に、図２に示す文字間ピッチによる判定手段１４の項目判定処理について説明する。文字間ピッチによる判定手段１４の項目判定処理は請求項４の実施例に相当する。
【００７３】
図１２に本発明の一実施例の文字間ピッチによる項目判定手段の処理フローチャート、図１３に本発明の一実施例の文字間ピッチによる項目判定手段の動作説明図を示す。
文字間ピッチによる項目判定処理では、まず、左項目Ｌの文字ｃ１−１、ｃ１−２、ｃ１−３の間のピッチＰｌを求める（ステップＳ５−１）。また、同様に右項目Ｒの文字ｃ２−１、ｃ２−２、ｃ２−３のピッチＰｒを求める（ステップＳ５−２）。なお、ここでは、文字の間隔をピッチとする。
【００７４】
ピッチＰｌ、Ｐｒの求め方は、例えば、文字の両端部の座標を求め、文字の間隔を求める等の方法が考えられる。
ステップＳ５−１、Ｓ５−２で左項目Ｌ内の文字ｃ１−１、ｃ１−２、ｃ１−３の間のピッチＰ１、及び、右項目Ｒの文字ｃ２−１、ｃ２−２、ｃ２−３のピッチＰ２が求められると、次に、左項目Ｌで最も左に位置する文字ｃ１−１の左側の座標ｌｒｘを求める（ステップＳ５−３）。
【００７５】
次に、右項目Ｒ内で最も左に位置する文字ｃ２−１の座標ｒｌｘを求める（ステップＳ５−４）。
次に、仮想罫線Ｋに接触した文字ｃ０の座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）、及び、ステップＳ５−３で検出した左項目Ｌ内で最も右に位置する文字ｃ１の座標ｌｒｘから仮想罫線Ｋに接触した文字ｃ０と左項目Ｌ内で最も右に位置する文字ｃ１−１との距離ｌを算出するとともに、仮想罫線Ｋに接触した文字ｃの座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）、及び、ステップＳ５−４で検出した右項目Ｒ内で最も右に位置する文字ｃ２の座標ｒｌｘから仮想罫線Ｋに接触した文字ｃ０と右項目Ｒ内で最も左に位置する文字ｃ２−１との距離ｒを算出する（ステップＳ５−５）。仮想罫線Ｋに接触した文字ｃ０と左項目Ｌ内で最も右に位置する文字ｃ１との距離ｌは、ｌ＝ｃｘ１−ｌｒｘで求められ、また、仮想罫線Ｋに接触した文字ｃ０と右項目Ｒ内で最も右に位置する文字ｃ２との距離ｒはｒ＝ｒｌｘ−ｃｘ２で求められる。
【００７６】
次に、ステップＳ５−１で求められた左項目ＬのピッチＰｌとステップＳ５−５で求められた仮想罫線Ｋに接触した文字ｃ０と左項目Ｌ内で最も右に位置する文字ｃ１−１との距離ｌとの差｜Ｐｌ−ｌ｜と、ステップＳ５−２で求められた右項目ＲのピッチＰｒと仮想罫線Ｋに接触した文字ｃ０と右項目Ｒ内で最も右に位置する文字ｃ２−１との距離ｒとの差｜Ｐｒ−ｒ｜との大小を比較する（ステップＳ５−６）。
【００７７】
ここで、仮想罫線Ｋに接触した文字ｃ０は隣接する文字ｃ１−１と文字ｃ２−２とのピッチｌ、ｒのうち隣接する文字列ｃ１−１、ｃ１−２、ｃ１−３、及び、ｃ２−１、ｃ２−２、ｃ２−３のピッチＰｌ、Ｐｒに近い方の文字列に属すると判断できるので、ステップＳ５−６でピッチＰｌと文字ｃ０と文字ｃ１−１との距離ｌとの差｜Ｐｌ−ｌ｜と、ピッチＰｒと文字ｃ０と文字ｃ２−１との距離ｒとの差｜Ｐｒ−ｒ｜との大小を比較する。
【００７８】
ステップＳ５−６での比較結果、｜Ｐｌ−ｌ｜＜＝｜Ｐｒ−ｒ｜、すなわち、左項目Ｌの文字ｃ１−１、ｃ１−２、ｃ１−３のピッチＰｌと左項目Ｌの文字ｃ１−１と仮想罫線Ｋに接触した文字ｃ０との距離ｌとの差が右項目Ｒの文字ｃ２−１、ｃ２−２、ｃ２−３のピッチＰｒと仮想罫線Ｋに接触した文字ｃ０との距離ｒとの差に比べて小さいときには、文字ｃ０は左項目Ｌの文字列ｃ１−３→ｃ１−２→ｃ１−１に連結される可能性が大きいと判断できるので、文字ｃ０を左項目Ｌに含ませるように左項目Ｌ、及び、右項目Ｒを設定する（ステップＳ５−７）。例えば、文字ｃ０の左側の座標を（ｃｘ１，ｃｙ１）、右側の座標を（ｃｘ２，ｃｙ２）とすると、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｃｘ１−１、ｂｙ１＝ｌｙ２に設定し、また、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｂｘ１＋１、ｂｙ２＝ｒｙ１に設定する。
【００７９】
以上により、仮想罫線Ｋに接触する文字ｃ０は、左項目Ｌに含まれ、右項目Ｒの左境界は左項目Ｌの境界から「１」だけ離間して設定される。
また、ステップＳ５−６での比較結果、｜Ｐｌ−ｌ｜＞｜Ｐｒ−ｒ｜、すなわち、右項目Ｒの文字ｃ２−１、ｃ２−２、ｃ２−３のピッチＰｒと右項目Ｒの文字ｃ２−１と仮想罫線Ｋに接触した文字ｃ０との距離ｒとの差が左項目ｌの文字ｃ１−１、ｃ１−２、ｃ１−３のピッチＰｌと仮想罫線Ｋに接触した文字ｃ０との距離ｌとの差に比べて小さいときには、図１３（Ａ）に示すように文字ｃ０は右項目Ｒの文字列ｃ２−１→ｃ２−２→ｃ２−３に連結される可能性が大きいと判断できるので、文字ｃ０を右項目Ｒに含ませるように右項目Ｒ、及び、左項目Ｒを設定する（ステップＳ５−８）。例えば、文字ｃ０の左側の座標を（ｃｘ１，ｃｙ１）、右側の座標を（ｃｘ２，ｃｙ２）とすると、左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｃｘ２、ｂｙ１＝ｌｙ２に設定し、また、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｂｘ１＋１、ｂｙ２＝ｒｙ１に設定する。
【００８０】
以上により、図１３（Ｂ）に示すように仮想罫線Ｋに接触する文字ｃ０「接」は、右項目Ｒに含まれ、左項目Ｌの右境界は右項目Ｒの境界から「１」だけ離間して設定される。
上記文字間ピッチによる項目判定処理では、仮想罫線Ｋの左右の項目に含まれる文字列のピッチを検出して、仮想罫線Ｋに接触する文字ｃ０と文字列とのピッチに近い方の項目を選択し、項目を設定することにより、仮想罫線Ｋに接触する文字ｃ０を各項目の文字列で判定でき正確な判定が可能となる。
【００８１】
次に、図２の配列による項目判定手段１５の項目判定処理について説明する。配列による項目判定手段１５の項目判定処理は請求項５の実施例に相当する。
図１４に本発明の一実施例の配列による項目判定手段の処理フローチャート、図１５に本発明の一実施例の配列による項目判定処理の動作説明図を示す。
【００８２】
配列による項目判定処理では、まず、左項目Ｌの文字列ｄ１の矢印Ｙ方向の上下の座標ｍｌｙ１、及び、ｍｌｙ２を求める（ステップＳ６−１）。また、同様に、右項目Ｒの文字列ｄ２の矢印Ｙ方向の上下の座標ｍｒｙ１、及び、ｍｒｙ２を求める（ステップＳ６−２）。
【００８３】
さらに、仮想罫線Ｋに接触した文字ｃ０の矢印Ｙ方向の上下の座標ｃｙ１、及び、ｃｙ２を求める（ステップＳ６−３）。
次に、｛（ｃｙ１−ｍｌｙ１）＋（ｍｌｙ２−ｃｙ２）｝と｛（ｃｙ１−ｍｒｙ１）−（ｍｒｙ２−ｃｙ２）｝との大小関係を比較する（ステップＳ６−４）。すなわち、文字ｃ０の矢印Ｙ方向の上側の座標ｃｙ１と左項目Ｌの文字列ｄ１の上側の座標ｍｌｙ１との差と文字ｃ０の矢印Ｙ方向の下側の座標ｃｙ２と左項目Ｌの文字列ｄ１の下側の座標ｍｌｙ２との差とを加算した値と、文字ｃ０の矢印Ｙ方向の上側の座標ｃｙ１と右項目Ｒの文字列ｄ２の上側の座標ｍｒｙ１との差と文字ｃ０の矢印Ｙ方向の下側の座標ｃｙ２と右項目Ｒの文字列ｄ２の下側の座標ｍｒｙ２との差とを加算した値との大小関係を比較する。これにより左右項目Ｌ、Ｒと文字ｃ０との配列位置の差を求める。
【００８４】
ステップＳ６−４で、｛（ｃｙ１−ｍｌｙ１）＋（ｍｌｙ２−ｃｙ２）｝＜＝｛（ｃｙ１−ｍｒｙ１）−（ｍｒｙ２−ｃｙ２）｝であれば、仮想罫線Ｋに接触する文字ｃ０は左項目Ｌの文字列ｄ１に対して位置的に差が小さいと判断できるので、文字ｃ０を左項目Ｌに含めるべく、左右項目Ｌ、Ｒの境界の設定が行われる（ステップＳ６−５）。左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｃｘ２、すなわち、左項目Ｌの右側の境界座標ｂｘ１を文字ｃ０の左側の座標に設定する。また、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）はｂｘ２をｂｘ２＝ｂｘ１＋１、すなわち、左項目Ｌの境界から「１」だけ離間した位置に設定される。
【００８５】
以上により、図１５（Ｂ）に示すように仮想罫線Ｋに接触する文字ｃ０「接」を左項目Ｌに含ませ、右項目Ｒから削除することができる。
また、ステップＳ６−４で、｛（ｃｙ１−ｍｌｙ１）＋（ｍｌｙ２−ｃｙ２）｝＞｛（ｃｙ１−ｍｒｙ１）−（ｍｒｙ２−ｃｙ２）｝であれば、仮想罫線Ｋに接触する文字ｃ０は右項目Ｒの文字列ｄ２に対して位置的に差が小さいと判断できるので、文字ｃ０を右項目Ｒに含めるべく、左右項目Ｌ、Ｒの境界の設定が行われる（ステップＳ６−６）。左項目Ｌの境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｃｘ１−１、すなわち、左項目Ｌの右側の境界の座標ｂｘ１を文字ｃ０の左側の座標ｃｘ１から「１」だけ離間した位置に設定する。また、右項目Ｒの境界の座標（ｂｘ２，ｂｙ２）はｂｘ２をｂｘ２＝ｂｘ１＋１、すなわち、左項目Ｌの境界から「１」だけ右側にある文字ｃ０の左側の座標ｃｘ１に位置するように設定される。
【００８６】
以上により、仮想罫線Ｋに接触する文字ｃ０を左項目Ｒに含ませ、右項目Ｌから削除することができる。
次に、図２の罫線と仮想罫線とが混在するときの項目判定手段１６の判定処理について説明する。罫線と仮想罫線とが混在するときの項目判定手段１６の判定処理は請求項６の実施例に相当する。
【００８７】
図１６に本発明の一実施例の罫線と仮想罫線とが混在するときの項目判定手段の処理フローチャート、図１７に本発明の一実施例の罫線と仮想罫線とが混在するときの項目判定処理の動作説明図を示す。
まず、左項目Ｌを設定する座標（ｌｘ１，ｌｙ１）、（ｌｘ２，ｌｙ２）、及び、右項目Ｒを設定する座標（ｒｘ１，ｒｙ１）、（ｒｘ２，ｒｙ２）が読み込まれる（ステップＳ７−１）。
【００８８】
次に、実線又は破線からなる実罫線と仮想的に設定された仮想罫線とが混在するか、否かの判断が行われる（ステップＳ７−２）。
ステップＳ７−２で、実罫線Ｊと仮想罫線Ｋとが混在する場合には、実罫線Ｊにより項目を判定する（ステップＳ７−３）。ここで、実罫線Ｊの座標を（ｊｘ１，ｊｙ１）、（ｊｘ２，ｊｙ２）、仮想罫線Ｋの座標を（ｋｘ１，ｋｙ１）、（ｋｘ２，ｋｙ２）とすると、左項目Ｌの右側の境界の座標（ｂｘ１，ｂｙ１）は、ｂｘ１＝ｊｘ１−１、ｂｙ１＝ｌｙ２、すなわち、実罫線Ｊの左側の座標ｊｘ１から左方向に「１」だけ離間した位置に設定される。
【００８９】
また、右項目Ｒの右の境界の座標（ｂｘ２，ｂｙ２）は、ｂｘ２＝ｊｘ２＋１、ｂｙ２＝ｌｙ１、すなわち、実罫線Ｊの右側の座標ｊｘ２から右方向に「１」だけ離間した位置に設定される。
以上により、図１７（Ａ）に示すように、実罫線Ｊと仮想罫線Ｋとがずれている場合でも、仮想罫線Ｋによらず、実罫線Ｊの左側に左項目Ｌが設定され、実罫線Ｊの右側に右項目Ｒが設定されるので、仮想罫線Ｋに接触する文字ｃ０は実罫線Ｊに従って項目分けされ、図１７（Ｂ）に示すように実罫線Ｊの右側に存在する仮想罫線Ｋに接触する文字ｃ０「接」は右項目Ｒに含まれることになる。
【００９０】
また、ステップＳ７−２で、実罫線がない場合には、図２、文字寄せによる判定手段１１、文字分離による判定項目手段１２、文字間距離による判定項目１３、ピッチによる項目判定手段１４、配列による項目手段１５等を用いて項目判定が行われたり、左項目Ｌの右側の境界の座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｋｘ１−１、ｂｙ１＝ｌｙ２、すなわち、仮想罫線Ｋの左側の座標ｋｘ１から左方向に「１」だけ離間した位置に設定するとともに、右項目Ｒの右の境界の座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｋｘ２−１、ｂｙ２＝ｌｙ１、すなわち、仮想罫線Ｋの右側の座標ｋｘ２から右方向に「１」だけ離間した位置に設定することにより、文字ｃ０を罫線のかすれとみなして左右項目Ｌ、Ｒを設定する（ステップＳ７−４）。
【００９１】
以上のように、実罫線Ｊと仮想罫線Ｋとが近接して混在するときには実罫線Ｊを優先して項目分けを行うことにより、実際の画像に即した項目判定が行える。
次に、図２の項目変更手段１７の動作を説明する。なお、項目変更手段１７の処理には第１〜第４の項目変更処理を含む。
【００９２】
まず、項目変更手段１７の第１の項目変更処理について説明する。項目変更手段１７の第１の項目変更処理は請求項７の実施例に相当する。
図１８に本発明の一実施例の項目変更手段の第１の項目変更処理の処理フローチャート、図１９に本発明の一実施例の項目変更手段の第１の項目変更処理の動作説明図を示す。
【００９３】
項目変更処理は、上記図４乃至図１７の項目判定処理の結果、得られた項目に重複があるときに重複を解消すべく実施する。
例えば、図１９（Ａ）において仮想罫線Ｋ１には文字ｃ０「接」が左寄りに接触しているので左項目Ｌは、文字ｃ０を含むように仮想罫線Ｋ１の右端部に左項目Ｌの右端部が設定される。一方、仮想罫線Ｋ１の上の仮想罫線Ｋ２を見ると、文字の接触はなく、仮想罫線Ｋ２の左端部に左項目Ｌの境界に設定され、仮想罫線Ｋ２の右端部に右項目Ｒの境界が設定されることになる。このため、図１９（Ｂ）に示すように仮想罫線Ｋ２の右側にある文字ｃ１「間」は、右項目Ｒに含まれ、その下部に位置する文字ｃ０「接」も右項目Ｒに含まれるべきであるが、仮想罫線Ｋ１との位置関係により左項目Ｌに含まれてしまう。このような場合、仮想罫線Ｋ１、Ｋ２のそれぞれの項目判定結果、図１９（Ｃ）に示すように文字ｃ１「間」と文字ｃ０「接」が左項目Ｌと右項目Ｒとで重複することになる。
【００９４】
文字が接触した仮想罫線の項目判定の結果得られた左項目Ｌ内文字に外接する外接矩形Ｉｌの座標（ｉｌｘ１，ｉｌｙ１）、（ｉｌｘ２，ｉｌｙ２）、及び、右項目Ｒ内文字に外接する外接矩形Ｉｌの座標（ｉｒｘ１，ｉｒｙ１）、（ｉｒｘ２，ｉｒｙ２）を入力する（ステップＳ８−１）。
【００９５】
次に、左右の項目が重複しているか、否かの判定が行われる（ステップＳ８−２）。ステップＳ８−２では、外接矩形Ｉｌの右側座標ｉｌｘ２と外接矩形Ｉｒ左側の座標ｉｒｘとの大小関係を比較することにより重複の判定が行われる。
ステップＳ８−２で、ｉｌｘ２＞＝ｉｒｘ１であれば、例えば、図１９（Ｃ）に示すように左項目Ｌの右側が右項目Ｒの左側に重複することになる。
【００９６】
次に、項目に重複がある場合の対応を示す重複項目規則の読み込みを行う（ステップＳ８−３）。
ステップＳ８−３で読み込まれる重複規則としては、例えば、図１９（Ｄ）に示すように重複する文字ｃ１「間」、ｃ０「接」を共に左項目Ｌに含ませるように左右項目Ｌ、Ｒの設定を変更する規則や、図１９（Ｅ）に示すように重複する文字ｃ１「間」、ｃ０「接」を共に右項目Ｒに含ませるように左右項目Ｌ、Ｒの設定を変更する規則等が設定されている。
【００９７】
次に、ステップＳ８−３で読み込まれた重複規則を認識し、読み込まれた重複規則が図１９（Ｄ）に示すような重複領域の全文字を左項目に含める重複規則の場合には、左項目Ｌの右側境界座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｉｌｘ２、ｂｙ１＝ｌｙ２、また、右項目Ｒの左側境界座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｂｘ１＋１、ｂｙ２＝ｌｙ１に設定する。すなわち、文字ｃ０が接触した仮想罫線Ｋ１により項目分けしたときの座標に設定する（ステップＳ８−５）。
【００９８】
また、ステップＳ８−３で読み込まれた重複規則を認識し、読み込まれた重複規則が図１９（Ｅ）に示すような重複領域の全文字を右項目に含める重複規則の場合には、左項目Ｌの右側境界座標（ｂｘ１，ｂｙ１）をｂｘ１＝ｉｌｘ１−１、ｂｙ１＝ｌｙ２、また、右項目Ｒの左側境界座標（ｂｘ２，ｂｙ２）をｂｘ２＝ｉｒｘ１、ｂｙ２＝ｌｙ１に設定する。すなわち、文字の接触がない仮想罫線Ｋ２により項目分けしたときの座標に設定される（ステップＳ８−６）。
【００９９】
以上により重複する項目を重複規則に従って解消でき、正確な項目抽出が可能となる。
次に、項目変更手段１７の第２の項目変更処理について説明する。項目変更手段１７の第２の項目変更処理は請求項８の実施例の相当する。
【０１００】
図２０に本発明の一実施例の項目変更手段の第２項目変更処理の処理フローチャート、図２１、図２２に本発明の一実施例の項目変更手段の第２項目変更処理の動作説明図を示す。
例えば、図２１（Ａ）において仮想罫線Ｋ１には文字ｃ０「接」が左寄りに接触しているので左項目Ｌは、文字ｃ０「接」を含むように仮想罫線Ｋ１の右端部に左項目Ｌの右端部が設定される。一方、仮想罫線Ｋ１の上の仮想罫線Ｋ２を見ると、文字の接触はなく、仮想罫線Ｋ２の左端部に左項目Ｌの境界に設定され、仮想罫線Ｋ２の右端部に右項目Ｒの境界が設定される。このため、図２２（Ａ）に示すように仮想罫線Ｋ２の右側にある文字ｃ１「右」は、右項目Ｒに含まれ、その下部に位置する文字ｃ０「接」は仮想罫線Ｋ１との位置関係により左項目Ｌに含まれる。このとき、図２１（Ｂ）に示すように左項目Ｌの右側境界ｓｌに右項目Ｒに含まれる文字ｃ１「右」が接触し、右項目Ｒの左側境界ｓｒに左項目Ｌに含まれる文字ｃ０「接」が接触する場合には、図１８、図１９に示す方法では、いずれの文字も切断されてしまう。
【０１０１】
しかし、図２２（Ａ）に示すように接触する文字ｃ０「接」は、右項目Ｒに含めれば、左項目Ｌと右項目Ｒを重複せずに分割できる。したがって、左項目Ｌに含まれる文字ｃ０「接」を右項目Ｒに含むように処理を行う。
まず、文字が接触した仮想罫線の項目判定の結果得られた左項目Ｌ内文字の外接矩形Ｉｌの座標（ｉｌｘ１，ｉｌｙ１）、（ｉｌｘ２，ｉｌｙ２）、及び、右項目Ｒ内文字の外接矩形Ｉｒの座標（ｉｒｘ１，ｉｒｙ１）、（ｉｒｘ２，ｉｒｙ２）を入力する（ステップＳ９−１）。
【０１０２】
次に、左右の項目が重複しているか、否かの判定が行われる（ステップＳ９−２）。ステップＳ９−２では、左項目Ｌの外接矩形Ｉｌの座標ｉｌｘ２と右項目Ｒの外接矩形Ｉｒの座標ｉｒｘとの大小関係を比較することにより重複の判定が行われる。
【０１０３】
ステップＳ９−２で、ｉｌｘ２＞＝ｉｒｘ１であれば、例えば、図２２（Ｂ）に示すように左項目Ｌの右側が右項目Ｒの左側に重複することになる。
ステップＳ９−２で、左右項目Ｌ、Ｒが重複する場合には、次に、例えば、図２２（Ｃ）に示すように左右項目Ｌ、Ｒは、接触文字ｃ０以外の項目領域は他の項目と重複しないか、否かを判断する（ステップＳ９−３）。ステップＳ９−３で、左右項目Ｌ、Ｒで接触文字以外の項目領域は重複しない場合には、接触文字ｃ０はどちらかの項目としか重複しないか、否かを判定する（ステップＳ９−４）。
【０１０４】
ステップＳ９−４で、接触文字ｃ０がどちらかの項目としか重複しない場合に、接触文字ｃ０「接」を図２２（Ｄ）に示すように、仮想罫線Ｋ１から左項目Ｌとして設定された接触文字ｃ０「接」を右項目Ｒに含まれるように左右項目Ｌ、Ｒを切り分ける（ステップＳ９−５）。
【０１０５】
上記変更処理によれば、図２１に示すように接触文字ｃ０が他の文字と重なる場合などにおいても項目の重複なく項目分けが行える。
次に、項目変更手段１７の第３の項目変更処理について説明する。
図２３に本発明の一実施例の項目変更手段の第３の項目変更処理の処理フローチャート、図２４に本発明の一実施例の項目変更手段の第３の項目変更処理の動作説明図を示す。
【０１０６】
第３の項目変更処理は、特許請求の範囲の請求項１０の実施例に相当し、重複検査回数ｎを予め設定しておき、予め設定された重複回数ｎだけ、重複箇所の変更を実施する。
第３の項目変更処理では、まず、仮想罫線の項目判定部分の座標を読み込み（ステップＳ１０−１）。
【０１０７】
次に、重複検査回数ｎ、重複を解除する規則である重複項目規則を読み込む（ステップＳ１０−２、Ｓ１０−３）。
次に重複検査回数のカウント値ｃｏｕｎｔを０にリセットする（ステップＳ１０−４）。
【０１０８】
次に、ステップＳ１０−４でセットされたカウント値ｃｏｕｎｔとステップＳ１０−２で読み込まれたｎとを比較し、カウント値ｃｏｕｎｔがｎになるまで、又は、項目の重複がなくなるまで、項目を変更する（ステップＳ１０−５〜Ｓ１０−８）。
【０１０９】
以上、第３の項目変更処理によれば、項目が重複する部分で項目の区切りが最適に行えない場合でも、適当な変更回数で項目変更処理を停止し、不要な処理を行わないようにでき、処理時間を短縮できる。
図２４（Ａ）に示すように接触文字ｃ１「接」が仮想罫線Ｋの右寄りに位置し、かつ、ピッチが左側の文字列ｄ１に近く、さらに、下部に他の接触文字ｃ２が重なって存在している。このような場合、図２４（Ｂ）に示すように左右項目Ｌ、Ｒが分割される。
【０１１０】
このような場合、重複が解除されず、変更が繰り返されるが、第３の項目変更処理によれば、適当な変更回数で項目変更処理を停止し、不要な処理を行わないようにでき、処理時間を短縮できる。
なお、第３の項目変更処理では、予め設定された重複検査回数ｎだけ変更処理を行うようにしたが、重複検査回数ｎを解除して、項目が重複しなくなるまで、項目変更処理を行う構成とすることもできる。
【０１１１】
図２５に本発明の一実施例の項目変更手段の第４の項目変更処理の処理フローチャートを示す。
第４の項目変更処理は、請求項９の実施例に相当し、まず、仮想罫線の項目判定部分の座標を読み込み（ステップＳ１１−１）。
【０１１２】
次に、重複を解除する規則である重複項目規則を読み込み（ステップＳ１１−２）、重複判定を行って（ステップＳ１１−３）、重複項目変更処理を行う（ステップＳ１１−４）。ステップＳ１１−４で項目変更処理を行った後、処理回数をカウントした後、ステップＳ１１−３に戻って再び重複判定を行う（ステップＳ１１−５）。本処理では、処理回数が解除されるため、項目が重複しなくなるまで、判定変更処理が繰り返され、このとき、処理回数がカウントされる。
【０１１３】
このような処理により適当な処理回数の評価などを行うことができる。
図２６に本発明の一実施例の記憶手段の処理フローチャート、図２７に本発明の一実施例の記憶手段による記憶情報のフォーマットを示す。  記憶手段１８は、項目判定の条件を記憶し、後に、項目判定の評価を行えるようにするための機能である。
【０１１４】
記憶手段１８の制御処理はでは、まず、判定する項目数ｋｃｏｕｎｔを「０」にリセットする（ステップＳ１２−１）。
次に、項目数ｋｃｏｕｎｔを全項目数を比較しつつ（ステップＳ１２−２）、前記図４〜図２５で説明した項目判定のための処理を実行し（ステップＳ１２−３〜Ｓ１２−５）、項目判定の毎にそのときの判定条件を記憶部１９に記憶する（ステップＳ１２−６）。
【０１１５】
記憶部１９は、図２７に示すように項目番号１−１、１−２、１−３・・・・２−１、２−２・・・・ｍ−ｎのように項目毎の設定される。判定条件はこの項目毎に付加される。判定条件としては、図２７に示すように項目の上下左右の設定にどの判定処理で処理されたかが設定される。例えば、図２７においては、項目の上部の設定に（１）、下部の設定に（２）、左側部の設定に（３）、（４）、右側部の設定に（１）の処理が用いられたことが示される。
【０１１６】
また、記憶部１９には判定条件の他に接触文字ｃ０が横長文字であったか否かのフラグが付与され、さらに、項目が予め設定された閾値より大きいか否かを判定するフラグの付与される。
文字を読み取った画像と記憶部１９の内容とを比較することにより、項目判定の評価を行える。
【０１１７】
上記記憶部１９に判定条件が記憶されると、項目数ｋｃｏｕｎｔに「１」を加算して、ステップＳ１２−２に戻る（ステップＳ１２−２）。
また、ステップＳ１２−２で全項目に対して項目判定が行われると、次に、判定された項目毎に文字を認識する（ステップＳ１２−８）。ステップＳ１２−８で文字が認識されると、認識された文字の確信度が算出される。確信度は例えば辞書２７に登録された正しい文字数を全文字数で除算する等により求められる。
【０１１８】
確信度を算出した後は、確信度が予め設定された閾値以上であるか否かの判定を行う（ステップＳ１２−９）。
ステップＳ１２−９で、確信度が予め設定された閾値以上であれば、良好な認識結果が得られたと判断できるので、処理を終了する。
【０１１９】
また、ステップＳ１２−９で、確信度が予め設定された閾値以下であれば、必要な認識結果が得られていないということで、記憶部１９に格納された図１７に示す判定条件を読み込んで、記憶部１９の判定条件とは異なる判定条件を用いて再び項目判定処理を行い、ステップＳ１２−８で再び認識を行い、認識の確信度が閾値以下となるまで、判定条件を変更する（ステップＳ１２−１０、Ｓ１２−１１）。
【０１２０】
このように、項目判定時の判定条件を記憶部１９に保持しておくことにより、必要な確信度が得られない場合などに、記憶部１９に保持された判定条件とは異なる判定条件を設定し、項目判定、認識を行うことにより、最適な判定条件を検索でき、確信度を向上させることができる。
【０１２１】
次にステップＳ１２−６での記憶部１９に記憶される横長文字の判定方法について説明する。
図２８に本発明の一実施例の記憶手段の横長文字判定処理の処理フローチャート、図２９に本発明の一実施例の横長文字判定処理の動作説明図を示す。
【０１２２】
横長文字判定処理では、まず、画像情報から仮想罫線Ｋに接触した接触文字ｃ０の範囲を座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）として求める（ステップＳ１３−１）。
次に、ステップＳ１３−１で、求めた接触文字ｃ０の座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）で仮想罫線Ｋに直交する方向の長さｄを求め、予め横長文字として設定しておいた閾値ＴＨと比較する（ステップＳ１３−２）。
【０１２３】
例えば、図２９に示すように２つの文字「横」と「長」とが一つの接触文字ｃ０として認識され、接触文字ｃ０の座標が座標（ｃｘ１，ｃｙ１）、（ｃｘ２，ｃｙ２）で求められた場合、右端部を決定する座標ｃｘ１と左端部を決定する座標ｃｘ２からｄ＝（ｃｘ２−ｃｘ１）が求められる。
【０１２４】
ステップＳ１３−２で、接触文字ｃ０の幅ｄが予め設定された閾値ＴＨより大きければ、すなわち、ＴＨ＜＝（ｃｘ２−ｃｘ１）のときには、横長文字と判定して、図２７に示す記憶部１９の対応する項目番号の横長文字の有無を示すフラグを有りに設定する（ステップＳ１３−３）。
【０１２５】
以上により、図２７の記憶部１９の横長文字の有無を示すフラグの設定が行われる。
次に、記憶手段１８により設定される記憶部１９の大項目を判定するための判定処理について説明する。
【０１２６】
図３０に本発明の一実施例の記憶手段の大項目判定処理の処理フローチャート、図３１に本発明の一実施例の大項目判定処理の動作説明図を示す。
大項目判定処理では、まず、文字ｃ０が接触する仮想罫線Ｋを含む左項目Ｌの座標（ｌｘ１，ｌｙ１）、（ｌｘ２，ｌｙ２）を読み込む（ステップＳ１４−１）。例えば、図３１（Ａ）に示されるように設定されているとする。
【０１２７】
次に、左項目Ｌ内と判定された文字ｃ０、ｃ１の外接矩形Ｉの座標（ｉｘ１，ｉｙ１）、（ｉｘ２，ｉｙ２）を求める（ステップＳ１４−２）。例えば、図３１（Ｂ）に破線で示されるように設定される。
次に、ステップＳ１４−１で読み込まれた左項目Ｌの座標（ｌｘ１，ｌｙ１）、（ｌｘ２，ｌｙ２）から左項目Ｌの左右方向（Ｘ方向）の長さ（ｌｘ２−ｌｘ１）、及び、左項目Ｌ内の文字ｃ０、ｃ１の外接矩形Ｉの座標（ｉｘ１，ｉｙ１）、（ｉｘ２，ｉｙ２）から外接矩形Ｉの左右方向（Ｘ方向）の長さ（ｉｘ２−ｉｘ１）を求め、外接矩形Ｉの左右（横）方向（Ｘ方向）の長さ（ｉｘ２−ｉｘ１）に予め設定された大項目閾値ＴＨｘを乗算して、項目Ｌの左右方向（Ｘ方向）の長さ（ｌｘ２−ｌｘ１）と比較する（ステップＳ１４−３）。ここで、大項目閾値ＴＨｘは、左項目Ｌの大きさに対する外接矩形Ｉの許容範囲を設定する。
【０１２８】
ステップＳ１４−３で、左項目Ｌの左右方向（Ｘ方向）の長さ（ｌｘ２−ｌｘ１）より外接矩形Ｉの左右方向（Ｘ方向）の長さ（ｉｘ２−ｉｘ１）に大項目閾値ＴＨｘを乗算したものが大きければ、文字ｃ０、ｃ１が項目Ｌより左右（横）方向（ｘ方向）に長いと判断して、図２７の記憶部１９の大項目フラグを大項目であることを示す、例えば、「１」に設定する（ステップＳ１４−４）。
【０１２９】
また、同様に、上下（縦）方向（Ｙ方向）に対しても同様な処理を行う。すなわち、ステップＳ１４−１で読み込まれた左項目Ｌの座標（ｌｘ１，ｌｙ１）、（ｌｘ２，ｌｙ２）から左項目Ｌの上下（縦）方向（Ｙ方向）の長さ（ｌｙ２−ｌｙ１）、及び、項目Ｌ内の文字ｃ０、ｃ１の外接矩形Ｉの座標（ｉｘ１，ｉｙ１）、（ｉｘ２，ｉｙ２）から外接矩形Ｉの上下（縦）方向（Ｙ方向）の長さ（ｉｙ２−ｉｙ１）を求め、外接矩形Ｉの上下（縦）方向（Ｙ方向）の長さ（ｉｙ２−ｉｙ１）に予め設定された大項目閾値ＴＨｙを乗算して、左項目Ｌの上下（縦）方向（Ｙ方向）の長さ（ｌｙ２−ｌｙ１）と比較し、左項目Ｌの上下（縦）方向（Ｙ方向）の長さ（ｌｙ２−ｌｙ１）より外接矩形Ｉの上下（縦）方向（Ｙ方向）の長さ（ｉｙ２−ｉｙ１）に大項目閾値ＴＨｙを乗算したものが大きければ、文字ｃ０、ｃ１が左項目Ｌより上下（縦）方向（Ｙ方向）に長いと判断して、図２７の記憶部１９の大項目フラグを大項目であることを示す、例えば、「１」に設定する（ステップＳ１４−５、Ｓ１４−６）。
【０１３０】
以上により、記憶部１９の大項目フラグが設定される。
なお、本実施例では左右の項目が仮想罫線により分離され、かつ、仮想罫線に接触する文字がある場合について説明したが、上下の項目についても上下の項目が仮想罫線により分離され、かつ、仮想罫線に接触する文字がある場合には、同様に項目判定、項目変更、記憶処理等が実施される。
【０１３１】
以上、本実施例によれば、罫線がかすれ等により断絶していても周囲の直線に基づいて仮想的な罫線、仮想罫線が設定され、項目の判別を可能としており、このとき、項目判定部８を構成する各項目判定手段により設定された仮想罫線に接触する文字を隣接する文字との位置関係に応じてどの項目に含めるかを判定し、項目内に文字を配置するので、罫線にかすれ等があり、かすれ罫線上に配置された文字を確実に項目に分けることができ、項目分けを確実に行える。また、記憶手段により、項目分けをする際に用いた判定条件、接触文字の形態（横長文字か否か）、項目に対する文字の大小などの情報を記憶しておき、文字の認識結果、認識確度が悪ければ、これらの情報を参照し、別の判定条件により再び項目分けを行うことにより最適な判定条件で項目分けが行え、精度良く認識を行うことが可能となる。
【０１３２】
【発明の効果】
上述の如く、本発明の請求項１によれば、罫線がかすれ等により断絶していても周囲の直線に基づいて仮想的な罫線、仮想罫線を設定し、項目の判別を可能としており、このとき、設定された仮想罫線に接触する文字を隣接する文字との位置関係に応じてどの項目に含めるかを判定し、項目内に文字を配置するので、罫線にかすれ等があり、かすれ罫線上に配置された文字を確実に項目に分けることができ、項目分けを確実に行える等の特長を有する。
【０１３３】
請求項２によれば、文字が仮想罫線の中心にあるときには文字を分離することにより、隣接する項目間で仮想罫線上で複数の文字が接触した場合などでも、各項目に文字を分離することができる等の特長を有する。
請求項３によれば、仮想罫線に接触している文字を隣接する文字との距離に応じて含まれる項目を判定しており、通常、１つの項目内では一連の文字列となるので、文字間の距離が近くなるので、距離が近い方の文字列に仮想罫線に接触している文字を含ませることにより、所属する項目を確実に判定できる等の特長を有する。
【０１３４】
請求項４によれば、文字列のピッチに応じて仮想罫線に接触している文字が含まれる項目を判定しており、通常、１つの項目内では一連の文字列となるので、文字間のピッチは略一定となるので、隣接する文字列と仮想罫線に接触している文字とのピッチが隣接する文字列のピッチが略等しくなる方の文字列を含む項目に含ませることにより、所属する項目を確実に判定できる等の特長を有する。
【０１３５】
請求項５によれば、通常、１つの項目内では一連の文字列となるので、仮想罫線に接触している文字が延在可能な方向から大きくずれた位置にある文字列は、仮想罫線に接触している文字と一連の文字列をなすとは判断できないので、仮想罫線に接触している文字が延在可能な方向からのずれができるだけ小さい位置にある文字列が含まれる項目に含めることにより、正確な項目の判定ができる等の特長を有する。
【０１３６】
請求項６によれば、仮想罫線より通常の罫線を優先して項目を判定することにより、通常の罫線により確実に項目の判定が可能となる等の特長を有する。
請求項７によれば、項目の判定結果、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に仮想罫線に接触する文字を含ませ、他の項目からは前記仮想罫線に接触する文字を削除することにより、仮想罫線を含む文字を１つの項目のみ含めることができ、複数の項目で用いられることがなくなり、項目に含まれる文字を正確に分割できる等の特長を有する。
【０１３７】
請求項８によれば、項目の判定結果、隣接する項目で仮想罫線を含む領域が重複する場合に、一つの項目に含まれるべく判定された仮想罫線に接触する文字を他の項目に含ませることにより重複が解除されるときには、仮想罫線に接触する文字が他の項目に含まれるように項目を変更することにより、重複が解除されるので、仮想罫線に接触する文字が複数の項目で用いられることがなくなり、項目に含まれる文字を正確に分割できる等の特長を有する。
【０１３８】
請求項９によれば、通常、項目は重複してはいないので、隣接する項目で仮想罫線を含む領域が重複する場合に、隣接する項目の重複が解除できるように仮想罫線に接触する文字を一つの項目から他の項目に順次移動させることにより、仮想罫線に接触する文字を項目が重複しない、最適な項目に含ませることができる等の特長を有する。
【０１３９】
請求項１０によれば、予め設定された回数だけ仮想罫線に接触する文字を一つの項目から他の項目に移動させることにより仮想罫線に接触する文字を不要に移動させることがなく、仮想罫線に接触する文字を最適な項目に、短い時間で移動させることができる等の特長を有する。
【図面の簡単な説明】
【図１】本発明の一実施例の機能ブロック図である。
【図２】本発明の一実施例の項目判定部の機能ブロック図である。
【図３】本発明の一実施例の文字抽出装置のシステム構成図である。
【図４】本発明の一実施例の接触判定部の処理フローチャートである。
【図５】本発明の一実施例の接触判定部の動作説明図である。
【図６】本発明の一実施例の文字寄せによる項目判定手段の処理フローチャートである。
【図７】本発明の一実施例の文字寄せによる項目判定処理の動作説明図である。
【図８】本発明の一実施例の文字分離による項目判定手段の処理フローチャートである。
【図９】本発明の一実施例の文字分離による項目判定処理の動作説明図である。
【図１０】本発明の一実施例の文字間距離による項目判定手段の処理フローチャートである。
【図１１】本発明の一実施例の文字間距離による項目判定処理の動作説明図である。
【図１２】本発明の一実施例の文字間ピッチによる項目判定手段の処理フローチャートである。
【図１３】本発明の一実施例の文字間ピッチによる項目判定処理の動作説明図である。
【図１４】本発明の一実施例の配列による項目判定手段の処理フローチャートである。
【図１５】本発明の一実施例の配列による項目判定処理の動作説明図である。
【図１６】本発明の一実施例の罫線と仮想罫線とが混在するときの項目判定手段の処理フローチャートである。
【図１７】本発明の一実施例の罫線と仮想罫線とが混在するときの項目判定処理の動作説明図である。
【図１８】本発明の一実施例の項目変更手段の第１の変更処理の処理フローチャートである。
【図１９】本発明の一実施例の項目変更手段の第１の変更処理の動作説明図である。
【図２０】本発明の一実施例の項目変更手段の第２の変更処理の処理フローチャートである。
【図２１】本発明の一実施例の項目変更手段の第２の変更処理の動作説明図である。
【図２２】本発明の一実施例の項目変更手段の第２の変更処理の動作説明図である。
【図２３】本発明の一実施例の項目変更手段の第３の変更処理の処理フローチャートである。
【図２４】本発明の一実施例の項目変更手段の第３の変更処理の動作説明図である。
【図２５】本発明の一実施例の項目変更手段の第４の変更処理の処理フローチャートである。
【図２６】本発明の一実施例の記憶手段の処理フローチャートである。
【図２７】本発明の一実施例の記憶部の記憶情報のフォーマットである。
【図２８】本発明の一実施例の記憶手段の横長文字判定処理の処理フローチャートである。
【図２９】本発明の一実施例の横長文字判定処理の動作説明図である。
【図３０】本発明の一実施例の記憶手段の大項目判定処理の処理フローチャートである。
【図３１】本発明の一実施例の大項目判定処理の動作説明図である。
【図３２】読み取るべき画像情報を示す図である。
【図３３】従来の罫線補正により補正された画像情報を示す図である。
【図３４】従来の他の罫線補正方法により補正された画像情報を示す図である。
【符号の説明】
１  文字抽出装置
２  罫線抽出部
３  項目抽出部
４  仮想罫線有無判定部
５  文字切り出し部
６  接触判定部
７  罫線内文字抽出部
８  項目判定部
１１〜１６  項目判定手段
１７  項目変更手段
１８  記憶手段
１９  記憶部
【図１】
0003727735.tif 000002
【図２】
0003727735.tif 000003
【図３】
0003727735.tif 000004
【図４】
0003727735.tif 000005
【図５】
0003727735.tif 000006
【図６】
0003727735.tif 000007
【図７】
0003727735.tif 000008
【図８】
0003727735.tif 000009
【図９】
0003727735.tif 000010
【図１０】
0003727735.tif 000011
【図１１】
0003727735.tif 000012
【図１２】
0003727735.tif 000013
【図１３】
0003727735.tif 000014
【図１４】
0003727735.tif 000015
【図１５】
0003727735.tif 000016
【図１６】
0003727735.tif 000017
【図１７】
0003727735.tif 000018
【図１８】
0003727735.tif 000019
【図１９】
0003727735.tif 000020
【図２０】
0003727735.tif 000021
【図２１】
0003727735.tif 000022
【図２２】
0003727735.tif 000023
【図２３】
0003727735.tif 000024
【図２４】
0003727735.tif 000025
【図２５】
0003727735.tif 000026
【図２６】
0003727735.tif 000027
【図２７】
0003727735.tif 000028
【図２８】
0003727735.tif 000029
【図２９】
0003727735.tif 000030
【図３０】
0003727735.tif 000031
【図３１】
0003727735.tif 000032
【図３２】
0003727735.tif 000033
【図３３】
0003727735.tif 000034
【図３４】
0003727735.tif 000035