(57)【特許請求の範囲】
【請求項１】
入力した表画像から、垂直軸、及び水平軸への投影像を求めて、表部分をベクトル化する表のベクトル化装置において、
前記表画像の表部分に相当する画素に対して、水平軸（Ｘ軸）には、水平方向の線分を無視し、垂直方向の線分にのみ限定して投影像を抽出し、垂直軸（Ｙ軸）には、垂直方向の線分を無視し、水平方向の線分のみに限定して投影像を抽出することで、表を構成する罫線の投影像を求める投影部と、
前記罫線の投影像と同じ幅の直線を、メモリ上に、水平及び垂直方向から引き、それをマスク画像として生成するマスク画像生成部と、
該マスク画像生成部で生成したマスク画像に従って、交点間の長さと交点間の画素数の比率で罫線を探索し、表部分をベクトル化する罫線探索部を設けたことを特徴とする表のベクトル化装置。
【請求項２】
前記罫線探索部が、マスク画像に従って罫線を探索する際、前記マスク画像から、直線の交点を抽出し、
抽出した交点間の距離に対する画素数の比率から、前記交点間の罫線の存在を決定することを特徴とした請求項１記載の表のベクトル化装置。
【請求項３】
前記罫線探索部が、マスク画像に従って罫線を探索する際の罫線データは、直線の木構造で表されることを特徴とする請求項１記載の表のベクトル化装置。
【請求項４】
前記ベクトル化装置に、表画像の水平成分のベクトル化処理を行う水平成分処理部と、垂直成分のベクトル化処理を行う垂直成分処理部とを設け、
入力した表画像を、水平成分と垂直成分とに分割して、前記水平成分処理部と、垂直成分処理部とで並列処理を行うことを特徴とした請求項１乃至３のいずれかに記載の表のベクトル化装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば、帳票や図面等の表をベクトル化する表のベクトル化装置に関する。
【０００２】
帳票や図面等の表をベクトル化することは、ＯＣＲ（光学的文字読み取り装置）、地図の処理、文書処理等の分野で重要な技術である。例えば、ＯＣＲでは、ＯＣＲ専用の帳票だけでなく、市販されている帳票から文字を認識することが要求されている。
【０００３】
帳票の表を自動的にベクトル化することによって、表の同定や、表の抜き取りができ、ＯＣＲの認識率向上や、付加価値を生むことができる。また、図面では、部品表等の表のベクトル化は必須である。
【０００４】
【従来の技術】
図１０は、従来技術の説明図であり、図１０中、１は表画像、２は表部分、３は投影像（ドット数）を示す。
【０００５】
従来、表のベクトル化装置において、帳票、図面等の表画像１から表部分２をベクトル化する場合、表の罫線を抽出することにより、ベクトル化していた。
この場合、表を構成する罫線は、表画像１に対し、水平、若しくは垂直であることを前提にして、垂直軸（Ｙ軸）、及び水平軸（Ｘ軸）への投影像（ドット数）３から求めていた。このベクトル化処理の概要は、次の通りである。
【０００６】
先ず、スキャナ等から帳票等を読んで、表画像１（メモリ内の画像）を得る。その後、表画像１に対し、垂直軸、及び水平軸方向の投影像３を求める。
この投影像３は、Ｘ−Ｙ座標の各軸（Ｘ，Ｙ）方向に対し、ドット数を累積した値（例えば、黒部分のドットを「１」、白部分のドットを「０」とすると、ドット「１」の累積値）である。
【０００７】
また、この投影像３は、表の罫線だけでなく、表部分２の文字、数字等のドットも一緒に求めている（罫線以外のドットがノイズとして入っている）。
従って、表部分２の罫線のみを抽出するために、前記投影像（ドット数）３が、所定の閾値以上であるかどうかを判定し、所定の閾値以上であれば、罫線として抽出する。このようにして、罫線のみを抽出することができる。
【０００８】
【発明が解決しようとする課題】
上記のような従来のものにおいては、次のような課題があった。
帳票や、図面は、スキャナ等の画像入力装置で読み取った場合、多少傾く。この場合、大きな傾きは座標変換で修正することが可能である。
【０００９】
しかし、例えば１°以下の傾きでも、画像中では量子化誤差の影響で直線は数画素の傾きを持つが、この傾きは修正できなかった。傾きが修正できないと、上記のような従来方法では、罫線の抽出の際用いる閾値が一意に決定できない。
【００１０】
本発明は、このような従来の課題を解決し、入力した表画像が多少傾いても、正確に表部分のベクトル化ができるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
図１は本発明の原理説明図であり、図１中、図１０と同じものは、同一符号で示してある。また、５は表のベクトル化装置、６は画像入力部、７は投影部、８はマスク画像生成部、９は罫線探索部、１０は第１のフレームメモリ、１１は第２のフレームメモリを示す。
【００１２】
本発明は上記の課題を解決するため、次のように構成した。
(a) ：入力した表画像１から、垂直軸（Ｙ軸）、及び水平軸（Ｘ軸）への投影像を求めて、表部分２をベクトル化する表のベクトル化装置において、前記表画像１の表部分に相当する画素に対して、水平軸（Ｘ軸）には、水平方向の線分を無視し、垂直方向の線分にのみ限定して投影像を抽出し、垂直軸（Ｙ軸）には、垂直方向の線分を無視し、水平方向の線分のみに限定して投影像を抽出することで、表を構成する罫線の投影像を求める投影部と、前記罫線の投影像と同じ幅の直線を、メモリ（第２のフレームメモリ１１）上に、水平及び垂直方向から引き、それをマスク画像として生成するマスク画像生成部８と、該マスク画像生成部で生成したマスク画像に従って、交点間の長さと交点間の画素数の比率で罫線を探索し、表部分をベクトル化する罫線探索部９を設けた表のベクトル化装置。
【００１４】
(b) ：構成(a) において、罫線探索部９が、マスク画像に従って罫線を探索する際、前記マスク画像から、直線の交点を抽出し、抽出した交点間の距離に対する画素数の比率から、前記交点間の罫線の存在を決定する表のベクトル化装置。
【００１５】
(c) ：構成(a) において、罫線探索部９が、マスク画像に従って罫線を探索する際、直線の木構造を利用して罫線の探索を行う表のベクトル化装置。
(d) ：構成(a) 乃至(c) のいずれかにおいて、ベクトル化装置に、表画像１の水平成分のベクトル化処理を行う水平成分処理部と、垂直成分のベクトル化処理を行う垂直成分処理部とを設け、入力した表画像１を、水平成分と垂直成分とに分割して、前記水平成分処理部と、垂直成分処理部とで並列処理を行う表のベクトル化装置。
【００１６】
【作用】
上記構成に基づく本発明の作用を、図１に基づいて説明する。
帳票や図面等を、画像入力部６から入力し、第１のフレームメモリ１０に格納した表画像１に対し、以下の処理を行う。
【００１７】
先ず、投影部７は、表画像１に対し、表部分２に相当する画素に対して、垂直／水平罫線の投影像を抽出する。この場合、水平軸（Ｘ軸）に投影するのは、垂直方向の線分のみに限定（水平方向の線分を無視）し、逆に垂直軸（Ｙ軸）に対しては、水平方向の線分のみに限定（垂直方向の線分を無視）する。
【００１８】
これにより、従来、投影像が互いに接触し分離出来なかったのに対し、明確に区別することができるようになる。
次に、垂直軸（Ｙ軸）、及び水平軸（Ｘ軸）の各投影像に対してラベル付けを行う。この処理では、ラベル毎に画素数（ドット数）を数え、或る閾値に達する像のみを残す（ノイズ成分を除去する）。
【００１９】
続いて、前記投影像に従って、像の幅を持つ直線を、垂直／水平方向から画像一杯に引き、マスク画像を生成する。その後、マスク画像から、直線の交点の座標を抽出することにより、表の罫線の交点算出を行う。最後に、罫線の探索を行って表部分のベクトル化を行う。この場合、表画像の端と直線との交点も対象として座標を抽出する。
【００２０】
そして、交点間に罫線が存在するか否かを検査する。その結果、罫線が存在すれば、その両端の座標を記録する。
以上のようにして、入力した表画像の微妙な傾きに対しても正確に表部分のベクトル化ができるようにすることができる。また、前記表部分のベクトル化処理を行う際、水平成分と垂直成分の処理を並列処理とすることにより、処理の高速化を図ることができる。
【００２１】
【実施例】
以下、本発明の実施例を図面に基づいて説明する。
図２〜図９は、本発明の実施例を示した図であり、図２〜図９中、図１、図１０と同じものは、同一符号で示してある。また、１２は第１の投影用メモリ、１３は第２の投影用メモリを示す。
【００２２】
§１：表のベクトル化装置の構成の説明・・・図２参照
図２は実施例の装置構成図である。以下、図２に基づいて、表のベクトル化装置の構成を説明する。
【００２３】
表のベクトル化装置５は、パソコン、ワークステーション、或いはＯＣＲ等の各種処理装置内に設けた装置である。
前記表のベクトル化装置５には、画像入力部６、投影部７、マスク画像生成部８、罫線探索部９、第１のフレームメモリ１０、第２のフレームメモリ１１、第１の投影用メモリ１２、第２の投影用メモリ１３等が設けてある。
【００２４】
画像入力部６は、帳票、図面等を読み取って表画像を入力するものであり、スキャナや、カメラ等の光学的な装置で構成されている。
投影部７は、入力した表画像を、垂直軸（Ｙ軸）、及び水平軸（Ｘ軸）方向に投影するものである。マスク画像生成部８は、マスク画像を生成するものであり、罫線探索部９は、マスク画像に従って罫線の探索処理を行うものである（詳細は後述する）。
【００２５】
§２：実施例の処理概要説明・・・図３参照
図３は、実施例の処理フローチャートである。以下、図３に基づいて実施例の処理概要を説明する。なお、図３のＳ１〜Ｓ５は各処理番号を示す。
【００２６】
帳票や図面等をスキャナから入力した表画像（従来例参照）に対し、以下の処理を行う。
この場合、入力した表画像は、２値のディジタル画像であり、表画像内では、表部分（罫線部分）は画素値が「１」、それ以外は「０」として、ｆ（ｘ，ｙ）と表す。また、表部分は、表画像に対して座標変換等の処理により、傾きの補正（補正可能な大きな傾きの補正）が行われているものとする。
【００２７】
前記入力した表画像に対して、表部分に相当する画素に対して、垂直／水平罫線の投影像（ドット数）を抽出する処理（Ｓ１）を行う。
具体的には、水平軸（Ｘ軸）に投影するのは、垂直方向の線分のみに限定（水平方向の線分を無視）し、逆に垂直軸（Ｙ軸）に対しては、水平方向の線分のみに限定（垂直方向の線分を無視）する。これにより、従来、投影像が互いに接触し分離出来なかったのに対し、明確に区別することができるようになる。
【００２８】
次に、垂直軸、及び水平軸の各投影像に対してラベル付けを行う（Ｓ２）。この処理では、ラベル毎に画素数（ドット数）を数え、或る閾値に達する像のみを残す（ノイズ成分を除去する）。なお、この閾値を設定する際、表の罫線は文字等に比べて十分に長いので、容易に定めることができる。
【００２９】
続いて、前記投影像に従って、像の幅を持つ直線を画像一杯に引き、マスク画像を生成する（Ｓ３）。なお、前記のようにして直線を引いた画像を「マスク画像」と呼ぶ。その後、マスク画像から、直線の交点の座標を抽出することにより、表の罫線の交点算出を行う（Ｓ４）。
【００３０】
最後に、罫線の探索を行つて（Ｓ５）表部分のベクトル化を行う。この場合、表画像の端と直線との交点も対象として座標を抽出する。そして、交点間に罫線が存在するか否かを検査する。その結果、罫線が存在すれば、その両端の座標を記録する。
【００３１】
§３：実施例の処理説明
図４は実施例の処理説明図１（投影像抽出処理）、図５は実施例の処理説明図２（マスク画像生成処理）、図６は実施例の処理説明図３（罫線の交点算出処理）、図７は実施例の処理説明図４（罫線の探索処理）、図８は実施例の処理説明図５（ベクトルの階層化処理）である。以下、実施例の各処理を具体的に説明する。
【００３２】
（１）：表画像の入力処理の説明
表画像の入力処理は、画像入力部６で行う。すなわち、画像入力部６では、帳票や、図面を光学的に読み取り、表をディジタル画像（表画像）に変換する。
【００３３】
入力した表画像では、表部分は「１」の値で、それ以外の部分は「０」の値を持つ２値画像である。
この例では、表画像の大きさをＮ×Ｍ画素の大きさとする。前記入力した表画像は、一旦第１のフレームメモリ１０に格納する。この場合、第１のフレームメモリの大きさは、表画像の大きさ（Ｎ×Ｍ画素）と同じであるとする。
【００３４】
（２）：投影像抽出処理の説明・・・図４参照
投影部７では、前記入力した表画像に対して、投影像抽出処理を行う。この処理では、投影部７が、例えば、９×１画素、及び１×９画素のマスクを設定し、水平方向と垂直方向に対し、別々に第１のフレームメモリ１０を走査する。
【００３５】
すなわち、水平方向に走査する場合は、９×１画素（水平方向に９画素、垂直方向に１画素）のマスクを使用し、垂直方向に走査する時は、１×９画素（水平方向に１画素、垂直方向に９画素）のマスクを使用する。
【００３６】
前記マスクを使用して第１のフレームメモリ１０を走査した結果、例えば、マスク内に、「１」である画素が、マスク内総画素数の８割以上あった場合、若しくは、マスクの中心画素を含む画素が、マスク内の画素数の半分以上連続して「１」である画素が存在するならば、該マスクの中心画素を残す。
【００３７】
但し、水平軸（Ｘ軸）方向に対して残す画素は、第２のフレームメモリ１１に残し、垂直軸（Ｙ軸）方向に残す画素は、第１のフレームメモリ１０に残す。この場合、第１のフレームメモリ１０に格納されていた元の表画像（入力した時の画像）は、消去される。
【００３８】
以上の処理により、ノイズとなる画素を除去し、水平方向に残す画像と、垂直方向に残す画素を別のフレームメモリに分離して格納する。
その後、第１のフレームメモリ１０と、第２のフレームメモリ１１に格納してある表画像から、垂直軸、及び水平軸への投影処理を行い、投影像を求める（画素数を累積する）。
【００３９】
そして、図４に示したように、第１のフレームメモリ１０を水平方向に走査して、各列の値「１」の画素数を、第１の投影用メモリ１２に格納する。この時、各列に対応したアドレスに、画素数（ドット数）を格納する。
【００４０】
また、第２のフレームメモリ１１を垂直方向に走査して、各列の値「１」の画素数を、第２の投影用メモリ１３に格納する。この時、各列に対応したアドレスに、画素数（ドット数）を格納する。
【００４２】
（３）：像のラベル付け処理の説明・・・図４参照
マスク画像生成部８では、第１の投影用メモリ１２、第２の投影用メモリ１３に格納してある投影像に対し、塊（ドット数の存在する１塊の部分）毎に番号を付けて、ラベル付け処理を行う。
【００４３】
例えば、図４では、投影像が「３、９、１」のように、１つの塊（３画素分）となっている部分を対象として、１つのラベル（例えば、番号）を付ける。
（４）：マスク画像生成処理の説明・・・図５参照
次に、図５に示したように、第２のフレームメモリ１１に、各塊の幅と同じ幅の直線（画素値＝１）を水平、及び垂直に引く（メモリ一杯に直線を引く）。
【００４４】
この場合、例えば塊の幅が３画素ならば、幅３画素の直線を引く。このように水平／垂直方向に引いた直線の部分（十字型の画像）を「マスク画像」という。
以上のようにして、マスク画像を生成する。
【００４５】
（５）：罫線の交点算出処理の説明・・・図６参照
前記のようにして生成したマスク画像から、図６に示したように、直線の交点の座標（ｘ，ｙ）を抽出する。この場合、直線の交点は、垂直／水平方向の各直線を引いた投影像の中で、最も値が高い（ドット数が多い）位置の組とする。
【００４６】
すなわち、図６の例では、投影像が「９」の位置で引いた直線と、投影像が「８」の位置で引いた直線の交点の座標を抽出する。このようにして、罫線の交点を抽出する。
【００４７】
（６）：罫線の探索処理の説明・・・図７参照
前記のようにして罫線の交点を検出した後、罫線探索部９では、次のようにして罫線の探索処理を行う。
【００４８】
例えば、図７に示したように、幅Ａの直線がある場合、第１のフレームメモリ１０を参照し、その幅Ａ内に「１」である画素が存在するならば、罫線が存在すると仮定する。
【００４９】
前記交点間で、罫線が存在すると仮定した画素数が、交点間の長さ（最短画素数）の定めた比率（例えば、８割）以上を占める場合、その交点間に罫線が存在すると仮定し、罫線の端点の座標をメモリ１４に格納する。この処理を全ての交点で繰り返して行う。
【００５０】
罫線探索部９では、なるべく長い罫線を得るために、直線で繋がっている交点間の内、離れているものから順に選び、その間に罫線が存在するか否かを検査する。
【００５１】
（７）：ベクトルの階層化処理の説明・・・図８参照
例えば、図８のように、交点間の直線の長さを尺度として、該直線を階層化する。
【００５２】
例えば、直線ＡＥがあった場合、直線ＡＥは、少し短い直線ＡＤと、直線ＢＥから構成されている（一部重複していてもよい）。また、直線ＡＤは、直線ＡＣと直線ＢＤから構成されている。このような関係を木構造で示すと、図８のように階層化構造となる。
【００５３】
この場合、もし、直線ＡＥに罫線が存在しない場合、直線ＡＤと直線ＢＥでの存在を確認しにいき、同様に各直線での罫線の存在を確認しにゆく。もし、直線ＡＥに罫線が存在する場合は、それを構成する直線での罫線の存在は確認しない。
【００５４】
§４：並列処理装置の説明・・・図９参照
図９は実施例の並列処理装置構成図である。前記ベクトル化処理を行う装置として、例えば、図９に示したような並列処理装置を使用することにより、処理の高速化を図ることができる。
【００５５】
この装置は、入力した表画像を水平成分と垂直成分とに分け、水平方向の罫線抽出処理と、垂直方向の罫線抽出処理とを並列処理として行う装置である。
図示のように、表のベクトル化装置５には、水平成分処理部１５と、垂直成分処理部１６が設けてあり、これらの各処理部には、それぞれ、投影部７、マスク画像生成部８、罫線探索部９が設けてある。
【００５６】
この装置では、画像入力部６から入力した表画像を、水平成分処理部１５と垂直成分処理部１６に入力し、水平成分と垂直成分毎に前記の処理を並列処理として行う。なお、各部の機能は、図２の装置と同じである。
【００５７】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
▲１▼：入力した表画像が多少傾いていても、正確に、表をベクトル化することができる。
【００５８】
▲２▼：直線の木構造を利用することにより、表を構成する罫線を、なるべく長くすることができる。
▲３▼：表のベクトル化処理を行う装置として、並列処理装置を使用することにより、処理の高速化を図ることができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】実施例の装置構成図である。
【図３】実施例の処理フローチャートである。
【図４】実施例の処理説明図１（投影像抽出処理）である。
【図５】実施例の処理説明図２（マスク画像生成処理）である。
【図６】実施例の処理説明図３（罫線の交点算出処理）である。
【図７】実施例の処理説明図４（罫線の探索処理）である。
【図８】実施例の処理説明図５（ベクトルの階層化処理）である。
【図９】実施例の並列処理装置構成図である。
【図１０】従来技術の説明図である。
【符号の説明】
１  表画像
２  表部分
５  表のベクトル化装置
６  画像入力部
７  投影部
８  マスク画像生成部
９  罫線探索部
１０  第１のフレームメモリ
１１  第２のフレームメモリ
【図１】
0003582734.tif 000002
【図２】
0003582734.tif 000003
【図３】
0003582734.tif 000004
【図４】
0003582734.tif 000005
【図５】
0003582734.tif 000006
【図６】
0003582734.tif 000007
【図７】
0003582734.tif 000008
【図８】
0003582734.tif 000009
【図９】
0003582734.tif 000010
【図１０】
0003582734.tif 000011