(57)【要約】【課題】  予め定められた形状の既定図形と、自由に作図した自由図形とを組み合わせで表現されている合成図形の画像をスキャンした場合に、自由図形と既定図形との間の位置や形状を適切に調整する。【解決手段】  本発明では、入力画像に含まれる図形を、既定図形と自由図形とに分離する。当該分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定し、自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する。当該設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化し、グループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、自由図形の方を補正する。【選択図】  図１４
2012098935.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離手段と、
前記分離手段で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第１の設定手段と、
前記分離手段で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第２の設定手段と、
前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化手段と、
前記グループ化手段でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正手段と、
を有することを特徴とする図形処理装置。
【請求項２】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数に応じて、補正の方法を切り替えることを特徴とする請求項１に記載の図形処理装置。
【請求項３】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が１つの場合、当該グループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とが一致するように、当該自由図形を平行移動させることにより補正を行うことを特徴とする請求項２に記載の図形処理装置。
【請求項４】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が３つ以上の場合、当該自由図形に対して設定される基準点の位置が、前記グループ化された既定図形の代表点で構成される多角形の基準位置に一致するように、当該自由図形を平行移動させることにより補正を行うことを特徴とする請求項２または３のいずれか１項に記載の図形処理装置。
【請求項５】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が２つの場合、当該グループ化された自由図形の２つの代表点の位置と当該グループ化された既定図形の２つの代表点の位置とが一致するように、当該自由図形に対して移動処理と回転処理と変倍処理とを実行することにより補正を行うことを特徴とする請求項２乃至４のいずれか１項に記載の図形処理装置。
【請求項６】
前記図形補正手段は、前記グループ化手段で前記自由図形に対してグループ化された既定図形の数が２つの場合、当該グループ化された自由図形の２つの代表点の位置と当該グループ化された既定図形の２つの代表点の位置とが一致するように、当該自由図形に対して移動処理と縦横独立の変倍処理とを実行することにより補正を行うことを特徴とする請求項２乃至４のいずれか１項に記載の図形処理装置。
【請求項７】
前記第２の設定手段は、前記自由図形が２つの開放端を有し且つ該２つの開放端が当該自由図形の外接矩形上にある場合、当該２つの開放端を前記自由図形の代表点として設定することを特徴とする請求項１乃至６のいずれか１項に記載の図形処理装置。
【請求項８】
前記第２の設定手段は、前記自由図形が２つの開放端を有し且つ該２つの開放端が当該自由図形の外接矩形上にある図形とは異なる場合、前記自由図形の外接矩形の各辺の接点に前記自由図形の代表点を設定することを特徴とする請求項７に記載の図形処理装置。
【請求項９】
コンピュータを、請求項１乃至８のいずれかに記載の図形処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項１０】
分離手段が、入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離工程と、
第１の設定手段が、前記分離工程で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第１の設定工程と、
第２の設定手段が、前記分離工程で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第２の設定工程と、
グループ化手段が、前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化工程と、
図形補正手段が、前記グループ化工程でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正工程と、
を有することを特徴とする図形処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラスター画像に含まれる図形をベクトル化（ベクトル変換）する図形処理装置、方法、プログラムに関する。
【背景技術】
【０００２】
ラスター画像中に含まれている図形を認識して、電子データ化し、以降、コンピュータでの処理に供するための提案がなされている。
【０００３】
特許文献１では、手書きのフローチャートの画像を、整然と配列された画像に変換することが記載されている。その際、ラスター画像データをベクトルデータに変換して、そのベクトルデータから円や長方形や菱形などの記号の形状認識を行い、認識された記号形状に適したフォーマットの記号データに変換している。
【０００４】
また、特許文献２では、ラスター図形をベクトル図形へ変換する際に補正処理を行うことが記載され、特に、図形の分類結果に応じて該補正処理の処理内容と順序を変更することが記載されている。例えば、直線の図形の場合、ベクトル化処理を行った後に、近接線結合処理、直線補正処理、微小図形消去処理を行う。また、曲線の図形の場合、ベクトル化処理を行った後に、近接線結合処理、微小図形消去処理を行うことが記載されている。
【０００５】
また、特許文献３では、スキャンで得たラスター画像を属性毎のブロックに分割し、ブロックごとにベクトル変換を行うことが記載されている。特に、ベクトル変換を行った結果、データ量が多くなってしまう領域に関しては、ベクトルデータではなく、当該領域の画像データを保存することが記載されている。
【０００６】
なお、以下の本明細書では、円・長方形・菱形・三角形などの予め定められた形状の図形を既定図形と呼ぶこととし、ユーザが自由に作図した図形（線画）を自由図形と呼ぶこととする。例えば、マイクロソフト・オフィス（商標）では、「オートシェイプ」と呼ばれる予め決められた形状の図形（本発明の既定図形に相当）が用意されており、ユーザはこのオートシェイプを用いて作図をすることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特登録３１８３６９０号公報
【特許文献２】特開平０６−３３７９２９号公報
【特許文献３】特登録４１８５８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一方、一般的なビジネス文書などでは、既定図形や直線や自由図形を単独で記述するだけでなく、更に、ユーザが自由図形と既定図形とを組み合わせて新たな１つの図形として表現した合成図形を記述する場合もある。しかしながら、ユーザの文書作成が雑であった場合、自由図形と既定図形の位置が少し離れた状態の文書が作成され、その図形配置の紙文書が印刷されることになる。この印刷された紙文書をスキャンした場合、スキャンで得た画像内の各図形は離れているので別々のオブジェクトとして認識されることになる。すなわち、本来、１つの合成図形として扱わせたかったオブジェクトが、別々のオブジェクトに認識されてしまう。したがって、このようなオブジェクトを１つにしようとすると、スキャン操作を行ったユーザがそのオブジェクトを手作業で修正しなければならず、手間が掛かる。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の図形処理装置は、入力された画像に含まれる図形を、予め定められた形状の既定図形と、前記既定図形と異なる自由図形とに分離する分離手段と、前記分離手段で分離された既定図形に対して、当該既定図形の種類に応じて予め定められた位置に代表点を設定する第１の設定手段と、前記分離手段で分離された自由図形に対して、当該自由図形の種類に応じた基準に基づいて、代表点を設定する第２の設定手段と、前記設定された自由図形の代表点の近傍に前記設定された既定図形の代表点があれば、当該自由図形の代表点と当該既定図形の代表点とをグループ化するグループ化手段と、前記グループ化手段でグループ化された自由図形の代表点の位置と当該グループ化された既定図形の代表点の位置とに基づき、前記自由図形を補正する図形補正手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、スキャン画像から認識した既定図形と自由図形とが別々のオブジェクトとして近傍に存在する場合、各オブジェクトの基準（代表点等）の位置や形状を調整することにより、合成図形としてのオブジェクト化を自動的に行うことができる。したがって、ユーザの手間を減らすことができる。
【００１１】
また、本発明では、既定図形と自由図形との間の距離を調整する際、自由図形の位置や形状を優先して調整することで、既定図形の歪みを減らすことができるので、ユーザに違和感の少ない、より自然な調整や補正が実現できる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１の機能構成を示すブロック図
【図２】ハードウェア構成例を示すブロック図
【図３】既定図形と自由図形が混在した入力図形の一例
【図４】既定図形と自由図形が混在した入力図形のグループ化と補正例
【図５】既定図形の補正用特徴情報の例
【図６】線状の開図形の例と、その補正用特徴情報
【図７】その他の図形の例と、その補正用特徴情報
【図８】図形の種類に対する代表点設定方法と補正方法を示すテーブル
【図９】実施例１における処理を示すフローチャート
【図１０】実施例１における、グループ化した図形間での補正処理の詳細を示すフローチャート
【図１１】実施例２における、グループ化した図形間での補正処理の詳細を示すフローチャート
【図１２】自由図形に対してグループ化された既定図形が３つの場合の補正例
【図１３】自由図形に対してグループ化された既定図形が４つの場合の補正例
【図１４】実施例１における、グループ化された既定図形が２つの場合の補正例
【図１５】実施例２における、グループ化された既定図形が２つの場合の補正例
【発明を実施するための形態】
【００１３】
（実施例１）
図１は、本発明の実施形態１に係る図形処理装置（画像処理装置）の構成を示す機能ブロック図である。図１において、原稿読取り部１１は、スキャナやカメラ等により、線画を含む原稿を読取って文書画像を得る。線画領域抽出部１２は、原稿読取り部１１で得た文書画像から線画を含む領域を線画領域として抽出する。ベクトル変換部２では、線画領域抽出部１２で抽出された線画領域に含まれる線画図形をベクトル化してベクトルデータを得る。既定図形同定部３は、ベクトル変換部２で得られた図形のベクトルデータに基づいて、当該線画領域に含まれる既定図形を同定する。既定図形・自由図形分離部４は、線画領域に基づいて得たベクトルデータから、既定図形同定部３で既定図形として同定された図形成分を除くことにより得られる残りの図形成分を自由図形とすることで、前記線画領域に含まれる既定図形と自由図形を分離する。
【００１４】
補正用特徴情報設定部５は、既定図形・自由図形分離部４で分離された既定図形及び自由図形のそれぞれに属する各図形に、補正用特徴情報を設定する。既定図形・自由図形間グループ化部６は、既定図形同定部３と既定図形・自由図形分離部４とによって分離された既定図形及び自由図形のそれぞれに属する各図形間で、予め定めた規則に基づき、グループとしてまとめて扱うべき図形群を定める。グループ化済図形補正部７は、既定図形・自由図形間グループ化部６で定められた、グループとしてまとめて扱うべき図形群のそれぞれにおいて、同一グループにグループ化された図形群内の各図形を予め定めた方法で補正する。出力データ生成部８は、ベクトル変換部２でベクトル化され、グループ化済図形補正部７で補正された、前記線画中の図形データを表す情報を、所定の出力形式（例えばＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）形式）のデータに変換することにより出力データを生成する。データ出力部９は、出力データ生成部８で生成された、所定の出力形式の出力データを出力する。
【００１５】
図２は、図１に示した図形処理装置を実現するためのハードウェア構成の一実施形態を示すブロック図である。図２において、イメージスキャナ１１１はＩ／Ｏインタフェース１１２を介してバス５０に接続されており、１１１と１１２により図１の原稿読取り部１１が構成される。また、ＲＯＭ３０に格納されるコンピュータプログラムをＣＰＵ２０で実行することにより、該ＣＰＵ２０は、図１の線画領域抽出部１２、ベクトル変換部２、既定図形同定部３、既定図形・自由図形分離部４、補正用特徴情報設定部５、既定図形・自由図形間グループ化部６、グループ化済図形補正部７、出力データ生成部８として機能する。ＲＡＭ４０は、ワーキングメモリや、画像記憶メモリとして利用される。また、ハードディスク６２は、Ｉ／Ｏインタフェース６１を介してバス５０に接続されており、外部記憶装置６０を構成している。プリンタ８２は、Ｉ／Ｏインタフェース８１を介してバス５０に接続されており、データ印字出力装置８０を構成している。また、７０は、ネットワークＩ／Ｆである。外部記憶装置６０、データ印字出力装置８０、ネットワークＩ／Ｆ７０は、図１でいうデータ出力部９のデータ出力先となるものである。また、本発明の処理対象となる画像は、上述したように、原稿読み取り部（スキャナ）１１を介して入力される画像であってもよいし、外部記憶装置６０に格納されている画像データや、外部装置からネットワークＩ／Ｆを介して受信した画像を処理対象にするようにしてもよい。すなわち、入力される画像は、原稿読み取り部（スキャナ）１１で読み取った画像に限るものではなく、その他の手段を介して入力された画像であってもよい。
【００１６】
図３（ａ）は既定図形と自由図形が混在した入力図形の一例である。図３（ｂ）は図３（ａ）で示した入力図形中に含まれる既定図形の例（二等辺三角形）であり、図３（ｃ）は図３（ａ）で示した入力図形中に含まれる自由図形の一例を示している。以下、図３及び図４を用いて、図１の各処理部で実行される処理の概要を説明する。
【００１７】
処理対象の画像（例えば図３（ａ）の入力図形）は、線画領域抽出部１２において、原稿画像の中から抽出された線画領域の画像である。なお、線画領域抽出部１２は、公知の領域分割技術（例えば特許文献３記載の領域分割技術）を用いることにより原稿画像を属性毎の領域に分割し、分割された領域の中から線画（図形）の属性を有する領域を抽出することにより実現できる。次に、ベクトル変換部２で、図３（ａ）のような入力図形に対して、公知のベクトル変換技術を用いてベクトルデータに変換する。図４（ａ）は、図３（ａ）に示した入力図形をベクトル変換部２で変換し、当該変換されたベクトルデータを可視化した状態で表現したものである。
【００１８】
図４（ｂ）を説明する。図４（ａ）に示したベクトルデータに対して、既定図形同定部３にて図形認識を行うことにより、既定図形４１０（この場合は、二等辺三角形）を同定する。例えば、図４（ａ）のベクトルデータから抽出した特徴データ（ベクトルデータの変化点など）を予め定義された複数の既定図形それぞれの特徴データとマッチングして、最も一致する既定図形を特定する。そして、既定図形・自由図形分離部４では、図４（ａ）に示したベクトルデータから、既定図形同定部３で同定された既定図形４１０を除いた残りの連結成分（残りのベクトルデータ）を自由図形成分４２０として同定する。このようにして、図４（ａ）に示したベクトルデータを分離すると、図４（ｂ）のように既定図形成分４１０と自由図形成分４２０とに分離される。
【００１９】
次に、図４（ｂ）のように既定図形成分４１０と自由図形成分４２０とに分離したベクトルデータに対して、補正用特徴情報設定部５において、補正用特徴情報を設定した結果を図４（ｃ）に示す。補正用特徴情報については、後ほど詳述する。図４（ｃ）は、黒い丸印で、既定図形４１１と自由図形４２１それぞれにおける代表点（補正用特徴情報の一種で、近隣図形間の空隙を埋めて接続させる補正をする際の接続候補点である）を加えて表示したものである。
【００２０】
図４（ｃ）に示した補正用特徴情報付の既定図形データと自由図形データとに対して、既定図形・自由図形間グループ化部６でグループ化し、更に当該グループ化された既定図形と自由図形の図形群に対して、グループ化済図形補正部７で補正した結果の例を図４（ｄ）に示す。グループ化済図形補正部７では、それぞれの図形間で予め定めた距離内にある代表点同士が重なるように、自由図形４２１に対して平行移動や拡大縮小などの補正を行い、自由図形４２２となるようにする。出力データ生成部８では、図４（ｄ）に示した補正済みの図形群のデータを、所定の出力形式（例えばＳＶＧ）のデータに変換する。この変換されたデータを描画した場合、図４（ｅ）のように描画されることになる。尚、生成された所定の出力形式のデータは、データ出力部９を介して外部部記憶装置６０やネットワークＩ／Ｆ７０等に出力される。
【００２１】
尚、既定図形同定部３は、例えば、前述の特許文献１に記載の図形認識手段として開示される手法などで実現可能である。即ち、図形画像データと判断された画像をベクトルデータに変換し、当該変換されたベクトルデータのうち閉形状を構成するベクトルに着目して、周回方向の変化点等に基づき予め定める複数のパラメータで定義される既定図形のいずれに一致するか判定する。また、これに限らず、既定図形同定部３はその他の公知の方法で構成しても良いのはもちろんである。例えば、図形認識をベクトルデータで行なわず、ビットマップ画像上でパターン認識するような方法でもよい。このような場合には、まず、ビットマップ画像上でパターン認識することにより既定図形と認識されたビットマップパターンと、それ以外の部分を分離する。そして、既定図形と認識されたビットマップパターンに対しては、当該ビットマップパターンに合致するように、既定図形で予め定義されているパラメータを特定することによって既定図形のベクトルデータ（既定図形データ）に変換する。また、それ以外の部分のビットマップパターンに対しては、当該ビットマップパターンに含まれる図形の輪郭を抽出してベクトル化処理することにより、自由図形のベクトルデータ（自由図形データ）を生成する。
【００２２】
図５は既定図形とそれら既定図形の補正用特徴情報の例を示している。同図において、（ａ），（ｂ），（ｃ），（ｇ），（ｈ），（ｉ）は既定図形の例である。即ち、（ａ）二等辺三角形、（ｂ）長方形（正方形を含む）、（ｃ）菱形、（ｇ）楕円、（ｈ）正五角形、（ｉ）正六角形、である。（ｄ），（ｅ），（ｆ），（ｊ），（ｋ），（ｌ）は、それぞれ、既定図形（ａ），（ｂ），（ｃ），（ｇ），（ｈ），（ｉ）に対応する補正用特徴情報を示している。既定図形の種類（形状）に応じて、補正用特徴情報が設定される相対的な位置や数は予め定められているものとする。補正用特徴情報としては、代表点、基準点、方向軸の三種類がある。代表点とは、近隣図形間の空隙を埋めて接続させる補正をする際の接続候補点の働きがある。基準点とは、当該図形全体の位置を平行移動させたり、回転させたりするときの基準、即ち、当該図形の中心位置である。方向軸とは、基準点を中心に図形を回転させる際の回転角を定めるときの基準方向である。同図において、代表点は小さな黒丸で、基準点は小さな白丸で、方向軸は点線で示されている。また、補助的な意味合いで、各図形の外接矩形を破線で示してある。
【００２３】
図６〜図７は、既定図形以外の図形（即ち、自由図形）とそれら自由図形の補正用特徴情報の例を示している。図６（ａ）および図６（ｃ）は、未接続の線の端点（開放端）を２つ有する開図形で、且つ当該２つの開放端が当該図形の外接矩形上にある自由図形の例である（本実施形態では、このような自由図形を線状開図形と呼ぶこととする）。図７（ａ）は、２つの開放端を有する開図形であるが、２つの開放端が外接矩形上にない自由図形である（本実施形態では、このような図形を一般開図形と呼ぶこととする）。図７（ｃ）は、線の端点（開放端）が存在せず、図形全体が一つの閉ループを構成している閉図形の例である。尚、本実施形態では、図７（ａ）のような一般開図形、ならびに開放端が１つだけである自由図形や開放端が３つ以上ある自由図形に対して、便宜上、図７（ｄ）のような閉図形の場合と同様に扱うものとする。図６〜図７においても、それらの補正用特徴情報として、代表点は小さな黒丸で、基準点は小さな白丸で、方向軸は点線で示されている。また、補助的な意味合いで、各図形の外接矩形を破線で示してある。
【００２４】
図６（ａ）や図６（ｃ）の自由図形は、２つの開放端を有し且つ外接矩形上に当該２つの開放端が存在するので、線状開図形であると判断され、図６（ｂ）および図６（ｄ）に示されるように、各図形の２つの開放端を代表点として設定する。このとき、当該設定された２つの代表点を結ぶ直線の方向を方向軸とし、更に、当該２つの代表点の中点を基準点とする。このようにして設定された代表点（および方向軸、基準点）が、補正用特徴情報として扱われることになる。
【００２５】
図７（ａ）や図７（ｃ）の自由図形は、線状開図形（図６）でない図形であると判断され、図７（ｂ）および図７（ｄ）に示されるように、当該自由図形の外接矩形の各辺における接点を代表点として設定する。また、当該外接矩形の対辺に設定された代表点同士を結ぶ２つの直線の交点を、基準点として設定する。なお、外接矩形の一辺に複数の接点があった場合は、所定の基準に基づいて選択した点を代表点とする。例えば、所定の基準として、当該複数の接点の中に開放端があれば当該開放端の接点を優先し、開放端が無ければ当該外接矩形の辺の中点により近い接点を次に優先する、というようにして代表点を設定する。なお、線状開図形以外の自由図形（図７）に対して代表点を設定する基準としては、上記例に限るものではなく、その他の基準を用いても構わない。
【００２６】
図８は、図６〜図７で説明した自由図形の種類に応じて、どのように代表点を設定するかと、後述するステップＳ９１０での補正方法とを記載したテーブルである。
【００２７】
次に、図９のフローチャートを用いて本発明の実施例１の処理の流れを説明する。ステップＳ９０１において、イメージスキャナ１１やカメラなどから文書画像が入力されると、図形処理装置は、当該入力された文書画像データをＲＡＭ４０上のワークメモリ（第１のメモリ領域）に保持する。線画領域抽出部１２は、文書画像データを属性毎の領域に分割し（例えば特許文献３等に開示される領域分割方法を利用）、当該分割された領域のうち線図形属性の画像（線画領域）を抽出し、ＲＡＭ４０のメモリ（第二のメモリ領域）に保持させる。
【００２８】
ステップＳ９０２において、ベクトル変換部２は、ステップＳ９０１で抽出した線画領域の画像データに対して、公知のベクトル化処理を行ってベクトルデータに変換する。
【００２９】
ステップＳ９０３において、既定図形同定部３は、前記変換されたベクトルデータの特徴量を、複数の既定図形の特徴データと比較して図形認識を行うことにより、前記変換されたベクトルデータに含まれる既定図形を特定する。更に、既定図形・自由図形分離部４は、前記変換された図形のベクトルデータから、前記特定された既定図形を除いた残りのベクトルデータを自由図形として分離する。このようにして分離された既定図形データと自由図形データを、ＲＡＭ４０のメモリ（第三のメモリ領域）に保持させる。
【００３０】
ステップＳ９０４において、補正用特徴情報設定部５は、Ｓ９０３で特定された各既定図形データに対して、図５を用いて説明したように補正用特徴情報を設定する。この結果、各既定図形に対して、特定された既定図形の種類を示す既定図形番号（予め登録された既定図形の種類毎に異なる番号が対応付けられている）と、当該既定図形領域の原稿内での位置・サイズ（領域の幅と高さ）と、当該既定図形に対して設定された各代表点の位置と、基準点の位置と、方向軸の方向、などの情報が保持されることになる。なお、代表点の位置や基準点の位置は、当該特定された既定図形の外接矩形の左上の位置を原点としたときの相対位置で表わすものとする。
【００３１】
ステップＳ９０５に進み、補正用特徴情報設定部５は、Ｓ９０３で分離された自由図形データに対して、前述の図６〜図８を用いて説明したように補正用特徴情報を設定する。この結果、各自由図形に対して、線状開図形かそれ以外の図形かを示す識別番号と、当該分離された自由図形領域の位置・サイズと、当該自由図形に対して設定された代表点の位置と、基準点の位置と、方向軸の方向、などの情報が保持されることになる。
【００３２】
なお、ステップＳ９０４及びステップＳ９０５で、補正用特徴情報が設定された既定図形データと自由図形データは、ＲＡＭ４０のメモリ（第四のメモリ領域）に保持させる。
【００３３】
ステップＳ９０６において、既定図形・自由図形間グループ化部６は、Ｓ９０５で補正用特徴情報が設定された自由図形データをリストアップし、その数とそれぞれのデータの格納される位置を確定する。尚、リストアップした自由データのそれぞれには、以降のステップＳ９０８〜Ｓ９１０の処理が実行済みか否かを示す状態情報を付与し、全ての自由図形の状態情報について未チェック状態であるように初期化する。また、各既定図形データについても、後述のステップＳ９０９でいずれかの自由図形とグループ化済みか否かを示す状態情報を付与し、全ての既定図形の状態情報について未グループ化状態であるように初期化される。
【００３４】
ステップＳ９０７において、既定図形・自由図形間グループ化部６は、ステップＳ９０６でリストアップした自由図形の状態情報に基づき、以降のステップＳ９０８〜９１０の処理が実行されていない自由図形を選択し、ステップＳ９０８に進む。このとき、選択された自由図形の状態情報を、未チェック状態からチェック済み状態に変更しておく。
【００３５】
ステップＳ９０８において、既定図形・自由図形間グループ化部６は、ステップＳ９０７で選択された自由図形の各代表点の位置から、予め定めた距離の範囲内に、既定図形の代表点のいずれかが存在するか否かを判定する。この際、既定図形の状態情報が未グループ化状態にある既定図形の代表点のみに着目して判定すれば、より効率よく判定を行える。なお、自由図形の代表点の１つに対して、複数の異なる既定図形の代表点が前記予め定めた距離範囲内に存在する場合は、当該自由図形の代表点との距離がより短い代表点を有する既定図形をグループ化対象として判定する。また、当該自由図形の代表点に対して、前記予め定めた距離範囲内に既定図形の代表点のいずれも存在しない場合には、当該自由図形の代表点にはグループ化対象となる既定図形は存在しないと判定する。ステップＳ９０８で、当該選択された自由図形に対して、グループ化対象の既定図形が存在した場合はＳ９０９に進み、グループ化対象の既定図形が存在しなかった場合はＳ９１１に進む。
【００３６】
ステップＳ９０９において、既定図形・自由図形間グループ化部６は、ステップＳ９０８でグループ化対象として判定された自由図形の代表点と既定図形の代表点とをグループ化する。具体的には、自由図形のどの代表点に、どの既定図形のどの代表点が対応づくのかを示す情報を生成して、ＲＡＭ４０のメモリ（第五のメモリ領域）に保持する。また、当該グループ化対象となった既定図形の状態情報を、他の自由図形とグループ化済みになったことを示すグループ化済み状態に変更する。
【００３７】
ステップＳ９１０において、グループ化済図形補正部７は、ステップＳ９０９でグループ化した自由図形の補正処理を行なう。補正処理の詳細については後述する。
【００３８】
ステップＳ９１１において、既定図形・自由図形間グループ化部６は、リストアップした全ての自由図形の状態情報がチェック済みか判定し、全てチェック済みの場合はステップＳ９１２に進み、そうでない場合には、ステップＳ９０７に戻って次の自由図形を選択し処理を繰り返す。
【００３９】
ステップＳ９１２において、出力データ生成部８は、ステップＳ９０７〜Ｓ９１１の処理を繰り返し実行した後の既定図形及び自由図形のデータに対して、所定のデータ形式に変換して出力する。例えば、公知のＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）データ形式にて表現したベクトルデータに変換して出力する。
【００４０】
次に、図１０のフローチャートを用いて、図９のステップＳ９１０の補正処理の詳細について説明する。ステップＳ２００において、グループ化済図形補正部７は、図９のステップＳ９０９で当該自由図形とグループ化された既定図形の数が１つか否か判定する。そして、既定図形の数が１つの場合にはステップＳ２１０に進み、そうでない場合にはステップＳ２２０に進む。
【００４１】
ステップＳ２２０において、グループ化済図形補正部７は、当該自由図形とグループ化された既定図形の数が３つ以上か否かを判定する。その結果、グループ化された既定図形の数が３つ以上の場合にはステップＳ２３０に進み、そうではない場合（すなわちグループ化された既定図形が２つの場合）にはステップＳ２４０に進む。なお、当該選択された自由図形が図６のような線状開図形の場合は、代表点が２つであるので、ステップＳ２１０またはステップＳ２４０に進むことになる。また、当該選択された自由図形が図７のような線状開図形以外の図形である場合は、代表点が４つあるので、ステップＳ２１０、Ｓ２３０、Ｓ２４０のいずれかに進むことになる。すなわち、当該自由図形に対してグループ化された既定図形の数に応じて、補正の方法が切り替えられることになる。
【００４２】
ステップＳ２１０は、当該自由図形にグループ化されている既定図形の数が１の場合に、グループ化済図形補正部７が実行する処理ルーチンである。ここでは、当該グループ化された自由図形の代表点の位置が、当該グループ化された既定図形の代表点の位置に一致するように、当該自由図形を移動させる。
【００４３】
図４の例を用いてステップＳ２１０の処理の詳細を説明する。自由図形と既定図形を含む線画（図４（ａ））は、図４（ｂ）のように既定図形４１０と自由図形４２０とに分離され、図４（ｃ）のように黒丸で示す位置に補正用特徴情報として代表点が設定される。自由図形部分４２１に設定された代表点の近傍に、既定図形４１１に設定された代表点があるので、Ｓ９０９で当該自由図形と既定図形はグループ化対象とされる。そこで、ステップＳ２１０では、この自由図形４２１の代表点の位置が、対応する既定図形４１１の代表点の位置に重なるように、それらの位置間の変位分を自由図形４２１の位置に対して加える。すなわち、自由図形４２１の図形領域の位置に、前記代表点間の位置の変位を加えることにより、自由図形４２１の位置を移動させる。このようにして、当該選択された自由図形にグループ化された既定図形の数が１つの場合のステップＳ２１０での補正処理を実行する。
【００４４】
次に、ステップＳ２３０の処理の詳細を説明する。ステップＳ２３０は、当該自由図形にグループ化されている既定図形の数が３以上の場合に、グループ化済図形補正部７が実行する処理ルーチンである。ここでは、当該グループ化された自由図形の基準点が、当該グループ化された既定図形の代表点を結ぶ多角形の重心に一致するように、当該自由図形の位置を補正する。
【００４５】
図１２と図１３を例として用いてステップＳ２３０の処理の詳細を説明する。本実施例では、自由図形の代表点は最多でも４であるので、一つの自由図形に対してグループ化される既定図形は最多でも４である。図１２は、１つの自由図形と３つの既定図形を含んだ線画の例である。また、図１３は、１つの自由図形と４つの既定図形を含んだ線画の例である。両図中での黒丸と白丸は、それぞれ、図９のステップＳ９０４と前記ステップＳ９０５で設定された補正用特徴情報であり、黒丸は代表点、白丸は基準点である。
【００４６】
図１２（ａ）の入力画像に対しては、図１２（ｂ）のように、自由図形５００と、３つの既定図形５１０，５２０，５３０が含まれ、これらの図形に対して補正用特徴情報が設定される。その結果、既定図形５１０、５２０、５３０に対して、それぞれ二つの代表点が５１０１と５１０２、５２０１と５２０２、５３０１と５３０２として設定される。また、自由図形５００に対して、閉図形であるため４つの代表点が５００１、５００２、５００３、５００４として設定され、更に、基準点が５００５として設定される。そして、図９のステップＳ９０９において、自由図形５００の代表点５００１、５００２、５００３それぞれに対して、既定図形の代表点５１０２、５２０２、５３０２が近傍にあり、グループ化されたものとする。このとき、自由図形５００と各既定図形５１０、５２０、５３０との間の対応する代表点は、それぞれ、５００１と５１０２、５００２と５２０２、５００３と５３０２の組み合わせであるという情報が生成されている。そこで、図１０のステップＳ２３０では、この自由図形５００の基準点（５００５）が、グループ化された３つの既定図形の代表点５１０２、５２０２、５３０２で形成される三角形の基準位置（本実施形態では図１２（ｃ）の５００６のように三角形の重心位置とする）と重なるように（図１２（ｄ）の５０１５）、自由図形５００の位置を移動させる（図１２（ｄ）の５０１）。すなわち、自由図形５００の位置情報（画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報）に、前記自由図形の基準点の位置と前記３つの代表点で形成される三角形の基準位置との間の変位を加える。このようにして、ステップＳ２３０では、注目する自由図形にグループ化された既定図形の数が３の場合に、当該グループ化した図形間での補正処理を終える。尚、三角形の基準位置（重心位置）は、三角形の各頂点の座標値の平均値として求めることが可能である。三角形の各頂点Ｐ１、Ｐ２、Ｐ３の座標を、それぞれ（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）とし、三角形の重心位置ＰＧの座標（ｘＧ，ｙＧ）は、
ｘＧ＝（ｘ１＋ｘ２＋ｘ３）／３
ｙＧ＝（ｙ１＋ｙ２＋ｙ３）／３
により、求めることができる。
【００４７】
図１３（ａ）の入力画像に対しては、図１３（ｂ）のように、自由図形６００と、４つの既定図形６１０、６２０、６３０、６４０が含まれ、これらの図形に対して補正用特徴情報が設定される。その結果、既定図形６１０、６２０、６３０、６４０に対して、２つの代表点がそれぞれ６１０１と６１０２、６２０１と６２０２、６３０１と６３０２、６４０１と６４０２として設定される。また、自由図形６００に対して、４つの代表点が６００１、６００２、６００３、６００４として設定され、更に、基準点が６００５として設定される。自由図形６００の代表点６００１、６００２、６００３、６００４それぞれに対して、既定図形の代表点６１０２、６２０２、６３０２、６４０２が近傍にあり、グループ化されたものとする。このとき、自由図形６００と各既定図形６１０、６２０、６３０、６４０との間の対応する代表点は、それぞれ、６００１と６１０２、６００２と６２０２、６００３と６３０２、６００４と６４０２の組み合わせであるという情報が生成されている。そこで、図１０のステップＳ２３０では、この自由図形部６００の基準点（６００５）が、グループ化された４つの既定図形６１０、６２０、６３０、６４０の代表点６１０２、６２０２、６３０２、６４０２で形成される四角形の基準位置（図１３（ｃ）の６００６）と重なるように、自由図形６００の位置を移動させる（図１３（ｄ）の６０１）。すなわち、自由図形６００の位置情報（画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報）に、前記自由図形の基準点の位置と前記４つの代表点で形成される四角形の基準位置との間の変位を加える。このようにして、ステップＳ２３０では、注目する自由図形にグループ化された既定図形の数が４の場合に、当該グループ化した図形間での補正処理を行う。なお、本実施形態において、四角形の基準位置は、四角形の各頂点の座標値の平均値として求めるものとする。
【００４８】
次に、ステップＳ２４０〜Ｓ２６０の処理の詳細を説明する。ステップＳ２４０〜Ｓ２６０は、自由図形にグループ化されている既定図形の数が２の場合に、グループ化済図形補正部７が実行する処理ルーチンである。当該グループ化された自由図形の２つの代表点の位置が、当該グループ化された既定図形の２つの代表点の位置に一致するように、当該自由図形を補正する。本実施例１では、当該自由図形の位置を移動させた後、当該自由図形の２つの代表点を繋ぐ線の方向と当該既定図形の代表点間を繋ぐ線の方向とが一致するように該自由図形を回転させ、その後、当該自由図形のサイズを拡大縮小させることにより、自由図形を補正するものとする。
【００４９】
図１４の例を用いてステップＳ２４０〜Ｓ２６０の処理の詳細を説明する。自由図形と既定図形を含む線画（図１４（ａ））は、図９のＳ９０１〜Ｓ９０３の処理により、図１４（ｂ）のように既定図形８１０，８２０と、自由図形８００とに分離される。既定図形８１０，８２０に対しては、Ｓ９０４において、補正用特徴情報として、それぞれ二つの代表点が設定される（８１０１と８１０２、及び８２０１と８２０２）。また、自由図形８００に対しては、線状開図形であると判断されるので、Ｓ９０５において、２つの代表点８００１と８００２が設定され、それらの中点が自由図形８００の基準点８００３として設定される。更に、ステップＳ９０９において、自由図形８００の代表点８００１と８００２のそれぞれに対して、既定図形８１０の代表点８１０２と、既定図形８２０の代表点８２０２とが近傍にあるので、グループ化対象とされる。このとき、自由図形８００と各既定図形８１０、８２０との間の対応する代表点は、それぞれ、８００１と８１０２の組み合わせと、８００２と８２０２の組み合わせであるという情報が生成されている。そして、図１０のステップＳ２４０では、まず、図１４（ｃ）に示すように、グループ化された既定図形の代表点８１０２と８２０２を結ぶ線の中点８００４を既定図形間の基準位置とする。そして、自由図形８００の基準点８００３の位置が、既定図形間の基準位置８００４と重なるように、自由図形を平行移動させる。すなわち、自由図形の位置情報（画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報）に、前記自由図形の基準点の位置８００３と前記２つの代表点間の中点の位置８００４との間の変位を加える。この結果、図１４（ｄ）のように、自由図形は８０１の位置に移動されるので、当該自由図形の基準点の位置は８０１３に移動され、且つ代表点の位置も８０１１，８０１２に移動される。次に、ステップＳ２５０では、自由図形８０１の代表点８０１１と８０１２を結ぶ直線の方向が、二つの既定図形の代表点８１０２と８２０２を繋ぐ直線の方向と一致するように、自由図形８０１を基準点８０１３を中心に回転する。尚、回転中心８０１３の座標が（ｘｃ，ｙｃ）で、代表点８０１２の座標が（ｘ１，ｙ１）で、代表点８０１１の座標が（ｘ２，ｙ２）だとすると、回転角をθで表す場合、
ｘ１’＝ｘ１−ｘｃ；  ｙ１’＝ｙ１−ｙｃ；
ｘ２’＝ｘ２−ｘｃ；  ｙ２’＝ｙ２−ｙｃ；
とおくと、
ｓｉｎθ＝（ｘ１’・ｙ２’−ｘ２’・ｙ１’）／（ｓｑｒｔ（ｘ１’２＋ｙ１’２）＋ｓｑｒｔ（ｘ２’２＋ｙ２’２））
ｃｏｓθ＝（ｘ１’・ｘ２’＋ｙ１’・ｙ２’）／（ｓｑｒｔ（ｘ１’２＋ｙ１’２）＋ｓｑｒｔ（ｘ２’２＋ｙ２’２））
となり、
自由図形８０１を構成する任意の点の座標（ｘｉ，ｙｉ）を（ｘｉ’，ｙｉ’）に変換することで上述の回転が実現できる。ただし、
ｘｉ’＝ｘｃ＋（ｘｉ−ｘｃ）・ｃｏｓθ−（ｙｉ−ｙｃ）・ｓｉｎθ
ｙｉ’＝ｙｃ＋（ｘｉ−ｘｃ）・ｓｉｎθ＋（ｙｉ−ｙｃ）・ｃｏｓθ
である。
【００５０】
回転処理の結果の状態を図１４（ｅ）に示した。図１４（ｅ）では、回転後の自由図形を８０２とし、回転後の自由図形の代表点を８０２１と８０２２とし、また、基準点を８０２３で表記している。
【００５１】
その後、ステップＳ２６０では、回転後の自由図形８０２の基準点８０２３の位置を変えずに、自由図形８０２を変倍する。すなわち、自由図形８０２の代表点８０２１と代表点８０２２の位置が、それぞれ対応する既定図形８１０の代表点８１０２と既定図形８２０の代表点８２０２の位置に一致するように、回転後の自由図形８０２の変倍率を求めて変倍する。この際の変倍率には、８０２１と８０２２の間の距離に対する、８１０２と８２０２の間の距離の倍率（αとする）を用いると良い。自由図形８０２を構成する任意の点の座標（ｘｉ，ｙｉ）を、この変倍により（ｘｉ’，ｙｉ’）に変換する場合の座標値の計算法は、変倍率（前述の比）がαであり、自由図形８０２の基準点８０２３の座標を（ｘｃ，ｙｃ）であるとすると、
ｘｉ’＝ｘｃ＋（ｘｉ−ｘｃ）・α
ｙｉ’＝ｙｃ＋（ｙｉ−ｙｃ）・α
で得られる。変倍処理の結果の状態を図１４（ｆ）に示す。自由図形は、図形８０３のように変倍され、自由図形の代表点の位置８０３１，８０３２は、既定図形８１０，８２０の代表点の位置に一致する。このようにして、ステップＳ２４０〜Ｓ２６０では、注目する自由図形にグループ化された既定図形の数が２の場合に、グループ化した図形間での補正処理を行う。
【００５２】
以上、図１０のフローチャートを用いて、図９のステップＳ９１０で実行される図形間での補正処理の詳細を説明した。
【００５３】
（実施例２）
図９のステップＳ９１０で実行される補正処理の別実施形態について説明する。以下、図１１のフローチャートと図１５を用いて、グループ化された図形間での補正処理の実施例２を詳述する。
【００５４】
図１１に示すフローチャートにおいて、ステップＳ３００〜ステップＳ３３０の処理は、図１０のフローチャートのステップＳ２００〜Ｓ２３０の処理と全く同様であるので、説明を省略する。ここでは、実施例１の処理の異なるステップＳ３４０とＳ３５０の部分の処理を説明してゆく。即ち、注目する自由図形にグループ化された既定図形の数が２の時の処理について説明する。本実施例２では、自由図形の片方の代表点の位置を、対応する既定図形の代表点の位置に一致するように移動させた後、自由図形のもう一方の代表点の位置が、対応するもう一方の既定図形の代表点の位置に一致するように、当該自由図形を縦横独立に変倍する。
【００５５】
図１５の例を用いてステップＳ３００〜ステップＳ３３０の処理の詳細を説明する。自由図形と既定図形を含む線画（図１５（ａ））は、図９のＳ９０１〜Ｓ９０３の処理により、図１５（ｂ）のように既定図形７１０，７２０と、自由図形７００とに分離される。既定図形７１０，７２０に対しては、Ｓ９０４において、補正用特徴情報として、それぞれ二つの代表点が設定される（７１０１と７１０２、及び７２０１と７２０２）。また、自由図形７００に対しては、線状開図形であると判断されるので、Ｓ９０５において、２つの代表点７００１と７００２とが設定される。更に、ステップＳ９０９において、自由図形７００の代表点７００１と７００２のそれぞれに対して、既定図形７１０の代表点７１０２と、既定図形７２０の代表点７２０２とが近傍にあるので、グループ化対象とされる。このとき、自由図形７００と各既定図形７１０、７２０との間の対応する代表点は、それぞれ、７００１と７１０２の組み合わせと、７００２と７２０２の組み合わせであるという情報が生成されている。そして、図１１のステップＳ３４０では、自由図形７００の代表点７００２の位置が、対応する既定図形７２０の代表点７２０２の位置に一致するように、自由図形７００の位置を図１５（ｃ）の７０１の位置に平行移動させる。すなわち、自由図形の位置情報（画像全体の左上を原点としたときの、当該自由図形の外接矩形の左上位置の情報）に、自由図形の代表点７００２と既定図形の代表点７２０２との間の変位を加える。この結果、図１５（ｃ）のように、移動後の自由図形７０１の代表点の位置は７０１１と７０１２の位置になる。次に、ステップＳ３５０では、ステップＳ３４０で一致させた方の代表点７０１２の位置は固定して、もう一方の代表点７０１１の位置が、対応する既定図形の代表点７１０２の位置に一致するように、当該自由図形７０１を縦横独立に変倍（水平方向と、垂直方向とで異なる倍率での変倍）する。この際、水平方向の倍率には、代表点７０１１と７０１２の距離の水平方向成分（ｘ方向の座標値の差分の絶対値）に対する、７１０２と７０１２の距離の水平方向成分の倍率を、水平方向の変倍率（βとする）として求める。同様に、各代表点の座標位置に基づいて、垂直方向の変倍率（γとする）を求める。自由図形７０１を構成する任意の点の座標（ｘｉ，ｙｉ）を、この変倍により（ｘｉ’，ｙｉ’）に変換する場合の座標値の計算法は、変倍率（前述の比）が水平方向成分がβで垂直方向成分がγであり、自由図形７０１の変倍時の基準点７０１２の座標をあらためて、（ｘ２，ｙ２）であるとすると、
ｘｉ’＝ｘ２＋（ｘｉ−ｘ２）・β
ｙｉ’＝ｙ２＋（ｙｉ−ｙ２）・γ
で得られる。変倍処理の結果の状態を図１４（ｄ）に示した。自由図形は、図形７０２のように縦横独立に変倍され、自由図形の代表点の位置７０２１，７０２２は、既定図形７１０，７２０の代表点の位置に一致する。このようにして、ステップＳ３４０〜Ｓ３５０では、注目する自由図形にグループ化された既定図形の数が２の場合に、グループ化した図形間での補正処理を行う。実施例２の場合には、自由図形の変倍率が縦方向（垂直方向）と横方向（水平方向）とで一般的には異なるので、自由図形に歪が生じるものの、実施例１のステップＳ２４０〜ステップＳ２６０の処理に比べて、計算量が少ないため、高速な処理が可能となる。
【００５６】
（実施例３）
上述の実施例１及び２においては、自由図形の各代表点の近傍に複数の既定図形の代表点が存在する場合には、当該代表点間の距離の短いものを選んで、対応付けるとしていたが、本発明は、これに限るものではない。例えば、複数の既定図形の候補それぞれの方向軸の角度を求め、自由図形の代表点を結ぶ直線の角度に対して、より近い方向軸の角度を有する既定図形の代表点を選ぶように構成しても良い。
【００５７】
（実施例４）
上述の実施例においては、自由図形の各代表点の近傍にグループ化対象として対応づけられるのは、既定図形の代表点であるとして説明してきたが、本発明はこれに限らない。すなわち、他の自由図形の代表点をグループ化対象に含めてもよい。すなわち、自由図形にも、他の自由図形のいずれかとグループ化されたか否かを示す状態情報を付与するものとし、ステップＳ９０８〜Ｓ９０９において、自由図形の各代表点の近傍に対応付ける代表点を、既定図形のみならず、他の自由図形の代表点をも含めて、対応付けを許すように構成しても良い。この場合には、他の自由図形とグループ化された自由図形データのそれぞれには、チェックをされたことを示す状態情報を付与し、グループ化済み状態であるように設定すればよい。また、図１０のステップＳ２００やＳ２２０、ならびに図１１のステップＳ３００やＳ３１０では、当該自由図形にグループ化されている既定図形と他の自由図形の両方も含めた数をチェックするように構成すればよいのは明らかである。
【００５８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012098935.tif 000003
【図２】
2012098935.tif 000004
【図３】
2012098935.tif 000005
【図４】
2012098935.tif 000006
【図５】
2012098935.tif 000007
【図６】
2012098935.tif 000008
【図７】
2012098935.tif 000009
【図８】
2012098935.tif 000010
【図９】
2012098935.tif 000011
【図１０】
2012098935.tif 000012
【図１１】
2012098935.tif 000013
【図１２】
2012098935.tif 000014
【図１３】
2012098935.tif 000015
【図１４】
2012098935.tif 000016
【図１５】
2012098935.tif 000017