(57)【特許請求の範囲】
【請求項１】
文字枠へ文字が記入された帳票原稿をスキャナで読取って読取画像から文字画像のみを切出す文字切出装置であって、予め使用する帳票に対応した文字枠の枠交点情報および矩形情報を記憶する記憶手段と、帳票画像の傾きや伸縮による枠交点のずれを計算し前記記憶手段に記憶された枠交点情報を補正する帳票補正処理手段と、この帳票補正処理手段により補正された前記枠交点情報と前記矩形情報とに基づいて文字枠より大きい矩形領域を設定し、前記読取画像から概略領域の画像を切り出す概略切出手段と、前記概略領域の画像から前記枠交点情報を中心に文字枠の４角の画像を含む角領域画像をそれぞれ抽出する角領域抽出手段と、それぞれの前記角領域画像について２次元の両方向での輪郭の立上り点と立下り点を検出する輪郭検出手段と、前記立上り点と立下り点の位置関係および枠線幅に対する設定条件を満たす文字枠の角点に対応する候補情報を算出する文字枠角点検出手段と、前記記憶手段に記憶された枠交点情報との比較により正当と判定された前記候補情報をもとに文字枠の枠線を検出する枠線検出手段と、前記角領域画像の間に位置して前記枠線検出手段により検出された文字枠の枠線を含む枠線幅方向に所定幅を有した推定枠領域を設定し、各推定枠領域に対してラベリング処理を行ない、黒画素の固まりが前記推定枠領域内で枠線以外の黒画素を含むものとそうでないものとに分類し、枠線以外の黒画素を含むとされる前記推定枠領域に対しては、前記枠線検出手段により検出された枠線に相当する領域の画素を白画素に置き換え、枠線以外の黒画素は含まないとされる前記推定枠領域に対しては、黒画素から白画素への変換を行なう枠線消去手段と、を備える文字切出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、帳票を用いた文字認識装置における文字切出装置に関するものである。
【０００２】
【従来の技術】
従来、文字切出方法としては、特開平８−７０３１号に示されるように、文字枠画像のヒストグラムを求め、あらかじめ文字枠が存在すると推定される位置の近傍のヒストグラムのピーク位置を枠線位置と推定する（図１７参照）。そして、推定した位置に基づいて、文字枠を消去し、文字を切り出し、文字認識していた。
【０００３】
【発明が解決しようとする課題】
しかし、上述の従来技術の構成では、文字枠の近傍に文字が記入された場合、その部分のヒストグラムの値が大きな値となり、文字枠線と文字の区別が困難であった。
【０００４】
さらに、帳票読取において傾いて読み取られたとき、文字枠も傾いた状態で読み取られることになる。このとき、ヒストグラムのみから文字枠を判断すると、図１８に示すようにヒストグラムは、低い値を算出することになり、文字が枠線近傍に書かれていた場合、文字が書かれた位置を文字枠として誤認することがある。
【０００５】
本発明は、上述の課題に鑑みて為されたもので、確実に文字を切り出すことにより文字認識を行うことができる文字切出装置を実現することを目的とする。
【０００６】
【課題を解決するための手段】
本発明は、上述の目的を解決するため、以下の構成をとる。
【０００７】
請求項１記載の文字切出装置の発明は、文字枠へ文字が記入された帳票原稿をスキャナで読取って読取画像から文字画像のみを切出す文字切出装置であって、予め使用する帳票に対応した文字枠の枠交点情報および矩形情報を記憶する記憶手段と、帳票画像の傾きや伸縮による枠交点のずれを計算し前記記憶手段に記憶された枠交点情報を補正する帳票補正処理手段と、この帳票補正処理手段により補正された前記枠交点情報と前記矩形情報とに基づいて文字枠より大きい矩形領域を設定し、前記読取画像から概略領域の画像を切り出す概略切出手段と、前記概略領域の画像から前記枠交点情報を中心に文字枠の４角の画像を含む角領域画像をそれぞれ抽出する角領域抽出手段と、それぞれの前記角領域画像について２次元の両方向での輪郭の立上り点と立下り点を検出する輪郭検出手段と、前記立上り点と立下り点の位置関係および枠線幅に対する設定条件を満たす文字枠の角点に対応する候補情報を算出する文字枠角点検出手段と、前記記憶手段に記憶された枠交点情報との比較により正当と判定された前記候補情報をもとに文字枠の枠線を検出する枠線検出手段と、前記角領域画像の間に位置して前記枠線検出手段により検出された文字枠の枠線を含む枠線幅方向に所定幅を有した推定枠領域を設定し、各推定枠領域に対してラベリング処理を行ない、黒画素の固まりが前記推定枠領域内で枠線以外の黒画素を含むものとそうでないものとに分類し、枠線以外の黒画素を含むとされる前記推定枠領域に対しては、前記枠線検出手段により検出された枠線に相当する領域の画素を白画素に置き換え、枠線以外の黒画素は含まないとされる前記推定枠領域に対しては、黒画素から白画素への変換を行なう枠線消去手段と、を備える。
【０００８】
この構成により、文字枠の４角の角領域の画像を抽出し、これら角領域での文字枠の角点の候補情報に基づいて文字枠を推定することにより、効率的な文字の切出しを実現することができ、文字枠線の傾きやかすれに影響されにくい、精度のよい文字の切出しを実現することが可能となる。
【００３１】
【発明の実施の形態】
以下、本発明の一実施の形態について図面を参照して説明する。図１は、本発明の一実施例による文字切出装置のブロック構成図を示す。図１において、１０１はＲＯＭであり、文字切出を行うための処理プログラム、文字認識のための制御プログラムが格納されている。ＲＯＭ１０１には、切出実行プログラムである帳票処理補正機能１０１１、概略切出機能１０１２、角領域１０１３、輪郭検出機能１０１４、文字枠角点検出機能１０１５、枠幅・枠高さ判定機能１０１６、枠線検出機能１０１７、枠線消去機能１０１８、ＯＣＲ制御プログラム１０１９のそれぞれが格納されている。
【００３２】
ＲＡＭ１０２は、枠交点情報記憶領域１０２１、矩形情報記憶領域１０２２、候補情報記憶領域１０２３を有するものである。なお、ＲＡＭの代わりに不揮発性のメモリでもよい。
【００３３】
枠交点情報記憶領域１０２１は、使用する帳票に対応した文字枠を構成する枠の交点番号、交点（角）の位置、後述する評価値、枠線の輪郭の位置を示す輪郭情報、文字枠形状を表す形状情報から構成される枠交点情報を記憶するものである（図３、図4参照）。
【００３４】
図４の各1行が１交点に対する枠交点情報であり、１帳票の文字すべてに対する枠交点情報を予め持っておく。
【００３５】
矩形情報記憶領域１０２２は、文字枠矩形を構成する４つの枠交点座標を示す矩形情報を記憶するものである（図５参照）。
【００３６】
矩形情報は枠交点番号、左上点No、右上点No、右下点No、左下点Noから構成される。左上点No、右上点No、右下点No、左下点Noは、前記枠交点情報と対応させる。
【００３７】
候補情報記憶領域１０２３は、読み取った帳票に対する交点情報である。（図１３参照）。交点情報は各交点に対して複数の候補を算出し、この複数記憶されている情報の中から一つを選択して、文字切出に使用する。詳細は後述する。
【００３８】
帳票処理補正機能１０１１は、帳票処理を行い、文字枠情報記憶領域に記憶されている交点情報を補正する。枠交点情報記憶領域１０２１に記憶されている情報は、予め設定されている基準値であり、原稿の斜行等により、枠交点情報を補正する必要がある。帳票処理補正機能１０１１は周知の帳票処理方法を用い、帳票の枠交点を求め、枠交点情報記憶領域１０２１とのずれを計算し、これを用いて枠交点情報を補正する。
【００３９】
概略切出機能１０１２は、１つの文字枠に対し、枠からはみ出た文字に対しても、文字全体が含まれるように、文字枠よりも少し大きく画像を切出す。
【００４０】
角領域抽出機能１０１３は、文字枠の４つの角点それぞれの周辺画像を抽出する。
【００４１】
輪郭検出機能１０１４は、角領域抽出機能１０１３によって抽出された領域画像に含まれている枠線のＸ方向、Ｙ方向の輪郭位置の候補を計算する。
【００４２】
文字枠角点検出機能１０１５は、輪郭検出機能１０１４によって計算された輪郭位置候補の情報から、文字枠の４角の座標を計算する。
【００４３】
枠幅・枠高さ判定機能１０１６は、文字枠角点検出機能１０１５により計算された４角の角点位置から、その4角点が構成する枠幅・枠高さが、枠交点情報記
憶領域に記憶されている内容と合致するかを判定する。
【００４４】
枠線検出機能１０１７は、枠幅・枠高さ判定機能１０１６により得られた４角の角点位置をもとに、文字枠の枠線位置を計算する。
枠線消去機能１０１８は、抽出された枠線を消去する。
【００４５】
ＯＣＲ制御プログラム１０１９は、上述した切出しプログラムにより切出された文字画像を文字認識し、認識結果を文字カテゴリ毎に対応したコードに直して出力する。
【００４６】
イメージメモリ１０３は、スキャナ１０５で読み取った原稿を一旦記憶する。
イメージメモリ１０３に記憶したイメージデータを切出実行プログラム、ＯＣＲ制御プログラムのプログラム処理により、文字は切り出され、認識される。
【００４７】
ＣＰＵ１０６は、ＲＡＭ１０２に格納されている切出実行プログラム、ＯＣＲ制御プログラムに基づいて動作するものである。
【００４８】
以下、切出実行プログラムに基づいて、その処理動作を図２に基づいて説明する。
【００４９】
ステップ０００１（以下、Ｓ０００１と略す。）では、ＣＰＵ１０６は、帳票処理補正機能１０１１の帳票処理により、枠交点情報記憶領域１０２１に記憶されている枠交点情報を補正し、枠交点情報記憶領域１０２１に記憶する。
【００５０】
Ｓ０００２では、概略切出機能１０１２により、枠交点情報記憶領域１０２１、矩形情報記憶領域１０２２に記憶されている交点情報、矩形情報に定められる情報に基づいて概略領域を切り出し、イメージメモリ１０３に記憶する。この概略領域は、文字枠からはみ出した文字でも文字全体が入るように文字枠より少し大きい領域を設定する。
【００５１】
Ｓ０００３では、角領域抽出機能１０１３により、抽出された概略領域に含まれる文字枠の角領域を抽出し、イメージメモリ１０３にＳ０００２で抽出した概略領域と別に角領域として記憶する。
【００５２】
Ｓ０００４では、抽出した角領域の文字枠情報のＸ座標におけるヒストグラム、Ｘ座標における隣同士の差分値、この差分値のＸ座標における隣同士の加算値をそれぞれ算出する。この加算値に基づいて、文字枠における複数の輪郭座標を複数抽出する。
【００５３】
Ｓ０００５では、Ｍ×Ｎフィルタを用いて、ある輪郭座標を始点に上下左右のいずれの方向に画素が連続しているかを検出し、これにより文字枠の形状を認識する。
【００５４】
Ｓ０００６では、概略抽出した文字枠の４角全てを行ったかを判断する。
Ｓ０００７では、全ての角に対して処理したときの処理であり、文字枠の枠幅、高さに基づいて、適当な情報が得られたかどうか、つまり適当な文字枠を抽出したかどうかを判定する。
【００５５】
Ｓ０００８では、文字枠の推定枠領域、角領域に、認識されるべき文字がどの位置にあるかを検出し、その位置に応じて文字枠消去のための分別を行う。
【００５６】
Ｓ０００９では、分別に応じた枠線を消去する。具体的には、文字枠の外側に文字が位置しているときには、大き目の領域を持って文字枠を消去する。そうでなければ、ほぼ文字枠と同じ大きさをもって文字枠を消去する。
【００５７】
Ｓ００１０では、Ｓ０００７で文字枠の判定で、否の判定を行ったときのステップであり、他に候補があるかを判断し、あればその候補に基づいて再度判定を行い、なければ、リジェクト処理（エラー処理）を行う。
【００５８】
このように文字を切出すことにより、文字枠と文字とが重なり、文字枠が認識しづらい場合でも、文字枠を認識し、切出すことができる。
【００５９】
以下、各ステップについて詳細に説明する。
図３は、読み取られる帳票の概要図である。
【００６０】
文字枠領域２０１は、認識されるべき文字を記入する領域である。文字枠領域２０１に記入された文字を認識することができるように、切出し処理が行われる。切出処理は、図４、図５に示されている枠交点情報、矩形情報から交点番号Ｐ１〜Ｐ４の４点で示される領域を切出すように概略切出機能プログラム１０１２に基づいて処理される。
【００６１】
図５に示す文字枠番号Ａ１は、文字枠領域２０１を示し、文字枠番号Ａ２、文字枠番号Ａ３は、それぞれ文字枠領域２０２、文字枠領域２０３を示す。
【００６２】
図４に示す枠交点情報は、文字枠が交差している交点の交点情報、後述する評価値、文字枠の輪郭の立ち上がり、立ち下がりを示す位置座標を示す輪郭情報、文字枠の角領域における形状情報から構成されている。
【００６３】
図５に示す矩形情報は、図４に示す交点番号を用いて文字枠を指定する情報である。
【００６４】
図中のＸ，Ｙは帳票中の枠交点の座標を示している。帳票の枠線には太さがあるが、ここで表すＸ，Ｙは枠線の中心位置の座標とする。なお、帳票中の文字枠全てについて、この情報は格納されている。
【００６５】
これら枠交点情報記憶領域１０２１、矩形情報記憶領域１０２２に記憶されている情報に基づいて、文字切り出し処理を行う。以下文字切出処理について説明する。
【００６６】
まず、文字の切出処理に先立って帳票処理を行う。帳票処理においては、予め記憶している帳票フォーマットデータと読み取った画像データとのずれを計算する処理を行う。帳票処理は公知の技術であり、ここではその説明を省略する。
【００６７】
帳票処理補正機能１０１１は、帳票処理において、画像の傾きや伸縮によって枠点のずれが検出された場合は、それをこの情報に反映し、補正する。
【００６８】
例えば、Ｐ１＝（Ｘ１，Ｙ１）に対応する枠交点が、（ｘ１，ｙ１）に移動していることが、帳票処理によって検出された場合、これに基づいて図４のＰ１欄のＸＲ，ＸＦ，ＹＲ，ＹＦの情報を計算し直す。この場合は，ＸＲ＝ｘ１−１，ＸＦ＝ｘ１＋１，ＹＲ＝ｙ１−１，ＹＦ＝ｙ１＋１になる補正を行う。ここに登録されているすべての点（Ｐ２〜Ｐ４）についてこの計算を行い、処理する帳票画像に合わせて、枠交点情報を補正する。
【００６９】
概略切出機能１０１２は、文字枠全体を含む領域よりもＷ（＞０）の幅だけ外側に大きな領域を切出す。具体的には、図６に示す通り、文字枠領域より上下左右に幅Ｗの分だけ大き目の領域を概略領域とし、この領域に対して切出処理を行う。この概略切出しはこれから切出そうとしている文字とその文字に対する文字枠のみを含むようにするのが望ましい。Ｗの値は、それを考慮して適当な値に設定する。
【００７０】
角領域抽出機能１０１３は、図５に登録されている文字枠Ａ１、Ａ２等それぞれ４つの角領域の画像を取り出す（図６参照）。取り出す画像の中心座標（交点情報）は、上述した帳票処理で求められ補正された交点情報である。
【００７１】
以下、その処理動作を図７のフローチャートに基づいて説明する。このフローチャートは図２におけるＳ０００３の詳細な処理を示すものである。
ステップ７０１（以下、Ｓ７０１と略する）では、枠交点情報記憶領域１０２１から交点Ｐ１を読み出す。前述したとおり、交点Ｐ１の値は帳票処理において補正が施されている。
【００７２】
Ｓ７０２では、角領域の大きさを示すａを交点番号Ｐ１の座標（Ｘ１，Ｙ１）に対して、加算、または減算処理し、所定の大きさの領域（２ａ×２ａ）をとるための演算を行う。具体的には、角領域は、（ｘ１−ａ、ｙ１−ａ）（ｘ１＋ａ、ｙ１−ａ）（ｘ１＋ａ、ｙ１＋ａ）（ｘ１−ａ、ｙ１＋ａ）を４点とする領域である。なお、値ａは、文字枠の角部分のみを含むように設定する。
【００７３】
Ｓ７０３では、上記の演算結果により求められた角領域の切出処理を行う。
Ｓ７０４では、切出処理を行ったデータをイメージデータとして、イメージメモリ１０３に記憶する。
【００７４】
このような処理により、角領域抽出機能１０１３は、４つの角領域を得ることができる。
【００７５】
輪郭検出機能１０１４は、角領域抽出機能１０１３が抽出したそれぞれの領域に対して、以下の手順で枠線の立ち上がり座標、立ち下がり座標を求める。ｘ軸方向からy座標への輪郭の立ち上がり、立ち下がりをＸＲ、ＸＦとし、y軸方向からx軸方向への立ち上がり立ち下がりをＹＲ、ＹＦとする。以下、これら情報を輪郭情報と総称する。文字枠は、図８に示すように所定の幅を有するものであり、それぞれの立ち上がり、立ち下がりの部分の座標を求めることができる。
【００７６】
以下、輪郭検出機能１０１４の動作を図９に示すフローチャート、及び図１０の説明図に基づいて説明する。なお、本フローチャートは図２におけるＳ０００４の詳細を示すフローチャートである。
【００７７】
Ｓ９０１では、イメージメモリ１０３に記憶されているそれぞれの角領域のＸ座標におけるヒストグラム（Ｈ（Ｘ））を演算する。具体的には図１０（ａ）の角領域では、図１０（ｂ）に示すようなヒストグラムを算出する。
【００７８】
Ｓ９０２では、差分値Ｄ（Ｘ）を算出する。Ｄ（Ｘ）はＨ（Ｘ）−Ｈ（Ｘ−１）の差分値である。
【００７９】
Ｓ９０３では、角領域全てのＸ座標に基づいて行われたかどうかを判断する。Ｓ９０４では、Ｘ座標をインクリメントし、Ｘ座標全てに対する差分値を算出するまで、Ｓ９０２〜Ｓ９０３を繰り返す。ここでは、図１０（ｃ）に示すようなグラフ値が算出される。
【００８０】
Ｓ９０５では、加算値Ｄ２（Ｘ）を算出する。Ｄ２（Ｘ）は、Ｄ（Ｘ）とＤ（Ｘ−１）の符号が等しいとき、つまり、Ｄ（Ｘ）、Ｄ（Ｘ−１）とがともに正の場合は、
Ｄ２（Ｘ）＝Ｄ（Ｘ）＋Ｄ（Ｘ−１）
Ｄ（Ｘ）とＤ（Ｘ−１）の符号が異なるとき、つまり、Ｄ（Ｘ）、Ｄ（Ｘ−１）のいずれか一方が正の数で、もう一方が負の数のときは、
Ｄ２（Ｘ）＝Ｄ（Ｘ）−Ｄ（Ｘ−１）
である。
【００８１】
Ｓ９０６では、角領域全てのＸ座標に基づいて行われたかどうかを判断する。
Ｓ９０７では、Ｘ座標をインクリメントし、Ｘ座標全てに対する加算値を算出するまで、Ｓ９０５〜Ｓ９０６を繰り返す。ここでは図１０（ｄ）に示すようなグラフ値が算出される。
【００８２】
Ｓ９０８では、文字枠の補正位置ｘ１を用いて、枠位置推定のための評価値Ｅ（Ｘ）を算出する。Ｅ（Ｘ）＝（Ｄ（Ｘ）＋Ｄ２（Ｘ））×Ｓ（Ｘ）を演算する。
【００８３】
なお、Ｓ（Ｘ）はＸ＝ｘ１（ｘ１は帳票処理によりＸ１を補正した値であり、補正がなかった場合はＸ１のとき）において最大になる関数であれば良く、推定枠位置の精度により選択する。例えば、Ｓ（Ｘ）は、１／ＦＬＯＯＲ（ＡＢＳ（Ｘ−ｘ１）／ＡＬＬＯＷＷ＋１）を使用する。
【００８４】
ただし、ここで関数ＡＢＳ（Ｖ）は数値Ｖの絶対値をとる関数であり、関数FLOOR(W)はＷの小数点以下を切り捨てする関数を表す。ＡＬＬＯＷＷは正の値で文字枠推定位置の精度に合わせて調整する。
【００８５】
Ｓ９０９では、角領域全てのＸ座標に基づいて行われたかどうかを判断する。
Ｓ９０７では、Ｘ座標をインクリメントし、Ｘ座標全てに対するＥ（Ｘ）を算出するまで、Ｓ９０８〜Ｓ９０９を繰り返す。
【００８６】
このようにして、枠位置に対する評価値Ｅ（Ｘ）を算出する。この評価値Ｅ（Ｘ）に基づいて、輪郭情報の立ち上がり位置座標ＸＲの候補として登録し、輪郭情報の立ち下がり位置座標ＸＦの候補として登録する。
【００８７】
以下、登録動作について図１１、図１２のフローチャートに基づいて説明する。図１１は立ち上がりＸＲの候補、図１２は立ち下がりＸＦの候補を求めるためのフローチャートである。
【００８８】
Ｓ１１０１では、まずＸ＝１を設定し、Ｓ１１０２では、Ｅ（１）＞ＴＨ１を満たすか、否かを判断する。なお、ＴＨ１は任意の数である。
【００８９】
Ｓ１１０３では、Ｅ（１）がＴＨ１を満たすと、Ｅ（１）の値をメモリに登録する。満たさないと、記憶しない。
【００９０】
Ｓ１１０４では、Ｘを一つインクリメントし、Ｓ１１０５では、Ｘ座標の全てのＸについて、処理を行ったかを判断する。そして、これらＳ１１０２〜Ｓ１１０４を繰り返す。
【００９１】
同様に、図１２でのＳ１１０１では、Ｘ＝１を設定し、Ｓ１２０２では、Ｅ（１）＜ＴＨ２を満たすか、否かを判断する。なお、ＴＨ２は任意の数である。
【００９２】
Ｓ１２０３では、Ｅ（１）がＴＨ２を満たすと、Ｅ（１）の値をメモリに登録する。満たさないと、記憶しない。
【００９３】
Ｓ１２０４では、Ｘを一つインクリメントし、Ｓ１２０５では、Ｘ座標の全てのＸについて、処理を行ったかを判断する。そして、これらＳ１２０２〜Ｓ１２０４を繰り返す。
【００９４】
そして、枠線輪郭立ち上がり点とたち下がり点の矛盾のない組み合わせを求めるため、立ち上がり点のＸ座標ＸＲ、立ち下がり点のＸ座標ＸＦにおいて以下の条件を満たす必要がある。
【００９５】
条件１  立ち上がり点と立ち下がり点の位置関係    ＸＲ＜ＸＦ
条件２  枠線幅      ＸＦ−ＸＲ＜枠線幅＋ｍ
ｍは正の定数であり、枠線の最大変動値である。ｍの値はスキャナ１０５の精度により異なる値となり、適切な値を設定する。
【００９６】
枠線幅は、図４の表の枠交点情報から算出する。例えば、Ｘ方向の枠線幅は、（ＸＦ−ＸＲ＋１）である。この情報は予め登録しておいても良い。
【００９７】
これらの条件を満たす座標の組み合わせＡ（ＸＲ，ＸＦ）の候補について、評価値Ｅ２（Ａ）を求める。
【００９８】
Ｅ２（Ａ）＝  ＡＢＳ（Ｅ（ＸＲ））＋  ＡＢＳ（Ｅ（ＸＦ））
以上の処理をＹ方向にも同様にこれを行い、Ｙ方向の枠立ち上がり点ＹＲ、ＹＦ候補の組み合わせ、Ｂ（ＹＲ、ＹＦ）についてＥ２（Ｂ）を求める。
【００９９】
以上の処理によれば、立ち上がり点、立ち下がり点の候補が、各角点毎に複数求められることがあるが、その場合は複数の候補について同様にこの評価を行い、それぞれの優劣を付ける。
【０１００】
また、候補が１つも得られない角点については、枠交点情報表1の値を代わりに使用する文字枠角点検出機能１０１５は、角形状を求める処理を行う。角形状とは、文字枠線の角部分の形状を示し、角形状情報は、枠線の角位置を正確に求めるための補助情報として使用される。
【０１０１】
角形状は、画像のM×Nサイズのフィルタを移動させ、フィルタ内の黒画素の並び方がある条件を満たすか否かにより判別を行う。
【０１０２】
各枠はそれぞれ座標点（α，β）周辺の画素の座標値を示す。１つの升目が１画素に対応している。
【０１０３】
ここでは、P(α,β)は座標(α,β)に対する画素の値を示す。(α,β)以外の点についても同様である。
【０１０４】
これらの点に対し、以下の条件が成り立っているかどうかを調べる。
黒画素＝１  白画素＝０  と定義した場合
条件１：
[P(α,β‐2)|P(α,β‐1) |P(α,β) |P(α,β+1) |P(α,β+2)]&
[P(α+1,β‐2)|P(α+1,β‐1) |P(α+1,β) |P(α+1,β+1) |P(α+1,β+2)]&
[P(α+2,β‐2)|P(α+2,β‐1) |P(α+2,β) |P(α+2,β+1) |P(α+2,β+2)]
が1となる。
【０１０５】
ただし、|は論理和を示し、&は論理積を示す。
中心点の（α，β）を（ＸＦ，ＹＦ）と（ＸＦ，ＹＦ‐b）を結ぶ直線上（b＞０）の各点に移動しながら、この条件が１度でも成り立てば、（ＸＦ，ＹＦ）からＸの正の方向に枠線が存在すると判断する。
条件2：
[P(α‐2,β)|P(α‐1,β) |P(α,β) |P(α+1,β) |P(α+2,β)]&
[P(α‐2,β+1)|P(α‐1,β+1) |P(α,β+1) |P(α+1,β+1) |P(α+2,β+1)]&
[P(α‐2,β+2)|P(α‐1,β+2) |P(α,β+2) |P(α+1,β+2) |P(α+2,β+2)]が１となる。
ただし、|は論理和を示し、&は論理積を示す。
【０１０６】
中心点の（α，β）を（ＸＦ，ＹＦ）と（ＸＦ−ａ，ＹＦ）を結ぶ直線上（ａ＞０）の各点に移動しながらこの条件が１度でも成り立てば、（ＸＦ，ＹＦ）からＹの正の方向に枠線が存在すると判断する。
【０１０７】
このほかの候補点についても同様に
条件３：
[P(α,β‐2)|P(α,β‐1) |P(α,β) |P(α,β+1) |P(α,β+2)]&[P(α‐1,β‐2)|P(α‐1,β‐1) |P(α‐1,β) |P(α‐1,β+1) |P(α‐1,β+2)]&
[P(α‐2,β‐2)|P(α‐2,β‐1) |P(α‐2,β) |P(α‐2,β+1) |P(α‐2,β+2)]が1となる。
ただし、|は論理和を示し、&は論理積を示す。
【０１０８】
中心点の（α，β）を（ＸＲ，ＹＲ）と（ＸＲ，ＹＲ＋ａ）を結ぶ直線上（ａ＞０）の各点に移動しながら、この条件が１度でも成り立てば、（ＸＲ，ＹＲ）からＸの負の方向に枠線が存在すると判断する。
条件４：
[P(α‐2,β)|P(α‐1,β) |P(α,β) |P(α+1,β) |P(α+2,β)]&
[P(α‐2,β‐1)|P(α‐1,β‐1) |P(α,β‐1) |P(α+1,β‐1) |P(α+2,β‐1)]&
[P(α‐2,β‐2)|P(α‐1,β‐2) |P(α,β‐2) |P(α+1,β‐2) |P(α+2,β‐2)]が１となる。
ただし、|は論理和を示し、&は論理積を示す。
【０１０９】
中心点の（α，β）を（ＸＲ，ＹＲ）と（ＸＲ＋ａ，ＹＲ）を結ぶ直線上（ａ＞０）の各点に移動しながら、この条件が１度でも成り立てば、（ＸＲ，ＹＲ）からＹの負の方向に枠線が存在すると判断する。
【０１１０】
また、条件１と条件２が成り立てば、（ＸＦ，ＹＦ）近傍の枠線が、Ｘの正方向とＹの正方向に枠線を持ちそれらが９０度に交わっていると判断する。条件３と条件４が成り立てば、（ＸＲ，ＹＲ）近傍の枠線が、Ｘの負の方向とＹの負の方向に枠線を持ちそれらが９０度に交わっていると判断する。このように、角領域における輪郭情報からなる座標（ＸＦ，ＹＦ）、座標（ＸＲ，ＹＲ）近傍の枠線形状を知ることができる。
【０１１１】
これら情報を図１３に示す候補情報のうちの形状情報欄に記憶する。（ＸＦ，ＹＦ）に対して、Ｘの正側の枠線をＲ、（ＸＦ，ＹＦ）に対して、Ｙの正側の枠線をＢとし（ＸＲ，ＹＲ）に対して、Ｘの負側の枠線をＬ、（ＸＲ，ＹＲ）に対して、Ｙの負側の枠線をＡとし、枠線が存在する場合をTRUE、存在しない場合をFALSEとして登録する。
【０１１２】
次に図４に示す予め登録されている情報と図１３に示す登録された情報とを角形状情報Ａ、Ｂ、Ｒ、Ｌに着目して比較する。一致している数に基づいて候補Ｃ１〜Ｃ３の中から一つを選択する。一致している数が同じ場合は、Ｅ２（Ｘ）に基づき、その値の大きいものを選択する。さらに、図４に示す予め登録されている枠交点情報の評価値と図１３に示す候補情報の評価値とを比較、判定することにより、その情報でよいかを判断することにより、正確な文字切出を実現することができる。
【０１１３】
このようにして、補正された交点番号に基づいて複数の候補情報の中から適切な輪郭情報、形状情報等を得ることができる。
【０１１４】
これら処理は交点番号Ｐ１〜Ｐ４について繰返し行われる。
枠幅・枠高さ検出機能１０１６は、文字枠角点検出機能１０１５で選択された４つの候補情報ＸＲ、ＸＦ、ＹＲ、ＹＦの座標から、枠幅、枠高さを求め、予め記憶している枠幅、枠高さの情報と比較することにより、角点座標候補の正当性を判別する。
【０１１５】
ここでは、選択された４候補のＸＲ，ＸＦ，ＹＲ，ＹＦの座標を、P1  =（xr1,xf1,yr1,yf1）, P2  =（xr2,xf2,yr2,yf2）, P3  =（xr3,xf3,yr3,yf3）, P4  =（xr4,xf4,yr4,yf4）とし、説明する。
【０１１６】
次に以下の条件が、成立するかどうか検査する。枠幅の検査は以下の演算式により求められる。
【０１１７】
ABS(（xr2‐xr1）×（xr2‐xr1）+（yr2‐yr1）×（yr2‐yr1）−（xr3‐xr4）×（xr3‐xr4）+（yr3‐yr4）×（yr3‐yr4）)<ε
ただし、関数ＡＢＳ（Ｘ）はＸの絶対値を取る関数であり、ε（ε＞０）は、この処理の精度に基づき定める数である。
【０１１８】
上述の演算式は、図１４に示すＡＢ間、ＣＤ間の距離の差を演算したものであり、この差が所定値（ε）以下であるなら、正当な値と判断している。差が所定値以上であるときは、上辺、または底辺が極端に長く、文字枠としては不適切なことを示す。
【０１１９】
枠高さのチェックは以下の演算式に基づいて求められる。
ABS(（xr4‐xr1）×（xr4‐xr1）+（yr4‐yr1）×（yr4‐yr1）−（xr3‐xr2）×（xr3‐xr2）+（yr3‐yr2）×（yr3‐yr2）)<ε
ただし、関数ＡＢＳ（Ｘ）はＸの絶対値を取る関数であり、ε（ε＞０）は、この処理の精度に基づき適当な定数を設定する。
【０１２０】
上述の演算式は、図１４に示すＡＤ間、ＢＣ間の距離の差を演算したものであり、この差が所定値（ε）以下であるなら、正当な値と判断している。差が所定値以上であるときは、右辺、または左辺が極端に長く、文字枠としては不適切なことを示す。
【０１２１】
幅のチェック条件と高さのチェック条件が成り立ったら、P1〜P4の情報を採用する。成り立たない場合は、要素を入れ替え、上記の条件が成立するものを探す。さらに、条件の成立する組み合わせが得られなかった場合は、リジェクトする。
【０１２２】
このように、検出した情報の正当性を行う。これにより誤った情報に基づいて文字枠の切出を行う事を防止することができる。
【０１２３】
枠線検出機能１０１７は、文字枠角点検出機能、枠幅・枠高さ検出機能の処理により決定された立ち上がり情報、立ち下がり情報に基づいて枠線を検出する。
【０１２４】
以下、図１５を参照して説明する。
網点模様の部分を推定枠領域とし、それぞれ推定枠領域１〜４を示し、推定枠領域の幅はｂとする。
【０１２５】
例えば、推定枠領域４は、
(xr1‐b,yf1+a)(xf1+b,yf1+a)(xf4+b,yr4‐a)(xr4‐b,yr4‐a)  （ｂ＞１）で囲まれる矩形であり、この領域に対し、黒画素追跡処理（ラベリング処理）を行い黒画素の固まりごとに画像を分類（ラベル付け）する。なお、ラベリング処理は公知の技術であり、ここでは説明を省略する。
【０１２６】
推定枠領域１〜４に対してそれぞれ処理を行う。推定枠領域において、ラベリングを行った結果について、以下のように分類する。
Ａ．推定枠領域の長辺に接触していないラベルを持つもの。
Ｂ．推定枠領域に文字枠の内側だけ接触しているラベルを持つもの。
Ｃ．推定枠領域に文字枠の外側だけ接触しているラベルを持つもの。
Ｄ．推定枠領域に両方接触しているラベルを持つもの。
【０１２７】
さらに各角領域に対しては、Ｅ，Ｆ，Gに分類する。
Ｅ．ＸＲ−α＜Ｘ＜ＸＦ＋α  （α>0）  で示されるＸ座標を持つ領域。
Ｆ．ＹＲ−β＜Ｙ＜ＹＦ＋β  （β>0）  で示されるＹ座標を持つ領域。
Ｇ．Ｅ，Ｆ以外の領域。
【０１２８】
α及びβは、読み取り系の性能などにより、適当に定める。
図１５では、この分類を行うと以下のようになる。
【０１２９】
推定枠領域１及び推定枠領域４はＡに分類され、推定枠領域３はＢに、推定枠領域２はＤに、角領域は、Ｅ，Ｆに分類される。
【０１３０】
そして、分類された領域に対して、枠線消去機能１０１８は分類に対応した枠線消去を行う。
【０１３１】
つまり、分類Ａ、Ｅ、Ｆに分類された領域に対しては、黒画素を白画素に変換する。また、分類Ｂ、Ｃ、Ｄに分類された領域に対しては、推定枠領域の枠線が存在すると考えられる領域を白画素に置き換える。この領域は推定枠領域により小さい領域で十分であり、具体的には、推定領域４の場合では、
(xr1‐c,yf1+a)(xf1+c,yf1+a)(xf4+c,yr4‐a)(xr4‐c,yr4‐a)  （ｂ＞ｃ＞０）で表される領域である。
【０１３２】
分類Ｇについては、そのまま状態にし、変換処理等は行わない。
図１５に示されるように角領域、推定枠領域に分類され、さらに、この領域内で黒画素との関係を調べ、適切な文字枠消去処理を行うことにより、図１６に示す通りの文字を切出すことができる。
【０１３３】
【発明の効果】
以上の説明から明らかなように、本発明は、文字枠の４角の角領域の画像を抽出し、これら角領域での文字枠の角点の候補情報に基づいて文字枠を推定することにより、文字枠とこの文字枠内に記入されている文字とが判別しにくい場合でも、効率的よく確実に文字枠のみを認識して、消去することができ、精度のよい文字の切出しを実現することができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態による文字切出装置の構成を示すブロック図
【図２】  上記実施の形態の文字切出装置の動作フロー図
【図３】  上記実施の形態の文字切出装置で使用される帳票の概要図
【図４】  上記実施の形態の文字切出装置の文字枠情報記憶領域に記憶される情報を示す概要図
【図５】  上記実施の形態の文字切出装置の矩形情報記憶領域に記憶される情報を示す概要図
【図６】  図４で示される帳票の文字枠の角領域を示す概念図
【図７】  上記実施の形態の文字切出装置の角領域抽出機能１０１３の動作フロー図
【図８】  文字枠の輪郭を示す概要図
【図９】  上記実施の形態の文字切出装置の輪郭検出機能１０１４の動作フロー図
【図１０】（ａ）  抽出した角領域の説明図
（ｂ）  図１０（ａ）で抽出したイメージ図のヒストグラム図
（ｃ）  図１０（ｂ）のヒストグラム図のＸ座標における差分値を算出するグラフ図
（ｄ）  図１０（ｃ）のグラフ図に基づいて、Ｘ座標において隣接するもの同士を加算したことを示すグラフ図
【図１１】  立ち上がり座標を示す輪郭情報を抽出するフロー図
【図１２】  立ち下がり座標を示す輪郭情報を抽出するフロー図
【図１３】  上記実施の形態の文字切出装置の候補情報記憶領域に記憶される情報を示す概要図
【図１４】  文字枠を判定するための説明図
【図１５】  文字枠の角領域、推定枠領域を示す説明図
【図１６】  文字枠を消去して抽出した文字を示す説明図
【図１７】（ａ）  文字枠を示す説明図
（ｂ）  従来のヒストグラムを用いて文字枠を認識する方法を示す説明図
【図１８】（ａ）  文字枠が傾斜した場合を示す説明図
（ｂ）  傾斜した文字枠のヒストグラムを認識する際、認識誤りの例を示す説明図
【符号の説明】
１０１  ＲＯＭ
１０２  ＲＡＭ
１０３  イメージメモリ
１０４  プリンタ
１０５  スキャナ
１０６  ＣＰＵ
１０１１  帳票処理補正機能
１０１２  概略切出機能
１０１３  角領域抽出機能
１０１４  輪郭検出機能
１０１５  文字枠角点検出機能
１０１６  枠幅・枠高さ判定機能
１０１７  枠線検出機能
１０１８  枠線消去機能
１０１９  ＯＣＲ制御プログラム
１０２１  枠交点情報記憶領域
１０２２  矩形情報記憶領域
１０２３  候補情報記憶領域
【図１】
0004242962.tif 000002
【図２】
0004242962.tif 000003
【図３】
0004242962.tif 000004
【図４】
0004242962.tif 000005
【図５】
0004242962.tif 000006
【図６】
0004242962.tif 000007
【図７】
0004242962.tif 000008
【図８】
0004242962.tif 000009
【図９】
0004242962.tif 000010
【図１０】
0004242962.tif 000011
【図１１】
0004242962.tif 000012
【図１２】
0004242962.tif 000013
【図１３】
0004242962.tif 000014
【図１４】
0004242962.tif 000015
【図１５】
0004242962.tif 000016
【図１６】
0004242962.tif 000017
【図１７】
0004242962.tif 000018
【図１８】
0004242962.tif 000019