図形処理装置、図形処理方法、コンピュータプログラム
【課題】 予め定められた形状の既定図形と、自由に作図した自由図形とを組み合わせで表現されている合成図形の画像をスキャンした場合に、自由図形と既定図形との間の位置や形状を適切に調整する。
【解決手段】 本発明では、入力画像に含まれる図形を、既定図形と自由図形とに分離する。当該分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定し、自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する。当該設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化し、グループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、自由図形の方を補正する。
【解決手段】 本発明では、入力画像に含まれる図形を、既定図形と自由図形とに分離する。当該分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定し、自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する。当該設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化し、グループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、自由図形の方を補正する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ラスター画像に含まれる図形をベクトル化(ベクトル変換)する図形処理装置、方法、プログラムに関する。
【背景技術】
【0002】
ラスター画像中に含まれている図形を認識して、電子データ化し、以降、コンピュータでの処理に供するための提案がなされている。
【0003】
特許文献1では、手書きのフローチャートの画像を、整然と配列された画像に変換することが記載されている。その際、ラスター画像データをベクトルデータに変換して、そのベクトルデータから円や長方形や菱形などの記号の形状認識を行い、認識された記号形状に適したフォーマットの記号データに変換している。
【0004】
また、特許文献2では、ラスター図形をベクトル図形へ変換する際に補正処理を行うことが記載され、特に、図形の分類結果に応じて該補正処理の処理内容と順序を変更することが記載されている。例えば、直線の図形の場合、ベクトル化処理を行った後に、近接線結合処理、直線補正処理、微小図形消去処理を行う。また、曲線の図形の場合、ベクトル化処理を行った後に、近接線結合処理、微小図形消去処理を行うことが記載されている。
【0005】
また、特許文献3では、スキャンで得たラスター画像を属性毎のブロックに分割し、ブロックごとにベクトル変換を行うことが記載されている。特に、ベクトル変換を行った結果、データ量が多くなってしまう領域に関しては、ベクトルデータではなく、当該領域の画像データを保存することが記載されている。
【0006】
なお、以下の本明細書では、円・長方形・菱形・三角形などの予め定められた形状の図形を既定図形と呼ぶこととし、ユーザが自由に作図した図形(線画)を自由図形と呼ぶこととする。例えば、マイクロソフト・オフィス(商標)では、「オートシェイプ」と呼ばれる予め決められた形状の図形(本発明の既定図形に相当)が用意されており、ユーザはこのオートシェイプを用いて作図をすることができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特登録3183690号公報
【特許文献2】特開平06−337929号公報
【特許文献3】特登録4185858号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
一方、一般的なビジネス文書などでは、既定図形や直線や自由図形を単独で記述するだけでなく、更に、ユーザが自由図形と既定図形とを組み合わせて新たな1つの図形として表現した合成図形を記述する場合もある。しかしながら、ユーザの文書作成が雑であった場合、自由図形と既定図形の位置が少し離れた状態の文書が作成され、その図形配置の紙文書が印刷されることになる。この印刷された紙文書をスキャンした場合、スキャンで得た画像内の各図形は離れているので別々のオブジェクトとして認識されることになる。すなわち、本来、1つの合成図形として扱わせたかったオブジェクトが、別々のオブジェクトに認識されてしまう。したがって、このようなオブジェクトを1つにしようとすると、スキャン操作を行ったユーザがそのオブジェクトを手作業で修正しなければならず、手間が掛かる。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の図形処理装置は、入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離手段と、前記分離手段で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第1の設定手段と、前記分離手段で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第2の設定手段と、前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化手段と、前記グループ化手段でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、スキャン画像から認識した既定図形と自由図形とが別々のオブジェクトとして近傍に存在する場合、各オブジェクトの基準(代表点等)の位置や形状を調整することにより、合成図形としてのオブジェクト化を自動的に行うことができる。したがって、ユーザの手間を減らすことができる。
【0011】
また、本発明では、既定図形と自由図形との間の距離を調整する際、自由図形の位置や形状を優先して調整することで、既定図形の歪みを減らすことができるので、ユーザに違和感の少ない、より自然な調整や補正が実現できる。
【図面の簡単な説明】
【0012】
【図1】実施形態1の機能構成を示すブロック図
【図2】ハードウェア構成例を示すブロック図
【図3】既定図形と自由図形が混在した入力図形の一例
【図4】既定図形と自由図形が混在した入力図形のグループ化と補正例
【図5】既定図形の補正用特徴情報の例
【図6】線状の開図形の例と、その補正用特徴情報
【図7】その他の図形の例と、その補正用特徴情報
【図8】図形の種類に対する代表点設定方法と補正方法を示すテーブル
【図9】実施例1における処理を示すフローチャート
【図10】実施例1における、グループ化した図形間での補正処理の詳細を示すフローチャート
【図11】実施例2における、グループ化した図形間での補正処理の詳細を示すフローチャート
【図12】自由図形に対してグループ化された既定図形が3つの場合の補正例
【図13】自由図形に対してグループ化された既定図形が4つの場合の補正例
【図14】実施例1における、グループ化された既定図形が2つの場合の補正例
【図15】実施例2における、グループ化された既定図形が2つの場合の補正例
【発明を実施するための形態】
【0013】
(実施例1)
図1は、本発明の実施形態1に係る図形処理装置(画像処理装置)の構成を示す機能ブロック図である。図1において、原稿読取り部11は、スキャナやカメラ等により、線画を含む原稿を読取って文書画像を得る。線画領域抽出部12は、原稿読取り部11で得た文書画像から線画を含む領域を線画領域として抽出する。ベクトル変換部2では、線画領域抽出部12で抽出された線画領域に含まれる線画図形をベクトル化してベクトルデータを得る。既定図形同定部3は、ベクトル変換部2で得られた図形のベクトルデータに基づいて、当該線画領域に含まれる既定図形を同定する。既定図形・自由図形分離部4は、線画領域に基づいて得たベクトルデータから、既定図形同定部3で既定図形として同定された図形成分を除くことにより得られる残りの図形成分を自由図形とすることで、前記線画領域に含まれる既定図形と自由図形を分離する。
【0014】
補正用特徴情報設定部5は、既定図形・自由図形分離部4で分離された既定図形及び自由図形のそれぞれに属する各図形に、補正用特徴情報を設定する。既定図形・自由図形間グループ化部6は、既定図形同定部3と既定図形・自由図形分離部4とによって分離された既定図形及び自由図形のそれぞれに属する各図形間で、予め定めた規則に基づき、グループとしてまとめて扱うべき図形群を定める。グループ化済図形補正部7は、既定図形・自由図形間グループ化部6で定められた、グループとしてまとめて扱うべき図形群のそれぞれにおいて、同一グループにグループ化された図形群内の各図形を予め定めた方法で補正する。出力データ生成部8は、ベクトル変換部2でベクトル化され、グループ化済図形補正部7で補正された、前記線画中の図形データを表す情報を、所定の出力形式(例えばSVG(Scalable Vector Graphics)形式)のデータに変換することにより出力データを生成する。データ出力部9は、出力データ生成部8で生成された、所定の出力形式の出力データを出力する。
【0015】
図2は、図1に示した図形処理装置を実現するためのハードウェア構成の一実施形態を示すブロック図である。図2において、イメージスキャナ111はI/Oインタフェース112を介してバス50に接続されており、111と112により図1の原稿読取り部11が構成される。また、ROM30に格納されるコンピュータプログラムをCPU20で実行することにより、該CPU20は、図1の線画領域抽出部12、ベクトル変換部2、既定図形同定部3、既定図形・自由図形分離部4、補正用特徴情報設定部5、既定図形・自由図形間グループ化部6、グループ化済図形補正部7、出力データ生成部8として機能する。RAM40は、ワーキングメモリや、画像記憶メモリとして利用される。また、ハードディスク62は、I/Oインタフェース61を介してバス50に接続されており、外部記憶装置60を構成している。プリンタ82は、I/Oインタフェース81を介してバス50に接続されており、データ印字出力装置80を構成している。また、70は、ネットワークI/Fである。外部記憶装置60、データ印字出力装置80、ネットワークI/F70は、図1でいうデータ出力部9のデータ出力先となるものである。また、本発明の処理対象となる画像は、上述したように、原稿読み取り部(スキャナ)11を介して入力される画像であってもよいし、外部記憶装置60に格納されている画像データや、外部装置からネットワークI/Fを介して受信した画像を処理対象にするようにしてもよい。すなわち、入力される画像は、原稿読み取り部(スキャナ)11で読み取った画像に限るものではなく、その他の手段を介して入力された画像であってもよい。
【0016】
図3(a)は既定図形と自由図形が混在した入力図形の一例である。図3(b)は図3(a)で示した入力図形中に含まれる既定図形の例(二等辺三角形)であり、図3(c)は図3(a)で示した入力図形中に含まれる自由図形の一例を示している。以下、図3及び図4を用いて、図1の各処理部で実行される処理の概要を説明する。
【0017】
処理対象の画像(例えば図3(a)の入力図形)は、線画領域抽出部12において、原稿画像の中から抽出された線画領域の画像である。なお、線画領域抽出部12は、公知の領域分割技術(例えば特許文献3記載の領域分割技術)を用いることにより原稿画像を属性毎の領域に分割し、分割された領域の中から線画(図形)の属性を有する領域を抽出することにより実現できる。次に、ベクトル変換部2で、図3(a)のような入力図形に対して、公知のベクトル変換技術を用いてベクトルデータに変換する。図4(a)は、図3(a)に示した入力図形をベクトル変換部2で変換し、当該変換されたベクトルデータを可視化した状態で表現したものである。
【0018】
図4(b)を説明する。図4(a)に示したベクトルデータに対して、既定図形同定部3にて図形認識を行うことにより、既定図形410(この場合は、二等辺三角形)を同定する。例えば、図4(a)のベクトルデータから抽出した特徴データ(ベクトルデータの変化点など)を予め定義された複数の既定図形それぞれの特徴データとマッチングして、最も一致する既定図形を特定する。そして、既定図形・自由図形分離部4では、図4(a)に示したベクトルデータから、既定図形同定部3で同定された既定図形410を除いた残りの連結成分(残りのベクトルデータ)を自由図形成分420として同定する。このようにして、図4(a)に示したベクトルデータを分離すると、図4(b)のように既定図形成分410と自由図形成分420とに分離される。
【0019】
次に、図4(b)のように既定図形成分410と自由図形成分420とに分離したベクトルデータに対して、補正用特徴情報設定部5において、補正用特徴情報を設定した結果を図4(c)に示す。補正用特徴情報については、後ほど詳述する。図4(c)は、黒い丸印で、既定図形411と自由図形421それぞれにおける代表点(補正用特徴情報の一種で、近隣図形間の空隙を埋めて接続させる補正をする際の接続候補点である)を加えて表示したものである。
【0020】
図4(c)に示した補正用特徴情報付の既定図形データと自由図形データとに対して、既定図形・自由図形間グループ化部6でグループ化し、更に当該グループ化された既定図形と自由図形の図形群に対して、グループ化済図形補正部7で補正した結果の例を図4(d)に示す。グループ化済図形補正部7では、それぞれの図形間で予め定めた距離内にある代表点同士が重なるように、自由図形421に対して平行移動や拡大縮小などの補正を行い、自由図形422となるようにする。出力データ生成部8では、図4(d)に示した補正済みの図形群のデータを、所定の出力形式(例えばSVG)のデータに変換する。この変換されたデータを描画した場合、図4(e)のように描画されることになる。尚、生成された所定の出力形式のデータは、データ出力部9を介して外部部記憶装置60やネットワークI/F70等に出力される。
【0021】
尚、既定図形同定部3は、例えば、前述の特許文献1に記載の図形認識手段として開示される手法などで実現可能である。即ち、図形画像データと判断された画像をベクトルデータに変換し、当該変換されたベクトルデータのうち閉形状を構成するベクトルに着目して、周回方向の変化点等に基づき予め定める複数のパラメータで定義される既定図形のいずれに一致するか判定する。また、これに限らず、既定図形同定部3はその他の公知の方法で構成しても良いのはもちろんである。例えば、図形認識をベクトルデータで行なわず、ビットマップ画像上でパターン認識するような方法でもよい。このような場合には、まず、ビットマップ画像上でパターン認識することにより既定図形と認識されたビットマップパターンと、それ以外の部分を分離する。そして、既定図形と認識されたビットマップパターンに対しては、当該ビットマップパターンに合致するように、既定図形で予め定義されているパラメータを特定することによって既定図形のベクトルデータ(既定図形データ)に変換する。また、それ以外の部分のビットマップパターンに対しては、当該ビットマップパターンに含まれる図形の輪郭を抽出してベクトル化処理することにより、自由図形のベクトルデータ(自由図形データ)を生成する。
【0022】
図5は既定図形とそれら既定図形の補正用特徴情報の例を示している。同図において、(a),(b),(c),(g),(h),(i)は既定図形の例である。即ち、(a)二等辺三角形、(b)長方形(正方形を含む)、(c)菱形、(g)楕円、(h)正五角形、(i)正六角形、である。(d),(e),(f),(j),(k),(l)は、それぞれ、既定図形(a),(b),(c),(g),(h),(i)に対応する補正用特徴情報を示している。既定図形の種類(形状)に応じて、補正用特徴情報が設定される相対的な位置や数は予め定められているものとする。補正用特徴情報としては、代表点、基準点、方向軸の三種類がある。代表点とは、近隣図形間の空隙を埋めて接続させる補正をする際の接続候補点の働きがある。基準点とは、当該図形全体の位置を平行移動させたり、回転させたりするときの基準、即ち、当該図形の中心位置である。方向軸とは、基準点を中心に図形を回転させる際の回転角を定めるときの基準方向である。同図において、代表点は小さな黒丸で、基準点は小さな白丸で、方向軸は点線で示されている。また、補助的な意味合いで、各図形の外接矩形を破線で示してある。
【0023】
図6〜図7は、既定図形以外の図形(即ち、自由図形)とそれら自由図形の補正用特徴情報の例を示している。図6(a)および図6(c)は、未接続の線の端点(開放端)を2つ有する開図形で、且つ当該2つの開放端が当該図形の外接矩形上にある自由図形の例である(本実施形態では、このような自由図形を線状開図形と呼ぶこととする)。図7(a)は、2つの開放端を有する開図形であるが、2つの開放端が外接矩形上にない自由図形である(本実施形態では、このような図形を一般開図形と呼ぶこととする)。図7(c)は、線の端点(開放端)が存在せず、図形全体が一つの閉ループを構成している閉図形の例である。尚、本実施形態では、図7(a)のような一般開図形、ならびに開放端が1つだけである自由図形や開放端が3つ以上ある自由図形に対して、便宜上、図7(d)のような閉図形の場合と同様に扱うものとする。図6〜図7においても、それらの補正用特徴情報として、代表点は小さな黒丸で、基準点は小さな白丸で、方向軸は点線で示されている。また、補助的な意味合いで、各図形の外接矩形を破線で示してある。
【0024】
図6(a)や図6(c)の自由図形は、2つの開放端を有し且つ外接矩形上に当該2つの開放端が存在するので、線状開図形であると判断され、図6(b)および図6(d)に示されるように、各図形の2つの開放端を代表点として設定する。このとき、当該設定された2つの代表点を結ぶ直線の方向を方向軸とし、更に、当該2つの代表点の中点を基準点とする。このようにして設定された代表点(および方向軸、基準点)が、補正用特徴情報として扱われることになる。
【0025】
図7(a)や図7(c)の自由図形は、線状開図形(図6)でない図形であると判断され、図7(b)および図7(d)に示されるように、当該自由図形の外接矩形の各辺における接点を代表点として設定する。また、当該外接矩形の対辺に設定された代表点同士を結ぶ2つの直線の交点を、基準点として設定する。なお、外接矩形の一辺に複数の接点があった場合は、所定の基準に基づいて選択した点を代表点とする。例えば、所定の基準として、当該複数の接点の中に開放端があれば当該開放端の接点を優先し、開放端が無ければ当該外接矩形の辺の中点により近い接点を次に優先する、というようにして代表点を設定する。なお、線状開図形以外の自由図形(図7)に対して代表点を設定する基準としては、上記例に限るものではなく、その他の基準を用いても構わない。
【0026】
図8は、図6〜図7で説明した自由図形の種類に応じて、どのように代表点を設定するかと、後述するステップS910での補正方法とを記載したテーブルである。
【0027】
次に、図9のフローチャートを用いて本発明の実施例1の処理の流れを説明する。ステップS901において、イメージスキャナ11やカメラなどから文書画像が入力されると、図形処理装置は、当該入力された文書画像データをRAM40上のワークメモリ(第1のメモリ領域)に保持する。線画領域抽出部12は、文書画像データを属性毎の領域に分割し(例えば特許文献3等に開示される領域分割方法を利用)、当該分割された領域のうち線図形属性の画像(線画領域)を抽出し、RAM40のメモリ(第二のメモリ領域)に保持させる。
【0028】
ステップS902において、ベクトル変換部2は、ステップS901で抽出した線画領域の画像データに対して、公知のベクトル化処理を行ってベクトルデータに変換する。
【0029】
ステップS903において、既定図形同定部3は、前記変換されたベクトルデータの特徴量を、複数の既定図形の特徴データと比較して図形認識を行うことにより、前記変換されたベクトルデータに含まれる既定図形を特定する。更に、既定図形・自由図形分離部4は、前記変換された図形のベクトルデータから、前記特定された既定図形を除いた残りのベクトルデータを自由図形として分離する。このようにして分離された既定図形データと自由図形データを、RAM40のメモリ(第三のメモリ領域)に保持させる。
【0030】
ステップS904において、補正用特徴情報設定部5は、S903で特定された各既定図形データに対して、図5を用いて説明したように補正用特徴情報を設定する。この結果、各既定図形に対して、特定された既定図形の種類を示す既定図形番号(予め登録された既定図形の種類毎に異なる番号が対応付けられている)と、当該既定図形領域の原稿内での位置・サイズ(領域の幅と高さ)と、当該既定図形に対して設定された各代表点の位置と、基準点の位置と、方向軸の方向、などの情報が保持されることになる。なお、代表点の位置や基準点の位置は、当該特定された既定図形の外接矩形の左上の位置を原点としたときの相対位置で表わすものとする。
【0031】
ステップS905に進み、補正用特徴情報設定部5は、S903で分離された自由図形データに対して、前述の図6〜図8を用いて説明したように補正用特徴情報を設定する。この結果、各自由図形に対して、線状開図形かそれ以外の図形かを示す識別番号と、当該分離された自由図形領域の位置・サイズと、当該自由図形に対して設定された代表点の位置と、基準点の位置と、方向軸の方向、などの情報が保持されることになる。
【0032】
なお、ステップS904及びステップS905で、補正用特徴情報が設定された既定図形データと自由図形データは、RAM40のメモリ(第四のメモリ領域)に保持させる。
【0033】
ステップS906において、既定図形・自由図形間グループ化部6は、S905で補正用特徴情報が設定された自由図形データをリストアップし、その数とそれぞれのデータの格納される位置を確定する。尚、リストアップした自由データのそれぞれには、以降のステップS908〜S910の処理が実行済みか否かを示す状態情報を付与し、全ての自由図形の状態情報について未チェック状態であるように初期化する。また、各既定図形データについても、後述のステップS909でいずれかの自由図形とグループ化済みか否かを示す状態情報を付与し、全ての既定図形の状態情報について未グループ化状態であるように初期化される。
【0034】
ステップS907において、既定図形・自由図形間グループ化部6は、ステップS906でリストアップした自由図形の状態情報に基づき、以降のステップS908〜910の処理が実行されていない自由図形を選択し、ステップS908に進む。このとき、選択された自由図形の状態情報を、未チェック状態からチェック済み状態に変更しておく。
【0035】
ステップS908において、既定図形・自由図形間グループ化部6は、ステップS907で選択された自由図形の各代表点の位置から、予め定めた距離の範囲内に、既定図形の代表点のいずれかが存在するか否かを判定する。この際、既定図形の状態情報が未グループ化状態にある既定図形の代表点のみに着目して判定すれば、より効率よく判定を行える。なお、自由図形の代表点の1つに対して、複数の異なる既定図形の代表点が前記予め定めた距離範囲内に存在する場合は、当該自由図形の代表点との距離がより短い代表点を有する既定図形をグループ化対象として判定する。また、当該自由図形の代表点に対して、前記予め定めた距離範囲内に既定図形の代表点のいずれも存在しない場合には、当該自由図形の代表点にはグループ化対象となる既定図形は存在しないと判定する。ステップS908で、当該選択された自由図形に対して、グループ化対象の既定図形が存在した場合はS909に進み、グループ化対象の既定図形が存在しなかった場合はS911に進む。
【0036】
ステップS909において、既定図形・自由図形間グループ化部6は、ステップS908でグループ化対象として判定された自由図形の代表点と既定図形の代表点とをグループ化する。具体的には、自由図形のどの代表点に、どの既定図形のどの代表点が対応づくのかを示す情報を生成して、RAM40のメモリ(第五のメモリ領域)に保持する。また、当該グループ化対象となった既定図形の状態情報を、他の自由図形とグループ化済みになったことを示すグループ化済み状態に変更する。
【0037】
ステップS910において、グループ化済図形補正部7は、ステップS909でグループ化した自由図形の補正処理を行なう。補正処理の詳細については後述する。
【0038】
ステップS911において、既定図形・自由図形間グループ化部6は、リストアップした全ての自由図形の状態情報がチェック済みか判定し、全てチェック済みの場合はステップS912に進み、そうでない場合には、ステップS907に戻って次の自由図形を選択し処理を繰り返す。
【0039】
ステップS912において、出力データ生成部8は、ステップS907〜S911の処理を繰り返し実行した後の既定図形及び自由図形のデータに対して、所定のデータ形式に変換して出力する。例えば、公知のSVG(Scalable Vector Graphics)データ形式にて表現したベクトルデータに変換して出力する。
【0040】
次に、図10のフローチャートを用いて、図9のステップS910の補正処理の詳細について説明する。ステップS200において、グループ化済図形補正部7は、図9のステップS909で当該自由図形とグループ化された既定図形の数が1つか否か判定する。そして、既定図形の数が1つの場合にはステップS210に進み、そうでない場合にはステップS220に進む。
【0041】
ステップS220において、グループ化済図形補正部7は、当該自由図形とグループ化された既定図形の数が3つ以上か否かを判定する。その結果、グループ化された既定図形の数が3つ以上の場合にはステップS230に進み、そうではない場合(すなわちグループ化された既定図形が2つの場合)にはステップS240に進む。なお、当該選択された自由図形が図6のような線状開図形の場合は、代表点が2つであるので、ステップS210またはステップS240に進むことになる。また、当該選択された自由図形が図7のような線状開図形以外の図形である場合は、代表点が4つあるので、ステップS210、S230、S240のいずれかに進むことになる。すなわち、当該自由図形に対してグループ化された既定図形の数に応じて、補正の方法が切り替えられることになる。
【0042】
ステップS210は、当該自由図形にグループ化されている既定図形の数が1の場合に、グループ化済図形補正部7が実行する処理ルーチンである。ここでは、当該グループ化された自由図形の代表点の位置が、当該グループ化された既定図形の代表点の位置に一致するように、当該自由図形を移動させる。
【0043】
図4の例を用いてステップS210の処理の詳細を説明する。自由図形と既定図形を含む線画(図4(a))は、図4(b)のように既定図形410と自由図形420とに分離され、図4(c)のように黒丸で示す位置に補正用特徴情報として代表点が設定される。自由図形部分421に設定された代表点の近傍に、既定図形411に設定された代表点があるので、S909で当該自由図形と既定図形はグループ化対象とされる。そこで、ステップS210では、この自由図形421の代表点の位置が、対応する既定図形411の代表点の位置に重なるように、それらの位置間の変位分を自由図形421の位置に対して加える。すなわち、自由図形421の図形領域の位置に、前記代表点間の位置の変位を加えることにより、自由図形421の位置を移動させる。このようにして、当該選択された自由図形にグループ化された既定図形の数が1つの場合のステップS210での補正処理を実行する。
【0044】
次に、ステップS230の処理の詳細を説明する。ステップS230は、当該自由図形にグループ化されている既定図形の数が3以上の場合に、グループ化済図形補正部7が実行する処理ルーチンである。ここでは、当該グループ化された自由図形の基準点が、当該グループ化された既定図形の代表点を結ぶ多角形の重心に一致するように、当該自由図形の位置を補正する。
【0045】
図12と図13を例として用いてステップS230の処理の詳細を説明する。本実施例では、自由図形の代表点は最多でも4であるので、一つの自由図形に対してグループ化される既定図形は最多でも4である。図12は、1つの自由図形と3つの既定図形を含んだ線画の例である。また、図13は、1つの自由図形と4つの既定図形を含んだ線画の例である。両図中での黒丸と白丸は、それぞれ、図9のステップS904と前記ステップS905で設定された補正用特徴情報であり、黒丸は代表点、白丸は基準点である。
【0046】
図12(a)の入力画像に対しては、図12(b)のように、自由図形500と、3つの既定図形510,520,530が含まれ、これらの図形に対して補正用特徴情報が設定される。その結果、既定図形510、520、530に対して、それぞれ二つの代表点が5101と5102、5201と5202、5301と5302として設定される。また、自由図形500に対して、閉図形であるため4つの代表点が5001、5002、5003、5004として設定され、更に、基準点が5005として設定される。そして、図9のステップS909において、自由図形500の代表点5001、5002、5003それぞれに対して、既定図形の代表点5102、5202、5302が近傍にあり、グループ化されたものとする。このとき、自由図形500と各既定図形510、520、530との間の対応する代表点は、それぞれ、5001と5102、5002と5202、5003と5302の組み合わせであるという情報が生成されている。そこで、図10のステップS230では、この自由図形500の基準点(5005)が、グループ化された3つの既定図形の代表点5102、5202、5302で形成される三角形の基準位置(本実施形態では図12(c)の5006のように三角形の重心位置とする)と重なるように(図12(d)の5015)、自由図形500の位置を移動させる(図12(d)の501)。すなわち、自由図形500の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、前記自由図形の基準点の位置と前記3つの代表点で形成される三角形の基準位置との間の変位を加える。このようにして、ステップS230では、注目する自由図形にグループ化された既定図形の数が3の場合に、当該グループ化した図形間での補正処理を終える。尚、三角形の基準位置(重心位置)は、三角形の各頂点の座標値の平均値として求めることが可能である。三角形の各頂点P1、P2、P3の座標を、それぞれ(x1,y1)、(x2,y2)、(x3,y3)とし、三角形の重心位置PGの座標(xG,yG)は、
xG=(x1+x2+x3)/3
yG=(y1+y2+y3)/3
により、求めることができる。
【0047】
図13(a)の入力画像に対しては、図13(b)のように、自由図形600と、4つの既定図形610、620、630、640が含まれ、これらの図形に対して補正用特徴情報が設定される。その結果、既定図形610、620、630、640に対して、2つの代表点がそれぞれ6101と6102、6201と6202、6301と6302、6401と6402として設定される。また、自由図形600に対して、4つの代表点が6001、6002、6003、6004として設定され、更に、基準点が6005として設定される。自由図形600の代表点6001、6002、6003、6004それぞれに対して、既定図形の代表点6102、6202、6302、6402が近傍にあり、グループ化されたものとする。このとき、自由図形600と各既定図形610、620、630、640との間の対応する代表点は、それぞれ、6001と6102、6002と6202、6003と6302、6004と6402の組み合わせであるという情報が生成されている。そこで、図10のステップS230では、この自由図形部600の基準点(6005)が、グループ化された4つの既定図形610、620、630、640の代表点6102、6202、6302、6402で形成される四角形の基準位置(図13(c)の6006)と重なるように、自由図形600の位置を移動させる(図13(d)の601)。すなわち、自由図形600の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、前記自由図形の基準点の位置と前記4つの代表点で形成される四角形の基準位置との間の変位を加える。このようにして、ステップS230では、注目する自由図形にグループ化された既定図形の数が4の場合に、当該グループ化した図形間での補正処理を行う。なお、本実施形態において、四角形の基準位置は、四角形の各頂点の座標値の平均値として求めるものとする。
【0048】
次に、ステップS240〜S260の処理の詳細を説明する。ステップS240〜S260は、自由図形にグループ化されている既定図形の数が2の場合に、グループ化済図形補正部7が実行する処理ルーチンである。当該グループ化された自由図形の2つの代表点の位置が、当該グループ化された既定図形の2つの代表点の位置に一致するように、当該自由図形を補正する。本実施例1では、当該自由図形の位置を移動させた後、当該自由図形の2つの代表点を繋ぐ線の方向と当該既定図形の代表点間を繋ぐ線の方向とが一致するように該自由図形を回転させ、その後、当該自由図形のサイズを拡大縮小させることにより、自由図形を補正するものとする。
【0049】
図14の例を用いてステップS240〜S260の処理の詳細を説明する。自由図形と既定図形を含む線画(図14(a))は、図9のS901〜S903の処理により、図14(b)のように既定図形810,820と、自由図形800とに分離される。既定図形810,820に対しては、S904において、補正用特徴情報として、それぞれ二つの代表点が設定される(8101と8102、及び8201と8202)。また、自由図形800に対しては、線状開図形であると判断されるので、S905において、2つの代表点8001と8002が設定され、それらの中点が自由図形800の基準点8003として設定される。更に、ステップS909において、自由図形800の代表点8001と8002のそれぞれに対して、既定図形810の代表点8102と、既定図形820の代表点8202とが近傍にあるので、グループ化対象とされる。このとき、自由図形800と各既定図形810、820との間の対応する代表点は、それぞれ、8001と8102の組み合わせと、8002と8202の組み合わせであるという情報が生成されている。そして、図10のステップS240では、まず、図14(c)に示すように、グループ化された既定図形の代表点8102と8202を結ぶ線の中点8004を既定図形間の基準位置とする。そして、自由図形800の基準点8003の位置が、既定図形間の基準位置8004と重なるように、自由図形を平行移動させる。すなわち、自由図形の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、前記自由図形の基準点の位置8003と前記2つの代表点間の中点の位置8004との間の変位を加える。この結果、図14(d)のように、自由図形は801の位置に移動されるので、当該自由図形の基準点の位置は8013に移動され、且つ代表点の位置も8011,8012に移動される。次に、ステップS250では、自由図形801の代表点8011と8012を結ぶ直線の方向が、二つの既定図形の代表点8102と8202を繋ぐ直線の方向と一致するように、自由図形801を基準点8013を中心に回転する。尚、回転中心8013の座標が(xc,yc)で、代表点8012の座標が(x1,y1)で、代表点8011の座標が(x2,y2)だとすると、回転角をθで表す場合、
x1’=x1−xc; y1’=y1−yc;
x2’=x2−xc; y2’=y2−yc;
とおくと、
sinθ=(x1’・y2’−x2’・y1’)/(sqrt(x1’2+y1’2)+sqrt(x2’2+y2’2))
cosθ=(x1’・x2’+y1’・y2’)/(sqrt(x1’2+y1’2)+sqrt(x2’2+y2’2))
となり、
自由図形801を構成する任意の点の座標(xi,yi)を(xi’,yi’)に変換することで上述の回転が実現できる。ただし、
xi’=xc+(xi−xc)・cosθ−(yi−yc)・sinθ
yi’=yc+(xi−xc)・sinθ+(yi−yc)・cosθ
である。
【0050】
回転処理の結果の状態を図14(e)に示した。図14(e)では、回転後の自由図形を802とし、回転後の自由図形の代表点を8021と8022とし、また、基準点を8023で表記している。
【0051】
その後、ステップS260では、回転後の自由図形802の基準点8023の位置を変えずに、自由図形802を変倍する。すなわち、自由図形802の代表点8021と代表点8022の位置が、それぞれ対応する既定図形810の代表点8102と既定図形820の代表点8202の位置に一致するように、回転後の自由図形802の変倍率を求めて変倍する。この際の変倍率には、8021と8022の間の距離に対する、8102と8202の間の距離の倍率(αとする)を用いると良い。自由図形802を構成する任意の点の座標(xi,yi)を、この変倍により(xi’,yi’)に変換する場合の座標値の計算法は、変倍率(前述の比)がαであり、自由図形802の基準点8023の座標を(xc,yc)であるとすると、
xi’=xc+(xi−xc)・α
yi’=yc+(yi−yc)・α
で得られる。変倍処理の結果の状態を図14(f)に示す。自由図形は、図形803のように変倍され、自由図形の代表点の位置8031,8032は、既定図形810,820の代表点の位置に一致する。このようにして、ステップS240〜S260では、注目する自由図形にグループ化された既定図形の数が2の場合に、グループ化した図形間での補正処理を行う。
【0052】
以上、図10のフローチャートを用いて、図9のステップS910で実行される図形間での補正処理の詳細を説明した。
【0053】
(実施例2)
図9のステップS910で実行される補正処理の別実施形態について説明する。以下、図11のフローチャートと図15を用いて、グループ化された図形間での補正処理の実施例2を詳述する。
【0054】
図11に示すフローチャートにおいて、ステップS300〜ステップS330の処理は、図10のフローチャートのステップS200〜S230の処理と全く同様であるので、説明を省略する。ここでは、実施例1の処理の異なるステップS340とS350の部分の処理を説明してゆく。即ち、注目する自由図形にグループ化された既定図形の数が2の時の処理について説明する。本実施例2では、自由図形の片方の代表点の位置を、対応する既定図形の代表点の位置に一致するように移動させた後、自由図形のもう一方の代表点の位置が、対応するもう一方の既定図形の代表点の位置に一致するように、当該自由図形を縦横独立に変倍する。
【0055】
図15の例を用いてステップS300〜ステップS330の処理の詳細を説明する。自由図形と既定図形を含む線画(図15(a))は、図9のS901〜S903の処理により、図15(b)のように既定図形710,720と、自由図形700とに分離される。既定図形710,720に対しては、S904において、補正用特徴情報として、それぞれ二つの代表点が設定される(7101と7102、及び7201と7202)。また、自由図形700に対しては、線状開図形であると判断されるので、S905において、2つの代表点7001と7002とが設定される。更に、ステップS909において、自由図形700の代表点7001と7002のそれぞれに対して、既定図形710の代表点7102と、既定図形720の代表点7202とが近傍にあるので、グループ化対象とされる。このとき、自由図形700と各既定図形710、720との間の対応する代表点は、それぞれ、7001と7102の組み合わせと、7002と7202の組み合わせであるという情報が生成されている。そして、図11のステップS340では、自由図形700の代表点7002の位置が、対応する既定図形720の代表点7202の位置に一致するように、自由図形700の位置を図15(c)の701の位置に平行移動させる。すなわち、自由図形の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、自由図形の代表点7002と既定図形の代表点7202との間の変位を加える。この結果、図15(c)のように、移動後の自由図形701の代表点の位置は7011と7012の位置になる。次に、ステップS350では、ステップS340で一致させた方の代表点7012の位置は固定して、もう一方の代表点7011の位置が、対応する既定図形の代表点7102の位置に一致するように、当該自由図形701を縦横独立に変倍(水平方向と、垂直方向とで異なる倍率での変倍)する。この際、水平方向の倍率には、代表点7011と7012の距離の水平方向成分(x方向の座標値の差分の絶対値)に対する、7102と7012の距離の水平方向成分の倍率を、水平方向の変倍率(βとする)として求める。同様に、各代表点の座標位置に基づいて、垂直方向の変倍率(γとする)を求める。自由図形701を構成する任意の点の座標(xi,yi)を、この変倍により(xi’,yi’)に変換する場合の座標値の計算法は、変倍率(前述の比)が水平方向成分がβで垂直方向成分がγであり、自由図形701の変倍時の基準点7012の座標をあらためて、(x2,y2)であるとすると、
xi’=x2+(xi−x2)・β
yi’=y2+(yi−y2)・γ
で得られる。変倍処理の結果の状態を図14(d)に示した。自由図形は、図形702のように縦横独立に変倍され、自由図形の代表点の位置7021,7022は、既定図形710,720の代表点の位置に一致する。このようにして、ステップS340〜S350では、注目する自由図形にグループ化された既定図形の数が2の場合に、グループ化した図形間での補正処理を行う。実施例2の場合には、自由図形の変倍率が縦方向(垂直方向)と横方向(水平方向)とで一般的には異なるので、自由図形に歪が生じるものの、実施例1のステップS240〜ステップS260の処理に比べて、計算量が少ないため、高速な処理が可能となる。
【0056】
(実施例3)
上述の実施例1及び2においては、自由図形の各代表点の近傍に複数の既定図形の代表点が存在する場合には、当該代表点間の距離の短いものを選んで、対応付けるとしていたが、本発明は、これに限るものではない。例えば、複数の既定図形の候補それぞれの方向軸の角度を求め、自由図形の代表点を結ぶ直線の角度に対して、より近い方向軸の角度を有する既定図形の代表点を選ぶように構成しても良い。
【0057】
(実施例4)
上述の実施例においては、自由図形の各代表点の近傍にグループ化対象として対応づけられるのは、既定図形の代表点であるとして説明してきたが、本発明はこれに限らない。すなわち、他の自由図形の代表点をグループ化対象に含めてもよい。すなわち、自由図形にも、他の自由図形のいずれかとグループ化されたか否かを示す状態情報を付与するものとし、ステップS908〜S909において、自由図形の各代表点の近傍に対応付ける代表点を、既定図形のみならず、他の自由図形の代表点をも含めて、対応付けを許すように構成しても良い。この場合には、他の自由図形とグループ化された自由図形データのそれぞれには、チェックをされたことを示す状態情報を付与し、グループ化済み状態であるように設定すればよい。また、図10のステップS200やS220、ならびに図11のステップS300やS310では、当該自由図形にグループ化されている既定図形と他の自由図形の両方も含めた数をチェックするように構成すればよいのは明らかである。
【0058】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、ラスター画像に含まれる図形をベクトル化(ベクトル変換)する図形処理装置、方法、プログラムに関する。
【背景技術】
【0002】
ラスター画像中に含まれている図形を認識して、電子データ化し、以降、コンピュータでの処理に供するための提案がなされている。
【0003】
特許文献1では、手書きのフローチャートの画像を、整然と配列された画像に変換することが記載されている。その際、ラスター画像データをベクトルデータに変換して、そのベクトルデータから円や長方形や菱形などの記号の形状認識を行い、認識された記号形状に適したフォーマットの記号データに変換している。
【0004】
また、特許文献2では、ラスター図形をベクトル図形へ変換する際に補正処理を行うことが記載され、特に、図形の分類結果に応じて該補正処理の処理内容と順序を変更することが記載されている。例えば、直線の図形の場合、ベクトル化処理を行った後に、近接線結合処理、直線補正処理、微小図形消去処理を行う。また、曲線の図形の場合、ベクトル化処理を行った後に、近接線結合処理、微小図形消去処理を行うことが記載されている。
【0005】
また、特許文献3では、スキャンで得たラスター画像を属性毎のブロックに分割し、ブロックごとにベクトル変換を行うことが記載されている。特に、ベクトル変換を行った結果、データ量が多くなってしまう領域に関しては、ベクトルデータではなく、当該領域の画像データを保存することが記載されている。
【0006】
なお、以下の本明細書では、円・長方形・菱形・三角形などの予め定められた形状の図形を既定図形と呼ぶこととし、ユーザが自由に作図した図形(線画)を自由図形と呼ぶこととする。例えば、マイクロソフト・オフィス(商標)では、「オートシェイプ」と呼ばれる予め決められた形状の図形(本発明の既定図形に相当)が用意されており、ユーザはこのオートシェイプを用いて作図をすることができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特登録3183690号公報
【特許文献2】特開平06−337929号公報
【特許文献3】特登録4185858号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
一方、一般的なビジネス文書などでは、既定図形や直線や自由図形を単独で記述するだけでなく、更に、ユーザが自由図形と既定図形とを組み合わせて新たな1つの図形として表現した合成図形を記述する場合もある。しかしながら、ユーザの文書作成が雑であった場合、自由図形と既定図形の位置が少し離れた状態の文書が作成され、その図形配置の紙文書が印刷されることになる。この印刷された紙文書をスキャンした場合、スキャンで得た画像内の各図形は離れているので別々のオブジェクトとして認識されることになる。すなわち、本来、1つの合成図形として扱わせたかったオブジェクトが、別々のオブジェクトに認識されてしまう。したがって、このようなオブジェクトを1つにしようとすると、スキャン操作を行ったユーザがそのオブジェクトを手作業で修正しなければならず、手間が掛かる。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の図形処理装置は、入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離手段と、前記分離手段で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第1の設定手段と、前記分離手段で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第2の設定手段と、前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化手段と、前記グループ化手段でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、スキャン画像から認識した既定図形と自由図形とが別々のオブジェクトとして近傍に存在する場合、各オブジェクトの基準(代表点等)の位置や形状を調整することにより、合成図形としてのオブジェクト化を自動的に行うことができる。したがって、ユーザの手間を減らすことができる。
【0011】
また、本発明では、既定図形と自由図形との間の距離を調整する際、自由図形の位置や形状を優先して調整することで、既定図形の歪みを減らすことができるので、ユーザに違和感の少ない、より自然な調整や補正が実現できる。
【図面の簡単な説明】
【0012】
【図1】実施形態1の機能構成を示すブロック図
【図2】ハードウェア構成例を示すブロック図
【図3】既定図形と自由図形が混在した入力図形の一例
【図4】既定図形と自由図形が混在した入力図形のグループ化と補正例
【図5】既定図形の補正用特徴情報の例
【図6】線状の開図形の例と、その補正用特徴情報
【図7】その他の図形の例と、その補正用特徴情報
【図8】図形の種類に対する代表点設定方法と補正方法を示すテーブル
【図9】実施例1における処理を示すフローチャート
【図10】実施例1における、グループ化した図形間での補正処理の詳細を示すフローチャート
【図11】実施例2における、グループ化した図形間での補正処理の詳細を示すフローチャート
【図12】自由図形に対してグループ化された既定図形が3つの場合の補正例
【図13】自由図形に対してグループ化された既定図形が4つの場合の補正例
【図14】実施例1における、グループ化された既定図形が2つの場合の補正例
【図15】実施例2における、グループ化された既定図形が2つの場合の補正例
【発明を実施するための形態】
【0013】
(実施例1)
図1は、本発明の実施形態1に係る図形処理装置(画像処理装置)の構成を示す機能ブロック図である。図1において、原稿読取り部11は、スキャナやカメラ等により、線画を含む原稿を読取って文書画像を得る。線画領域抽出部12は、原稿読取り部11で得た文書画像から線画を含む領域を線画領域として抽出する。ベクトル変換部2では、線画領域抽出部12で抽出された線画領域に含まれる線画図形をベクトル化してベクトルデータを得る。既定図形同定部3は、ベクトル変換部2で得られた図形のベクトルデータに基づいて、当該線画領域に含まれる既定図形を同定する。既定図形・自由図形分離部4は、線画領域に基づいて得たベクトルデータから、既定図形同定部3で既定図形として同定された図形成分を除くことにより得られる残りの図形成分を自由図形とすることで、前記線画領域に含まれる既定図形と自由図形を分離する。
【0014】
補正用特徴情報設定部5は、既定図形・自由図形分離部4で分離された既定図形及び自由図形のそれぞれに属する各図形に、補正用特徴情報を設定する。既定図形・自由図形間グループ化部6は、既定図形同定部3と既定図形・自由図形分離部4とによって分離された既定図形及び自由図形のそれぞれに属する各図形間で、予め定めた規則に基づき、グループとしてまとめて扱うべき図形群を定める。グループ化済図形補正部7は、既定図形・自由図形間グループ化部6で定められた、グループとしてまとめて扱うべき図形群のそれぞれにおいて、同一グループにグループ化された図形群内の各図形を予め定めた方法で補正する。出力データ生成部8は、ベクトル変換部2でベクトル化され、グループ化済図形補正部7で補正された、前記線画中の図形データを表す情報を、所定の出力形式(例えばSVG(Scalable Vector Graphics)形式)のデータに変換することにより出力データを生成する。データ出力部9は、出力データ生成部8で生成された、所定の出力形式の出力データを出力する。
【0015】
図2は、図1に示した図形処理装置を実現するためのハードウェア構成の一実施形態を示すブロック図である。図2において、イメージスキャナ111はI/Oインタフェース112を介してバス50に接続されており、111と112により図1の原稿読取り部11が構成される。また、ROM30に格納されるコンピュータプログラムをCPU20で実行することにより、該CPU20は、図1の線画領域抽出部12、ベクトル変換部2、既定図形同定部3、既定図形・自由図形分離部4、補正用特徴情報設定部5、既定図形・自由図形間グループ化部6、グループ化済図形補正部7、出力データ生成部8として機能する。RAM40は、ワーキングメモリや、画像記憶メモリとして利用される。また、ハードディスク62は、I/Oインタフェース61を介してバス50に接続されており、外部記憶装置60を構成している。プリンタ82は、I/Oインタフェース81を介してバス50に接続されており、データ印字出力装置80を構成している。また、70は、ネットワークI/Fである。外部記憶装置60、データ印字出力装置80、ネットワークI/F70は、図1でいうデータ出力部9のデータ出力先となるものである。また、本発明の処理対象となる画像は、上述したように、原稿読み取り部(スキャナ)11を介して入力される画像であってもよいし、外部記憶装置60に格納されている画像データや、外部装置からネットワークI/Fを介して受信した画像を処理対象にするようにしてもよい。すなわち、入力される画像は、原稿読み取り部(スキャナ)11で読み取った画像に限るものではなく、その他の手段を介して入力された画像であってもよい。
【0016】
図3(a)は既定図形と自由図形が混在した入力図形の一例である。図3(b)は図3(a)で示した入力図形中に含まれる既定図形の例(二等辺三角形)であり、図3(c)は図3(a)で示した入力図形中に含まれる自由図形の一例を示している。以下、図3及び図4を用いて、図1の各処理部で実行される処理の概要を説明する。
【0017】
処理対象の画像(例えば図3(a)の入力図形)は、線画領域抽出部12において、原稿画像の中から抽出された線画領域の画像である。なお、線画領域抽出部12は、公知の領域分割技術(例えば特許文献3記載の領域分割技術)を用いることにより原稿画像を属性毎の領域に分割し、分割された領域の中から線画(図形)の属性を有する領域を抽出することにより実現できる。次に、ベクトル変換部2で、図3(a)のような入力図形に対して、公知のベクトル変換技術を用いてベクトルデータに変換する。図4(a)は、図3(a)に示した入力図形をベクトル変換部2で変換し、当該変換されたベクトルデータを可視化した状態で表現したものである。
【0018】
図4(b)を説明する。図4(a)に示したベクトルデータに対して、既定図形同定部3にて図形認識を行うことにより、既定図形410(この場合は、二等辺三角形)を同定する。例えば、図4(a)のベクトルデータから抽出した特徴データ(ベクトルデータの変化点など)を予め定義された複数の既定図形それぞれの特徴データとマッチングして、最も一致する既定図形を特定する。そして、既定図形・自由図形分離部4では、図4(a)に示したベクトルデータから、既定図形同定部3で同定された既定図形410を除いた残りの連結成分(残りのベクトルデータ)を自由図形成分420として同定する。このようにして、図4(a)に示したベクトルデータを分離すると、図4(b)のように既定図形成分410と自由図形成分420とに分離される。
【0019】
次に、図4(b)のように既定図形成分410と自由図形成分420とに分離したベクトルデータに対して、補正用特徴情報設定部5において、補正用特徴情報を設定した結果を図4(c)に示す。補正用特徴情報については、後ほど詳述する。図4(c)は、黒い丸印で、既定図形411と自由図形421それぞれにおける代表点(補正用特徴情報の一種で、近隣図形間の空隙を埋めて接続させる補正をする際の接続候補点である)を加えて表示したものである。
【0020】
図4(c)に示した補正用特徴情報付の既定図形データと自由図形データとに対して、既定図形・自由図形間グループ化部6でグループ化し、更に当該グループ化された既定図形と自由図形の図形群に対して、グループ化済図形補正部7で補正した結果の例を図4(d)に示す。グループ化済図形補正部7では、それぞれの図形間で予め定めた距離内にある代表点同士が重なるように、自由図形421に対して平行移動や拡大縮小などの補正を行い、自由図形422となるようにする。出力データ生成部8では、図4(d)に示した補正済みの図形群のデータを、所定の出力形式(例えばSVG)のデータに変換する。この変換されたデータを描画した場合、図4(e)のように描画されることになる。尚、生成された所定の出力形式のデータは、データ出力部9を介して外部部記憶装置60やネットワークI/F70等に出力される。
【0021】
尚、既定図形同定部3は、例えば、前述の特許文献1に記載の図形認識手段として開示される手法などで実現可能である。即ち、図形画像データと判断された画像をベクトルデータに変換し、当該変換されたベクトルデータのうち閉形状を構成するベクトルに着目して、周回方向の変化点等に基づき予め定める複数のパラメータで定義される既定図形のいずれに一致するか判定する。また、これに限らず、既定図形同定部3はその他の公知の方法で構成しても良いのはもちろんである。例えば、図形認識をベクトルデータで行なわず、ビットマップ画像上でパターン認識するような方法でもよい。このような場合には、まず、ビットマップ画像上でパターン認識することにより既定図形と認識されたビットマップパターンと、それ以外の部分を分離する。そして、既定図形と認識されたビットマップパターンに対しては、当該ビットマップパターンに合致するように、既定図形で予め定義されているパラメータを特定することによって既定図形のベクトルデータ(既定図形データ)に変換する。また、それ以外の部分のビットマップパターンに対しては、当該ビットマップパターンに含まれる図形の輪郭を抽出してベクトル化処理することにより、自由図形のベクトルデータ(自由図形データ)を生成する。
【0022】
図5は既定図形とそれら既定図形の補正用特徴情報の例を示している。同図において、(a),(b),(c),(g),(h),(i)は既定図形の例である。即ち、(a)二等辺三角形、(b)長方形(正方形を含む)、(c)菱形、(g)楕円、(h)正五角形、(i)正六角形、である。(d),(e),(f),(j),(k),(l)は、それぞれ、既定図形(a),(b),(c),(g),(h),(i)に対応する補正用特徴情報を示している。既定図形の種類(形状)に応じて、補正用特徴情報が設定される相対的な位置や数は予め定められているものとする。補正用特徴情報としては、代表点、基準点、方向軸の三種類がある。代表点とは、近隣図形間の空隙を埋めて接続させる補正をする際の接続候補点の働きがある。基準点とは、当該図形全体の位置を平行移動させたり、回転させたりするときの基準、即ち、当該図形の中心位置である。方向軸とは、基準点を中心に図形を回転させる際の回転角を定めるときの基準方向である。同図において、代表点は小さな黒丸で、基準点は小さな白丸で、方向軸は点線で示されている。また、補助的な意味合いで、各図形の外接矩形を破線で示してある。
【0023】
図6〜図7は、既定図形以外の図形(即ち、自由図形)とそれら自由図形の補正用特徴情報の例を示している。図6(a)および図6(c)は、未接続の線の端点(開放端)を2つ有する開図形で、且つ当該2つの開放端が当該図形の外接矩形上にある自由図形の例である(本実施形態では、このような自由図形を線状開図形と呼ぶこととする)。図7(a)は、2つの開放端を有する開図形であるが、2つの開放端が外接矩形上にない自由図形である(本実施形態では、このような図形を一般開図形と呼ぶこととする)。図7(c)は、線の端点(開放端)が存在せず、図形全体が一つの閉ループを構成している閉図形の例である。尚、本実施形態では、図7(a)のような一般開図形、ならびに開放端が1つだけである自由図形や開放端が3つ以上ある自由図形に対して、便宜上、図7(d)のような閉図形の場合と同様に扱うものとする。図6〜図7においても、それらの補正用特徴情報として、代表点は小さな黒丸で、基準点は小さな白丸で、方向軸は点線で示されている。また、補助的な意味合いで、各図形の外接矩形を破線で示してある。
【0024】
図6(a)や図6(c)の自由図形は、2つの開放端を有し且つ外接矩形上に当該2つの開放端が存在するので、線状開図形であると判断され、図6(b)および図6(d)に示されるように、各図形の2つの開放端を代表点として設定する。このとき、当該設定された2つの代表点を結ぶ直線の方向を方向軸とし、更に、当該2つの代表点の中点を基準点とする。このようにして設定された代表点(および方向軸、基準点)が、補正用特徴情報として扱われることになる。
【0025】
図7(a)や図7(c)の自由図形は、線状開図形(図6)でない図形であると判断され、図7(b)および図7(d)に示されるように、当該自由図形の外接矩形の各辺における接点を代表点として設定する。また、当該外接矩形の対辺に設定された代表点同士を結ぶ2つの直線の交点を、基準点として設定する。なお、外接矩形の一辺に複数の接点があった場合は、所定の基準に基づいて選択した点を代表点とする。例えば、所定の基準として、当該複数の接点の中に開放端があれば当該開放端の接点を優先し、開放端が無ければ当該外接矩形の辺の中点により近い接点を次に優先する、というようにして代表点を設定する。なお、線状開図形以外の自由図形(図7)に対して代表点を設定する基準としては、上記例に限るものではなく、その他の基準を用いても構わない。
【0026】
図8は、図6〜図7で説明した自由図形の種類に応じて、どのように代表点を設定するかと、後述するステップS910での補正方法とを記載したテーブルである。
【0027】
次に、図9のフローチャートを用いて本発明の実施例1の処理の流れを説明する。ステップS901において、イメージスキャナ11やカメラなどから文書画像が入力されると、図形処理装置は、当該入力された文書画像データをRAM40上のワークメモリ(第1のメモリ領域)に保持する。線画領域抽出部12は、文書画像データを属性毎の領域に分割し(例えば特許文献3等に開示される領域分割方法を利用)、当該分割された領域のうち線図形属性の画像(線画領域)を抽出し、RAM40のメモリ(第二のメモリ領域)に保持させる。
【0028】
ステップS902において、ベクトル変換部2は、ステップS901で抽出した線画領域の画像データに対して、公知のベクトル化処理を行ってベクトルデータに変換する。
【0029】
ステップS903において、既定図形同定部3は、前記変換されたベクトルデータの特徴量を、複数の既定図形の特徴データと比較して図形認識を行うことにより、前記変換されたベクトルデータに含まれる既定図形を特定する。更に、既定図形・自由図形分離部4は、前記変換された図形のベクトルデータから、前記特定された既定図形を除いた残りのベクトルデータを自由図形として分離する。このようにして分離された既定図形データと自由図形データを、RAM40のメモリ(第三のメモリ領域)に保持させる。
【0030】
ステップS904において、補正用特徴情報設定部5は、S903で特定された各既定図形データに対して、図5を用いて説明したように補正用特徴情報を設定する。この結果、各既定図形に対して、特定された既定図形の種類を示す既定図形番号(予め登録された既定図形の種類毎に異なる番号が対応付けられている)と、当該既定図形領域の原稿内での位置・サイズ(領域の幅と高さ)と、当該既定図形に対して設定された各代表点の位置と、基準点の位置と、方向軸の方向、などの情報が保持されることになる。なお、代表点の位置や基準点の位置は、当該特定された既定図形の外接矩形の左上の位置を原点としたときの相対位置で表わすものとする。
【0031】
ステップS905に進み、補正用特徴情報設定部5は、S903で分離された自由図形データに対して、前述の図6〜図8を用いて説明したように補正用特徴情報を設定する。この結果、各自由図形に対して、線状開図形かそれ以外の図形かを示す識別番号と、当該分離された自由図形領域の位置・サイズと、当該自由図形に対して設定された代表点の位置と、基準点の位置と、方向軸の方向、などの情報が保持されることになる。
【0032】
なお、ステップS904及びステップS905で、補正用特徴情報が設定された既定図形データと自由図形データは、RAM40のメモリ(第四のメモリ領域)に保持させる。
【0033】
ステップS906において、既定図形・自由図形間グループ化部6は、S905で補正用特徴情報が設定された自由図形データをリストアップし、その数とそれぞれのデータの格納される位置を確定する。尚、リストアップした自由データのそれぞれには、以降のステップS908〜S910の処理が実行済みか否かを示す状態情報を付与し、全ての自由図形の状態情報について未チェック状態であるように初期化する。また、各既定図形データについても、後述のステップS909でいずれかの自由図形とグループ化済みか否かを示す状態情報を付与し、全ての既定図形の状態情報について未グループ化状態であるように初期化される。
【0034】
ステップS907において、既定図形・自由図形間グループ化部6は、ステップS906でリストアップした自由図形の状態情報に基づき、以降のステップS908〜910の処理が実行されていない自由図形を選択し、ステップS908に進む。このとき、選択された自由図形の状態情報を、未チェック状態からチェック済み状態に変更しておく。
【0035】
ステップS908において、既定図形・自由図形間グループ化部6は、ステップS907で選択された自由図形の各代表点の位置から、予め定めた距離の範囲内に、既定図形の代表点のいずれかが存在するか否かを判定する。この際、既定図形の状態情報が未グループ化状態にある既定図形の代表点のみに着目して判定すれば、より効率よく判定を行える。なお、自由図形の代表点の1つに対して、複数の異なる既定図形の代表点が前記予め定めた距離範囲内に存在する場合は、当該自由図形の代表点との距離がより短い代表点を有する既定図形をグループ化対象として判定する。また、当該自由図形の代表点に対して、前記予め定めた距離範囲内に既定図形の代表点のいずれも存在しない場合には、当該自由図形の代表点にはグループ化対象となる既定図形は存在しないと判定する。ステップS908で、当該選択された自由図形に対して、グループ化対象の既定図形が存在した場合はS909に進み、グループ化対象の既定図形が存在しなかった場合はS911に進む。
【0036】
ステップS909において、既定図形・自由図形間グループ化部6は、ステップS908でグループ化対象として判定された自由図形の代表点と既定図形の代表点とをグループ化する。具体的には、自由図形のどの代表点に、どの既定図形のどの代表点が対応づくのかを示す情報を生成して、RAM40のメモリ(第五のメモリ領域)に保持する。また、当該グループ化対象となった既定図形の状態情報を、他の自由図形とグループ化済みになったことを示すグループ化済み状態に変更する。
【0037】
ステップS910において、グループ化済図形補正部7は、ステップS909でグループ化した自由図形の補正処理を行なう。補正処理の詳細については後述する。
【0038】
ステップS911において、既定図形・自由図形間グループ化部6は、リストアップした全ての自由図形の状態情報がチェック済みか判定し、全てチェック済みの場合はステップS912に進み、そうでない場合には、ステップS907に戻って次の自由図形を選択し処理を繰り返す。
【0039】
ステップS912において、出力データ生成部8は、ステップS907〜S911の処理を繰り返し実行した後の既定図形及び自由図形のデータに対して、所定のデータ形式に変換して出力する。例えば、公知のSVG(Scalable Vector Graphics)データ形式にて表現したベクトルデータに変換して出力する。
【0040】
次に、図10のフローチャートを用いて、図9のステップS910の補正処理の詳細について説明する。ステップS200において、グループ化済図形補正部7は、図9のステップS909で当該自由図形とグループ化された既定図形の数が1つか否か判定する。そして、既定図形の数が1つの場合にはステップS210に進み、そうでない場合にはステップS220に進む。
【0041】
ステップS220において、グループ化済図形補正部7は、当該自由図形とグループ化された既定図形の数が3つ以上か否かを判定する。その結果、グループ化された既定図形の数が3つ以上の場合にはステップS230に進み、そうではない場合(すなわちグループ化された既定図形が2つの場合)にはステップS240に進む。なお、当該選択された自由図形が図6のような線状開図形の場合は、代表点が2つであるので、ステップS210またはステップS240に進むことになる。また、当該選択された自由図形が図7のような線状開図形以外の図形である場合は、代表点が4つあるので、ステップS210、S230、S240のいずれかに進むことになる。すなわち、当該自由図形に対してグループ化された既定図形の数に応じて、補正の方法が切り替えられることになる。
【0042】
ステップS210は、当該自由図形にグループ化されている既定図形の数が1の場合に、グループ化済図形補正部7が実行する処理ルーチンである。ここでは、当該グループ化された自由図形の代表点の位置が、当該グループ化された既定図形の代表点の位置に一致するように、当該自由図形を移動させる。
【0043】
図4の例を用いてステップS210の処理の詳細を説明する。自由図形と既定図形を含む線画(図4(a))は、図4(b)のように既定図形410と自由図形420とに分離され、図4(c)のように黒丸で示す位置に補正用特徴情報として代表点が設定される。自由図形部分421に設定された代表点の近傍に、既定図形411に設定された代表点があるので、S909で当該自由図形と既定図形はグループ化対象とされる。そこで、ステップS210では、この自由図形421の代表点の位置が、対応する既定図形411の代表点の位置に重なるように、それらの位置間の変位分を自由図形421の位置に対して加える。すなわち、自由図形421の図形領域の位置に、前記代表点間の位置の変位を加えることにより、自由図形421の位置を移動させる。このようにして、当該選択された自由図形にグループ化された既定図形の数が1つの場合のステップS210での補正処理を実行する。
【0044】
次に、ステップS230の処理の詳細を説明する。ステップS230は、当該自由図形にグループ化されている既定図形の数が3以上の場合に、グループ化済図形補正部7が実行する処理ルーチンである。ここでは、当該グループ化された自由図形の基準点が、当該グループ化された既定図形の代表点を結ぶ多角形の重心に一致するように、当該自由図形の位置を補正する。
【0045】
図12と図13を例として用いてステップS230の処理の詳細を説明する。本実施例では、自由図形の代表点は最多でも4であるので、一つの自由図形に対してグループ化される既定図形は最多でも4である。図12は、1つの自由図形と3つの既定図形を含んだ線画の例である。また、図13は、1つの自由図形と4つの既定図形を含んだ線画の例である。両図中での黒丸と白丸は、それぞれ、図9のステップS904と前記ステップS905で設定された補正用特徴情報であり、黒丸は代表点、白丸は基準点である。
【0046】
図12(a)の入力画像に対しては、図12(b)のように、自由図形500と、3つの既定図形510,520,530が含まれ、これらの図形に対して補正用特徴情報が設定される。その結果、既定図形510、520、530に対して、それぞれ二つの代表点が5101と5102、5201と5202、5301と5302として設定される。また、自由図形500に対して、閉図形であるため4つの代表点が5001、5002、5003、5004として設定され、更に、基準点が5005として設定される。そして、図9のステップS909において、自由図形500の代表点5001、5002、5003それぞれに対して、既定図形の代表点5102、5202、5302が近傍にあり、グループ化されたものとする。このとき、自由図形500と各既定図形510、520、530との間の対応する代表点は、それぞれ、5001と5102、5002と5202、5003と5302の組み合わせであるという情報が生成されている。そこで、図10のステップS230では、この自由図形500の基準点(5005)が、グループ化された3つの既定図形の代表点5102、5202、5302で形成される三角形の基準位置(本実施形態では図12(c)の5006のように三角形の重心位置とする)と重なるように(図12(d)の5015)、自由図形500の位置を移動させる(図12(d)の501)。すなわち、自由図形500の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、前記自由図形の基準点の位置と前記3つの代表点で形成される三角形の基準位置との間の変位を加える。このようにして、ステップS230では、注目する自由図形にグループ化された既定図形の数が3の場合に、当該グループ化した図形間での補正処理を終える。尚、三角形の基準位置(重心位置)は、三角形の各頂点の座標値の平均値として求めることが可能である。三角形の各頂点P1、P2、P3の座標を、それぞれ(x1,y1)、(x2,y2)、(x3,y3)とし、三角形の重心位置PGの座標(xG,yG)は、
xG=(x1+x2+x3)/3
yG=(y1+y2+y3)/3
により、求めることができる。
【0047】
図13(a)の入力画像に対しては、図13(b)のように、自由図形600と、4つの既定図形610、620、630、640が含まれ、これらの図形に対して補正用特徴情報が設定される。その結果、既定図形610、620、630、640に対して、2つの代表点がそれぞれ6101と6102、6201と6202、6301と6302、6401と6402として設定される。また、自由図形600に対して、4つの代表点が6001、6002、6003、6004として設定され、更に、基準点が6005として設定される。自由図形600の代表点6001、6002、6003、6004それぞれに対して、既定図形の代表点6102、6202、6302、6402が近傍にあり、グループ化されたものとする。このとき、自由図形600と各既定図形610、620、630、640との間の対応する代表点は、それぞれ、6001と6102、6002と6202、6003と6302、6004と6402の組み合わせであるという情報が生成されている。そこで、図10のステップS230では、この自由図形部600の基準点(6005)が、グループ化された4つの既定図形610、620、630、640の代表点6102、6202、6302、6402で形成される四角形の基準位置(図13(c)の6006)と重なるように、自由図形600の位置を移動させる(図13(d)の601)。すなわち、自由図形600の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、前記自由図形の基準点の位置と前記4つの代表点で形成される四角形の基準位置との間の変位を加える。このようにして、ステップS230では、注目する自由図形にグループ化された既定図形の数が4の場合に、当該グループ化した図形間での補正処理を行う。なお、本実施形態において、四角形の基準位置は、四角形の各頂点の座標値の平均値として求めるものとする。
【0048】
次に、ステップS240〜S260の処理の詳細を説明する。ステップS240〜S260は、自由図形にグループ化されている既定図形の数が2の場合に、グループ化済図形補正部7が実行する処理ルーチンである。当該グループ化された自由図形の2つの代表点の位置が、当該グループ化された既定図形の2つの代表点の位置に一致するように、当該自由図形を補正する。本実施例1では、当該自由図形の位置を移動させた後、当該自由図形の2つの代表点を繋ぐ線の方向と当該既定図形の代表点間を繋ぐ線の方向とが一致するように該自由図形を回転させ、その後、当該自由図形のサイズを拡大縮小させることにより、自由図形を補正するものとする。
【0049】
図14の例を用いてステップS240〜S260の処理の詳細を説明する。自由図形と既定図形を含む線画(図14(a))は、図9のS901〜S903の処理により、図14(b)のように既定図形810,820と、自由図形800とに分離される。既定図形810,820に対しては、S904において、補正用特徴情報として、それぞれ二つの代表点が設定される(8101と8102、及び8201と8202)。また、自由図形800に対しては、線状開図形であると判断されるので、S905において、2つの代表点8001と8002が設定され、それらの中点が自由図形800の基準点8003として設定される。更に、ステップS909において、自由図形800の代表点8001と8002のそれぞれに対して、既定図形810の代表点8102と、既定図形820の代表点8202とが近傍にあるので、グループ化対象とされる。このとき、自由図形800と各既定図形810、820との間の対応する代表点は、それぞれ、8001と8102の組み合わせと、8002と8202の組み合わせであるという情報が生成されている。そして、図10のステップS240では、まず、図14(c)に示すように、グループ化された既定図形の代表点8102と8202を結ぶ線の中点8004を既定図形間の基準位置とする。そして、自由図形800の基準点8003の位置が、既定図形間の基準位置8004と重なるように、自由図形を平行移動させる。すなわち、自由図形の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、前記自由図形の基準点の位置8003と前記2つの代表点間の中点の位置8004との間の変位を加える。この結果、図14(d)のように、自由図形は801の位置に移動されるので、当該自由図形の基準点の位置は8013に移動され、且つ代表点の位置も8011,8012に移動される。次に、ステップS250では、自由図形801の代表点8011と8012を結ぶ直線の方向が、二つの既定図形の代表点8102と8202を繋ぐ直線の方向と一致するように、自由図形801を基準点8013を中心に回転する。尚、回転中心8013の座標が(xc,yc)で、代表点8012の座標が(x1,y1)で、代表点8011の座標が(x2,y2)だとすると、回転角をθで表す場合、
x1’=x1−xc; y1’=y1−yc;
x2’=x2−xc; y2’=y2−yc;
とおくと、
sinθ=(x1’・y2’−x2’・y1’)/(sqrt(x1’2+y1’2)+sqrt(x2’2+y2’2))
cosθ=(x1’・x2’+y1’・y2’)/(sqrt(x1’2+y1’2)+sqrt(x2’2+y2’2))
となり、
自由図形801を構成する任意の点の座標(xi,yi)を(xi’,yi’)に変換することで上述の回転が実現できる。ただし、
xi’=xc+(xi−xc)・cosθ−(yi−yc)・sinθ
yi’=yc+(xi−xc)・sinθ+(yi−yc)・cosθ
である。
【0050】
回転処理の結果の状態を図14(e)に示した。図14(e)では、回転後の自由図形を802とし、回転後の自由図形の代表点を8021と8022とし、また、基準点を8023で表記している。
【0051】
その後、ステップS260では、回転後の自由図形802の基準点8023の位置を変えずに、自由図形802を変倍する。すなわち、自由図形802の代表点8021と代表点8022の位置が、それぞれ対応する既定図形810の代表点8102と既定図形820の代表点8202の位置に一致するように、回転後の自由図形802の変倍率を求めて変倍する。この際の変倍率には、8021と8022の間の距離に対する、8102と8202の間の距離の倍率(αとする)を用いると良い。自由図形802を構成する任意の点の座標(xi,yi)を、この変倍により(xi’,yi’)に変換する場合の座標値の計算法は、変倍率(前述の比)がαであり、自由図形802の基準点8023の座標を(xc,yc)であるとすると、
xi’=xc+(xi−xc)・α
yi’=yc+(yi−yc)・α
で得られる。変倍処理の結果の状態を図14(f)に示す。自由図形は、図形803のように変倍され、自由図形の代表点の位置8031,8032は、既定図形810,820の代表点の位置に一致する。このようにして、ステップS240〜S260では、注目する自由図形にグループ化された既定図形の数が2の場合に、グループ化した図形間での補正処理を行う。
【0052】
以上、図10のフローチャートを用いて、図9のステップS910で実行される図形間での補正処理の詳細を説明した。
【0053】
(実施例2)
図9のステップS910で実行される補正処理の別実施形態について説明する。以下、図11のフローチャートと図15を用いて、グループ化された図形間での補正処理の実施例2を詳述する。
【0054】
図11に示すフローチャートにおいて、ステップS300〜ステップS330の処理は、図10のフローチャートのステップS200〜S230の処理と全く同様であるので、説明を省略する。ここでは、実施例1の処理の異なるステップS340とS350の部分の処理を説明してゆく。即ち、注目する自由図形にグループ化された既定図形の数が2の時の処理について説明する。本実施例2では、自由図形の片方の代表点の位置を、対応する既定図形の代表点の位置に一致するように移動させた後、自由図形のもう一方の代表点の位置が、対応するもう一方の既定図形の代表点の位置に一致するように、当該自由図形を縦横独立に変倍する。
【0055】
図15の例を用いてステップS300〜ステップS330の処理の詳細を説明する。自由図形と既定図形を含む線画(図15(a))は、図9のS901〜S903の処理により、図15(b)のように既定図形710,720と、自由図形700とに分離される。既定図形710,720に対しては、S904において、補正用特徴情報として、それぞれ二つの代表点が設定される(7101と7102、及び7201と7202)。また、自由図形700に対しては、線状開図形であると判断されるので、S905において、2つの代表点7001と7002とが設定される。更に、ステップS909において、自由図形700の代表点7001と7002のそれぞれに対して、既定図形710の代表点7102と、既定図形720の代表点7202とが近傍にあるので、グループ化対象とされる。このとき、自由図形700と各既定図形710、720との間の対応する代表点は、それぞれ、7001と7102の組み合わせと、7002と7202の組み合わせであるという情報が生成されている。そして、図11のステップS340では、自由図形700の代表点7002の位置が、対応する既定図形720の代表点7202の位置に一致するように、自由図形700の位置を図15(c)の701の位置に平行移動させる。すなわち、自由図形の位置情報(画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報)に、自由図形の代表点7002と既定図形の代表点7202との間の変位を加える。この結果、図15(c)のように、移動後の自由図形701の代表点の位置は7011と7012の位置になる。次に、ステップS350では、ステップS340で一致させた方の代表点7012の位置は固定して、もう一方の代表点7011の位置が、対応する既定図形の代表点7102の位置に一致するように、当該自由図形701を縦横独立に変倍(水平方向と、垂直方向とで異なる倍率での変倍)する。この際、水平方向の倍率には、代表点7011と7012の距離の水平方向成分(x方向の座標値の差分の絶対値)に対する、7102と7012の距離の水平方向成分の倍率を、水平方向の変倍率(βとする)として求める。同様に、各代表点の座標位置に基づいて、垂直方向の変倍率(γとする)を求める。自由図形701を構成する任意の点の座標(xi,yi)を、この変倍により(xi’,yi’)に変換する場合の座標値の計算法は、変倍率(前述の比)が水平方向成分がβで垂直方向成分がγであり、自由図形701の変倍時の基準点7012の座標をあらためて、(x2,y2)であるとすると、
xi’=x2+(xi−x2)・β
yi’=y2+(yi−y2)・γ
で得られる。変倍処理の結果の状態を図14(d)に示した。自由図形は、図形702のように縦横独立に変倍され、自由図形の代表点の位置7021,7022は、既定図形710,720の代表点の位置に一致する。このようにして、ステップS340〜S350では、注目する自由図形にグループ化された既定図形の数が2の場合に、グループ化した図形間での補正処理を行う。実施例2の場合には、自由図形の変倍率が縦方向(垂直方向)と横方向(水平方向)とで一般的には異なるので、自由図形に歪が生じるものの、実施例1のステップS240〜ステップS260の処理に比べて、計算量が少ないため、高速な処理が可能となる。
【0056】
(実施例3)
上述の実施例1及び2においては、自由図形の各代表点の近傍に複数の既定図形の代表点が存在する場合には、当該代表点間の距離の短いものを選んで、対応付けるとしていたが、本発明は、これに限るものではない。例えば、複数の既定図形の候補それぞれの方向軸の角度を求め、自由図形の代表点を結ぶ直線の角度に対して、より近い方向軸の角度を有する既定図形の代表点を選ぶように構成しても良い。
【0057】
(実施例4)
上述の実施例においては、自由図形の各代表点の近傍にグループ化対象として対応づけられるのは、既定図形の代表点であるとして説明してきたが、本発明はこれに限らない。すなわち、他の自由図形の代表点をグループ化対象に含めてもよい。すなわち、自由図形にも、他の自由図形のいずれかとグループ化されたか否かを示す状態情報を付与するものとし、ステップS908〜S909において、自由図形の各代表点の近傍に対応付ける代表点を、既定図形のみならず、他の自由図形の代表点をも含めて、対応付けを許すように構成しても良い。この場合には、他の自由図形とグループ化された自由図形データのそれぞれには、チェックをされたことを示す状態情報を付与し、グループ化済み状態であるように設定すればよい。また、図10のステップS200やS220、ならびに図11のステップS300やS310では、当該自由図形にグループ化されている既定図形と他の自由図形の両方も含めた数をチェックするように構成すればよいのは明らかである。
【0058】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離手段と、
前記分離手段で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第1の設定手段と、
前記分離手段で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第2の設定手段と、
前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化手段と、
前記グループ化手段でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正手段と、
を有することを特徴とする図形処理装置。
【請求項2】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数に応じて、補正の方法を切り替えることを特徴とする請求項1に記載の図形処理装置。
【請求項3】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が1つの場合、当該グループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とが一致するように、当該自由図形を平行移動させることにより補正を行うことを特徴とする請求項2に記載の図形処理装置。
【請求項4】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が3つ以上の場合、当該自由図形に対して設定される基準点の位置が、前記グループ化された既定図形の代表点で構成される多角形の基準位置に一致するように、当該自由図形を平行移動させることにより補正を行うことを特徴とする請求項2または3のいずれか1項に記載の図形処理装置。
【請求項5】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が2つの場合、当該グループ化された自由図形の2つの代表点の位置と当該グループ化された既定図形の2つの代表点の位置とが一致するように、当該自由図形に対して移動処理と回転処理と変倍処理とを実行することにより補正を行うことを特徴とする請求項2乃至4のいずれか1項に記載の図形処理装置。
【請求項6】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が2つの場合、当該グループ化された自由図形の2つの代表点の位置と当該グループ化された既定図形の2つの代表点の位置とが一致するように、当該自由図形に対して移動処理と縦横独立の変倍処理とを実行することにより補正を行うことを特徴とする請求項2乃至4のいずれか1項に記載の図形処理装置。
【請求項7】
前記第2の設定手段は、前記自由図形が2つの開放端を有し且つ該2つの開放端が当該自由図形の外接矩形上にある場合、当該2つの開放端を前記自由図形の代表点として設定することを特徴とする請求項1乃至6のいずれか1項に記載の図形処理装置。
【請求項8】
前記第2の設定手段は、前記自由図形が2つの開放端を有し且つ該2つの開放端が当該自由図形の外接矩形上にある図形とは異なる場合、前記自由図形の外接矩形の各辺の接点に前記自由図形の代表点を設定することを特徴とする請求項7に記載の図形処理装置。
【請求項9】
コンピュータを、請求項1乃至8のいずれかに記載の図形処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項10】
分離手段が、入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離工程と、
第1の設定手段が、前記分離工程で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第1の設定工程と、
第2の設定手段が、前記分離工程で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第2の設定工程と、
グループ化手段が、前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化工程と、
図形補正手段が、前記グループ化工程でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正工程と、
を有することを特徴とする図形処理方法。
【請求項1】
入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離手段と、
前記分離手段で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第1の設定手段と、
前記分離手段で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第2の設定手段と、
前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化手段と、
前記グループ化手段でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正手段と、
を有することを特徴とする図形処理装置。
【請求項2】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数に応じて、補正の方法を切り替えることを特徴とする請求項1に記載の図形処理装置。
【請求項3】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が1つの場合、当該グループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とが一致するように、当該自由図形を平行移動させることにより補正を行うことを特徴とする請求項2に記載の図形処理装置。
【請求項4】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が3つ以上の場合、当該自由図形に対して設定される基準点の位置が、前記グループ化された既定図形の代表点で構成される多角形の基準位置に一致するように、当該自由図形を平行移動させることにより補正を行うことを特徴とする請求項2または3のいずれか1項に記載の図形処理装置。
【請求項5】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が2つの場合、当該グループ化された自由図形の2つの代表点の位置と当該グループ化された既定図形の2つの代表点の位置とが一致するように、当該自由図形に対して移動処理と回転処理と変倍処理とを実行することにより補正を行うことを特徴とする請求項2乃至4のいずれか1項に記載の図形処理装置。
【請求項6】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が2つの場合、当該グループ化された自由図形の2つの代表点の位置と当該グループ化された既定図形の2つの代表点の位置とが一致するように、当該自由図形に対して移動処理と縦横独立の変倍処理とを実行することにより補正を行うことを特徴とする請求項2乃至4のいずれか1項に記載の図形処理装置。
【請求項7】
前記第2の設定手段は、前記自由図形が2つの開放端を有し且つ該2つの開放端が当該自由図形の外接矩形上にある場合、当該2つの開放端を前記自由図形の代表点として設定することを特徴とする請求項1乃至6のいずれか1項に記載の図形処理装置。
【請求項8】
前記第2の設定手段は、前記自由図形が2つの開放端を有し且つ該2つの開放端が当該自由図形の外接矩形上にある図形とは異なる場合、前記自由図形の外接矩形の各辺の接点に前記自由図形の代表点を設定することを特徴とする請求項7に記載の図形処理装置。
【請求項9】
コンピュータを、請求項1乃至8のいずれかに記載の図形処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項10】
分離手段が、入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離工程と、
第1の設定手段が、前記分離工程で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第1の設定工程と、
第2の設定手段が、前記分離工程で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第2の設定工程と、
グループ化手段が、前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化工程と、
図形補正手段が、前記グループ化工程でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正工程と、
を有することを特徴とする図形処理方法。
【図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】
【公開番号】特開2012−98935(P2012−98935A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−246429(P2010−246429)
【出願日】平成22年11月2日(2010.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願日】平成22年11月2日(2010.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]