情報処理装置、及び情報処理方法
【課題】オリジナルの電子ファイルが持っているベクタ情報から、精度の高い矩形領域の抽出や領域指定を行う情報処理装置及び情報処理方法を提供することを課題とする。
【解決手段】
本発明に係る情報処理装置は、電子ファイルのベクタ情報を読み込み501、前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出502し、また多角形オブジェクトにおける多角形パラメータ情報を抽出し抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出503する。抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出505し、抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるかを判定506する。
【解決手段】
本発明に係る情報処理装置は、電子ファイルのベクタ情報を読み込み501、前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出502し、また多角形オブジェクトにおける多角形パラメータ情報を抽出し抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出503する。抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出505し、抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるかを判定506する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、及び情報処理方法の分野に関する。
【背景技術】
【0002】
紙ベースの帳票をスキャナなどで読み取り帳票上の各項目に対してOCR処理をするシステムでは、帳票の各フィールドの位置情報をシステム側で予め正確に把握していることが必要である。そのため、ユーザはシステムの画面上に帳票の画像イメージを表示し帳票の各フィールドのそれぞれ位置をなぞるなどして、システムに予め帳票のフィールド位置情報を登録するのが一般的である。
【0003】
しかし、そのような作業は手間のかかるものである。特許文献1及び特許文献2においては、帳票の画像イメージに対して画像処理などにより、矩形情報を探索する方法が記載されている。これにより画像データをベースにして矩形(帳票の各フィールド)を自動抽出することができるようになる反面、特許文献1及び特許文献2に記載されている発明においても問題点が存在する。画像データをベースに処理するため、例えば、画像中に存在している文字を枠線と誤認識したり逆に枠線を文字と誤認識したり、帳票の背景に埋め込まれている背景画像や地紋のようなデータが埋めこまれている場合にそれらを枠線と誤認識してしまうといった問題が生じ、矩形抽出精度の低下が考えられる。また、枠線が破線で表現されている場合には、画像処理では破線を一本の線分として認識できず、矩形抽出漏れが発生することもある。さらに、帳票を画像化することは、画像のピクセル単位で扱うことであり離散的である。したがって、ある離散パラメータで離散化された空間は、別の離散化された空間とでは誤差が生じ得る。すなわち、画像データ化したときの条件と別の条件(異なる解像度でのスキャン、FAX等での画像の受信)では矩形の座標に誤差が生じ、常に正確に読み取ることができない。
【0004】
ところで、一般的に帳票はもともとMicrosoft(r) Word(登録商標)、Excel(登録商標)、Adobe(r) Acrobat(登録商標)などのアプリケーションソフトによって作成されていることが多い。そのような帳票の電子ファイルでは、どこが文字でどこが枠線かのような情報はベクタ情報として電子ファイル内に保持されている。電子ファイルの世界では枠線情報や文字情報というものは明確に区別が可能である。ベクタ情報は任意の離散パラメータにより誤差なく離散化することが可能であり、どのような環境で画像が生成されていても誤差なく矩形の読み取りができるものである。
【0005】
特許文献3は、電子文書が有するベクタ情報から線分を抽出して、領域指定を行うことが記載されている。電子文書内のベクタ情報から垂直線分と水平線分に分解し、その線分を利用して画面内での領域を指定するものである。
【特許文献1】特第3586911号公報
【特許文献2】特第3001950号公報
【特許文献3】特開2005−190439号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献3においては、ベクタ情報から線分を抽出して、領域指定や矩形の抽出を行っているものの、単純な線分や矩形のみを取り扱っておりベクタ情報に係る特有のケースについては、正確に領域の指定や矩形の抽出をすることができない。特有のケースとは例えば、実際の電子ファイルにおいて画面上では線分に見えるオブジェクトがベクタ情報では実は矩形描画指令として表されていたり、その逆の画面上では矩形に見えるオブジェクトがベクタ情報では線分描画指令として表されている場合である。また、これらから抽出した線分情報にも誤差が発生し、連結していると判定されなくなることもある。これらは、ベクタ情報であるがゆえに起こりうる問題であり、これらの問題を解決しなければ、精度の高い領域抽出を実現することはできない。
【0007】
そこで本発明では上記のような問題に鑑みて、オリジナルの電子ファイルが持っているベクタ情報から、精度の高い矩形領域の抽出や領域指定を行う情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
そこで上記課題を解決するため、本発明に係る情報処理装置は、ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置において、前記電子ファイルが有する前記ベクタ情報を読み込む読込手段と、前記読込手段により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手段と、
前記読込手段により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手段と、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手段と、前記矩形抽出手段により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手段と、前記最小矩形判定手段により判定された最小矩形を出力する最小矩形出力手段とを有することを特徴とする。
【0009】
また、上記課題を解決するため、本発明に係る情報処理装置はさらに、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分の基準線との傾度を取得する傾度取得手段を有し、前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と、さらに前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、直行する線分から形成される矩形の矩形パラメータ情報を抽出することを特徴とする。
【0010】
また、上記課題を解決するため、本発明に係る情報処理装置はさらに、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて構成される線分の傾度を取得する傾度取得手段と、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、傾度が同一であって重なりをもつ2つの線分を連結し、連結した線分の線分パラメータ情報を取得する第3の線分抽出手段とを有し、前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出され、前記第3の線分抽出手段により連結された線分の線分パラメータ情報を除いた線分パラメータ情報と、さらに前記第3の線分抽出手段により抽出された線分パラメータ情報とに基づいて、矩形パラメータ情報を抽出することを特徴とする。
【0011】
また、上記課題を解決するため、前記第3の線分抽出手段は、さらに、傾度が同一であって線分と線分との距離が所定以下である2つの線分を連結することを特徴とする。
【0012】
また、上記課題を解決するため、本発明に係る情報処理方法は、ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置における情報処理方法において、前記電子ファイルが有する前記ベクタ情報を読み込む読込手順と、前記読込手順により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手順と、前記読込手順により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手順と、前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手順と、前記矩形抽出手順により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手順と、前記最小矩形判定手順により判定された最小矩形を出力する最小矩形出力手順とを有することを特徴とする。
【0013】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
【発明の効果】
【0014】
本発明によれば、オリジナルの電子ファイルが持っているベクタ情報から、精度の高い矩形領域の抽出や領域指定を行うことができる情報処理装置及び情報処理方法を提供することができる。
【発明を実施するための最良の形態】
【0015】
以下、本発明を実施するための最良の形態を各実施形態において図面を用いて説明する。
【0016】
(ベクタ情報について)
本発明では電子ファイルが持っているベクタ情報から精度の高い矩形領域の抽出や領域指定を行う。そこで、本発明の理解を容易にするため、はじめにベクタ情報について簡単に説明を行う。
【0017】
ベクタ情報とは、罫線のような直線な多角形、円などの幾何学図形を、その種類を表す符合と極点の座標や半径などのパラメータ列により表現するものである。Microsoft(r) Word(登録商標)、Excel(登録商標)、Adobe(r) Acrobat(登録商標)などの一般的なエディタで作成される電子ファイル(電子帳票)は、その文書情報をベクタ情報として持っている。これらの電子ファイルが持つベクタ情報には、文書中の枠線や罫線といった図形情報や文字列を表す文字情報、その他文書の背景画像や地紋といった情報もが含まれる。
【0018】
図1は、PDF(Portable Document Format)で作成された帳票の一例である。これは、帳票の電子ファイルをPC端末等の画面で表示、もしくは用紙等にプリントアウトした場合に相当する。ここで、PDF形式の電子ファイルでは、線分や矩形といった図形等をベクタ形式で表現することができる。
【0019】
PDF形式の電子ファイルが持つベクタ情報について、図2に示す。PDF形式において作成された電子ファイルにおいて図形等がどのようにベクタ情報で表現されているかの例を表している。ベクタ情報は、BT201というテキストオブジェクト(文字情報)と、矩形202や線分203といった図形オブジェクト、およびこれらのパラメータから構成されている。ここでいう図形オブジェクトとはPDF形式のデータであれば、「re(矩形)」や「l(線分)」といったパス構築オペレータで表現されているオブジェクトの情報のことである。PDF形式の電子ファイルが持つこれらのベクタ情報により、図1に表されるような線分や矩形が表現される。
【0020】
次に、このベクタで表現される図形特有の問題について説明する。図1においては、視覚的には2つの矩形と2本の線分とからなるものであるが、ベクタ情報においてはこれらの矩形や線分をベクタで表現する際にその表現方法が幾通りも存在してしまう。これについて、図3における図形の例を用いて説明する。図3は、同一の図形が様々な表現方法で表される例である。図3に示される図形は、ベクタ情報においてはA、B、C、Dの4パターンの表現方法によって表現され得る。Aのケースでは、図形は2つの矩形の集合によって表されている(部分的に辺が重なっている部分が存在する)。Bのケースでは、図形は線分のみにより構成されている。また、Cのケースでは線分のように見えるものが実は細長い小さな矩形によって構成されている例である。当該図形を構成する要素を抽出する際には、Aのケースにおいては2つの矩形が、Bのケースにおいては6本の線分が、Cのケースにおいては6つの矩形が抽出されることなる。また、Dのケースでは、矩形が3つからなる。これらの表現方法の違いは画像に変換してしまえば視覚的には区別がつかなくなる。電子文書中のベクタ情報として図形を扱おうとする際にはこのような点に注意が必要となってくる。即ち、見た目には同一に見える図形であっても、ベクタ情報においては全く別の図形である場合がある。
【0021】
なお、実施の形態においてはPDF形式のファイルの例を用いて説明を行うが、この形式に限らずベクタ情報を取り扱うことのできる電子ファイル形式であれば同様に本発明を適用できる。
【0022】
(本発明に係る情報処理装置)
次に、本発明に係る情報処理装置について、図4を用いて説明する。情報処理装置401は、CPU402、メモリ403、記憶装置(HDD)404、操作部405、表示部406、入力部407、ネットワークアダプタ408等を有する一般的なコンピュータであって、一般的なPC(Personal Computer)等でよい。情報処理装置401は外部記憶媒体やネットワークを介して電子ファイルを読み込むことができる。また、本発明の処理に係るプログラムは記憶装置404に記憶されており、メモリ403に格納されたのちCPU402にて実行処理される。
【0023】
(本発明に係る機能の説明)
次に、情報処理装置が有する本発明に係る機能について、図5を用いて説明する。図5は、情報処理装置が有する機能を表すブロック図である。情報処理装置は本発明に係る機能として、読み込み部501、線分抽出部502、線分変換部503、傾度取得部504、矩形探索部505、最小矩形判定部506、及び最小矩形出力部507を有している。本発明に係る情報処理装置は、はじめに対象となる電子ファイル(PDFファイル等)を読み込み、記録されているベクタ情報(例えば、図2)を抽出する。そして、読み込まれたベクタ情報から線分情報を抽出する。抽出の際に、多角形は線分に変換してから抽出する。これは上述したようにベクタ情報特有の問題を解決するために、多角形は一度線分に分解して扱う。次に、抽出された線分からそれら線分を組み合わせて形成される矩形を抽出する。そして抽出された矩形から最小矩形を得て出力する構成をとるものである。図4における各処理部により、このような処理が行われる。
【0024】
続いて、読み込み部501、線分抽出部502、線分変換部503、傾度取得部504、矩形探索部505、最小矩形判定部506、及び最小矩形出力部507について詳細に説明を行う。
【0025】
(読み込み部)
はじめに、読み込み部501において、入力部から入力した対象となる電子ファイル(PDFファイル等)を読み込んで記録されているベクタ情報を抽出する。ベクタ情報については図2を用いて先に説明した通りである。
【0026】
(線分抽出部)
次に、線分抽出部502は、読み込み部501により読み込まれたベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する。具体的に図2を用いて説明する。203は、ベクタ情報において、1つの線分に係る情報を表している。オブジェクトを表す「オペレータ」は、「l(線分)」である。これにより、このオブジェクトが線分であることがわかる。パラメータには線分に係る情報を持っている。203においては、線分のPDFファイル内の座標空間における開始点及び終了点のx座標及びy座標の情報が示されている。このパラメータから開始点(10,200)、終了点(110,200)からなる線分であることが特定される。線分抽出部502は、「オペレータ」において「l(線分)」オブジェクトのパラメータ(線分パラメータ情報)を抽出する。
【0027】
(線分変換部)
線分変換部503は、読み込み部501において抽出されたベクタ情報から、多角形オブジェクトにおけるパラメータを抽出して、抽出した多角形を構成する線分のパラメータ情報を抽出する。読み込まれた多角形オブジェクトには、多角形(矩形を含む)や曲線など種類の異なる図形が混在しているので、それらを図形の最小単位である線分に分解して、その線分パラメータ情報を抽出する。分解は、上述したようにベクタ情報特有の問題を解決するため、多角形は一度線分に分解して扱う。
【0028】
図3を例にあげて簡単に説明する。この多角形は、視覚的にはDのように3つの矩形で成り立っているようにみえる。これをベクタ情報としてどのように構成されているかみると、Bのように6本の線分によって表現されていたとする。視覚的にはDのようにみえても、実際ベクタ情報ではその通りにはなっていない。即ち、この例でベクタ情報を基に矩形を抽出した場合、ベクタ情報においては矩形がないと判断され、1つも矩形を抽出することができないことになる。そのためベクタ情報を用いて矩形を抽出する場合には、一度すべてを線分に分解してから矩形を抽出し、矩形を再構成するという作業が必要となってくる。
【0029】
次に、分解について説明を行う。図2において202は、矩形オブジェクトreから、矩形を示している。パラメータには、10(x座標)、50(y座標)、100(幅)、50(高さ)を持つ。図6は、この矩形をパラメータを用いて座標空間に現したものである。この矩形を構成する4辺(上辺、下辺、左辺、右辺)から、4本の線分を抽出する。抽出した結果、4本の線分パラメータ情報を得る。矩形の下辺を例に取ると、オペレータ「l」、線分パラメータ情報は開始点のx座標=10、開始点のy座標=50、終了点のx座標=110、終了点のy座標=50となる。このようにして、線分変換部503で多角形は線分に変換される。
【0030】
(傾度取得部)
傾度取得部504は、線分抽出部502と線分変換部503で抽出された線分パラメータ情報により構成される線分の基準線との傾度を取得する。基準線は、PDFファイル内の座標空間におけるx軸等の基準となる線で、その基準線を基準とした線分の傾度を取得する。もちろん、この基準線はx軸でなくともその線を基準に線分の傾度さえ決まればよく任意の線でよい。線分の線分パラメータ情報を基に、その線分に対応した線分の傾度を取得する。図7は、基準線をx軸として線分a、線分bの傾度を取得する例を表した図である。線分aは、x軸に対して45度の傾きを持ち、線分bは、150度の傾きを持つ。それぞれの線分について、傾度45度、傾度150度を取得する。なお、この線分の傾度を取得する目的については後に説明する。
【0031】
(矩形探索部)
次に、矩形探索部505について説明する。矩形探索部505は、線分抽出部502と線分変換部503において抽出された線分パラメータに基づいて、矩形の探索を行う。線分を組み合わせて、形成される矩形を探す処理を行う。これを図8のフローチャートを用いて説明する。
【0032】
まず、ステップS801は、矩形探索に先立ち、抽出された線分パラメータ情報と傾度を用いて、線分をx軸に平行な集合Aとy軸に平行な集合Bに分類する。図10は、線分をx軸に平行な集合Aとy軸に平行な集合Bに分類した線分の様子を示す。x軸に平行、y軸に平行ではなく、ある傾きの線分の集合とその線分に直行する線分の集合でもよい。ここでx軸に平行、y軸に平行な集合としたのは、一般的な帳票で使用される図形は、x軸、y軸に平行な線から構成される矩形(長方形)であるから、そのような矩形を抽出するに都合がよい集合としたものである。また、矩形は直角に交わる4本の線分によって構成されるため、直交する線分のみから矩形抽出処理を行い、不要な線分の組み合わせを排除して矩形の探索処理を効率化する。
【0033】
また、ステップS802は、集合における任意の2本の線分(この2本の線分は互いに平行)を取り出し、それらが交点をもっているならば、連結させてできる新しい線分を元の2本の線分と置き換える。線分を連結させることで、処理に要する線分の数を減らし矩形の探索処理をさらに効率化することができる。図9は、線分の連結の例を表した図である。線分aは、始点(10 , 20)、終点(20 ,20)である線分である。また、線分bは、始点(15 , 20)、終点(25 ,20)である線分である。この2つの線分は、ともにy軸に平行であるため同じ集合Bに分類されており、さらにxy座標空間上において、交点(重なり)を有する。ゆえに、これらの線分は連結することができる。線分cは、線分と線分bを連結してできた線分である。この線分cを集合Bに追加し、集合Bから線分aと線分bは削除される。また、線分dの扱いについても説明する。線分dは、線分aと対比して、平行ではあるが交点を持たない。しかしながら、この2つの線分の距離は1であり(y座標から算出)、ベクタ情報上は全く交点を持たない線分であっても、表示画面上もしくは印刷された用紙上において視覚的には交わりをもつ線分である。2つの線分の距離が1ではなく、0.5 、さらに0.01であればより顕著となる。即ち、ベクタ情報上は交点を持たない線分であっても、その線分間の距離が所定以下であれば視覚的には交点を持つものであるため(2つの線分が重なって見える)、このような2つの線分も連結の対象とするものである。よって、線分aと線分dは連結されて線分cとして処理される。なお、この場合の距離とは、線分cと線分eの例が表すように、2つの線分から直角に線を引いた最短の距離をいう。線分fは、線分cに対して距離を持たないので連結の対象にならない。このように、処理対象の線分を減らすことができるだけでなく、ベクタ情報では交点を持たない線分であっても実質的に(視覚的に)交点を持つとされる線分を連結することで、帳票における項目欄に相当するような矩形の探索により柔軟に対応できる。
【0034】
次に、矩形の探索を開始する。ステップS803は、x軸に平行な集合Aとy軸に平行な集合Bから各2本ずつ取り出し、2本の線分のすべての組み合わせについて調べる。ステップS804において、4本の線分から交点が4つできれば、ステップ805で、その4つの交点を頂点とする矩形(矩形パラメータ情報)を得て矩形集合Rに追加する。なお、この矩形集合Rは、矩形探索部で抽出された矩形を格納しておく集合である。
【0035】
図10は、線分をx軸に平行な集合Aとy軸に平行な集合Bに分類したものである。集合A、集合Bから2本の線分を取り出す。図11のように、座標空間上で交点が4つできればその4つの交点を頂点とする矩形(矩形パラメータ情報)を得る。ステップS806で、2本の線分のすべての組み合わせについて処理を終えれば、処理を終える。
【0036】
なお、x軸とy軸に平行な線分のみを取り出し集合A、Bに分類しているのは、処理の効率化のためであって、x軸とy軸に平行な辺を持つ矩形の抽出に限定するものではない。一般的な帳票で使用される図形は矩形(長方形)であることから、x軸とy軸に平行な辺を持つ矩形のみ探索すればよい。線分を角度ごとの集合xに分類し、それぞれの組み合わせで調べれば矩形の角度に限定されることはない。矩形だけでなくひし形等の図形(4つの角の角度がすべて90度でない四角形)も抽出することができる。また、傾度を取得せずに線分の組み合わせから形成されるすべての矩形を調べてもよい。また、用途事情等により必要に応じて線分n本の組み合わせを調べ、n角形を抽出することもできる。
【0037】
(最小矩形判定部)
次に、最小矩形判定部506ついて説明する。最小矩形の判定は、矩形集合Rに格納された矩形対象に行われる。矩形探索部において得られた矩形パラメータにより構成される矩形が、他の矩形を内包するかの判定を行うことで、その矩形が最小矩形であるか否かを判定する。最小矩形とは、その矩形内に他の矩形を含まない矩形である。内包しなければ最小矩形であるという情報を付加し、内包すれば最小矩形でないという情報を付加する。
【0038】
ここで、他の矩形を内包するかの判定は次のように行われる。図12は、矩形Aが矩形Bを内包する例を示したものである。矩形A(x11 , y11)、(x12 , y12)の角の座標と、矩形B(x21 , y21)、(x22 , y22)の角の座標とを比較し、x11<x21 、y11< y21 、x12 >x22 、y12> y22 のとき、矩形Aは矩形Bを内包する。このように判断すると、矩形Aは矩形Bを内包するので最小矩形ではなく、矩形Bは他に内包する矩形はないので最小矩形となる。最小矩形と判定された矩形には、例えば図13のように「true」といったフラグを立てる。最小矩形でない矩形については、「false」のフラグを立てる。
【0039】
(最小矩形出力部)
最後に、最小矩形出力部507おいて、最小矩形判定部506で最小矩形と判定された矩形を出力・表示する。図14は、「帳票設定ウインドウ」においての表示の一例を表したものである。「四角1」と「四角2」に係る矩形は最小矩形であるため表示されている。他の矩形の内包する矩形は最小矩形ではないので表示されない。
【0040】
最小矩形出力部507は、ユーザが帳票からフィールド位置情報を設定する画面上の帳票の画像イメージに抽出された最小矩形情報を重畳して出力する。これにより、ユーザは抽出された最小矩形情報を使うことで簡単に帳票の設定を作成することができる。
【0041】
なお、図13において最小矩形と判定された矩形は、PDF形式のファイルのベクタ情報に付加することができる。付加にあっては、「オペレータ」においては「re」として付加され、あわせて当該矩形のパラメータ情報が付加される。この付加されたベクタ情報のみから最小矩形を特定できるので、上述したような再度の処理は不要となる。
【0042】
(例外的な線分・矩形の取り扱い)
例外的な線分の取り扱いについて説明する。ベクタ情報における線分パラメータ情報に「線幅」を表すパラメータがある。この「線幅」の値が、例えば20といったような非常に高い値である場合には、視覚的にはもはや線分というよりは矩形と捉えた方が適切な場合がある。そこで、線分の「線幅」が所定の値より大きい場合には、線分でなく矩形として取り扱う処理を行う。この処理は、線分抽出部において行われてもよいし、矩形探索部において矩形探索に先立っておこなわれてもよい。なお、この所定の値は、電子ファイルで定められた初期の線幅の値としてもよいし、設定によりユーザが指定してもよい。
【0043】
次に、例外的な矩形の取り扱いについて説明する。矩形パラメータ情報の「高さ」を表すパラメータにおいて、この「高さ」の値が、例えば1、0.5といったような非常に小さい値である場合には、視覚的にはもはや矩形というよりは線分と捉えた方が適切な場合がある。そこで、矩形の「高さ」が所定の値より小さい場合には、矩形でなく線分として取り扱う処理を行う。この処理は、線分変換部において行われてもよいし、矩形探索部において矩形探索に先立っておこなわれてもよい。なお、この所定の値は、電子ファイルで定められた初期の高さの値としてもよいし、設定によりユーザが指定してもよい。
【0044】
(図形文字の取り扱い)
いわゆる図形文字の取り扱いについて説明する。ここでいう図形文字とは、「□」、「◇」、又は「○」といったような図形を表す文字であって、帳票において一般的にチェックボックスの役目として使われるような文字のことである。図形文字は、文字の一種であるため、ベクタ情報においてはテキストオブジェクトとして表現されている。よって、図形文字を扱うにあたって「オペレータ」がBT(テキストオブジェクト)に該当し、パラメータに図形文字を有するベクタ情報を取得する。取得された図形文字は最小矩形として扱う。例えば、図形文字である「□」は、他の矩形を内包することはないので、取得された図形文字はそのまま最小矩形とすることができる。なお、この処理は図形文字抽出部等を設け処理すればよい。これにより、ユーザは図形文字で表される領域も矩形として指定することができる。
【実施例】
【0045】
本実施例では、図15の例を用い具体的にこれまでの処理内容を踏まえて説明する。aは、電子ファイルの帳票イメージを表しており、図形と文字(図形文字ではないとする)が描かれている。この図形はベクタ情報として、bに示すように、1つの矩形と3本の線分から構成されているものとする。
【0046】
まず、3本の線分の線分パラメータ情報は線分抽出部502で抽出される。図形は線分変換部503で4本の線分に変換される。その結果、cに示すように、7本の線分が得られた。
【0047】
次に、傾度取得部504において7本の線分の傾度が取得される。取得された傾度を基に、x軸に平行な線分3本(集合A)、y軸に平行な線分4本(集合B)に分類する。なお、これらの線分には平行かつ重なりを持つ線分はないので、線分の連結は行われない。
【0048】
矩形探索部505において、集合A、集合Bからすべての2本の線分を組み合わせ矩形の探索を行う。探索の結果、dに示すように、5つの矩形が探索された。なお、実際は交点を4つ持つので矩形とされるが、dにおいては図の表現上、交点を持たせていない。
【0049】
次に、最小矩形判定部506は、dで形成された5つの矩形について他の矩形を内包するか否かの判定を行う。その結果、eの通り他の矩形を内包しないe1、e2、e3が最小矩形とされた。fは、他の矩形を内包するため最小矩形とされない。
【0050】
最小矩形出力部507は、gに表される「帳票設定ウインドウ」において、最小矩形と判定された3つの矩形を出力・表示する。ユーザは、この帳票の領域指定を行う。
【0051】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0052】
【図1】帳票の一例を表す図である。
【図2】ベクタ情報の一例を表す図である。
【図3】図形がベクタ情報として表現される例を表した図である。
【図4】情報処理装置の構成図である。
【図5】本発明に係る機能を表すブロック図である。
【図6】ベクタ情報のパラメータで表現される矩形を表した図である。
【図7】傾度取得の様子を表す図の一例である。
【図8】矩形探索部の処理を表すフローチャートである。
【図9】線分を連結する様子を表す図の一例である。
【図10】線分を集合に分類した一例を表す図である。
【図11】線分が交点を持つ様子を表す図の一例である。
【図12】矩形が矩形を内包する様子を表す図の一例である。
【図13】最小矩形の判定結果を表す図の一例である。
【図14】帳票設定ウインドウを示す図である。
【図15】本発明に係る処理においての線分の態様を表した図の一例である。
【符号の説明】
【0053】
501 読み込み部
502 線分抽出部
503 線分変換部
504 傾度取得部
505 矩形探索部
506 最小矩形判定部
507 最小矩形出力部
【技術分野】
【0001】
本発明は、情報処理装置、及び情報処理方法の分野に関する。
【背景技術】
【0002】
紙ベースの帳票をスキャナなどで読み取り帳票上の各項目に対してOCR処理をするシステムでは、帳票の各フィールドの位置情報をシステム側で予め正確に把握していることが必要である。そのため、ユーザはシステムの画面上に帳票の画像イメージを表示し帳票の各フィールドのそれぞれ位置をなぞるなどして、システムに予め帳票のフィールド位置情報を登録するのが一般的である。
【0003】
しかし、そのような作業は手間のかかるものである。特許文献1及び特許文献2においては、帳票の画像イメージに対して画像処理などにより、矩形情報を探索する方法が記載されている。これにより画像データをベースにして矩形(帳票の各フィールド)を自動抽出することができるようになる反面、特許文献1及び特許文献2に記載されている発明においても問題点が存在する。画像データをベースに処理するため、例えば、画像中に存在している文字を枠線と誤認識したり逆に枠線を文字と誤認識したり、帳票の背景に埋め込まれている背景画像や地紋のようなデータが埋めこまれている場合にそれらを枠線と誤認識してしまうといった問題が生じ、矩形抽出精度の低下が考えられる。また、枠線が破線で表現されている場合には、画像処理では破線を一本の線分として認識できず、矩形抽出漏れが発生することもある。さらに、帳票を画像化することは、画像のピクセル単位で扱うことであり離散的である。したがって、ある離散パラメータで離散化された空間は、別の離散化された空間とでは誤差が生じ得る。すなわち、画像データ化したときの条件と別の条件(異なる解像度でのスキャン、FAX等での画像の受信)では矩形の座標に誤差が生じ、常に正確に読み取ることができない。
【0004】
ところで、一般的に帳票はもともとMicrosoft(r) Word(登録商標)、Excel(登録商標)、Adobe(r) Acrobat(登録商標)などのアプリケーションソフトによって作成されていることが多い。そのような帳票の電子ファイルでは、どこが文字でどこが枠線かのような情報はベクタ情報として電子ファイル内に保持されている。電子ファイルの世界では枠線情報や文字情報というものは明確に区別が可能である。ベクタ情報は任意の離散パラメータにより誤差なく離散化することが可能であり、どのような環境で画像が生成されていても誤差なく矩形の読み取りができるものである。
【0005】
特許文献3は、電子文書が有するベクタ情報から線分を抽出して、領域指定を行うことが記載されている。電子文書内のベクタ情報から垂直線分と水平線分に分解し、その線分を利用して画面内での領域を指定するものである。
【特許文献1】特第3586911号公報
【特許文献2】特第3001950号公報
【特許文献3】特開2005−190439号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献3においては、ベクタ情報から線分を抽出して、領域指定や矩形の抽出を行っているものの、単純な線分や矩形のみを取り扱っておりベクタ情報に係る特有のケースについては、正確に領域の指定や矩形の抽出をすることができない。特有のケースとは例えば、実際の電子ファイルにおいて画面上では線分に見えるオブジェクトがベクタ情報では実は矩形描画指令として表されていたり、その逆の画面上では矩形に見えるオブジェクトがベクタ情報では線分描画指令として表されている場合である。また、これらから抽出した線分情報にも誤差が発生し、連結していると判定されなくなることもある。これらは、ベクタ情報であるがゆえに起こりうる問題であり、これらの問題を解決しなければ、精度の高い領域抽出を実現することはできない。
【0007】
そこで本発明では上記のような問題に鑑みて、オリジナルの電子ファイルが持っているベクタ情報から、精度の高い矩形領域の抽出や領域指定を行う情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
そこで上記課題を解決するため、本発明に係る情報処理装置は、ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置において、前記電子ファイルが有する前記ベクタ情報を読み込む読込手段と、前記読込手段により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手段と、
前記読込手段により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手段と、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手段と、前記矩形抽出手段により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手段と、前記最小矩形判定手段により判定された最小矩形を出力する最小矩形出力手段とを有することを特徴とする。
【0009】
また、上記課題を解決するため、本発明に係る情報処理装置はさらに、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分の基準線との傾度を取得する傾度取得手段を有し、前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と、さらに前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、直行する線分から形成される矩形の矩形パラメータ情報を抽出することを特徴とする。
【0010】
また、上記課題を解決するため、本発明に係る情報処理装置はさらに、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて構成される線分の傾度を取得する傾度取得手段と、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、傾度が同一であって重なりをもつ2つの線分を連結し、連結した線分の線分パラメータ情報を取得する第3の線分抽出手段とを有し、前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出され、前記第3の線分抽出手段により連結された線分の線分パラメータ情報を除いた線分パラメータ情報と、さらに前記第3の線分抽出手段により抽出された線分パラメータ情報とに基づいて、矩形パラメータ情報を抽出することを特徴とする。
【0011】
また、上記課題を解決するため、前記第3の線分抽出手段は、さらに、傾度が同一であって線分と線分との距離が所定以下である2つの線分を連結することを特徴とする。
【0012】
また、上記課題を解決するため、本発明に係る情報処理方法は、ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置における情報処理方法において、前記電子ファイルが有する前記ベクタ情報を読み込む読込手順と、前記読込手順により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手順と、前記読込手順により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手順と、前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手順と、前記矩形抽出手順により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手順と、前記最小矩形判定手順により判定された最小矩形を出力する最小矩形出力手順とを有することを特徴とする。
【0013】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
【発明の効果】
【0014】
本発明によれば、オリジナルの電子ファイルが持っているベクタ情報から、精度の高い矩形領域の抽出や領域指定を行うことができる情報処理装置及び情報処理方法を提供することができる。
【発明を実施するための最良の形態】
【0015】
以下、本発明を実施するための最良の形態を各実施形態において図面を用いて説明する。
【0016】
(ベクタ情報について)
本発明では電子ファイルが持っているベクタ情報から精度の高い矩形領域の抽出や領域指定を行う。そこで、本発明の理解を容易にするため、はじめにベクタ情報について簡単に説明を行う。
【0017】
ベクタ情報とは、罫線のような直線な多角形、円などの幾何学図形を、その種類を表す符合と極点の座標や半径などのパラメータ列により表現するものである。Microsoft(r) Word(登録商標)、Excel(登録商標)、Adobe(r) Acrobat(登録商標)などの一般的なエディタで作成される電子ファイル(電子帳票)は、その文書情報をベクタ情報として持っている。これらの電子ファイルが持つベクタ情報には、文書中の枠線や罫線といった図形情報や文字列を表す文字情報、その他文書の背景画像や地紋といった情報もが含まれる。
【0018】
図1は、PDF(Portable Document Format)で作成された帳票の一例である。これは、帳票の電子ファイルをPC端末等の画面で表示、もしくは用紙等にプリントアウトした場合に相当する。ここで、PDF形式の電子ファイルでは、線分や矩形といった図形等をベクタ形式で表現することができる。
【0019】
PDF形式の電子ファイルが持つベクタ情報について、図2に示す。PDF形式において作成された電子ファイルにおいて図形等がどのようにベクタ情報で表現されているかの例を表している。ベクタ情報は、BT201というテキストオブジェクト(文字情報)と、矩形202や線分203といった図形オブジェクト、およびこれらのパラメータから構成されている。ここでいう図形オブジェクトとはPDF形式のデータであれば、「re(矩形)」や「l(線分)」といったパス構築オペレータで表現されているオブジェクトの情報のことである。PDF形式の電子ファイルが持つこれらのベクタ情報により、図1に表されるような線分や矩形が表現される。
【0020】
次に、このベクタで表現される図形特有の問題について説明する。図1においては、視覚的には2つの矩形と2本の線分とからなるものであるが、ベクタ情報においてはこれらの矩形や線分をベクタで表現する際にその表現方法が幾通りも存在してしまう。これについて、図3における図形の例を用いて説明する。図3は、同一の図形が様々な表現方法で表される例である。図3に示される図形は、ベクタ情報においてはA、B、C、Dの4パターンの表現方法によって表現され得る。Aのケースでは、図形は2つの矩形の集合によって表されている(部分的に辺が重なっている部分が存在する)。Bのケースでは、図形は線分のみにより構成されている。また、Cのケースでは線分のように見えるものが実は細長い小さな矩形によって構成されている例である。当該図形を構成する要素を抽出する際には、Aのケースにおいては2つの矩形が、Bのケースにおいては6本の線分が、Cのケースにおいては6つの矩形が抽出されることなる。また、Dのケースでは、矩形が3つからなる。これらの表現方法の違いは画像に変換してしまえば視覚的には区別がつかなくなる。電子文書中のベクタ情報として図形を扱おうとする際にはこのような点に注意が必要となってくる。即ち、見た目には同一に見える図形であっても、ベクタ情報においては全く別の図形である場合がある。
【0021】
なお、実施の形態においてはPDF形式のファイルの例を用いて説明を行うが、この形式に限らずベクタ情報を取り扱うことのできる電子ファイル形式であれば同様に本発明を適用できる。
【0022】
(本発明に係る情報処理装置)
次に、本発明に係る情報処理装置について、図4を用いて説明する。情報処理装置401は、CPU402、メモリ403、記憶装置(HDD)404、操作部405、表示部406、入力部407、ネットワークアダプタ408等を有する一般的なコンピュータであって、一般的なPC(Personal Computer)等でよい。情報処理装置401は外部記憶媒体やネットワークを介して電子ファイルを読み込むことができる。また、本発明の処理に係るプログラムは記憶装置404に記憶されており、メモリ403に格納されたのちCPU402にて実行処理される。
【0023】
(本発明に係る機能の説明)
次に、情報処理装置が有する本発明に係る機能について、図5を用いて説明する。図5は、情報処理装置が有する機能を表すブロック図である。情報処理装置は本発明に係る機能として、読み込み部501、線分抽出部502、線分変換部503、傾度取得部504、矩形探索部505、最小矩形判定部506、及び最小矩形出力部507を有している。本発明に係る情報処理装置は、はじめに対象となる電子ファイル(PDFファイル等)を読み込み、記録されているベクタ情報(例えば、図2)を抽出する。そして、読み込まれたベクタ情報から線分情報を抽出する。抽出の際に、多角形は線分に変換してから抽出する。これは上述したようにベクタ情報特有の問題を解決するために、多角形は一度線分に分解して扱う。次に、抽出された線分からそれら線分を組み合わせて形成される矩形を抽出する。そして抽出された矩形から最小矩形を得て出力する構成をとるものである。図4における各処理部により、このような処理が行われる。
【0024】
続いて、読み込み部501、線分抽出部502、線分変換部503、傾度取得部504、矩形探索部505、最小矩形判定部506、及び最小矩形出力部507について詳細に説明を行う。
【0025】
(読み込み部)
はじめに、読み込み部501において、入力部から入力した対象となる電子ファイル(PDFファイル等)を読み込んで記録されているベクタ情報を抽出する。ベクタ情報については図2を用いて先に説明した通りである。
【0026】
(線分抽出部)
次に、線分抽出部502は、読み込み部501により読み込まれたベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する。具体的に図2を用いて説明する。203は、ベクタ情報において、1つの線分に係る情報を表している。オブジェクトを表す「オペレータ」は、「l(線分)」である。これにより、このオブジェクトが線分であることがわかる。パラメータには線分に係る情報を持っている。203においては、線分のPDFファイル内の座標空間における開始点及び終了点のx座標及びy座標の情報が示されている。このパラメータから開始点(10,200)、終了点(110,200)からなる線分であることが特定される。線分抽出部502は、「オペレータ」において「l(線分)」オブジェクトのパラメータ(線分パラメータ情報)を抽出する。
【0027】
(線分変換部)
線分変換部503は、読み込み部501において抽出されたベクタ情報から、多角形オブジェクトにおけるパラメータを抽出して、抽出した多角形を構成する線分のパラメータ情報を抽出する。読み込まれた多角形オブジェクトには、多角形(矩形を含む)や曲線など種類の異なる図形が混在しているので、それらを図形の最小単位である線分に分解して、その線分パラメータ情報を抽出する。分解は、上述したようにベクタ情報特有の問題を解決するため、多角形は一度線分に分解して扱う。
【0028】
図3を例にあげて簡単に説明する。この多角形は、視覚的にはDのように3つの矩形で成り立っているようにみえる。これをベクタ情報としてどのように構成されているかみると、Bのように6本の線分によって表現されていたとする。視覚的にはDのようにみえても、実際ベクタ情報ではその通りにはなっていない。即ち、この例でベクタ情報を基に矩形を抽出した場合、ベクタ情報においては矩形がないと判断され、1つも矩形を抽出することができないことになる。そのためベクタ情報を用いて矩形を抽出する場合には、一度すべてを線分に分解してから矩形を抽出し、矩形を再構成するという作業が必要となってくる。
【0029】
次に、分解について説明を行う。図2において202は、矩形オブジェクトreから、矩形を示している。パラメータには、10(x座標)、50(y座標)、100(幅)、50(高さ)を持つ。図6は、この矩形をパラメータを用いて座標空間に現したものである。この矩形を構成する4辺(上辺、下辺、左辺、右辺)から、4本の線分を抽出する。抽出した結果、4本の線分パラメータ情報を得る。矩形の下辺を例に取ると、オペレータ「l」、線分パラメータ情報は開始点のx座標=10、開始点のy座標=50、終了点のx座標=110、終了点のy座標=50となる。このようにして、線分変換部503で多角形は線分に変換される。
【0030】
(傾度取得部)
傾度取得部504は、線分抽出部502と線分変換部503で抽出された線分パラメータ情報により構成される線分の基準線との傾度を取得する。基準線は、PDFファイル内の座標空間におけるx軸等の基準となる線で、その基準線を基準とした線分の傾度を取得する。もちろん、この基準線はx軸でなくともその線を基準に線分の傾度さえ決まればよく任意の線でよい。線分の線分パラメータ情報を基に、その線分に対応した線分の傾度を取得する。図7は、基準線をx軸として線分a、線分bの傾度を取得する例を表した図である。線分aは、x軸に対して45度の傾きを持ち、線分bは、150度の傾きを持つ。それぞれの線分について、傾度45度、傾度150度を取得する。なお、この線分の傾度を取得する目的については後に説明する。
【0031】
(矩形探索部)
次に、矩形探索部505について説明する。矩形探索部505は、線分抽出部502と線分変換部503において抽出された線分パラメータに基づいて、矩形の探索を行う。線分を組み合わせて、形成される矩形を探す処理を行う。これを図8のフローチャートを用いて説明する。
【0032】
まず、ステップS801は、矩形探索に先立ち、抽出された線分パラメータ情報と傾度を用いて、線分をx軸に平行な集合Aとy軸に平行な集合Bに分類する。図10は、線分をx軸に平行な集合Aとy軸に平行な集合Bに分類した線分の様子を示す。x軸に平行、y軸に平行ではなく、ある傾きの線分の集合とその線分に直行する線分の集合でもよい。ここでx軸に平行、y軸に平行な集合としたのは、一般的な帳票で使用される図形は、x軸、y軸に平行な線から構成される矩形(長方形)であるから、そのような矩形を抽出するに都合がよい集合としたものである。また、矩形は直角に交わる4本の線分によって構成されるため、直交する線分のみから矩形抽出処理を行い、不要な線分の組み合わせを排除して矩形の探索処理を効率化する。
【0033】
また、ステップS802は、集合における任意の2本の線分(この2本の線分は互いに平行)を取り出し、それらが交点をもっているならば、連結させてできる新しい線分を元の2本の線分と置き換える。線分を連結させることで、処理に要する線分の数を減らし矩形の探索処理をさらに効率化することができる。図9は、線分の連結の例を表した図である。線分aは、始点(10 , 20)、終点(20 ,20)である線分である。また、線分bは、始点(15 , 20)、終点(25 ,20)である線分である。この2つの線分は、ともにy軸に平行であるため同じ集合Bに分類されており、さらにxy座標空間上において、交点(重なり)を有する。ゆえに、これらの線分は連結することができる。線分cは、線分と線分bを連結してできた線分である。この線分cを集合Bに追加し、集合Bから線分aと線分bは削除される。また、線分dの扱いについても説明する。線分dは、線分aと対比して、平行ではあるが交点を持たない。しかしながら、この2つの線分の距離は1であり(y座標から算出)、ベクタ情報上は全く交点を持たない線分であっても、表示画面上もしくは印刷された用紙上において視覚的には交わりをもつ線分である。2つの線分の距離が1ではなく、0.5 、さらに0.01であればより顕著となる。即ち、ベクタ情報上は交点を持たない線分であっても、その線分間の距離が所定以下であれば視覚的には交点を持つものであるため(2つの線分が重なって見える)、このような2つの線分も連結の対象とするものである。よって、線分aと線分dは連結されて線分cとして処理される。なお、この場合の距離とは、線分cと線分eの例が表すように、2つの線分から直角に線を引いた最短の距離をいう。線分fは、線分cに対して距離を持たないので連結の対象にならない。このように、処理対象の線分を減らすことができるだけでなく、ベクタ情報では交点を持たない線分であっても実質的に(視覚的に)交点を持つとされる線分を連結することで、帳票における項目欄に相当するような矩形の探索により柔軟に対応できる。
【0034】
次に、矩形の探索を開始する。ステップS803は、x軸に平行な集合Aとy軸に平行な集合Bから各2本ずつ取り出し、2本の線分のすべての組み合わせについて調べる。ステップS804において、4本の線分から交点が4つできれば、ステップ805で、その4つの交点を頂点とする矩形(矩形パラメータ情報)を得て矩形集合Rに追加する。なお、この矩形集合Rは、矩形探索部で抽出された矩形を格納しておく集合である。
【0035】
図10は、線分をx軸に平行な集合Aとy軸に平行な集合Bに分類したものである。集合A、集合Bから2本の線分を取り出す。図11のように、座標空間上で交点が4つできればその4つの交点を頂点とする矩形(矩形パラメータ情報)を得る。ステップS806で、2本の線分のすべての組み合わせについて処理を終えれば、処理を終える。
【0036】
なお、x軸とy軸に平行な線分のみを取り出し集合A、Bに分類しているのは、処理の効率化のためであって、x軸とy軸に平行な辺を持つ矩形の抽出に限定するものではない。一般的な帳票で使用される図形は矩形(長方形)であることから、x軸とy軸に平行な辺を持つ矩形のみ探索すればよい。線分を角度ごとの集合xに分類し、それぞれの組み合わせで調べれば矩形の角度に限定されることはない。矩形だけでなくひし形等の図形(4つの角の角度がすべて90度でない四角形)も抽出することができる。また、傾度を取得せずに線分の組み合わせから形成されるすべての矩形を調べてもよい。また、用途事情等により必要に応じて線分n本の組み合わせを調べ、n角形を抽出することもできる。
【0037】
(最小矩形判定部)
次に、最小矩形判定部506ついて説明する。最小矩形の判定は、矩形集合Rに格納された矩形対象に行われる。矩形探索部において得られた矩形パラメータにより構成される矩形が、他の矩形を内包するかの判定を行うことで、その矩形が最小矩形であるか否かを判定する。最小矩形とは、その矩形内に他の矩形を含まない矩形である。内包しなければ最小矩形であるという情報を付加し、内包すれば最小矩形でないという情報を付加する。
【0038】
ここで、他の矩形を内包するかの判定は次のように行われる。図12は、矩形Aが矩形Bを内包する例を示したものである。矩形A(x11 , y11)、(x12 , y12)の角の座標と、矩形B(x21 , y21)、(x22 , y22)の角の座標とを比較し、x11<x21 、y11< y21 、x12 >x22 、y12> y22 のとき、矩形Aは矩形Bを内包する。このように判断すると、矩形Aは矩形Bを内包するので最小矩形ではなく、矩形Bは他に内包する矩形はないので最小矩形となる。最小矩形と判定された矩形には、例えば図13のように「true」といったフラグを立てる。最小矩形でない矩形については、「false」のフラグを立てる。
【0039】
(最小矩形出力部)
最後に、最小矩形出力部507おいて、最小矩形判定部506で最小矩形と判定された矩形を出力・表示する。図14は、「帳票設定ウインドウ」においての表示の一例を表したものである。「四角1」と「四角2」に係る矩形は最小矩形であるため表示されている。他の矩形の内包する矩形は最小矩形ではないので表示されない。
【0040】
最小矩形出力部507は、ユーザが帳票からフィールド位置情報を設定する画面上の帳票の画像イメージに抽出された最小矩形情報を重畳して出力する。これにより、ユーザは抽出された最小矩形情報を使うことで簡単に帳票の設定を作成することができる。
【0041】
なお、図13において最小矩形と判定された矩形は、PDF形式のファイルのベクタ情報に付加することができる。付加にあっては、「オペレータ」においては「re」として付加され、あわせて当該矩形のパラメータ情報が付加される。この付加されたベクタ情報のみから最小矩形を特定できるので、上述したような再度の処理は不要となる。
【0042】
(例外的な線分・矩形の取り扱い)
例外的な線分の取り扱いについて説明する。ベクタ情報における線分パラメータ情報に「線幅」を表すパラメータがある。この「線幅」の値が、例えば20といったような非常に高い値である場合には、視覚的にはもはや線分というよりは矩形と捉えた方が適切な場合がある。そこで、線分の「線幅」が所定の値より大きい場合には、線分でなく矩形として取り扱う処理を行う。この処理は、線分抽出部において行われてもよいし、矩形探索部において矩形探索に先立っておこなわれてもよい。なお、この所定の値は、電子ファイルで定められた初期の線幅の値としてもよいし、設定によりユーザが指定してもよい。
【0043】
次に、例外的な矩形の取り扱いについて説明する。矩形パラメータ情報の「高さ」を表すパラメータにおいて、この「高さ」の値が、例えば1、0.5といったような非常に小さい値である場合には、視覚的にはもはや矩形というよりは線分と捉えた方が適切な場合がある。そこで、矩形の「高さ」が所定の値より小さい場合には、矩形でなく線分として取り扱う処理を行う。この処理は、線分変換部において行われてもよいし、矩形探索部において矩形探索に先立っておこなわれてもよい。なお、この所定の値は、電子ファイルで定められた初期の高さの値としてもよいし、設定によりユーザが指定してもよい。
【0044】
(図形文字の取り扱い)
いわゆる図形文字の取り扱いについて説明する。ここでいう図形文字とは、「□」、「◇」、又は「○」といったような図形を表す文字であって、帳票において一般的にチェックボックスの役目として使われるような文字のことである。図形文字は、文字の一種であるため、ベクタ情報においてはテキストオブジェクトとして表現されている。よって、図形文字を扱うにあたって「オペレータ」がBT(テキストオブジェクト)に該当し、パラメータに図形文字を有するベクタ情報を取得する。取得された図形文字は最小矩形として扱う。例えば、図形文字である「□」は、他の矩形を内包することはないので、取得された図形文字はそのまま最小矩形とすることができる。なお、この処理は図形文字抽出部等を設け処理すればよい。これにより、ユーザは図形文字で表される領域も矩形として指定することができる。
【実施例】
【0045】
本実施例では、図15の例を用い具体的にこれまでの処理内容を踏まえて説明する。aは、電子ファイルの帳票イメージを表しており、図形と文字(図形文字ではないとする)が描かれている。この図形はベクタ情報として、bに示すように、1つの矩形と3本の線分から構成されているものとする。
【0046】
まず、3本の線分の線分パラメータ情報は線分抽出部502で抽出される。図形は線分変換部503で4本の線分に変換される。その結果、cに示すように、7本の線分が得られた。
【0047】
次に、傾度取得部504において7本の線分の傾度が取得される。取得された傾度を基に、x軸に平行な線分3本(集合A)、y軸に平行な線分4本(集合B)に分類する。なお、これらの線分には平行かつ重なりを持つ線分はないので、線分の連結は行われない。
【0048】
矩形探索部505において、集合A、集合Bからすべての2本の線分を組み合わせ矩形の探索を行う。探索の結果、dに示すように、5つの矩形が探索された。なお、実際は交点を4つ持つので矩形とされるが、dにおいては図の表現上、交点を持たせていない。
【0049】
次に、最小矩形判定部506は、dで形成された5つの矩形について他の矩形を内包するか否かの判定を行う。その結果、eの通り他の矩形を内包しないe1、e2、e3が最小矩形とされた。fは、他の矩形を内包するため最小矩形とされない。
【0050】
最小矩形出力部507は、gに表される「帳票設定ウインドウ」において、最小矩形と判定された3つの矩形を出力・表示する。ユーザは、この帳票の領域指定を行う。
【0051】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0052】
【図1】帳票の一例を表す図である。
【図2】ベクタ情報の一例を表す図である。
【図3】図形がベクタ情報として表現される例を表した図である。
【図4】情報処理装置の構成図である。
【図5】本発明に係る機能を表すブロック図である。
【図6】ベクタ情報のパラメータで表現される矩形を表した図である。
【図7】傾度取得の様子を表す図の一例である。
【図8】矩形探索部の処理を表すフローチャートである。
【図9】線分を連結する様子を表す図の一例である。
【図10】線分を集合に分類した一例を表す図である。
【図11】線分が交点を持つ様子を表す図の一例である。
【図12】矩形が矩形を内包する様子を表す図の一例である。
【図13】最小矩形の判定結果を表す図の一例である。
【図14】帳票設定ウインドウを示す図である。
【図15】本発明に係る処理においての線分の態様を表した図の一例である。
【符号の説明】
【0053】
501 読み込み部
502 線分抽出部
503 線分変換部
504 傾度取得部
505 矩形探索部
506 最小矩形判定部
507 最小矩形出力部
【特許請求の範囲】
【請求項1】
ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置において、
前記電子ファイルが有する前記ベクタ情報を読み込む読込手段と、
前記読込手段により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手段と、
前記読込手段により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手段と、
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手段と、
前記矩形抽出手段により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手段と、
前記最小矩形判定手段により判定された最小矩形を出力する最小矩形出力手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分の基準線との傾度を取得する傾度取得手段を有し、
前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と、さらに前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、直行する線分から形成される矩形の矩形パラメータ情報を抽出すること、
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて構成される線分の傾度を取得する傾度取得手段と、
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、傾度が同一であって重なりをもつ2つの線分を連結し、連結した線分の線分パラメータ情報を取得する第3の線分抽出手段とを有し、
前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出され、前記第3の線分抽出手段により連結された線分の線分パラメータ情報を除いた線分パラメータ情報と、さらに前記第3の線分抽出手段により抽出された線分パラメータ情報とに基づいて、矩形パラメータ情報を抽出すること、
を特徴とする請求項1記載の情報処理装置。
【請求項4】
前記第3の線分抽出手段は、さらに、傾度が同一であって線分と線分との距離が所定以下である2つの線分を連結すること、
を特徴とする請求項3記載の情報処理装置。
【請求項5】
前記読込手段により読み込まれた前記ベクタ情報から、文字オブジェクトにおける図形文字情報を抽出する図形文字抽出手段を有し、
前記図形文字抽出手段により抽出された図形文字情報により構成される図形文字を最小矩形とすること、
を特徴とする請求項1ないし4に記載の情報処理装置。
【請求項6】
前記図形文字は、「□」、「◇」、又は「○」であること、
を特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記最小矩形判定手段により判定された最小矩形の最小矩形パラメータ情報を矩形オブジェクトとして前記電子ファイルの有するベクタ情報に付加する付加手段と、
を有することを特徴とする請求項1ないし6に記載の情報処理装置。
【請求項8】
ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置における情報処理方法において、
前記電子ファイルが有する前記ベクタ情報を読み込む読込手順と、
前記読込手順により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手順と、
前記読込手順により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手順と、
前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手順と、
前記矩形抽出手順により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手順と、
前記最小矩形判定手順により判定された最小矩形を出力する最小矩形出力手順と、
を有することを特徴とする情報処理方法。
【請求項9】
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分の基準線との傾度を取得する傾度取得手順を有し、
前記矩形抽出手順は、前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報と、さらに前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、直行する線分から形成される矩形の矩形パラメータ情報を抽出すること、
を特徴とする請求項8記載の情報処理方法。
【請求項10】
前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報に基づいて構成される線分の傾度を取得する傾度取得手順と、
前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報と前記傾度取得手順により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、傾度が同一であって重なりをもつ2つの線分を連結し、連結した線分の線分パラメータ情報を取得する第3の線分抽出手順とを有し、
前記矩形抽出手順は、前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出され、前記第3の線分抽出手順により連結された線分の線分パラメータ情報を除いた線分パラメータ情報と、さらに前記第3の線分抽出手順により抽出された線分パラメータ情報とに基づいて、矩形パラメータ情報を抽出すること、
を特徴とする請求項8記載の情報処理方法。
【請求項11】
前記第3の線分抽出手順は、さらに、傾度が同一であって線分と線分との距離が所定以下である2つの線分を連結すること、
を特徴とする請求項10記載の情報処理方法。
【請求項12】
前記読込手順により読み込まれた前記ベクタ情報から、文字オブジェクトにおける図形文字情報を抽出する図形文字抽出手順を有し、
前記図形文字抽出手順により抽出された図形文字情報により構成される図形文字を最小矩形とすること、
を特徴とする請求項8ないし11に記載の情報処理方法。
【請求項13】
前記図形文字は、「□」、「◇」、又は「○」であること、
を特徴とする請求項12に記載の情報処理方法。
【請求項14】
前記最小矩形判定手順により判定された最小矩形の最小矩形パラメータ情報を矩形オブジェクトとして前記電子ファイルの有するベクタ情報に付加する付加手順と、
を有することを特徴とする請求項8ないし13に記載の情報処理方法。
【請求項15】
請求項8ないし14いずれか一項に記載の情報処理方法をコンピュータに実行させるための矩形抽出プログラム。
【請求項1】
ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置において、
前記電子ファイルが有する前記ベクタ情報を読み込む読込手段と、
前記読込手段により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手段と、
前記読込手段により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手段と、
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手段と、
前記矩形抽出手段により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手段と、
前記最小矩形判定手段により判定された最小矩形を出力する最小矩形出力手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分の基準線との傾度を取得する傾度取得手段を有し、
前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と、さらに前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、直行する線分から形成される矩形の矩形パラメータ情報を抽出すること、
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報に基づいて構成される線分の傾度を取得する傾度取得手段と、
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分パラメータ情報と前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、傾度が同一であって重なりをもつ2つの線分を連結し、連結した線分の線分パラメータ情報を取得する第3の線分抽出手段とを有し、
前記矩形抽出手段は、前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出され、前記第3の線分抽出手段により連結された線分の線分パラメータ情報を除いた線分パラメータ情報と、さらに前記第3の線分抽出手段により抽出された線分パラメータ情報とに基づいて、矩形パラメータ情報を抽出すること、
を特徴とする請求項1記載の情報処理装置。
【請求項4】
前記第3の線分抽出手段は、さらに、傾度が同一であって線分と線分との距離が所定以下である2つの線分を連結すること、
を特徴とする請求項3記載の情報処理装置。
【請求項5】
前記読込手段により読み込まれた前記ベクタ情報から、文字オブジェクトにおける図形文字情報を抽出する図形文字抽出手段を有し、
前記図形文字抽出手段により抽出された図形文字情報により構成される図形文字を最小矩形とすること、
を特徴とする請求項1ないし4に記載の情報処理装置。
【請求項6】
前記図形文字は、「□」、「◇」、又は「○」であること、
を特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記最小矩形判定手段により判定された最小矩形の最小矩形パラメータ情報を矩形オブジェクトとして前記電子ファイルの有するベクタ情報に付加する付加手段と、
を有することを特徴とする請求項1ないし6に記載の情報処理装置。
【請求項8】
ベクタ情報を有する電子ファイルを入力する入力部を有する情報処理装置における情報処理方法において、
前記電子ファイルが有する前記ベクタ情報を読み込む読込手順と、
前記読込手順により読み込まれた前記ベクタ情報から、線分オブジェクトにおける線分パラメータ情報を抽出する第1の線分抽出手順と、
前記読込手順により読み込まれた前記ベクタ情報から、多角形オブジェクトにおける多角形パラメータ情報を抽出し、抽出した多角形パラメータ情報から該多角形を構成する線分の線分パラメータ情報を抽出する第2の線分抽出手順と、
前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報に基づいて、矩形パラメータ情報を抽出する矩形抽出手順と、
前記矩形抽出手順により抽出された矩形パラメータ情報により構成される矩形が、矩形を内包しない矩形である最小矩形であるか否かを判定する最小矩形判定手順と、
前記最小矩形判定手順により判定された最小矩形を出力する最小矩形出力手順と、
を有することを特徴とする情報処理方法。
【請求項9】
前記第1の線分抽出手段及び前記第2の線分抽出手段により抽出された線分の基準線との傾度を取得する傾度取得手順を有し、
前記矩形抽出手順は、前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報と、さらに前記傾度取得手段により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、直行する線分から形成される矩形の矩形パラメータ情報を抽出すること、
を特徴とする請求項8記載の情報処理方法。
【請求項10】
前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報に基づいて構成される線分の傾度を取得する傾度取得手順と、
前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出された線分パラメータ情報と前記傾度取得手順により取得され、抽出された線分パラメータに対応した前記傾度とに基づいて、傾度が同一であって重なりをもつ2つの線分を連結し、連結した線分の線分パラメータ情報を取得する第3の線分抽出手順とを有し、
前記矩形抽出手順は、前記第1の線分抽出手順及び前記第2の線分抽出手順により抽出され、前記第3の線分抽出手順により連結された線分の線分パラメータ情報を除いた線分パラメータ情報と、さらに前記第3の線分抽出手順により抽出された線分パラメータ情報とに基づいて、矩形パラメータ情報を抽出すること、
を特徴とする請求項8記載の情報処理方法。
【請求項11】
前記第3の線分抽出手順は、さらに、傾度が同一であって線分と線分との距離が所定以下である2つの線分を連結すること、
を特徴とする請求項10記載の情報処理方法。
【請求項12】
前記読込手順により読み込まれた前記ベクタ情報から、文字オブジェクトにおける図形文字情報を抽出する図形文字抽出手順を有し、
前記図形文字抽出手順により抽出された図形文字情報により構成される図形文字を最小矩形とすること、
を特徴とする請求項8ないし11に記載の情報処理方法。
【請求項13】
前記図形文字は、「□」、「◇」、又は「○」であること、
を特徴とする請求項12に記載の情報処理方法。
【請求項14】
前記最小矩形判定手順により判定された最小矩形の最小矩形パラメータ情報を矩形オブジェクトとして前記電子ファイルの有するベクタ情報に付加する付加手順と、
を有することを特徴とする請求項8ないし13に記載の情報処理方法。
【請求項15】
請求項8ないし14いずれか一項に記載の情報処理方法をコンピュータに実行させるための矩形抽出プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−116825(P2009−116825A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−292311(P2007−292311)
【出願日】平成19年11月9日(2007.11.9)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願日】平成19年11月9日(2007.11.9)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]