(57)【要約】【課題】  線図形を含む画像を処理すること。【解決手段】  画像処理方法は、細線化された線図形の端点と交点とに基づいて、前記線図形の端点もしくは交点間をつなぐ線素または閉曲線ごとの輪郭情報を抽出し、更に、当該抽出された輪郭情報に基づいて、線芯化されたベクトルデータを生成する。【選択図】  図１
2007293829.tif 000002
【特許請求の範囲】
【請求項１】
抽出手段が、細線化された線図形の端点と交点とに基づいて、前記線図形の端点もしくは交点間をつなぐ線素または閉曲線ごとの輪郭情報を抽出する抽出工程と、
線芯化手段が、前記抽出工程で抽出された輪郭情報に基づいて、線芯化されたベクトルデータを生成する線芯化工程と、
を備えることを特徴とする画像処理方法。
【請求項２】
前記抽出工程で抽出される輪郭情報には、前記線素または前記閉曲線ごとの輪郭ベクトルと、前記線図形における端点もしくは交点に対応する前記輪郭ベクトルの部分を示す輪郭点情報とを含むことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記輪郭点情報には、前記輪郭ベクトルを構成する輪郭点が終点となる前記輪郭ベクトルの向き、及び輪郭点が始点となる前記輪郭ベクトルの向きに関する情報が含まれることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記線芯化工程では、前記輪郭情報の位置を半画素単位に調整して線芯化することを特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記抽出工程では、前記細線化された線画像を含む画像を、画素マトリクス単位でラスタ走査し、前記画素マトリクス内の注目画素の値と前記注目画素の周囲の画素値とに基づいて、前記輪郭情報を抽出することを特徴とする請求項１に記載の画像処理方法。
【請求項６】
前記画素マトリクスのサイズは、３画素×３画素であることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記抽出工程では、前記画素マトリクス内の注目画素の値と前記注目画素の周囲の画素値とを、予め定めたパターンのいずれに該当するか判定し、当該判定されたパターンに応じて定められているベクトル列に基づいて、前記輪郭情報を抽出することを特徴とする請求項５に記載の画像処理方法。
【請求項８】
補助ベクトル付きデータ生成手段が、前記線図形における端点もしくは交点に関する情報に基づいて、前記線芯化されたベクトルデータの始端点と終端点とを判別し、当該判別された終端点と始端点との間に挿入する補助ベクトルを生成し、当該生成された補助ベクトルが付加された補助ベクトル付きベクトルデータを生成する補助ベクトル付きデータ生成工程を、更に有することを特徴とする請求項１に記載の画像処理方法。
【請求項９】
前記補助ベクトル付きデータ生成工程では、前記線図形における端点もしくは交点に基づいて、前記線芯化されたベクトルデータに始端点と終端点とがないと判別した場合、閉ループであることを示す情報を当該ベクトルデータに付加することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
平滑化手段が、前記補助ベクトル付きベクトルデータに対して、平滑化処理を実行する平滑化工程と、
非周回ベクトルデータ生成手段が、前記平滑化処理により平滑化されたベクトルデータと、前記始端点と前記終端点とに基づいて、平滑化された非周回型ベクトルデータを生成する非周回ベクトルデータ生成工程と、
を更に有することを特徴とする請求項８に記載の画像処理方法。
【請求項１１】
細線化された線図形の端点と交点とに基づいて、前記線図形の端点もしくは交点間をつなぐ線素または閉曲線ごとの輪郭情報を抽出する抽出手段と、
前記抽出手段で抽出された輪郭情報に基づいて、線芯化されたベクトルデータを生成する線芯化手段と、
を備えることを特徴とする画像処理装置。
【請求項１２】
前記抽出手段で抽出される輪郭情報には、前記線素または前記閉曲線ごとの輪郭ベクトルと、前記線図形における端点もしくは交点に対応する前記輪郭ベクトルの部分を示す輪郭点情報とを含むことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記輪郭点情報には、前記輪郭ベクトルを構成する輪郭点が終点となる前記輪郭ベクトルの向き、及び輪郭点が始点となる前記輪郭ベクトルの向きに関する情報が含まれることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記線芯化手段では、前記輪郭情報の位置を半画素単位に調整して線芯化することを特徴とする請求項１１に記載の画像処理装置。
【請求項１５】
前記抽出手段では、前記細線化された線画像を含む画像を、画素マトリクス単位でラスタ走査し、前記画素マトリクス内の注目画素の値と前記注目画素の周囲の画素値とに基づいて、前記輪郭情報を抽出することを特徴とする請求項１１に記載の画像処理装置。
【請求項１６】
前記画素マトリクスのサイズは、３画素×３画素であることを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記抽出手段では、前記画素マトリクス内の注目画素の値と前記注目画素の周囲の画素値とを、予め定めたパターンのいずれに該当するか判定し、当該判定されたパターンに応じて定められているベクトル列に基づいて、前記輪郭情報を抽出することを特徴とする請求項１５に記載の画像処理装置。
【請求項１８】
前記線図形における端点もしくは交点に関する情報に基づいて、前記線芯化されたベクトルデータの始端点と終端点とを判別し、当該判別された終端点と始端点との間に挿入する補助ベクトルを生成し、当該生成された補助ベクトルが付加された補助ベクトル付きベクトルデータを生成する補助ベクトル付きデータ生成手段を、更に有することを特徴とする請求項１１に記載の画像処理装置。
【請求項１９】
前記補助ベクトル付きデータ生成手段では、前記線図形における端点もしくは交点に基づいて、前記線芯化されたベクトルデータに始端点と終端点とがないと判別した場合、閉ループであることを示す情報を当該ベクトルデータに付加することを特徴とする請求項１８に記載の画像処理装置。
【請求項２０】
前記補助ベクトル付きベクトルデータに対して、平滑化処理を実行する平滑化手段と、
前記平滑化処理により平滑化されたベクトルデータと、前記始端点と前記終端点とに基づいて、平滑化された非周回型ベクトルデータを生成する非周回ベクトルデータ生成手段と
を更に有することを特徴とする請求項１８に記載の画像処理装置。
【請求項２１】
コンピュータを、
細線化された線図形の端点と交点とに基づいて、前記線図形の端点もしくは交点間をつなぐ線素または閉曲線ごとの輪郭情報を抽出する抽出手段と、
前記抽出手段で抽出された輪郭情報に基づいて、線芯化されたベクトルデータを生成する線芯化手段として機能させるためのコンピュータプログラム。
【請求項２２】
請求項２１に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図面や文書画像内などの線図形の画像処理技術に関するものである。
【背景技術】
【０００２】
近年、ペーパーレス化への要求が高まり、既存の画像データを電子化して再利用することが頻繁に行われるようになってきた。従来、画像データの再利用は、画像データを２値化処理した後にベクトル化技術を用いてベクトルデータに変換し、このベクトルデータをＣＡＤソフト等で使用するという形で行われてきている。
【０００３】
２値画像のベクトル化に関しては、出願人は既に特許文献１を提案している。この特許文献１では、画像データにおける注目画素と、その近傍画素の状態を保持し、この注目画素をラスタ走査順に取り出し、その注目画素とその近傍画素の状態に基づいて、水平方向及び垂直方向の画素間ベクトルを検出している。そして、「これら画素間ベクトル同士の接続状態を判別して、この判別された画素間ベクトルの接続状態をもとに、画像データの輪郭を抽出するように動作する。」という手法を提案している。
【０００４】
この特許文献１による手法は、画像の中の全ての輪郭線を１回のラスタ走査順だけで抽出でき、かつ、全画像データを記憶するための画像メモリを必要としないため、メモリの容量を少なくできる効果を有している。
【０００５】
更に、出願人は特許文献２において、特許文献１に開示されるベクトル抽出ルールのモジュール化により効率的な輪郭点抽出が可能であることを開示している。
【０００６】
また、一方で、出願人は特許文献３において、２値画像の輪郭情報を用いて高画質な変倍画像を得る画像処理装置を紹介している。特許文献３は、２値画像からアウトラインベクトルを抽出し、抽出したアウトラインベクトル表現の状態で所望の倍率（任意）で滑らかに変倍されたアウトラインベクトルを作成し、滑らかに変倍されたアウトラインベクトルから２値画像を再生成することによって、任意の倍率で変倍された高画質のデジタル２値画像を得るものである。ここで、２値画像からアウトラインベクトルを抽出する方法の一例として、特許文献１や特許文献２で開示される方法が用いられる。
【０００７】
更に、出願人は既に特許文献４を提案している。特許文献４においては、２値画像の輪郭情報を直線のみならず、２次や３次のベジェ曲線近似をすることで、より少ないデータ量で高画質な変倍画像を表現する輪郭情報を関数近似する処理手法を開示している。
【０００８】
図２(a)〜(d)は、２値画像からアウトラインベクトルを抽出し、抽出したアウトラインベクトル表現を滑らかに関数近似したアウトラインベクトルを用いて所望の倍率で変倍された高画質のデジタル２値画像を得る一連の流れでの各段階でのデータの様子を示す図である。図２(a)は、入力されるラインアート画像の一例を示している。図２(b)は、図２(a)の２値画像から、特許文献１または特許文献２による手法で抽出される輪郭ベクトルデータを輪郭画像として描画して可視化したものである。図２(c)は、同抽出された輪郭ベクトルデータを特許文献３による手法で滑らかに関数近似して得られるアウトラインベクトルを描画して可視化したものである。図２(d)は、同平滑化（関数近似）されたベクトルに囲まれた領域を中塗りして得られる所望の倍率で変倍された高画質のデジタル２値画像の例である。
【０００９】
先述のように、ペーパーレス化への要求が高まりのもと、ビジネス文書においても、既存の画像データを電子化して再利用することが望まれている。原図のもつ各部分の部分的な太さの差や面積等をも、所望とされる変倍率を反映した形で（即ち、原図中での太い部分は変倍後の図中でも相対的に太く、原画中での細い部分では変倍後の図中でも相対的に細く）変倍するような再利用の形態に対しては、上述の特許文献１または特許文献２と特許文献３、若しくは、特許文献１または特許文献２と特許文献４により、オリジナル文書中の２値図形の輪郭（アウトライン）ベクトルを抽出して、２次元形状を任意の拡大縮小率で変倍することで、その実現が可能である。
【００１０】
しかしながら、例えば、ビジネス文書で既存の画像データを再利用する場合や、CAD/CAMシステム等で再利用する場合などに、図形を構成する１本の線を外部輪郭線と内部輪郭線との２本の輪郭線で表したデータよりも、ある図形を構成する１本の線を、線幅情報（線の太さや、線の面積に関する情報）を持たない単なる１本の線（直線、開曲線、閉曲線など）として扱いたい場合がある。
【００１１】
また、もともと太さを意識せずに、細線のみで描かれている線画の再利用の要望も強い。このような細線を再利用する場合、部分的な曲率や長さ等を変更したり、線の集まりの中から一部の線のみを削除したり、別な線を付与したり等の編集操作を行ってから利用することが多い。
【特許文献１】特許第３０２６５９２号公報
【特許文献２】特開平５−１０８８２３号公報
【特許文献３】特許第３０４９６７２号公報
【特許文献４】特開２００５−３４６１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記の特許文献１や特許文献２による方法では、ラスタ走査順に記憶された２値画像から画像中の全ての輪郭線を抽出できる。しかしながら、太さを意識せずに、細線のみで描かれている線画や、ある図形を構成する線を、それぞれ、各線の端点や交点間をつなぐ独立した線や閉曲線の集まりとして抽出することができなかった。一方、上述した従来技術を用いて得られる図２(c)のようなアウトラインベクトルは、図形の線を外側の輪郭線と内側の輪郭線とで表現している。このようなアウトラインベクトルから、端点や交点をつなぐ線で構成される閉図形の集まりを抽出する場合、線図形から抽出される輪郭線のうち、外側輪郭線だけを用いると交点で線を分離することができず、１つの塊になってしまう。また一方、内側の輪郭線のみを用いると、図２(e)に示すように、部分図形間をつなぐ線分や閉図形をはみ出す線分のような部分に対応する輪郭ベクトルが欠落してしまう場合があり、不十分な処理となる。
【００１３】
本発明は、上述の従来例の問題点に鑑みなされたものであり、細線化された２値画像を構成する線図形から輪郭情報を抽出し、抽出した輪郭情報に基づいて線図形を線芯化する画像処理技術を提供する。つまり、１本の線を、内側輪郭線と外側輪郭線の２本で表すのではなく、線の中心を通る１本の線で表すような画像処理技術を提供する。
【００１４】
当該画像処理を行う際は、図形の端点や交点を検出し、それらの端点や交点に基づいて分離される線素あるいは閉曲線ごとに、線情報（ベクトルデータ）を生成する。
【００１５】
更に、これらの画像処理を行う際、画像を走査する回数が少なく済むようにする。また、線素に分離した後、それぞれの線素に対してそのまま平滑化等の画像処理を行うと、線素の端点（つまり、図形の端点もしくは交点）の位置がずれてしまう場合があるので、ずれないようにする技術も提供する。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明の画像処理方法の一形態は、細線化された線図形の端点と交点とに基づいて、前記線図形の端点もしくは交点間をつなぐ線素または閉曲線ごとの輪郭情報を抽出する抽出工程と、前記抽出工程で抽出された輪郭情報に基づいて、線芯化されたベクトルデータを生成する線芯化工程と、を備える。
【００１７】
更に、前記抽出工程では、前記細線化された線画像を含む画像を、画素マトリクス単位でラスタ走査し、前記画素マトリクス内の注目画素の値と前記注目画素の周囲の画素値とに基づいて、前記輪郭情報を抽出するようにしてもよい。
【００１８】
更に、前記線図形における端点もしくは交点に関する情報に基づいて、前記線芯化されたベクトルデータの始端点と終端点とを判別し、当該判別された終端点と始端点との間に挿入する補助ベクトルを生成し、当該生成された補助ベクトルが付加された補助ベクトル付きベクトルデータを生成する補助ベクトル付きデータ生成工程を有するようにしてもよい。
【００１９】
また、前記補助ベクトル付きベクトルデータに対して、平滑化処理を実行する平滑化工程と、前記平滑化処理により平滑化されたベクトルデータと、前記始端点と前記終端点とに基づいて、平滑化された非周回型ベクトルデータを生成する非周回ベクトルデータ生成工程とを更に有するようにしてもよい。
【発明の効果】
【００２０】
本発明によれば、画像内の線を、中心を通る１本の線で表すことができる。
【００２１】
また、ベクトルデータとして得られるので、再利用が容易になる。
【００２２】
さらに、線幅０の線として利用することが可能になる。
【発明を実施するための最良の形態】
【００２３】
（第１実施形態）
図１は本発明の実施形態に係る画像処理装置の機能ブロック図を示す図である。同図において、細線化済２値画像獲得部２００は、２値画像入力部２１０で得た２値画像を、２値画像細線化部２２０で細線化する。２値画像入力部２１０は、スキャナ等の画像入力部２１１と、スキャン画像の２値化処理を行う２値化部２１２とで構成される。２値画像細線化部２２０では、縦横の４方向のいずれかで連結した連結画素（４−連結）に基づいて、２値画像の細線化処理を行うことによって、細線化された２値画像を出力する。即ち、スキャナ等の画像入力部２１１で光電走査により読み取られた画像データを公知の２値化部２１２で閾値処理により２値化する。そして、２値画像細線化部２２０では、例えば、公知の細線化手法であるHilditch法（酒井幸市著"デジタル画像処理の基礎と応用"第２版,ISBN4-7898-3707-6,CQ出版社,2004年2月1日発行,P.51-P.54,等）を用いて、当該得られた２値画像の細線化処理を行う。
【００２４】
図３(a)は、２値画像細線化部２２０に入力される２値画像の一例を示す図である。図３(b)は、図３(a)を入力２値画像とした際の２値画像細線化部２２０から出力される細線化済画像を示す図である。
【００２５】
次に、細線化された２値画像を、端点間毎輪郭（周回）ベクトル抽出部３００で処理する。１回のラスタ走査により、処理対象の細線化済２値画像中の線図形を、それらを構成している端点や交点間をつなぐ独立した線や閉曲線毎のそれぞれに対応したベクトル列の集まり（以降、「端点間毎線素粗輪郭ベクトル」と称する）として抽出し、処理結果を出力する。つまり、細線化された２値画像内に含まれる１画素幅の線図形を、図形の端点及び交点に基づいて、線素（直線あるいは開曲線）と閉曲線とに分割し、当該分割された線素または閉曲線ごとに、それらを囲む輪郭ベクトル列を抽出する処理が行われる。
【００２６】
尚、出力される処理結果には、ベクトル列のそれぞれを構成する各ベクトルが、処理対象の線図形の端点（または交点）位置に対応する部分から抽出されたものか否か等を表す情報（以降、「付与情報」と称することがある）が含まれる。
【００２７】
端点や交点間をつなぐ線素や閉曲線毎に得られたベクトル列（端点間毎線素粗輪郭ベクトル）の集まり（輪郭情報）は、下記のような処理を行うことにより、図形を構成する線について、線幅情報を持たないベクトルデータ（もしくは線幅０のベクトルデータ）を生成する。このようにして生成された線幅情報の無いベクトルデータは、図形を構成する線を１本の線として再利用したい場合や、他のアプリケーションで線幅を変更したい場合などに適している。なお、以下では、付与情報と端点間毎線素粗輪郭ベクトルとを合わせて「端点間毎輪郭（周回）ベクトル」と称する。
【００２８】
端点間毎線芯（周回）ベクトル生成部３１０は、端点間毎輪郭（周回）ベクトル（端点間毎線素粗輪郭ベクトルと付与情報）が入力されると、付与情報を利用して各線素の端点位置を特定し、一画素幅（一画素単位）の線素を囲む輪郭（周回）ベクトルの各ベクトルの位置をそれぞれ半画素分ずつ予め定めた規則に基づいて決まる方向へ微調整することによって、幅０に線芯化された線素の周回ベクトルを表す端点間毎線芯（周回）化済ベクトルを生成する。
【００２９】
図３(c)は、図３(b)を入力２値画像とした際の端点間毎輪郭（周回）ベクトル抽出部３００から出力される端点間毎輪郭（周回）ベクトルを輪郭画像として描画して可視化した結果を示す図である。なお、図３(c)の上方に記載されている図は、端点間毎輪郭（周回）ベクトルを描画した図の一部を拡大した図であり、図形の交点部分では、交わっている線素の端点が重なっている。図３(d)は、端点間毎線芯（周回）ベクトル生成部３１０において端点間毎輪郭（周回）ベクトル（図３(c)）が入力された場合に生成される端点間毎線芯（周回）化済ベクトルを、線画像として描画して可視化した結果を示す図である。
【００３０】
端点間毎補助ベクトル入り（周回）ベクトル生成部３２０は、端点間毎線芯（周回）ベクトル生成部３１０から入力される端点間毎線芯（周回）化済ベクトルに対して、端点に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ようにするために、補助ベクトルを挿入付加して、端点間毎補助ベクトル入り（周回）ベクトルを生成する。これは、端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０により平滑化処理（関数近似処理）される際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならないようにするための処理である。この処理の詳細は後述する。更に、補助ベクトルを挿入された各端点間毎補助ベクトル入り（周回）ベクトルのそれぞれに対し、どのベクトルが端点部にあたるかを明示する始端点・終端点情報を生成する。なお、端点のどちらが始点になるか終点になるかは、予め定めておいた規則に基づいて決定される。
【００３１】
図３(e)は、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０で生成された端点間毎補助ベクトル入り（周回）ベクトルを線画像として描画して可視化した結果を示す図である。
【００３２】
端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０は、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０で生成された端点間毎補助ベクトル入り（周回）ベクトルに対して、各（周回）ベクトル毎に平滑化（関数近似）処理を行い、平滑化（関数近似）された平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルを生成する。
【００３３】
端点間毎平滑化済ベクトル同定（非周回化）部３４０は、平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルと、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０より得られる始端点・終端点情報とが入力されると、各平滑化済の（周回）ベクトル毎にそれぞれ始端点と終端点となるベクトル部分を同定して、始端点と終端点の間を結ぶ非周回型のベクトル列（始端点から終端点へ向かう１方向のベクトル列）を生成する。そして、平滑化済ベクトル出力部３５０を介して、当該生成された端点間毎平滑化済非周回型ベクトルデータをファイル出力もしくは通信Ｉ／Ｆ等を介して外部装置に出力する。
【００３４】
図３(f)は、図３(e)の端点間毎補助ベクトル入り（周回）ベクトルに対して、平滑化と非周回化とを行うことにより生成される端点間毎平滑化済（非周回）ベクトルを線画像として描画して可視化した結果を示す図である。
【００３５】
図４は、上述の機能ブロックによる処理を実現する画像処理装置の構成を例示する図である。同図において、５１８は、画像処理装置のバスを表している。１は図１の２値画像入力部２１０の画像入力部２１１を構成するスキャナである。２は画像メモリであり、３は画像入出力Ｉ／Ｏである。画像メモリ２は画像入出力Ｉ／Ｏ３を介して、スキャナ１で読み取られた２値化前の多値画像を保持したり、２値化された後の２値画像データを保持するものであり、ともに図１の２２０に示される２値画像細線化部を構成している。５は端点間毎輪郭（周回）ベクトル抽出部であり、図１の端点間毎輪郭（周回）ベクトル抽出部３００を構成している。５０は入力画像ラスタ走査部であり、画像入出力Ｉ／Ｏ３を介して信号線５００より細線化済２値画像データを順次入力する。５１３と５１４は３×３の９画素で構成される走査窓の各画素の状態を入力する入力ポートである。４は、ネットワーク等を経由して、システムの外部と通信する通信Ｉ／Ｆである。５１９はCPUである。５２０はRAMで、ワーキングメモリである。６はROMで、後に説明する手順に沿ってＣＰＵ５１９で実行されるプログラムや予め定められるパラメータやデータ等を格納している。これらのＣＰＵ５１９やメモリ５２０、ＲＯＭ６により、図１の端点間毎線芯（周回）ベクトル生成部３１０、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０、端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０、端点間毎平滑化済ベクトル同定（非周回化）部３４０が実現される。５２１はハードディスク５２２とのI/O（入出力回路）である。
【００３６】
以下の説明では、主として、図５、図６、図１０〜図２５等を用いて端点間毎輪郭（周回）ベクトル抽出部３００での処理内容を説明する。
【００３７】
本実施形態では、図６に示すように、２値画像における注目画素（101）と、その近傍の８個の画素の状態を見て処理を進めるもので、注目画素をラスタ走査し、１画素毎にずらしながら画像全体の処理を逐次実行する。つまり、３ｘ３の画素マトリクス単位で画像をラスタスキャンしながら検査していく。つまり、注目画素の画素値と周囲の画素の画素値とに基づいて検査していくことになる。
【００３８】
図６において、×は注目画素101を表しており、「0」及び「2」で示された位置は、主走査方向に対し注目画素101と同じ位置にあり、且つ副走査方向にそれぞれ１ラスタ前の画素（０）及び１ラスタ先の画素（２）を示す。「1」及び「3」で示された位置は、注目画素101から主走査方向にそれぞれ１画素前の画素（３）及び１画素先の画素（１）を示している。更に、「A」及び「B」は、主走査方向に１画素先の位置で且つそれぞれ副走査方向に１ラスタ前及び１ラスタ先の位置にある画素を示す。また、「C」及び「D」は注目画素101から主走査方向に１画素前の位置で且つそれぞれ副走査方向に１ラスタ先及び１ラスタ前の位置にある画素を示す。 
図５は、図４における端点間毎輪郭（周回）ベクトル抽出部５の構成例をより詳細に示す図である。同図において、図４と同様に５０は入力画像ラスタ走査部であり、画像入出力Ｉ／Ｏ（３）を介して信号線５００より細線化済２値画像データを順次入力する。
【００３９】
501は信号線500をより入力される画像データをやりとりするための入力制御（インターフエース）回路である。この信号線500よりラスタ走査形式で順次２値画像データが入力されてくる。502はラッチで、501より入力された画像データを、図示しない画素同期クロツクに同期して１画素づつ順次更新しながら保持する。次の画素同期クロツクにて、ラッチ502は次の画素データを入力制御回路501より入力する。この時、既に保持していた画素データは、その画素クロツクに同期してラッチ503にラッチされて、保持される。同様にラッチ503に保持されていた画素データは、次の画素同期クロツクにて、ラッチ504に保持される。
【００４０】
505及び506はそれぞれ１ラスタ分の画素データを保持するFIFO（ファーストイン・ファーストアウト・メモリ）である。FIFO505は、ラッチ504の出力を順次、画素同期クロツクに同期して取り込み、１ラスタ前のデータをラッチ507へ出力する。同様に、FIFO506も、ラッチ509の出力を取り込み、ラッチ510に１ラスタ前の画素データを出力する。ラッチ507、508、509及びラッチ510、511、512は共にラッチ502、503、504と全く同様に動作する。
【００４１】
このようにして、ラッチ502、503、504、507、508、509、510、511及び512に記憶された９個の画素は、図６に示した９（３×３）画素よりなる領域の画素データを記憶していることになる。即ち、これらラッチのデータは、それぞれ図６の"B","2","C","1","×","3","A","0","D"に対応している。
【００４２】
５１３と５１４は３×３の９画素で構成される走査窓の各画素の状態を入力する入力ポートである。513、514は共にCPU519の入力ポートで、入力ポート513は、ラッチ510、502、504、512のデータを、即ち、それぞれ図６における"A"、"B"、"C"、"D"の位置のデータをCPU519に入力する。同様に、入力ポート514はラッチ511、507、503、509、508のデータ、即ち、"0"、"1"、"2"、"3"、"×"の位置のデータとして入力する。
【００４３】
515は主走査方向の画素位置を示す主走査カウンタであり、図示しない副走査同期信号によりリセットされ、画素同期信号によりカウントアツプする。516は副走査方向の画素位置を示す副走査カウンタで、図示しないページ同期信号によりリセットされ、副走査同期信号によりカウントアツプされる。517は入出力制御用の入出力ポートであり、入力制御回路501に対し画素データ入力の実行及び保留を指示する信号、及び入力制御回路501よりCPU519への画素データ更新を知らせる信号等を保持する。521はハードディスク522の入出力制御装置である。入出力制御ポート517、主走査カウンタ515、副走査カウンタ516、入力ポート513、514、メモリ520、ディスクI/O521はバス518を介してCPU519に接続されている。
【００４４】
こうして、CPU519は入出力制御ポート517を介して、画素データの更新を行い、主走査カウンタ515及び副走査カウンタ516を介して、注目画素の画素位置（i,j）を知ることができる。また、入力ポート513及び514を介して、注目画素及びその近傍の８方向の画素の状態を知ることができる。
【００４５】
注目画素の処理が終了すると、CPU519は入出力制御ポート517を介して９個のラッチに記憶される画素データの更新を指示し、同時に画素データの更新完了の信号をリセットする。入力制御回路501は、この更新の指示を受けると、画素データの更新指示の信号をクリアするとともに、後段のラッチにラッチされる画素データを更新し、この更新が終了すると入出力制御ポート517に、更新完了の信号を出力する。
【００４６】
CPU519は、更新指示の出力後、入出力制御ポート517より更新完了の信号が入力されるのを監視している。この更新完了の信号が入力されると、新たに９個のラッチに記憶された画素データに関する処理を実行し、以下同様の処理を繰り返す。また、入力制御回路501は、画像領域の最終画素を注目画素として処理し終えた際に、入出力制御ポート517に終了信号を出力する。
【００４７】
次に注目画素及びその近傍の８画素の状態に応じた、それぞれの場合の処理を説明する。注目画素が白画素である場合は、その処理を終了してラスタ走査を１画素分進め、注目画素位置を更新する。注目画素が黒画素の場合は、近傍の画素の状態によって以下の処理を行なう。
【００４８】
図１０〜図２５は、近傍画素の状態に応じて抽出される輪郭ベクトルを示す図である。図１０〜図２５において、内部が斜めのチェッカーパターンで埋められた大き目の○印は黒画素を示し、白画素は大き目の点線の○印で表記してある。「d」は"do no care"、即ち、「d」の表示のある位置の画素は白画素でも黒画素でも構わないことを示している。
【００４９】
また、図１０〜図２５の各画素マトリクスにおいて、黒丸「●」印、白丸「○」印は、横方向ベクトルの始点、縦方向ベクトルの終点を示している。また、黒三角「▲」印、白三角「△」印は縦方向ベクトルの始点、横方向ベクトルの終点を示している。これらのベクトルの始点・終点間の実線矢印は、始点及び終点共に定まった矢印の向く方向の輪郭ベクトルを表している。一方、点線矢印は、始点もしくは終点のいずれか一方のみが定まった、矢印の向く方向の輪郭ベクトルを表している。これら輪郭ベクトルの始点及び終点を総称して、以降、「輪郭点」と呼ぶことにする。
【００５０】
また、黒丸「●」印と黒三角「▲」印は端点部から抽出されるベクトルの始点・終点で、それぞれ端点部から抽出される横方向ベクトルの始点及び縦方向ベクトルの終点、端点部から抽出される縦方向ベクトルの始点及び横方向ベクトルの終点であることを示している。
【００５１】
図１０〜図２５のそれぞれの輪郭点には、対応付けられる付与情報として、図９の一覧表に示した輪郭点情報の何れかが付記されているものとする。この輪郭点情報が、各輪郭点情報に付記されて抽出される付与情報となる。
【００５２】
図９のNo.01〜16に示される１６種の輪郭点情報は、「ｘｘｘ_ｙｙｙ_ｚｚｚ」または「ｘｘｘ_ｙｙｙ」なる形で表記されており、いずれも、"ｘｘｘ"の部分は、対象の輪郭点が終点となるベクトルの向きを表し、"ｙｙｙ"の部分は、同輪郭点が始点となるベクトルの向きを表している。上向きを UP 、下向きを DOWN 、右向きを RIGHT 、左向きを LEFT と表現する。例えば、No.01〜03はいずれも、上向きベクトルの終点かつ右向きベクトルの始点になっている輪郭点であることを意味している。
【００５３】
尚、「_ｚｚｚ」の部分は、この付与情報をもつ輪郭点が、端点部から抽出されたものであることを意味していて、図９の端点情報の欄に記載してある。ここで、「_TL」は、線素の上端部の左側(Top Left)から抽出された端点であることを示し（図７(a)参照）、「_LT」は、線素の左端部の上側(Left Top)から抽出された端点であることを示している（図７(b)参照）。「_BR」は、線素の下端部の右側(Bottom Right)から抽出された端点であることを示し（図７(d)参照）、「_RB」は、線素の右端部の下側(Right Bottom)から抽出された端点であることを示している（図７(c)参照）。また、「_LB」は、線素の左端部の下側(Left Bottom)から抽出された端点であることを示し（図７(b)参照）、「_BL」は、線素の下端部の左側(Bottom Left)から抽出された端点であることを示している（図７(d)参照）。「_RT」は、線素の右端部の上側(Right Top)から抽出された端点であることを示し（図７(c)参照）、「_TR」は、線素の上端部の右側(Top Right)から抽出された端点であることを示している（図７(a)参照）。線素の端点ではない部分（以降、「非端点部」と称する）から抽出される輪郭点には、この「_ｚｚｚ」部のない輪郭点情報が付与され、これらの例を図８(a)〜(d)に示す。但し、注目画素が黒画素の場合で、近傍の画素の状態によって、図１０〜図２５に各状態における輪郭点とその付与情報を抽出する際の実際の処理においては、上述の図９の輪郭点情報は図９の「値」の欄に対応する値をもって、抽出されるように構成するものとする。
【００５４】
図８において、黒画素は内部が斜めのチェッカーパターンの丸印で示され、白画素は点線の白丸印で表記されている。これら輪郭ベクトルの始点・終点位置は、主走査方向及び副走査方向共に、画素と画素の中間の位置にあるものとする。また、主走査方向及び副走査方向共に、画素のある位置は正整数で示され、画素位置を２次元の座標で表現する。但し、ここでは小数の表現を避けるために便宜上、以降の画素位置を偶数のみで表現することにし、始点、終点の位置を奇数の整数で表現することにする。
【００５５】
即ち、主走査方向ｍ画素x副走査方向n画素の画像は、2mx2nの正の偶数（整数）の座標表現で表すものとする。このように、主走査方向をｘ座標、副走査方向をｙ座標とした２次元座標であらわすとき、これ以降２値画像は、それぞれがｍ画素よりなるｎラスタで構成されるmxn画素（m、nは正の整数）でなるものとし、第ｊ番目のラスタにおける第ｉ番目の画素位置を（2i,2j）（i,jは正の整数で、ｉ≦m,j≦ｎ）で表現するものとする。また、主走査方向（ｘ座標）は左から右に向かう方向が正の方向であり、副走査方向（ｙ座標）は上から下に向かう向きが正の方向とする。
【００５６】
以下、端点間毎輪郭（周回）ベクトル抽出部３００の一連の動作を図２６〜図２８のフローチャートに従って説明する。
【００５７】
本実施形態の処理は、４方向の連結画素に基づいて細線化された２値画像において、端点と交点を検出しつつ、端点や交点をつなぐ互いに独立した線素や閉曲線の集まりとして、それぞれの線成分に対応する独立したベクトル群を抽出し、加えて、各輪郭点に輪郭点情報をも付与して抽出できる。したがって、その機能は特許文献１と大きく異なる。
【００５８】
また、図１０〜図２５に示したように使用する画素マトリクス（３画素×３画素）の画素パターン群も特許文献１と異なる。しかしながら、３画素×３画素の９画素で構成される走査窓を用いて、画像をラスタ走査し、逐次３画素×３画素の画素パターンとして注目画素とその近傍の８画素の状態を判断しながら、輪郭点を抽出していく点で、各３画素×３画素の画素パターンに応じた輪郭点と輪郭点情報の抽出する処理以外の処理は、基本的には特許文献１の開示する抽出動作と同様に構成することができる。
【００５９】
図２６は、本実施形態の画像処理装置のCPU519による輪郭抽出処理の全体の流れを示すフローチヤートである。まずステップＳ１において、２値画像データからベクトル列を各輪郭点に関する輪郭点情報とともに抽出する。そして、各ベクトルの始点の座標及びこのベクトルに流入してくる（このベクトルの始点の座標が終点となっている）ベクトル、流出してゆく（このベクトルの終点の座標が始点となっている）ベクトルを出力する。
【００６０】
ステップＳ２において、流入及び流出ベクトルより、図２９に示すような画像中の総輪郭線数（線素の総数）、輪郭線毎の輪郭点の総点数、輪郭線中の各点のｘ座標、ｙ座標と各点の輪郭点情報の組み合わせを記憶したテーブルを作成する。
【００６１】
次に、ステップＳ３に進み、ディスクI/O521を介して、このテーブル情報ファイル形式でハードディスク522に記憶して、一連の動作を終了する。
【００６２】
図２７は図２６のステップＳ１のベクトル列抽出処理を示すフローチヤートである。まずステップＳ１１において、入力ポート514のビツト４（注目画素"Ｘ"）を見ることにより、注目画素が白画素か黒画素かを判定する。白画素の場合はステップS13へ進み、黒画素の場合はステップS12へ進む。ステップS12では、注目画素の周囲８画素の状態を見て、その状態に応じた適当な処理ルーチンをコールし、輪郭ベクトルを抽出する。
【００６３】
ステップS13では、前述の如く入出力制御ポート517を介して画素位置の更新を指示する。そして、入出力制御ポート517より更新完了の信号を入力するとステップS14に進み、入出力制御ポート517を介して、最終画素の処理が終了したか否かを判断する。終了していなければステップS11へ戻り、次の注目画素も同様に処理を行う。一方、ステップＳ１４で終了していると判断すれば、元のルーチンにリターンする。
【００６４】
図２８は図２７のステップS12に示された周囲画素の状態により実行される処理を示すフローチヤートである。
【００６５】
ステップS21において、CPU519のレジスタを「0」にクリアする。次に、ステップS22に進み、図６の「0」で示された位置の画素の状態（以下、「ｆ（０）」で表現する）が黒画素（以降、「1」で表す）であれば、ステップS23へ進み、白画素（以降、「0」で表す）であればステップS24へ進む。
【００６６】
ステップS23ではレジスタの内容に１を加える。
【００６７】
次に、ステップS24に進み、図６の「1」の位置の画素の状態が黒画素であれば（ｆ（１）＝１）、ステップS25へ進み、レジスタの内容に２を加える。ｆ（１）＝０であればステップS26に進み、同様に図６の「2」の位置の画素が黒画素かどうかを判断する。ｆ（２）＝１（黒画素であれば）であればステップS27へ進み、レジスタの内容に４を加える。 
次にステップS28に進み、図６の「3」の位置の画素に注目し、ｆ（３）＝１ならステップS29へ進み、レジスタの内容に８を加えるが、そうでなければステップS30へ進む。ステップS30では、レジスタの保持する値の処理番号のルーチンをコールする。
【００６８】
これにより、レジスタの内容は、図６に示した「0」、「1」、「2」、「3」の画素位置の各画素の状態に応じて、０〜15の値を取り得る。これらは、その値に応じてそれぞれ、図１０の（ケース（case）０）、図１１の（ケース１）、図１２（ケース２）、図１３（ケース３）、図１４（ケース４）、図１５（ケース５）、図１６（ケース６）、図１７（ケース７）、図１８（ケース８）、図１９（ケース９）、図２０（ケース10）、図２１（ケース11）、図２２（ケース12）、図２３（ケース13）、図２４（ケース14）、図２５（ケース15）に示されている。
【００６９】
図２８のステップＳ３０において、図１０〜図２５に示される様に定義された輪郭点とその輪郭点情報とをそれぞれのケースに応じて抽出する。端点間毎輪郭（周回）ベクトル抽出部３００は、１回のラスタ走査のみにより、４方向連結画素に基づいて細線化された２値画像（線図形）から、それらを構成している端点や交点間をつなぐ独立した線や閉曲線毎のそれぞれに対応したベクトル列の集まり（「端点間毎線素粗輪郭ベクトル」）と、その輪郭点情報とを抽出し、その処理結果を出力する。これらは、例えば、図２９に示したような形式として出力される。同図における第一輪郭や第二輪郭、第ａ輪郭といったまとまりとして各線素から抽出されたベクトル列を表し、それらの輪郭点ごとに輪郭点情報が付与された形式となっている。
【００７０】
図３１に線図形の入力例と、これから抽出される端点間毎輪郭（周回）ベクトル、即ち、端点間毎線素粗輪郭ベクトル（細線化された線素を周回するベクトル列）と、輪郭点情報を示す。
【００７１】
次に、図３０に示すフローチャートにより、端点間毎線芯（周回）ベクトル生成部３１０の動作を説明する。ここでは、輪郭情報を半画素単位に調整して線芯化することになる。同図において、処理を開始すると、ステップＳ１００において、端点間毎輪郭（周回）ベクトル抽出部３００より得られた、端点間毎輪郭（周回）ベクトルを入力する。なお、端点間毎輪郭輪郭（周回）ベクトルは、線図形の端点（交点）位置に対応する部分から抽出されたものか否か等を表す情報（付与情報）と、端点や交点間をつなぐ線素（独立した線や閉曲線）毎のそれぞれに対応したベクトル列の集まり（端点間毎線素粗輪郭ベクトル）とで構成されている。
【００７２】
次に、ステップＳ１１０では、ステップＳ１００で入力した図２９に示したような形式の端点間毎輪郭（周回）ベクトルから、中に含まれる１つのベクトル列（図２９の第ｋ輪郭（１≦ｋ≦ａ））を当面の処理対象としてステップＳ１１０が実行されるたびに順次昇順に定める。
【００７３】
ステップＳ１２０では、Ｓ１１０で定めたベクトル列（総点数ｐとする）の中の１つのベクトルの輪郭点（第ｑ点（１≦ｑ≦ｐ））を当面の処理対象としてステップＳ１２０が実行されるたびに順次昇順に定める。
【００７４】
ステップＳ１３０では、ステップＳ１２０で定めた輪郭点の輪郭点情報を参照して、この輪郭点を終点とするベクトルか、若しくは、この輪郭点を始点とするベクトルのいずれかが左向き（ＬＥＦＴ）か否かを判定し、左向きの場合は、ステップＳ１４０に進み、そうではない場合にはステップＳ１５０に進む。
【００７５】
ステップＳ１４０では輪郭点（座標値を(2i, 2j)とする）のｙ座標値を１減じて（副走査方向に半画素分原点側にずらして）、ステップＳ１６０に進む。
【００７６】
ステップＳ１５０では、輪郭点のｙ座標値を１増やして（副走査方向に半画素分原点とは反対側にずらして）、ステップＳ１６０に進む。
【００７７】
ステップＳ１６０では、輪郭点の輪郭点情報を参照して、この輪郭点を終点とするベクトルか、もしくは、この輪郭点を始点とするベクトルのいずれかが上向きか否かを判定し、上向き（ＵＰ）の場合は、ステップＳ１７０に進み、そうではない場合にはステップＳ１８０に進む。
【００７８】
ステップＳ１７０では輪郭点のｘ座標値を１増やして（主走査方向に半画素分原点とは反対側にずらして）、ステップＳ１９０に進む。
【００７９】
ステップＳ１８０では、輪郭点のｘ座標値を１減じて（主走査方向に半画素分原点側にずらして）、ステップＳ１９０に進む。
【００８０】
ステップＳ１９０では、ステップＳ１１０で定めたベクトル列内の全ての輪郭点の吟味が終わったか否かを判定し、そうであればステップＳ２００へ進み、そうでなければ、同ベクトル列内の次の輪郭点にステップＳ１３０からステップＳ１９０までの処理を施すべくステップＳ１２０に戻る。
【００８１】
ステップＳ２００では、ステップＳ１００で入力した端点間毎線素粗輪郭ベクトル中の全てのベクトル列の処理が終了したか否かを判定し、そうであればステップＳ２１０へ進み、そうでなければ、先のベクトル列に対してステップＳ１２０からステップＳ２００までの処理を施すべくステップＳ１１０へ戻る。
【００８２】
ステップＳ２１０では、ステップＳ１００で入力した端点間毎線素粗輪郭ベクトルに対する処理結果を出力する。
【００８３】
尚、ステップＳ１３０やステップＳ１６０での判定は、先の図９における「値」欄の数値を輪郭点情報としているので、これらの数値を２進数で表現した際のLSBをbit0、MSBをbit7とすると、ステップ１３０ではbit2（図９では「右向(0)左向(1)」欄）を調べて、0なら右向き、1なら左向きと判定することができる。ステップ１６０ではbit3（図９では「上向(0)下向(1)」欄）を調べて、0なら上向き、1なら下向きと判定することができる。 
端点間毎輪郭（周回）ベクトル抽出部３００より得られた、端点間毎輪郭（周回）ベクトル（即ち、線図形の端点（交点）位置に対応する部分から抽出されたものか否か等を表す情報（付与情報）と、端点や交点間をつなぐ線素（独立した線や閉曲線）毎のそれぞれに対応したベクトル列の集まり（端点間毎線素粗輪郭ベクトル）とで構成される）を入力し、付与情報を利用して、一画素幅の幅を持った線素の輪郭（周回）ベクトルの各ベクトルの位置をそれぞれ半画素分ずつ相応する方向へ予め定める規則により微調整することによって、幅０に線芯化された端点間毎線芯（周回）化済ベクトルを生成する。なお、端点間毎線芯（周回）化済ベクトルもまた、例えば、図２９に示したような形式として表現でき、本実施形態では、この形式で出力されるものとする。
【００８４】
図３１に、端点間毎線素粗輪郭ベクトル（１画素幅の線素の周囲のベクトル列）と、輪郭点情報から幅０に線芯化された端点間毎線芯（周回）化済ベクトル（線素上に描かれたベクトル列）の例を示す。
【００８５】
次に、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０の動作を説明する。端点間毎補助ベクトル入り（周回）ベクトル生成部３２０は、端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０により平滑化（関数近似）処理される際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならぬように、端点部分に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ように補助ベクトルを挿入する。加えて、各平滑化済の（周回）ベクトル毎の始端点・終端点情報も生成する。この始端点・終端点情報は、次々工程である端点間毎平滑化済ベクトル同定（非周回化）部３４０において、平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルから、各平滑化済の（周回）ベクトル毎にそれぞれの始端点と終端点となるベクトルを同定（判別）して、始端点と終端点の間の非周回型のベクトル列を生成するために用いられる。
【００８６】
本実施形態では、端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０は、補助ベクトル入りのベクトルデータを平滑化するので、端点を保持した状態で、線芯化されたベクトルの平滑化を行うことができる。
【００８７】
本実施形態に係る端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０によれば、ベクトル平滑化（関数近似）の流れは、以下のとおりである。
【００８８】
まず、粗輪郭データと称して、２値のラスタ画像のデータより抽出された、水平ベクトル、垂直ベクトルが交互に並ぶ構成となる輪郭データを入力とし、粗輪郭上の線分より接線線分を抽出する。
【００８９】
抽出された接線線分よりアンカーポイントを抽出し、抽出されたアンカーポイント間の線分により構成されるグループを2次もしくは３次ベジェ曲線、及び直線をあてはめ、あるいは、ベジェ曲線近似を行い、3次もしくは2次のベジェ曲線により置き換えていく。
【００９０】
ここで、アンカーポイントとして定めた点をもとに、アンカーポイント間にある輪郭点を１つのグループとして関数近似していく方法は、関数近似法としての基本的な手法である。また、アンカーポイントは、その間が、2次もしくは３次ベジェ曲線、及び直線のいずれに関数近似されたとしても、アンカーポイント自体の位置（座標値）は、変化しないという特徴をもつ。
【００９１】
本実施形態に係る端点間毎補助ベクトル入り（周回）ベクトル生成部３２０では、端点間毎線芯（周回）化済ベクトルの端点のそれぞれを、一方を始端点と他方を終端点とし、かつ、それらがともにアンカーポイントとなるように始端点と終端点間に補助ベクトル（補助輪郭点）を挿入していく処理をする。
【００９２】
接線線分とするベクトルの抽出の条件としては、（１）注目するベクトルの前後のベクトルの向きが互いに逆向きであるもの、（２）抽出済みの主接線線分に隣接し、ベクトルの長さＬ１がＬ１≧θ１（パラメータ）を満たすもの、（３）ベクトルの長さＬ２がＬ２≧θ２（パラメータ）を満たすもの等が条件となる。ここで、条件に使用されるパラメータθ１〜θ２は、解像度に依存する一定値でもよく、また、アウトラインサイズ等のオブジェクトサイズにより、適応的に変更しても良い。
【００９３】
アンカーポイントの抽出に関して、抽出された接線線分上に新たな点を抽出し、それをアンカーポイントとする。アンカーポイントは接線線分の端２つに対しそれぞれ抽出される。よって、一つの接線線分に対し２つのアンカーポイントが抽出されるが、２つのアンカーポイントが一致した場合には一つのアンカーポイントのみ抽出されることになる。２つのアンカーポイントが抽出される場合は、アンカーポイントに挟まれた部位は自動的にオブジェクト上の直線となる。接線線分上の一つの端点に対するアンカーポイント抽出方法としては、注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとすることができる。
【００９４】
そこで、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０は、点間毎線芯（周回）化済ベクトルの端点のそれぞれを、一方を始端点とし、他方を終端点とし、かつ、それらがともにアンカーポイントとなるように、補助点を挿入する。
【００９５】
図３２(a)を用いて、始端点としたい端点Ｐ０の直前に挿入する補助輪郭点Ｐ-1の挿入方法を説明する。補助輪郭点Ｐ-1を始点とする補助ベクトルＶ-1が、始端点としたい端点Ｐ０の直後の輪郭点Ｐ1を始点とするベクトルＶ1と逆向きになるように、補助輪郭点Ｐ-1を定める。このようにすれば、接線線分の抽出条件の（１）から、ベクトルＶ０が接線線分となる。
【００９６】
また、補助輪郭点Ｐ-1を始点とする補助ベクトルＶ-1が上述の接線線分の抽出条件の（３）を満たすように十分な長さを持つようにする。このようにすれば、補助ベクトルＶ-1もまた接線線分となる。補助ベクトルＶ-1とベクトルＶ０とが共に接線線分となることにより、上述のアンカーポイント抽出方法における「注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする」という条件から、始端点としたい端点Ｐ０をアンカーポイントとすることができる。 
次に、図３２(b)を用いて、終端点としたい端点Ｐnの直後に挿入する補助輪郭点Ｐn+1の挿入方法を説明する。補助輪郭点Ｐn+1を終点とする補助ベクトルＶnが、終端点としたい端点Ｐnの直前の輪郭点Ｐn-1を終点とするベクトルＶn-2と逆向きになるように、補助輪郭点Ｐn+1を定める。このようにすれば、上述の抽出条件（１）から、ベクトルＶn-1が接線線分となる。また、補助輪郭点Ｐn+1を終点とする補助ベクトルＶnが上述の接線線分の抽出条件（３）を満たすように十分な長さを持つようにする。このようにすれば、補助ベクトルＶnもまた接線線分となる。
【００９７】
補助ベクトルＶn-1とベクトルＶnとが共に接線線分となることにより、上述のアンカーポイント抽出方法における「注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする」という条件から、終端点としたい端点Ｐnをアンカーポイントとすることができる。
【００９８】
このように、始端点と終端点がアンカーポイントになるように、それぞれ、始端点の直前への挿入点と、終端点の直後への挿入点を定めたのち、これらの挿入点が水平ベクトルと垂直ベクトルの連続で連結される。始端点から終端点までの本来の輪郭点列と、終端点の直後から始端点の直前までの挿入点を経て再び始端点につながる一連の輪郭点列を生成する。更に、この一連の輪郭点列の中で、どれが、始端点と終端点であるかを同定するための情報とを加えた始端点・終端点情報を生成する。本実施形態では、輪郭点列中の始端点の座標値と終端点の座標値そのものを改めて別途生成することで、始端点・終端点情報とする。
【００９９】
次に、図３３に示すフローチャートにより、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０の動作を説明する。
【０１００】
ステップＳ３００において、端点間毎線芯（周回）ベクトル生成部３１０より得られた、幅０に線芯化された端点間毎線芯（周回）化済ベクトルを入力する。
【０１０１】
次に、ステップＳ３１０では、ステップＳ３００で入力した図２９に示す形式の端点間毎線芯（周回）化済ベクトルから、その中に含まれる１つのベクトル列（図２９の第ｋ輪郭（１≦ｋ≦ａ））を当面の処理対象とする。
【０１０２】
次に、ステップＳ３２０では、Ｓ３１０で定めたベクトル列（総点数ｐとする）の中の１つのベクトルの輪郭点（第ｑ点（１≦ｑ≦ｐ））を処理対象として定め、ステップＳ３３０で始端点か否か判断する。ステップＳ３３０で始端点が見つけられるまでの間、ステップＳ３２０が実行されるたびに第１点から第ｐ点までを昇順に順次１点ずつ処理対象として定める。
【０１０３】
次に、ステップＳ３３０では、ステップＳ３２０で定めた輪郭点の輪郭点情報を参照して、この輪郭点が始端点とすべきベクトルか否かを判定する。この輪郭点が始端点とすべきベクトルの場合は、ステップＳ３６０に進み、そうではない場合にはステップＳ３４０に進む。ここで、輪郭点が始端点とすべきベクトルか否かは、その輪郭点の輪郭点情報を参照して、先に説明した図９で表記しているところの「UP_RIGHT_LT(03H)」、「DOWN_LEFT_RB(0FH)」、「LEFT_UP_BL(17H)」、「RIGHT_DOWN_TR(1BH)」のいずれかであるか否かにより判定する。これらは、図９の「値」の数値の bit1 と bit0 が共に「1」であるか否かを調べることで実現することもできる。
【０１０４】
ステップＳ３４０では、ステップＳ３１０で入力した端点間毎線芯（周回）化済ベクトルの中に含まれる１つのベクトル列中の全てのベクトルの処理が終了したか否かを判定する。終了していなければ、該当するベクトル列中の次のベクトルに対してステップＳ３３０の判定を施すべくステップＳ３２０へ戻る。
【０１０５】
一方、ステップＳ３１０で入力したベクトル列中に、始端点候補が存在しなかった場合は１ベクトル列の処理が終了したと判定して、ステップＳ３５０へ進む。
【０１０６】
ステップＳ３５０において、ベクトル列は端点のない閉ループである旨を示す閉ループマーカをベクトル列に対して付与した上で、それに加えて、ベクトル列中の一連の各ベクトルをそのまま出力する。
【０１０７】
図３７（ａ）は、ステップＳ３５０で出力するデータ形式を例示する図である。対象としたベクトル列を第ｓ番目の輪郭とすると、そのベクトル列中にはｖ個のベクトルが含まれている。
【０１０８】
尚、閉ループマーカとして、端点座標としては本来ありえない（-1,-1）の座標値を２点分の始端点・終端点情報として付与する。
【０１０９】
ステップＳ３５０の処理を終えると、ステップＳ４２０へ処理を進める。
【０１１０】
一方、ステップＳ３６０において、輪郭点を始端点として登録し、かつ、その他の輪郭点とともに出力してステップＳ３７０へ処理を進める。
【０１１１】
ステップＳ３７０では、ステップＳ３１０で定めたベクトル列（総点数ｐとする）の中から、前記登録した始端点の次の輪郭点から順に、１つのベクトルの輪郭点（第ｑ点（１≦ｑ≦ｐ））を入力する。そして、ステップＳ３８０で終端点が見つけられるまでの間、ステップＳ３７０で最初に定められた輪郭点以降の点から第ｐ点に向けて昇順に順次１点ずつ当面の処理対象として定め、ステップＳ３８０に処理を進める。
【０１１２】
次に、ステップＳ３８０では、先のステップＳ３７０で定めた輪郭点の輪郭点情報を参照して、この輪郭点が終端点とすべきベクトルか否かを判定する。この輪郭点が終端点とすべきベクトルの場合は、ステップＳ４００に処理を進め、そうではない場合にはステップＳ３９０に処理を進める。
【０１１３】
ここで、輪郭点が終端点とすべきベクトルか否かは、その輪郭点の輪郭点情報を参照して、先に説明した図９で表記している「UP_RIGHT_TL(01H)」、「DOWN_LEFT_BR(0DH)」、「LEFT_UP_LB(15H)」、「RIGHT_DOWN_RT(19H)」のいずれかであるか否かをもってその判定を行なう。これらは、図９の「値」の数値の bit1 と bit0 がそれぞれ 「0」 と 「1 」であるか否かを調べることで実現することもできる。
【０１１４】
ステップＳ３９０では、当該処理対象の輪郭点を、始端点〜終端点間を構成するベクトルの１つとして出力してステップＳ３７０へ戻る。
【０１１５】
ステップＳ４００では、当該処理対象の輪郭点を終端点として登録し、かつ、ステップＳ３９０で出力された輪郭点を始端点〜終端点間を構成するベクトルとして出力してステップＳ４１０へ進む。
【０１１６】
ステップＳ４１０では、ベクトル列の始端点と終端点の両方が定まり、かつ、始端点〜終端点間の一連の各ベクトルも出力された状態となっており、ここでは、終端点〜始端点の間に挿入される一連の補助ベクトルを求める。ステップＳ４１０の内容は、図３４に示すフローチャートと図３５及び図３６を用いて後に詳細に説明する。ステップＳ４１０の処理を終えるとステップＳ４２０へ処理を進める。
【０１１７】
ステップＳ４２０では、ステップＳ３００で入力した端点間毎線芯（周回）化済ベクトル中の全てのベクトル列の処理が終了したか否かを判定する。全てが終了していればステップＳ４３０へ進み、終了していなければ、次のベクトル列に対してステップＳ３１０からステップＳ４１０までの処理を施すべくステップＳ３１０へ戻る。
【０１１８】
ステップＳ４３０では、ステップＳ３００で入力した端点間毎線芯（周回）化済ベクトルに対する処理結果を出力する。
【０１１９】
図３７(b)は、対象としたベクトル列に、始端点・終端点の両方が定まり、且つ、始端点〜終端点間の一連の各ベクトルと、終端点〜始端点の間に挿入される一連の補助ベクトルが求まった場合に出力されるベクトル列に対する出力例を示す図である。同図において、対象としたベクトル列は第ｕ番目とし、そのベクトル列中には始端点と終端点自身も含めて始端点〜終端点間の一連の各ベクトルがｔ個含まれている。更に、終端点〜始端点の間に挿入される一連の補助ベクトルがｒ個含まれている。ここで、第１点は、始端点そのものであり、第ｔ点は、終端点そのものとなっている。
【０１２０】
次に、図３４に示すフローチャートにより、図３３に示すフローチャートのステップＳ４１０の処理の内容を更に説明する。ここでは、ベクトル列の始端点と終端点の両方が定まり、かつ、始端点〜終端点間の一連の各ベクトルも出力された状態となっている。そして、終端点〜始端点の間に挿入される一連の補助ベクトルを求めるのが本フローチャートの処理内容である。本処理は、図３３と同様に、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０により実行される。
【０１２１】
ステップＳ４１１では、先に図３２(a)を用いて説明したように、始端点としたい端点Ｐ０の直前に挿入する補助輪郭点Ｐ-1の座標値を求める。即ち、補助輪郭点Ｐ-1を始点とする補助ベクトルＶ-1が、始端点としたい端点Ｐ０の直後の輪郭点Ｐ1を始点とするベクトルＶ1と逆向きになるように、かつ、補助輪郭点Ｐ-1を始点とする補助ベクトルＶ-1が上述の接線線分の抽出条件（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐ-1を定める。
【０１２２】
次に、ステップＳ４１２において、先に図３２(b)を用いて説明したように、終端点としたい端点Ｐnの直後に挿入する補助輪郭点Ｐn+1の座標値を求める。即ち、補助輪郭点Ｐn+1を終点とする補助ベクトルＶnが、終端点としたい端点Ｐnの直前の輪郭点Ｐn-1を終点とするベクトルＶn-2と逆向きになるように、かつ、補助輪郭点Ｐn+1を終点とする補助ベクトルＶnが上述の接線線分の抽出条件（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐn+1を定める。
【０１２３】
ステップＳ４１３では、ステップＳ４１１で求めた始端点としたい端点Ｐ０の直前に挿入する補助輪郭点Ｐ-1を始点とする補助ベクトルＶ-1と、ステップＳ４１２で求めた終端点としたい端点Ｐnの直後に挿入する補助輪郭点Ｐn+1を終点とする補助ベクトルＶnが、共に水平ベクトルとなっているか、あるいは、共に垂直ベクトルとなっているかを判定する。
【０１２４】
共に水平ベクトル、あるいは、共に垂直ベクトルの場合は、処理をステップS４１４に進める。一方、ステップＳ４１３の判定で、共に水平ベクトル、あるいは、共に垂直ベクトルでない場合は、処理をステップＳ４１６に進める。
【０１２５】
Ｖ-1とＶnが、共に水平ベクトルとなっているか、あるいは、共に垂直ベクトルとなっている場合の例を図３５に示す。
【０１２６】
ステップＳ４１４では終端点としたい端点Ｐnの次の次にあたる補助輪郭点Ｐn+2を、Ｐn+1からみてＰ-1から遠くなる方向に、上述の接線線分の抽出条件（３）を満たすように、Ｐn+2を終点とするベクトルＶn+1が十分な長さ（例えば、１０画素長以上）を持つように定める。
【０１２７】
そして、ステップ４１５において、水平ベクトルと垂直ベクトルが交互につながるような形式で、Ｐn+2とＰ-1を連結する様に、終端点としたい端点Ｐnの３点後の補助輪郭点（この点は、始端点としたい端点Ｐ０の２点前の補助輪郭点でもある）である点Ｐn+3を定める。このようにして補助輪郭点Ｐn+1，Ｐn+2，Ｐn+3，Ｐ-1が定まる。そして、補助点挿入の一連のステップを終え、図３３のフローチャートのＳ４２０にもどる。
【０１２８】
一方、ステップＳ４１６は、Ｖ-1とＶnの、どちらか一方が水平ベクトルとなっていて、他方は垂直ベクトルとなっている場合の処理であり、この場合の例を図３６に示す。
【０１２９】
ステップＳ４１６では終端点としたい端点Ｐnの次の次にあたる補助輪郭点Ｐn+2を、Ｐn+1からみてＰ-1から遠くなる方向に、接線線分の抽出条件（３）を満たすように、Ｐn+2を終点とするベクトルＶn+1が十分な長さ（例えば、１０画素長以上）を持つように定める。
【０１３０】
ステップＳ４１７では、点Ｐn+3を、Ｐn+2からみてＰ-1から遠くなる方向に、上述の接線線分の抽出条件（３）を満たすように、Ｐn+3を終点とするベクトルＶn+2が十分な長さ（例えば、１０画素長以上）を持つように定める。
【０１３１】
ステップ４１８では、水平ベクトルと垂直ベクトルが交互につながるような形式で、Ｐn+3とＰ-1を連結する様に、終端点としたい端点Ｐnの４点後の補助輪郭点（この点は始端点としたい端点Ｐ０の２点前の補助輪郭点でもある）である点Ｐn+4を定める。このようにして補助輪郭点Ｐn+1，Ｐn+2，Ｐn+3，Ｐn+4，Ｐ-1が定まる。そして、補助点挿入の一連のステップを終え、図３３のフローチャートのＳ４２０にもどる。
【０１３２】
端点間毎補助ベクトル入り（周回）ベクトル生成部３２０は、端点間毎線芯（周回）ベクトル生成部３１０より得られる上記の端点間毎線芯（周回）化済ベクトルを入力する。そして、次工程の処理をする端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０により平滑化（関数近似）処理される際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならないように、端点部分に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ように補助ベクトルを挿入することにより、端点間毎補助ベクトル入り（周回）ベクトルを生成する。
【０１３３】
加えて、補助ベクトルが挿入された各端点間毎補助ベクトル入り（周回）ベクトルのそれぞれに対し、どのベクトルが端点部にあたるかを明示する始端点・終端点情報をも生成する。生成された処理結果は、例えば、図２９に示したような形式の各輪郭データ部分のそれぞれを図３７(a)や図３７(b)の各ベクトル列データに置き換えた形として表現でき、本実施形態では、この形式で出力が可能である。
【０１３４】
尚、端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０は、各（周回）ベクトル毎に平滑化（関数近似）された平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルを生成する。そしてその生成結果は、次工程の処理をする端点間毎平滑化済ベクトル同定（非周回化）部３４０に出力される。この際、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０で生成された始端点・終端点情報も次工程の処理をする端点間毎平滑化済ベクトル同定（非周回化）部３４０に出力される。
【０１３５】
端点間毎平滑化済ベクトル同定（非周回化）部３４０は、端点間毎補助ベクトル入り（周回）ベクトル平滑部３３０より得られる、平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルと、端点間毎補助ベクトル入り（周回）ベクトル生成部３２０より得られる始端点・終端点情報とを入力し、各平滑化済の（周回）ベクトル列毎に、そのベクトル列内の各ベクトルの座標値を、それぞれ始端点と終端点となる輪郭点の座標値と比較することにより同定して、始端点と終端点の間のみの部分の平滑化された非周回型のベクトル列を生成して端点間毎平滑化済（非周回）ベクトルとする。
【０１３６】
そして、次工程である平滑化済ベクトル出力部３５０を介して、ファイル出力もしくは通信Ｉ／Ｆ等を介して外部装置に出力する。
【０１３７】
尚、生成された処理結果は、図２９に示したような形式に準じた形として表現することができる、但し、各輪郭点はそれまでの輪郭点情報の部分をアンカーポイントであるのか否かの属性情報としての付帯情報をもつ形式が好ましい。
【０１３８】
（第１実施形態の変形例）
図２９、図３７(a)、図３７(b)に示したデータ形式は、一例にすぎず、本発明の趣旨はこれに限定されるものではない。例えば、端点間毎平滑化済（非周回）ベクトルは、ＳＶＧ形式のベクトル表現をとって出力することも可能である。また、各ベクトル列中の輪郭点数のみをまとめて、輪郭点数テーブル部と各ベクトル列中の各ベクトルのデータ部とを分離して表現することも可能である。例えば、図２９の輪郭線中の総点数の部分のみ第一番目の輪郭から第a番目の輪郭までまとめた部分を作り、その後に、第一番目の輪郭から第a番目の輪郭までの輪郭点データをまとめた部分とするように出力形式を構成してもよい。あるいは、始端点・終端点情報としては、図３７(a)に示した閉ループマーカに限るものではなく、例えば、始端点・終端点が存在するベクトル列を区別することが可能なものであればよい。
【０１３９】
（他の実施形態）
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコード（コンピュータプログラム）を記録した記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。このコンピュータプログラムは、上述したフローチャートに記載したステップを情報処理装置に実行させることになる。言い換えると、このコンピュータプログラムは、コンピュータを図１に示した各処理部（処理手段）として機能させるためのプログラムである。
【０１４０】
この場合、コンピュータ可読記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４１】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１４２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１４３】
【図１】本発明の実施形態に係る画像処理装置の機能ブロック図を示す図である。
【図２】２値画像のアウトラインベクトルによる処理例を示す図である。
【図３】本発明によるラインアート画像のベクトル処理の流れによる一連の処理経過の例を示す図である。
【図４】本発明を実施する画像処理装置を実現する機器構成例を示す図である。
【図５】端点間毎輪郭（周回）ベクトル抽出部の構成例を示す図である。
【図６】本実施例における注目画素とその近傍画素を示す図である。
【図７】端点部より検出される輪郭点例とそれらに付与される輪郭点情報を示す図である。
【図８】端点部ではない部分より検出される輪郭点例とそれらに付与される輪郭点情報を示す図である。
【図９】輪郭点情報の一覧表を示す図である。
【図１０】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）０）を示す図である。
【図１１】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１）を示す図である。
【図１２】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）２）を示す図である。
【図１３】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）３）を示す図である。
【図１４】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）４）を示す図である。
【図１５】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）５）を示す図である。
【図１６】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）６）を示す図である。
【図１７】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）７）を示す図である。
【図１８】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）８）を示す図である。
【図１９】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）９）を示す図である。
【図２０】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１０）を示す図である。
【図２１】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１１）を示す図である。
【図２２】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１２）を示す図である。
【図２３】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１３）を示す図である。
【図２４】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１４）を示す図である。
【図２５】端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターン（ケース（case）１５）を示す図である。
【図２６】端点間毎輪郭（周回）ベクトル抽出処理の全体的な流れを示すフローチャートである。
【図２７】ベクトル列抽出処理を示すフローチャートである。
【図２８】ベクトル列抽出処理を示すフローチャートである。
【図２９】端点間毎周回ベクトル列と輪郭点情報のデータ形式の例を示す図。
【図３０】端点間毎線芯（周回）ベクトル生成部の動作を示すフローチャートである。
【図３１】線素、端点間毎周回ベクトル列と輪郭点情報、端点間毎線芯（周回）ベクトルを例示する図である。
【図３２】始端点の直前と終端点の直後に挿入する補助輪郭点を説明する図である。
【図３３】端点間毎補助ベクトル入り（周回）ベクトル生成部の動作を示すフローチャートである。
【図３４】終端点〜始端点間へ挿入する補助ベクトル生成手順を示すフローチャートである。
【図３５】終端点〜始端点間へ挿入する補助ベクトルを説明する図である。
【図３６】終端点〜始端点間へ挿入する補助ベクトルを説明する図である。
【図３７】端点間毎補助ベクトル入り（周回）ベクトル、及び、端点間毎平滑化済ベクトルのデータ形式の例を示す図である。
【図１】
2007293829.tif 000003
【図２】
2007293829.tif 000004
【図３】
2007293829.tif 000005
【図４】
2007293829.tif 000006
【図５】
2007293829.tif 000007
【図６】
2007293829.tif 000008
【図７】
2007293829.tif 000009
【図８】
2007293829.tif 000010
【図９】
2007293829.tif 000011
【図１０】
2007293829.tif 000012
【図１１】
2007293829.tif 000013
【図１２】
2007293829.tif 000014
【図１３】
2007293829.tif 000015
【図１４】
2007293829.tif 000016
【図１５】
2007293829.tif 000017
【図１６】
2007293829.tif 000018
【図１７】
2007293829.tif 000019
【図１８】
2007293829.tif 000020
【図１９】
2007293829.tif 000021
【図２０】
2007293829.tif 000022
【図２１】
2007293829.tif 000023
【図２２】
2007293829.tif 000024
【図２３】
2007293829.tif 000025
【図２４】
2007293829.tif 000026
【図２５】
2007293829.tif 000027
【図２６】
2007293829.tif 000028
【図２７】
2007293829.tif 000029
【図２８】
2007293829.tif 000030
【図２９】
2007293829.tif 000031
【図３０】
2007293829.tif 000032
【図３１】
2007293829.tif 000033
【図３２】
2007293829.tif 000034
【図３３】
2007293829.tif 000035
【図３４】
2007293829.tif 000036
【図３５】
2007293829.tif 000037
【図３６】
2007293829.tif 000038
【図３７】
2007293829.tif 000039